aboutsummaryrefslogtreecommitdiff
path: root/final/ABI-Testsuite/test/s2_6/T_ksc2.x
diff options
context:
space:
mode:
Diffstat (limited to 'final/ABI-Testsuite/test/s2_6/T_ksc2.x')
-rwxr-xr-xfinal/ABI-Testsuite/test/s2_6/T_ksc2.x297202
1 files changed, 297202 insertions, 0 deletions
diff --git a/final/ABI-Testsuite/test/s2_6/T_ksc2.x b/final/ABI-Testsuite/test/s2_6/T_ksc2.x
new file mode 100755
index 00000000..e7c4bd36
--- /dev/null
+++ b/final/ABI-Testsuite/test/s2_6/T_ksc2.x
@@ -0,0 +1,297202 @@
+// 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 bb20 : aa0 {
+ int b;
+ virtual void foo(); // _ZN4bb203fooEv
+ ~bb20(); // tgen
+ bb20(); // tgen
+};
+//SIG(-1 bb20) C1{ BC2{ Fi} v1 Fi}
+
+
+void bb20 ::foo(){vfunc_called(this, "_ZN4bb203fooEv");}
+bb20 ::~bb20(){ note_dtor("bb20", this);} // tgen
+bb20 ::bb20(){ note_ctor("bb20", this);} // tgen
+
+static void Test_bb20()
+{
+ extern Class_Descriptor cd_bb20;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(3,4)];
+ init_test(&cd_bb20, buf);
+ bb20 *dp, &lv = *(dp=new (buf) bb20());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,12), "sizeof(bb20)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(bb20)");
+ check_base_class_offset(lv, (aa0*), ABISELECT(8,4), "bb20");
+ check_field_offset(lv, b, ABISELECT(12,8), "bb20.b");
+ test_class_info(&lv, &cd_bb20);
+ dp->~bb20();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vbb20(Test_bb20, "bb20", ABISELECT(16,12));
+
+#else // __cplusplus
+
+extern void _ZN4bb20C1Ev();
+extern void _ZN4bb20D1Ev();
+Name_Map name_map_bb20[] = {
+ NSPAIR(_ZN4bb20C1Ev),
+ NSPAIR(_ZN4bb20D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+static Base_Class bases_bb20[] = {
+ // 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
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI4bb20[];
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY vtc_bb20[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb20[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+Class_Descriptor cd_bb20 = { "bb20", // class name
+ bases_bb20, 1,
+ &(vtc_bb20[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,12), // object size
+ NSPAIRA(_ZTI4bb20),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV4bb20),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc020 : bb20 {
+ int c;
+ ~cc020(); // tgen
+ cc020(); // tgen
+};
+//SIG(-1 cc020) C1{ BC2{ BC3{ Fi} v1 Fi} Fi}
+
+
+cc020 ::~cc020(){ note_dtor("cc020", this);} // tgen
+cc020 ::cc020(){ note_ctor("cc020", this);} // tgen
+
+static void Test_cc020()
+{
+ extern Class_Descriptor cd_cc020;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,5)];
+ init_test(&cd_cc020, buf);
+ cc020 *dp, &lv = *(dp=new (buf) cc020());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,16), "sizeof(cc020)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc020)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(8,4), "cc020");
+ check_base_class_offset(lv, (bb20*), 0, "cc020");
+ check_field_offset(lv, c, ABISELECT(16,12), "cc020.c");
+ test_class_info(&lv, &cd_cc020);
+ dp->~cc020();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc020(Test_cc020, "cc020", ABISELECT(24,16));
+
+#else // __cplusplus
+
+extern void _ZN5cc020C1Ev();
+extern void _ZN5cc020D1Ev();
+Name_Map name_map_cc020[] = {
+ NSPAIR(_ZN5cc020C1Ev),
+ NSPAIR(_ZN5cc020D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+static Base_Class bases_cc020[] = {
+ // 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_bb20, 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 _ZTI5cc020[];
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY vtc_cc020[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc020[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern VTBL_ENTRY _ZTI5cc020[];
+extern VTBL_ENTRY _ZTV5cc020[];
+Class_Descriptor cd_cc020 = { "cc020", // class name
+ bases_cc020, 2,
+ &(vtc_cc020[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,16), // object size
+ NSPAIRA(_ZTI5cc020),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV5cc020),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 dd0020 : cc020 {
+ int d;
+ ~dd0020(); // tgen
+ dd0020(); // tgen
+};
+//SIG(-1 dd0020) C1{ BC2{ BC3{ BC4{ Fi} v1 Fi} Fi} Fi}
+
+
+dd0020 ::~dd0020(){ note_dtor("dd0020", this);} // tgen
+dd0020 ::dd0020(){ note_ctor("dd0020", this);} // tgen
+
+static void Test_dd0020()
+{
+ extern Class_Descriptor cd_dd0020;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd0020, buf);
+ dd0020 *dp, &lv = *(dp=new (buf) dd0020());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd0020)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0020)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc020*), ABISELECT(8,4), "dd0020");
+ check_base_class_offset(lv, (bb20*)(cc020*), 0, "dd0020");
+ check_base_class_offset(lv, (cc020*), 0, "dd0020");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd0020.d");
+ test_class_info(&lv, &cd_dd0020);
+ dp->~dd0020();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0020(Test_dd0020, "dd0020", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd0020C1Ev();
+extern void _ZN6dd0020D1Ev();
+Name_Map name_map_dd0020[] = {
+ NSPAIR(_ZN6dd0020C1Ev),
+ NSPAIR(_ZN6dd0020D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc020;
+extern VTBL_ENTRY _ZTI5cc020[];
+extern VTBL_ENTRY _ZTV5cc020[];
+static Base_Class bases_dd0020[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc020, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI6dd0020[];
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY vtc_dd0020[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0020[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern VTBL_ENTRY _ZTI6dd0020[];
+extern VTBL_ENTRY _ZTV6dd0020[];
+Class_Descriptor cd_dd0020 = { "dd0020", // class name
+ bases_dd0020, 3,
+ &(vtc_dd0020[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd0020),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0020),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 ee00020 : dd0020 {
+ int e;
+ ~ee00020(); // tgen
+ ee00020(); // tgen
+};
+//SIG(1 ee00020) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v1 Fi} Fi} Fi} Fi}
+
+
+ee00020 ::~ee00020(){ note_dtor("ee00020", this);} // tgen
+ee00020 ::ee00020(){ note_ctor("ee00020", this);} // tgen
+
+static void Test_ee00020()
+{
+ extern Class_Descriptor cd_ee00020;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee00020, buf);
+ ee00020 *dp, &lv = *(dp=new (buf) ee00020());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee00020)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00020)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc020*)(dd0020*), ABISELECT(8,4), "ee00020");
+ check_base_class_offset(lv, (bb20*)(cc020*)(dd0020*), 0, "ee00020");
+ check_base_class_offset(lv, (cc020*)(dd0020*), 0, "ee00020");
+ check_base_class_offset(lv, (dd0020*), 0, "ee00020");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee00020.e");
+ test_class_info(&lv, &cd_ee00020);
+ dp->~ee00020();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00020(Test_ee00020, "ee00020", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee00020C1Ev();
+extern void _ZN7ee00020D1Ev();
+Name_Map name_map_ee00020[] = {
+ NSPAIR(_ZN7ee00020C1Ev),
+ NSPAIR(_ZN7ee00020D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc020;
+extern VTBL_ENTRY _ZTI5cc020[];
+extern VTBL_ENTRY _ZTV5cc020[];
+extern Class_Descriptor cd_dd0020;
+extern VTBL_ENTRY _ZTI6dd0020[];
+extern VTBL_ENTRY _ZTV6dd0020[];
+static Base_Class bases_ee00020[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc020, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0020, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee00020[];
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY vtc_ee00020[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00020[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee00020[];
+extern VTBL_ENTRY _ZTV7ee00020[];
+Class_Descriptor cd_ee00020 = { "ee00020", // class name
+ bases_ee00020, 4,
+ &(vtc_ee00020[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee00020),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00020),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 ee10020 : virtual dd0020 {
+ int e;
+ ~ee10020(); // tgen
+ ee10020(); // tgen
+};
+//SIG(1 ee10020) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v1 Fi} Fi} Fi} Fi}
+
+
+ee10020 ::~ee10020(){ note_dtor("ee10020", this);} // tgen
+ee10020 ::ee10020(){ note_ctor("ee10020", this);} // tgen
+
+static void Test_ee10020()
+{
+ extern Class_Descriptor cd_ee10020;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee10020, buf);
+ ee10020 *dp, &lv = *(dp=new (buf) ee10020());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee10020)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10020)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc020*)(dd0020*), ABISELECT(24,12), "ee10020");
+ check_base_class_offset(lv, (bb20*)(cc020*)(dd0020*), ABISELECT(16,8), "ee10020");
+ check_base_class_offset(lv, (cc020*)(dd0020*), ABISELECT(16,8), "ee10020");
+ check_base_class_offset(lv, (dd0020*), ABISELECT(16,8), "ee10020");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10020.e");
+ test_class_info(&lv, &cd_ee10020);
+ dp->~ee10020();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10020(Test_ee10020, "ee10020", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee10020C1Ev();
+extern void _ZN7ee10020D1Ev();
+Name_Map name_map_ee10020[] = {
+ NSPAIR(_ZN7ee10020C1Ev),
+ NSPAIR(_ZN7ee10020D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc020;
+extern VTBL_ENTRY _ZTI5cc020[];
+extern VTBL_ENTRY _ZTV5cc020[];
+extern Class_Descriptor cd_dd0020;
+extern VTBL_ENTRY _ZTI6dd0020[];
+extern VTBL_ENTRY _ZTV6dd0020[];
+static Base_Class bases_ee10020[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc020, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0020, 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 _ZTI7ee10020[];
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY vtc_ee10020[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10020[0]),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10020[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee10020[];
+static VTT_ENTRY vtt_ee10020[] = {
+ {&(_ZTV7ee10020[3]), 3,7},
+ {&(_ZTV7ee10020[6]), 6,7},
+};
+extern VTBL_ENTRY _ZTI7ee10020[];
+extern VTBL_ENTRY _ZTV7ee10020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10020[];
+Class_Descriptor cd_ee10020 = { "ee10020", // class name
+ bases_ee10020, 4,
+ &(vtc_ee10020[0]), // expected_vtbl_contents
+ &(vtt_ee10020[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee10020),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10020),7, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10020),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 ee20020 : dd0020 {
+ int e;
+ virtual void foo(); // _ZN7ee200203fooEv
+ ~ee20020(); // tgen
+ ee20020(); // tgen
+};
+//SIG(1 ee20020) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v1 Fi} Fi} Fi} v1 Fi}
+
+
+void ee20020 ::foo(){vfunc_called(this, "_ZN7ee200203fooEv");}
+ee20020 ::~ee20020(){ note_dtor("ee20020", this);} // tgen
+ee20020 ::ee20020(){ note_ctor("ee20020", this);} // tgen
+
+static void Test_ee20020()
+{
+ extern Class_Descriptor cd_ee20020;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee20020, buf);
+ ee20020 *dp, &lv = *(dp=new (buf) ee20020());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee20020)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20020)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc020*)(dd0020*), ABISELECT(8,4), "ee20020");
+ check_base_class_offset(lv, (bb20*)(cc020*)(dd0020*), 0, "ee20020");
+ check_base_class_offset(lv, (cc020*)(dd0020*), 0, "ee20020");
+ check_base_class_offset(lv, (dd0020*), 0, "ee20020");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee20020.e");
+ test_class_info(&lv, &cd_ee20020);
+ dp->~ee20020();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20020(Test_ee20020, "ee20020", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee20020C1Ev();
+extern void _ZN7ee20020D1Ev();
+Name_Map name_map_ee20020[] = {
+ NSPAIR(_ZN7ee20020C1Ev),
+ NSPAIR(_ZN7ee20020D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc020;
+extern VTBL_ENTRY _ZTI5cc020[];
+extern VTBL_ENTRY _ZTV5cc020[];
+extern Class_Descriptor cd_dd0020;
+extern VTBL_ENTRY _ZTI6dd0020[];
+extern VTBL_ENTRY _ZTV6dd0020[];
+static Base_Class bases_ee20020[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc020, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0020, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee20020[];
+extern void _ZN7ee200203fooEv();
+static VTBL_ENTRY vtc_ee20020[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20020[0]),
+ (VTBL_ENTRY)&_ZN7ee200203fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee20020[];
+extern VTBL_ENTRY _ZTV7ee20020[];
+Class_Descriptor cd_ee20020 = { "ee20020", // class name
+ bases_ee20020, 4,
+ &(vtc_ee20020[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee20020),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20020),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 ee30020 : virtual dd0020 {
+ int e;
+ virtual void foo(); // _ZN7ee300203fooEv
+ ~ee30020(); // tgen
+ ee30020(); // tgen
+};
+//SIG(1 ee30020) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v1 Fi} Fi} Fi} v1 Fi}
+
+
+void ee30020 ::foo(){vfunc_called(this, "_ZN7ee300203fooEv");}
+ee30020 ::~ee30020(){ note_dtor("ee30020", this);} // tgen
+ee30020 ::ee30020(){ note_ctor("ee30020", this);} // tgen
+
+static void Test_ee30020()
+{
+ extern Class_Descriptor cd_ee30020;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee30020, buf);
+ ee30020 *dp, &lv = *(dp=new (buf) ee30020());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee30020)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30020)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc020*)(dd0020*), ABISELECT(24,12), "ee30020");
+ check_base_class_offset(lv, (bb20*)(cc020*)(dd0020*), ABISELECT(16,8), "ee30020");
+ check_base_class_offset(lv, (cc020*)(dd0020*), ABISELECT(16,8), "ee30020");
+ check_base_class_offset(lv, (dd0020*), ABISELECT(16,8), "ee30020");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30020.e");
+ test_class_info(&lv, &cd_ee30020);
+ dp->~ee30020();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30020(Test_ee30020, "ee30020", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee30020C1Ev();
+extern void _ZN7ee30020D1Ev();
+Name_Map name_map_ee30020[] = {
+ NSPAIR(_ZN7ee30020C1Ev),
+ NSPAIR(_ZN7ee30020D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc020;
+extern VTBL_ENTRY _ZTI5cc020[];
+extern VTBL_ENTRY _ZTV5cc020[];
+extern Class_Descriptor cd_dd0020;
+extern VTBL_ENTRY _ZTI6dd0020[];
+extern VTBL_ENTRY _ZTV6dd0020[];
+static Base_Class bases_ee30020[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc020, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0020, 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 _ZTI7ee30020[];
+extern void _ZN7ee300203fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee300203fooEv,_ZTv0_n12_N7ee300203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee300203fooEv,_ZThn8_N7ee300203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee30020[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30020[0]),
+ (VTBL_ENTRY)&_ZN7ee300203fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30020[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee300203fooEv,_ZTv0_n12_N7ee300203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee30020[];
+static VTT_ENTRY vtt_ee30020[] = {
+ {&(_ZTV7ee30020[3]), 3,8},
+ {&(_ZTV7ee30020[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee30020[];
+extern VTBL_ENTRY _ZTV7ee30020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30020[];
+static VTBL_ENTRY alt_thunk_names1[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee300203fooEv,_ZTv0_n12_N7ee300203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee300203fooEv,_ZThn8_N7ee300203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30020 = { "ee30020", // class name
+ bases_ee30020, 4,
+ &(vtc_ee30020[0]), // expected_vtbl_contents
+ &(vtt_ee30020[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee30020),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30020),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30020),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee40020 : dd0020 {
+ int e;
+ virtual void bar(); // _ZN7ee400203barEv
+ ~ee40020(); // tgen
+ ee40020(); // tgen
+};
+//SIG(1 ee40020) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v2 Fi} Fi} Fi} v1 Fi}
+
+
+void ee40020 ::bar(){vfunc_called(this, "_ZN7ee400203barEv");}
+ee40020 ::~ee40020(){ note_dtor("ee40020", this);} // tgen
+ee40020 ::ee40020(){ note_ctor("ee40020", this);} // tgen
+
+static void Test_ee40020()
+{
+ extern Class_Descriptor cd_ee40020;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee40020, buf);
+ ee40020 *dp, &lv = *(dp=new (buf) ee40020());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee40020)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40020)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc020*)(dd0020*), ABISELECT(8,4), "ee40020");
+ check_base_class_offset(lv, (bb20*)(cc020*)(dd0020*), 0, "ee40020");
+ check_base_class_offset(lv, (cc020*)(dd0020*), 0, "ee40020");
+ check_base_class_offset(lv, (dd0020*), 0, "ee40020");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee40020.e");
+ test_class_info(&lv, &cd_ee40020);
+ dp->~ee40020();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40020(Test_ee40020, "ee40020", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee40020C1Ev();
+extern void _ZN7ee40020D1Ev();
+Name_Map name_map_ee40020[] = {
+ NSPAIR(_ZN7ee40020C1Ev),
+ NSPAIR(_ZN7ee40020D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc020;
+extern VTBL_ENTRY _ZTI5cc020[];
+extern VTBL_ENTRY _ZTV5cc020[];
+extern Class_Descriptor cd_dd0020;
+extern VTBL_ENTRY _ZTI6dd0020[];
+extern VTBL_ENTRY _ZTV6dd0020[];
+static Base_Class bases_ee40020[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc020, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0020, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee40020[];
+extern void _ZN4bb203fooEv();
+extern void _ZN7ee400203barEv();
+static VTBL_ENTRY vtc_ee40020[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40020[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+ (VTBL_ENTRY)&_ZN7ee400203barEv,
+};
+extern VTBL_ENTRY _ZTI7ee40020[];
+extern VTBL_ENTRY _ZTV7ee40020[];
+Class_Descriptor cd_ee40020 = { "ee40020", // class name
+ bases_ee40020, 4,
+ &(vtc_ee40020[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee40020),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40020),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 ee50020 : virtual dd0020 {
+ int e;
+ virtual void bar(); // _ZN7ee500203barEv
+ ~ee50020(); // tgen
+ ee50020(); // tgen
+};
+//SIG(1 ee50020) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v2 Fi} Fi} Fi} v1 Fi}
+
+
+void ee50020 ::bar(){vfunc_called(this, "_ZN7ee500203barEv");}
+ee50020 ::~ee50020(){ note_dtor("ee50020", this);} // tgen
+ee50020 ::ee50020(){ note_ctor("ee50020", this);} // tgen
+
+static void Test_ee50020()
+{
+ extern Class_Descriptor cd_ee50020;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee50020, buf);
+ ee50020 *dp, &lv = *(dp=new (buf) ee50020());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee50020)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50020)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc020*)(dd0020*), ABISELECT(24,12), "ee50020");
+ check_base_class_offset(lv, (bb20*)(cc020*)(dd0020*), ABISELECT(16,8), "ee50020");
+ check_base_class_offset(lv, (cc020*)(dd0020*), ABISELECT(16,8), "ee50020");
+ check_base_class_offset(lv, (dd0020*), ABISELECT(16,8), "ee50020");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50020.e");
+ test_class_info(&lv, &cd_ee50020);
+ dp->~ee50020();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50020(Test_ee50020, "ee50020", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee50020C1Ev();
+extern void _ZN7ee50020D1Ev();
+Name_Map name_map_ee50020[] = {
+ NSPAIR(_ZN7ee50020C1Ev),
+ NSPAIR(_ZN7ee50020D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc020;
+extern VTBL_ENTRY _ZTI5cc020[];
+extern VTBL_ENTRY _ZTV5cc020[];
+extern Class_Descriptor cd_dd0020;
+extern VTBL_ENTRY _ZTI6dd0020[];
+extern VTBL_ENTRY _ZTV6dd0020[];
+static Base_Class bases_ee50020[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc020, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0020, 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 _ZTI7ee50020[];
+extern void _ZN7ee500203barEv();
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY vtc_ee50020[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50020[0]),
+ (VTBL_ENTRY)&_ZN7ee500203barEv,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50020[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee50020[];
+static VTT_ENTRY vtt_ee50020[] = {
+ {&(_ZTV7ee50020[3]), 3,8},
+ {&(_ZTV7ee50020[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee50020[];
+extern VTBL_ENTRY _ZTV7ee50020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50020[];
+Class_Descriptor cd_ee50020 = { "ee50020", // class name
+ bases_ee50020, 4,
+ &(vtc_ee50020[0]), // expected_vtbl_contents
+ &(vtt_ee50020[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee50020),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50020),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50020),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 ee60020 : dd0020 {
+ int e;
+ virtual void foo(); // _ZN7ee600203fooEv
+ virtual void bar(); // _ZN7ee600203barEv
+ ~ee60020(); // tgen
+ ee60020(); // tgen
+};
+//SIG(1 ee60020) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v1 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee60020 ::foo(){vfunc_called(this, "_ZN7ee600203fooEv");}
+void ee60020 ::bar(){vfunc_called(this, "_ZN7ee600203barEv");}
+ee60020 ::~ee60020(){ note_dtor("ee60020", this);} // tgen
+ee60020 ::ee60020(){ note_ctor("ee60020", this);} // tgen
+
+static void Test_ee60020()
+{
+ extern Class_Descriptor cd_ee60020;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee60020, buf);
+ ee60020 *dp, &lv = *(dp=new (buf) ee60020());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee60020)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60020)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc020*)(dd0020*), ABISELECT(8,4), "ee60020");
+ check_base_class_offset(lv, (bb20*)(cc020*)(dd0020*), 0, "ee60020");
+ check_base_class_offset(lv, (cc020*)(dd0020*), 0, "ee60020");
+ check_base_class_offset(lv, (dd0020*), 0, "ee60020");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee60020.e");
+ test_class_info(&lv, &cd_ee60020);
+ dp->~ee60020();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60020(Test_ee60020, "ee60020", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee60020C1Ev();
+extern void _ZN7ee60020D1Ev();
+Name_Map name_map_ee60020[] = {
+ NSPAIR(_ZN7ee60020C1Ev),
+ NSPAIR(_ZN7ee60020D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc020;
+extern VTBL_ENTRY _ZTI5cc020[];
+extern VTBL_ENTRY _ZTV5cc020[];
+extern Class_Descriptor cd_dd0020;
+extern VTBL_ENTRY _ZTI6dd0020[];
+extern VTBL_ENTRY _ZTV6dd0020[];
+static Base_Class bases_ee60020[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc020, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0020, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee60020[];
+extern void _ZN7ee600203fooEv();
+extern void _ZN7ee600203barEv();
+static VTBL_ENTRY vtc_ee60020[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60020[0]),
+ (VTBL_ENTRY)&_ZN7ee600203fooEv,
+ (VTBL_ENTRY)&_ZN7ee600203barEv,
+};
+extern VTBL_ENTRY _ZTI7ee60020[];
+extern VTBL_ENTRY _ZTV7ee60020[];
+Class_Descriptor cd_ee60020 = { "ee60020", // class name
+ bases_ee60020, 4,
+ &(vtc_ee60020[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee60020),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60020),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 ee70020 : virtual dd0020 {
+ int e;
+ virtual void foo(); // _ZN7ee700203fooEv
+ virtual void bar(); // _ZN7ee700203barEv
+ ~ee70020(); // tgen
+ ee70020(); // tgen
+};
+//SIG(1 ee70020) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v1 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee70020 ::foo(){vfunc_called(this, "_ZN7ee700203fooEv");}
+void ee70020 ::bar(){vfunc_called(this, "_ZN7ee700203barEv");}
+ee70020 ::~ee70020(){ note_dtor("ee70020", this);} // tgen
+ee70020 ::ee70020(){ note_ctor("ee70020", this);} // tgen
+
+static void Test_ee70020()
+{
+ extern Class_Descriptor cd_ee70020;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee70020, buf);
+ ee70020 *dp, &lv = *(dp=new (buf) ee70020());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee70020)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70020)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc020*)(dd0020*), ABISELECT(24,12), "ee70020");
+ check_base_class_offset(lv, (bb20*)(cc020*)(dd0020*), ABISELECT(16,8), "ee70020");
+ check_base_class_offset(lv, (cc020*)(dd0020*), ABISELECT(16,8), "ee70020");
+ check_base_class_offset(lv, (dd0020*), ABISELECT(16,8), "ee70020");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70020.e");
+ test_class_info(&lv, &cd_ee70020);
+ dp->~ee70020();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70020(Test_ee70020, "ee70020", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee70020C1Ev();
+extern void _ZN7ee70020D1Ev();
+Name_Map name_map_ee70020[] = {
+ NSPAIR(_ZN7ee70020C1Ev),
+ NSPAIR(_ZN7ee70020D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc020;
+extern VTBL_ENTRY _ZTI5cc020[];
+extern VTBL_ENTRY _ZTV5cc020[];
+extern Class_Descriptor cd_dd0020;
+extern VTBL_ENTRY _ZTI6dd0020[];
+extern VTBL_ENTRY _ZTV6dd0020[];
+static Base_Class bases_ee70020[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc020, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0020, 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 _ZTI7ee70020[];
+extern void _ZN7ee700203fooEv();
+extern void _ZN7ee700203barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee700203fooEv,_ZTv0_n12_N7ee700203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee700203fooEv,_ZThn8_N7ee700203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70020[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70020[0]),
+ (VTBL_ENTRY)&_ZN7ee700203fooEv,
+ (VTBL_ENTRY)&_ZN7ee700203barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70020[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee700203fooEv,_ZTv0_n12_N7ee700203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee70020[];
+static VTT_ENTRY vtt_ee70020[] = {
+ {&(_ZTV7ee70020[3]), 3,9},
+ {&(_ZTV7ee70020[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee70020[];
+extern VTBL_ENTRY _ZTV7ee70020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70020[];
+static VTBL_ENTRY alt_thunk_names2[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee700203fooEv,_ZTv0_n12_N7ee700203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee700203fooEv,_ZThn8_N7ee700203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70020 = { "ee70020", // class name
+ bases_ee70020, 4,
+ &(vtc_ee70020[0]), // expected_vtbl_contents
+ &(vtt_ee70020[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee70020),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70020),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70020),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names2,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd1020 : virtual cc020 {
+ int d;
+ ~dd1020(); // tgen
+ dd1020(); // tgen
+};
+//SIG(-1 dd1020) C1{ VBC2{ BC3{ BC4{ Fi} v1 Fi} Fi} Fi}
+
+
+dd1020 ::~dd1020(){ note_dtor("dd1020", this);} // tgen
+dd1020 ::dd1020(){ note_ctor("dd1020", this);} // tgen
+
+static void Test_dd1020()
+{
+ extern Class_Descriptor cd_dd1020;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd1020, buf);
+ dd1020 *dp, &lv = *(dp=new (buf) dd1020());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd1020)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1020)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc020*), ABISELECT(24,12), "dd1020");
+ check_base_class_offset(lv, (bb20*)(cc020*), ABISELECT(16,8), "dd1020");
+ check_base_class_offset(lv, (cc020*), ABISELECT(16,8), "dd1020");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1020.d");
+ test_class_info(&lv, &cd_dd1020);
+ dp->~dd1020();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1020(Test_dd1020, "dd1020", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd1020C1Ev();
+extern void _ZN6dd1020D1Ev();
+Name_Map name_map_dd1020[] = {
+ NSPAIR(_ZN6dd1020C1Ev),
+ NSPAIR(_ZN6dd1020D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc020;
+extern VTBL_ENTRY _ZTI5cc020[];
+extern VTBL_ENTRY _ZTV5cc020[];
+static Base_Class bases_dd1020[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc020, 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 _ZTI6dd1020[];
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY vtc_dd1020[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1020[0]),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1020[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd1020[];
+static VTT_ENTRY vtt_dd1020[] = {
+ {&(_ZTV6dd1020[3]), 3,7},
+ {&(_ZTV6dd1020[6]), 6,7},
+};
+extern VTBL_ENTRY _ZTI6dd1020[];
+extern VTBL_ENTRY _ZTV6dd1020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1020[];
+Class_Descriptor cd_dd1020 = { "dd1020", // class name
+ bases_dd1020, 3,
+ &(vtc_dd1020[0]), // expected_vtbl_contents
+ &(vtt_dd1020[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd1020),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1020),7, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1020),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 ee01020 : dd1020 {
+ int e;
+ ~ee01020(); // tgen
+ ee01020(); // tgen
+};
+//SIG(1 ee01020) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v1 Fi} Fi} Fi} Fi}
+
+
+ee01020 ::~ee01020(){ note_dtor("ee01020", this);} // tgen
+ee01020 ::ee01020(){ note_ctor("ee01020", this);} // tgen
+
+static void Test_ee01020()
+{
+ extern Class_Descriptor cd_ee01020;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee01020, buf);
+ ee01020 *dp, &lv = *(dp=new (buf) ee01020());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee01020)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01020)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc020*), ABISELECT(24,16), "ee01020");
+ check_base_class_offset(lv, (bb20*)(cc020*), ABISELECT(16,12), "ee01020");
+ check_base_class_offset(lv, (cc020*)(dd1020*), ABISELECT(16,12), "ee01020");
+ check_base_class_offset(lv, (dd1020*), 0, "ee01020");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01020.e");
+ test_class_info(&lv, &cd_ee01020);
+ dp->~ee01020();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01020(Test_ee01020, "ee01020", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee01020C1Ev();
+extern void _ZN7ee01020D1Ev();
+Name_Map name_map_ee01020[] = {
+ NSPAIR(_ZN7ee01020C1Ev),
+ NSPAIR(_ZN7ee01020D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc020;
+extern VTBL_ENTRY _ZTI5cc020[];
+extern VTBL_ENTRY _ZTV5cc020[];
+extern Class_Descriptor cd_dd1020;
+extern VTBL_ENTRY _ZTI6dd1020[];
+extern VTBL_ENTRY _ZTV6dd1020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1020[];
+static Base_Class bases_ee01020[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc020, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1020, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee01020[];
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY vtc_ee01020[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01020[0]),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01020[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee01020[];
+static VTBL_ENTRY _tg__ZTV6dd1020__7ee01020[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1020[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb205cc020__6dd1020__7ee01020[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1020[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee01020[] = {
+ {&(_ZTV7ee01020[3]), 3,7},
+ {&(_tg__ZTV6dd1020__7ee01020[3]), 3,3},
+ {&(_tg__ZTV4bb205cc020__6dd1020__7ee01020[3]), 3,4},
+ {&(_ZTV7ee01020[6]), 6,7},
+};
+extern VTBL_ENTRY _ZTI7ee01020[];
+extern VTBL_ENTRY _ZTV7ee01020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01020[];
+Class_Descriptor cd_ee01020 = { "ee01020", // class name
+ bases_ee01020, 4,
+ &(vtc_ee01020[0]), // expected_vtbl_contents
+ &(vtt_ee01020[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee01020),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01020),7, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01020),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 ee11020 : virtual dd1020 {
+ int e;
+ ~ee11020(); // tgen
+ ee11020(); // tgen
+};
+//SIG(1 ee11020) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v1 Fi} Fi} Fi} Fi}
+
+
+ee11020 ::~ee11020(){ note_dtor("ee11020", this);} // tgen
+ee11020 ::ee11020(){ note_ctor("ee11020", this);} // tgen
+
+static void Test_ee11020()
+{
+ extern Class_Descriptor cd_ee11020;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee11020, buf);
+ ee11020 *dp, &lv = *(dp=new (buf) ee11020());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee11020)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11020)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc020*), ABISELECT(40,20), "ee11020");
+ check_base_class_offset(lv, (bb20*)(cc020*), ABISELECT(32,16), "ee11020");
+ check_base_class_offset(lv, (cc020*)(dd1020*), ABISELECT(32,16), "ee11020");
+ check_base_class_offset(lv, (dd1020*), ABISELECT(16,8), "ee11020");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11020.e");
+ test_class_info(&lv, &cd_ee11020);
+ dp->~ee11020();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11020(Test_ee11020, "ee11020", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee11020C1Ev();
+extern void _ZN7ee11020D1Ev();
+Name_Map name_map_ee11020[] = {
+ NSPAIR(_ZN7ee11020C1Ev),
+ NSPAIR(_ZN7ee11020D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc020;
+extern VTBL_ENTRY _ZTI5cc020[];
+extern VTBL_ENTRY _ZTV5cc020[];
+extern Class_Descriptor cd_dd1020;
+extern VTBL_ENTRY _ZTI6dd1020[];
+extern VTBL_ENTRY _ZTV6dd1020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1020[];
+static Base_Class bases_ee11020[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc020, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1020, 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 _ZTI7ee11020[];
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY vtc_ee11020[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11020[0]),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11020[0]),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11020[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee11020[];
+static VTBL_ENTRY _tg__ZTV6dd1020__7ee11020[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1020[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb205cc020__6dd1020__7ee11020[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1020[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee11020[] = {
+ {&(_ZTV7ee11020[4]), 4,11},
+ {&(_ZTV7ee11020[7]), 7,11},
+ {&(_ZTV7ee11020[10]), 10,11},
+ {&(_tg__ZTV6dd1020__7ee11020[3]), 3,3},
+ {&(_tg__ZTV4bb205cc020__6dd1020__7ee11020[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee11020[];
+extern VTBL_ENTRY _ZTV7ee11020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11020[];
+Class_Descriptor cd_ee11020 = { "ee11020", // class name
+ bases_ee11020, 4,
+ &(vtc_ee11020[0]), // expected_vtbl_contents
+ &(vtt_ee11020[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee11020),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11020),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11020),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 ee21020 : dd1020 {
+ int e;
+ virtual void foo(); // _ZN7ee210203fooEv
+ ~ee21020(); // tgen
+ ee21020(); // tgen
+};
+//SIG(1 ee21020) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v1 Fi} Fi} Fi} v1 Fi}
+
+
+void ee21020 ::foo(){vfunc_called(this, "_ZN7ee210203fooEv");}
+ee21020 ::~ee21020(){ note_dtor("ee21020", this);} // tgen
+ee21020 ::ee21020(){ note_ctor("ee21020", this);} // tgen
+
+static void Test_ee21020()
+{
+ extern Class_Descriptor cd_ee21020;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee21020, buf);
+ ee21020 *dp, &lv = *(dp=new (buf) ee21020());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee21020)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21020)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc020*), ABISELECT(24,16), "ee21020");
+ check_base_class_offset(lv, (bb20*)(cc020*), ABISELECT(16,12), "ee21020");
+ check_base_class_offset(lv, (cc020*)(dd1020*), ABISELECT(16,12), "ee21020");
+ check_base_class_offset(lv, (dd1020*), 0, "ee21020");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21020.e");
+ test_class_info(&lv, &cd_ee21020);
+ dp->~ee21020();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21020(Test_ee21020, "ee21020", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee21020C1Ev();
+extern void _ZN7ee21020D1Ev();
+Name_Map name_map_ee21020[] = {
+ NSPAIR(_ZN7ee21020C1Ev),
+ NSPAIR(_ZN7ee21020D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc020;
+extern VTBL_ENTRY _ZTI5cc020[];
+extern VTBL_ENTRY _ZTV5cc020[];
+extern Class_Descriptor cd_dd1020;
+extern VTBL_ENTRY _ZTI6dd1020[];
+extern VTBL_ENTRY _ZTV6dd1020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1020[];
+static Base_Class bases_ee21020[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc020, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1020, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee21020[];
+extern void _ZN7ee210203fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee210203fooEv,_ZTv0_n12_N7ee210203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee210203fooEv,_ZThn12_N7ee210203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee21020[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21020[0]),
+ (VTBL_ENTRY)&_ZN7ee210203fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21020[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee210203fooEv,_ZTv0_n12_N7ee210203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee21020[];
+static VTBL_ENTRY _tg__ZTV6dd1020__7ee21020[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1020[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb205cc020__6dd1020__7ee21020[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1020[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee21020[] = {
+ {&(_ZTV7ee21020[3]), 3,8},
+ {&(_tg__ZTV6dd1020__7ee21020[3]), 3,3},
+ {&(_tg__ZTV4bb205cc020__6dd1020__7ee21020[3]), 3,4},
+ {&(_ZTV7ee21020[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee21020[];
+extern VTBL_ENTRY _ZTV7ee21020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21020[];
+static VTBL_ENTRY alt_thunk_names3[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee210203fooEv,_ZTv0_n12_N7ee210203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee210203fooEv,_ZThn12_N7ee210203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21020 = { "ee21020", // class name
+ bases_ee21020, 4,
+ &(vtc_ee21020[0]), // expected_vtbl_contents
+ &(vtt_ee21020[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee21020),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21020),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21020),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names3,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee31020 : virtual dd1020 {
+ int e;
+ virtual void foo(); // _ZN7ee310203fooEv
+ ~ee31020(); // tgen
+ ee31020(); // tgen
+};
+//SIG(1 ee31020) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v1 Fi} Fi} Fi} v1 Fi}
+
+
+void ee31020 ::foo(){vfunc_called(this, "_ZN7ee310203fooEv");}
+ee31020 ::~ee31020(){ note_dtor("ee31020", this);} // tgen
+ee31020 ::ee31020(){ note_ctor("ee31020", this);} // tgen
+
+static void Test_ee31020()
+{
+ extern Class_Descriptor cd_ee31020;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee31020, buf);
+ ee31020 *dp, &lv = *(dp=new (buf) ee31020());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee31020)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31020)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc020*), ABISELECT(40,20), "ee31020");
+ check_base_class_offset(lv, (bb20*)(cc020*), ABISELECT(32,16), "ee31020");
+ check_base_class_offset(lv, (cc020*)(dd1020*), ABISELECT(32,16), "ee31020");
+ check_base_class_offset(lv, (dd1020*), ABISELECT(16,8), "ee31020");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31020.e");
+ test_class_info(&lv, &cd_ee31020);
+ dp->~ee31020();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31020(Test_ee31020, "ee31020", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee31020C1Ev();
+extern void _ZN7ee31020D1Ev();
+Name_Map name_map_ee31020[] = {
+ NSPAIR(_ZN7ee31020C1Ev),
+ NSPAIR(_ZN7ee31020D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc020;
+extern VTBL_ENTRY _ZTI5cc020[];
+extern VTBL_ENTRY _ZTV5cc020[];
+extern Class_Descriptor cd_dd1020;
+extern VTBL_ENTRY _ZTI6dd1020[];
+extern VTBL_ENTRY _ZTV6dd1020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1020[];
+static Base_Class bases_ee31020[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc020, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1020, 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 _ZTI7ee31020[];
+extern void _ZN7ee310203fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee310203fooEv,_ZTv0_n12_N7ee310203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee310203fooEv,_ZThn16_N7ee310203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee31020[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31020[0]),
+ (VTBL_ENTRY)&_ZN7ee310203fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31020[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31020[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee310203fooEv,_ZTv0_n12_N7ee310203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee31020[];
+static VTBL_ENTRY _tg__ZTV6dd1020__7ee31020[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1020[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb205cc020__6dd1020__7ee31020[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1020[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee31020[] = {
+ {&(_ZTV7ee31020[4]), 4,12},
+ {&(_ZTV7ee31020[8]), 8,12},
+ {&(_ZTV7ee31020[11]), 11,12},
+ {&(_tg__ZTV6dd1020__7ee31020[3]), 3,3},
+ {&(_tg__ZTV4bb205cc020__6dd1020__7ee31020[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee31020[];
+extern VTBL_ENTRY _ZTV7ee31020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31020[];
+static VTBL_ENTRY alt_thunk_names4[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee310203fooEv,_ZTv0_n12_N7ee310203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee310203fooEv,_ZThn16_N7ee310203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31020 = { "ee31020", // class name
+ bases_ee31020, 4,
+ &(vtc_ee31020[0]), // expected_vtbl_contents
+ &(vtt_ee31020[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee31020),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31020),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31020),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names4,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee41020 : dd1020 {
+ int e;
+ virtual void bar(); // _ZN7ee410203barEv
+ ~ee41020(); // tgen
+ ee41020(); // tgen
+};
+//SIG(1 ee41020) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v2 Fi} Fi} Fi} v1 Fi}
+
+
+void ee41020 ::bar(){vfunc_called(this, "_ZN7ee410203barEv");}
+ee41020 ::~ee41020(){ note_dtor("ee41020", this);} // tgen
+ee41020 ::ee41020(){ note_ctor("ee41020", this);} // tgen
+
+static void Test_ee41020()
+{
+ extern Class_Descriptor cd_ee41020;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee41020, buf);
+ ee41020 *dp, &lv = *(dp=new (buf) ee41020());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee41020)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41020)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc020*), ABISELECT(24,16), "ee41020");
+ check_base_class_offset(lv, (bb20*)(cc020*), ABISELECT(16,12), "ee41020");
+ check_base_class_offset(lv, (cc020*)(dd1020*), ABISELECT(16,12), "ee41020");
+ check_base_class_offset(lv, (dd1020*), 0, "ee41020");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41020.e");
+ test_class_info(&lv, &cd_ee41020);
+ dp->~ee41020();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41020(Test_ee41020, "ee41020", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee41020C1Ev();
+extern void _ZN7ee41020D1Ev();
+Name_Map name_map_ee41020[] = {
+ NSPAIR(_ZN7ee41020C1Ev),
+ NSPAIR(_ZN7ee41020D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc020;
+extern VTBL_ENTRY _ZTI5cc020[];
+extern VTBL_ENTRY _ZTV5cc020[];
+extern Class_Descriptor cd_dd1020;
+extern VTBL_ENTRY _ZTI6dd1020[];
+extern VTBL_ENTRY _ZTV6dd1020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1020[];
+static Base_Class bases_ee41020[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc020, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1020, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee41020[];
+extern void _ZN7ee410203barEv();
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY vtc_ee41020[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41020[0]),
+ (VTBL_ENTRY)&_ZN7ee410203barEv,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41020[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee41020[];
+static VTBL_ENTRY _tg__ZTV6dd1020__7ee41020[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1020[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb205cc020__6dd1020__7ee41020[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1020[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee41020[] = {
+ {&(_ZTV7ee41020[3]), 3,8},
+ {&(_tg__ZTV6dd1020__7ee41020[3]), 3,3},
+ {&(_tg__ZTV4bb205cc020__6dd1020__7ee41020[3]), 3,4},
+ {&(_ZTV7ee41020[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee41020[];
+extern VTBL_ENTRY _ZTV7ee41020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41020[];
+Class_Descriptor cd_ee41020 = { "ee41020", // class name
+ bases_ee41020, 4,
+ &(vtc_ee41020[0]), // expected_vtbl_contents
+ &(vtt_ee41020[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee41020),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41020),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41020),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 ee51020 : virtual dd1020 {
+ int e;
+ virtual void bar(); // _ZN7ee510203barEv
+ ~ee51020(); // tgen
+ ee51020(); // tgen
+};
+//SIG(1 ee51020) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v2 Fi} Fi} Fi} v1 Fi}
+
+
+void ee51020 ::bar(){vfunc_called(this, "_ZN7ee510203barEv");}
+ee51020 ::~ee51020(){ note_dtor("ee51020", this);} // tgen
+ee51020 ::ee51020(){ note_ctor("ee51020", this);} // tgen
+
+static void Test_ee51020()
+{
+ extern Class_Descriptor cd_ee51020;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee51020, buf);
+ ee51020 *dp, &lv = *(dp=new (buf) ee51020());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee51020)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51020)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc020*), ABISELECT(40,20), "ee51020");
+ check_base_class_offset(lv, (bb20*)(cc020*), ABISELECT(32,16), "ee51020");
+ check_base_class_offset(lv, (cc020*)(dd1020*), ABISELECT(32,16), "ee51020");
+ check_base_class_offset(lv, (dd1020*), ABISELECT(16,8), "ee51020");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51020.e");
+ test_class_info(&lv, &cd_ee51020);
+ dp->~ee51020();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51020(Test_ee51020, "ee51020", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee51020C1Ev();
+extern void _ZN7ee51020D1Ev();
+Name_Map name_map_ee51020[] = {
+ NSPAIR(_ZN7ee51020C1Ev),
+ NSPAIR(_ZN7ee51020D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc020;
+extern VTBL_ENTRY _ZTI5cc020[];
+extern VTBL_ENTRY _ZTV5cc020[];
+extern Class_Descriptor cd_dd1020;
+extern VTBL_ENTRY _ZTI6dd1020[];
+extern VTBL_ENTRY _ZTV6dd1020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1020[];
+static Base_Class bases_ee51020[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc020, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1020, 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 _ZTI7ee51020[];
+extern void _ZN7ee510203barEv();
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY vtc_ee51020[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51020[0]),
+ (VTBL_ENTRY)&_ZN7ee510203barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51020[0]),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51020[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee51020[];
+static VTBL_ENTRY _tg__ZTV6dd1020__7ee51020[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1020[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb205cc020__6dd1020__7ee51020[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1020[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee51020[] = {
+ {&(_ZTV7ee51020[4]), 4,12},
+ {&(_ZTV7ee51020[8]), 8,12},
+ {&(_ZTV7ee51020[11]), 11,12},
+ {&(_tg__ZTV6dd1020__7ee51020[3]), 3,3},
+ {&(_tg__ZTV4bb205cc020__6dd1020__7ee51020[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee51020[];
+extern VTBL_ENTRY _ZTV7ee51020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51020[];
+Class_Descriptor cd_ee51020 = { "ee51020", // class name
+ bases_ee51020, 4,
+ &(vtc_ee51020[0]), // expected_vtbl_contents
+ &(vtt_ee51020[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee51020),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51020),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51020),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 ee61020 : dd1020 {
+ int e;
+ virtual void foo(); // _ZN7ee610203fooEv
+ virtual void bar(); // _ZN7ee610203barEv
+ ~ee61020(); // tgen
+ ee61020(); // tgen
+};
+//SIG(1 ee61020) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v1 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee61020 ::foo(){vfunc_called(this, "_ZN7ee610203fooEv");}
+void ee61020 ::bar(){vfunc_called(this, "_ZN7ee610203barEv");}
+ee61020 ::~ee61020(){ note_dtor("ee61020", this);} // tgen
+ee61020 ::ee61020(){ note_ctor("ee61020", this);} // tgen
+
+static void Test_ee61020()
+{
+ extern Class_Descriptor cd_ee61020;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee61020, buf);
+ ee61020 *dp, &lv = *(dp=new (buf) ee61020());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee61020)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61020)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc020*), ABISELECT(24,16), "ee61020");
+ check_base_class_offset(lv, (bb20*)(cc020*), ABISELECT(16,12), "ee61020");
+ check_base_class_offset(lv, (cc020*)(dd1020*), ABISELECT(16,12), "ee61020");
+ check_base_class_offset(lv, (dd1020*), 0, "ee61020");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61020.e");
+ test_class_info(&lv, &cd_ee61020);
+ dp->~ee61020();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61020(Test_ee61020, "ee61020", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee61020C1Ev();
+extern void _ZN7ee61020D1Ev();
+Name_Map name_map_ee61020[] = {
+ NSPAIR(_ZN7ee61020C1Ev),
+ NSPAIR(_ZN7ee61020D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc020;
+extern VTBL_ENTRY _ZTI5cc020[];
+extern VTBL_ENTRY _ZTV5cc020[];
+extern Class_Descriptor cd_dd1020;
+extern VTBL_ENTRY _ZTI6dd1020[];
+extern VTBL_ENTRY _ZTV6dd1020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1020[];
+static Base_Class bases_ee61020[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc020, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1020, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee61020[];
+extern void _ZN7ee610203fooEv();
+extern void _ZN7ee610203barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee610203fooEv,_ZTv0_n12_N7ee610203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee610203fooEv,_ZThn12_N7ee610203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61020[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61020[0]),
+ (VTBL_ENTRY)&_ZN7ee610203fooEv,
+ (VTBL_ENTRY)&_ZN7ee610203barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61020[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee610203fooEv,_ZTv0_n12_N7ee610203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee61020[];
+static VTBL_ENTRY _tg__ZTV6dd1020__7ee61020[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1020[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb205cc020__6dd1020__7ee61020[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1020[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee61020[] = {
+ {&(_ZTV7ee61020[3]), 3,9},
+ {&(_tg__ZTV6dd1020__7ee61020[3]), 3,3},
+ {&(_tg__ZTV4bb205cc020__6dd1020__7ee61020[3]), 3,4},
+ {&(_ZTV7ee61020[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee61020[];
+extern VTBL_ENTRY _ZTV7ee61020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61020[];
+static VTBL_ENTRY alt_thunk_names5[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee610203fooEv,_ZTv0_n12_N7ee610203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee610203fooEv,_ZThn12_N7ee610203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61020 = { "ee61020", // class name
+ bases_ee61020, 4,
+ &(vtc_ee61020[0]), // expected_vtbl_contents
+ &(vtt_ee61020[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee61020),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61020),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61020),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names5,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee71020 : virtual dd1020 {
+ int e;
+ virtual void foo(); // _ZN7ee710203fooEv
+ virtual void bar(); // _ZN7ee710203barEv
+ ~ee71020(); // tgen
+ ee71020(); // tgen
+};
+//SIG(1 ee71020) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v1 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee71020 ::foo(){vfunc_called(this, "_ZN7ee710203fooEv");}
+void ee71020 ::bar(){vfunc_called(this, "_ZN7ee710203barEv");}
+ee71020 ::~ee71020(){ note_dtor("ee71020", this);} // tgen
+ee71020 ::ee71020(){ note_ctor("ee71020", this);} // tgen
+
+static void Test_ee71020()
+{
+ extern Class_Descriptor cd_ee71020;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee71020, buf);
+ ee71020 *dp, &lv = *(dp=new (buf) ee71020());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee71020)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71020)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc020*), ABISELECT(40,20), "ee71020");
+ check_base_class_offset(lv, (bb20*)(cc020*), ABISELECT(32,16), "ee71020");
+ check_base_class_offset(lv, (cc020*)(dd1020*), ABISELECT(32,16), "ee71020");
+ check_base_class_offset(lv, (dd1020*), ABISELECT(16,8), "ee71020");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71020.e");
+ test_class_info(&lv, &cd_ee71020);
+ dp->~ee71020();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71020(Test_ee71020, "ee71020", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee71020C1Ev();
+extern void _ZN7ee71020D1Ev();
+Name_Map name_map_ee71020[] = {
+ NSPAIR(_ZN7ee71020C1Ev),
+ NSPAIR(_ZN7ee71020D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc020;
+extern VTBL_ENTRY _ZTI5cc020[];
+extern VTBL_ENTRY _ZTV5cc020[];
+extern Class_Descriptor cd_dd1020;
+extern VTBL_ENTRY _ZTI6dd1020[];
+extern VTBL_ENTRY _ZTV6dd1020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1020[];
+static Base_Class bases_ee71020[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc020, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1020, 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 _ZTI7ee71020[];
+extern void _ZN7ee710203fooEv();
+extern void _ZN7ee710203barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee710203fooEv,_ZTv0_n12_N7ee710203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee710203fooEv,_ZThn16_N7ee710203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71020[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71020[0]),
+ (VTBL_ENTRY)&_ZN7ee710203fooEv,
+ (VTBL_ENTRY)&_ZN7ee710203barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71020[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71020[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee710203fooEv,_ZTv0_n12_N7ee710203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee71020[];
+static VTBL_ENTRY _tg__ZTV6dd1020__7ee71020[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1020[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb205cc020__6dd1020__7ee71020[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1020[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee71020[] = {
+ {&(_ZTV7ee71020[4]), 4,13},
+ {&(_ZTV7ee71020[9]), 9,13},
+ {&(_ZTV7ee71020[12]), 12,13},
+ {&(_tg__ZTV6dd1020__7ee71020[3]), 3,3},
+ {&(_tg__ZTV4bb205cc020__6dd1020__7ee71020[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee71020[];
+extern VTBL_ENTRY _ZTV7ee71020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71020[];
+static VTBL_ENTRY alt_thunk_names6[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee710203fooEv,_ZTv0_n12_N7ee710203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee710203fooEv,_ZThn16_N7ee710203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71020 = { "ee71020", // class name
+ bases_ee71020, 4,
+ &(vtc_ee71020[0]), // expected_vtbl_contents
+ &(vtt_ee71020[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee71020),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71020),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71020),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names6,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd2020 : cc020 {
+ int d;
+ virtual void foo(); // _ZN6dd20203fooEv
+ ~dd2020(); // tgen
+ dd2020(); // tgen
+};
+//SIG(-1 dd2020) C1{ BC2{ BC3{ BC4{ Fi} v1 Fi} Fi} v1 Fi}
+
+
+void dd2020 ::foo(){vfunc_called(this, "_ZN6dd20203fooEv");}
+dd2020 ::~dd2020(){ note_dtor("dd2020", this);} // tgen
+dd2020 ::dd2020(){ note_ctor("dd2020", this);} // tgen
+
+static void Test_dd2020()
+{
+ extern Class_Descriptor cd_dd2020;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd2020, buf);
+ dd2020 *dp, &lv = *(dp=new (buf) dd2020());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd2020)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2020)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc020*), ABISELECT(8,4), "dd2020");
+ check_base_class_offset(lv, (bb20*)(cc020*), 0, "dd2020");
+ check_base_class_offset(lv, (cc020*), 0, "dd2020");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd2020.d");
+ test_class_info(&lv, &cd_dd2020);
+ dp->~dd2020();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2020(Test_dd2020, "dd2020", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd2020C1Ev();
+extern void _ZN6dd2020D1Ev();
+Name_Map name_map_dd2020[] = {
+ NSPAIR(_ZN6dd2020C1Ev),
+ NSPAIR(_ZN6dd2020D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc020;
+extern VTBL_ENTRY _ZTI5cc020[];
+extern VTBL_ENTRY _ZTV5cc020[];
+static Base_Class bases_dd2020[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc020, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI6dd2020[];
+extern void _ZN6dd20203fooEv();
+static VTBL_ENTRY vtc_dd2020[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2020[0]),
+ (VTBL_ENTRY)&_ZN6dd20203fooEv,
+};
+extern VTBL_ENTRY _ZTI6dd2020[];
+extern VTBL_ENTRY _ZTV6dd2020[];
+Class_Descriptor cd_dd2020 = { "dd2020", // class name
+ bases_dd2020, 3,
+ &(vtc_dd2020[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd2020),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2020),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 ee02020 : dd2020 {
+ int e;
+ ~ee02020(); // tgen
+ ee02020(); // tgen
+};
+//SIG(1 ee02020) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v1 Fi} Fi} v1 Fi} Fi}
+
+
+ee02020 ::~ee02020(){ note_dtor("ee02020", this);} // tgen
+ee02020 ::ee02020(){ note_ctor("ee02020", this);} // tgen
+
+static void Test_ee02020()
+{
+ extern Class_Descriptor cd_ee02020;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee02020, buf);
+ ee02020 *dp, &lv = *(dp=new (buf) ee02020());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee02020)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02020)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc020*)(dd2020*), ABISELECT(8,4), "ee02020");
+ check_base_class_offset(lv, (bb20*)(cc020*)(dd2020*), 0, "ee02020");
+ check_base_class_offset(lv, (cc020*)(dd2020*), 0, "ee02020");
+ check_base_class_offset(lv, (dd2020*), 0, "ee02020");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee02020.e");
+ test_class_info(&lv, &cd_ee02020);
+ dp->~ee02020();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02020(Test_ee02020, "ee02020", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee02020C1Ev();
+extern void _ZN7ee02020D1Ev();
+Name_Map name_map_ee02020[] = {
+ NSPAIR(_ZN7ee02020C1Ev),
+ NSPAIR(_ZN7ee02020D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc020;
+extern VTBL_ENTRY _ZTI5cc020[];
+extern VTBL_ENTRY _ZTV5cc020[];
+extern Class_Descriptor cd_dd2020;
+extern VTBL_ENTRY _ZTI6dd2020[];
+extern VTBL_ENTRY _ZTV6dd2020[];
+static Base_Class bases_ee02020[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc020, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2020, 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 _ZTI7ee02020[];
+extern void _ZN6dd20203fooEv();
+static VTBL_ENTRY vtc_ee02020[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02020[0]),
+ (VTBL_ENTRY)&_ZN6dd20203fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee02020[];
+extern VTBL_ENTRY _ZTV7ee02020[];
+Class_Descriptor cd_ee02020 = { "ee02020", // class name
+ bases_ee02020, 4,
+ &(vtc_ee02020[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee02020),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02020),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 ee12020 : virtual dd2020 {
+ int e;
+ ~ee12020(); // tgen
+ ee12020(); // tgen
+};
+//SIG(1 ee12020) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v1 Fi} Fi} v1 Fi} Fi}
+
+
+ee12020 ::~ee12020(){ note_dtor("ee12020", this);} // tgen
+ee12020 ::ee12020(){ note_ctor("ee12020", this);} // tgen
+
+static void Test_ee12020()
+{
+ extern Class_Descriptor cd_ee12020;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee12020, buf);
+ ee12020 *dp, &lv = *(dp=new (buf) ee12020());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee12020)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12020)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc020*)(dd2020*), ABISELECT(24,12), "ee12020");
+ check_base_class_offset(lv, (bb20*)(cc020*)(dd2020*), ABISELECT(16,8), "ee12020");
+ check_base_class_offset(lv, (cc020*)(dd2020*), ABISELECT(16,8), "ee12020");
+ check_base_class_offset(lv, (dd2020*), ABISELECT(16,8), "ee12020");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12020.e");
+ test_class_info(&lv, &cd_ee12020);
+ dp->~ee12020();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12020(Test_ee12020, "ee12020", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee12020C1Ev();
+extern void _ZN7ee12020D1Ev();
+Name_Map name_map_ee12020[] = {
+ NSPAIR(_ZN7ee12020C1Ev),
+ NSPAIR(_ZN7ee12020D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc020;
+extern VTBL_ENTRY _ZTI5cc020[];
+extern VTBL_ENTRY _ZTV5cc020[];
+extern Class_Descriptor cd_dd2020;
+extern VTBL_ENTRY _ZTI6dd2020[];
+extern VTBL_ENTRY _ZTV6dd2020[];
+static Base_Class bases_ee12020[] = {
+ // 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_bb20, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc020, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2020, 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 _ZTI7ee12020[];
+extern void _ZN6dd20203fooEv();
+static VTBL_ENTRY vtc_ee12020[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12020[0]),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12020[0]),
+ (VTBL_ENTRY)&_ZN6dd20203fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee12020[];
+static VTT_ENTRY vtt_ee12020[] = {
+ {&(_ZTV7ee12020[3]), 3,7},
+ {&(_ZTV7ee12020[6]), 6,7},
+};
+extern VTBL_ENTRY _ZTI7ee12020[];
+extern VTBL_ENTRY _ZTV7ee12020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12020[];
+Class_Descriptor cd_ee12020 = { "ee12020", // class name
+ bases_ee12020, 4,
+ &(vtc_ee12020[0]), // expected_vtbl_contents
+ &(vtt_ee12020[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee12020),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12020),7, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12020),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 ee22020 : dd2020 {
+ int e;
+ virtual void foo(); // _ZN7ee220203fooEv
+ ~ee22020(); // tgen
+ ee22020(); // tgen
+};
+//SIG(1 ee22020) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee22020 ::foo(){vfunc_called(this, "_ZN7ee220203fooEv");}
+ee22020 ::~ee22020(){ note_dtor("ee22020", this);} // tgen
+ee22020 ::ee22020(){ note_ctor("ee22020", this);} // tgen
+
+static void Test_ee22020()
+{
+ extern Class_Descriptor cd_ee22020;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee22020, buf);
+ ee22020 *dp, &lv = *(dp=new (buf) ee22020());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee22020)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22020)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc020*)(dd2020*), ABISELECT(8,4), "ee22020");
+ check_base_class_offset(lv, (bb20*)(cc020*)(dd2020*), 0, "ee22020");
+ check_base_class_offset(lv, (cc020*)(dd2020*), 0, "ee22020");
+ check_base_class_offset(lv, (dd2020*), 0, "ee22020");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee22020.e");
+ test_class_info(&lv, &cd_ee22020);
+ dp->~ee22020();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22020(Test_ee22020, "ee22020", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee22020C1Ev();
+extern void _ZN7ee22020D1Ev();
+Name_Map name_map_ee22020[] = {
+ NSPAIR(_ZN7ee22020C1Ev),
+ NSPAIR(_ZN7ee22020D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc020;
+extern VTBL_ENTRY _ZTI5cc020[];
+extern VTBL_ENTRY _ZTV5cc020[];
+extern Class_Descriptor cd_dd2020;
+extern VTBL_ENTRY _ZTI6dd2020[];
+extern VTBL_ENTRY _ZTV6dd2020[];
+static Base_Class bases_ee22020[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc020, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2020, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee22020[];
+extern void _ZN7ee220203fooEv();
+static VTBL_ENTRY vtc_ee22020[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22020[0]),
+ (VTBL_ENTRY)&_ZN7ee220203fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee22020[];
+extern VTBL_ENTRY _ZTV7ee22020[];
+Class_Descriptor cd_ee22020 = { "ee22020", // class name
+ bases_ee22020, 4,
+ &(vtc_ee22020[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee22020),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22020),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 ee32020 : virtual dd2020 {
+ int e;
+ virtual void foo(); // _ZN7ee320203fooEv
+ ~ee32020(); // tgen
+ ee32020(); // tgen
+};
+//SIG(1 ee32020) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee32020 ::foo(){vfunc_called(this, "_ZN7ee320203fooEv");}
+ee32020 ::~ee32020(){ note_dtor("ee32020", this);} // tgen
+ee32020 ::ee32020(){ note_ctor("ee32020", this);} // tgen
+
+static void Test_ee32020()
+{
+ extern Class_Descriptor cd_ee32020;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee32020, buf);
+ ee32020 *dp, &lv = *(dp=new (buf) ee32020());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee32020)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32020)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc020*)(dd2020*), ABISELECT(24,12), "ee32020");
+ check_base_class_offset(lv, (bb20*)(cc020*)(dd2020*), ABISELECT(16,8), "ee32020");
+ check_base_class_offset(lv, (cc020*)(dd2020*), ABISELECT(16,8), "ee32020");
+ check_base_class_offset(lv, (dd2020*), ABISELECT(16,8), "ee32020");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32020.e");
+ test_class_info(&lv, &cd_ee32020);
+ dp->~ee32020();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32020(Test_ee32020, "ee32020", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee32020C1Ev();
+extern void _ZN7ee32020D1Ev();
+Name_Map name_map_ee32020[] = {
+ NSPAIR(_ZN7ee32020C1Ev),
+ NSPAIR(_ZN7ee32020D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc020;
+extern VTBL_ENTRY _ZTI5cc020[];
+extern VTBL_ENTRY _ZTV5cc020[];
+extern Class_Descriptor cd_dd2020;
+extern VTBL_ENTRY _ZTI6dd2020[];
+extern VTBL_ENTRY _ZTV6dd2020[];
+static Base_Class bases_ee32020[] = {
+ // 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_bb20, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc020, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2020, 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 _ZTI7ee32020[];
+extern void _ZN7ee320203fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee320203fooEv,_ZTv0_n12_N7ee320203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee320203fooEv,_ZThn8_N7ee320203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee32020[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32020[0]),
+ (VTBL_ENTRY)&_ZN7ee320203fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32020[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee320203fooEv,_ZTv0_n12_N7ee320203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee32020[];
+static VTT_ENTRY vtt_ee32020[] = {
+ {&(_ZTV7ee32020[3]), 3,8},
+ {&(_ZTV7ee32020[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee32020[];
+extern VTBL_ENTRY _ZTV7ee32020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32020[];
+static VTBL_ENTRY alt_thunk_names7[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee320203fooEv,_ZTv0_n12_N7ee320203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee320203fooEv,_ZThn8_N7ee320203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32020 = { "ee32020", // class name
+ bases_ee32020, 4,
+ &(vtc_ee32020[0]), // expected_vtbl_contents
+ &(vtt_ee32020[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee32020),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32020),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32020),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names7,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee42020 : dd2020 {
+ int e;
+ virtual void bar(); // _ZN7ee420203barEv
+ ~ee42020(); // tgen
+ ee42020(); // tgen
+};
+//SIG(1 ee42020) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee42020 ::bar(){vfunc_called(this, "_ZN7ee420203barEv");}
+ee42020 ::~ee42020(){ note_dtor("ee42020", this);} // tgen
+ee42020 ::ee42020(){ note_ctor("ee42020", this);} // tgen
+
+static void Test_ee42020()
+{
+ extern Class_Descriptor cd_ee42020;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee42020, buf);
+ ee42020 *dp, &lv = *(dp=new (buf) ee42020());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee42020)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42020)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc020*)(dd2020*), ABISELECT(8,4), "ee42020");
+ check_base_class_offset(lv, (bb20*)(cc020*)(dd2020*), 0, "ee42020");
+ check_base_class_offset(lv, (cc020*)(dd2020*), 0, "ee42020");
+ check_base_class_offset(lv, (dd2020*), 0, "ee42020");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee42020.e");
+ test_class_info(&lv, &cd_ee42020);
+ dp->~ee42020();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42020(Test_ee42020, "ee42020", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee42020C1Ev();
+extern void _ZN7ee42020D1Ev();
+Name_Map name_map_ee42020[] = {
+ NSPAIR(_ZN7ee42020C1Ev),
+ NSPAIR(_ZN7ee42020D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc020;
+extern VTBL_ENTRY _ZTI5cc020[];
+extern VTBL_ENTRY _ZTV5cc020[];
+extern Class_Descriptor cd_dd2020;
+extern VTBL_ENTRY _ZTI6dd2020[];
+extern VTBL_ENTRY _ZTV6dd2020[];
+static Base_Class bases_ee42020[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc020, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2020, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee42020[];
+extern void _ZN6dd20203fooEv();
+extern void _ZN7ee420203barEv();
+static VTBL_ENTRY vtc_ee42020[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42020[0]),
+ (VTBL_ENTRY)&_ZN6dd20203fooEv,
+ (VTBL_ENTRY)&_ZN7ee420203barEv,
+};
+extern VTBL_ENTRY _ZTI7ee42020[];
+extern VTBL_ENTRY _ZTV7ee42020[];
+Class_Descriptor cd_ee42020 = { "ee42020", // class name
+ bases_ee42020, 4,
+ &(vtc_ee42020[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee42020),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42020),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 ee52020 : virtual dd2020 {
+ int e;
+ virtual void bar(); // _ZN7ee520203barEv
+ ~ee52020(); // tgen
+ ee52020(); // tgen
+};
+//SIG(1 ee52020) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee52020 ::bar(){vfunc_called(this, "_ZN7ee520203barEv");}
+ee52020 ::~ee52020(){ note_dtor("ee52020", this);} // tgen
+ee52020 ::ee52020(){ note_ctor("ee52020", this);} // tgen
+
+static void Test_ee52020()
+{
+ extern Class_Descriptor cd_ee52020;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee52020, buf);
+ ee52020 *dp, &lv = *(dp=new (buf) ee52020());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee52020)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52020)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc020*)(dd2020*), ABISELECT(24,12), "ee52020");
+ check_base_class_offset(lv, (bb20*)(cc020*)(dd2020*), ABISELECT(16,8), "ee52020");
+ check_base_class_offset(lv, (cc020*)(dd2020*), ABISELECT(16,8), "ee52020");
+ check_base_class_offset(lv, (dd2020*), ABISELECT(16,8), "ee52020");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52020.e");
+ test_class_info(&lv, &cd_ee52020);
+ dp->~ee52020();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52020(Test_ee52020, "ee52020", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee52020C1Ev();
+extern void _ZN7ee52020D1Ev();
+Name_Map name_map_ee52020[] = {
+ NSPAIR(_ZN7ee52020C1Ev),
+ NSPAIR(_ZN7ee52020D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc020;
+extern VTBL_ENTRY _ZTI5cc020[];
+extern VTBL_ENTRY _ZTV5cc020[];
+extern Class_Descriptor cd_dd2020;
+extern VTBL_ENTRY _ZTI6dd2020[];
+extern VTBL_ENTRY _ZTV6dd2020[];
+static Base_Class bases_ee52020[] = {
+ // 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_bb20, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc020, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2020, 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 _ZTI7ee52020[];
+extern void _ZN7ee520203barEv();
+extern void _ZN6dd20203fooEv();
+static VTBL_ENTRY vtc_ee52020[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52020[0]),
+ (VTBL_ENTRY)&_ZN7ee520203barEv,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52020[0]),
+ (VTBL_ENTRY)&_ZN6dd20203fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee52020[];
+static VTT_ENTRY vtt_ee52020[] = {
+ {&(_ZTV7ee52020[3]), 3,8},
+ {&(_ZTV7ee52020[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee52020[];
+extern VTBL_ENTRY _ZTV7ee52020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52020[];
+Class_Descriptor cd_ee52020 = { "ee52020", // class name
+ bases_ee52020, 4,
+ &(vtc_ee52020[0]), // expected_vtbl_contents
+ &(vtt_ee52020[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee52020),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52020),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52020),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 ee62020 : dd2020 {
+ int e;
+ virtual void foo(); // _ZN7ee620203fooEv
+ virtual void bar(); // _ZN7ee620203barEv
+ ~ee62020(); // tgen
+ ee62020(); // tgen
+};
+//SIG(1 ee62020) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v1 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62020 ::foo(){vfunc_called(this, "_ZN7ee620203fooEv");}
+void ee62020 ::bar(){vfunc_called(this, "_ZN7ee620203barEv");}
+ee62020 ::~ee62020(){ note_dtor("ee62020", this);} // tgen
+ee62020 ::ee62020(){ note_ctor("ee62020", this);} // tgen
+
+static void Test_ee62020()
+{
+ extern Class_Descriptor cd_ee62020;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee62020, buf);
+ ee62020 *dp, &lv = *(dp=new (buf) ee62020());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee62020)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62020)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc020*)(dd2020*), ABISELECT(8,4), "ee62020");
+ check_base_class_offset(lv, (bb20*)(cc020*)(dd2020*), 0, "ee62020");
+ check_base_class_offset(lv, (cc020*)(dd2020*), 0, "ee62020");
+ check_base_class_offset(lv, (dd2020*), 0, "ee62020");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee62020.e");
+ test_class_info(&lv, &cd_ee62020);
+ dp->~ee62020();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62020(Test_ee62020, "ee62020", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee62020C1Ev();
+extern void _ZN7ee62020D1Ev();
+Name_Map name_map_ee62020[] = {
+ NSPAIR(_ZN7ee62020C1Ev),
+ NSPAIR(_ZN7ee62020D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc020;
+extern VTBL_ENTRY _ZTI5cc020[];
+extern VTBL_ENTRY _ZTV5cc020[];
+extern Class_Descriptor cd_dd2020;
+extern VTBL_ENTRY _ZTI6dd2020[];
+extern VTBL_ENTRY _ZTV6dd2020[];
+static Base_Class bases_ee62020[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc020, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2020, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee62020[];
+extern void _ZN7ee620203fooEv();
+extern void _ZN7ee620203barEv();
+static VTBL_ENTRY vtc_ee62020[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62020[0]),
+ (VTBL_ENTRY)&_ZN7ee620203fooEv,
+ (VTBL_ENTRY)&_ZN7ee620203barEv,
+};
+extern VTBL_ENTRY _ZTI7ee62020[];
+extern VTBL_ENTRY _ZTV7ee62020[];
+Class_Descriptor cd_ee62020 = { "ee62020", // class name
+ bases_ee62020, 4,
+ &(vtc_ee62020[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee62020),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62020),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 ee72020 : virtual dd2020 {
+ int e;
+ virtual void foo(); // _ZN7ee720203fooEv
+ virtual void bar(); // _ZN7ee720203barEv
+ ~ee72020(); // tgen
+ ee72020(); // tgen
+};
+//SIG(1 ee72020) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v1 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72020 ::foo(){vfunc_called(this, "_ZN7ee720203fooEv");}
+void ee72020 ::bar(){vfunc_called(this, "_ZN7ee720203barEv");}
+ee72020 ::~ee72020(){ note_dtor("ee72020", this);} // tgen
+ee72020 ::ee72020(){ note_ctor("ee72020", this);} // tgen
+
+static void Test_ee72020()
+{
+ extern Class_Descriptor cd_ee72020;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee72020, buf);
+ ee72020 *dp, &lv = *(dp=new (buf) ee72020());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee72020)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72020)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc020*)(dd2020*), ABISELECT(24,12), "ee72020");
+ check_base_class_offset(lv, (bb20*)(cc020*)(dd2020*), ABISELECT(16,8), "ee72020");
+ check_base_class_offset(lv, (cc020*)(dd2020*), ABISELECT(16,8), "ee72020");
+ check_base_class_offset(lv, (dd2020*), ABISELECT(16,8), "ee72020");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72020.e");
+ test_class_info(&lv, &cd_ee72020);
+ dp->~ee72020();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72020(Test_ee72020, "ee72020", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee72020C1Ev();
+extern void _ZN7ee72020D1Ev();
+Name_Map name_map_ee72020[] = {
+ NSPAIR(_ZN7ee72020C1Ev),
+ NSPAIR(_ZN7ee72020D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc020;
+extern VTBL_ENTRY _ZTI5cc020[];
+extern VTBL_ENTRY _ZTV5cc020[];
+extern Class_Descriptor cd_dd2020;
+extern VTBL_ENTRY _ZTI6dd2020[];
+extern VTBL_ENTRY _ZTV6dd2020[];
+static Base_Class bases_ee72020[] = {
+ // 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_bb20, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc020, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2020, 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 _ZTI7ee72020[];
+extern void _ZN7ee720203fooEv();
+extern void _ZN7ee720203barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee720203fooEv,_ZTv0_n12_N7ee720203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee720203fooEv,_ZThn8_N7ee720203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72020[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72020[0]),
+ (VTBL_ENTRY)&_ZN7ee720203fooEv,
+ (VTBL_ENTRY)&_ZN7ee720203barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72020[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee720203fooEv,_ZTv0_n12_N7ee720203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee72020[];
+static VTT_ENTRY vtt_ee72020[] = {
+ {&(_ZTV7ee72020[3]), 3,9},
+ {&(_ZTV7ee72020[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee72020[];
+extern VTBL_ENTRY _ZTV7ee72020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72020[];
+static VTBL_ENTRY alt_thunk_names8[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee720203fooEv,_ZTv0_n12_N7ee720203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee720203fooEv,_ZThn8_N7ee720203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72020 = { "ee72020", // class name
+ bases_ee72020, 4,
+ &(vtc_ee72020[0]), // expected_vtbl_contents
+ &(vtt_ee72020[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee72020),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72020),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72020),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names8,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd3020 : virtual cc020 {
+ int d;
+ virtual void foo(); // _ZN6dd30203fooEv
+ ~dd3020(); // tgen
+ dd3020(); // tgen
+};
+//SIG(-1 dd3020) C1{ VBC2{ BC3{ BC4{ Fi} v1 Fi} Fi} v1 Fi}
+
+
+void dd3020 ::foo(){vfunc_called(this, "_ZN6dd30203fooEv");}
+dd3020 ::~dd3020(){ note_dtor("dd3020", this);} // tgen
+dd3020 ::dd3020(){ note_ctor("dd3020", this);} // tgen
+
+static void Test_dd3020()
+{
+ extern Class_Descriptor cd_dd3020;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd3020, buf);
+ dd3020 *dp, &lv = *(dp=new (buf) dd3020());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd3020)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3020)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc020*), ABISELECT(24,12), "dd3020");
+ check_base_class_offset(lv, (bb20*)(cc020*), ABISELECT(16,8), "dd3020");
+ check_base_class_offset(lv, (cc020*), ABISELECT(16,8), "dd3020");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3020.d");
+ test_class_info(&lv, &cd_dd3020);
+ dp->~dd3020();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3020(Test_dd3020, "dd3020", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd3020C1Ev();
+extern void _ZN6dd3020D1Ev();
+Name_Map name_map_dd3020[] = {
+ NSPAIR(_ZN6dd3020C1Ev),
+ NSPAIR(_ZN6dd3020D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc020;
+extern VTBL_ENTRY _ZTI5cc020[];
+extern VTBL_ENTRY _ZTV5cc020[];
+static Base_Class bases_dd3020[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc020, 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 _ZTI6dd3020[];
+extern void _ZN6dd30203fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd30203fooEv,_ZTv0_n12_N6dd30203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30203fooEv,_ZThn8_N6dd30203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd3020[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3020[0]),
+ (VTBL_ENTRY)&_ZN6dd30203fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3020[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30203fooEv,_ZTv0_n12_N6dd30203fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd3020[];
+static VTT_ENTRY vtt_dd3020[] = {
+ {&(_ZTV6dd3020[3]), 3,8},
+ {&(_ZTV6dd3020[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI6dd3020[];
+extern VTBL_ENTRY _ZTV6dd3020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3020[];
+static VTBL_ENTRY alt_thunk_names9[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30203fooEv,_ZTv0_n12_N6dd30203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30203fooEv,_ZThn8_N6dd30203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3020 = { "dd3020", // class name
+ bases_dd3020, 3,
+ &(vtc_dd3020[0]), // expected_vtbl_contents
+ &(vtt_dd3020[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd3020),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3020),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3020),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names9,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03020 : dd3020 {
+ int e;
+ ~ee03020(); // tgen
+ ee03020(); // tgen
+};
+//SIG(1 ee03020) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v1 Fi} Fi} v1 Fi} Fi}
+
+
+ee03020 ::~ee03020(){ note_dtor("ee03020", this);} // tgen
+ee03020 ::ee03020(){ note_ctor("ee03020", this);} // tgen
+
+static void Test_ee03020()
+{
+ extern Class_Descriptor cd_ee03020;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee03020, buf);
+ ee03020 *dp, &lv = *(dp=new (buf) ee03020());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee03020)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03020)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc020*), ABISELECT(24,16), "ee03020");
+ check_base_class_offset(lv, (bb20*)(cc020*), ABISELECT(16,12), "ee03020");
+ check_base_class_offset(lv, (cc020*)(dd3020*), ABISELECT(16,12), "ee03020");
+ check_base_class_offset(lv, (dd3020*), 0, "ee03020");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03020.e");
+ test_class_info(&lv, &cd_ee03020);
+ dp->~ee03020();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03020(Test_ee03020, "ee03020", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee03020C1Ev();
+extern void _ZN7ee03020D1Ev();
+Name_Map name_map_ee03020[] = {
+ NSPAIR(_ZN7ee03020C1Ev),
+ NSPAIR(_ZN7ee03020D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc020;
+extern VTBL_ENTRY _ZTI5cc020[];
+extern VTBL_ENTRY _ZTV5cc020[];
+extern Class_Descriptor cd_dd3020;
+extern VTBL_ENTRY _ZTI6dd3020[];
+extern VTBL_ENTRY _ZTV6dd3020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3020[];
+static Base_Class bases_ee03020[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc020, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3020, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee03020[];
+extern void _ZN6dd30203fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd30203fooEv,_ZTv0_n12_N6dd30203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30203fooEv,_ZThn12_N6dd30203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee03020[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03020[0]),
+ (VTBL_ENTRY)&_ZN6dd30203fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03020[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30203fooEv,_ZTv0_n12_N6dd30203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee03020[];
+extern void _ZN6dd30203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3020__7ee03020[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3020[0]),
+ (VTBL_ENTRY)&_ZN6dd30203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd30203fooEv,_ZTv0_n12_N6dd30203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30203fooEv,_ZThn12_N6dd30203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb205cc020__6dd3020__7ee03020[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3020[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30203fooEv,_ZTv0_n12_N6dd30203fooEv),
+};
+static VTT_ENTRY vtt_ee03020[] = {
+ {&(_ZTV7ee03020[3]), 3,8},
+ {&(_tg__ZTV6dd3020__7ee03020[3]), 3,4},
+ {&(_tg__ZTV4bb205cc020__6dd3020__7ee03020[3]), 3,4},
+ {&(_ZTV7ee03020[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee03020[];
+extern VTBL_ENTRY _ZTV7ee03020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03020[];
+static VTBL_ENTRY alt_thunk_names10[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30203fooEv,_ZTv0_n12_N6dd30203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30203fooEv,_ZThn12_N6dd30203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30203fooEv,_ZThn12_N6dd30203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03020 = { "ee03020", // class name
+ bases_ee03020, 4,
+ &(vtc_ee03020[0]), // expected_vtbl_contents
+ &(vtt_ee03020[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee03020),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03020),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03020),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names10,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee13020 : virtual dd3020 {
+ int e;
+ ~ee13020(); // tgen
+ ee13020(); // tgen
+};
+//SIG(1 ee13020) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v1 Fi} Fi} v1 Fi} Fi}
+
+
+ee13020 ::~ee13020(){ note_dtor("ee13020", this);} // tgen
+ee13020 ::ee13020(){ note_ctor("ee13020", this);} // tgen
+
+static void Test_ee13020()
+{
+ extern Class_Descriptor cd_ee13020;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee13020, buf);
+ ee13020 *dp, &lv = *(dp=new (buf) ee13020());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee13020)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13020)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc020*), ABISELECT(40,20), "ee13020");
+ check_base_class_offset(lv, (bb20*)(cc020*), ABISELECT(32,16), "ee13020");
+ check_base_class_offset(lv, (cc020*)(dd3020*), ABISELECT(32,16), "ee13020");
+ check_base_class_offset(lv, (dd3020*), ABISELECT(16,8), "ee13020");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13020.e");
+ test_class_info(&lv, &cd_ee13020);
+ dp->~ee13020();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13020(Test_ee13020, "ee13020", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee13020C1Ev();
+extern void _ZN7ee13020D1Ev();
+Name_Map name_map_ee13020[] = {
+ NSPAIR(_ZN7ee13020C1Ev),
+ NSPAIR(_ZN7ee13020D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc020;
+extern VTBL_ENTRY _ZTI5cc020[];
+extern VTBL_ENTRY _ZTV5cc020[];
+extern Class_Descriptor cd_dd3020;
+extern VTBL_ENTRY _ZTI6dd3020[];
+extern VTBL_ENTRY _ZTV6dd3020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3020[];
+static Base_Class bases_ee13020[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc020, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3020, 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 _ZTI7ee13020[];
+extern void _ZN6dd30203fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd30203fooEv,_ZTv0_n12_N6dd30203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30203fooEv,_ZThn8_N6dd30203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee13020[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13020[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13020[0]),
+ (VTBL_ENTRY)&_ZN6dd30203fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13020[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30203fooEv,_ZTv0_n12_N6dd30203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee13020[];
+extern void _ZN6dd30203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3020__7ee13020[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3020[0]),
+ (VTBL_ENTRY)&_ZN6dd30203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd30203fooEv,_ZTv0_n12_N6dd30203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30203fooEv,_ZThn8_N6dd30203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb205cc020__6dd3020__7ee13020[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3020[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30203fooEv,_ZTv0_n12_N6dd30203fooEv),
+};
+static VTT_ENTRY vtt_ee13020[] = {
+ {&(_ZTV7ee13020[4]), 4,13},
+ {&(_ZTV7ee13020[8]), 8,13},
+ {&(_ZTV7ee13020[12]), 12,13},
+ {&(_tg__ZTV6dd3020__7ee13020[3]), 3,4},
+ {&(_tg__ZTV4bb205cc020__6dd3020__7ee13020[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee13020[];
+extern VTBL_ENTRY _ZTV7ee13020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13020[];
+static VTBL_ENTRY alt_thunk_names11[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30203fooEv,_ZTv0_n12_N6dd30203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30203fooEv,_ZThn8_N6dd30203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30203fooEv,_ZThn8_N6dd30203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13020 = { "ee13020", // class name
+ bases_ee13020, 4,
+ &(vtc_ee13020[0]), // expected_vtbl_contents
+ &(vtt_ee13020[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee13020),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13020),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13020),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names11,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee23020 : dd3020 {
+ int e;
+ virtual void foo(); // _ZN7ee230203fooEv
+ ~ee23020(); // tgen
+ ee23020(); // tgen
+};
+//SIG(1 ee23020) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee23020 ::foo(){vfunc_called(this, "_ZN7ee230203fooEv");}
+ee23020 ::~ee23020(){ note_dtor("ee23020", this);} // tgen
+ee23020 ::ee23020(){ note_ctor("ee23020", this);} // tgen
+
+static void Test_ee23020()
+{
+ extern Class_Descriptor cd_ee23020;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee23020, buf);
+ ee23020 *dp, &lv = *(dp=new (buf) ee23020());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee23020)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23020)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc020*), ABISELECT(24,16), "ee23020");
+ check_base_class_offset(lv, (bb20*)(cc020*), ABISELECT(16,12), "ee23020");
+ check_base_class_offset(lv, (cc020*)(dd3020*), ABISELECT(16,12), "ee23020");
+ check_base_class_offset(lv, (dd3020*), 0, "ee23020");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23020.e");
+ test_class_info(&lv, &cd_ee23020);
+ dp->~ee23020();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23020(Test_ee23020, "ee23020", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee23020C1Ev();
+extern void _ZN7ee23020D1Ev();
+Name_Map name_map_ee23020[] = {
+ NSPAIR(_ZN7ee23020C1Ev),
+ NSPAIR(_ZN7ee23020D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc020;
+extern VTBL_ENTRY _ZTI5cc020[];
+extern VTBL_ENTRY _ZTV5cc020[];
+extern Class_Descriptor cd_dd3020;
+extern VTBL_ENTRY _ZTI6dd3020[];
+extern VTBL_ENTRY _ZTV6dd3020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3020[];
+static Base_Class bases_ee23020[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc020, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3020, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee23020[];
+extern void _ZN7ee230203fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee230203fooEv,_ZTv0_n12_N7ee230203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee230203fooEv,_ZThn12_N7ee230203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee23020[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23020[0]),
+ (VTBL_ENTRY)&_ZN7ee230203fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23020[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee230203fooEv,_ZTv0_n12_N7ee230203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee23020[];
+extern void _ZN6dd30203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3020__7ee23020[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3020[0]),
+ (VTBL_ENTRY)&_ZN6dd30203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd30203fooEv,_ZTv0_n12_N6dd30203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30203fooEv,_ZThn12_N6dd30203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb205cc020__6dd3020__7ee23020[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3020[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30203fooEv,_ZTv0_n12_N6dd30203fooEv),
+};
+static VTT_ENTRY vtt_ee23020[] = {
+ {&(_ZTV7ee23020[3]), 3,8},
+ {&(_tg__ZTV6dd3020__7ee23020[3]), 3,4},
+ {&(_tg__ZTV4bb205cc020__6dd3020__7ee23020[3]), 3,4},
+ {&(_ZTV7ee23020[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee23020[];
+extern VTBL_ENTRY _ZTV7ee23020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23020[];
+static VTBL_ENTRY alt_thunk_names12[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30203fooEv,_ZTv0_n12_N6dd30203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30203fooEv,_ZThn12_N6dd30203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee230203fooEv,_ZTv0_n12_N7ee230203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee230203fooEv,_ZThn12_N7ee230203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23020 = { "ee23020", // class name
+ bases_ee23020, 4,
+ &(vtc_ee23020[0]), // expected_vtbl_contents
+ &(vtt_ee23020[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee23020),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23020),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23020),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names12,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee33020 : virtual dd3020 {
+ int e;
+ virtual void foo(); // _ZN7ee330203fooEv
+ ~ee33020(); // tgen
+ ee33020(); // tgen
+};
+//SIG(1 ee33020) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee33020 ::foo(){vfunc_called(this, "_ZN7ee330203fooEv");}
+ee33020 ::~ee33020(){ note_dtor("ee33020", this);} // tgen
+ee33020 ::ee33020(){ note_ctor("ee33020", this);} // tgen
+
+static void Test_ee33020()
+{
+ extern Class_Descriptor cd_ee33020;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee33020, buf);
+ ee33020 *dp, &lv = *(dp=new (buf) ee33020());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee33020)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33020)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc020*), ABISELECT(40,20), "ee33020");
+ check_base_class_offset(lv, (bb20*)(cc020*), ABISELECT(32,16), "ee33020");
+ check_base_class_offset(lv, (cc020*)(dd3020*), ABISELECT(32,16), "ee33020");
+ check_base_class_offset(lv, (dd3020*), ABISELECT(16,8), "ee33020");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33020.e");
+ test_class_info(&lv, &cd_ee33020);
+ dp->~ee33020();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33020(Test_ee33020, "ee33020", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee33020C1Ev();
+extern void _ZN7ee33020D1Ev();
+Name_Map name_map_ee33020[] = {
+ NSPAIR(_ZN7ee33020C1Ev),
+ NSPAIR(_ZN7ee33020D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc020;
+extern VTBL_ENTRY _ZTI5cc020[];
+extern VTBL_ENTRY _ZTV5cc020[];
+extern Class_Descriptor cd_dd3020;
+extern VTBL_ENTRY _ZTI6dd3020[];
+extern VTBL_ENTRY _ZTV6dd3020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3020[];
+static Base_Class bases_ee33020[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc020, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3020, 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 _ZTI7ee33020[];
+extern void _ZN7ee330203fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee330203fooEv,_ZTv0_n16_N7ee330203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee330203fooEv,_ZThn8_N7ee330203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee330203fooEv,_ZTv0_n12_N7ee330203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee330203fooEv,_ZThn16_N7ee330203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee33020[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33020[0]),
+ (VTBL_ENTRY)&_ZN7ee330203fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33020[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee330203fooEv,_ZTv0_n16_N7ee330203fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33020[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee330203fooEv,_ZTv0_n12_N7ee330203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee33020[];
+extern void _ZN6dd30203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3020__7ee33020[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3020[0]),
+ (VTBL_ENTRY)&_ZN6dd30203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd30203fooEv,_ZTv0_n12_N6dd30203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30203fooEv,_ZThn8_N6dd30203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb205cc020__6dd3020__7ee33020[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3020[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30203fooEv,_ZTv0_n12_N6dd30203fooEv),
+};
+static VTT_ENTRY vtt_ee33020[] = {
+ {&(_ZTV7ee33020[4]), 4,14},
+ {&(_ZTV7ee33020[9]), 9,14},
+ {&(_ZTV7ee33020[13]), 13,14},
+ {&(_tg__ZTV6dd3020__7ee33020[3]), 3,4},
+ {&(_tg__ZTV4bb205cc020__6dd3020__7ee33020[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee33020[];
+extern VTBL_ENTRY _ZTV7ee33020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33020[];
+static VTBL_ENTRY alt_thunk_names13[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30203fooEv,_ZTv0_n12_N6dd30203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30203fooEv,_ZThn8_N6dd30203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee330203fooEv,_ZTv0_n12_N7ee330203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee330203fooEv,_ZThn16_N7ee330203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee330203fooEv,_ZTv0_n16_N7ee330203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee330203fooEv,_ZThn8_N7ee330203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33020 = { "ee33020", // class name
+ bases_ee33020, 4,
+ &(vtc_ee33020[0]), // expected_vtbl_contents
+ &(vtt_ee33020[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee33020),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33020),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33020),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names13,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee43020 : dd3020 {
+ int e;
+ virtual void bar(); // _ZN7ee430203barEv
+ ~ee43020(); // tgen
+ ee43020(); // tgen
+};
+//SIG(1 ee43020) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee43020 ::bar(){vfunc_called(this, "_ZN7ee430203barEv");}
+ee43020 ::~ee43020(){ note_dtor("ee43020", this);} // tgen
+ee43020 ::ee43020(){ note_ctor("ee43020", this);} // tgen
+
+static void Test_ee43020()
+{
+ extern Class_Descriptor cd_ee43020;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee43020, buf);
+ ee43020 *dp, &lv = *(dp=new (buf) ee43020());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee43020)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43020)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc020*), ABISELECT(24,16), "ee43020");
+ check_base_class_offset(lv, (bb20*)(cc020*), ABISELECT(16,12), "ee43020");
+ check_base_class_offset(lv, (cc020*)(dd3020*), ABISELECT(16,12), "ee43020");
+ check_base_class_offset(lv, (dd3020*), 0, "ee43020");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43020.e");
+ test_class_info(&lv, &cd_ee43020);
+ dp->~ee43020();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43020(Test_ee43020, "ee43020", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee43020C1Ev();
+extern void _ZN7ee43020D1Ev();
+Name_Map name_map_ee43020[] = {
+ NSPAIR(_ZN7ee43020C1Ev),
+ NSPAIR(_ZN7ee43020D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc020;
+extern VTBL_ENTRY _ZTI5cc020[];
+extern VTBL_ENTRY _ZTV5cc020[];
+extern Class_Descriptor cd_dd3020;
+extern VTBL_ENTRY _ZTI6dd3020[];
+extern VTBL_ENTRY _ZTV6dd3020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3020[];
+static Base_Class bases_ee43020[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc020, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3020, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee43020[];
+extern void _ZN6dd30203fooEv();
+extern void _ZN7ee430203barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd30203fooEv,_ZTv0_n12_N6dd30203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30203fooEv,_ZThn12_N6dd30203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43020[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43020[0]),
+ (VTBL_ENTRY)&_ZN6dd30203fooEv,
+ (VTBL_ENTRY)&_ZN7ee430203barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43020[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30203fooEv,_ZTv0_n12_N6dd30203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee43020[];
+extern void _ZN6dd30203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3020__7ee43020[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3020[0]),
+ (VTBL_ENTRY)&_ZN6dd30203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd30203fooEv,_ZTv0_n12_N6dd30203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30203fooEv,_ZThn12_N6dd30203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb205cc020__6dd3020__7ee43020[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3020[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30203fooEv,_ZTv0_n12_N6dd30203fooEv),
+};
+static VTT_ENTRY vtt_ee43020[] = {
+ {&(_ZTV7ee43020[3]), 3,9},
+ {&(_tg__ZTV6dd3020__7ee43020[3]), 3,4},
+ {&(_tg__ZTV4bb205cc020__6dd3020__7ee43020[3]), 3,4},
+ {&(_ZTV7ee43020[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee43020[];
+extern VTBL_ENTRY _ZTV7ee43020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43020[];
+static VTBL_ENTRY alt_thunk_names14[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30203fooEv,_ZTv0_n12_N6dd30203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30203fooEv,_ZThn12_N6dd30203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30203fooEv,_ZThn12_N6dd30203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43020 = { "ee43020", // class name
+ bases_ee43020, 4,
+ &(vtc_ee43020[0]), // expected_vtbl_contents
+ &(vtt_ee43020[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee43020),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43020),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43020),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names14,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee53020 : virtual dd3020 {
+ int e;
+ virtual void bar(); // _ZN7ee530203barEv
+ ~ee53020(); // tgen
+ ee53020(); // tgen
+};
+//SIG(1 ee53020) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee53020 ::bar(){vfunc_called(this, "_ZN7ee530203barEv");}
+ee53020 ::~ee53020(){ note_dtor("ee53020", this);} // tgen
+ee53020 ::ee53020(){ note_ctor("ee53020", this);} // tgen
+
+static void Test_ee53020()
+{
+ extern Class_Descriptor cd_ee53020;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee53020, buf);
+ ee53020 *dp, &lv = *(dp=new (buf) ee53020());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee53020)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53020)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc020*), ABISELECT(40,20), "ee53020");
+ check_base_class_offset(lv, (bb20*)(cc020*), ABISELECT(32,16), "ee53020");
+ check_base_class_offset(lv, (cc020*)(dd3020*), ABISELECT(32,16), "ee53020");
+ check_base_class_offset(lv, (dd3020*), ABISELECT(16,8), "ee53020");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53020.e");
+ test_class_info(&lv, &cd_ee53020);
+ dp->~ee53020();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53020(Test_ee53020, "ee53020", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee53020C1Ev();
+extern void _ZN7ee53020D1Ev();
+Name_Map name_map_ee53020[] = {
+ NSPAIR(_ZN7ee53020C1Ev),
+ NSPAIR(_ZN7ee53020D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc020;
+extern VTBL_ENTRY _ZTI5cc020[];
+extern VTBL_ENTRY _ZTV5cc020[];
+extern Class_Descriptor cd_dd3020;
+extern VTBL_ENTRY _ZTI6dd3020[];
+extern VTBL_ENTRY _ZTV6dd3020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3020[];
+static Base_Class bases_ee53020[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc020, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3020, 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 _ZTI7ee53020[];
+extern void _ZN7ee530203barEv();
+extern void _ZN6dd30203fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd30203fooEv,_ZTv0_n12_N6dd30203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30203fooEv,_ZThn8_N6dd30203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53020[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53020[0]),
+ (VTBL_ENTRY)&_ZN7ee530203barEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53020[0]),
+ (VTBL_ENTRY)&_ZN6dd30203fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53020[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30203fooEv,_ZTv0_n12_N6dd30203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee53020[];
+extern void _ZN6dd30203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3020__7ee53020[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3020[0]),
+ (VTBL_ENTRY)&_ZN6dd30203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd30203fooEv,_ZTv0_n12_N6dd30203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30203fooEv,_ZThn8_N6dd30203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb205cc020__6dd3020__7ee53020[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3020[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30203fooEv,_ZTv0_n12_N6dd30203fooEv),
+};
+static VTT_ENTRY vtt_ee53020[] = {
+ {&(_ZTV7ee53020[4]), 4,14},
+ {&(_ZTV7ee53020[9]), 9,14},
+ {&(_ZTV7ee53020[13]), 13,14},
+ {&(_tg__ZTV6dd3020__7ee53020[3]), 3,4},
+ {&(_tg__ZTV4bb205cc020__6dd3020__7ee53020[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee53020[];
+extern VTBL_ENTRY _ZTV7ee53020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53020[];
+static VTBL_ENTRY alt_thunk_names15[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30203fooEv,_ZTv0_n12_N6dd30203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30203fooEv,_ZThn8_N6dd30203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30203fooEv,_ZThn8_N6dd30203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53020 = { "ee53020", // class name
+ bases_ee53020, 4,
+ &(vtc_ee53020[0]), // expected_vtbl_contents
+ &(vtt_ee53020[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee53020),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53020),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53020),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names15,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee63020 : dd3020 {
+ int e;
+ virtual void foo(); // _ZN7ee630203fooEv
+ virtual void bar(); // _ZN7ee630203barEv
+ ~ee63020(); // tgen
+ ee63020(); // tgen
+};
+//SIG(1 ee63020) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v1 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63020 ::foo(){vfunc_called(this, "_ZN7ee630203fooEv");}
+void ee63020 ::bar(){vfunc_called(this, "_ZN7ee630203barEv");}
+ee63020 ::~ee63020(){ note_dtor("ee63020", this);} // tgen
+ee63020 ::ee63020(){ note_ctor("ee63020", this);} // tgen
+
+static void Test_ee63020()
+{
+ extern Class_Descriptor cd_ee63020;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee63020, buf);
+ ee63020 *dp, &lv = *(dp=new (buf) ee63020());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee63020)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63020)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc020*), ABISELECT(24,16), "ee63020");
+ check_base_class_offset(lv, (bb20*)(cc020*), ABISELECT(16,12), "ee63020");
+ check_base_class_offset(lv, (cc020*)(dd3020*), ABISELECT(16,12), "ee63020");
+ check_base_class_offset(lv, (dd3020*), 0, "ee63020");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63020.e");
+ test_class_info(&lv, &cd_ee63020);
+ dp->~ee63020();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63020(Test_ee63020, "ee63020", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee63020C1Ev();
+extern void _ZN7ee63020D1Ev();
+Name_Map name_map_ee63020[] = {
+ NSPAIR(_ZN7ee63020C1Ev),
+ NSPAIR(_ZN7ee63020D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc020;
+extern VTBL_ENTRY _ZTI5cc020[];
+extern VTBL_ENTRY _ZTV5cc020[];
+extern Class_Descriptor cd_dd3020;
+extern VTBL_ENTRY _ZTI6dd3020[];
+extern VTBL_ENTRY _ZTV6dd3020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3020[];
+static Base_Class bases_ee63020[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc020, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3020, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee63020[];
+extern void _ZN7ee630203fooEv();
+extern void _ZN7ee630203barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee630203fooEv,_ZTv0_n12_N7ee630203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee630203fooEv,_ZThn12_N7ee630203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63020[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63020[0]),
+ (VTBL_ENTRY)&_ZN7ee630203fooEv,
+ (VTBL_ENTRY)&_ZN7ee630203barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63020[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee630203fooEv,_ZTv0_n12_N7ee630203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee63020[];
+extern void _ZN6dd30203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3020__7ee63020[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3020[0]),
+ (VTBL_ENTRY)&_ZN6dd30203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd30203fooEv,_ZTv0_n12_N6dd30203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30203fooEv,_ZThn12_N6dd30203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb205cc020__6dd3020__7ee63020[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3020[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30203fooEv,_ZTv0_n12_N6dd30203fooEv),
+};
+static VTT_ENTRY vtt_ee63020[] = {
+ {&(_ZTV7ee63020[3]), 3,9},
+ {&(_tg__ZTV6dd3020__7ee63020[3]), 3,4},
+ {&(_tg__ZTV4bb205cc020__6dd3020__7ee63020[3]), 3,4},
+ {&(_ZTV7ee63020[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee63020[];
+extern VTBL_ENTRY _ZTV7ee63020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63020[];
+static VTBL_ENTRY alt_thunk_names16[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30203fooEv,_ZTv0_n12_N6dd30203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30203fooEv,_ZThn12_N6dd30203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee630203fooEv,_ZTv0_n12_N7ee630203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee630203fooEv,_ZThn12_N7ee630203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63020 = { "ee63020", // class name
+ bases_ee63020, 4,
+ &(vtc_ee63020[0]), // expected_vtbl_contents
+ &(vtt_ee63020[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee63020),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63020),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63020),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names16,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee73020 : virtual dd3020 {
+ int e;
+ virtual void foo(); // _ZN7ee730203fooEv
+ virtual void bar(); // _ZN7ee730203barEv
+ ~ee73020(); // tgen
+ ee73020(); // tgen
+};
+//SIG(1 ee73020) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v1 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73020 ::foo(){vfunc_called(this, "_ZN7ee730203fooEv");}
+void ee73020 ::bar(){vfunc_called(this, "_ZN7ee730203barEv");}
+ee73020 ::~ee73020(){ note_dtor("ee73020", this);} // tgen
+ee73020 ::ee73020(){ note_ctor("ee73020", this);} // tgen
+
+static void Test_ee73020()
+{
+ extern Class_Descriptor cd_ee73020;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee73020, buf);
+ ee73020 *dp, &lv = *(dp=new (buf) ee73020());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee73020)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73020)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc020*), ABISELECT(40,20), "ee73020");
+ check_base_class_offset(lv, (bb20*)(cc020*), ABISELECT(32,16), "ee73020");
+ check_base_class_offset(lv, (cc020*)(dd3020*), ABISELECT(32,16), "ee73020");
+ check_base_class_offset(lv, (dd3020*), ABISELECT(16,8), "ee73020");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73020.e");
+ test_class_info(&lv, &cd_ee73020);
+ dp->~ee73020();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73020(Test_ee73020, "ee73020", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee73020C1Ev();
+extern void _ZN7ee73020D1Ev();
+Name_Map name_map_ee73020[] = {
+ NSPAIR(_ZN7ee73020C1Ev),
+ NSPAIR(_ZN7ee73020D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc020;
+extern VTBL_ENTRY _ZTI5cc020[];
+extern VTBL_ENTRY _ZTV5cc020[];
+extern Class_Descriptor cd_dd3020;
+extern VTBL_ENTRY _ZTI6dd3020[];
+extern VTBL_ENTRY _ZTV6dd3020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3020[];
+static Base_Class bases_ee73020[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc020, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3020, 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 _ZTI7ee73020[];
+extern void _ZN7ee730203fooEv();
+extern void _ZN7ee730203barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee730203fooEv,_ZTv0_n16_N7ee730203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee730203fooEv,_ZThn8_N7ee730203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee730203fooEv,_ZTv0_n12_N7ee730203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee730203fooEv,_ZThn16_N7ee730203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73020[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73020[0]),
+ (VTBL_ENTRY)&_ZN7ee730203fooEv,
+ (VTBL_ENTRY)&_ZN7ee730203barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73020[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee730203fooEv,_ZTv0_n16_N7ee730203fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73020[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee730203fooEv,_ZTv0_n12_N7ee730203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee73020[];
+extern void _ZN6dd30203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3020__7ee73020[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3020[0]),
+ (VTBL_ENTRY)&_ZN6dd30203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd30203fooEv,_ZTv0_n12_N6dd30203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30203fooEv,_ZThn8_N6dd30203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb205cc020__6dd3020__7ee73020[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3020[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30203fooEv,_ZTv0_n12_N6dd30203fooEv),
+};
+static VTT_ENTRY vtt_ee73020[] = {
+ {&(_ZTV7ee73020[4]), 4,15},
+ {&(_ZTV7ee73020[10]), 10,15},
+ {&(_ZTV7ee73020[14]), 14,15},
+ {&(_tg__ZTV6dd3020__7ee73020[3]), 3,4},
+ {&(_tg__ZTV4bb205cc020__6dd3020__7ee73020[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee73020[];
+extern VTBL_ENTRY _ZTV7ee73020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73020[];
+static VTBL_ENTRY alt_thunk_names17[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30203fooEv,_ZTv0_n12_N6dd30203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30203fooEv,_ZThn8_N6dd30203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee730203fooEv,_ZTv0_n12_N7ee730203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee730203fooEv,_ZThn16_N7ee730203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee730203fooEv,_ZTv0_n16_N7ee730203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee730203fooEv,_ZThn8_N7ee730203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73020 = { "ee73020", // class name
+ bases_ee73020, 4,
+ &(vtc_ee73020[0]), // expected_vtbl_contents
+ &(vtt_ee73020[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee73020),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73020),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73020),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names17,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd4020 : cc020 {
+ int d;
+ virtual void bar(); // _ZN6dd40203barEv
+ ~dd4020(); // tgen
+ dd4020(); // tgen
+};
+//SIG(-1 dd4020) C1{ BC2{ BC3{ BC4{ Fi} v2 Fi} Fi} v1 Fi}
+
+
+void dd4020 ::bar(){vfunc_called(this, "_ZN6dd40203barEv");}
+dd4020 ::~dd4020(){ note_dtor("dd4020", this);} // tgen
+dd4020 ::dd4020(){ note_ctor("dd4020", this);} // tgen
+
+static void Test_dd4020()
+{
+ extern Class_Descriptor cd_dd4020;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd4020, buf);
+ dd4020 *dp, &lv = *(dp=new (buf) dd4020());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd4020)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4020)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc020*), ABISELECT(8,4), "dd4020");
+ check_base_class_offset(lv, (bb20*)(cc020*), 0, "dd4020");
+ check_base_class_offset(lv, (cc020*), 0, "dd4020");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd4020.d");
+ test_class_info(&lv, &cd_dd4020);
+ dp->~dd4020();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4020(Test_dd4020, "dd4020", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd4020C1Ev();
+extern void _ZN6dd4020D1Ev();
+Name_Map name_map_dd4020[] = {
+ NSPAIR(_ZN6dd4020C1Ev),
+ NSPAIR(_ZN6dd4020D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc020;
+extern VTBL_ENTRY _ZTI5cc020[];
+extern VTBL_ENTRY _ZTV5cc020[];
+static Base_Class bases_dd4020[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc020, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI6dd4020[];
+extern void _ZN4bb203fooEv();
+extern void _ZN6dd40203barEv();
+static VTBL_ENTRY vtc_dd4020[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4020[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+ (VTBL_ENTRY)&_ZN6dd40203barEv,
+};
+extern VTBL_ENTRY _ZTI6dd4020[];
+extern VTBL_ENTRY _ZTV6dd4020[];
+Class_Descriptor cd_dd4020 = { "dd4020", // class name
+ bases_dd4020, 3,
+ &(vtc_dd4020[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd4020),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4020),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 ee04020 : dd4020 {
+ int e;
+ ~ee04020(); // tgen
+ ee04020(); // tgen
+};
+//SIG(1 ee04020) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v2 Fi} Fi} v1 Fi} Fi}
+
+
+ee04020 ::~ee04020(){ note_dtor("ee04020", this);} // tgen
+ee04020 ::ee04020(){ note_ctor("ee04020", this);} // tgen
+
+static void Test_ee04020()
+{
+ extern Class_Descriptor cd_ee04020;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee04020, buf);
+ ee04020 *dp, &lv = *(dp=new (buf) ee04020());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee04020)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04020)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc020*)(dd4020*), ABISELECT(8,4), "ee04020");
+ check_base_class_offset(lv, (bb20*)(cc020*)(dd4020*), 0, "ee04020");
+ check_base_class_offset(lv, (cc020*)(dd4020*), 0, "ee04020");
+ check_base_class_offset(lv, (dd4020*), 0, "ee04020");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee04020.e");
+ test_class_info(&lv, &cd_ee04020);
+ dp->~ee04020();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04020(Test_ee04020, "ee04020", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee04020C1Ev();
+extern void _ZN7ee04020D1Ev();
+Name_Map name_map_ee04020[] = {
+ NSPAIR(_ZN7ee04020C1Ev),
+ NSPAIR(_ZN7ee04020D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc020;
+extern VTBL_ENTRY _ZTI5cc020[];
+extern VTBL_ENTRY _ZTV5cc020[];
+extern Class_Descriptor cd_dd4020;
+extern VTBL_ENTRY _ZTI6dd4020[];
+extern VTBL_ENTRY _ZTV6dd4020[];
+static Base_Class bases_ee04020[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc020, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4020, 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 _ZTI7ee04020[];
+extern void _ZN4bb203fooEv();
+extern void _ZN6dd40203barEv();
+static VTBL_ENTRY vtc_ee04020[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04020[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+ (VTBL_ENTRY)&_ZN6dd40203barEv,
+};
+extern VTBL_ENTRY _ZTI7ee04020[];
+extern VTBL_ENTRY _ZTV7ee04020[];
+Class_Descriptor cd_ee04020 = { "ee04020", // class name
+ bases_ee04020, 4,
+ &(vtc_ee04020[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee04020),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04020),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 ee14020 : virtual dd4020 {
+ int e;
+ ~ee14020(); // tgen
+ ee14020(); // tgen
+};
+//SIG(1 ee14020) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v2 Fi} Fi} v1 Fi} Fi}
+
+
+ee14020 ::~ee14020(){ note_dtor("ee14020", this);} // tgen
+ee14020 ::ee14020(){ note_ctor("ee14020", this);} // tgen
+
+static void Test_ee14020()
+{
+ extern Class_Descriptor cd_ee14020;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee14020, buf);
+ ee14020 *dp, &lv = *(dp=new (buf) ee14020());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee14020)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14020)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc020*)(dd4020*), ABISELECT(24,12), "ee14020");
+ check_base_class_offset(lv, (bb20*)(cc020*)(dd4020*), ABISELECT(16,8), "ee14020");
+ check_base_class_offset(lv, (cc020*)(dd4020*), ABISELECT(16,8), "ee14020");
+ check_base_class_offset(lv, (dd4020*), ABISELECT(16,8), "ee14020");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14020.e");
+ test_class_info(&lv, &cd_ee14020);
+ dp->~ee14020();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14020(Test_ee14020, "ee14020", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee14020C1Ev();
+extern void _ZN7ee14020D1Ev();
+Name_Map name_map_ee14020[] = {
+ NSPAIR(_ZN7ee14020C1Ev),
+ NSPAIR(_ZN7ee14020D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc020;
+extern VTBL_ENTRY _ZTI5cc020[];
+extern VTBL_ENTRY _ZTV5cc020[];
+extern Class_Descriptor cd_dd4020;
+extern VTBL_ENTRY _ZTI6dd4020[];
+extern VTBL_ENTRY _ZTV6dd4020[];
+static Base_Class bases_ee14020[] = {
+ // 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_bb20, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc020, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4020, 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 _ZTI7ee14020[];
+extern void _ZN4bb203fooEv();
+extern void _ZN6dd40203barEv();
+static VTBL_ENTRY vtc_ee14020[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14020[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14020[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+ (VTBL_ENTRY)&_ZN6dd40203barEv,
+};
+extern VTBL_ENTRY _ZTV7ee14020[];
+static VTT_ENTRY vtt_ee14020[] = {
+ {&(_ZTV7ee14020[3]), 3,9},
+ {&(_ZTV7ee14020[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee14020[];
+extern VTBL_ENTRY _ZTV7ee14020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14020[];
+Class_Descriptor cd_ee14020 = { "ee14020", // class name
+ bases_ee14020, 4,
+ &(vtc_ee14020[0]), // expected_vtbl_contents
+ &(vtt_ee14020[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee14020),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14020),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14020),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 ee24020 : dd4020 {
+ int e;
+ virtual void foo(); // _ZN7ee240203fooEv
+ ~ee24020(); // tgen
+ ee24020(); // tgen
+};
+//SIG(1 ee24020) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee24020 ::foo(){vfunc_called(this, "_ZN7ee240203fooEv");}
+ee24020 ::~ee24020(){ note_dtor("ee24020", this);} // tgen
+ee24020 ::ee24020(){ note_ctor("ee24020", this);} // tgen
+
+static void Test_ee24020()
+{
+ extern Class_Descriptor cd_ee24020;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee24020, buf);
+ ee24020 *dp, &lv = *(dp=new (buf) ee24020());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee24020)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24020)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc020*)(dd4020*), ABISELECT(8,4), "ee24020");
+ check_base_class_offset(lv, (bb20*)(cc020*)(dd4020*), 0, "ee24020");
+ check_base_class_offset(lv, (cc020*)(dd4020*), 0, "ee24020");
+ check_base_class_offset(lv, (dd4020*), 0, "ee24020");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee24020.e");
+ test_class_info(&lv, &cd_ee24020);
+ dp->~ee24020();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24020(Test_ee24020, "ee24020", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee24020C1Ev();
+extern void _ZN7ee24020D1Ev();
+Name_Map name_map_ee24020[] = {
+ NSPAIR(_ZN7ee24020C1Ev),
+ NSPAIR(_ZN7ee24020D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc020;
+extern VTBL_ENTRY _ZTI5cc020[];
+extern VTBL_ENTRY _ZTV5cc020[];
+extern Class_Descriptor cd_dd4020;
+extern VTBL_ENTRY _ZTI6dd4020[];
+extern VTBL_ENTRY _ZTV6dd4020[];
+static Base_Class bases_ee24020[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc020, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4020, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee24020[];
+extern void _ZN7ee240203fooEv();
+extern void _ZN6dd40203barEv();
+static VTBL_ENTRY vtc_ee24020[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24020[0]),
+ (VTBL_ENTRY)&_ZN7ee240203fooEv,
+ (VTBL_ENTRY)&_ZN6dd40203barEv,
+};
+extern VTBL_ENTRY _ZTI7ee24020[];
+extern VTBL_ENTRY _ZTV7ee24020[];
+Class_Descriptor cd_ee24020 = { "ee24020", // class name
+ bases_ee24020, 4,
+ &(vtc_ee24020[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee24020),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24020),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 ee34020 : virtual dd4020 {
+ int e;
+ virtual void foo(); // _ZN7ee340203fooEv
+ ~ee34020(); // tgen
+ ee34020(); // tgen
+};
+//SIG(1 ee34020) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee34020 ::foo(){vfunc_called(this, "_ZN7ee340203fooEv");}
+ee34020 ::~ee34020(){ note_dtor("ee34020", this);} // tgen
+ee34020 ::ee34020(){ note_ctor("ee34020", this);} // tgen
+
+static void Test_ee34020()
+{
+ extern Class_Descriptor cd_ee34020;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee34020, buf);
+ ee34020 *dp, &lv = *(dp=new (buf) ee34020());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee34020)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34020)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc020*)(dd4020*), ABISELECT(24,12), "ee34020");
+ check_base_class_offset(lv, (bb20*)(cc020*)(dd4020*), ABISELECT(16,8), "ee34020");
+ check_base_class_offset(lv, (cc020*)(dd4020*), ABISELECT(16,8), "ee34020");
+ check_base_class_offset(lv, (dd4020*), ABISELECT(16,8), "ee34020");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34020.e");
+ test_class_info(&lv, &cd_ee34020);
+ dp->~ee34020();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34020(Test_ee34020, "ee34020", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee34020C1Ev();
+extern void _ZN7ee34020D1Ev();
+Name_Map name_map_ee34020[] = {
+ NSPAIR(_ZN7ee34020C1Ev),
+ NSPAIR(_ZN7ee34020D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc020;
+extern VTBL_ENTRY _ZTI5cc020[];
+extern VTBL_ENTRY _ZTV5cc020[];
+extern Class_Descriptor cd_dd4020;
+extern VTBL_ENTRY _ZTI6dd4020[];
+extern VTBL_ENTRY _ZTV6dd4020[];
+static Base_Class bases_ee34020[] = {
+ // 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_bb20, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc020, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4020, 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 _ZTI7ee34020[];
+extern void _ZN7ee340203fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee340203fooEv,_ZTv0_n12_N7ee340203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee340203fooEv,_ZThn8_N7ee340203fooEv)() __attribute__((weak));
+extern void _ZN6dd40203barEv();
+static VTBL_ENTRY vtc_ee34020[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34020[0]),
+ (VTBL_ENTRY)&_ZN7ee340203fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34020[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee340203fooEv,_ZTv0_n12_N7ee340203fooEv),
+ (VTBL_ENTRY)&_ZN6dd40203barEv,
+};
+extern VTBL_ENTRY _ZTV7ee34020[];
+static VTT_ENTRY vtt_ee34020[] = {
+ {&(_ZTV7ee34020[3]), 3,10},
+ {&(_ZTV7ee34020[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee34020[];
+extern VTBL_ENTRY _ZTV7ee34020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34020[];
+static VTBL_ENTRY alt_thunk_names18[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee340203fooEv,_ZTv0_n12_N7ee340203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee340203fooEv,_ZThn8_N7ee340203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34020 = { "ee34020", // class name
+ bases_ee34020, 4,
+ &(vtc_ee34020[0]), // expected_vtbl_contents
+ &(vtt_ee34020[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee34020),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34020),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34020),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names18,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee44020 : dd4020 {
+ int e;
+ virtual void bar(); // _ZN7ee440203barEv
+ ~ee44020(); // tgen
+ ee44020(); // tgen
+};
+//SIG(1 ee44020) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee44020 ::bar(){vfunc_called(this, "_ZN7ee440203barEv");}
+ee44020 ::~ee44020(){ note_dtor("ee44020", this);} // tgen
+ee44020 ::ee44020(){ note_ctor("ee44020", this);} // tgen
+
+static void Test_ee44020()
+{
+ extern Class_Descriptor cd_ee44020;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee44020, buf);
+ ee44020 *dp, &lv = *(dp=new (buf) ee44020());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee44020)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44020)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc020*)(dd4020*), ABISELECT(8,4), "ee44020");
+ check_base_class_offset(lv, (bb20*)(cc020*)(dd4020*), 0, "ee44020");
+ check_base_class_offset(lv, (cc020*)(dd4020*), 0, "ee44020");
+ check_base_class_offset(lv, (dd4020*), 0, "ee44020");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee44020.e");
+ test_class_info(&lv, &cd_ee44020);
+ dp->~ee44020();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44020(Test_ee44020, "ee44020", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee44020C1Ev();
+extern void _ZN7ee44020D1Ev();
+Name_Map name_map_ee44020[] = {
+ NSPAIR(_ZN7ee44020C1Ev),
+ NSPAIR(_ZN7ee44020D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc020;
+extern VTBL_ENTRY _ZTI5cc020[];
+extern VTBL_ENTRY _ZTV5cc020[];
+extern Class_Descriptor cd_dd4020;
+extern VTBL_ENTRY _ZTI6dd4020[];
+extern VTBL_ENTRY _ZTV6dd4020[];
+static Base_Class bases_ee44020[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc020, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4020, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee44020[];
+extern void _ZN4bb203fooEv();
+extern void _ZN7ee440203barEv();
+static VTBL_ENTRY vtc_ee44020[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44020[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+ (VTBL_ENTRY)&_ZN7ee440203barEv,
+};
+extern VTBL_ENTRY _ZTI7ee44020[];
+extern VTBL_ENTRY _ZTV7ee44020[];
+Class_Descriptor cd_ee44020 = { "ee44020", // class name
+ bases_ee44020, 4,
+ &(vtc_ee44020[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee44020),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44020),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 ee54020 : virtual dd4020 {
+ int e;
+ virtual void bar(); // _ZN7ee540203barEv
+ ~ee54020(); // tgen
+ ee54020(); // tgen
+};
+//SIG(1 ee54020) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee54020 ::bar(){vfunc_called(this, "_ZN7ee540203barEv");}
+ee54020 ::~ee54020(){ note_dtor("ee54020", this);} // tgen
+ee54020 ::ee54020(){ note_ctor("ee54020", this);} // tgen
+
+static void Test_ee54020()
+{
+ extern Class_Descriptor cd_ee54020;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee54020, buf);
+ ee54020 *dp, &lv = *(dp=new (buf) ee54020());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee54020)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54020)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc020*)(dd4020*), ABISELECT(24,12), "ee54020");
+ check_base_class_offset(lv, (bb20*)(cc020*)(dd4020*), ABISELECT(16,8), "ee54020");
+ check_base_class_offset(lv, (cc020*)(dd4020*), ABISELECT(16,8), "ee54020");
+ check_base_class_offset(lv, (dd4020*), ABISELECT(16,8), "ee54020");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54020.e");
+ test_class_info(&lv, &cd_ee54020);
+ dp->~ee54020();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54020(Test_ee54020, "ee54020", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee54020C1Ev();
+extern void _ZN7ee54020D1Ev();
+Name_Map name_map_ee54020[] = {
+ NSPAIR(_ZN7ee54020C1Ev),
+ NSPAIR(_ZN7ee54020D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc020;
+extern VTBL_ENTRY _ZTI5cc020[];
+extern VTBL_ENTRY _ZTV5cc020[];
+extern Class_Descriptor cd_dd4020;
+extern VTBL_ENTRY _ZTI6dd4020[];
+extern VTBL_ENTRY _ZTV6dd4020[];
+static Base_Class bases_ee54020[] = {
+ // 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_bb20, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc020, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4020, 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 _ZTI7ee54020[];
+extern void _ZN7ee540203barEv();
+extern void _ZN4bb203fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee540203barEv,_ZTv0_n16_N7ee540203barEv)();
+extern void ABISELECT(_ZThn16_N7ee540203barEv,_ZThn8_N7ee540203barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54020[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54020[0]),
+ (VTBL_ENTRY)&_ZN7ee540203barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54020[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee540203barEv,_ZTv0_n16_N7ee540203barEv),
+};
+extern VTBL_ENTRY _ZTV7ee54020[];
+static VTT_ENTRY vtt_ee54020[] = {
+ {&(_ZTV7ee54020[3]), 3,10},
+ {&(_ZTV7ee54020[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee54020[];
+extern VTBL_ENTRY _ZTV7ee54020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54020[];
+static VTBL_ENTRY alt_thunk_names19[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee540203barEv,_ZTv0_n16_N7ee540203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee540203barEv,_ZThn8_N7ee540203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54020 = { "ee54020", // class name
+ bases_ee54020, 4,
+ &(vtc_ee54020[0]), // expected_vtbl_contents
+ &(vtt_ee54020[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee54020),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54020),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54020),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names19,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee64020 : dd4020 {
+ int e;
+ virtual void foo(); // _ZN7ee640203fooEv
+ virtual void bar(); // _ZN7ee640203barEv
+ ~ee64020(); // tgen
+ ee64020(); // tgen
+};
+//SIG(1 ee64020) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v1 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64020 ::foo(){vfunc_called(this, "_ZN7ee640203fooEv");}
+void ee64020 ::bar(){vfunc_called(this, "_ZN7ee640203barEv");}
+ee64020 ::~ee64020(){ note_dtor("ee64020", this);} // tgen
+ee64020 ::ee64020(){ note_ctor("ee64020", this);} // tgen
+
+static void Test_ee64020()
+{
+ extern Class_Descriptor cd_ee64020;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee64020, buf);
+ ee64020 *dp, &lv = *(dp=new (buf) ee64020());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee64020)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64020)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc020*)(dd4020*), ABISELECT(8,4), "ee64020");
+ check_base_class_offset(lv, (bb20*)(cc020*)(dd4020*), 0, "ee64020");
+ check_base_class_offset(lv, (cc020*)(dd4020*), 0, "ee64020");
+ check_base_class_offset(lv, (dd4020*), 0, "ee64020");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee64020.e");
+ test_class_info(&lv, &cd_ee64020);
+ dp->~ee64020();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64020(Test_ee64020, "ee64020", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee64020C1Ev();
+extern void _ZN7ee64020D1Ev();
+Name_Map name_map_ee64020[] = {
+ NSPAIR(_ZN7ee64020C1Ev),
+ NSPAIR(_ZN7ee64020D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc020;
+extern VTBL_ENTRY _ZTI5cc020[];
+extern VTBL_ENTRY _ZTV5cc020[];
+extern Class_Descriptor cd_dd4020;
+extern VTBL_ENTRY _ZTI6dd4020[];
+extern VTBL_ENTRY _ZTV6dd4020[];
+static Base_Class bases_ee64020[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc020, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4020, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee64020[];
+extern void _ZN7ee640203fooEv();
+extern void _ZN7ee640203barEv();
+static VTBL_ENTRY vtc_ee64020[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64020[0]),
+ (VTBL_ENTRY)&_ZN7ee640203fooEv,
+ (VTBL_ENTRY)&_ZN7ee640203barEv,
+};
+extern VTBL_ENTRY _ZTI7ee64020[];
+extern VTBL_ENTRY _ZTV7ee64020[];
+Class_Descriptor cd_ee64020 = { "ee64020", // class name
+ bases_ee64020, 4,
+ &(vtc_ee64020[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee64020),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64020),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 ee74020 : virtual dd4020 {
+ int e;
+ virtual void foo(); // _ZN7ee740203fooEv
+ virtual void bar(); // _ZN7ee740203barEv
+ ~ee74020(); // tgen
+ ee74020(); // tgen
+};
+//SIG(1 ee74020) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v1 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74020 ::foo(){vfunc_called(this, "_ZN7ee740203fooEv");}
+void ee74020 ::bar(){vfunc_called(this, "_ZN7ee740203barEv");}
+ee74020 ::~ee74020(){ note_dtor("ee74020", this);} // tgen
+ee74020 ::ee74020(){ note_ctor("ee74020", this);} // tgen
+
+static void Test_ee74020()
+{
+ extern Class_Descriptor cd_ee74020;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee74020, buf);
+ ee74020 *dp, &lv = *(dp=new (buf) ee74020());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee74020)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74020)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc020*)(dd4020*), ABISELECT(24,12), "ee74020");
+ check_base_class_offset(lv, (bb20*)(cc020*)(dd4020*), ABISELECT(16,8), "ee74020");
+ check_base_class_offset(lv, (cc020*)(dd4020*), ABISELECT(16,8), "ee74020");
+ check_base_class_offset(lv, (dd4020*), ABISELECT(16,8), "ee74020");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74020.e");
+ test_class_info(&lv, &cd_ee74020);
+ dp->~ee74020();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74020(Test_ee74020, "ee74020", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee74020C1Ev();
+extern void _ZN7ee74020D1Ev();
+Name_Map name_map_ee74020[] = {
+ NSPAIR(_ZN7ee74020C1Ev),
+ NSPAIR(_ZN7ee74020D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc020;
+extern VTBL_ENTRY _ZTI5cc020[];
+extern VTBL_ENTRY _ZTV5cc020[];
+extern Class_Descriptor cd_dd4020;
+extern VTBL_ENTRY _ZTI6dd4020[];
+extern VTBL_ENTRY _ZTV6dd4020[];
+static Base_Class bases_ee74020[] = {
+ // 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_bb20, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc020, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4020, 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 _ZTI7ee74020[];
+extern void _ZN7ee740203fooEv();
+extern void _ZN7ee740203barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee740203fooEv,_ZTv0_n12_N7ee740203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee740203fooEv,_ZThn8_N7ee740203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee740203barEv,_ZTv0_n16_N7ee740203barEv)();
+extern void ABISELECT(_ZThn16_N7ee740203barEv,_ZThn8_N7ee740203barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74020[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74020[0]),
+ (VTBL_ENTRY)&_ZN7ee740203fooEv,
+ (VTBL_ENTRY)&_ZN7ee740203barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74020[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee740203fooEv,_ZTv0_n12_N7ee740203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee740203barEv,_ZTv0_n16_N7ee740203barEv),
+};
+extern VTBL_ENTRY _ZTV7ee74020[];
+static VTT_ENTRY vtt_ee74020[] = {
+ {&(_ZTV7ee74020[3]), 3,11},
+ {&(_ZTV7ee74020[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee74020[];
+extern VTBL_ENTRY _ZTV7ee74020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74020[];
+static VTBL_ENTRY alt_thunk_names20[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee740203barEv,_ZTv0_n16_N7ee740203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee740203barEv,_ZThn8_N7ee740203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee740203fooEv,_ZTv0_n12_N7ee740203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee740203fooEv,_ZThn8_N7ee740203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74020 = { "ee74020", // class name
+ bases_ee74020, 4,
+ &(vtc_ee74020[0]), // expected_vtbl_contents
+ &(vtt_ee74020[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee74020),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74020),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74020),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names20,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd5020 : virtual cc020 {
+ int d;
+ virtual void bar(); // _ZN6dd50203barEv
+ ~dd5020(); // tgen
+ dd5020(); // tgen
+};
+//SIG(-1 dd5020) C1{ VBC2{ BC3{ BC4{ Fi} v2 Fi} Fi} v1 Fi}
+
+
+void dd5020 ::bar(){vfunc_called(this, "_ZN6dd50203barEv");}
+dd5020 ::~dd5020(){ note_dtor("dd5020", this);} // tgen
+dd5020 ::dd5020(){ note_ctor("dd5020", this);} // tgen
+
+static void Test_dd5020()
+{
+ extern Class_Descriptor cd_dd5020;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd5020, buf);
+ dd5020 *dp, &lv = *(dp=new (buf) dd5020());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd5020)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5020)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc020*), ABISELECT(24,12), "dd5020");
+ check_base_class_offset(lv, (bb20*)(cc020*), ABISELECT(16,8), "dd5020");
+ check_base_class_offset(lv, (cc020*), ABISELECT(16,8), "dd5020");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5020.d");
+ test_class_info(&lv, &cd_dd5020);
+ dp->~dd5020();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5020(Test_dd5020, "dd5020", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd5020C1Ev();
+extern void _ZN6dd5020D1Ev();
+Name_Map name_map_dd5020[] = {
+ NSPAIR(_ZN6dd5020C1Ev),
+ NSPAIR(_ZN6dd5020D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc020;
+extern VTBL_ENTRY _ZTI5cc020[];
+extern VTBL_ENTRY _ZTV5cc020[];
+static Base_Class bases_dd5020[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc020, 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 _ZTI6dd5020[];
+extern void _ZN6dd50203barEv();
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY vtc_dd5020[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5020[0]),
+ (VTBL_ENTRY)&_ZN6dd50203barEv,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5020[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd5020[];
+static VTT_ENTRY vtt_dd5020[] = {
+ {&(_ZTV6dd5020[3]), 3,8},
+ {&(_ZTV6dd5020[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI6dd5020[];
+extern VTBL_ENTRY _ZTV6dd5020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5020[];
+Class_Descriptor cd_dd5020 = { "dd5020", // class name
+ bases_dd5020, 3,
+ &(vtc_dd5020[0]), // expected_vtbl_contents
+ &(vtt_dd5020[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd5020),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5020),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5020),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 ee05020 : dd5020 {
+ int e;
+ ~ee05020(); // tgen
+ ee05020(); // tgen
+};
+//SIG(1 ee05020) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v2 Fi} Fi} v1 Fi} Fi}
+
+
+ee05020 ::~ee05020(){ note_dtor("ee05020", this);} // tgen
+ee05020 ::ee05020(){ note_ctor("ee05020", this);} // tgen
+
+static void Test_ee05020()
+{
+ extern Class_Descriptor cd_ee05020;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee05020, buf);
+ ee05020 *dp, &lv = *(dp=new (buf) ee05020());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee05020)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05020)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc020*), ABISELECT(24,16), "ee05020");
+ check_base_class_offset(lv, (bb20*)(cc020*), ABISELECT(16,12), "ee05020");
+ check_base_class_offset(lv, (cc020*)(dd5020*), ABISELECT(16,12), "ee05020");
+ check_base_class_offset(lv, (dd5020*), 0, "ee05020");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05020.e");
+ test_class_info(&lv, &cd_ee05020);
+ dp->~ee05020();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05020(Test_ee05020, "ee05020", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee05020C1Ev();
+extern void _ZN7ee05020D1Ev();
+Name_Map name_map_ee05020[] = {
+ NSPAIR(_ZN7ee05020C1Ev),
+ NSPAIR(_ZN7ee05020D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc020;
+extern VTBL_ENTRY _ZTI5cc020[];
+extern VTBL_ENTRY _ZTV5cc020[];
+extern Class_Descriptor cd_dd5020;
+extern VTBL_ENTRY _ZTI6dd5020[];
+extern VTBL_ENTRY _ZTV6dd5020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5020[];
+static Base_Class bases_ee05020[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc020, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5020, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee05020[];
+extern void _ZN6dd50203barEv();
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY vtc_ee05020[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05020[0]),
+ (VTBL_ENTRY)&_ZN6dd50203barEv,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05020[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee05020[];
+extern void _ZN6dd50203barEv();
+static VTBL_ENTRY _tg__ZTV6dd5020__7ee05020[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5020[0]),
+ (VTBL_ENTRY)&_ZN6dd50203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb205cc020__6dd5020__7ee05020[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5020[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee05020[] = {
+ {&(_ZTV7ee05020[3]), 3,8},
+ {&(_tg__ZTV6dd5020__7ee05020[3]), 3,4},
+ {&(_tg__ZTV4bb205cc020__6dd5020__7ee05020[3]), 3,4},
+ {&(_ZTV7ee05020[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee05020[];
+extern VTBL_ENTRY _ZTV7ee05020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05020[];
+Class_Descriptor cd_ee05020 = { "ee05020", // class name
+ bases_ee05020, 4,
+ &(vtc_ee05020[0]), // expected_vtbl_contents
+ &(vtt_ee05020[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee05020),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05020),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05020),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 ee15020 : virtual dd5020 {
+ int e;
+ ~ee15020(); // tgen
+ ee15020(); // tgen
+};
+//SIG(1 ee15020) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v2 Fi} Fi} v1 Fi} Fi}
+
+
+ee15020 ::~ee15020(){ note_dtor("ee15020", this);} // tgen
+ee15020 ::ee15020(){ note_ctor("ee15020", this);} // tgen
+
+static void Test_ee15020()
+{
+ extern Class_Descriptor cd_ee15020;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee15020, buf);
+ ee15020 *dp, &lv = *(dp=new (buf) ee15020());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee15020)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15020)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc020*), ABISELECT(40,20), "ee15020");
+ check_base_class_offset(lv, (bb20*)(cc020*), ABISELECT(32,16), "ee15020");
+ check_base_class_offset(lv, (cc020*)(dd5020*), ABISELECT(32,16), "ee15020");
+ check_base_class_offset(lv, (dd5020*), ABISELECT(16,8), "ee15020");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15020.e");
+ test_class_info(&lv, &cd_ee15020);
+ dp->~ee15020();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15020(Test_ee15020, "ee15020", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee15020C1Ev();
+extern void _ZN7ee15020D1Ev();
+Name_Map name_map_ee15020[] = {
+ NSPAIR(_ZN7ee15020C1Ev),
+ NSPAIR(_ZN7ee15020D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc020;
+extern VTBL_ENTRY _ZTI5cc020[];
+extern VTBL_ENTRY _ZTV5cc020[];
+extern Class_Descriptor cd_dd5020;
+extern VTBL_ENTRY _ZTI6dd5020[];
+extern VTBL_ENTRY _ZTV6dd5020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5020[];
+static Base_Class bases_ee15020[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc020, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5020, 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 _ZTI7ee15020[];
+extern void _ZN6dd50203barEv();
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY vtc_ee15020[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15020[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15020[0]),
+ (VTBL_ENTRY)&_ZN6dd50203barEv,
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15020[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee15020[];
+extern void _ZN6dd50203barEv();
+static VTBL_ENTRY _tg__ZTV6dd5020__7ee15020[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5020[0]),
+ (VTBL_ENTRY)&_ZN6dd50203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb205cc020__6dd5020__7ee15020[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5020[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee15020[] = {
+ {&(_ZTV7ee15020[4]), 4,13},
+ {&(_ZTV7ee15020[8]), 8,13},
+ {&(_ZTV7ee15020[12]), 12,13},
+ {&(_tg__ZTV6dd5020__7ee15020[3]), 3,4},
+ {&(_tg__ZTV4bb205cc020__6dd5020__7ee15020[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee15020[];
+extern VTBL_ENTRY _ZTV7ee15020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15020[];
+Class_Descriptor cd_ee15020 = { "ee15020", // class name
+ bases_ee15020, 4,
+ &(vtc_ee15020[0]), // expected_vtbl_contents
+ &(vtt_ee15020[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee15020),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15020),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15020),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 ee25020 : dd5020 {
+ int e;
+ virtual void foo(); // _ZN7ee250203fooEv
+ ~ee25020(); // tgen
+ ee25020(); // tgen
+};
+//SIG(1 ee25020) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee25020 ::foo(){vfunc_called(this, "_ZN7ee250203fooEv");}
+ee25020 ::~ee25020(){ note_dtor("ee25020", this);} // tgen
+ee25020 ::ee25020(){ note_ctor("ee25020", this);} // tgen
+
+static void Test_ee25020()
+{
+ extern Class_Descriptor cd_ee25020;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee25020, buf);
+ ee25020 *dp, &lv = *(dp=new (buf) ee25020());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee25020)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25020)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc020*), ABISELECT(24,16), "ee25020");
+ check_base_class_offset(lv, (bb20*)(cc020*), ABISELECT(16,12), "ee25020");
+ check_base_class_offset(lv, (cc020*)(dd5020*), ABISELECT(16,12), "ee25020");
+ check_base_class_offset(lv, (dd5020*), 0, "ee25020");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25020.e");
+ test_class_info(&lv, &cd_ee25020);
+ dp->~ee25020();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25020(Test_ee25020, "ee25020", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee25020C1Ev();
+extern void _ZN7ee25020D1Ev();
+Name_Map name_map_ee25020[] = {
+ NSPAIR(_ZN7ee25020C1Ev),
+ NSPAIR(_ZN7ee25020D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc020;
+extern VTBL_ENTRY _ZTI5cc020[];
+extern VTBL_ENTRY _ZTV5cc020[];
+extern Class_Descriptor cd_dd5020;
+extern VTBL_ENTRY _ZTI6dd5020[];
+extern VTBL_ENTRY _ZTV6dd5020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5020[];
+static Base_Class bases_ee25020[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc020, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5020, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee25020[];
+extern void _ZN6dd50203barEv();
+extern void _ZN7ee250203fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee250203fooEv,_ZTv0_n12_N7ee250203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee250203fooEv,_ZThn12_N7ee250203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25020[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25020[0]),
+ (VTBL_ENTRY)&_ZN6dd50203barEv,
+ (VTBL_ENTRY)&_ZN7ee250203fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25020[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee250203fooEv,_ZTv0_n12_N7ee250203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee25020[];
+extern void _ZN6dd50203barEv();
+static VTBL_ENTRY _tg__ZTV6dd5020__7ee25020[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5020[0]),
+ (VTBL_ENTRY)&_ZN6dd50203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb205cc020__6dd5020__7ee25020[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5020[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee25020[] = {
+ {&(_ZTV7ee25020[3]), 3,9},
+ {&(_tg__ZTV6dd5020__7ee25020[3]), 3,4},
+ {&(_tg__ZTV4bb205cc020__6dd5020__7ee25020[3]), 3,4},
+ {&(_ZTV7ee25020[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee25020[];
+extern VTBL_ENTRY _ZTV7ee25020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25020[];
+static VTBL_ENTRY alt_thunk_names21[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee250203fooEv,_ZTv0_n12_N7ee250203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee250203fooEv,_ZThn12_N7ee250203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25020 = { "ee25020", // class name
+ bases_ee25020, 4,
+ &(vtc_ee25020[0]), // expected_vtbl_contents
+ &(vtt_ee25020[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee25020),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25020),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25020),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names21,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee35020 : virtual dd5020 {
+ int e;
+ virtual void foo(); // _ZN7ee350203fooEv
+ ~ee35020(); // tgen
+ ee35020(); // tgen
+};
+//SIG(1 ee35020) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee35020 ::foo(){vfunc_called(this, "_ZN7ee350203fooEv");}
+ee35020 ::~ee35020(){ note_dtor("ee35020", this);} // tgen
+ee35020 ::ee35020(){ note_ctor("ee35020", this);} // tgen
+
+static void Test_ee35020()
+{
+ extern Class_Descriptor cd_ee35020;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee35020, buf);
+ ee35020 *dp, &lv = *(dp=new (buf) ee35020());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee35020)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35020)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc020*), ABISELECT(40,20), "ee35020");
+ check_base_class_offset(lv, (bb20*)(cc020*), ABISELECT(32,16), "ee35020");
+ check_base_class_offset(lv, (cc020*)(dd5020*), ABISELECT(32,16), "ee35020");
+ check_base_class_offset(lv, (dd5020*), ABISELECT(16,8), "ee35020");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35020.e");
+ test_class_info(&lv, &cd_ee35020);
+ dp->~ee35020();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35020(Test_ee35020, "ee35020", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee35020C1Ev();
+extern void _ZN7ee35020D1Ev();
+Name_Map name_map_ee35020[] = {
+ NSPAIR(_ZN7ee35020C1Ev),
+ NSPAIR(_ZN7ee35020D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc020;
+extern VTBL_ENTRY _ZTI5cc020[];
+extern VTBL_ENTRY _ZTV5cc020[];
+extern Class_Descriptor cd_dd5020;
+extern VTBL_ENTRY _ZTI6dd5020[];
+extern VTBL_ENTRY _ZTV6dd5020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5020[];
+static Base_Class bases_ee35020[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc020, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5020, 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 _ZTI7ee35020[];
+extern void _ZN7ee350203fooEv();
+extern void _ZN6dd50203barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee350203fooEv,_ZTv0_n12_N7ee350203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee350203fooEv,_ZThn16_N7ee350203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35020[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35020[0]),
+ (VTBL_ENTRY)&_ZN7ee350203fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35020[0]),
+ (VTBL_ENTRY)&_ZN6dd50203barEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35020[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee350203fooEv,_ZTv0_n12_N7ee350203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee35020[];
+extern void _ZN6dd50203barEv();
+static VTBL_ENTRY _tg__ZTV6dd5020__7ee35020[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5020[0]),
+ (VTBL_ENTRY)&_ZN6dd50203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb205cc020__6dd5020__7ee35020[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5020[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee35020[] = {
+ {&(_ZTV7ee35020[4]), 4,14},
+ {&(_ZTV7ee35020[9]), 9,14},
+ {&(_ZTV7ee35020[13]), 13,14},
+ {&(_tg__ZTV6dd5020__7ee35020[3]), 3,4},
+ {&(_tg__ZTV4bb205cc020__6dd5020__7ee35020[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee35020[];
+extern VTBL_ENTRY _ZTV7ee35020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35020[];
+static VTBL_ENTRY alt_thunk_names22[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee350203fooEv,_ZTv0_n12_N7ee350203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee350203fooEv,_ZThn16_N7ee350203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35020 = { "ee35020", // class name
+ bases_ee35020, 4,
+ &(vtc_ee35020[0]), // expected_vtbl_contents
+ &(vtt_ee35020[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee35020),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35020),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35020),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names22,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee45020 : dd5020 {
+ int e;
+ virtual void bar(); // _ZN7ee450203barEv
+ ~ee45020(); // tgen
+ ee45020(); // tgen
+};
+//SIG(1 ee45020) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee45020 ::bar(){vfunc_called(this, "_ZN7ee450203barEv");}
+ee45020 ::~ee45020(){ note_dtor("ee45020", this);} // tgen
+ee45020 ::ee45020(){ note_ctor("ee45020", this);} // tgen
+
+static void Test_ee45020()
+{
+ extern Class_Descriptor cd_ee45020;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee45020, buf);
+ ee45020 *dp, &lv = *(dp=new (buf) ee45020());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee45020)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45020)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc020*), ABISELECT(24,16), "ee45020");
+ check_base_class_offset(lv, (bb20*)(cc020*), ABISELECT(16,12), "ee45020");
+ check_base_class_offset(lv, (cc020*)(dd5020*), ABISELECT(16,12), "ee45020");
+ check_base_class_offset(lv, (dd5020*), 0, "ee45020");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45020.e");
+ test_class_info(&lv, &cd_ee45020);
+ dp->~ee45020();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45020(Test_ee45020, "ee45020", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee45020C1Ev();
+extern void _ZN7ee45020D1Ev();
+Name_Map name_map_ee45020[] = {
+ NSPAIR(_ZN7ee45020C1Ev),
+ NSPAIR(_ZN7ee45020D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc020;
+extern VTBL_ENTRY _ZTI5cc020[];
+extern VTBL_ENTRY _ZTV5cc020[];
+extern Class_Descriptor cd_dd5020;
+extern VTBL_ENTRY _ZTI6dd5020[];
+extern VTBL_ENTRY _ZTV6dd5020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5020[];
+static Base_Class bases_ee45020[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc020, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5020, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee45020[];
+extern void _ZN7ee450203barEv();
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY vtc_ee45020[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45020[0]),
+ (VTBL_ENTRY)&_ZN7ee450203barEv,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45020[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee45020[];
+extern void _ZN6dd50203barEv();
+static VTBL_ENTRY _tg__ZTV6dd5020__7ee45020[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5020[0]),
+ (VTBL_ENTRY)&_ZN6dd50203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb205cc020__6dd5020__7ee45020[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5020[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee45020[] = {
+ {&(_ZTV7ee45020[3]), 3,8},
+ {&(_tg__ZTV6dd5020__7ee45020[3]), 3,4},
+ {&(_tg__ZTV4bb205cc020__6dd5020__7ee45020[3]), 3,4},
+ {&(_ZTV7ee45020[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee45020[];
+extern VTBL_ENTRY _ZTV7ee45020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45020[];
+Class_Descriptor cd_ee45020 = { "ee45020", // class name
+ bases_ee45020, 4,
+ &(vtc_ee45020[0]), // expected_vtbl_contents
+ &(vtt_ee45020[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee45020),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45020),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45020),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 ee55020 : virtual dd5020 {
+ int e;
+ virtual void bar(); // _ZN7ee550203barEv
+ ~ee55020(); // tgen
+ ee55020(); // tgen
+};
+//SIG(1 ee55020) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee55020 ::bar(){vfunc_called(this, "_ZN7ee550203barEv");}
+ee55020 ::~ee55020(){ note_dtor("ee55020", this);} // tgen
+ee55020 ::ee55020(){ note_ctor("ee55020", this);} // tgen
+
+static void Test_ee55020()
+{
+ extern Class_Descriptor cd_ee55020;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee55020, buf);
+ ee55020 *dp, &lv = *(dp=new (buf) ee55020());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee55020)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55020)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc020*), ABISELECT(40,20), "ee55020");
+ check_base_class_offset(lv, (bb20*)(cc020*), ABISELECT(32,16), "ee55020");
+ check_base_class_offset(lv, (cc020*)(dd5020*), ABISELECT(32,16), "ee55020");
+ check_base_class_offset(lv, (dd5020*), ABISELECT(16,8), "ee55020");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55020.e");
+ test_class_info(&lv, &cd_ee55020);
+ dp->~ee55020();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55020(Test_ee55020, "ee55020", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee55020C1Ev();
+extern void _ZN7ee55020D1Ev();
+Name_Map name_map_ee55020[] = {
+ NSPAIR(_ZN7ee55020C1Ev),
+ NSPAIR(_ZN7ee55020D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc020;
+extern VTBL_ENTRY _ZTI5cc020[];
+extern VTBL_ENTRY _ZTV5cc020[];
+extern Class_Descriptor cd_dd5020;
+extern VTBL_ENTRY _ZTI6dd5020[];
+extern VTBL_ENTRY _ZTV6dd5020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5020[];
+static Base_Class bases_ee55020[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc020, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5020, 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 _ZTI7ee55020[];
+extern void _ZN7ee550203barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee550203barEv,_ZTv0_n16_N7ee550203barEv)();
+extern void ABISELECT(_ZThn16_N7ee550203barEv,_ZThn8_N7ee550203barEv)() __attribute__((weak));
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY vtc_ee55020[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55020[0]),
+ (VTBL_ENTRY)&_ZN7ee550203barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55020[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee550203barEv,_ZTv0_n16_N7ee550203barEv),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55020[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee55020[];
+extern void _ZN6dd50203barEv();
+static VTBL_ENTRY _tg__ZTV6dd5020__7ee55020[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5020[0]),
+ (VTBL_ENTRY)&_ZN6dd50203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb205cc020__6dd5020__7ee55020[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5020[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee55020[] = {
+ {&(_ZTV7ee55020[4]), 4,14},
+ {&(_ZTV7ee55020[9]), 9,14},
+ {&(_ZTV7ee55020[13]), 13,14},
+ {&(_tg__ZTV6dd5020__7ee55020[3]), 3,4},
+ {&(_tg__ZTV4bb205cc020__6dd5020__7ee55020[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee55020[];
+extern VTBL_ENTRY _ZTV7ee55020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55020[];
+static VTBL_ENTRY alt_thunk_names23[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee550203barEv,_ZTv0_n16_N7ee550203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee550203barEv,_ZThn8_N7ee550203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55020 = { "ee55020", // class name
+ bases_ee55020, 4,
+ &(vtc_ee55020[0]), // expected_vtbl_contents
+ &(vtt_ee55020[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee55020),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55020),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55020),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names23,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee65020 : dd5020 {
+ int e;
+ virtual void foo(); // _ZN7ee650203fooEv
+ virtual void bar(); // _ZN7ee650203barEv
+ ~ee65020(); // tgen
+ ee65020(); // tgen
+};
+//SIG(1 ee65020) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v1 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65020 ::foo(){vfunc_called(this, "_ZN7ee650203fooEv");}
+void ee65020 ::bar(){vfunc_called(this, "_ZN7ee650203barEv");}
+ee65020 ::~ee65020(){ note_dtor("ee65020", this);} // tgen
+ee65020 ::ee65020(){ note_ctor("ee65020", this);} // tgen
+
+static void Test_ee65020()
+{
+ extern Class_Descriptor cd_ee65020;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee65020, buf);
+ ee65020 *dp, &lv = *(dp=new (buf) ee65020());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee65020)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65020)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc020*), ABISELECT(24,16), "ee65020");
+ check_base_class_offset(lv, (bb20*)(cc020*), ABISELECT(16,12), "ee65020");
+ check_base_class_offset(lv, (cc020*)(dd5020*), ABISELECT(16,12), "ee65020");
+ check_base_class_offset(lv, (dd5020*), 0, "ee65020");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65020.e");
+ test_class_info(&lv, &cd_ee65020);
+ dp->~ee65020();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65020(Test_ee65020, "ee65020", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee65020C1Ev();
+extern void _ZN7ee65020D1Ev();
+Name_Map name_map_ee65020[] = {
+ NSPAIR(_ZN7ee65020C1Ev),
+ NSPAIR(_ZN7ee65020D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc020;
+extern VTBL_ENTRY _ZTI5cc020[];
+extern VTBL_ENTRY _ZTV5cc020[];
+extern Class_Descriptor cd_dd5020;
+extern VTBL_ENTRY _ZTI6dd5020[];
+extern VTBL_ENTRY _ZTV6dd5020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5020[];
+static Base_Class bases_ee65020[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc020, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5020, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee65020[];
+extern void _ZN7ee650203barEv();
+extern void _ZN7ee650203fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee650203fooEv,_ZTv0_n12_N7ee650203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee650203fooEv,_ZThn12_N7ee650203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65020[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65020[0]),
+ (VTBL_ENTRY)&_ZN7ee650203barEv,
+ (VTBL_ENTRY)&_ZN7ee650203fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65020[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee650203fooEv,_ZTv0_n12_N7ee650203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee65020[];
+extern void _ZN6dd50203barEv();
+static VTBL_ENTRY _tg__ZTV6dd5020__7ee65020[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5020[0]),
+ (VTBL_ENTRY)&_ZN6dd50203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb205cc020__6dd5020__7ee65020[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5020[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee65020[] = {
+ {&(_ZTV7ee65020[3]), 3,9},
+ {&(_tg__ZTV6dd5020__7ee65020[3]), 3,4},
+ {&(_tg__ZTV4bb205cc020__6dd5020__7ee65020[3]), 3,4},
+ {&(_ZTV7ee65020[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee65020[];
+extern VTBL_ENTRY _ZTV7ee65020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65020[];
+static VTBL_ENTRY alt_thunk_names24[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee650203fooEv,_ZTv0_n12_N7ee650203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee650203fooEv,_ZThn12_N7ee650203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65020 = { "ee65020", // class name
+ bases_ee65020, 4,
+ &(vtc_ee65020[0]), // expected_vtbl_contents
+ &(vtt_ee65020[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee65020),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65020),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65020),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names24,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee75020 : virtual dd5020 {
+ int e;
+ virtual void foo(); // _ZN7ee750203fooEv
+ virtual void bar(); // _ZN7ee750203barEv
+ ~ee75020(); // tgen
+ ee75020(); // tgen
+};
+//SIG(1 ee75020) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v1 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75020 ::foo(){vfunc_called(this, "_ZN7ee750203fooEv");}
+void ee75020 ::bar(){vfunc_called(this, "_ZN7ee750203barEv");}
+ee75020 ::~ee75020(){ note_dtor("ee75020", this);} // tgen
+ee75020 ::ee75020(){ note_ctor("ee75020", this);} // tgen
+
+static void Test_ee75020()
+{
+ extern Class_Descriptor cd_ee75020;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee75020, buf);
+ ee75020 *dp, &lv = *(dp=new (buf) ee75020());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee75020)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75020)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc020*), ABISELECT(40,20), "ee75020");
+ check_base_class_offset(lv, (bb20*)(cc020*), ABISELECT(32,16), "ee75020");
+ check_base_class_offset(lv, (cc020*)(dd5020*), ABISELECT(32,16), "ee75020");
+ check_base_class_offset(lv, (dd5020*), ABISELECT(16,8), "ee75020");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75020.e");
+ test_class_info(&lv, &cd_ee75020);
+ dp->~ee75020();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75020(Test_ee75020, "ee75020", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee75020C1Ev();
+extern void _ZN7ee75020D1Ev();
+Name_Map name_map_ee75020[] = {
+ NSPAIR(_ZN7ee75020C1Ev),
+ NSPAIR(_ZN7ee75020D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc020;
+extern VTBL_ENTRY _ZTI5cc020[];
+extern VTBL_ENTRY _ZTV5cc020[];
+extern Class_Descriptor cd_dd5020;
+extern VTBL_ENTRY _ZTI6dd5020[];
+extern VTBL_ENTRY _ZTV6dd5020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5020[];
+static Base_Class bases_ee75020[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc020, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5020, 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 _ZTI7ee75020[];
+extern void _ZN7ee750203fooEv();
+extern void _ZN7ee750203barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee750203barEv,_ZTv0_n16_N7ee750203barEv)();
+extern void ABISELECT(_ZThn16_N7ee750203barEv,_ZThn8_N7ee750203barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee750203fooEv,_ZTv0_n12_N7ee750203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee750203fooEv,_ZThn16_N7ee750203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75020[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75020[0]),
+ (VTBL_ENTRY)&_ZN7ee750203fooEv,
+ (VTBL_ENTRY)&_ZN7ee750203barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75020[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee750203barEv,_ZTv0_n16_N7ee750203barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75020[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee750203fooEv,_ZTv0_n12_N7ee750203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee75020[];
+extern void _ZN6dd50203barEv();
+static VTBL_ENTRY _tg__ZTV6dd5020__7ee75020[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5020[0]),
+ (VTBL_ENTRY)&_ZN6dd50203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb205cc020__6dd5020__7ee75020[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5020[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee75020[] = {
+ {&(_ZTV7ee75020[4]), 4,15},
+ {&(_ZTV7ee75020[10]), 10,15},
+ {&(_ZTV7ee75020[14]), 14,15},
+ {&(_tg__ZTV6dd5020__7ee75020[3]), 3,4},
+ {&(_tg__ZTV4bb205cc020__6dd5020__7ee75020[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee75020[];
+extern VTBL_ENTRY _ZTV7ee75020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75020[];
+static VTBL_ENTRY alt_thunk_names25[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee750203fooEv,_ZTv0_n12_N7ee750203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee750203fooEv,_ZThn16_N7ee750203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee750203barEv,_ZTv0_n16_N7ee750203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee750203barEv,_ZThn8_N7ee750203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75020 = { "ee75020", // class name
+ bases_ee75020, 4,
+ &(vtc_ee75020[0]), // expected_vtbl_contents
+ &(vtt_ee75020[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee75020),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75020),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75020),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names25,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd6020 : cc020 {
+ int d;
+ virtual void bar(); // _ZN6dd60203barEv
+ virtual void foo(); // _ZN6dd60203fooEv
+ ~dd6020(); // tgen
+ dd6020(); // tgen
+};
+//SIG(-1 dd6020) C1{ BC2{ BC3{ BC4{ Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void dd6020 ::bar(){vfunc_called(this, "_ZN6dd60203barEv");}
+void dd6020 ::foo(){vfunc_called(this, "_ZN6dd60203fooEv");}
+dd6020 ::~dd6020(){ note_dtor("dd6020", this);} // tgen
+dd6020 ::dd6020(){ note_ctor("dd6020", this);} // tgen
+
+static void Test_dd6020()
+{
+ extern Class_Descriptor cd_dd6020;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd6020, buf);
+ dd6020 *dp, &lv = *(dp=new (buf) dd6020());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd6020)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6020)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc020*), ABISELECT(8,4), "dd6020");
+ check_base_class_offset(lv, (bb20*)(cc020*), 0, "dd6020");
+ check_base_class_offset(lv, (cc020*), 0, "dd6020");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd6020.d");
+ test_class_info(&lv, &cd_dd6020);
+ dp->~dd6020();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6020(Test_dd6020, "dd6020", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd6020C1Ev();
+extern void _ZN6dd6020D1Ev();
+Name_Map name_map_dd6020[] = {
+ NSPAIR(_ZN6dd6020C1Ev),
+ NSPAIR(_ZN6dd6020D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc020;
+extern VTBL_ENTRY _ZTI5cc020[];
+extern VTBL_ENTRY _ZTV5cc020[];
+static Base_Class bases_dd6020[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc020, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI6dd6020[];
+extern void _ZN6dd60203fooEv();
+extern void _ZN6dd60203barEv();
+static VTBL_ENTRY vtc_dd6020[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6020[0]),
+ (VTBL_ENTRY)&_ZN6dd60203fooEv,
+ (VTBL_ENTRY)&_ZN6dd60203barEv,
+};
+extern VTBL_ENTRY _ZTI6dd6020[];
+extern VTBL_ENTRY _ZTV6dd6020[];
+Class_Descriptor cd_dd6020 = { "dd6020", // class name
+ bases_dd6020, 3,
+ &(vtc_dd6020[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd6020),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6020),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 ee06020 : dd6020 {
+ int e;
+ ~ee06020(); // tgen
+ ee06020(); // tgen
+};
+//SIG(1 ee06020) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v2 Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee06020 ::~ee06020(){ note_dtor("ee06020", this);} // tgen
+ee06020 ::ee06020(){ note_ctor("ee06020", this);} // tgen
+
+static void Test_ee06020()
+{
+ extern Class_Descriptor cd_ee06020;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee06020, buf);
+ ee06020 *dp, &lv = *(dp=new (buf) ee06020());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee06020)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06020)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc020*)(dd6020*), ABISELECT(8,4), "ee06020");
+ check_base_class_offset(lv, (bb20*)(cc020*)(dd6020*), 0, "ee06020");
+ check_base_class_offset(lv, (cc020*)(dd6020*), 0, "ee06020");
+ check_base_class_offset(lv, (dd6020*), 0, "ee06020");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee06020.e");
+ test_class_info(&lv, &cd_ee06020);
+ dp->~ee06020();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06020(Test_ee06020, "ee06020", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee06020C1Ev();
+extern void _ZN7ee06020D1Ev();
+Name_Map name_map_ee06020[] = {
+ NSPAIR(_ZN7ee06020C1Ev),
+ NSPAIR(_ZN7ee06020D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc020;
+extern VTBL_ENTRY _ZTI5cc020[];
+extern VTBL_ENTRY _ZTV5cc020[];
+extern Class_Descriptor cd_dd6020;
+extern VTBL_ENTRY _ZTI6dd6020[];
+extern VTBL_ENTRY _ZTV6dd6020[];
+static Base_Class bases_ee06020[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc020, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6020, 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 _ZTI7ee06020[];
+extern void _ZN6dd60203fooEv();
+extern void _ZN6dd60203barEv();
+static VTBL_ENTRY vtc_ee06020[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06020[0]),
+ (VTBL_ENTRY)&_ZN6dd60203fooEv,
+ (VTBL_ENTRY)&_ZN6dd60203barEv,
+};
+extern VTBL_ENTRY _ZTI7ee06020[];
+extern VTBL_ENTRY _ZTV7ee06020[];
+Class_Descriptor cd_ee06020 = { "ee06020", // class name
+ bases_ee06020, 4,
+ &(vtc_ee06020[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee06020),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06020),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 ee16020 : virtual dd6020 {
+ int e;
+ ~ee16020(); // tgen
+ ee16020(); // tgen
+};
+//SIG(1 ee16020) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v2 Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee16020 ::~ee16020(){ note_dtor("ee16020", this);} // tgen
+ee16020 ::ee16020(){ note_ctor("ee16020", this);} // tgen
+
+static void Test_ee16020()
+{
+ extern Class_Descriptor cd_ee16020;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee16020, buf);
+ ee16020 *dp, &lv = *(dp=new (buf) ee16020());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee16020)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16020)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc020*)(dd6020*), ABISELECT(24,12), "ee16020");
+ check_base_class_offset(lv, (bb20*)(cc020*)(dd6020*), ABISELECT(16,8), "ee16020");
+ check_base_class_offset(lv, (cc020*)(dd6020*), ABISELECT(16,8), "ee16020");
+ check_base_class_offset(lv, (dd6020*), ABISELECT(16,8), "ee16020");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16020.e");
+ test_class_info(&lv, &cd_ee16020);
+ dp->~ee16020();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16020(Test_ee16020, "ee16020", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee16020C1Ev();
+extern void _ZN7ee16020D1Ev();
+Name_Map name_map_ee16020[] = {
+ NSPAIR(_ZN7ee16020C1Ev),
+ NSPAIR(_ZN7ee16020D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc020;
+extern VTBL_ENTRY _ZTI5cc020[];
+extern VTBL_ENTRY _ZTV5cc020[];
+extern Class_Descriptor cd_dd6020;
+extern VTBL_ENTRY _ZTI6dd6020[];
+extern VTBL_ENTRY _ZTV6dd6020[];
+static Base_Class bases_ee16020[] = {
+ // 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_bb20, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc020, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6020, 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 _ZTI7ee16020[];
+extern void _ZN6dd60203fooEv();
+extern void _ZN6dd60203barEv();
+static VTBL_ENTRY vtc_ee16020[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16020[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16020[0]),
+ (VTBL_ENTRY)&_ZN6dd60203fooEv,
+ (VTBL_ENTRY)&_ZN6dd60203barEv,
+};
+extern VTBL_ENTRY _ZTV7ee16020[];
+static VTT_ENTRY vtt_ee16020[] = {
+ {&(_ZTV7ee16020[3]), 3,9},
+ {&(_ZTV7ee16020[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee16020[];
+extern VTBL_ENTRY _ZTV7ee16020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16020[];
+Class_Descriptor cd_ee16020 = { "ee16020", // class name
+ bases_ee16020, 4,
+ &(vtc_ee16020[0]), // expected_vtbl_contents
+ &(vtt_ee16020[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee16020),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16020),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16020),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 ee26020 : dd6020 {
+ int e;
+ virtual void foo(); // _ZN7ee260203fooEv
+ ~ee26020(); // tgen
+ ee26020(); // tgen
+};
+//SIG(1 ee26020) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v1 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26020 ::foo(){vfunc_called(this, "_ZN7ee260203fooEv");}
+ee26020 ::~ee26020(){ note_dtor("ee26020", this);} // tgen
+ee26020 ::ee26020(){ note_ctor("ee26020", this);} // tgen
+
+static void Test_ee26020()
+{
+ extern Class_Descriptor cd_ee26020;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee26020, buf);
+ ee26020 *dp, &lv = *(dp=new (buf) ee26020());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee26020)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26020)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc020*)(dd6020*), ABISELECT(8,4), "ee26020");
+ check_base_class_offset(lv, (bb20*)(cc020*)(dd6020*), 0, "ee26020");
+ check_base_class_offset(lv, (cc020*)(dd6020*), 0, "ee26020");
+ check_base_class_offset(lv, (dd6020*), 0, "ee26020");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee26020.e");
+ test_class_info(&lv, &cd_ee26020);
+ dp->~ee26020();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26020(Test_ee26020, "ee26020", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee26020C1Ev();
+extern void _ZN7ee26020D1Ev();
+Name_Map name_map_ee26020[] = {
+ NSPAIR(_ZN7ee26020C1Ev),
+ NSPAIR(_ZN7ee26020D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc020;
+extern VTBL_ENTRY _ZTI5cc020[];
+extern VTBL_ENTRY _ZTV5cc020[];
+extern Class_Descriptor cd_dd6020;
+extern VTBL_ENTRY _ZTI6dd6020[];
+extern VTBL_ENTRY _ZTV6dd6020[];
+static Base_Class bases_ee26020[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc020, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6020, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee26020[];
+extern void _ZN7ee260203fooEv();
+extern void _ZN6dd60203barEv();
+static VTBL_ENTRY vtc_ee26020[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26020[0]),
+ (VTBL_ENTRY)&_ZN7ee260203fooEv,
+ (VTBL_ENTRY)&_ZN6dd60203barEv,
+};
+extern VTBL_ENTRY _ZTI7ee26020[];
+extern VTBL_ENTRY _ZTV7ee26020[];
+Class_Descriptor cd_ee26020 = { "ee26020", // class name
+ bases_ee26020, 4,
+ &(vtc_ee26020[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee26020),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26020),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 ee36020 : virtual dd6020 {
+ int e;
+ virtual void foo(); // _ZN7ee360203fooEv
+ ~ee36020(); // tgen
+ ee36020(); // tgen
+};
+//SIG(1 ee36020) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v1 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36020 ::foo(){vfunc_called(this, "_ZN7ee360203fooEv");}
+ee36020 ::~ee36020(){ note_dtor("ee36020", this);} // tgen
+ee36020 ::ee36020(){ note_ctor("ee36020", this);} // tgen
+
+static void Test_ee36020()
+{
+ extern Class_Descriptor cd_ee36020;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee36020, buf);
+ ee36020 *dp, &lv = *(dp=new (buf) ee36020());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee36020)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36020)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc020*)(dd6020*), ABISELECT(24,12), "ee36020");
+ check_base_class_offset(lv, (bb20*)(cc020*)(dd6020*), ABISELECT(16,8), "ee36020");
+ check_base_class_offset(lv, (cc020*)(dd6020*), ABISELECT(16,8), "ee36020");
+ check_base_class_offset(lv, (dd6020*), ABISELECT(16,8), "ee36020");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36020.e");
+ test_class_info(&lv, &cd_ee36020);
+ dp->~ee36020();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36020(Test_ee36020, "ee36020", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee36020C1Ev();
+extern void _ZN7ee36020D1Ev();
+Name_Map name_map_ee36020[] = {
+ NSPAIR(_ZN7ee36020C1Ev),
+ NSPAIR(_ZN7ee36020D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc020;
+extern VTBL_ENTRY _ZTI5cc020[];
+extern VTBL_ENTRY _ZTV5cc020[];
+extern Class_Descriptor cd_dd6020;
+extern VTBL_ENTRY _ZTI6dd6020[];
+extern VTBL_ENTRY _ZTV6dd6020[];
+static Base_Class bases_ee36020[] = {
+ // 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_bb20, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc020, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6020, 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 _ZTI7ee36020[];
+extern void _ZN7ee360203fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee360203fooEv,_ZTv0_n12_N7ee360203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee360203fooEv,_ZThn8_N7ee360203fooEv)() __attribute__((weak));
+extern void _ZN6dd60203barEv();
+static VTBL_ENTRY vtc_ee36020[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36020[0]),
+ (VTBL_ENTRY)&_ZN7ee360203fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36020[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee360203fooEv,_ZTv0_n12_N7ee360203fooEv),
+ (VTBL_ENTRY)&_ZN6dd60203barEv,
+};
+extern VTBL_ENTRY _ZTV7ee36020[];
+static VTT_ENTRY vtt_ee36020[] = {
+ {&(_ZTV7ee36020[3]), 3,10},
+ {&(_ZTV7ee36020[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee36020[];
+extern VTBL_ENTRY _ZTV7ee36020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36020[];
+static VTBL_ENTRY alt_thunk_names26[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee360203fooEv,_ZTv0_n12_N7ee360203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee360203fooEv,_ZThn8_N7ee360203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36020 = { "ee36020", // class name
+ bases_ee36020, 4,
+ &(vtc_ee36020[0]), // expected_vtbl_contents
+ &(vtt_ee36020[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee36020),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36020),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36020),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names26,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee46020 : dd6020 {
+ int e;
+ virtual void bar(); // _ZN7ee460203barEv
+ ~ee46020(); // tgen
+ ee46020(); // tgen
+};
+//SIG(1 ee46020) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v2 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46020 ::bar(){vfunc_called(this, "_ZN7ee460203barEv");}
+ee46020 ::~ee46020(){ note_dtor("ee46020", this);} // tgen
+ee46020 ::ee46020(){ note_ctor("ee46020", this);} // tgen
+
+static void Test_ee46020()
+{
+ extern Class_Descriptor cd_ee46020;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee46020, buf);
+ ee46020 *dp, &lv = *(dp=new (buf) ee46020());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee46020)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46020)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc020*)(dd6020*), ABISELECT(8,4), "ee46020");
+ check_base_class_offset(lv, (bb20*)(cc020*)(dd6020*), 0, "ee46020");
+ check_base_class_offset(lv, (cc020*)(dd6020*), 0, "ee46020");
+ check_base_class_offset(lv, (dd6020*), 0, "ee46020");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee46020.e");
+ test_class_info(&lv, &cd_ee46020);
+ dp->~ee46020();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46020(Test_ee46020, "ee46020", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee46020C1Ev();
+extern void _ZN7ee46020D1Ev();
+Name_Map name_map_ee46020[] = {
+ NSPAIR(_ZN7ee46020C1Ev),
+ NSPAIR(_ZN7ee46020D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc020;
+extern VTBL_ENTRY _ZTI5cc020[];
+extern VTBL_ENTRY _ZTV5cc020[];
+extern Class_Descriptor cd_dd6020;
+extern VTBL_ENTRY _ZTI6dd6020[];
+extern VTBL_ENTRY _ZTV6dd6020[];
+static Base_Class bases_ee46020[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc020, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6020, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee46020[];
+extern void _ZN6dd60203fooEv();
+extern void _ZN7ee460203barEv();
+static VTBL_ENTRY vtc_ee46020[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46020[0]),
+ (VTBL_ENTRY)&_ZN6dd60203fooEv,
+ (VTBL_ENTRY)&_ZN7ee460203barEv,
+};
+extern VTBL_ENTRY _ZTI7ee46020[];
+extern VTBL_ENTRY _ZTV7ee46020[];
+Class_Descriptor cd_ee46020 = { "ee46020", // class name
+ bases_ee46020, 4,
+ &(vtc_ee46020[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee46020),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46020),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 ee56020 : virtual dd6020 {
+ int e;
+ virtual void bar(); // _ZN7ee560203barEv
+ ~ee56020(); // tgen
+ ee56020(); // tgen
+};
+//SIG(1 ee56020) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v2 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56020 ::bar(){vfunc_called(this, "_ZN7ee560203barEv");}
+ee56020 ::~ee56020(){ note_dtor("ee56020", this);} // tgen
+ee56020 ::ee56020(){ note_ctor("ee56020", this);} // tgen
+
+static void Test_ee56020()
+{
+ extern Class_Descriptor cd_ee56020;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee56020, buf);
+ ee56020 *dp, &lv = *(dp=new (buf) ee56020());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee56020)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56020)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc020*)(dd6020*), ABISELECT(24,12), "ee56020");
+ check_base_class_offset(lv, (bb20*)(cc020*)(dd6020*), ABISELECT(16,8), "ee56020");
+ check_base_class_offset(lv, (cc020*)(dd6020*), ABISELECT(16,8), "ee56020");
+ check_base_class_offset(lv, (dd6020*), ABISELECT(16,8), "ee56020");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56020.e");
+ test_class_info(&lv, &cd_ee56020);
+ dp->~ee56020();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56020(Test_ee56020, "ee56020", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee56020C1Ev();
+extern void _ZN7ee56020D1Ev();
+Name_Map name_map_ee56020[] = {
+ NSPAIR(_ZN7ee56020C1Ev),
+ NSPAIR(_ZN7ee56020D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc020;
+extern VTBL_ENTRY _ZTI5cc020[];
+extern VTBL_ENTRY _ZTV5cc020[];
+extern Class_Descriptor cd_dd6020;
+extern VTBL_ENTRY _ZTI6dd6020[];
+extern VTBL_ENTRY _ZTV6dd6020[];
+static Base_Class bases_ee56020[] = {
+ // 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_bb20, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc020, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6020, 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 _ZTI7ee56020[];
+extern void _ZN7ee560203barEv();
+extern void _ZN6dd60203fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee560203barEv,_ZTv0_n16_N7ee560203barEv)();
+extern void ABISELECT(_ZThn16_N7ee560203barEv,_ZThn8_N7ee560203barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56020[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56020[0]),
+ (VTBL_ENTRY)&_ZN7ee560203barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56020[0]),
+ (VTBL_ENTRY)&_ZN6dd60203fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee560203barEv,_ZTv0_n16_N7ee560203barEv),
+};
+extern VTBL_ENTRY _ZTV7ee56020[];
+static VTT_ENTRY vtt_ee56020[] = {
+ {&(_ZTV7ee56020[3]), 3,10},
+ {&(_ZTV7ee56020[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee56020[];
+extern VTBL_ENTRY _ZTV7ee56020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56020[];
+static VTBL_ENTRY alt_thunk_names27[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee560203barEv,_ZTv0_n16_N7ee560203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee560203barEv,_ZThn8_N7ee560203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56020 = { "ee56020", // class name
+ bases_ee56020, 4,
+ &(vtc_ee56020[0]), // expected_vtbl_contents
+ &(vtt_ee56020[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee56020),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56020),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56020),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names27,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee66020 : dd6020 {
+ int e;
+ virtual void foo(); // _ZN7ee660203fooEv
+ virtual void bar(); // _ZN7ee660203barEv
+ ~ee66020(); // tgen
+ ee66020(); // tgen
+};
+//SIG(1 ee66020) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v1 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66020 ::foo(){vfunc_called(this, "_ZN7ee660203fooEv");}
+void ee66020 ::bar(){vfunc_called(this, "_ZN7ee660203barEv");}
+ee66020 ::~ee66020(){ note_dtor("ee66020", this);} // tgen
+ee66020 ::ee66020(){ note_ctor("ee66020", this);} // tgen
+
+static void Test_ee66020()
+{
+ extern Class_Descriptor cd_ee66020;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee66020, buf);
+ ee66020 *dp, &lv = *(dp=new (buf) ee66020());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee66020)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66020)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc020*)(dd6020*), ABISELECT(8,4), "ee66020");
+ check_base_class_offset(lv, (bb20*)(cc020*)(dd6020*), 0, "ee66020");
+ check_base_class_offset(lv, (cc020*)(dd6020*), 0, "ee66020");
+ check_base_class_offset(lv, (dd6020*), 0, "ee66020");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee66020.e");
+ test_class_info(&lv, &cd_ee66020);
+ dp->~ee66020();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66020(Test_ee66020, "ee66020", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee66020C1Ev();
+extern void _ZN7ee66020D1Ev();
+Name_Map name_map_ee66020[] = {
+ NSPAIR(_ZN7ee66020C1Ev),
+ NSPAIR(_ZN7ee66020D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc020;
+extern VTBL_ENTRY _ZTI5cc020[];
+extern VTBL_ENTRY _ZTV5cc020[];
+extern Class_Descriptor cd_dd6020;
+extern VTBL_ENTRY _ZTI6dd6020[];
+extern VTBL_ENTRY _ZTV6dd6020[];
+static Base_Class bases_ee66020[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc020, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6020, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee66020[];
+extern void _ZN7ee660203fooEv();
+extern void _ZN7ee660203barEv();
+static VTBL_ENTRY vtc_ee66020[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66020[0]),
+ (VTBL_ENTRY)&_ZN7ee660203fooEv,
+ (VTBL_ENTRY)&_ZN7ee660203barEv,
+};
+extern VTBL_ENTRY _ZTI7ee66020[];
+extern VTBL_ENTRY _ZTV7ee66020[];
+Class_Descriptor cd_ee66020 = { "ee66020", // class name
+ bases_ee66020, 4,
+ &(vtc_ee66020[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee66020),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66020),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 ee76020 : virtual dd6020 {
+ int e;
+ virtual void foo(); // _ZN7ee760203fooEv
+ virtual void bar(); // _ZN7ee760203barEv
+ ~ee76020(); // tgen
+ ee76020(); // tgen
+};
+//SIG(1 ee76020) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v1 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76020 ::foo(){vfunc_called(this, "_ZN7ee760203fooEv");}
+void ee76020 ::bar(){vfunc_called(this, "_ZN7ee760203barEv");}
+ee76020 ::~ee76020(){ note_dtor("ee76020", this);} // tgen
+ee76020 ::ee76020(){ note_ctor("ee76020", this);} // tgen
+
+static void Test_ee76020()
+{
+ extern Class_Descriptor cd_ee76020;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee76020, buf);
+ ee76020 *dp, &lv = *(dp=new (buf) ee76020());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee76020)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76020)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc020*)(dd6020*), ABISELECT(24,12), "ee76020");
+ check_base_class_offset(lv, (bb20*)(cc020*)(dd6020*), ABISELECT(16,8), "ee76020");
+ check_base_class_offset(lv, (cc020*)(dd6020*), ABISELECT(16,8), "ee76020");
+ check_base_class_offset(lv, (dd6020*), ABISELECT(16,8), "ee76020");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76020.e");
+ test_class_info(&lv, &cd_ee76020);
+ dp->~ee76020();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76020(Test_ee76020, "ee76020", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee76020C1Ev();
+extern void _ZN7ee76020D1Ev();
+Name_Map name_map_ee76020[] = {
+ NSPAIR(_ZN7ee76020C1Ev),
+ NSPAIR(_ZN7ee76020D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc020;
+extern VTBL_ENTRY _ZTI5cc020[];
+extern VTBL_ENTRY _ZTV5cc020[];
+extern Class_Descriptor cd_dd6020;
+extern VTBL_ENTRY _ZTI6dd6020[];
+extern VTBL_ENTRY _ZTV6dd6020[];
+static Base_Class bases_ee76020[] = {
+ // 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_bb20, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc020, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6020, 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 _ZTI7ee76020[];
+extern void _ZN7ee760203fooEv();
+extern void _ZN7ee760203barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee760203fooEv,_ZTv0_n12_N7ee760203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee760203fooEv,_ZThn8_N7ee760203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee760203barEv,_ZTv0_n16_N7ee760203barEv)();
+extern void ABISELECT(_ZThn16_N7ee760203barEv,_ZThn8_N7ee760203barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76020[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76020[0]),
+ (VTBL_ENTRY)&_ZN7ee760203fooEv,
+ (VTBL_ENTRY)&_ZN7ee760203barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76020[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee760203fooEv,_ZTv0_n12_N7ee760203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee760203barEv,_ZTv0_n16_N7ee760203barEv),
+};
+extern VTBL_ENTRY _ZTV7ee76020[];
+static VTT_ENTRY vtt_ee76020[] = {
+ {&(_ZTV7ee76020[3]), 3,11},
+ {&(_ZTV7ee76020[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee76020[];
+extern VTBL_ENTRY _ZTV7ee76020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76020[];
+static VTBL_ENTRY alt_thunk_names28[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee760203barEv,_ZTv0_n16_N7ee760203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee760203barEv,_ZThn8_N7ee760203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee760203fooEv,_ZTv0_n12_N7ee760203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee760203fooEv,_ZThn8_N7ee760203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76020 = { "ee76020", // class name
+ bases_ee76020, 4,
+ &(vtc_ee76020[0]), // expected_vtbl_contents
+ &(vtt_ee76020[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee76020),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76020),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76020),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names28,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd7020 : virtual cc020 {
+ int d;
+ virtual void bar(); // _ZN6dd70203barEv
+ virtual void foo(); // _ZN6dd70203fooEv
+ ~dd7020(); // tgen
+ dd7020(); // tgen
+};
+//SIG(-1 dd7020) C1{ VBC2{ BC3{ BC4{ Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void dd7020 ::bar(){vfunc_called(this, "_ZN6dd70203barEv");}
+void dd7020 ::foo(){vfunc_called(this, "_ZN6dd70203fooEv");}
+dd7020 ::~dd7020(){ note_dtor("dd7020", this);} // tgen
+dd7020 ::dd7020(){ note_ctor("dd7020", this);} // tgen
+
+static void Test_dd7020()
+{
+ extern Class_Descriptor cd_dd7020;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd7020, buf);
+ dd7020 *dp, &lv = *(dp=new (buf) dd7020());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd7020)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7020)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc020*), ABISELECT(24,12), "dd7020");
+ check_base_class_offset(lv, (bb20*)(cc020*), ABISELECT(16,8), "dd7020");
+ check_base_class_offset(lv, (cc020*), ABISELECT(16,8), "dd7020");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7020.d");
+ test_class_info(&lv, &cd_dd7020);
+ dp->~dd7020();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7020(Test_dd7020, "dd7020", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd7020C1Ev();
+extern void _ZN6dd7020D1Ev();
+Name_Map name_map_dd7020[] = {
+ NSPAIR(_ZN6dd7020C1Ev),
+ NSPAIR(_ZN6dd7020D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc020;
+extern VTBL_ENTRY _ZTI5cc020[];
+extern VTBL_ENTRY _ZTV5cc020[];
+static Base_Class bases_dd7020[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc020, 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 _ZTI6dd7020[];
+extern void _ZN6dd70203barEv();
+extern void _ZN6dd70203fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd70203fooEv,_ZTv0_n12_N6dd70203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70203fooEv,_ZThn8_N6dd70203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7020[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7020[0]),
+ (VTBL_ENTRY)&_ZN6dd70203barEv,
+ (VTBL_ENTRY)&_ZN6dd70203fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7020[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70203fooEv,_ZTv0_n12_N6dd70203fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd7020[];
+static VTT_ENTRY vtt_dd7020[] = {
+ {&(_ZTV6dd7020[3]), 3,9},
+ {&(_ZTV6dd7020[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI6dd7020[];
+extern VTBL_ENTRY _ZTV6dd7020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7020[];
+static VTBL_ENTRY alt_thunk_names29[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70203fooEv,_ZTv0_n12_N6dd70203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70203fooEv,_ZThn8_N6dd70203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7020 = { "dd7020", // class name
+ bases_dd7020, 3,
+ &(vtc_dd7020[0]), // expected_vtbl_contents
+ &(vtt_dd7020[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd7020),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7020),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7020),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 ee07020 : dd7020 {
+ int e;
+ ~ee07020(); // tgen
+ ee07020(); // tgen
+};
+//SIG(1 ee07020) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v2 Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee07020 ::~ee07020(){ note_dtor("ee07020", this);} // tgen
+ee07020 ::ee07020(){ note_ctor("ee07020", this);} // tgen
+
+static void Test_ee07020()
+{
+ extern Class_Descriptor cd_ee07020;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee07020, buf);
+ ee07020 *dp, &lv = *(dp=new (buf) ee07020());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee07020)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07020)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc020*), ABISELECT(24,16), "ee07020");
+ check_base_class_offset(lv, (bb20*)(cc020*), ABISELECT(16,12), "ee07020");
+ check_base_class_offset(lv, (cc020*)(dd7020*), ABISELECT(16,12), "ee07020");
+ check_base_class_offset(lv, (dd7020*), 0, "ee07020");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07020.e");
+ test_class_info(&lv, &cd_ee07020);
+ dp->~ee07020();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07020(Test_ee07020, "ee07020", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee07020C1Ev();
+extern void _ZN7ee07020D1Ev();
+Name_Map name_map_ee07020[] = {
+ NSPAIR(_ZN7ee07020C1Ev),
+ NSPAIR(_ZN7ee07020D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc020;
+extern VTBL_ENTRY _ZTI5cc020[];
+extern VTBL_ENTRY _ZTV5cc020[];
+extern Class_Descriptor cd_dd7020;
+extern VTBL_ENTRY _ZTI6dd7020[];
+extern VTBL_ENTRY _ZTV6dd7020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7020[];
+static Base_Class bases_ee07020[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc020, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7020, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee07020[];
+extern void _ZN6dd70203barEv();
+extern void _ZN6dd70203fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd70203fooEv,_ZTv0_n12_N6dd70203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70203fooEv,_ZThn12_N6dd70203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07020[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07020[0]),
+ (VTBL_ENTRY)&_ZN6dd70203barEv,
+ (VTBL_ENTRY)&_ZN6dd70203fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07020[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70203fooEv,_ZTv0_n12_N6dd70203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee07020[];
+extern void _ZN6dd70203barEv();
+extern void _ZN6dd70203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7020__7ee07020[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7020[0]),
+ (VTBL_ENTRY)&_ZN6dd70203barEv,
+ (VTBL_ENTRY)&_ZN6dd70203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd70203fooEv,_ZTv0_n12_N6dd70203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70203fooEv,_ZThn12_N6dd70203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb205cc020__6dd7020__7ee07020[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7020[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70203fooEv,_ZTv0_n12_N6dd70203fooEv),
+};
+static VTT_ENTRY vtt_ee07020[] = {
+ {&(_ZTV7ee07020[3]), 3,9},
+ {&(_tg__ZTV6dd7020__7ee07020[3]), 3,5},
+ {&(_tg__ZTV4bb205cc020__6dd7020__7ee07020[3]), 3,4},
+ {&(_ZTV7ee07020[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee07020[];
+extern VTBL_ENTRY _ZTV7ee07020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07020[];
+static VTBL_ENTRY alt_thunk_names30[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70203fooEv,_ZTv0_n12_N6dd70203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70203fooEv,_ZThn12_N6dd70203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70203fooEv,_ZThn12_N6dd70203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07020 = { "ee07020", // class name
+ bases_ee07020, 4,
+ &(vtc_ee07020[0]), // expected_vtbl_contents
+ &(vtt_ee07020[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee07020),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07020),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07020),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names30,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee17020 : virtual dd7020 {
+ int e;
+ ~ee17020(); // tgen
+ ee17020(); // tgen
+};
+//SIG(1 ee17020) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v2 Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee17020 ::~ee17020(){ note_dtor("ee17020", this);} // tgen
+ee17020 ::ee17020(){ note_ctor("ee17020", this);} // tgen
+
+static void Test_ee17020()
+{
+ extern Class_Descriptor cd_ee17020;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee17020, buf);
+ ee17020 *dp, &lv = *(dp=new (buf) ee17020());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee17020)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17020)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc020*), ABISELECT(40,20), "ee17020");
+ check_base_class_offset(lv, (bb20*)(cc020*), ABISELECT(32,16), "ee17020");
+ check_base_class_offset(lv, (cc020*)(dd7020*), ABISELECT(32,16), "ee17020");
+ check_base_class_offset(lv, (dd7020*), ABISELECT(16,8), "ee17020");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17020.e");
+ test_class_info(&lv, &cd_ee17020);
+ dp->~ee17020();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17020(Test_ee17020, "ee17020", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee17020C1Ev();
+extern void _ZN7ee17020D1Ev();
+Name_Map name_map_ee17020[] = {
+ NSPAIR(_ZN7ee17020C1Ev),
+ NSPAIR(_ZN7ee17020D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc020;
+extern VTBL_ENTRY _ZTI5cc020[];
+extern VTBL_ENTRY _ZTV5cc020[];
+extern Class_Descriptor cd_dd7020;
+extern VTBL_ENTRY _ZTI6dd7020[];
+extern VTBL_ENTRY _ZTV6dd7020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7020[];
+static Base_Class bases_ee17020[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc020, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7020, 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 _ZTI7ee17020[];
+extern void _ZN6dd70203barEv();
+extern void _ZN6dd70203fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd70203fooEv,_ZTv0_n12_N6dd70203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70203fooEv,_ZThn8_N6dd70203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17020[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17020[0]),
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17020[0]),
+ (VTBL_ENTRY)&_ZN6dd70203barEv,
+ (VTBL_ENTRY)&_ZN6dd70203fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17020[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70203fooEv,_ZTv0_n12_N6dd70203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee17020[];
+extern void _ZN6dd70203barEv();
+extern void _ZN6dd70203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7020__7ee17020[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7020[0]),
+ (VTBL_ENTRY)&_ZN6dd70203barEv,
+ (VTBL_ENTRY)&_ZN6dd70203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd70203fooEv,_ZTv0_n12_N6dd70203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70203fooEv,_ZThn8_N6dd70203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb205cc020__6dd7020__7ee17020[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7020[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70203fooEv,_ZTv0_n12_N6dd70203fooEv),
+};
+static VTT_ENTRY vtt_ee17020[] = {
+ {&(_ZTV7ee17020[4]), 4,15},
+ {&(_ZTV7ee17020[9]), 9,15},
+ {&(_ZTV7ee17020[14]), 14,15},
+ {&(_tg__ZTV6dd7020__7ee17020[3]), 3,5},
+ {&(_tg__ZTV4bb205cc020__6dd7020__7ee17020[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee17020[];
+extern VTBL_ENTRY _ZTV7ee17020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17020[];
+static VTBL_ENTRY alt_thunk_names31[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70203fooEv,_ZTv0_n12_N6dd70203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70203fooEv,_ZThn8_N6dd70203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70203fooEv,_ZThn8_N6dd70203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17020 = { "ee17020", // class name
+ bases_ee17020, 4,
+ &(vtc_ee17020[0]), // expected_vtbl_contents
+ &(vtt_ee17020[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee17020),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17020),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17020),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names31,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee27020 : dd7020 {
+ int e;
+ virtual void foo(); // _ZN7ee270203fooEv
+ ~ee27020(); // tgen
+ ee27020(); // tgen
+};
+//SIG(1 ee27020) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v1 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27020 ::foo(){vfunc_called(this, "_ZN7ee270203fooEv");}
+ee27020 ::~ee27020(){ note_dtor("ee27020", this);} // tgen
+ee27020 ::ee27020(){ note_ctor("ee27020", this);} // tgen
+
+static void Test_ee27020()
+{
+ extern Class_Descriptor cd_ee27020;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee27020, buf);
+ ee27020 *dp, &lv = *(dp=new (buf) ee27020());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee27020)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27020)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc020*), ABISELECT(24,16), "ee27020");
+ check_base_class_offset(lv, (bb20*)(cc020*), ABISELECT(16,12), "ee27020");
+ check_base_class_offset(lv, (cc020*)(dd7020*), ABISELECT(16,12), "ee27020");
+ check_base_class_offset(lv, (dd7020*), 0, "ee27020");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27020.e");
+ test_class_info(&lv, &cd_ee27020);
+ dp->~ee27020();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27020(Test_ee27020, "ee27020", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee27020C1Ev();
+extern void _ZN7ee27020D1Ev();
+Name_Map name_map_ee27020[] = {
+ NSPAIR(_ZN7ee27020C1Ev),
+ NSPAIR(_ZN7ee27020D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc020;
+extern VTBL_ENTRY _ZTI5cc020[];
+extern VTBL_ENTRY _ZTV5cc020[];
+extern Class_Descriptor cd_dd7020;
+extern VTBL_ENTRY _ZTI6dd7020[];
+extern VTBL_ENTRY _ZTV6dd7020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7020[];
+static Base_Class bases_ee27020[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc020, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7020, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee27020[];
+extern void _ZN6dd70203barEv();
+extern void _ZN7ee270203fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee270203fooEv,_ZTv0_n12_N7ee270203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee270203fooEv,_ZThn12_N7ee270203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27020[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27020[0]),
+ (VTBL_ENTRY)&_ZN6dd70203barEv,
+ (VTBL_ENTRY)&_ZN7ee270203fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27020[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee270203fooEv,_ZTv0_n12_N7ee270203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee27020[];
+extern void _ZN6dd70203barEv();
+extern void _ZN6dd70203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7020__7ee27020[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7020[0]),
+ (VTBL_ENTRY)&_ZN6dd70203barEv,
+ (VTBL_ENTRY)&_ZN6dd70203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd70203fooEv,_ZTv0_n12_N6dd70203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70203fooEv,_ZThn12_N6dd70203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb205cc020__6dd7020__7ee27020[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7020[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70203fooEv,_ZTv0_n12_N6dd70203fooEv),
+};
+static VTT_ENTRY vtt_ee27020[] = {
+ {&(_ZTV7ee27020[3]), 3,9},
+ {&(_tg__ZTV6dd7020__7ee27020[3]), 3,5},
+ {&(_tg__ZTV4bb205cc020__6dd7020__7ee27020[3]), 3,4},
+ {&(_ZTV7ee27020[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee27020[];
+extern VTBL_ENTRY _ZTV7ee27020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27020[];
+static VTBL_ENTRY alt_thunk_names32[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70203fooEv,_ZTv0_n12_N6dd70203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70203fooEv,_ZThn12_N6dd70203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee270203fooEv,_ZTv0_n12_N7ee270203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee270203fooEv,_ZThn12_N7ee270203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27020 = { "ee27020", // class name
+ bases_ee27020, 4,
+ &(vtc_ee27020[0]), // expected_vtbl_contents
+ &(vtt_ee27020[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee27020),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27020),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27020),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names32,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee37020 : virtual dd7020 {
+ int e;
+ virtual void foo(); // _ZN7ee370203fooEv
+ ~ee37020(); // tgen
+ ee37020(); // tgen
+};
+//SIG(1 ee37020) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v1 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37020 ::foo(){vfunc_called(this, "_ZN7ee370203fooEv");}
+ee37020 ::~ee37020(){ note_dtor("ee37020", this);} // tgen
+ee37020 ::ee37020(){ note_ctor("ee37020", this);} // tgen
+
+static void Test_ee37020()
+{
+ extern Class_Descriptor cd_ee37020;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee37020, buf);
+ ee37020 *dp, &lv = *(dp=new (buf) ee37020());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee37020)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37020)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc020*), ABISELECT(40,20), "ee37020");
+ check_base_class_offset(lv, (bb20*)(cc020*), ABISELECT(32,16), "ee37020");
+ check_base_class_offset(lv, (cc020*)(dd7020*), ABISELECT(32,16), "ee37020");
+ check_base_class_offset(lv, (dd7020*), ABISELECT(16,8), "ee37020");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37020.e");
+ test_class_info(&lv, &cd_ee37020);
+ dp->~ee37020();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37020(Test_ee37020, "ee37020", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee37020C1Ev();
+extern void _ZN7ee37020D1Ev();
+Name_Map name_map_ee37020[] = {
+ NSPAIR(_ZN7ee37020C1Ev),
+ NSPAIR(_ZN7ee37020D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc020;
+extern VTBL_ENTRY _ZTI5cc020[];
+extern VTBL_ENTRY _ZTV5cc020[];
+extern Class_Descriptor cd_dd7020;
+extern VTBL_ENTRY _ZTI6dd7020[];
+extern VTBL_ENTRY _ZTV6dd7020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7020[];
+static Base_Class bases_ee37020[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc020, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7020, 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 _ZTI7ee37020[];
+extern void _ZN7ee370203fooEv();
+extern void _ZN6dd70203barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee370203fooEv,_ZTv0_n20_N7ee370203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee370203fooEv,_ZThn8_N7ee370203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee370203fooEv,_ZTv0_n12_N7ee370203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee370203fooEv,_ZThn16_N7ee370203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37020[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37020[0]),
+ (VTBL_ENTRY)&_ZN7ee370203fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37020[0]),
+ (VTBL_ENTRY)&_ZN6dd70203barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee370203fooEv,_ZTv0_n20_N7ee370203fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37020[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee370203fooEv,_ZTv0_n12_N7ee370203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee37020[];
+extern void _ZN6dd70203barEv();
+extern void _ZN6dd70203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7020__7ee37020[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7020[0]),
+ (VTBL_ENTRY)&_ZN6dd70203barEv,
+ (VTBL_ENTRY)&_ZN6dd70203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd70203fooEv,_ZTv0_n12_N6dd70203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70203fooEv,_ZThn8_N6dd70203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb205cc020__6dd7020__7ee37020[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7020[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70203fooEv,_ZTv0_n12_N6dd70203fooEv),
+};
+static VTT_ENTRY vtt_ee37020[] = {
+ {&(_ZTV7ee37020[4]), 4,16},
+ {&(_ZTV7ee37020[10]), 10,16},
+ {&(_ZTV7ee37020[15]), 15,16},
+ {&(_tg__ZTV6dd7020__7ee37020[3]), 3,5},
+ {&(_tg__ZTV4bb205cc020__6dd7020__7ee37020[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee37020[];
+extern VTBL_ENTRY _ZTV7ee37020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37020[];
+static VTBL_ENTRY alt_thunk_names33[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70203fooEv,_ZTv0_n12_N6dd70203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70203fooEv,_ZThn8_N6dd70203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee370203fooEv,_ZTv0_n12_N7ee370203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee370203fooEv,_ZThn16_N7ee370203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee370203fooEv,_ZTv0_n20_N7ee370203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee370203fooEv,_ZThn8_N7ee370203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37020 = { "ee37020", // class name
+ bases_ee37020, 4,
+ &(vtc_ee37020[0]), // expected_vtbl_contents
+ &(vtt_ee37020[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee37020),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37020),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37020),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names33,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee47020 : dd7020 {
+ int e;
+ virtual void bar(); // _ZN7ee470203barEv
+ ~ee47020(); // tgen
+ ee47020(); // tgen
+};
+//SIG(1 ee47020) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v2 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47020 ::bar(){vfunc_called(this, "_ZN7ee470203barEv");}
+ee47020 ::~ee47020(){ note_dtor("ee47020", this);} // tgen
+ee47020 ::ee47020(){ note_ctor("ee47020", this);} // tgen
+
+static void Test_ee47020()
+{
+ extern Class_Descriptor cd_ee47020;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee47020, buf);
+ ee47020 *dp, &lv = *(dp=new (buf) ee47020());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee47020)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47020)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc020*), ABISELECT(24,16), "ee47020");
+ check_base_class_offset(lv, (bb20*)(cc020*), ABISELECT(16,12), "ee47020");
+ check_base_class_offset(lv, (cc020*)(dd7020*), ABISELECT(16,12), "ee47020");
+ check_base_class_offset(lv, (dd7020*), 0, "ee47020");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47020.e");
+ test_class_info(&lv, &cd_ee47020);
+ dp->~ee47020();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47020(Test_ee47020, "ee47020", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee47020C1Ev();
+extern void _ZN7ee47020D1Ev();
+Name_Map name_map_ee47020[] = {
+ NSPAIR(_ZN7ee47020C1Ev),
+ NSPAIR(_ZN7ee47020D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc020;
+extern VTBL_ENTRY _ZTI5cc020[];
+extern VTBL_ENTRY _ZTV5cc020[];
+extern Class_Descriptor cd_dd7020;
+extern VTBL_ENTRY _ZTI6dd7020[];
+extern VTBL_ENTRY _ZTV6dd7020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7020[];
+static Base_Class bases_ee47020[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc020, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7020, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee47020[];
+extern void _ZN7ee470203barEv();
+extern void _ZN6dd70203fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd70203fooEv,_ZTv0_n12_N6dd70203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70203fooEv,_ZThn12_N6dd70203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47020[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47020[0]),
+ (VTBL_ENTRY)&_ZN7ee470203barEv,
+ (VTBL_ENTRY)&_ZN6dd70203fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47020[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70203fooEv,_ZTv0_n12_N6dd70203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee47020[];
+extern void _ZN6dd70203barEv();
+extern void _ZN6dd70203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7020__7ee47020[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7020[0]),
+ (VTBL_ENTRY)&_ZN6dd70203barEv,
+ (VTBL_ENTRY)&_ZN6dd70203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd70203fooEv,_ZTv0_n12_N6dd70203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70203fooEv,_ZThn12_N6dd70203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb205cc020__6dd7020__7ee47020[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7020[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70203fooEv,_ZTv0_n12_N6dd70203fooEv),
+};
+static VTT_ENTRY vtt_ee47020[] = {
+ {&(_ZTV7ee47020[3]), 3,9},
+ {&(_tg__ZTV6dd7020__7ee47020[3]), 3,5},
+ {&(_tg__ZTV4bb205cc020__6dd7020__7ee47020[3]), 3,4},
+ {&(_ZTV7ee47020[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee47020[];
+extern VTBL_ENTRY _ZTV7ee47020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47020[];
+static VTBL_ENTRY alt_thunk_names34[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70203fooEv,_ZTv0_n12_N6dd70203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70203fooEv,_ZThn12_N6dd70203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70203fooEv,_ZThn12_N6dd70203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47020 = { "ee47020", // class name
+ bases_ee47020, 4,
+ &(vtc_ee47020[0]), // expected_vtbl_contents
+ &(vtt_ee47020[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee47020),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47020),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47020),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names34,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee57020 : virtual dd7020 {
+ int e;
+ virtual void bar(); // _ZN7ee570203barEv
+ ~ee57020(); // tgen
+ ee57020(); // tgen
+};
+//SIG(1 ee57020) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v2 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57020 ::bar(){vfunc_called(this, "_ZN7ee570203barEv");}
+ee57020 ::~ee57020(){ note_dtor("ee57020", this);} // tgen
+ee57020 ::ee57020(){ note_ctor("ee57020", this);} // tgen
+
+static void Test_ee57020()
+{
+ extern Class_Descriptor cd_ee57020;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee57020, buf);
+ ee57020 *dp, &lv = *(dp=new (buf) ee57020());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee57020)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57020)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc020*), ABISELECT(40,20), "ee57020");
+ check_base_class_offset(lv, (bb20*)(cc020*), ABISELECT(32,16), "ee57020");
+ check_base_class_offset(lv, (cc020*)(dd7020*), ABISELECT(32,16), "ee57020");
+ check_base_class_offset(lv, (dd7020*), ABISELECT(16,8), "ee57020");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57020.e");
+ test_class_info(&lv, &cd_ee57020);
+ dp->~ee57020();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57020(Test_ee57020, "ee57020", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee57020C1Ev();
+extern void _ZN7ee57020D1Ev();
+Name_Map name_map_ee57020[] = {
+ NSPAIR(_ZN7ee57020C1Ev),
+ NSPAIR(_ZN7ee57020D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc020;
+extern VTBL_ENTRY _ZTI5cc020[];
+extern VTBL_ENTRY _ZTV5cc020[];
+extern Class_Descriptor cd_dd7020;
+extern VTBL_ENTRY _ZTI6dd7020[];
+extern VTBL_ENTRY _ZTV6dd7020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7020[];
+static Base_Class bases_ee57020[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc020, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7020, 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 _ZTI7ee57020[];
+extern void _ZN7ee570203barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee570203barEv,_ZTv0_n16_N7ee570203barEv)();
+extern void ABISELECT(_ZThn16_N7ee570203barEv,_ZThn8_N7ee570203barEv)() __attribute__((weak));
+extern void _ZN6dd70203fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd70203fooEv,_ZTv0_n12_N6dd70203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70203fooEv,_ZThn8_N6dd70203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57020[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57020[0]),
+ (VTBL_ENTRY)&_ZN7ee570203barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57020[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee570203barEv,_ZTv0_n16_N7ee570203barEv),
+ (VTBL_ENTRY)&_ZN6dd70203fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57020[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70203fooEv,_ZTv0_n12_N6dd70203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee57020[];
+extern void _ZN6dd70203barEv();
+extern void _ZN6dd70203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7020__7ee57020[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7020[0]),
+ (VTBL_ENTRY)&_ZN6dd70203barEv,
+ (VTBL_ENTRY)&_ZN6dd70203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd70203fooEv,_ZTv0_n12_N6dd70203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70203fooEv,_ZThn8_N6dd70203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb205cc020__6dd7020__7ee57020[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7020[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70203fooEv,_ZTv0_n12_N6dd70203fooEv),
+};
+static VTT_ENTRY vtt_ee57020[] = {
+ {&(_ZTV7ee57020[4]), 4,16},
+ {&(_ZTV7ee57020[10]), 10,16},
+ {&(_ZTV7ee57020[15]), 15,16},
+ {&(_tg__ZTV6dd7020__7ee57020[3]), 3,5},
+ {&(_tg__ZTV4bb205cc020__6dd7020__7ee57020[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee57020[];
+extern VTBL_ENTRY _ZTV7ee57020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57020[];
+static VTBL_ENTRY alt_thunk_names35[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70203fooEv,_ZTv0_n12_N6dd70203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70203fooEv,_ZThn8_N6dd70203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70203fooEv,_ZThn8_N6dd70203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee570203barEv,_ZTv0_n16_N7ee570203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee570203barEv,_ZThn8_N7ee570203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57020 = { "ee57020", // class name
+ bases_ee57020, 4,
+ &(vtc_ee57020[0]), // expected_vtbl_contents
+ &(vtt_ee57020[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee57020),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57020),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57020),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names35,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee67020 : dd7020 {
+ int e;
+ virtual void foo(); // _ZN7ee670203fooEv
+ virtual void bar(); // _ZN7ee670203barEv
+ ~ee67020(); // tgen
+ ee67020(); // tgen
+};
+//SIG(1 ee67020) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v1 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67020 ::foo(){vfunc_called(this, "_ZN7ee670203fooEv");}
+void ee67020 ::bar(){vfunc_called(this, "_ZN7ee670203barEv");}
+ee67020 ::~ee67020(){ note_dtor("ee67020", this);} // tgen
+ee67020 ::ee67020(){ note_ctor("ee67020", this);} // tgen
+
+static void Test_ee67020()
+{
+ extern Class_Descriptor cd_ee67020;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee67020, buf);
+ ee67020 *dp, &lv = *(dp=new (buf) ee67020());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee67020)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67020)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc020*), ABISELECT(24,16), "ee67020");
+ check_base_class_offset(lv, (bb20*)(cc020*), ABISELECT(16,12), "ee67020");
+ check_base_class_offset(lv, (cc020*)(dd7020*), ABISELECT(16,12), "ee67020");
+ check_base_class_offset(lv, (dd7020*), 0, "ee67020");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67020.e");
+ test_class_info(&lv, &cd_ee67020);
+ dp->~ee67020();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67020(Test_ee67020, "ee67020", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee67020C1Ev();
+extern void _ZN7ee67020D1Ev();
+Name_Map name_map_ee67020[] = {
+ NSPAIR(_ZN7ee67020C1Ev),
+ NSPAIR(_ZN7ee67020D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc020;
+extern VTBL_ENTRY _ZTI5cc020[];
+extern VTBL_ENTRY _ZTV5cc020[];
+extern Class_Descriptor cd_dd7020;
+extern VTBL_ENTRY _ZTI6dd7020[];
+extern VTBL_ENTRY _ZTV6dd7020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7020[];
+static Base_Class bases_ee67020[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc020, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7020, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee67020[];
+extern void _ZN7ee670203barEv();
+extern void _ZN7ee670203fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee670203fooEv,_ZTv0_n12_N7ee670203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee670203fooEv,_ZThn12_N7ee670203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67020[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67020[0]),
+ (VTBL_ENTRY)&_ZN7ee670203barEv,
+ (VTBL_ENTRY)&_ZN7ee670203fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67020[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee670203fooEv,_ZTv0_n12_N7ee670203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee67020[];
+extern void _ZN6dd70203barEv();
+extern void _ZN6dd70203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7020__7ee67020[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7020[0]),
+ (VTBL_ENTRY)&_ZN6dd70203barEv,
+ (VTBL_ENTRY)&_ZN6dd70203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd70203fooEv,_ZTv0_n12_N6dd70203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70203fooEv,_ZThn12_N6dd70203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb205cc020__6dd7020__7ee67020[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7020[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70203fooEv,_ZTv0_n12_N6dd70203fooEv),
+};
+static VTT_ENTRY vtt_ee67020[] = {
+ {&(_ZTV7ee67020[3]), 3,9},
+ {&(_tg__ZTV6dd7020__7ee67020[3]), 3,5},
+ {&(_tg__ZTV4bb205cc020__6dd7020__7ee67020[3]), 3,4},
+ {&(_ZTV7ee67020[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee67020[];
+extern VTBL_ENTRY _ZTV7ee67020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67020[];
+static VTBL_ENTRY alt_thunk_names36[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70203fooEv,_ZTv0_n12_N6dd70203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70203fooEv,_ZThn12_N6dd70203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee670203fooEv,_ZTv0_n12_N7ee670203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee670203fooEv,_ZThn12_N7ee670203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67020 = { "ee67020", // class name
+ bases_ee67020, 4,
+ &(vtc_ee67020[0]), // expected_vtbl_contents
+ &(vtt_ee67020[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee67020),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67020),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67020),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names36,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee77020 : virtual dd7020 {
+ int e;
+ virtual void foo(); // _ZN7ee770203fooEv
+ virtual void bar(); // _ZN7ee770203barEv
+ ~ee77020(); // tgen
+ ee77020(); // tgen
+};
+//SIG(1 ee77020) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v1 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77020 ::foo(){vfunc_called(this, "_ZN7ee770203fooEv");}
+void ee77020 ::bar(){vfunc_called(this, "_ZN7ee770203barEv");}
+ee77020 ::~ee77020(){ note_dtor("ee77020", this);} // tgen
+ee77020 ::ee77020(){ note_ctor("ee77020", this);} // tgen
+
+static void Test_ee77020()
+{
+ extern Class_Descriptor cd_ee77020;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee77020, buf);
+ ee77020 *dp, &lv = *(dp=new (buf) ee77020());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee77020)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77020)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc020*), ABISELECT(40,20), "ee77020");
+ check_base_class_offset(lv, (bb20*)(cc020*), ABISELECT(32,16), "ee77020");
+ check_base_class_offset(lv, (cc020*)(dd7020*), ABISELECT(32,16), "ee77020");
+ check_base_class_offset(lv, (dd7020*), ABISELECT(16,8), "ee77020");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77020.e");
+ test_class_info(&lv, &cd_ee77020);
+ dp->~ee77020();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77020(Test_ee77020, "ee77020", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee77020C1Ev();
+extern void _ZN7ee77020D1Ev();
+Name_Map name_map_ee77020[] = {
+ NSPAIR(_ZN7ee77020C1Ev),
+ NSPAIR(_ZN7ee77020D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc020;
+extern VTBL_ENTRY _ZTI5cc020[];
+extern VTBL_ENTRY _ZTV5cc020[];
+extern Class_Descriptor cd_dd7020;
+extern VTBL_ENTRY _ZTI6dd7020[];
+extern VTBL_ENTRY _ZTV6dd7020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7020[];
+static Base_Class bases_ee77020[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc020, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7020, ABISELECT(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 _ZTI7ee77020[];
+extern void _ZN7ee770203fooEv();
+extern void _ZN7ee770203barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee770203barEv,_ZTv0_n16_N7ee770203barEv)();
+extern void ABISELECT(_ZThn16_N7ee770203barEv,_ZThn8_N7ee770203barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee770203fooEv,_ZTv0_n20_N7ee770203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee770203fooEv,_ZThn8_N7ee770203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee770203fooEv,_ZTv0_n12_N7ee770203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee770203fooEv,_ZThn16_N7ee770203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77020[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77020[0]),
+ (VTBL_ENTRY)&_ZN7ee770203fooEv,
+ (VTBL_ENTRY)&_ZN7ee770203barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77020[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee770203barEv,_ZTv0_n16_N7ee770203barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee770203fooEv,_ZTv0_n20_N7ee770203fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77020[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee770203fooEv,_ZTv0_n12_N7ee770203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee77020[];
+extern void _ZN6dd70203barEv();
+extern void _ZN6dd70203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7020__7ee77020[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7020[0]),
+ (VTBL_ENTRY)&_ZN6dd70203barEv,
+ (VTBL_ENTRY)&_ZN6dd70203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd70203fooEv,_ZTv0_n12_N6dd70203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70203fooEv,_ZThn8_N6dd70203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb205cc020__6dd7020__7ee77020[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7020[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70203fooEv,_ZTv0_n12_N6dd70203fooEv),
+};
+static VTT_ENTRY vtt_ee77020[] = {
+ {&(_ZTV7ee77020[4]), 4,17},
+ {&(_ZTV7ee77020[11]), 11,17},
+ {&(_ZTV7ee77020[16]), 16,17},
+ {&(_tg__ZTV6dd7020__7ee77020[3]), 3,5},
+ {&(_tg__ZTV4bb205cc020__6dd7020__7ee77020[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee77020[];
+extern VTBL_ENTRY _ZTV7ee77020[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77020[];
+static VTBL_ENTRY alt_thunk_names37[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70203fooEv,_ZTv0_n12_N6dd70203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70203fooEv,_ZThn8_N6dd70203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee770203fooEv,_ZTv0_n12_N7ee770203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee770203fooEv,_ZThn16_N7ee770203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee770203fooEv,_ZTv0_n20_N7ee770203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee770203fooEv,_ZThn8_N7ee770203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee770203barEv,_ZTv0_n16_N7ee770203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee770203barEv,_ZThn8_N7ee770203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77020 = { "ee77020", // class name
+ bases_ee77020, 4,
+ &(vtc_ee77020[0]), // expected_vtbl_contents
+ &(vtt_ee77020[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee77020),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77020),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77020),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names37,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc120 : virtual bb20 {
+ int c;
+ ~cc120(); // tgen
+ cc120(); // tgen
+};
+//SIG(-1 cc120) C1{ VBC2{ BC3{ Fi} v1 Fi} Fi}
+
+
+cc120 ::~cc120(){ note_dtor("cc120", this);} // tgen
+cc120 ::cc120(){ note_ctor("cc120", this);} // tgen
+
+static void Test_cc120()
+{
+ extern Class_Descriptor cd_cc120;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_cc120, buf);
+ cc120 *dp, &lv = *(dp=new (buf) cc120());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(cc120)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc120)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(24,12), "cc120");
+ check_base_class_offset(lv, (bb20*), ABISELECT(16,8), "cc120");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc120.c");
+ test_class_info(&lv, &cd_cc120);
+ dp->~cc120();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc120(Test_cc120, "cc120", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN5cc120C1Ev();
+extern void _ZN5cc120D1Ev();
+Name_Map name_map_cc120[] = {
+ NSPAIR(_ZN5cc120C1Ev),
+ NSPAIR(_ZN5cc120D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+static Base_Class bases_cc120[] = {
+ // 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_bb20, 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 _ZTI5cc120[];
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY vtc_cc120[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern VTBL_ENTRY _ZTV5cc120[];
+static VTT_ENTRY vtt_cc120[] = {
+ {&(_ZTV5cc120[3]), 3,7},
+ {&(_ZTV5cc120[6]), 6,7},
+};
+extern VTBL_ENTRY _ZTI5cc120[];
+extern VTBL_ENTRY _ZTV5cc120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc120[];
+Class_Descriptor cd_cc120 = { "cc120", // class name
+ bases_cc120, 2,
+ &(vtc_cc120[0]), // expected_vtbl_contents
+ &(vtt_cc120[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI5cc120),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV5cc120),7, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5cc120),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 dd0120 : cc120 {
+ int d;
+ ~dd0120(); // tgen
+ dd0120(); // tgen
+};
+//SIG(-1 dd0120) C1{ BC2{ VBC3{ BC4{ Fi} v1 Fi} Fi} Fi}
+
+
+dd0120 ::~dd0120(){ note_dtor("dd0120", this);} // tgen
+dd0120 ::dd0120(){ note_ctor("dd0120", this);} // tgen
+
+static void Test_dd0120()
+{
+ extern Class_Descriptor cd_dd0120;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd0120, buf);
+ dd0120 *dp, &lv = *(dp=new (buf) dd0120());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd0120)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0120)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(24,16), "dd0120");
+ check_base_class_offset(lv, (bb20*)(cc120*), ABISELECT(16,12), "dd0120");
+ check_base_class_offset(lv, (cc120*), 0, "dd0120");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd0120.d");
+ test_class_info(&lv, &cd_dd0120);
+ dp->~dd0120();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0120(Test_dd0120, "dd0120", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd0120C1Ev();
+extern void _ZN6dd0120D1Ev();
+Name_Map name_map_dd0120[] = {
+ NSPAIR(_ZN6dd0120C1Ev),
+ NSPAIR(_ZN6dd0120D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc120;
+extern VTBL_ENTRY _ZTI5cc120[];
+extern VTBL_ENTRY _ZTV5cc120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc120[];
+static Base_Class bases_dd0120[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc120, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd0120[];
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY vtc_dd0120[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0120[0]),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd0120[];
+static VTBL_ENTRY _tg__ZTV5cc120__6dd0120[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc120__6dd0120[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_dd0120[] = {
+ {&(_ZTV6dd0120[3]), 3,7},
+ {&(_tg__ZTV5cc120__6dd0120[3]), 3,3},
+ {&(_tg__ZTV4bb20__5cc120__6dd0120[3]), 3,4},
+ {&(_ZTV6dd0120[6]), 6,7},
+};
+extern VTBL_ENTRY _ZTI6dd0120[];
+extern VTBL_ENTRY _ZTV6dd0120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0120[];
+Class_Descriptor cd_dd0120 = { "dd0120", // class name
+ bases_dd0120, 3,
+ &(vtc_dd0120[0]), // expected_vtbl_contents
+ &(vtt_dd0120[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd0120),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0120),7, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd0120),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 ee00120 : dd0120 {
+ int e;
+ ~ee00120(); // tgen
+ ee00120(); // tgen
+};
+//SIG(1 ee00120) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v1 Fi} Fi} Fi} Fi}
+
+
+ee00120 ::~ee00120(){ note_dtor("ee00120", this);} // tgen
+ee00120 ::ee00120(){ note_ctor("ee00120", this);} // tgen
+
+static void Test_ee00120()
+{
+ extern Class_Descriptor cd_ee00120;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee00120, buf);
+ ee00120 *dp, &lv = *(dp=new (buf) ee00120());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee00120)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00120)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(32,20), "ee00120");
+ check_base_class_offset(lv, (bb20*)(cc120*)(dd0120*), ABISELECT(24,16), "ee00120");
+ check_base_class_offset(lv, (cc120*)(dd0120*), 0, "ee00120");
+ check_base_class_offset(lv, (dd0120*), 0, "ee00120");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee00120.e");
+ test_class_info(&lv, &cd_ee00120);
+ dp->~ee00120();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00120(Test_ee00120, "ee00120", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee00120C1Ev();
+extern void _ZN7ee00120D1Ev();
+Name_Map name_map_ee00120[] = {
+ NSPAIR(_ZN7ee00120C1Ev),
+ NSPAIR(_ZN7ee00120D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc120;
+extern VTBL_ENTRY _ZTI5cc120[];
+extern VTBL_ENTRY _ZTV5cc120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc120[];
+extern Class_Descriptor cd_dd0120;
+extern VTBL_ENTRY _ZTI6dd0120[];
+extern VTBL_ENTRY _ZTV6dd0120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0120[];
+static Base_Class bases_ee00120[] = {
+ // 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_bb20, ABISELECT(24,16), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc120, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0120, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee00120[];
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY vtc_ee00120[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00120[0]),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee00120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee00120[];
+static VTBL_ENTRY _tg__ZTV6dd0120__7ee00120[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0120[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1206dd0120__7ee00120[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc1206dd0120__7ee00120[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__6dd0120__7ee00120[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee00120[] = {
+ {&(_ZTV7ee00120[3]), 3,7},
+ {&(_tg__ZTV6dd0120__7ee00120[3]), 3,3},
+ {&(_tg__ZTV5cc1206dd0120__7ee00120[3]), 3,3},
+ {&(_tg__ZTV4bb20__5cc1206dd0120__7ee00120[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd0120__7ee00120[3]), 3,4},
+ {&(_ZTV7ee00120[6]), 6,7},
+};
+extern VTBL_ENTRY _ZTI7ee00120[];
+extern VTBL_ENTRY _ZTV7ee00120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee00120[];
+Class_Descriptor cd_ee00120 = { "ee00120", // class name
+ bases_ee00120, 4,
+ &(vtc_ee00120[0]), // expected_vtbl_contents
+ &(vtt_ee00120[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee00120),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00120),7, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee00120),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee10120 : virtual dd0120 {
+ int e;
+ ~ee10120(); // tgen
+ ee10120(); // tgen
+};
+//SIG(1 ee10120) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v1 Fi} Fi} Fi} Fi}
+
+
+ee10120 ::~ee10120(){ note_dtor("ee10120", this);} // tgen
+ee10120 ::ee10120(){ note_ctor("ee10120", this);} // tgen
+
+static void Test_ee10120()
+{
+ extern Class_Descriptor cd_ee10120;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee10120, buf);
+ ee10120 *dp, &lv = *(dp=new (buf) ee10120());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee10120)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10120)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee10120");
+ check_base_class_offset(lv, (bb20*)(cc120*)(dd0120*), ABISELECT(32,20), "ee10120");
+ check_base_class_offset(lv, (cc120*)(dd0120*), ABISELECT(16,8), "ee10120");
+ check_base_class_offset(lv, (dd0120*), ABISELECT(16,8), "ee10120");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10120.e");
+ test_class_info(&lv, &cd_ee10120);
+ dp->~ee10120();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10120(Test_ee10120, "ee10120", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee10120C1Ev();
+extern void _ZN7ee10120D1Ev();
+Name_Map name_map_ee10120[] = {
+ NSPAIR(_ZN7ee10120C1Ev),
+ NSPAIR(_ZN7ee10120D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc120;
+extern VTBL_ENTRY _ZTI5cc120[];
+extern VTBL_ENTRY _ZTV5cc120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc120[];
+extern Class_Descriptor cd_dd0120;
+extern VTBL_ENTRY _ZTI6dd0120[];
+extern VTBL_ENTRY _ZTV6dd0120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0120[];
+static Base_Class bases_ee10120[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc120, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0120, 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 _ZTI7ee10120[];
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY vtc_ee10120[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10120[0]),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10120[0]),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee10120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee10120[];
+static VTBL_ENTRY _tg__ZTV6dd0120__7ee10120[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0120[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1206dd0120__7ee10120[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc1206dd0120__7ee10120[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__6dd0120__7ee10120[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee10120[] = {
+ {&(_ZTV7ee10120[4]), 4,11},
+ {&(_ZTV7ee10120[7]), 7,11},
+ {&(_ZTV7ee10120[10]), 10,11},
+ {&(_tg__ZTV6dd0120__7ee10120[3]), 3,3},
+ {&(_tg__ZTV5cc1206dd0120__7ee10120[3]), 3,3},
+ {&(_tg__ZTV4bb20__5cc1206dd0120__7ee10120[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd0120__7ee10120[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee10120[];
+extern VTBL_ENTRY _ZTV7ee10120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10120[];
+Class_Descriptor cd_ee10120 = { "ee10120", // class name
+ bases_ee10120, 4,
+ &(vtc_ee10120[0]), // expected_vtbl_contents
+ &(vtt_ee10120[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee10120),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10120),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10120),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee20120 : dd0120 {
+ int e;
+ virtual void foo(); // _ZN7ee201203fooEv
+ ~ee20120(); // tgen
+ ee20120(); // tgen
+};
+//SIG(1 ee20120) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v1 Fi} Fi} Fi} v1 Fi}
+
+
+void ee20120 ::foo(){vfunc_called(this, "_ZN7ee201203fooEv");}
+ee20120 ::~ee20120(){ note_dtor("ee20120", this);} // tgen
+ee20120 ::ee20120(){ note_ctor("ee20120", this);} // tgen
+
+static void Test_ee20120()
+{
+ extern Class_Descriptor cd_ee20120;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee20120, buf);
+ ee20120 *dp, &lv = *(dp=new (buf) ee20120());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee20120)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20120)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(32,20), "ee20120");
+ check_base_class_offset(lv, (bb20*)(cc120*)(dd0120*), ABISELECT(24,16), "ee20120");
+ check_base_class_offset(lv, (cc120*)(dd0120*), 0, "ee20120");
+ check_base_class_offset(lv, (dd0120*), 0, "ee20120");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee20120.e");
+ test_class_info(&lv, &cd_ee20120);
+ dp->~ee20120();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20120(Test_ee20120, "ee20120", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee20120C1Ev();
+extern void _ZN7ee20120D1Ev();
+Name_Map name_map_ee20120[] = {
+ NSPAIR(_ZN7ee20120C1Ev),
+ NSPAIR(_ZN7ee20120D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc120;
+extern VTBL_ENTRY _ZTI5cc120[];
+extern VTBL_ENTRY _ZTV5cc120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc120[];
+extern Class_Descriptor cd_dd0120;
+extern VTBL_ENTRY _ZTI6dd0120[];
+extern VTBL_ENTRY _ZTV6dd0120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0120[];
+static Base_Class bases_ee20120[] = {
+ // 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_bb20, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc120, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0120, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee20120[];
+extern void _ZN7ee201203fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee201203fooEv,_ZTv0_n12_N7ee201203fooEv)();
+extern void ABISELECT(_ZThn24_N7ee201203fooEv,_ZThn16_N7ee201203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee20120[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20120[0]),
+ (VTBL_ENTRY)&_ZN7ee201203fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee20120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee201203fooEv,_ZTv0_n12_N7ee201203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee20120[];
+static VTBL_ENTRY _tg__ZTV6dd0120__7ee20120[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0120[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1206dd0120__7ee20120[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc1206dd0120__7ee20120[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__6dd0120__7ee20120[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee20120[] = {
+ {&(_ZTV7ee20120[3]), 3,8},
+ {&(_tg__ZTV6dd0120__7ee20120[3]), 3,3},
+ {&(_tg__ZTV5cc1206dd0120__7ee20120[3]), 3,3},
+ {&(_tg__ZTV4bb20__5cc1206dd0120__7ee20120[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd0120__7ee20120[3]), 3,4},
+ {&(_ZTV7ee20120[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee20120[];
+extern VTBL_ENTRY _ZTV7ee20120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee20120[];
+static VTBL_ENTRY alt_thunk_names38[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee201203fooEv,_ZTv0_n12_N7ee201203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee201203fooEv,_ZThn16_N7ee201203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee20120 = { "ee20120", // class name
+ bases_ee20120, 4,
+ &(vtc_ee20120[0]), // expected_vtbl_contents
+ &(vtt_ee20120[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee20120),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20120),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee20120),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names38,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee30120 : virtual dd0120 {
+ int e;
+ virtual void foo(); // _ZN7ee301203fooEv
+ ~ee30120(); // tgen
+ ee30120(); // tgen
+};
+//SIG(1 ee30120) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v1 Fi} Fi} Fi} v1 Fi}
+
+
+void ee30120 ::foo(){vfunc_called(this, "_ZN7ee301203fooEv");}
+ee30120 ::~ee30120(){ note_dtor("ee30120", this);} // tgen
+ee30120 ::ee30120(){ note_ctor("ee30120", this);} // tgen
+
+static void Test_ee30120()
+{
+ extern Class_Descriptor cd_ee30120;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee30120, buf);
+ ee30120 *dp, &lv = *(dp=new (buf) ee30120());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee30120)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30120)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee30120");
+ check_base_class_offset(lv, (bb20*)(cc120*)(dd0120*), ABISELECT(32,20), "ee30120");
+ check_base_class_offset(lv, (cc120*)(dd0120*), ABISELECT(16,8), "ee30120");
+ check_base_class_offset(lv, (dd0120*), ABISELECT(16,8), "ee30120");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30120.e");
+ test_class_info(&lv, &cd_ee30120);
+ dp->~ee30120();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30120(Test_ee30120, "ee30120", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee30120C1Ev();
+extern void _ZN7ee30120D1Ev();
+Name_Map name_map_ee30120[] = {
+ NSPAIR(_ZN7ee30120C1Ev),
+ NSPAIR(_ZN7ee30120D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc120;
+extern VTBL_ENTRY _ZTI5cc120[];
+extern VTBL_ENTRY _ZTV5cc120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc120[];
+extern Class_Descriptor cd_dd0120;
+extern VTBL_ENTRY _ZTI6dd0120[];
+extern VTBL_ENTRY _ZTV6dd0120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0120[];
+static Base_Class bases_ee30120[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc120, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0120, 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 _ZTI7ee30120[];
+extern void _ZN7ee301203fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee301203fooEv,_ZTv0_n12_N7ee301203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee301203fooEv,_ZThn20_N7ee301203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee30120[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30120[0]),
+ (VTBL_ENTRY)&_ZN7ee301203fooEv,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30120[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee30120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee301203fooEv,_ZTv0_n12_N7ee301203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee30120[];
+static VTBL_ENTRY _tg__ZTV6dd0120__7ee30120[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0120[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1206dd0120__7ee30120[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc1206dd0120__7ee30120[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__6dd0120__7ee30120[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee30120[] = {
+ {&(_ZTV7ee30120[4]), 4,12},
+ {&(_ZTV7ee30120[8]), 8,12},
+ {&(_ZTV7ee30120[11]), 11,12},
+ {&(_tg__ZTV6dd0120__7ee30120[3]), 3,3},
+ {&(_tg__ZTV5cc1206dd0120__7ee30120[3]), 3,3},
+ {&(_tg__ZTV4bb20__5cc1206dd0120__7ee30120[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd0120__7ee30120[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee30120[];
+extern VTBL_ENTRY _ZTV7ee30120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30120[];
+static VTBL_ENTRY alt_thunk_names39[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee301203fooEv,_ZTv0_n12_N7ee301203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee301203fooEv,_ZThn20_N7ee301203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30120 = { "ee30120", // class name
+ bases_ee30120, 4,
+ &(vtc_ee30120[0]), // expected_vtbl_contents
+ &(vtt_ee30120[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee30120),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30120),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30120),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names39,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee40120 : dd0120 {
+ int e;
+ virtual void bar(); // _ZN7ee401203barEv
+ ~ee40120(); // tgen
+ ee40120(); // tgen
+};
+//SIG(1 ee40120) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v2 Fi} Fi} Fi} v1 Fi}
+
+
+void ee40120 ::bar(){vfunc_called(this, "_ZN7ee401203barEv");}
+ee40120 ::~ee40120(){ note_dtor("ee40120", this);} // tgen
+ee40120 ::ee40120(){ note_ctor("ee40120", this);} // tgen
+
+static void Test_ee40120()
+{
+ extern Class_Descriptor cd_ee40120;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee40120, buf);
+ ee40120 *dp, &lv = *(dp=new (buf) ee40120());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee40120)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40120)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(32,20), "ee40120");
+ check_base_class_offset(lv, (bb20*)(cc120*)(dd0120*), ABISELECT(24,16), "ee40120");
+ check_base_class_offset(lv, (cc120*)(dd0120*), 0, "ee40120");
+ check_base_class_offset(lv, (dd0120*), 0, "ee40120");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee40120.e");
+ test_class_info(&lv, &cd_ee40120);
+ dp->~ee40120();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40120(Test_ee40120, "ee40120", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee40120C1Ev();
+extern void _ZN7ee40120D1Ev();
+Name_Map name_map_ee40120[] = {
+ NSPAIR(_ZN7ee40120C1Ev),
+ NSPAIR(_ZN7ee40120D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc120;
+extern VTBL_ENTRY _ZTI5cc120[];
+extern VTBL_ENTRY _ZTV5cc120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc120[];
+extern Class_Descriptor cd_dd0120;
+extern VTBL_ENTRY _ZTI6dd0120[];
+extern VTBL_ENTRY _ZTV6dd0120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0120[];
+static Base_Class bases_ee40120[] = {
+ // 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_bb20, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc120, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0120, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee40120[];
+extern void _ZN7ee401203barEv();
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY vtc_ee40120[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40120[0]),
+ (VTBL_ENTRY)&_ZN7ee401203barEv,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee40120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee40120[];
+static VTBL_ENTRY _tg__ZTV6dd0120__7ee40120[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0120[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1206dd0120__7ee40120[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc1206dd0120__7ee40120[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__6dd0120__7ee40120[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee40120[] = {
+ {&(_ZTV7ee40120[3]), 3,8},
+ {&(_tg__ZTV6dd0120__7ee40120[3]), 3,3},
+ {&(_tg__ZTV5cc1206dd0120__7ee40120[3]), 3,3},
+ {&(_tg__ZTV4bb20__5cc1206dd0120__7ee40120[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd0120__7ee40120[3]), 3,4},
+ {&(_ZTV7ee40120[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee40120[];
+extern VTBL_ENTRY _ZTV7ee40120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee40120[];
+Class_Descriptor cd_ee40120 = { "ee40120", // class name
+ bases_ee40120, 4,
+ &(vtc_ee40120[0]), // expected_vtbl_contents
+ &(vtt_ee40120[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee40120),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40120),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee40120),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee50120 : virtual dd0120 {
+ int e;
+ virtual void bar(); // _ZN7ee501203barEv
+ ~ee50120(); // tgen
+ ee50120(); // tgen
+};
+//SIG(1 ee50120) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v2 Fi} Fi} Fi} v1 Fi}
+
+
+void ee50120 ::bar(){vfunc_called(this, "_ZN7ee501203barEv");}
+ee50120 ::~ee50120(){ note_dtor("ee50120", this);} // tgen
+ee50120 ::ee50120(){ note_ctor("ee50120", this);} // tgen
+
+static void Test_ee50120()
+{
+ extern Class_Descriptor cd_ee50120;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee50120, buf);
+ ee50120 *dp, &lv = *(dp=new (buf) ee50120());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee50120)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50120)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee50120");
+ check_base_class_offset(lv, (bb20*)(cc120*)(dd0120*), ABISELECT(32,20), "ee50120");
+ check_base_class_offset(lv, (cc120*)(dd0120*), ABISELECT(16,8), "ee50120");
+ check_base_class_offset(lv, (dd0120*), ABISELECT(16,8), "ee50120");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50120.e");
+ test_class_info(&lv, &cd_ee50120);
+ dp->~ee50120();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50120(Test_ee50120, "ee50120", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee50120C1Ev();
+extern void _ZN7ee50120D1Ev();
+Name_Map name_map_ee50120[] = {
+ NSPAIR(_ZN7ee50120C1Ev),
+ NSPAIR(_ZN7ee50120D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc120;
+extern VTBL_ENTRY _ZTI5cc120[];
+extern VTBL_ENTRY _ZTV5cc120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc120[];
+extern Class_Descriptor cd_dd0120;
+extern VTBL_ENTRY _ZTI6dd0120[];
+extern VTBL_ENTRY _ZTV6dd0120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0120[];
+static Base_Class bases_ee50120[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc120, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0120, 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 _ZTI7ee50120[];
+extern void _ZN7ee501203barEv();
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY vtc_ee50120[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50120[0]),
+ (VTBL_ENTRY)&_ZN7ee501203barEv,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50120[0]),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee50120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee50120[];
+static VTBL_ENTRY _tg__ZTV6dd0120__7ee50120[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0120[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1206dd0120__7ee50120[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc1206dd0120__7ee50120[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__6dd0120__7ee50120[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee50120[] = {
+ {&(_ZTV7ee50120[4]), 4,12},
+ {&(_ZTV7ee50120[8]), 8,12},
+ {&(_ZTV7ee50120[11]), 11,12},
+ {&(_tg__ZTV6dd0120__7ee50120[3]), 3,3},
+ {&(_tg__ZTV5cc1206dd0120__7ee50120[3]), 3,3},
+ {&(_tg__ZTV4bb20__5cc1206dd0120__7ee50120[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd0120__7ee50120[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee50120[];
+extern VTBL_ENTRY _ZTV7ee50120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50120[];
+Class_Descriptor cd_ee50120 = { "ee50120", // class name
+ bases_ee50120, 4,
+ &(vtc_ee50120[0]), // expected_vtbl_contents
+ &(vtt_ee50120[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee50120),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50120),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50120),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee60120 : dd0120 {
+ int e;
+ virtual void foo(); // _ZN7ee601203fooEv
+ virtual void bar(); // _ZN7ee601203barEv
+ ~ee60120(); // tgen
+ ee60120(); // tgen
+};
+//SIG(1 ee60120) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v1 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee60120 ::foo(){vfunc_called(this, "_ZN7ee601203fooEv");}
+void ee60120 ::bar(){vfunc_called(this, "_ZN7ee601203barEv");}
+ee60120 ::~ee60120(){ note_dtor("ee60120", this);} // tgen
+ee60120 ::ee60120(){ note_ctor("ee60120", this);} // tgen
+
+static void Test_ee60120()
+{
+ extern Class_Descriptor cd_ee60120;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee60120, buf);
+ ee60120 *dp, &lv = *(dp=new (buf) ee60120());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee60120)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60120)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(32,20), "ee60120");
+ check_base_class_offset(lv, (bb20*)(cc120*)(dd0120*), ABISELECT(24,16), "ee60120");
+ check_base_class_offset(lv, (cc120*)(dd0120*), 0, "ee60120");
+ check_base_class_offset(lv, (dd0120*), 0, "ee60120");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee60120.e");
+ test_class_info(&lv, &cd_ee60120);
+ dp->~ee60120();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60120(Test_ee60120, "ee60120", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee60120C1Ev();
+extern void _ZN7ee60120D1Ev();
+Name_Map name_map_ee60120[] = {
+ NSPAIR(_ZN7ee60120C1Ev),
+ NSPAIR(_ZN7ee60120D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc120;
+extern VTBL_ENTRY _ZTI5cc120[];
+extern VTBL_ENTRY _ZTV5cc120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc120[];
+extern Class_Descriptor cd_dd0120;
+extern VTBL_ENTRY _ZTI6dd0120[];
+extern VTBL_ENTRY _ZTV6dd0120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0120[];
+static Base_Class bases_ee60120[] = {
+ // 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_bb20, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc120, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0120, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee60120[];
+extern void _ZN7ee601203fooEv();
+extern void _ZN7ee601203barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee601203fooEv,_ZTv0_n12_N7ee601203fooEv)();
+extern void ABISELECT(_ZThn24_N7ee601203fooEv,_ZThn16_N7ee601203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee60120[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60120[0]),
+ (VTBL_ENTRY)&_ZN7ee601203fooEv,
+ (VTBL_ENTRY)&_ZN7ee601203barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee60120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee601203fooEv,_ZTv0_n12_N7ee601203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee60120[];
+static VTBL_ENTRY _tg__ZTV6dd0120__7ee60120[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0120[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1206dd0120__7ee60120[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc1206dd0120__7ee60120[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__6dd0120__7ee60120[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee60120[] = {
+ {&(_ZTV7ee60120[3]), 3,9},
+ {&(_tg__ZTV6dd0120__7ee60120[3]), 3,3},
+ {&(_tg__ZTV5cc1206dd0120__7ee60120[3]), 3,3},
+ {&(_tg__ZTV4bb20__5cc1206dd0120__7ee60120[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd0120__7ee60120[3]), 3,4},
+ {&(_ZTV7ee60120[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee60120[];
+extern VTBL_ENTRY _ZTV7ee60120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee60120[];
+static VTBL_ENTRY alt_thunk_names40[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee601203fooEv,_ZTv0_n12_N7ee601203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee601203fooEv,_ZThn16_N7ee601203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee60120 = { "ee60120", // class name
+ bases_ee60120, 4,
+ &(vtc_ee60120[0]), // expected_vtbl_contents
+ &(vtt_ee60120[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee60120),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60120),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee60120),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names40,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee70120 : virtual dd0120 {
+ int e;
+ virtual void foo(); // _ZN7ee701203fooEv
+ virtual void bar(); // _ZN7ee701203barEv
+ ~ee70120(); // tgen
+ ee70120(); // tgen
+};
+//SIG(1 ee70120) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v1 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee70120 ::foo(){vfunc_called(this, "_ZN7ee701203fooEv");}
+void ee70120 ::bar(){vfunc_called(this, "_ZN7ee701203barEv");}
+ee70120 ::~ee70120(){ note_dtor("ee70120", this);} // tgen
+ee70120 ::ee70120(){ note_ctor("ee70120", this);} // tgen
+
+static void Test_ee70120()
+{
+ extern Class_Descriptor cd_ee70120;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee70120, buf);
+ ee70120 *dp, &lv = *(dp=new (buf) ee70120());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee70120)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70120)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee70120");
+ check_base_class_offset(lv, (bb20*)(cc120*)(dd0120*), ABISELECT(32,20), "ee70120");
+ check_base_class_offset(lv, (cc120*)(dd0120*), ABISELECT(16,8), "ee70120");
+ check_base_class_offset(lv, (dd0120*), ABISELECT(16,8), "ee70120");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70120.e");
+ test_class_info(&lv, &cd_ee70120);
+ dp->~ee70120();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70120(Test_ee70120, "ee70120", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee70120C1Ev();
+extern void _ZN7ee70120D1Ev();
+Name_Map name_map_ee70120[] = {
+ NSPAIR(_ZN7ee70120C1Ev),
+ NSPAIR(_ZN7ee70120D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc120;
+extern VTBL_ENTRY _ZTI5cc120[];
+extern VTBL_ENTRY _ZTV5cc120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc120[];
+extern Class_Descriptor cd_dd0120;
+extern VTBL_ENTRY _ZTI6dd0120[];
+extern VTBL_ENTRY _ZTV6dd0120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0120[];
+static Base_Class bases_ee70120[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc120, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0120, 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 _ZTI7ee70120[];
+extern void _ZN7ee701203fooEv();
+extern void _ZN7ee701203barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee701203fooEv,_ZTv0_n12_N7ee701203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee701203fooEv,_ZThn20_N7ee701203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70120[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70120[0]),
+ (VTBL_ENTRY)&_ZN7ee701203fooEv,
+ (VTBL_ENTRY)&_ZN7ee701203barEv,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70120[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee70120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee701203fooEv,_ZTv0_n12_N7ee701203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee70120[];
+static VTBL_ENTRY _tg__ZTV6dd0120__7ee70120[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0120[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1206dd0120__7ee70120[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc1206dd0120__7ee70120[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__6dd0120__7ee70120[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee70120[] = {
+ {&(_ZTV7ee70120[4]), 4,13},
+ {&(_ZTV7ee70120[9]), 9,13},
+ {&(_ZTV7ee70120[12]), 12,13},
+ {&(_tg__ZTV6dd0120__7ee70120[3]), 3,3},
+ {&(_tg__ZTV5cc1206dd0120__7ee70120[3]), 3,3},
+ {&(_tg__ZTV4bb20__5cc1206dd0120__7ee70120[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd0120__7ee70120[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee70120[];
+extern VTBL_ENTRY _ZTV7ee70120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70120[];
+static VTBL_ENTRY alt_thunk_names41[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee701203fooEv,_ZTv0_n12_N7ee701203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee701203fooEv,_ZThn20_N7ee701203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70120 = { "ee70120", // class name
+ bases_ee70120, 4,
+ &(vtc_ee70120[0]), // expected_vtbl_contents
+ &(vtt_ee70120[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee70120),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70120),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70120),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names41,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd1120 : virtual cc120 {
+ int d;
+ ~dd1120(); // tgen
+ dd1120(); // tgen
+};
+//SIG(-1 dd1120) C1{ VBC2{ VBC3{ BC4{ Fi} v1 Fi} Fi} Fi}
+
+
+dd1120 ::~dd1120(){ note_dtor("dd1120", this);} // tgen
+dd1120 ::dd1120(){ note_ctor("dd1120", this);} // tgen
+
+static void Test_dd1120()
+{
+ extern Class_Descriptor cd_dd1120;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd1120, buf);
+ dd1120 *dp, &lv = *(dp=new (buf) dd1120());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd1120)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1120)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,20), "dd1120");
+ check_base_class_offset(lv, (bb20*)(cc120*), ABISELECT(32,16), "dd1120");
+ check_base_class_offset(lv, (cc120*), ABISELECT(16,8), "dd1120");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1120.d");
+ test_class_info(&lv, &cd_dd1120);
+ dp->~dd1120();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1120(Test_dd1120, "dd1120", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd1120C1Ev();
+extern void _ZN6dd1120D1Ev();
+Name_Map name_map_dd1120[] = {
+ NSPAIR(_ZN6dd1120C1Ev),
+ NSPAIR(_ZN6dd1120D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc120;
+extern VTBL_ENTRY _ZTI5cc120[];
+extern VTBL_ENTRY _ZTV5cc120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc120[];
+static Base_Class bases_dd1120[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc120, 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 _ZTI6dd1120[];
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY vtc_dd1120[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1120[0]),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1120[0]),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd1120[];
+static VTBL_ENTRY _tg__ZTV5cc120__6dd1120[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc120__6dd1120[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_dd1120[] = {
+ {&(_ZTV6dd1120[4]), 4,11},
+ {&(_ZTV6dd1120[7]), 7,11},
+ {&(_ZTV6dd1120[10]), 10,11},
+ {&(_tg__ZTV5cc120__6dd1120[3]), 3,3},
+ {&(_tg__ZTV4bb20__5cc120__6dd1120[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd1120[];
+extern VTBL_ENTRY _ZTV6dd1120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1120[];
+Class_Descriptor cd_dd1120 = { "dd1120", // class name
+ bases_dd1120, 3,
+ &(vtc_dd1120[0]), // expected_vtbl_contents
+ &(vtt_dd1120[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd1120),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1120),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1120),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 ee01120 : dd1120 {
+ int e;
+ ~ee01120(); // tgen
+ ee01120(); // tgen
+};
+//SIG(1 ee01120) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v1 Fi} Fi} Fi} Fi}
+
+
+ee01120 ::~ee01120(){ note_dtor("ee01120", this);} // tgen
+ee01120 ::ee01120(){ note_ctor("ee01120", this);} // tgen
+
+static void Test_ee01120()
+{
+ extern Class_Descriptor cd_ee01120;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee01120, buf);
+ ee01120 *dp, &lv = *(dp=new (buf) ee01120());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee01120)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01120)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee01120");
+ check_base_class_offset(lv, (bb20*)(cc120*), ABISELECT(32,20), "ee01120");
+ check_base_class_offset(lv, (cc120*)(dd1120*), ABISELECT(16,12), "ee01120");
+ check_base_class_offset(lv, (dd1120*), 0, "ee01120");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01120.e");
+ test_class_info(&lv, &cd_ee01120);
+ dp->~ee01120();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01120(Test_ee01120, "ee01120", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee01120C1Ev();
+extern void _ZN7ee01120D1Ev();
+Name_Map name_map_ee01120[] = {
+ NSPAIR(_ZN7ee01120C1Ev),
+ NSPAIR(_ZN7ee01120D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc120;
+extern VTBL_ENTRY _ZTI5cc120[];
+extern VTBL_ENTRY _ZTV5cc120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc120[];
+extern Class_Descriptor cd_dd1120;
+extern VTBL_ENTRY _ZTI6dd1120[];
+extern VTBL_ENTRY _ZTV6dd1120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1120[];
+static Base_Class bases_ee01120[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc120, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1120, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01120[];
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY vtc_ee01120[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01120[0]),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01120[0]),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee01120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee01120[];
+static VTBL_ENTRY _tg__ZTV6dd1120__7ee01120[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1120[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc120__6dd1120__7ee01120[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__6dd1120__7ee01120[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc120__7ee01120[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc120__7ee01120[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee01120[] = {
+ {&(_ZTV7ee01120[4]), 4,11},
+ {&(_tg__ZTV6dd1120__7ee01120[4]), 4,4},
+ {&(_tg__ZTV5cc120__6dd1120__7ee01120[3]), 3,3},
+ {&(_tg__ZTV4bb20__6dd1120__7ee01120[3]), 3,4},
+ {&(_ZTV7ee01120[7]), 7,11},
+ {&(_ZTV7ee01120[10]), 10,11},
+ {&(_tg__ZTV5cc120__7ee01120[3]), 3,3},
+ {&(_tg__ZTV4bb20__5cc120__7ee01120[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee01120[];
+extern VTBL_ENTRY _ZTV7ee01120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01120[];
+Class_Descriptor cd_ee01120 = { "ee01120", // class name
+ bases_ee01120, 4,
+ &(vtc_ee01120[0]), // expected_vtbl_contents
+ &(vtt_ee01120[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee01120),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01120),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01120),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee11120 : virtual dd1120 {
+ int e;
+ ~ee11120(); // tgen
+ ee11120(); // tgen
+};
+//SIG(1 ee11120) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v1 Fi} Fi} Fi} Fi}
+
+
+ee11120 ::~ee11120(){ note_dtor("ee11120", this);} // tgen
+ee11120 ::ee11120(){ note_ctor("ee11120", this);} // tgen
+
+static void Test_ee11120()
+{
+ extern Class_Descriptor cd_ee11120;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee11120, buf);
+ ee11120 *dp, &lv = *(dp=new (buf) ee11120());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee11120)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11120)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(56,28), "ee11120");
+ check_base_class_offset(lv, (bb20*)(cc120*), ABISELECT(48,24), "ee11120");
+ check_base_class_offset(lv, (cc120*)(dd1120*), ABISELECT(32,16), "ee11120");
+ check_base_class_offset(lv, (dd1120*), ABISELECT(16,8), "ee11120");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11120.e");
+ test_class_info(&lv, &cd_ee11120);
+ dp->~ee11120();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11120(Test_ee11120, "ee11120", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee11120C1Ev();
+extern void _ZN7ee11120D1Ev();
+Name_Map name_map_ee11120[] = {
+ NSPAIR(_ZN7ee11120C1Ev),
+ NSPAIR(_ZN7ee11120D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc120;
+extern VTBL_ENTRY _ZTI5cc120[];
+extern VTBL_ENTRY _ZTV5cc120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc120[];
+extern Class_Descriptor cd_dd1120;
+extern VTBL_ENTRY _ZTI6dd1120[];
+extern VTBL_ENTRY _ZTV6dd1120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1120[];
+static Base_Class bases_ee11120[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(56,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(48,24), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc120, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1120, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee11120[];
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY vtc_ee11120[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11120[0]),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11120[0]),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11120[0]),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee11120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee11120[];
+static VTBL_ENTRY _tg__ZTV6dd1120__7ee11120[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1120[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc120__6dd1120__7ee11120[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__6dd1120__7ee11120[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc120__7ee11120[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc120__7ee11120[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee11120[] = {
+ {&(_ZTV7ee11120[5]), 5,16},
+ {&(_ZTV7ee11120[9]), 9,16},
+ {&(_ZTV7ee11120[12]), 12,16},
+ {&(_ZTV7ee11120[15]), 15,16},
+ {&(_tg__ZTV6dd1120__7ee11120[4]), 4,4},
+ {&(_tg__ZTV5cc120__6dd1120__7ee11120[3]), 3,3},
+ {&(_tg__ZTV4bb20__6dd1120__7ee11120[3]), 3,4},
+ {&(_tg__ZTV5cc120__7ee11120[3]), 3,3},
+ {&(_tg__ZTV4bb20__5cc120__7ee11120[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee11120[];
+extern VTBL_ENTRY _ZTV7ee11120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11120[];
+Class_Descriptor cd_ee11120 = { "ee11120", // class name
+ bases_ee11120, 4,
+ &(vtc_ee11120[0]), // expected_vtbl_contents
+ &(vtt_ee11120[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee11120),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11120),16, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11120),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee21120 : dd1120 {
+ int e;
+ virtual void foo(); // _ZN7ee211203fooEv
+ ~ee21120(); // tgen
+ ee21120(); // tgen
+};
+//SIG(1 ee21120) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v1 Fi} Fi} Fi} v1 Fi}
+
+
+void ee21120 ::foo(){vfunc_called(this, "_ZN7ee211203fooEv");}
+ee21120 ::~ee21120(){ note_dtor("ee21120", this);} // tgen
+ee21120 ::ee21120(){ note_ctor("ee21120", this);} // tgen
+
+static void Test_ee21120()
+{
+ extern Class_Descriptor cd_ee21120;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee21120, buf);
+ ee21120 *dp, &lv = *(dp=new (buf) ee21120());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee21120)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21120)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee21120");
+ check_base_class_offset(lv, (bb20*)(cc120*), ABISELECT(32,20), "ee21120");
+ check_base_class_offset(lv, (cc120*)(dd1120*), ABISELECT(16,12), "ee21120");
+ check_base_class_offset(lv, (dd1120*), 0, "ee21120");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21120.e");
+ test_class_info(&lv, &cd_ee21120);
+ dp->~ee21120();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21120(Test_ee21120, "ee21120", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee21120C1Ev();
+extern void _ZN7ee21120D1Ev();
+Name_Map name_map_ee21120[] = {
+ NSPAIR(_ZN7ee21120C1Ev),
+ NSPAIR(_ZN7ee21120D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc120;
+extern VTBL_ENTRY _ZTI5cc120[];
+extern VTBL_ENTRY _ZTV5cc120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc120[];
+extern Class_Descriptor cd_dd1120;
+extern VTBL_ENTRY _ZTI6dd1120[];
+extern VTBL_ENTRY _ZTV6dd1120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1120[];
+static Base_Class bases_ee21120[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc120, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1120, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21120[];
+extern void _ZN7ee211203fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee211203fooEv,_ZTv0_n12_N7ee211203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee211203fooEv,_ZThn20_N7ee211203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee21120[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21120[0]),
+ (VTBL_ENTRY)&_ZN7ee211203fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21120[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee21120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee211203fooEv,_ZTv0_n12_N7ee211203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee21120[];
+static VTBL_ENTRY _tg__ZTV6dd1120__7ee21120[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1120[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc120__6dd1120__7ee21120[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__6dd1120__7ee21120[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc120__7ee21120[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc120__7ee21120[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee21120[] = {
+ {&(_ZTV7ee21120[4]), 4,12},
+ {&(_tg__ZTV6dd1120__7ee21120[4]), 4,4},
+ {&(_tg__ZTV5cc120__6dd1120__7ee21120[3]), 3,3},
+ {&(_tg__ZTV4bb20__6dd1120__7ee21120[3]), 3,4},
+ {&(_ZTV7ee21120[8]), 8,12},
+ {&(_ZTV7ee21120[11]), 11,12},
+ {&(_tg__ZTV5cc120__7ee21120[3]), 3,3},
+ {&(_tg__ZTV4bb20__5cc120__7ee21120[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee21120[];
+extern VTBL_ENTRY _ZTV7ee21120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21120[];
+static VTBL_ENTRY alt_thunk_names42[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee211203fooEv,_ZTv0_n12_N7ee211203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee211203fooEv,_ZThn20_N7ee211203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21120 = { "ee21120", // class name
+ bases_ee21120, 4,
+ &(vtc_ee21120[0]), // expected_vtbl_contents
+ &(vtt_ee21120[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee21120),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21120),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21120),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names42,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee31120 : virtual dd1120 {
+ int e;
+ virtual void foo(); // _ZN7ee311203fooEv
+ ~ee31120(); // tgen
+ ee31120(); // tgen
+};
+//SIG(1 ee31120) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v1 Fi} Fi} Fi} v1 Fi}
+
+
+void ee31120 ::foo(){vfunc_called(this, "_ZN7ee311203fooEv");}
+ee31120 ::~ee31120(){ note_dtor("ee31120", this);} // tgen
+ee31120 ::ee31120(){ note_ctor("ee31120", this);} // tgen
+
+static void Test_ee31120()
+{
+ extern Class_Descriptor cd_ee31120;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee31120, buf);
+ ee31120 *dp, &lv = *(dp=new (buf) ee31120());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee31120)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31120)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(56,28), "ee31120");
+ check_base_class_offset(lv, (bb20*)(cc120*), ABISELECT(48,24), "ee31120");
+ check_base_class_offset(lv, (cc120*)(dd1120*), ABISELECT(32,16), "ee31120");
+ check_base_class_offset(lv, (dd1120*), ABISELECT(16,8), "ee31120");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31120.e");
+ test_class_info(&lv, &cd_ee31120);
+ dp->~ee31120();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31120(Test_ee31120, "ee31120", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee31120C1Ev();
+extern void _ZN7ee31120D1Ev();
+Name_Map name_map_ee31120[] = {
+ NSPAIR(_ZN7ee31120C1Ev),
+ NSPAIR(_ZN7ee31120D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc120;
+extern VTBL_ENTRY _ZTI5cc120[];
+extern VTBL_ENTRY _ZTV5cc120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc120[];
+extern Class_Descriptor cd_dd1120;
+extern VTBL_ENTRY _ZTI6dd1120[];
+extern VTBL_ENTRY _ZTV6dd1120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1120[];
+static Base_Class bases_ee31120[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(56,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(48,24), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc120, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1120, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee31120[];
+extern void _ZN7ee311203fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee311203fooEv,_ZTv0_n12_N7ee311203fooEv)();
+extern void ABISELECT(_ZThn48_N7ee311203fooEv,_ZThn24_N7ee311203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee31120[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31120[0]),
+ (VTBL_ENTRY)&_ZN7ee311203fooEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31120[0]),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31120[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee31120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee311203fooEv,_ZTv0_n12_N7ee311203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee31120[];
+static VTBL_ENTRY _tg__ZTV6dd1120__7ee31120[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1120[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc120__6dd1120__7ee31120[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__6dd1120__7ee31120[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc120__7ee31120[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc120__7ee31120[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee31120[] = {
+ {&(_ZTV7ee31120[5]), 5,17},
+ {&(_ZTV7ee31120[10]), 10,17},
+ {&(_ZTV7ee31120[13]), 13,17},
+ {&(_ZTV7ee31120[16]), 16,17},
+ {&(_tg__ZTV6dd1120__7ee31120[4]), 4,4},
+ {&(_tg__ZTV5cc120__6dd1120__7ee31120[3]), 3,3},
+ {&(_tg__ZTV4bb20__6dd1120__7ee31120[3]), 3,4},
+ {&(_tg__ZTV5cc120__7ee31120[3]), 3,3},
+ {&(_tg__ZTV4bb20__5cc120__7ee31120[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee31120[];
+extern VTBL_ENTRY _ZTV7ee31120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31120[];
+static VTBL_ENTRY alt_thunk_names43[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee311203fooEv,_ZTv0_n12_N7ee311203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee311203fooEv,_ZThn24_N7ee311203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31120 = { "ee31120", // class name
+ bases_ee31120, 4,
+ &(vtc_ee31120[0]), // expected_vtbl_contents
+ &(vtt_ee31120[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee31120),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31120),17, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31120),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names43,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee41120 : dd1120 {
+ int e;
+ virtual void bar(); // _ZN7ee411203barEv
+ ~ee41120(); // tgen
+ ee41120(); // tgen
+};
+//SIG(1 ee41120) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v2 Fi} Fi} Fi} v1 Fi}
+
+
+void ee41120 ::bar(){vfunc_called(this, "_ZN7ee411203barEv");}
+ee41120 ::~ee41120(){ note_dtor("ee41120", this);} // tgen
+ee41120 ::ee41120(){ note_ctor("ee41120", this);} // tgen
+
+static void Test_ee41120()
+{
+ extern Class_Descriptor cd_ee41120;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee41120, buf);
+ ee41120 *dp, &lv = *(dp=new (buf) ee41120());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee41120)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41120)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee41120");
+ check_base_class_offset(lv, (bb20*)(cc120*), ABISELECT(32,20), "ee41120");
+ check_base_class_offset(lv, (cc120*)(dd1120*), ABISELECT(16,12), "ee41120");
+ check_base_class_offset(lv, (dd1120*), 0, "ee41120");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41120.e");
+ test_class_info(&lv, &cd_ee41120);
+ dp->~ee41120();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41120(Test_ee41120, "ee41120", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee41120C1Ev();
+extern void _ZN7ee41120D1Ev();
+Name_Map name_map_ee41120[] = {
+ NSPAIR(_ZN7ee41120C1Ev),
+ NSPAIR(_ZN7ee41120D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc120;
+extern VTBL_ENTRY _ZTI5cc120[];
+extern VTBL_ENTRY _ZTV5cc120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc120[];
+extern Class_Descriptor cd_dd1120;
+extern VTBL_ENTRY _ZTI6dd1120[];
+extern VTBL_ENTRY _ZTV6dd1120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1120[];
+static Base_Class bases_ee41120[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc120, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1120, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41120[];
+extern void _ZN7ee411203barEv();
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY vtc_ee41120[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41120[0]),
+ (VTBL_ENTRY)&_ZN7ee411203barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41120[0]),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee41120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee41120[];
+static VTBL_ENTRY _tg__ZTV6dd1120__7ee41120[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1120[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc120__6dd1120__7ee41120[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__6dd1120__7ee41120[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc120__7ee41120[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc120__7ee41120[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee41120[] = {
+ {&(_ZTV7ee41120[4]), 4,12},
+ {&(_tg__ZTV6dd1120__7ee41120[4]), 4,4},
+ {&(_tg__ZTV5cc120__6dd1120__7ee41120[3]), 3,3},
+ {&(_tg__ZTV4bb20__6dd1120__7ee41120[3]), 3,4},
+ {&(_ZTV7ee41120[8]), 8,12},
+ {&(_ZTV7ee41120[11]), 11,12},
+ {&(_tg__ZTV5cc120__7ee41120[3]), 3,3},
+ {&(_tg__ZTV4bb20__5cc120__7ee41120[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee41120[];
+extern VTBL_ENTRY _ZTV7ee41120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41120[];
+Class_Descriptor cd_ee41120 = { "ee41120", // class name
+ bases_ee41120, 4,
+ &(vtc_ee41120[0]), // expected_vtbl_contents
+ &(vtt_ee41120[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee41120),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41120),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41120),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee51120 : virtual dd1120 {
+ int e;
+ virtual void bar(); // _ZN7ee511203barEv
+ ~ee51120(); // tgen
+ ee51120(); // tgen
+};
+//SIG(1 ee51120) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v2 Fi} Fi} Fi} v1 Fi}
+
+
+void ee51120 ::bar(){vfunc_called(this, "_ZN7ee511203barEv");}
+ee51120 ::~ee51120(){ note_dtor("ee51120", this);} // tgen
+ee51120 ::ee51120(){ note_ctor("ee51120", this);} // tgen
+
+static void Test_ee51120()
+{
+ extern Class_Descriptor cd_ee51120;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee51120, buf);
+ ee51120 *dp, &lv = *(dp=new (buf) ee51120());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee51120)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51120)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(56,28), "ee51120");
+ check_base_class_offset(lv, (bb20*)(cc120*), ABISELECT(48,24), "ee51120");
+ check_base_class_offset(lv, (cc120*)(dd1120*), ABISELECT(32,16), "ee51120");
+ check_base_class_offset(lv, (dd1120*), ABISELECT(16,8), "ee51120");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51120.e");
+ test_class_info(&lv, &cd_ee51120);
+ dp->~ee51120();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51120(Test_ee51120, "ee51120", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee51120C1Ev();
+extern void _ZN7ee51120D1Ev();
+Name_Map name_map_ee51120[] = {
+ NSPAIR(_ZN7ee51120C1Ev),
+ NSPAIR(_ZN7ee51120D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc120;
+extern VTBL_ENTRY _ZTI5cc120[];
+extern VTBL_ENTRY _ZTV5cc120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc120[];
+extern Class_Descriptor cd_dd1120;
+extern VTBL_ENTRY _ZTI6dd1120[];
+extern VTBL_ENTRY _ZTV6dd1120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1120[];
+static Base_Class bases_ee51120[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(56,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(48,24), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc120, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1120, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee51120[];
+extern void _ZN7ee511203barEv();
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY vtc_ee51120[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51120[0]),
+ (VTBL_ENTRY)&_ZN7ee511203barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51120[0]),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51120[0]),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee51120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee51120[];
+static VTBL_ENTRY _tg__ZTV6dd1120__7ee51120[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1120[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc120__6dd1120__7ee51120[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__6dd1120__7ee51120[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc120__7ee51120[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc120__7ee51120[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee51120[] = {
+ {&(_ZTV7ee51120[5]), 5,17},
+ {&(_ZTV7ee51120[10]), 10,17},
+ {&(_ZTV7ee51120[13]), 13,17},
+ {&(_ZTV7ee51120[16]), 16,17},
+ {&(_tg__ZTV6dd1120__7ee51120[4]), 4,4},
+ {&(_tg__ZTV5cc120__6dd1120__7ee51120[3]), 3,3},
+ {&(_tg__ZTV4bb20__6dd1120__7ee51120[3]), 3,4},
+ {&(_tg__ZTV5cc120__7ee51120[3]), 3,3},
+ {&(_tg__ZTV4bb20__5cc120__7ee51120[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee51120[];
+extern VTBL_ENTRY _ZTV7ee51120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51120[];
+Class_Descriptor cd_ee51120 = { "ee51120", // class name
+ bases_ee51120, 4,
+ &(vtc_ee51120[0]), // expected_vtbl_contents
+ &(vtt_ee51120[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee51120),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51120),17, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51120),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee61120 : dd1120 {
+ int e;
+ virtual void foo(); // _ZN7ee611203fooEv
+ virtual void bar(); // _ZN7ee611203barEv
+ ~ee61120(); // tgen
+ ee61120(); // tgen
+};
+//SIG(1 ee61120) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v1 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee61120 ::foo(){vfunc_called(this, "_ZN7ee611203fooEv");}
+void ee61120 ::bar(){vfunc_called(this, "_ZN7ee611203barEv");}
+ee61120 ::~ee61120(){ note_dtor("ee61120", this);} // tgen
+ee61120 ::ee61120(){ note_ctor("ee61120", this);} // tgen
+
+static void Test_ee61120()
+{
+ extern Class_Descriptor cd_ee61120;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee61120, buf);
+ ee61120 *dp, &lv = *(dp=new (buf) ee61120());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee61120)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61120)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee61120");
+ check_base_class_offset(lv, (bb20*)(cc120*), ABISELECT(32,20), "ee61120");
+ check_base_class_offset(lv, (cc120*)(dd1120*), ABISELECT(16,12), "ee61120");
+ check_base_class_offset(lv, (dd1120*), 0, "ee61120");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61120.e");
+ test_class_info(&lv, &cd_ee61120);
+ dp->~ee61120();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61120(Test_ee61120, "ee61120", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee61120C1Ev();
+extern void _ZN7ee61120D1Ev();
+Name_Map name_map_ee61120[] = {
+ NSPAIR(_ZN7ee61120C1Ev),
+ NSPAIR(_ZN7ee61120D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc120;
+extern VTBL_ENTRY _ZTI5cc120[];
+extern VTBL_ENTRY _ZTV5cc120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc120[];
+extern Class_Descriptor cd_dd1120;
+extern VTBL_ENTRY _ZTI6dd1120[];
+extern VTBL_ENTRY _ZTV6dd1120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1120[];
+static Base_Class bases_ee61120[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc120, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1120, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61120[];
+extern void _ZN7ee611203fooEv();
+extern void _ZN7ee611203barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee611203fooEv,_ZTv0_n12_N7ee611203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee611203fooEv,_ZThn20_N7ee611203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61120[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61120[0]),
+ (VTBL_ENTRY)&_ZN7ee611203fooEv,
+ (VTBL_ENTRY)&_ZN7ee611203barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61120[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee61120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee611203fooEv,_ZTv0_n12_N7ee611203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee61120[];
+static VTBL_ENTRY _tg__ZTV6dd1120__7ee61120[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1120[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc120__6dd1120__7ee61120[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__6dd1120__7ee61120[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc120__7ee61120[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc120__7ee61120[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee61120[] = {
+ {&(_ZTV7ee61120[4]), 4,13},
+ {&(_tg__ZTV6dd1120__7ee61120[4]), 4,4},
+ {&(_tg__ZTV5cc120__6dd1120__7ee61120[3]), 3,3},
+ {&(_tg__ZTV4bb20__6dd1120__7ee61120[3]), 3,4},
+ {&(_ZTV7ee61120[9]), 9,13},
+ {&(_ZTV7ee61120[12]), 12,13},
+ {&(_tg__ZTV5cc120__7ee61120[3]), 3,3},
+ {&(_tg__ZTV4bb20__5cc120__7ee61120[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee61120[];
+extern VTBL_ENTRY _ZTV7ee61120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61120[];
+static VTBL_ENTRY alt_thunk_names44[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee611203fooEv,_ZTv0_n12_N7ee611203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee611203fooEv,_ZThn20_N7ee611203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61120 = { "ee61120", // class name
+ bases_ee61120, 4,
+ &(vtc_ee61120[0]), // expected_vtbl_contents
+ &(vtt_ee61120[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee61120),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61120),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61120),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names44,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee71120 : virtual dd1120 {
+ int e;
+ virtual void foo(); // _ZN7ee711203fooEv
+ virtual void bar(); // _ZN7ee711203barEv
+ ~ee71120(); // tgen
+ ee71120(); // tgen
+};
+//SIG(1 ee71120) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v1 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee71120 ::foo(){vfunc_called(this, "_ZN7ee711203fooEv");}
+void ee71120 ::bar(){vfunc_called(this, "_ZN7ee711203barEv");}
+ee71120 ::~ee71120(){ note_dtor("ee71120", this);} // tgen
+ee71120 ::ee71120(){ note_ctor("ee71120", this);} // tgen
+
+static void Test_ee71120()
+{
+ extern Class_Descriptor cd_ee71120;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee71120, buf);
+ ee71120 *dp, &lv = *(dp=new (buf) ee71120());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee71120)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71120)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(56,28), "ee71120");
+ check_base_class_offset(lv, (bb20*)(cc120*), ABISELECT(48,24), "ee71120");
+ check_base_class_offset(lv, (cc120*)(dd1120*), ABISELECT(32,16), "ee71120");
+ check_base_class_offset(lv, (dd1120*), ABISELECT(16,8), "ee71120");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71120.e");
+ test_class_info(&lv, &cd_ee71120);
+ dp->~ee71120();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71120(Test_ee71120, "ee71120", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee71120C1Ev();
+extern void _ZN7ee71120D1Ev();
+Name_Map name_map_ee71120[] = {
+ NSPAIR(_ZN7ee71120C1Ev),
+ NSPAIR(_ZN7ee71120D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc120;
+extern VTBL_ENTRY _ZTI5cc120[];
+extern VTBL_ENTRY _ZTV5cc120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc120[];
+extern Class_Descriptor cd_dd1120;
+extern VTBL_ENTRY _ZTI6dd1120[];
+extern VTBL_ENTRY _ZTV6dd1120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1120[];
+static Base_Class bases_ee71120[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(56,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(48,24), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc120, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1120, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee71120[];
+extern void _ZN7ee711203fooEv();
+extern void _ZN7ee711203barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee711203fooEv,_ZTv0_n12_N7ee711203fooEv)();
+extern void ABISELECT(_ZThn48_N7ee711203fooEv,_ZThn24_N7ee711203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71120[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71120[0]),
+ (VTBL_ENTRY)&_ZN7ee711203fooEv,
+ (VTBL_ENTRY)&_ZN7ee711203barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71120[0]),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71120[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee71120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee711203fooEv,_ZTv0_n12_N7ee711203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee71120[];
+static VTBL_ENTRY _tg__ZTV6dd1120__7ee71120[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1120[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc120__6dd1120__7ee71120[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__6dd1120__7ee71120[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc120__7ee71120[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc120__7ee71120[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee71120[] = {
+ {&(_ZTV7ee71120[5]), 5,18},
+ {&(_ZTV7ee71120[11]), 11,18},
+ {&(_ZTV7ee71120[14]), 14,18},
+ {&(_ZTV7ee71120[17]), 17,18},
+ {&(_tg__ZTV6dd1120__7ee71120[4]), 4,4},
+ {&(_tg__ZTV5cc120__6dd1120__7ee71120[3]), 3,3},
+ {&(_tg__ZTV4bb20__6dd1120__7ee71120[3]), 3,4},
+ {&(_tg__ZTV5cc120__7ee71120[3]), 3,3},
+ {&(_tg__ZTV4bb20__5cc120__7ee71120[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee71120[];
+extern VTBL_ENTRY _ZTV7ee71120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71120[];
+static VTBL_ENTRY alt_thunk_names45[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee711203fooEv,_ZTv0_n12_N7ee711203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee711203fooEv,_ZThn24_N7ee711203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71120 = { "ee71120", // class name
+ bases_ee71120, 4,
+ &(vtc_ee71120[0]), // expected_vtbl_contents
+ &(vtt_ee71120[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee71120),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71120),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71120),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names45,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd2120 : cc120 {
+ int d;
+ virtual void foo(); // _ZN6dd21203fooEv
+ ~dd2120(); // tgen
+ dd2120(); // tgen
+};
+//SIG(-1 dd2120) C1{ BC2{ VBC3{ BC4{ Fi} v1 Fi} Fi} v1 Fi}
+
+
+void dd2120 ::foo(){vfunc_called(this, "_ZN6dd21203fooEv");}
+dd2120 ::~dd2120(){ note_dtor("dd2120", this);} // tgen
+dd2120 ::dd2120(){ note_ctor("dd2120", this);} // tgen
+
+static void Test_dd2120()
+{
+ extern Class_Descriptor cd_dd2120;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd2120, buf);
+ dd2120 *dp, &lv = *(dp=new (buf) dd2120());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd2120)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2120)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(24,16), "dd2120");
+ check_base_class_offset(lv, (bb20*)(cc120*), ABISELECT(16,12), "dd2120");
+ check_base_class_offset(lv, (cc120*), 0, "dd2120");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd2120.d");
+ test_class_info(&lv, &cd_dd2120);
+ dp->~dd2120();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2120(Test_dd2120, "dd2120", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd2120C1Ev();
+extern void _ZN6dd2120D1Ev();
+Name_Map name_map_dd2120[] = {
+ NSPAIR(_ZN6dd2120C1Ev),
+ NSPAIR(_ZN6dd2120D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc120;
+extern VTBL_ENTRY _ZTI5cc120[];
+extern VTBL_ENTRY _ZTV5cc120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc120[];
+static Base_Class bases_dd2120[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc120, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd2120[];
+extern void _ZN6dd21203fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd21203fooEv,_ZTv0_n12_N6dd21203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd21203fooEv,_ZThn12_N6dd21203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd2120[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2120[0]),
+ (VTBL_ENTRY)&_ZN6dd21203fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21203fooEv,_ZTv0_n12_N6dd21203fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd2120[];
+static VTBL_ENTRY _tg__ZTV5cc120__6dd2120[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc120__6dd2120[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_dd2120[] = {
+ {&(_ZTV6dd2120[3]), 3,8},
+ {&(_tg__ZTV5cc120__6dd2120[3]), 3,3},
+ {&(_tg__ZTV4bb20__5cc120__6dd2120[3]), 3,4},
+ {&(_ZTV6dd2120[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI6dd2120[];
+extern VTBL_ENTRY _ZTV6dd2120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2120[];
+static VTBL_ENTRY alt_thunk_names46[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21203fooEv,_ZTv0_n12_N6dd21203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd21203fooEv,_ZThn12_N6dd21203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd2120 = { "dd2120", // class name
+ bases_dd2120, 3,
+ &(vtc_dd2120[0]), // expected_vtbl_contents
+ &(vtt_dd2120[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd2120),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2120),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd2120),4, //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 ee02120 : dd2120 {
+ int e;
+ ~ee02120(); // tgen
+ ee02120(); // tgen
+};
+//SIG(1 ee02120) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v1 Fi} Fi} v1 Fi} Fi}
+
+
+ee02120 ::~ee02120(){ note_dtor("ee02120", this);} // tgen
+ee02120 ::ee02120(){ note_ctor("ee02120", this);} // tgen
+
+static void Test_ee02120()
+{
+ extern Class_Descriptor cd_ee02120;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee02120, buf);
+ ee02120 *dp, &lv = *(dp=new (buf) ee02120());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee02120)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02120)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(32,20), "ee02120");
+ check_base_class_offset(lv, (bb20*)(cc120*)(dd2120*), ABISELECT(24,16), "ee02120");
+ check_base_class_offset(lv, (cc120*)(dd2120*), 0, "ee02120");
+ check_base_class_offset(lv, (dd2120*), 0, "ee02120");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee02120.e");
+ test_class_info(&lv, &cd_ee02120);
+ dp->~ee02120();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02120(Test_ee02120, "ee02120", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee02120C1Ev();
+extern void _ZN7ee02120D1Ev();
+Name_Map name_map_ee02120[] = {
+ NSPAIR(_ZN7ee02120C1Ev),
+ NSPAIR(_ZN7ee02120D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc120;
+extern VTBL_ENTRY _ZTI5cc120[];
+extern VTBL_ENTRY _ZTV5cc120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc120[];
+extern Class_Descriptor cd_dd2120;
+extern VTBL_ENTRY _ZTI6dd2120[];
+extern VTBL_ENTRY _ZTV6dd2120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2120[];
+static Base_Class bases_ee02120[] = {
+ // 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_bb20, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc120, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2120, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee02120[];
+extern void _ZN6dd21203fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd21203fooEv,_ZTv0_n12_N6dd21203fooEv)();
+extern void ABISELECT(_ZThn24_N6dd21203fooEv,_ZThn16_N6dd21203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee02120[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02120[0]),
+ (VTBL_ENTRY)&_ZN6dd21203fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee02120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21203fooEv,_ZTv0_n12_N6dd21203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee02120[];
+extern void _ZN6dd21203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2120__7ee02120[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2120[0]),
+ (VTBL_ENTRY)&_ZN6dd21203fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1206dd2120__7ee02120[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc1206dd2120__7ee02120[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd21203fooEv,_ZTv0_n12_N6dd21203fooEv)();
+extern void ABISELECT(_ZThn24_N6dd21203fooEv,_ZThn16_N6dd21203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd2120__7ee02120[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21203fooEv,_ZTv0_n12_N6dd21203fooEv),
+};
+static VTT_ENTRY vtt_ee02120[] = {
+ {&(_ZTV7ee02120[3]), 3,8},
+ {&(_tg__ZTV6dd2120__7ee02120[3]), 3,4},
+ {&(_tg__ZTV5cc1206dd2120__7ee02120[3]), 3,3},
+ {&(_tg__ZTV4bb20__5cc1206dd2120__7ee02120[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd2120__7ee02120[3]), 3,4},
+ {&(_ZTV7ee02120[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee02120[];
+extern VTBL_ENTRY _ZTV7ee02120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee02120[];
+static VTBL_ENTRY alt_thunk_names47[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21203fooEv,_ZTv0_n12_N6dd21203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd21203fooEv,_ZThn16_N6dd21203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd21203fooEv,_ZThn16_N6dd21203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee02120 = { "ee02120", // class name
+ bases_ee02120, 4,
+ &(vtc_ee02120[0]), // expected_vtbl_contents
+ &(vtt_ee02120[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee02120),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02120),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee02120),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names47,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee12120 : virtual dd2120 {
+ int e;
+ ~ee12120(); // tgen
+ ee12120(); // tgen
+};
+//SIG(1 ee12120) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v1 Fi} Fi} v1 Fi} Fi}
+
+
+ee12120 ::~ee12120(){ note_dtor("ee12120", this);} // tgen
+ee12120 ::ee12120(){ note_ctor("ee12120", this);} // tgen
+
+static void Test_ee12120()
+{
+ extern Class_Descriptor cd_ee12120;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee12120, buf);
+ ee12120 *dp, &lv = *(dp=new (buf) ee12120());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee12120)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12120)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee12120");
+ check_base_class_offset(lv, (bb20*)(cc120*)(dd2120*), ABISELECT(32,20), "ee12120");
+ check_base_class_offset(lv, (cc120*)(dd2120*), ABISELECT(16,8), "ee12120");
+ check_base_class_offset(lv, (dd2120*), ABISELECT(16,8), "ee12120");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12120.e");
+ test_class_info(&lv, &cd_ee12120);
+ dp->~ee12120();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12120(Test_ee12120, "ee12120", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee12120C1Ev();
+extern void _ZN7ee12120D1Ev();
+Name_Map name_map_ee12120[] = {
+ NSPAIR(_ZN7ee12120C1Ev),
+ NSPAIR(_ZN7ee12120D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc120;
+extern VTBL_ENTRY _ZTI5cc120[];
+extern VTBL_ENTRY _ZTV5cc120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc120[];
+extern Class_Descriptor cd_dd2120;
+extern VTBL_ENTRY _ZTI6dd2120[];
+extern VTBL_ENTRY _ZTV6dd2120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2120[];
+static Base_Class bases_ee12120[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc120, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2120, 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 _ZTI7ee12120[];
+extern void _ZN6dd21203fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd21203fooEv,_ZTv0_n12_N6dd21203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd21203fooEv,_ZThn12_N6dd21203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee12120[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12120[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12120[0]),
+ (VTBL_ENTRY)&_ZN6dd21203fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee12120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21203fooEv,_ZTv0_n12_N6dd21203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee12120[];
+extern void _ZN6dd21203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2120__7ee12120[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2120[0]),
+ (VTBL_ENTRY)&_ZN6dd21203fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1206dd2120__7ee12120[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc1206dd2120__7ee12120[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd21203fooEv,_ZTv0_n12_N6dd21203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd21203fooEv,_ZThn12_N6dd21203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd2120__7ee12120[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21203fooEv,_ZTv0_n12_N6dd21203fooEv),
+};
+static VTT_ENTRY vtt_ee12120[] = {
+ {&(_ZTV7ee12120[4]), 4,13},
+ {&(_ZTV7ee12120[8]), 8,13},
+ {&(_ZTV7ee12120[12]), 12,13},
+ {&(_tg__ZTV6dd2120__7ee12120[3]), 3,4},
+ {&(_tg__ZTV5cc1206dd2120__7ee12120[3]), 3,3},
+ {&(_tg__ZTV4bb20__5cc1206dd2120__7ee12120[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd2120__7ee12120[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee12120[];
+extern VTBL_ENTRY _ZTV7ee12120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12120[];
+static VTBL_ENTRY alt_thunk_names48[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21203fooEv,_ZTv0_n12_N6dd21203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd21203fooEv,_ZThn12_N6dd21203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd21203fooEv,_ZThn12_N6dd21203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee12120 = { "ee12120", // class name
+ bases_ee12120, 4,
+ &(vtc_ee12120[0]), // expected_vtbl_contents
+ &(vtt_ee12120[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee12120),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12120),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12120),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names48,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee22120 : dd2120 {
+ int e;
+ virtual void foo(); // _ZN7ee221203fooEv
+ ~ee22120(); // tgen
+ ee22120(); // tgen
+};
+//SIG(1 ee22120) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee22120 ::foo(){vfunc_called(this, "_ZN7ee221203fooEv");}
+ee22120 ::~ee22120(){ note_dtor("ee22120", this);} // tgen
+ee22120 ::ee22120(){ note_ctor("ee22120", this);} // tgen
+
+static void Test_ee22120()
+{
+ extern Class_Descriptor cd_ee22120;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee22120, buf);
+ ee22120 *dp, &lv = *(dp=new (buf) ee22120());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee22120)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22120)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(32,20), "ee22120");
+ check_base_class_offset(lv, (bb20*)(cc120*)(dd2120*), ABISELECT(24,16), "ee22120");
+ check_base_class_offset(lv, (cc120*)(dd2120*), 0, "ee22120");
+ check_base_class_offset(lv, (dd2120*), 0, "ee22120");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee22120.e");
+ test_class_info(&lv, &cd_ee22120);
+ dp->~ee22120();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22120(Test_ee22120, "ee22120", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee22120C1Ev();
+extern void _ZN7ee22120D1Ev();
+Name_Map name_map_ee22120[] = {
+ NSPAIR(_ZN7ee22120C1Ev),
+ NSPAIR(_ZN7ee22120D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc120;
+extern VTBL_ENTRY _ZTI5cc120[];
+extern VTBL_ENTRY _ZTV5cc120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc120[];
+extern Class_Descriptor cd_dd2120;
+extern VTBL_ENTRY _ZTI6dd2120[];
+extern VTBL_ENTRY _ZTV6dd2120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2120[];
+static Base_Class bases_ee22120[] = {
+ // 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_bb20, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc120, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2120, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee22120[];
+extern void _ZN7ee221203fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee221203fooEv,_ZTv0_n12_N7ee221203fooEv)();
+extern void ABISELECT(_ZThn24_N7ee221203fooEv,_ZThn16_N7ee221203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee22120[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22120[0]),
+ (VTBL_ENTRY)&_ZN7ee221203fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee22120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee221203fooEv,_ZTv0_n12_N7ee221203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee22120[];
+extern void _ZN6dd21203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2120__7ee22120[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2120[0]),
+ (VTBL_ENTRY)&_ZN6dd21203fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1206dd2120__7ee22120[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc1206dd2120__7ee22120[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd21203fooEv,_ZTv0_n12_N6dd21203fooEv)();
+extern void ABISELECT(_ZThn24_N6dd21203fooEv,_ZThn16_N6dd21203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd2120__7ee22120[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21203fooEv,_ZTv0_n12_N6dd21203fooEv),
+};
+static VTT_ENTRY vtt_ee22120[] = {
+ {&(_ZTV7ee22120[3]), 3,8},
+ {&(_tg__ZTV6dd2120__7ee22120[3]), 3,4},
+ {&(_tg__ZTV5cc1206dd2120__7ee22120[3]), 3,3},
+ {&(_tg__ZTV4bb20__5cc1206dd2120__7ee22120[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd2120__7ee22120[3]), 3,4},
+ {&(_ZTV7ee22120[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee22120[];
+extern VTBL_ENTRY _ZTV7ee22120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee22120[];
+static VTBL_ENTRY alt_thunk_names49[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21203fooEv,_ZTv0_n12_N6dd21203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd21203fooEv,_ZThn16_N6dd21203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee221203fooEv,_ZTv0_n12_N7ee221203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee221203fooEv,_ZThn16_N7ee221203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee22120 = { "ee22120", // class name
+ bases_ee22120, 4,
+ &(vtc_ee22120[0]), // expected_vtbl_contents
+ &(vtt_ee22120[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee22120),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22120),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee22120),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names49,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee32120 : virtual dd2120 {
+ int e;
+ virtual void foo(); // _ZN7ee321203fooEv
+ ~ee32120(); // tgen
+ ee32120(); // tgen
+};
+//SIG(1 ee32120) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee32120 ::foo(){vfunc_called(this, "_ZN7ee321203fooEv");}
+ee32120 ::~ee32120(){ note_dtor("ee32120", this);} // tgen
+ee32120 ::ee32120(){ note_ctor("ee32120", this);} // tgen
+
+static void Test_ee32120()
+{
+ extern Class_Descriptor cd_ee32120;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee32120, buf);
+ ee32120 *dp, &lv = *(dp=new (buf) ee32120());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee32120)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32120)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee32120");
+ check_base_class_offset(lv, (bb20*)(cc120*)(dd2120*), ABISELECT(32,20), "ee32120");
+ check_base_class_offset(lv, (cc120*)(dd2120*), ABISELECT(16,8), "ee32120");
+ check_base_class_offset(lv, (dd2120*), ABISELECT(16,8), "ee32120");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32120.e");
+ test_class_info(&lv, &cd_ee32120);
+ dp->~ee32120();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32120(Test_ee32120, "ee32120", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee32120C1Ev();
+extern void _ZN7ee32120D1Ev();
+Name_Map name_map_ee32120[] = {
+ NSPAIR(_ZN7ee32120C1Ev),
+ NSPAIR(_ZN7ee32120D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc120;
+extern VTBL_ENTRY _ZTI5cc120[];
+extern VTBL_ENTRY _ZTV5cc120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc120[];
+extern Class_Descriptor cd_dd2120;
+extern VTBL_ENTRY _ZTI6dd2120[];
+extern VTBL_ENTRY _ZTV6dd2120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2120[];
+static Base_Class bases_ee32120[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc120, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2120, 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 _ZTI7ee32120[];
+extern void _ZN7ee321203fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee321203fooEv,_ZTv0_n16_N7ee321203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee321203fooEv,_ZThn8_N7ee321203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee321203fooEv,_ZTv0_n12_N7ee321203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee321203fooEv,_ZThn20_N7ee321203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee32120[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32120[0]),
+ (VTBL_ENTRY)&_ZN7ee321203fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee321203fooEv,_ZTv0_n16_N7ee321203fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee32120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee321203fooEv,_ZTv0_n12_N7ee321203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee32120[];
+extern void _ZN6dd21203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2120__7ee32120[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2120[0]),
+ (VTBL_ENTRY)&_ZN6dd21203fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1206dd2120__7ee32120[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc1206dd2120__7ee32120[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd21203fooEv,_ZTv0_n12_N6dd21203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd21203fooEv,_ZThn12_N6dd21203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd2120__7ee32120[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21203fooEv,_ZTv0_n12_N6dd21203fooEv),
+};
+static VTT_ENTRY vtt_ee32120[] = {
+ {&(_ZTV7ee32120[4]), 4,14},
+ {&(_ZTV7ee32120[9]), 9,14},
+ {&(_ZTV7ee32120[13]), 13,14},
+ {&(_tg__ZTV6dd2120__7ee32120[3]), 3,4},
+ {&(_tg__ZTV5cc1206dd2120__7ee32120[3]), 3,3},
+ {&(_tg__ZTV4bb20__5cc1206dd2120__7ee32120[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd2120__7ee32120[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee32120[];
+extern VTBL_ENTRY _ZTV7ee32120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32120[];
+static VTBL_ENTRY alt_thunk_names50[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21203fooEv,_ZTv0_n12_N6dd21203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd21203fooEv,_ZThn12_N6dd21203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee321203fooEv,_ZTv0_n12_N7ee321203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee321203fooEv,_ZThn20_N7ee321203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee321203fooEv,_ZTv0_n16_N7ee321203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee321203fooEv,_ZThn8_N7ee321203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32120 = { "ee32120", // class name
+ bases_ee32120, 4,
+ &(vtc_ee32120[0]), // expected_vtbl_contents
+ &(vtt_ee32120[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee32120),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32120),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32120),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names50,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee42120 : dd2120 {
+ int e;
+ virtual void bar(); // _ZN7ee421203barEv
+ ~ee42120(); // tgen
+ ee42120(); // tgen
+};
+//SIG(1 ee42120) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee42120 ::bar(){vfunc_called(this, "_ZN7ee421203barEv");}
+ee42120 ::~ee42120(){ note_dtor("ee42120", this);} // tgen
+ee42120 ::ee42120(){ note_ctor("ee42120", this);} // tgen
+
+static void Test_ee42120()
+{
+ extern Class_Descriptor cd_ee42120;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee42120, buf);
+ ee42120 *dp, &lv = *(dp=new (buf) ee42120());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee42120)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42120)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(32,20), "ee42120");
+ check_base_class_offset(lv, (bb20*)(cc120*)(dd2120*), ABISELECT(24,16), "ee42120");
+ check_base_class_offset(lv, (cc120*)(dd2120*), 0, "ee42120");
+ check_base_class_offset(lv, (dd2120*), 0, "ee42120");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee42120.e");
+ test_class_info(&lv, &cd_ee42120);
+ dp->~ee42120();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42120(Test_ee42120, "ee42120", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee42120C1Ev();
+extern void _ZN7ee42120D1Ev();
+Name_Map name_map_ee42120[] = {
+ NSPAIR(_ZN7ee42120C1Ev),
+ NSPAIR(_ZN7ee42120D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc120;
+extern VTBL_ENTRY _ZTI5cc120[];
+extern VTBL_ENTRY _ZTV5cc120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc120[];
+extern Class_Descriptor cd_dd2120;
+extern VTBL_ENTRY _ZTI6dd2120[];
+extern VTBL_ENTRY _ZTV6dd2120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2120[];
+static Base_Class bases_ee42120[] = {
+ // 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_bb20, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc120, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2120, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee42120[];
+extern void _ZN6dd21203fooEv();
+extern void _ZN7ee421203barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd21203fooEv,_ZTv0_n12_N6dd21203fooEv)();
+extern void ABISELECT(_ZThn24_N6dd21203fooEv,_ZThn16_N6dd21203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee42120[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42120[0]),
+ (VTBL_ENTRY)&_ZN6dd21203fooEv,
+ (VTBL_ENTRY)&_ZN7ee421203barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee42120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21203fooEv,_ZTv0_n12_N6dd21203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee42120[];
+extern void _ZN6dd21203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2120__7ee42120[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2120[0]),
+ (VTBL_ENTRY)&_ZN6dd21203fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1206dd2120__7ee42120[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc1206dd2120__7ee42120[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd21203fooEv,_ZTv0_n12_N6dd21203fooEv)();
+extern void ABISELECT(_ZThn24_N6dd21203fooEv,_ZThn16_N6dd21203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd2120__7ee42120[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21203fooEv,_ZTv0_n12_N6dd21203fooEv),
+};
+static VTT_ENTRY vtt_ee42120[] = {
+ {&(_ZTV7ee42120[3]), 3,9},
+ {&(_tg__ZTV6dd2120__7ee42120[3]), 3,4},
+ {&(_tg__ZTV5cc1206dd2120__7ee42120[3]), 3,3},
+ {&(_tg__ZTV4bb20__5cc1206dd2120__7ee42120[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd2120__7ee42120[3]), 3,4},
+ {&(_ZTV7ee42120[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee42120[];
+extern VTBL_ENTRY _ZTV7ee42120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee42120[];
+static VTBL_ENTRY alt_thunk_names51[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21203fooEv,_ZTv0_n12_N6dd21203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd21203fooEv,_ZThn16_N6dd21203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd21203fooEv,_ZThn16_N6dd21203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee42120 = { "ee42120", // class name
+ bases_ee42120, 4,
+ &(vtc_ee42120[0]), // expected_vtbl_contents
+ &(vtt_ee42120[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee42120),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42120),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee42120),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names51,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee52120 : virtual dd2120 {
+ int e;
+ virtual void bar(); // _ZN7ee521203barEv
+ ~ee52120(); // tgen
+ ee52120(); // tgen
+};
+//SIG(1 ee52120) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee52120 ::bar(){vfunc_called(this, "_ZN7ee521203barEv");}
+ee52120 ::~ee52120(){ note_dtor("ee52120", this);} // tgen
+ee52120 ::ee52120(){ note_ctor("ee52120", this);} // tgen
+
+static void Test_ee52120()
+{
+ extern Class_Descriptor cd_ee52120;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee52120, buf);
+ ee52120 *dp, &lv = *(dp=new (buf) ee52120());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee52120)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52120)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee52120");
+ check_base_class_offset(lv, (bb20*)(cc120*)(dd2120*), ABISELECT(32,20), "ee52120");
+ check_base_class_offset(lv, (cc120*)(dd2120*), ABISELECT(16,8), "ee52120");
+ check_base_class_offset(lv, (dd2120*), ABISELECT(16,8), "ee52120");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52120.e");
+ test_class_info(&lv, &cd_ee52120);
+ dp->~ee52120();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52120(Test_ee52120, "ee52120", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee52120C1Ev();
+extern void _ZN7ee52120D1Ev();
+Name_Map name_map_ee52120[] = {
+ NSPAIR(_ZN7ee52120C1Ev),
+ NSPAIR(_ZN7ee52120D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc120;
+extern VTBL_ENTRY _ZTI5cc120[];
+extern VTBL_ENTRY _ZTV5cc120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc120[];
+extern Class_Descriptor cd_dd2120;
+extern VTBL_ENTRY _ZTI6dd2120[];
+extern VTBL_ENTRY _ZTV6dd2120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2120[];
+static Base_Class bases_ee52120[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc120, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2120, 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 _ZTI7ee52120[];
+extern void _ZN7ee521203barEv();
+extern void _ZN6dd21203fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd21203fooEv,_ZTv0_n12_N6dd21203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd21203fooEv,_ZThn12_N6dd21203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee52120[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52120[0]),
+ (VTBL_ENTRY)&_ZN7ee521203barEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52120[0]),
+ (VTBL_ENTRY)&_ZN6dd21203fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee52120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21203fooEv,_ZTv0_n12_N6dd21203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee52120[];
+extern void _ZN6dd21203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2120__7ee52120[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2120[0]),
+ (VTBL_ENTRY)&_ZN6dd21203fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1206dd2120__7ee52120[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc1206dd2120__7ee52120[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd21203fooEv,_ZTv0_n12_N6dd21203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd21203fooEv,_ZThn12_N6dd21203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd2120__7ee52120[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21203fooEv,_ZTv0_n12_N6dd21203fooEv),
+};
+static VTT_ENTRY vtt_ee52120[] = {
+ {&(_ZTV7ee52120[4]), 4,14},
+ {&(_ZTV7ee52120[9]), 9,14},
+ {&(_ZTV7ee52120[13]), 13,14},
+ {&(_tg__ZTV6dd2120__7ee52120[3]), 3,4},
+ {&(_tg__ZTV5cc1206dd2120__7ee52120[3]), 3,3},
+ {&(_tg__ZTV4bb20__5cc1206dd2120__7ee52120[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd2120__7ee52120[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee52120[];
+extern VTBL_ENTRY _ZTV7ee52120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52120[];
+static VTBL_ENTRY alt_thunk_names52[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21203fooEv,_ZTv0_n12_N6dd21203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd21203fooEv,_ZThn12_N6dd21203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd21203fooEv,_ZThn12_N6dd21203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52120 = { "ee52120", // class name
+ bases_ee52120, 4,
+ &(vtc_ee52120[0]), // expected_vtbl_contents
+ &(vtt_ee52120[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee52120),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52120),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52120),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names52,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee62120 : dd2120 {
+ int e;
+ virtual void foo(); // _ZN7ee621203fooEv
+ virtual void bar(); // _ZN7ee621203barEv
+ ~ee62120(); // tgen
+ ee62120(); // tgen
+};
+//SIG(1 ee62120) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v1 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62120 ::foo(){vfunc_called(this, "_ZN7ee621203fooEv");}
+void ee62120 ::bar(){vfunc_called(this, "_ZN7ee621203barEv");}
+ee62120 ::~ee62120(){ note_dtor("ee62120", this);} // tgen
+ee62120 ::ee62120(){ note_ctor("ee62120", this);} // tgen
+
+static void Test_ee62120()
+{
+ extern Class_Descriptor cd_ee62120;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee62120, buf);
+ ee62120 *dp, &lv = *(dp=new (buf) ee62120());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee62120)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62120)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(32,20), "ee62120");
+ check_base_class_offset(lv, (bb20*)(cc120*)(dd2120*), ABISELECT(24,16), "ee62120");
+ check_base_class_offset(lv, (cc120*)(dd2120*), 0, "ee62120");
+ check_base_class_offset(lv, (dd2120*), 0, "ee62120");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee62120.e");
+ test_class_info(&lv, &cd_ee62120);
+ dp->~ee62120();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62120(Test_ee62120, "ee62120", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee62120C1Ev();
+extern void _ZN7ee62120D1Ev();
+Name_Map name_map_ee62120[] = {
+ NSPAIR(_ZN7ee62120C1Ev),
+ NSPAIR(_ZN7ee62120D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc120;
+extern VTBL_ENTRY _ZTI5cc120[];
+extern VTBL_ENTRY _ZTV5cc120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc120[];
+extern Class_Descriptor cd_dd2120;
+extern VTBL_ENTRY _ZTI6dd2120[];
+extern VTBL_ENTRY _ZTV6dd2120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2120[];
+static Base_Class bases_ee62120[] = {
+ // 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_bb20, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc120, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2120, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee62120[];
+extern void _ZN7ee621203fooEv();
+extern void _ZN7ee621203barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee621203fooEv,_ZTv0_n12_N7ee621203fooEv)();
+extern void ABISELECT(_ZThn24_N7ee621203fooEv,_ZThn16_N7ee621203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee62120[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62120[0]),
+ (VTBL_ENTRY)&_ZN7ee621203fooEv,
+ (VTBL_ENTRY)&_ZN7ee621203barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee62120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee621203fooEv,_ZTv0_n12_N7ee621203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee62120[];
+extern void _ZN6dd21203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2120__7ee62120[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2120[0]),
+ (VTBL_ENTRY)&_ZN6dd21203fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1206dd2120__7ee62120[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc1206dd2120__7ee62120[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd21203fooEv,_ZTv0_n12_N6dd21203fooEv)();
+extern void ABISELECT(_ZThn24_N6dd21203fooEv,_ZThn16_N6dd21203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd2120__7ee62120[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21203fooEv,_ZTv0_n12_N6dd21203fooEv),
+};
+static VTT_ENTRY vtt_ee62120[] = {
+ {&(_ZTV7ee62120[3]), 3,9},
+ {&(_tg__ZTV6dd2120__7ee62120[3]), 3,4},
+ {&(_tg__ZTV5cc1206dd2120__7ee62120[3]), 3,3},
+ {&(_tg__ZTV4bb20__5cc1206dd2120__7ee62120[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd2120__7ee62120[3]), 3,4},
+ {&(_ZTV7ee62120[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee62120[];
+extern VTBL_ENTRY _ZTV7ee62120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee62120[];
+static VTBL_ENTRY alt_thunk_names53[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21203fooEv,_ZTv0_n12_N6dd21203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd21203fooEv,_ZThn16_N6dd21203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee621203fooEv,_ZTv0_n12_N7ee621203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee621203fooEv,_ZThn16_N7ee621203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee62120 = { "ee62120", // class name
+ bases_ee62120, 4,
+ &(vtc_ee62120[0]), // expected_vtbl_contents
+ &(vtt_ee62120[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee62120),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62120),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee62120),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names53,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee72120 : virtual dd2120 {
+ int e;
+ virtual void foo(); // _ZN7ee721203fooEv
+ virtual void bar(); // _ZN7ee721203barEv
+ ~ee72120(); // tgen
+ ee72120(); // tgen
+};
+//SIG(1 ee72120) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v1 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72120 ::foo(){vfunc_called(this, "_ZN7ee721203fooEv");}
+void ee72120 ::bar(){vfunc_called(this, "_ZN7ee721203barEv");}
+ee72120 ::~ee72120(){ note_dtor("ee72120", this);} // tgen
+ee72120 ::ee72120(){ note_ctor("ee72120", this);} // tgen
+
+static void Test_ee72120()
+{
+ extern Class_Descriptor cd_ee72120;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee72120, buf);
+ ee72120 *dp, &lv = *(dp=new (buf) ee72120());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee72120)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72120)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee72120");
+ check_base_class_offset(lv, (bb20*)(cc120*)(dd2120*), ABISELECT(32,20), "ee72120");
+ check_base_class_offset(lv, (cc120*)(dd2120*), ABISELECT(16,8), "ee72120");
+ check_base_class_offset(lv, (dd2120*), ABISELECT(16,8), "ee72120");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72120.e");
+ test_class_info(&lv, &cd_ee72120);
+ dp->~ee72120();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72120(Test_ee72120, "ee72120", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee72120C1Ev();
+extern void _ZN7ee72120D1Ev();
+Name_Map name_map_ee72120[] = {
+ NSPAIR(_ZN7ee72120C1Ev),
+ NSPAIR(_ZN7ee72120D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc120;
+extern VTBL_ENTRY _ZTI5cc120[];
+extern VTBL_ENTRY _ZTV5cc120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc120[];
+extern Class_Descriptor cd_dd2120;
+extern VTBL_ENTRY _ZTI6dd2120[];
+extern VTBL_ENTRY _ZTV6dd2120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2120[];
+static Base_Class bases_ee72120[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc120, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2120, 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 _ZTI7ee72120[];
+extern void _ZN7ee721203fooEv();
+extern void _ZN7ee721203barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee721203fooEv,_ZTv0_n16_N7ee721203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee721203fooEv,_ZThn8_N7ee721203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee721203fooEv,_ZTv0_n12_N7ee721203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee721203fooEv,_ZThn20_N7ee721203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72120[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72120[0]),
+ (VTBL_ENTRY)&_ZN7ee721203fooEv,
+ (VTBL_ENTRY)&_ZN7ee721203barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee721203fooEv,_ZTv0_n16_N7ee721203fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee72120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee721203fooEv,_ZTv0_n12_N7ee721203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee72120[];
+extern void _ZN6dd21203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2120__7ee72120[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2120[0]),
+ (VTBL_ENTRY)&_ZN6dd21203fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1206dd2120__7ee72120[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc1206dd2120__7ee72120[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd21203fooEv,_ZTv0_n12_N6dd21203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd21203fooEv,_ZThn12_N6dd21203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd2120__7ee72120[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21203fooEv,_ZTv0_n12_N6dd21203fooEv),
+};
+static VTT_ENTRY vtt_ee72120[] = {
+ {&(_ZTV7ee72120[4]), 4,15},
+ {&(_ZTV7ee72120[10]), 10,15},
+ {&(_ZTV7ee72120[14]), 14,15},
+ {&(_tg__ZTV6dd2120__7ee72120[3]), 3,4},
+ {&(_tg__ZTV5cc1206dd2120__7ee72120[3]), 3,3},
+ {&(_tg__ZTV4bb20__5cc1206dd2120__7ee72120[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd2120__7ee72120[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee72120[];
+extern VTBL_ENTRY _ZTV7ee72120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72120[];
+static VTBL_ENTRY alt_thunk_names54[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21203fooEv,_ZTv0_n12_N6dd21203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd21203fooEv,_ZThn12_N6dd21203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee721203fooEv,_ZTv0_n12_N7ee721203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee721203fooEv,_ZThn20_N7ee721203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee721203fooEv,_ZTv0_n16_N7ee721203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee721203fooEv,_ZThn8_N7ee721203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72120 = { "ee72120", // class name
+ bases_ee72120, 4,
+ &(vtc_ee72120[0]), // expected_vtbl_contents
+ &(vtt_ee72120[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee72120),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72120),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72120),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names54,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd3120 : virtual cc120 {
+ int d;
+ virtual void foo(); // _ZN6dd31203fooEv
+ ~dd3120(); // tgen
+ dd3120(); // tgen
+};
+//SIG(-1 dd3120) C1{ VBC2{ VBC3{ BC4{ Fi} v1 Fi} Fi} v1 Fi}
+
+
+void dd3120 ::foo(){vfunc_called(this, "_ZN6dd31203fooEv");}
+dd3120 ::~dd3120(){ note_dtor("dd3120", this);} // tgen
+dd3120 ::dd3120(){ note_ctor("dd3120", this);} // tgen
+
+static void Test_dd3120()
+{
+ extern Class_Descriptor cd_dd3120;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd3120, buf);
+ dd3120 *dp, &lv = *(dp=new (buf) dd3120());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd3120)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3120)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,20), "dd3120");
+ check_base_class_offset(lv, (bb20*)(cc120*), ABISELECT(32,16), "dd3120");
+ check_base_class_offset(lv, (cc120*), ABISELECT(16,8), "dd3120");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3120.d");
+ test_class_info(&lv, &cd_dd3120);
+ dp->~dd3120();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3120(Test_dd3120, "dd3120", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd3120C1Ev();
+extern void _ZN6dd3120D1Ev();
+Name_Map name_map_dd3120[] = {
+ NSPAIR(_ZN6dd3120C1Ev),
+ NSPAIR(_ZN6dd3120D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc120;
+extern VTBL_ENTRY _ZTI5cc120[];
+extern VTBL_ENTRY _ZTV5cc120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc120[];
+static Base_Class bases_dd3120[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc120, 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 _ZTI6dd3120[];
+extern void _ZN6dd31203fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd31203fooEv,_ZTv0_n12_N6dd31203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31203fooEv,_ZThn16_N6dd31203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd3120[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3120[0]),
+ (VTBL_ENTRY)&_ZN6dd31203fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3120[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31203fooEv,_ZTv0_n12_N6dd31203fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd3120[];
+static VTBL_ENTRY _tg__ZTV5cc120__6dd3120[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc120__6dd3120[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_dd3120[] = {
+ {&(_ZTV6dd3120[4]), 4,12},
+ {&(_ZTV6dd3120[8]), 8,12},
+ {&(_ZTV6dd3120[11]), 11,12},
+ {&(_tg__ZTV5cc120__6dd3120[3]), 3,3},
+ {&(_tg__ZTV4bb20__5cc120__6dd3120[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd3120[];
+extern VTBL_ENTRY _ZTV6dd3120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3120[];
+static VTBL_ENTRY alt_thunk_names55[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31203fooEv,_ZTv0_n12_N6dd31203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31203fooEv,_ZThn16_N6dd31203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3120 = { "dd3120", // class name
+ bases_dd3120, 3,
+ &(vtc_dd3120[0]), // expected_vtbl_contents
+ &(vtt_dd3120[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd3120),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3120),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3120),5, //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 ee03120 : dd3120 {
+ int e;
+ ~ee03120(); // tgen
+ ee03120(); // tgen
+};
+//SIG(1 ee03120) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v1 Fi} Fi} v1 Fi} Fi}
+
+
+ee03120 ::~ee03120(){ note_dtor("ee03120", this);} // tgen
+ee03120 ::ee03120(){ note_ctor("ee03120", this);} // tgen
+
+static void Test_ee03120()
+{
+ extern Class_Descriptor cd_ee03120;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee03120, buf);
+ ee03120 *dp, &lv = *(dp=new (buf) ee03120());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee03120)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03120)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee03120");
+ check_base_class_offset(lv, (bb20*)(cc120*), ABISELECT(32,20), "ee03120");
+ check_base_class_offset(lv, (cc120*)(dd3120*), ABISELECT(16,12), "ee03120");
+ check_base_class_offset(lv, (dd3120*), 0, "ee03120");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03120.e");
+ test_class_info(&lv, &cd_ee03120);
+ dp->~ee03120();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03120(Test_ee03120, "ee03120", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee03120C1Ev();
+extern void _ZN7ee03120D1Ev();
+Name_Map name_map_ee03120[] = {
+ NSPAIR(_ZN7ee03120C1Ev),
+ NSPAIR(_ZN7ee03120D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc120;
+extern VTBL_ENTRY _ZTI5cc120[];
+extern VTBL_ENTRY _ZTV5cc120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc120[];
+extern Class_Descriptor cd_dd3120;
+extern VTBL_ENTRY _ZTI6dd3120[];
+extern VTBL_ENTRY _ZTV6dd3120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3120[];
+static Base_Class bases_ee03120[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc120, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3120, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03120[];
+extern void _ZN6dd31203fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd31203fooEv,_ZTv0_n12_N6dd31203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31203fooEv,_ZThn20_N6dd31203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee03120[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03120[0]),
+ (VTBL_ENTRY)&_ZN6dd31203fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03120[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee03120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31203fooEv,_ZTv0_n12_N6dd31203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee03120[];
+extern void _ZN6dd31203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3120__7ee03120[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3120[0]),
+ (VTBL_ENTRY)&_ZN6dd31203fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc120__6dd3120__7ee03120[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3120[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd31203fooEv,_ZTv0_n12_N6dd31203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31203fooEv,_ZThn20_N6dd31203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd3120__7ee03120[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31203fooEv,_ZTv0_n12_N6dd31203fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc120__7ee03120[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc120__7ee03120[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee03120[] = {
+ {&(_ZTV7ee03120[4]), 4,12},
+ {&(_tg__ZTV6dd3120__7ee03120[4]), 4,5},
+ {&(_tg__ZTV5cc120__6dd3120__7ee03120[3]), 3,3},
+ {&(_tg__ZTV4bb20__6dd3120__7ee03120[3]), 3,4},
+ {&(_ZTV7ee03120[8]), 8,12},
+ {&(_ZTV7ee03120[11]), 11,12},
+ {&(_tg__ZTV5cc120__7ee03120[3]), 3,3},
+ {&(_tg__ZTV4bb20__5cc120__7ee03120[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee03120[];
+extern VTBL_ENTRY _ZTV7ee03120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03120[];
+static VTBL_ENTRY alt_thunk_names56[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31203fooEv,_ZTv0_n12_N6dd31203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31203fooEv,_ZThn20_N6dd31203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31203fooEv,_ZThn20_N6dd31203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03120 = { "ee03120", // class name
+ bases_ee03120, 4,
+ &(vtc_ee03120[0]), // expected_vtbl_contents
+ &(vtt_ee03120[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee03120),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03120),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03120),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names56,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee13120 : virtual dd3120 {
+ int e;
+ ~ee13120(); // tgen
+ ee13120(); // tgen
+};
+//SIG(1 ee13120) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v1 Fi} Fi} v1 Fi} Fi}
+
+
+ee13120 ::~ee13120(){ note_dtor("ee13120", this);} // tgen
+ee13120 ::ee13120(){ note_ctor("ee13120", this);} // tgen
+
+static void Test_ee13120()
+{
+ extern Class_Descriptor cd_ee13120;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee13120, buf);
+ ee13120 *dp, &lv = *(dp=new (buf) ee13120());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee13120)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13120)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(56,28), "ee13120");
+ check_base_class_offset(lv, (bb20*)(cc120*), ABISELECT(48,24), "ee13120");
+ check_base_class_offset(lv, (cc120*)(dd3120*), ABISELECT(32,16), "ee13120");
+ check_base_class_offset(lv, (dd3120*), ABISELECT(16,8), "ee13120");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13120.e");
+ test_class_info(&lv, &cd_ee13120);
+ dp->~ee13120();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13120(Test_ee13120, "ee13120", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee13120C1Ev();
+extern void _ZN7ee13120D1Ev();
+Name_Map name_map_ee13120[] = {
+ NSPAIR(_ZN7ee13120C1Ev),
+ NSPAIR(_ZN7ee13120D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc120;
+extern VTBL_ENTRY _ZTI5cc120[];
+extern VTBL_ENTRY _ZTV5cc120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc120[];
+extern Class_Descriptor cd_dd3120;
+extern VTBL_ENTRY _ZTI6dd3120[];
+extern VTBL_ENTRY _ZTV6dd3120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3120[];
+static Base_Class bases_ee13120[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(56,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(48,24), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc120, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3120, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee13120[];
+extern void _ZN6dd31203fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd31203fooEv,_ZTv0_n12_N6dd31203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31203fooEv,_ZThn16_N6dd31203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee13120[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13120[0]),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13120[0]),
+ (VTBL_ENTRY)&_ZN6dd31203fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13120[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee13120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31203fooEv,_ZTv0_n12_N6dd31203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee13120[];
+extern void _ZN6dd31203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3120__7ee13120[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3120[0]),
+ (VTBL_ENTRY)&_ZN6dd31203fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc120__6dd3120__7ee13120[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3120[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd31203fooEv,_ZTv0_n12_N6dd31203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31203fooEv,_ZThn16_N6dd31203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd3120__7ee13120[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31203fooEv,_ZTv0_n12_N6dd31203fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc120__7ee13120[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc120__7ee13120[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee13120[] = {
+ {&(_ZTV7ee13120[5]), 5,18},
+ {&(_ZTV7ee13120[10]), 10,18},
+ {&(_ZTV7ee13120[14]), 14,18},
+ {&(_ZTV7ee13120[17]), 17,18},
+ {&(_tg__ZTV6dd3120__7ee13120[4]), 4,5},
+ {&(_tg__ZTV5cc120__6dd3120__7ee13120[3]), 3,3},
+ {&(_tg__ZTV4bb20__6dd3120__7ee13120[3]), 3,4},
+ {&(_tg__ZTV5cc120__7ee13120[3]), 3,3},
+ {&(_tg__ZTV4bb20__5cc120__7ee13120[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee13120[];
+extern VTBL_ENTRY _ZTV7ee13120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13120[];
+static VTBL_ENTRY alt_thunk_names57[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31203fooEv,_ZTv0_n12_N6dd31203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31203fooEv,_ZThn16_N6dd31203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31203fooEv,_ZThn16_N6dd31203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13120 = { "ee13120", // class name
+ bases_ee13120, 4,
+ &(vtc_ee13120[0]), // expected_vtbl_contents
+ &(vtt_ee13120[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee13120),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13120),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13120),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names57,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee23120 : dd3120 {
+ int e;
+ virtual void foo(); // _ZN7ee231203fooEv
+ ~ee23120(); // tgen
+ ee23120(); // tgen
+};
+//SIG(1 ee23120) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee23120 ::foo(){vfunc_called(this, "_ZN7ee231203fooEv");}
+ee23120 ::~ee23120(){ note_dtor("ee23120", this);} // tgen
+ee23120 ::ee23120(){ note_ctor("ee23120", this);} // tgen
+
+static void Test_ee23120()
+{
+ extern Class_Descriptor cd_ee23120;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee23120, buf);
+ ee23120 *dp, &lv = *(dp=new (buf) ee23120());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee23120)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23120)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee23120");
+ check_base_class_offset(lv, (bb20*)(cc120*), ABISELECT(32,20), "ee23120");
+ check_base_class_offset(lv, (cc120*)(dd3120*), ABISELECT(16,12), "ee23120");
+ check_base_class_offset(lv, (dd3120*), 0, "ee23120");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23120.e");
+ test_class_info(&lv, &cd_ee23120);
+ dp->~ee23120();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23120(Test_ee23120, "ee23120", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee23120C1Ev();
+extern void _ZN7ee23120D1Ev();
+Name_Map name_map_ee23120[] = {
+ NSPAIR(_ZN7ee23120C1Ev),
+ NSPAIR(_ZN7ee23120D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc120;
+extern VTBL_ENTRY _ZTI5cc120[];
+extern VTBL_ENTRY _ZTV5cc120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc120[];
+extern Class_Descriptor cd_dd3120;
+extern VTBL_ENTRY _ZTI6dd3120[];
+extern VTBL_ENTRY _ZTV6dd3120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3120[];
+static Base_Class bases_ee23120[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc120, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3120, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23120[];
+extern void _ZN7ee231203fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee231203fooEv,_ZTv0_n12_N7ee231203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee231203fooEv,_ZThn20_N7ee231203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee23120[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23120[0]),
+ (VTBL_ENTRY)&_ZN7ee231203fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23120[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee23120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee231203fooEv,_ZTv0_n12_N7ee231203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee23120[];
+extern void _ZN6dd31203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3120__7ee23120[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3120[0]),
+ (VTBL_ENTRY)&_ZN6dd31203fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc120__6dd3120__7ee23120[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3120[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd31203fooEv,_ZTv0_n12_N6dd31203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31203fooEv,_ZThn20_N6dd31203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd3120__7ee23120[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31203fooEv,_ZTv0_n12_N6dd31203fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc120__7ee23120[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc120__7ee23120[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee23120[] = {
+ {&(_ZTV7ee23120[4]), 4,12},
+ {&(_tg__ZTV6dd3120__7ee23120[4]), 4,5},
+ {&(_tg__ZTV5cc120__6dd3120__7ee23120[3]), 3,3},
+ {&(_tg__ZTV4bb20__6dd3120__7ee23120[3]), 3,4},
+ {&(_ZTV7ee23120[8]), 8,12},
+ {&(_ZTV7ee23120[11]), 11,12},
+ {&(_tg__ZTV5cc120__7ee23120[3]), 3,3},
+ {&(_tg__ZTV4bb20__5cc120__7ee23120[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee23120[];
+extern VTBL_ENTRY _ZTV7ee23120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23120[];
+static VTBL_ENTRY alt_thunk_names58[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31203fooEv,_ZTv0_n12_N6dd31203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31203fooEv,_ZThn20_N6dd31203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee231203fooEv,_ZTv0_n12_N7ee231203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee231203fooEv,_ZThn20_N7ee231203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23120 = { "ee23120", // class name
+ bases_ee23120, 4,
+ &(vtc_ee23120[0]), // expected_vtbl_contents
+ &(vtt_ee23120[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee23120),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23120),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23120),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names58,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee33120 : virtual dd3120 {
+ int e;
+ virtual void foo(); // _ZN7ee331203fooEv
+ ~ee33120(); // tgen
+ ee33120(); // tgen
+};
+//SIG(1 ee33120) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee33120 ::foo(){vfunc_called(this, "_ZN7ee331203fooEv");}
+ee33120 ::~ee33120(){ note_dtor("ee33120", this);} // tgen
+ee33120 ::ee33120(){ note_ctor("ee33120", this);} // tgen
+
+static void Test_ee33120()
+{
+ extern Class_Descriptor cd_ee33120;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee33120, buf);
+ ee33120 *dp, &lv = *(dp=new (buf) ee33120());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee33120)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33120)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(56,28), "ee33120");
+ check_base_class_offset(lv, (bb20*)(cc120*), ABISELECT(48,24), "ee33120");
+ check_base_class_offset(lv, (cc120*)(dd3120*), ABISELECT(32,16), "ee33120");
+ check_base_class_offset(lv, (dd3120*), ABISELECT(16,8), "ee33120");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33120.e");
+ test_class_info(&lv, &cd_ee33120);
+ dp->~ee33120();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33120(Test_ee33120, "ee33120", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee33120C1Ev();
+extern void _ZN7ee33120D1Ev();
+Name_Map name_map_ee33120[] = {
+ NSPAIR(_ZN7ee33120C1Ev),
+ NSPAIR(_ZN7ee33120D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc120;
+extern VTBL_ENTRY _ZTI5cc120[];
+extern VTBL_ENTRY _ZTV5cc120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc120[];
+extern Class_Descriptor cd_dd3120;
+extern VTBL_ENTRY _ZTI6dd3120[];
+extern VTBL_ENTRY _ZTV6dd3120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3120[];
+static Base_Class bases_ee33120[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(56,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(48,24), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc120, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3120, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee33120[];
+extern void _ZN7ee331203fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee331203fooEv,_ZTv0_n20_N7ee331203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee331203fooEv,_ZThn8_N7ee331203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee331203fooEv,_ZTv0_n12_N7ee331203fooEv)();
+extern void ABISELECT(_ZThn48_N7ee331203fooEv,_ZThn24_N7ee331203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee33120[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33120[0]),
+ (VTBL_ENTRY)&_ZN7ee331203fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee331203fooEv,_ZTv0_n20_N7ee331203fooEv),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33120[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee33120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee331203fooEv,_ZTv0_n12_N7ee331203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee33120[];
+extern void _ZN6dd31203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3120__7ee33120[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3120[0]),
+ (VTBL_ENTRY)&_ZN6dd31203fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc120__6dd3120__7ee33120[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3120[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd31203fooEv,_ZTv0_n12_N6dd31203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31203fooEv,_ZThn16_N6dd31203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd3120__7ee33120[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31203fooEv,_ZTv0_n12_N6dd31203fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc120__7ee33120[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc120__7ee33120[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee33120[] = {
+ {&(_ZTV7ee33120[5]), 5,19},
+ {&(_ZTV7ee33120[11]), 11,19},
+ {&(_ZTV7ee33120[15]), 15,19},
+ {&(_ZTV7ee33120[18]), 18,19},
+ {&(_tg__ZTV6dd3120__7ee33120[4]), 4,5},
+ {&(_tg__ZTV5cc120__6dd3120__7ee33120[3]), 3,3},
+ {&(_tg__ZTV4bb20__6dd3120__7ee33120[3]), 3,4},
+ {&(_tg__ZTV5cc120__7ee33120[3]), 3,3},
+ {&(_tg__ZTV4bb20__5cc120__7ee33120[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee33120[];
+extern VTBL_ENTRY _ZTV7ee33120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33120[];
+static VTBL_ENTRY alt_thunk_names59[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31203fooEv,_ZTv0_n12_N6dd31203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31203fooEv,_ZThn16_N6dd31203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee331203fooEv,_ZTv0_n12_N7ee331203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee331203fooEv,_ZThn24_N7ee331203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee331203fooEv,_ZTv0_n20_N7ee331203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee331203fooEv,_ZThn8_N7ee331203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33120 = { "ee33120", // class name
+ bases_ee33120, 4,
+ &(vtc_ee33120[0]), // expected_vtbl_contents
+ &(vtt_ee33120[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee33120),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33120),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33120),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names59,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee43120 : dd3120 {
+ int e;
+ virtual void bar(); // _ZN7ee431203barEv
+ ~ee43120(); // tgen
+ ee43120(); // tgen
+};
+//SIG(1 ee43120) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee43120 ::bar(){vfunc_called(this, "_ZN7ee431203barEv");}
+ee43120 ::~ee43120(){ note_dtor("ee43120", this);} // tgen
+ee43120 ::ee43120(){ note_ctor("ee43120", this);} // tgen
+
+static void Test_ee43120()
+{
+ extern Class_Descriptor cd_ee43120;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee43120, buf);
+ ee43120 *dp, &lv = *(dp=new (buf) ee43120());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee43120)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43120)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee43120");
+ check_base_class_offset(lv, (bb20*)(cc120*), ABISELECT(32,20), "ee43120");
+ check_base_class_offset(lv, (cc120*)(dd3120*), ABISELECT(16,12), "ee43120");
+ check_base_class_offset(lv, (dd3120*), 0, "ee43120");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43120.e");
+ test_class_info(&lv, &cd_ee43120);
+ dp->~ee43120();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43120(Test_ee43120, "ee43120", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee43120C1Ev();
+extern void _ZN7ee43120D1Ev();
+Name_Map name_map_ee43120[] = {
+ NSPAIR(_ZN7ee43120C1Ev),
+ NSPAIR(_ZN7ee43120D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc120;
+extern VTBL_ENTRY _ZTI5cc120[];
+extern VTBL_ENTRY _ZTV5cc120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc120[];
+extern Class_Descriptor cd_dd3120;
+extern VTBL_ENTRY _ZTI6dd3120[];
+extern VTBL_ENTRY _ZTV6dd3120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3120[];
+static Base_Class bases_ee43120[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc120, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3120, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43120[];
+extern void _ZN6dd31203fooEv();
+extern void _ZN7ee431203barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd31203fooEv,_ZTv0_n12_N6dd31203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31203fooEv,_ZThn20_N6dd31203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43120[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43120[0]),
+ (VTBL_ENTRY)&_ZN6dd31203fooEv,
+ (VTBL_ENTRY)&_ZN7ee431203barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43120[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee43120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31203fooEv,_ZTv0_n12_N6dd31203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee43120[];
+extern void _ZN6dd31203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3120__7ee43120[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3120[0]),
+ (VTBL_ENTRY)&_ZN6dd31203fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc120__6dd3120__7ee43120[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3120[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd31203fooEv,_ZTv0_n12_N6dd31203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31203fooEv,_ZThn20_N6dd31203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd3120__7ee43120[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31203fooEv,_ZTv0_n12_N6dd31203fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc120__7ee43120[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc120__7ee43120[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee43120[] = {
+ {&(_ZTV7ee43120[4]), 4,13},
+ {&(_tg__ZTV6dd3120__7ee43120[4]), 4,5},
+ {&(_tg__ZTV5cc120__6dd3120__7ee43120[3]), 3,3},
+ {&(_tg__ZTV4bb20__6dd3120__7ee43120[3]), 3,4},
+ {&(_ZTV7ee43120[9]), 9,13},
+ {&(_ZTV7ee43120[12]), 12,13},
+ {&(_tg__ZTV5cc120__7ee43120[3]), 3,3},
+ {&(_tg__ZTV4bb20__5cc120__7ee43120[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee43120[];
+extern VTBL_ENTRY _ZTV7ee43120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43120[];
+static VTBL_ENTRY alt_thunk_names60[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31203fooEv,_ZTv0_n12_N6dd31203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31203fooEv,_ZThn20_N6dd31203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31203fooEv,_ZThn20_N6dd31203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43120 = { "ee43120", // class name
+ bases_ee43120, 4,
+ &(vtc_ee43120[0]), // expected_vtbl_contents
+ &(vtt_ee43120[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee43120),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43120),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43120),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names60,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee53120 : virtual dd3120 {
+ int e;
+ virtual void bar(); // _ZN7ee531203barEv
+ ~ee53120(); // tgen
+ ee53120(); // tgen
+};
+//SIG(1 ee53120) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee53120 ::bar(){vfunc_called(this, "_ZN7ee531203barEv");}
+ee53120 ::~ee53120(){ note_dtor("ee53120", this);} // tgen
+ee53120 ::ee53120(){ note_ctor("ee53120", this);} // tgen
+
+static void Test_ee53120()
+{
+ extern Class_Descriptor cd_ee53120;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee53120, buf);
+ ee53120 *dp, &lv = *(dp=new (buf) ee53120());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee53120)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53120)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(56,28), "ee53120");
+ check_base_class_offset(lv, (bb20*)(cc120*), ABISELECT(48,24), "ee53120");
+ check_base_class_offset(lv, (cc120*)(dd3120*), ABISELECT(32,16), "ee53120");
+ check_base_class_offset(lv, (dd3120*), ABISELECT(16,8), "ee53120");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53120.e");
+ test_class_info(&lv, &cd_ee53120);
+ dp->~ee53120();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53120(Test_ee53120, "ee53120", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee53120C1Ev();
+extern void _ZN7ee53120D1Ev();
+Name_Map name_map_ee53120[] = {
+ NSPAIR(_ZN7ee53120C1Ev),
+ NSPAIR(_ZN7ee53120D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc120;
+extern VTBL_ENTRY _ZTI5cc120[];
+extern VTBL_ENTRY _ZTV5cc120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc120[];
+extern Class_Descriptor cd_dd3120;
+extern VTBL_ENTRY _ZTI6dd3120[];
+extern VTBL_ENTRY _ZTV6dd3120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3120[];
+static Base_Class bases_ee53120[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(56,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(48,24), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc120, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3120, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee53120[];
+extern void _ZN7ee531203barEv();
+extern void _ZN6dd31203fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd31203fooEv,_ZTv0_n12_N6dd31203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31203fooEv,_ZThn16_N6dd31203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53120[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53120[0]),
+ (VTBL_ENTRY)&_ZN7ee531203barEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53120[0]),
+ (VTBL_ENTRY)&_ZN6dd31203fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53120[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee53120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31203fooEv,_ZTv0_n12_N6dd31203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee53120[];
+extern void _ZN6dd31203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3120__7ee53120[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3120[0]),
+ (VTBL_ENTRY)&_ZN6dd31203fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc120__6dd3120__7ee53120[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3120[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd31203fooEv,_ZTv0_n12_N6dd31203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31203fooEv,_ZThn16_N6dd31203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd3120__7ee53120[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31203fooEv,_ZTv0_n12_N6dd31203fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc120__7ee53120[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc120__7ee53120[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee53120[] = {
+ {&(_ZTV7ee53120[5]), 5,19},
+ {&(_ZTV7ee53120[11]), 11,19},
+ {&(_ZTV7ee53120[15]), 15,19},
+ {&(_ZTV7ee53120[18]), 18,19},
+ {&(_tg__ZTV6dd3120__7ee53120[4]), 4,5},
+ {&(_tg__ZTV5cc120__6dd3120__7ee53120[3]), 3,3},
+ {&(_tg__ZTV4bb20__6dd3120__7ee53120[3]), 3,4},
+ {&(_tg__ZTV5cc120__7ee53120[3]), 3,3},
+ {&(_tg__ZTV4bb20__5cc120__7ee53120[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee53120[];
+extern VTBL_ENTRY _ZTV7ee53120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53120[];
+static VTBL_ENTRY alt_thunk_names61[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31203fooEv,_ZTv0_n12_N6dd31203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31203fooEv,_ZThn16_N6dd31203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31203fooEv,_ZThn16_N6dd31203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53120 = { "ee53120", // class name
+ bases_ee53120, 4,
+ &(vtc_ee53120[0]), // expected_vtbl_contents
+ &(vtt_ee53120[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee53120),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53120),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53120),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names61,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee63120 : dd3120 {
+ int e;
+ virtual void foo(); // _ZN7ee631203fooEv
+ virtual void bar(); // _ZN7ee631203barEv
+ ~ee63120(); // tgen
+ ee63120(); // tgen
+};
+//SIG(1 ee63120) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v1 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63120 ::foo(){vfunc_called(this, "_ZN7ee631203fooEv");}
+void ee63120 ::bar(){vfunc_called(this, "_ZN7ee631203barEv");}
+ee63120 ::~ee63120(){ note_dtor("ee63120", this);} // tgen
+ee63120 ::ee63120(){ note_ctor("ee63120", this);} // tgen
+
+static void Test_ee63120()
+{
+ extern Class_Descriptor cd_ee63120;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee63120, buf);
+ ee63120 *dp, &lv = *(dp=new (buf) ee63120());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee63120)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63120)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee63120");
+ check_base_class_offset(lv, (bb20*)(cc120*), ABISELECT(32,20), "ee63120");
+ check_base_class_offset(lv, (cc120*)(dd3120*), ABISELECT(16,12), "ee63120");
+ check_base_class_offset(lv, (dd3120*), 0, "ee63120");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63120.e");
+ test_class_info(&lv, &cd_ee63120);
+ dp->~ee63120();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63120(Test_ee63120, "ee63120", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee63120C1Ev();
+extern void _ZN7ee63120D1Ev();
+Name_Map name_map_ee63120[] = {
+ NSPAIR(_ZN7ee63120C1Ev),
+ NSPAIR(_ZN7ee63120D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc120;
+extern VTBL_ENTRY _ZTI5cc120[];
+extern VTBL_ENTRY _ZTV5cc120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc120[];
+extern Class_Descriptor cd_dd3120;
+extern VTBL_ENTRY _ZTI6dd3120[];
+extern VTBL_ENTRY _ZTV6dd3120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3120[];
+static Base_Class bases_ee63120[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc120, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3120, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63120[];
+extern void _ZN7ee631203fooEv();
+extern void _ZN7ee631203barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee631203fooEv,_ZTv0_n12_N7ee631203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee631203fooEv,_ZThn20_N7ee631203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63120[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63120[0]),
+ (VTBL_ENTRY)&_ZN7ee631203fooEv,
+ (VTBL_ENTRY)&_ZN7ee631203barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63120[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee63120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee631203fooEv,_ZTv0_n12_N7ee631203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee63120[];
+extern void _ZN6dd31203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3120__7ee63120[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3120[0]),
+ (VTBL_ENTRY)&_ZN6dd31203fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc120__6dd3120__7ee63120[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3120[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd31203fooEv,_ZTv0_n12_N6dd31203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31203fooEv,_ZThn20_N6dd31203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd3120__7ee63120[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31203fooEv,_ZTv0_n12_N6dd31203fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc120__7ee63120[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc120__7ee63120[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee63120[] = {
+ {&(_ZTV7ee63120[4]), 4,13},
+ {&(_tg__ZTV6dd3120__7ee63120[4]), 4,5},
+ {&(_tg__ZTV5cc120__6dd3120__7ee63120[3]), 3,3},
+ {&(_tg__ZTV4bb20__6dd3120__7ee63120[3]), 3,4},
+ {&(_ZTV7ee63120[9]), 9,13},
+ {&(_ZTV7ee63120[12]), 12,13},
+ {&(_tg__ZTV5cc120__7ee63120[3]), 3,3},
+ {&(_tg__ZTV4bb20__5cc120__7ee63120[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee63120[];
+extern VTBL_ENTRY _ZTV7ee63120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63120[];
+static VTBL_ENTRY alt_thunk_names62[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31203fooEv,_ZTv0_n12_N6dd31203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31203fooEv,_ZThn20_N6dd31203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee631203fooEv,_ZTv0_n12_N7ee631203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee631203fooEv,_ZThn20_N7ee631203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63120 = { "ee63120", // class name
+ bases_ee63120, 4,
+ &(vtc_ee63120[0]), // expected_vtbl_contents
+ &(vtt_ee63120[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee63120),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63120),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63120),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names62,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee73120 : virtual dd3120 {
+ int e;
+ virtual void foo(); // _ZN7ee731203fooEv
+ virtual void bar(); // _ZN7ee731203barEv
+ ~ee73120(); // tgen
+ ee73120(); // tgen
+};
+//SIG(1 ee73120) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v1 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73120 ::foo(){vfunc_called(this, "_ZN7ee731203fooEv");}
+void ee73120 ::bar(){vfunc_called(this, "_ZN7ee731203barEv");}
+ee73120 ::~ee73120(){ note_dtor("ee73120", this);} // tgen
+ee73120 ::ee73120(){ note_ctor("ee73120", this);} // tgen
+
+static void Test_ee73120()
+{
+ extern Class_Descriptor cd_ee73120;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee73120, buf);
+ ee73120 *dp, &lv = *(dp=new (buf) ee73120());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee73120)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73120)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(56,28), "ee73120");
+ check_base_class_offset(lv, (bb20*)(cc120*), ABISELECT(48,24), "ee73120");
+ check_base_class_offset(lv, (cc120*)(dd3120*), ABISELECT(32,16), "ee73120");
+ check_base_class_offset(lv, (dd3120*), ABISELECT(16,8), "ee73120");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73120.e");
+ test_class_info(&lv, &cd_ee73120);
+ dp->~ee73120();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73120(Test_ee73120, "ee73120", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee73120C1Ev();
+extern void _ZN7ee73120D1Ev();
+Name_Map name_map_ee73120[] = {
+ NSPAIR(_ZN7ee73120C1Ev),
+ NSPAIR(_ZN7ee73120D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc120;
+extern VTBL_ENTRY _ZTI5cc120[];
+extern VTBL_ENTRY _ZTV5cc120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc120[];
+extern Class_Descriptor cd_dd3120;
+extern VTBL_ENTRY _ZTI6dd3120[];
+extern VTBL_ENTRY _ZTV6dd3120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3120[];
+static Base_Class bases_ee73120[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(56,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(48,24), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc120, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3120, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee73120[];
+extern void _ZN7ee731203fooEv();
+extern void _ZN7ee731203barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee731203fooEv,_ZTv0_n20_N7ee731203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee731203fooEv,_ZThn8_N7ee731203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee731203fooEv,_ZTv0_n12_N7ee731203fooEv)();
+extern void ABISELECT(_ZThn48_N7ee731203fooEv,_ZThn24_N7ee731203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73120[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73120[0]),
+ (VTBL_ENTRY)&_ZN7ee731203fooEv,
+ (VTBL_ENTRY)&_ZN7ee731203barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee731203fooEv,_ZTv0_n20_N7ee731203fooEv),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73120[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee73120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee731203fooEv,_ZTv0_n12_N7ee731203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee73120[];
+extern void _ZN6dd31203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3120__7ee73120[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3120[0]),
+ (VTBL_ENTRY)&_ZN6dd31203fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc120__6dd3120__7ee73120[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3120[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd31203fooEv,_ZTv0_n12_N6dd31203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31203fooEv,_ZThn16_N6dd31203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd3120__7ee73120[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31203fooEv,_ZTv0_n12_N6dd31203fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc120__7ee73120[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc120__7ee73120[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee73120[] = {
+ {&(_ZTV7ee73120[5]), 5,20},
+ {&(_ZTV7ee73120[12]), 12,20},
+ {&(_ZTV7ee73120[16]), 16,20},
+ {&(_ZTV7ee73120[19]), 19,20},
+ {&(_tg__ZTV6dd3120__7ee73120[4]), 4,5},
+ {&(_tg__ZTV5cc120__6dd3120__7ee73120[3]), 3,3},
+ {&(_tg__ZTV4bb20__6dd3120__7ee73120[3]), 3,4},
+ {&(_tg__ZTV5cc120__7ee73120[3]), 3,3},
+ {&(_tg__ZTV4bb20__5cc120__7ee73120[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee73120[];
+extern VTBL_ENTRY _ZTV7ee73120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73120[];
+static VTBL_ENTRY alt_thunk_names63[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31203fooEv,_ZTv0_n12_N6dd31203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31203fooEv,_ZThn16_N6dd31203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee731203fooEv,_ZTv0_n12_N7ee731203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee731203fooEv,_ZThn24_N7ee731203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee731203fooEv,_ZTv0_n20_N7ee731203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee731203fooEv,_ZThn8_N7ee731203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73120 = { "ee73120", // class name
+ bases_ee73120, 4,
+ &(vtc_ee73120[0]), // expected_vtbl_contents
+ &(vtt_ee73120[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee73120),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73120),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73120),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names63,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd4120 : cc120 {
+ int d;
+ virtual void bar(); // _ZN6dd41203barEv
+ ~dd4120(); // tgen
+ dd4120(); // tgen
+};
+//SIG(-1 dd4120) C1{ BC2{ VBC3{ BC4{ Fi} v2 Fi} Fi} v1 Fi}
+
+
+void dd4120 ::bar(){vfunc_called(this, "_ZN6dd41203barEv");}
+dd4120 ::~dd4120(){ note_dtor("dd4120", this);} // tgen
+dd4120 ::dd4120(){ note_ctor("dd4120", this);} // tgen
+
+static void Test_dd4120()
+{
+ extern Class_Descriptor cd_dd4120;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd4120, buf);
+ dd4120 *dp, &lv = *(dp=new (buf) dd4120());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd4120)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4120)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(24,16), "dd4120");
+ check_base_class_offset(lv, (bb20*)(cc120*), ABISELECT(16,12), "dd4120");
+ check_base_class_offset(lv, (cc120*), 0, "dd4120");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd4120.d");
+ test_class_info(&lv, &cd_dd4120);
+ dp->~dd4120();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4120(Test_dd4120, "dd4120", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd4120C1Ev();
+extern void _ZN6dd4120D1Ev();
+Name_Map name_map_dd4120[] = {
+ NSPAIR(_ZN6dd4120C1Ev),
+ NSPAIR(_ZN6dd4120D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc120;
+extern VTBL_ENTRY _ZTI5cc120[];
+extern VTBL_ENTRY _ZTV5cc120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc120[];
+static Base_Class bases_dd4120[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc120, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd4120[];
+extern void _ZN6dd41203barEv();
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY vtc_dd4120[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4120[0]),
+ (VTBL_ENTRY)&_ZN6dd41203barEv,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd4120[];
+static VTBL_ENTRY _tg__ZTV5cc120__6dd4120[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc120__6dd4120[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_dd4120[] = {
+ {&(_ZTV6dd4120[3]), 3,8},
+ {&(_tg__ZTV5cc120__6dd4120[3]), 3,3},
+ {&(_tg__ZTV4bb20__5cc120__6dd4120[3]), 3,4},
+ {&(_ZTV6dd4120[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI6dd4120[];
+extern VTBL_ENTRY _ZTV6dd4120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4120[];
+Class_Descriptor cd_dd4120 = { "dd4120", // class name
+ bases_dd4120, 3,
+ &(vtc_dd4120[0]), // expected_vtbl_contents
+ &(vtt_dd4120[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd4120),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4120),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd4120),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 ee04120 : dd4120 {
+ int e;
+ ~ee04120(); // tgen
+ ee04120(); // tgen
+};
+//SIG(1 ee04120) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v2 Fi} Fi} v1 Fi} Fi}
+
+
+ee04120 ::~ee04120(){ note_dtor("ee04120", this);} // tgen
+ee04120 ::ee04120(){ note_ctor("ee04120", this);} // tgen
+
+static void Test_ee04120()
+{
+ extern Class_Descriptor cd_ee04120;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee04120, buf);
+ ee04120 *dp, &lv = *(dp=new (buf) ee04120());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee04120)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04120)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(32,20), "ee04120");
+ check_base_class_offset(lv, (bb20*)(cc120*)(dd4120*), ABISELECT(24,16), "ee04120");
+ check_base_class_offset(lv, (cc120*)(dd4120*), 0, "ee04120");
+ check_base_class_offset(lv, (dd4120*), 0, "ee04120");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee04120.e");
+ test_class_info(&lv, &cd_ee04120);
+ dp->~ee04120();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04120(Test_ee04120, "ee04120", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee04120C1Ev();
+extern void _ZN7ee04120D1Ev();
+Name_Map name_map_ee04120[] = {
+ NSPAIR(_ZN7ee04120C1Ev),
+ NSPAIR(_ZN7ee04120D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc120;
+extern VTBL_ENTRY _ZTI5cc120[];
+extern VTBL_ENTRY _ZTV5cc120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc120[];
+extern Class_Descriptor cd_dd4120;
+extern VTBL_ENTRY _ZTI6dd4120[];
+extern VTBL_ENTRY _ZTV6dd4120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4120[];
+static Base_Class bases_ee04120[] = {
+ // 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_bb20, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc120, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4120, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee04120[];
+extern void _ZN6dd41203barEv();
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY vtc_ee04120[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04120[0]),
+ (VTBL_ENTRY)&_ZN6dd41203barEv,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee04120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee04120[];
+extern void _ZN6dd41203barEv();
+static VTBL_ENTRY _tg__ZTV6dd4120__7ee04120[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4120[0]),
+ (VTBL_ENTRY)&_ZN6dd41203barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1206dd4120__7ee04120[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc1206dd4120__7ee04120[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__6dd4120__7ee04120[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee04120[] = {
+ {&(_ZTV7ee04120[3]), 3,8},
+ {&(_tg__ZTV6dd4120__7ee04120[3]), 3,4},
+ {&(_tg__ZTV5cc1206dd4120__7ee04120[3]), 3,3},
+ {&(_tg__ZTV4bb20__5cc1206dd4120__7ee04120[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd4120__7ee04120[3]), 3,4},
+ {&(_ZTV7ee04120[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee04120[];
+extern VTBL_ENTRY _ZTV7ee04120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee04120[];
+Class_Descriptor cd_ee04120 = { "ee04120", // class name
+ bases_ee04120, 4,
+ &(vtc_ee04120[0]), // expected_vtbl_contents
+ &(vtt_ee04120[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee04120),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04120),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee04120),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee14120 : virtual dd4120 {
+ int e;
+ ~ee14120(); // tgen
+ ee14120(); // tgen
+};
+//SIG(1 ee14120) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v2 Fi} Fi} v1 Fi} Fi}
+
+
+ee14120 ::~ee14120(){ note_dtor("ee14120", this);} // tgen
+ee14120 ::ee14120(){ note_ctor("ee14120", this);} // tgen
+
+static void Test_ee14120()
+{
+ extern Class_Descriptor cd_ee14120;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee14120, buf);
+ ee14120 *dp, &lv = *(dp=new (buf) ee14120());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee14120)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14120)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee14120");
+ check_base_class_offset(lv, (bb20*)(cc120*)(dd4120*), ABISELECT(32,20), "ee14120");
+ check_base_class_offset(lv, (cc120*)(dd4120*), ABISELECT(16,8), "ee14120");
+ check_base_class_offset(lv, (dd4120*), ABISELECT(16,8), "ee14120");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14120.e");
+ test_class_info(&lv, &cd_ee14120);
+ dp->~ee14120();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14120(Test_ee14120, "ee14120", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee14120C1Ev();
+extern void _ZN7ee14120D1Ev();
+Name_Map name_map_ee14120[] = {
+ NSPAIR(_ZN7ee14120C1Ev),
+ NSPAIR(_ZN7ee14120D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc120;
+extern VTBL_ENTRY _ZTI5cc120[];
+extern VTBL_ENTRY _ZTV5cc120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc120[];
+extern Class_Descriptor cd_dd4120;
+extern VTBL_ENTRY _ZTI6dd4120[];
+extern VTBL_ENTRY _ZTV6dd4120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4120[];
+static Base_Class bases_ee14120[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc120, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4120, 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 _ZTI7ee14120[];
+extern void _ZN6dd41203barEv();
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY vtc_ee14120[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14120[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14120[0]),
+ (VTBL_ENTRY)&_ZN6dd41203barEv,
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee14120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee14120[];
+extern void _ZN6dd41203barEv();
+static VTBL_ENTRY _tg__ZTV6dd4120__7ee14120[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4120[0]),
+ (VTBL_ENTRY)&_ZN6dd41203barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1206dd4120__7ee14120[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc1206dd4120__7ee14120[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__6dd4120__7ee14120[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee14120[] = {
+ {&(_ZTV7ee14120[4]), 4,13},
+ {&(_ZTV7ee14120[8]), 8,13},
+ {&(_ZTV7ee14120[12]), 12,13},
+ {&(_tg__ZTV6dd4120__7ee14120[3]), 3,4},
+ {&(_tg__ZTV5cc1206dd4120__7ee14120[3]), 3,3},
+ {&(_tg__ZTV4bb20__5cc1206dd4120__7ee14120[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd4120__7ee14120[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee14120[];
+extern VTBL_ENTRY _ZTV7ee14120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14120[];
+Class_Descriptor cd_ee14120 = { "ee14120", // class name
+ bases_ee14120, 4,
+ &(vtc_ee14120[0]), // expected_vtbl_contents
+ &(vtt_ee14120[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee14120),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14120),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14120),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee24120 : dd4120 {
+ int e;
+ virtual void foo(); // _ZN7ee241203fooEv
+ ~ee24120(); // tgen
+ ee24120(); // tgen
+};
+//SIG(1 ee24120) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee24120 ::foo(){vfunc_called(this, "_ZN7ee241203fooEv");}
+ee24120 ::~ee24120(){ note_dtor("ee24120", this);} // tgen
+ee24120 ::ee24120(){ note_ctor("ee24120", this);} // tgen
+
+static void Test_ee24120()
+{
+ extern Class_Descriptor cd_ee24120;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee24120, buf);
+ ee24120 *dp, &lv = *(dp=new (buf) ee24120());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee24120)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24120)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(32,20), "ee24120");
+ check_base_class_offset(lv, (bb20*)(cc120*)(dd4120*), ABISELECT(24,16), "ee24120");
+ check_base_class_offset(lv, (cc120*)(dd4120*), 0, "ee24120");
+ check_base_class_offset(lv, (dd4120*), 0, "ee24120");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee24120.e");
+ test_class_info(&lv, &cd_ee24120);
+ dp->~ee24120();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24120(Test_ee24120, "ee24120", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee24120C1Ev();
+extern void _ZN7ee24120D1Ev();
+Name_Map name_map_ee24120[] = {
+ NSPAIR(_ZN7ee24120C1Ev),
+ NSPAIR(_ZN7ee24120D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc120;
+extern VTBL_ENTRY _ZTI5cc120[];
+extern VTBL_ENTRY _ZTV5cc120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc120[];
+extern Class_Descriptor cd_dd4120;
+extern VTBL_ENTRY _ZTI6dd4120[];
+extern VTBL_ENTRY _ZTV6dd4120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4120[];
+static Base_Class bases_ee24120[] = {
+ // 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_bb20, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc120, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4120, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee24120[];
+extern void _ZN6dd41203barEv();
+extern void _ZN7ee241203fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee241203fooEv,_ZTv0_n12_N7ee241203fooEv)();
+extern void ABISELECT(_ZThn24_N7ee241203fooEv,_ZThn16_N7ee241203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee24120[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24120[0]),
+ (VTBL_ENTRY)&_ZN6dd41203barEv,
+ (VTBL_ENTRY)&_ZN7ee241203fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee24120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee241203fooEv,_ZTv0_n12_N7ee241203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee24120[];
+extern void _ZN6dd41203barEv();
+static VTBL_ENTRY _tg__ZTV6dd4120__7ee24120[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4120[0]),
+ (VTBL_ENTRY)&_ZN6dd41203barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1206dd4120__7ee24120[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc1206dd4120__7ee24120[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__6dd4120__7ee24120[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee24120[] = {
+ {&(_ZTV7ee24120[3]), 3,9},
+ {&(_tg__ZTV6dd4120__7ee24120[3]), 3,4},
+ {&(_tg__ZTV5cc1206dd4120__7ee24120[3]), 3,3},
+ {&(_tg__ZTV4bb20__5cc1206dd4120__7ee24120[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd4120__7ee24120[3]), 3,4},
+ {&(_ZTV7ee24120[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee24120[];
+extern VTBL_ENTRY _ZTV7ee24120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee24120[];
+static VTBL_ENTRY alt_thunk_names64[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee241203fooEv,_ZTv0_n12_N7ee241203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee241203fooEv,_ZThn16_N7ee241203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee24120 = { "ee24120", // class name
+ bases_ee24120, 4,
+ &(vtc_ee24120[0]), // expected_vtbl_contents
+ &(vtt_ee24120[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee24120),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24120),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee24120),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names64,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee34120 : virtual dd4120 {
+ int e;
+ virtual void foo(); // _ZN7ee341203fooEv
+ ~ee34120(); // tgen
+ ee34120(); // tgen
+};
+//SIG(1 ee34120) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee34120 ::foo(){vfunc_called(this, "_ZN7ee341203fooEv");}
+ee34120 ::~ee34120(){ note_dtor("ee34120", this);} // tgen
+ee34120 ::ee34120(){ note_ctor("ee34120", this);} // tgen
+
+static void Test_ee34120()
+{
+ extern Class_Descriptor cd_ee34120;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee34120, buf);
+ ee34120 *dp, &lv = *(dp=new (buf) ee34120());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee34120)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34120)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee34120");
+ check_base_class_offset(lv, (bb20*)(cc120*)(dd4120*), ABISELECT(32,20), "ee34120");
+ check_base_class_offset(lv, (cc120*)(dd4120*), ABISELECT(16,8), "ee34120");
+ check_base_class_offset(lv, (dd4120*), ABISELECT(16,8), "ee34120");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34120.e");
+ test_class_info(&lv, &cd_ee34120);
+ dp->~ee34120();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34120(Test_ee34120, "ee34120", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee34120C1Ev();
+extern void _ZN7ee34120D1Ev();
+Name_Map name_map_ee34120[] = {
+ NSPAIR(_ZN7ee34120C1Ev),
+ NSPAIR(_ZN7ee34120D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc120;
+extern VTBL_ENTRY _ZTI5cc120[];
+extern VTBL_ENTRY _ZTV5cc120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc120[];
+extern Class_Descriptor cd_dd4120;
+extern VTBL_ENTRY _ZTI6dd4120[];
+extern VTBL_ENTRY _ZTV6dd4120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4120[];
+static Base_Class bases_ee34120[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc120, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4120, 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 _ZTI7ee34120[];
+extern void _ZN7ee341203fooEv();
+extern void _ZN6dd41203barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee341203fooEv,_ZTv0_n12_N7ee341203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee341203fooEv,_ZThn20_N7ee341203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee34120[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34120[0]),
+ (VTBL_ENTRY)&_ZN7ee341203fooEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34120[0]),
+ (VTBL_ENTRY)&_ZN6dd41203barEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee34120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee341203fooEv,_ZTv0_n12_N7ee341203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee34120[];
+extern void _ZN6dd41203barEv();
+static VTBL_ENTRY _tg__ZTV6dd4120__7ee34120[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4120[0]),
+ (VTBL_ENTRY)&_ZN6dd41203barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1206dd4120__7ee34120[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc1206dd4120__7ee34120[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__6dd4120__7ee34120[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee34120[] = {
+ {&(_ZTV7ee34120[4]), 4,14},
+ {&(_ZTV7ee34120[9]), 9,14},
+ {&(_ZTV7ee34120[13]), 13,14},
+ {&(_tg__ZTV6dd4120__7ee34120[3]), 3,4},
+ {&(_tg__ZTV5cc1206dd4120__7ee34120[3]), 3,3},
+ {&(_tg__ZTV4bb20__5cc1206dd4120__7ee34120[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd4120__7ee34120[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee34120[];
+extern VTBL_ENTRY _ZTV7ee34120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34120[];
+static VTBL_ENTRY alt_thunk_names65[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee341203fooEv,_ZTv0_n12_N7ee341203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee341203fooEv,_ZThn20_N7ee341203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34120 = { "ee34120", // class name
+ bases_ee34120, 4,
+ &(vtc_ee34120[0]), // expected_vtbl_contents
+ &(vtt_ee34120[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee34120),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34120),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34120),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names65,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee44120 : dd4120 {
+ int e;
+ virtual void bar(); // _ZN7ee441203barEv
+ ~ee44120(); // tgen
+ ee44120(); // tgen
+};
+//SIG(1 ee44120) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee44120 ::bar(){vfunc_called(this, "_ZN7ee441203barEv");}
+ee44120 ::~ee44120(){ note_dtor("ee44120", this);} // tgen
+ee44120 ::ee44120(){ note_ctor("ee44120", this);} // tgen
+
+static void Test_ee44120()
+{
+ extern Class_Descriptor cd_ee44120;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee44120, buf);
+ ee44120 *dp, &lv = *(dp=new (buf) ee44120());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee44120)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44120)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(32,20), "ee44120");
+ check_base_class_offset(lv, (bb20*)(cc120*)(dd4120*), ABISELECT(24,16), "ee44120");
+ check_base_class_offset(lv, (cc120*)(dd4120*), 0, "ee44120");
+ check_base_class_offset(lv, (dd4120*), 0, "ee44120");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee44120.e");
+ test_class_info(&lv, &cd_ee44120);
+ dp->~ee44120();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44120(Test_ee44120, "ee44120", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee44120C1Ev();
+extern void _ZN7ee44120D1Ev();
+Name_Map name_map_ee44120[] = {
+ NSPAIR(_ZN7ee44120C1Ev),
+ NSPAIR(_ZN7ee44120D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc120;
+extern VTBL_ENTRY _ZTI5cc120[];
+extern VTBL_ENTRY _ZTV5cc120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc120[];
+extern Class_Descriptor cd_dd4120;
+extern VTBL_ENTRY _ZTI6dd4120[];
+extern VTBL_ENTRY _ZTV6dd4120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4120[];
+static Base_Class bases_ee44120[] = {
+ // 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_bb20, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc120, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4120, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee44120[];
+extern void _ZN7ee441203barEv();
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY vtc_ee44120[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44120[0]),
+ (VTBL_ENTRY)&_ZN7ee441203barEv,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee44120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee44120[];
+extern void _ZN6dd41203barEv();
+static VTBL_ENTRY _tg__ZTV6dd4120__7ee44120[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4120[0]),
+ (VTBL_ENTRY)&_ZN6dd41203barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1206dd4120__7ee44120[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc1206dd4120__7ee44120[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__6dd4120__7ee44120[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee44120[] = {
+ {&(_ZTV7ee44120[3]), 3,8},
+ {&(_tg__ZTV6dd4120__7ee44120[3]), 3,4},
+ {&(_tg__ZTV5cc1206dd4120__7ee44120[3]), 3,3},
+ {&(_tg__ZTV4bb20__5cc1206dd4120__7ee44120[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd4120__7ee44120[3]), 3,4},
+ {&(_ZTV7ee44120[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee44120[];
+extern VTBL_ENTRY _ZTV7ee44120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee44120[];
+Class_Descriptor cd_ee44120 = { "ee44120", // class name
+ bases_ee44120, 4,
+ &(vtc_ee44120[0]), // expected_vtbl_contents
+ &(vtt_ee44120[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee44120),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44120),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee44120),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee54120 : virtual dd4120 {
+ int e;
+ virtual void bar(); // _ZN7ee541203barEv
+ ~ee54120(); // tgen
+ ee54120(); // tgen
+};
+//SIG(1 ee54120) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee54120 ::bar(){vfunc_called(this, "_ZN7ee541203barEv");}
+ee54120 ::~ee54120(){ note_dtor("ee54120", this);} // tgen
+ee54120 ::ee54120(){ note_ctor("ee54120", this);} // tgen
+
+static void Test_ee54120()
+{
+ extern Class_Descriptor cd_ee54120;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee54120, buf);
+ ee54120 *dp, &lv = *(dp=new (buf) ee54120());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee54120)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54120)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee54120");
+ check_base_class_offset(lv, (bb20*)(cc120*)(dd4120*), ABISELECT(32,20), "ee54120");
+ check_base_class_offset(lv, (cc120*)(dd4120*), ABISELECT(16,8), "ee54120");
+ check_base_class_offset(lv, (dd4120*), ABISELECT(16,8), "ee54120");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54120.e");
+ test_class_info(&lv, &cd_ee54120);
+ dp->~ee54120();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54120(Test_ee54120, "ee54120", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee54120C1Ev();
+extern void _ZN7ee54120D1Ev();
+Name_Map name_map_ee54120[] = {
+ NSPAIR(_ZN7ee54120C1Ev),
+ NSPAIR(_ZN7ee54120D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc120;
+extern VTBL_ENTRY _ZTI5cc120[];
+extern VTBL_ENTRY _ZTV5cc120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc120[];
+extern Class_Descriptor cd_dd4120;
+extern VTBL_ENTRY _ZTI6dd4120[];
+extern VTBL_ENTRY _ZTV6dd4120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4120[];
+static Base_Class bases_ee54120[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc120, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4120, 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 _ZTI7ee54120[];
+extern void _ZN7ee541203barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee541203barEv,_ZTv0_n16_N7ee541203barEv)();
+extern void ABISELECT(_ZThn16_N7ee541203barEv,_ZThn8_N7ee541203barEv)() __attribute__((weak));
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY vtc_ee54120[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54120[0]),
+ (VTBL_ENTRY)&_ZN7ee541203barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee541203barEv,_ZTv0_n16_N7ee541203barEv),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee54120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee54120[];
+extern void _ZN6dd41203barEv();
+static VTBL_ENTRY _tg__ZTV6dd4120__7ee54120[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4120[0]),
+ (VTBL_ENTRY)&_ZN6dd41203barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1206dd4120__7ee54120[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc1206dd4120__7ee54120[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__6dd4120__7ee54120[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee54120[] = {
+ {&(_ZTV7ee54120[4]), 4,14},
+ {&(_ZTV7ee54120[9]), 9,14},
+ {&(_ZTV7ee54120[13]), 13,14},
+ {&(_tg__ZTV6dd4120__7ee54120[3]), 3,4},
+ {&(_tg__ZTV5cc1206dd4120__7ee54120[3]), 3,3},
+ {&(_tg__ZTV4bb20__5cc1206dd4120__7ee54120[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd4120__7ee54120[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee54120[];
+extern VTBL_ENTRY _ZTV7ee54120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54120[];
+static VTBL_ENTRY alt_thunk_names66[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee541203barEv,_ZTv0_n16_N7ee541203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee541203barEv,_ZThn8_N7ee541203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54120 = { "ee54120", // class name
+ bases_ee54120, 4,
+ &(vtc_ee54120[0]), // expected_vtbl_contents
+ &(vtt_ee54120[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee54120),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54120),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54120),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names66,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee64120 : dd4120 {
+ int e;
+ virtual void foo(); // _ZN7ee641203fooEv
+ virtual void bar(); // _ZN7ee641203barEv
+ ~ee64120(); // tgen
+ ee64120(); // tgen
+};
+//SIG(1 ee64120) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v1 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64120 ::foo(){vfunc_called(this, "_ZN7ee641203fooEv");}
+void ee64120 ::bar(){vfunc_called(this, "_ZN7ee641203barEv");}
+ee64120 ::~ee64120(){ note_dtor("ee64120", this);} // tgen
+ee64120 ::ee64120(){ note_ctor("ee64120", this);} // tgen
+
+static void Test_ee64120()
+{
+ extern Class_Descriptor cd_ee64120;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee64120, buf);
+ ee64120 *dp, &lv = *(dp=new (buf) ee64120());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee64120)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64120)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(32,20), "ee64120");
+ check_base_class_offset(lv, (bb20*)(cc120*)(dd4120*), ABISELECT(24,16), "ee64120");
+ check_base_class_offset(lv, (cc120*)(dd4120*), 0, "ee64120");
+ check_base_class_offset(lv, (dd4120*), 0, "ee64120");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee64120.e");
+ test_class_info(&lv, &cd_ee64120);
+ dp->~ee64120();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64120(Test_ee64120, "ee64120", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee64120C1Ev();
+extern void _ZN7ee64120D1Ev();
+Name_Map name_map_ee64120[] = {
+ NSPAIR(_ZN7ee64120C1Ev),
+ NSPAIR(_ZN7ee64120D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc120;
+extern VTBL_ENTRY _ZTI5cc120[];
+extern VTBL_ENTRY _ZTV5cc120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc120[];
+extern Class_Descriptor cd_dd4120;
+extern VTBL_ENTRY _ZTI6dd4120[];
+extern VTBL_ENTRY _ZTV6dd4120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4120[];
+static Base_Class bases_ee64120[] = {
+ // 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_bb20, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc120, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4120, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee64120[];
+extern void _ZN7ee641203barEv();
+extern void _ZN7ee641203fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee641203fooEv,_ZTv0_n12_N7ee641203fooEv)();
+extern void ABISELECT(_ZThn24_N7ee641203fooEv,_ZThn16_N7ee641203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee64120[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64120[0]),
+ (VTBL_ENTRY)&_ZN7ee641203barEv,
+ (VTBL_ENTRY)&_ZN7ee641203fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee64120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee641203fooEv,_ZTv0_n12_N7ee641203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee64120[];
+extern void _ZN6dd41203barEv();
+static VTBL_ENTRY _tg__ZTV6dd4120__7ee64120[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4120[0]),
+ (VTBL_ENTRY)&_ZN6dd41203barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1206dd4120__7ee64120[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc1206dd4120__7ee64120[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__6dd4120__7ee64120[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee64120[] = {
+ {&(_ZTV7ee64120[3]), 3,9},
+ {&(_tg__ZTV6dd4120__7ee64120[3]), 3,4},
+ {&(_tg__ZTV5cc1206dd4120__7ee64120[3]), 3,3},
+ {&(_tg__ZTV4bb20__5cc1206dd4120__7ee64120[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd4120__7ee64120[3]), 3,4},
+ {&(_ZTV7ee64120[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee64120[];
+extern VTBL_ENTRY _ZTV7ee64120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee64120[];
+static VTBL_ENTRY alt_thunk_names67[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee641203fooEv,_ZTv0_n12_N7ee641203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee641203fooEv,_ZThn16_N7ee641203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee64120 = { "ee64120", // class name
+ bases_ee64120, 4,
+ &(vtc_ee64120[0]), // expected_vtbl_contents
+ &(vtt_ee64120[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee64120),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64120),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee64120),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names67,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee74120 : virtual dd4120 {
+ int e;
+ virtual void foo(); // _ZN7ee741203fooEv
+ virtual void bar(); // _ZN7ee741203barEv
+ ~ee74120(); // tgen
+ ee74120(); // tgen
+};
+//SIG(1 ee74120) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v1 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74120 ::foo(){vfunc_called(this, "_ZN7ee741203fooEv");}
+void ee74120 ::bar(){vfunc_called(this, "_ZN7ee741203barEv");}
+ee74120 ::~ee74120(){ note_dtor("ee74120", this);} // tgen
+ee74120 ::ee74120(){ note_ctor("ee74120", this);} // tgen
+
+static void Test_ee74120()
+{
+ extern Class_Descriptor cd_ee74120;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee74120, buf);
+ ee74120 *dp, &lv = *(dp=new (buf) ee74120());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee74120)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74120)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee74120");
+ check_base_class_offset(lv, (bb20*)(cc120*)(dd4120*), ABISELECT(32,20), "ee74120");
+ check_base_class_offset(lv, (cc120*)(dd4120*), ABISELECT(16,8), "ee74120");
+ check_base_class_offset(lv, (dd4120*), ABISELECT(16,8), "ee74120");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74120.e");
+ test_class_info(&lv, &cd_ee74120);
+ dp->~ee74120();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74120(Test_ee74120, "ee74120", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee74120C1Ev();
+extern void _ZN7ee74120D1Ev();
+Name_Map name_map_ee74120[] = {
+ NSPAIR(_ZN7ee74120C1Ev),
+ NSPAIR(_ZN7ee74120D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc120;
+extern VTBL_ENTRY _ZTI5cc120[];
+extern VTBL_ENTRY _ZTV5cc120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc120[];
+extern Class_Descriptor cd_dd4120;
+extern VTBL_ENTRY _ZTI6dd4120[];
+extern VTBL_ENTRY _ZTV6dd4120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4120[];
+static Base_Class bases_ee74120[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc120, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4120, 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 _ZTI7ee74120[];
+extern void _ZN7ee741203fooEv();
+extern void _ZN7ee741203barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee741203barEv,_ZTv0_n16_N7ee741203barEv)();
+extern void ABISELECT(_ZThn16_N7ee741203barEv,_ZThn8_N7ee741203barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee741203fooEv,_ZTv0_n12_N7ee741203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee741203fooEv,_ZThn20_N7ee741203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74120[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74120[0]),
+ (VTBL_ENTRY)&_ZN7ee741203fooEv,
+ (VTBL_ENTRY)&_ZN7ee741203barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee741203barEv,_ZTv0_n16_N7ee741203barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee74120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee741203fooEv,_ZTv0_n12_N7ee741203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee74120[];
+extern void _ZN6dd41203barEv();
+static VTBL_ENTRY _tg__ZTV6dd4120__7ee74120[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4120[0]),
+ (VTBL_ENTRY)&_ZN6dd41203barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1206dd4120__7ee74120[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc1206dd4120__7ee74120[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__6dd4120__7ee74120[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee74120[] = {
+ {&(_ZTV7ee74120[4]), 4,15},
+ {&(_ZTV7ee74120[10]), 10,15},
+ {&(_ZTV7ee74120[14]), 14,15},
+ {&(_tg__ZTV6dd4120__7ee74120[3]), 3,4},
+ {&(_tg__ZTV5cc1206dd4120__7ee74120[3]), 3,3},
+ {&(_tg__ZTV4bb20__5cc1206dd4120__7ee74120[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd4120__7ee74120[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee74120[];
+extern VTBL_ENTRY _ZTV7ee74120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74120[];
+static VTBL_ENTRY alt_thunk_names68[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee741203fooEv,_ZTv0_n12_N7ee741203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee741203fooEv,_ZThn20_N7ee741203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee741203barEv,_ZTv0_n16_N7ee741203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee741203barEv,_ZThn8_N7ee741203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74120 = { "ee74120", // class name
+ bases_ee74120, 4,
+ &(vtc_ee74120[0]), // expected_vtbl_contents
+ &(vtt_ee74120[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee74120),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74120),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74120),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names68,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd5120 : virtual cc120 {
+ int d;
+ virtual void bar(); // _ZN6dd51203barEv
+ ~dd5120(); // tgen
+ dd5120(); // tgen
+};
+//SIG(-1 dd5120) C1{ VBC2{ VBC3{ BC4{ Fi} v2 Fi} Fi} v1 Fi}
+
+
+void dd5120 ::bar(){vfunc_called(this, "_ZN6dd51203barEv");}
+dd5120 ::~dd5120(){ note_dtor("dd5120", this);} // tgen
+dd5120 ::dd5120(){ note_ctor("dd5120", this);} // tgen
+
+static void Test_dd5120()
+{
+ extern Class_Descriptor cd_dd5120;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd5120, buf);
+ dd5120 *dp, &lv = *(dp=new (buf) dd5120());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd5120)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5120)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,20), "dd5120");
+ check_base_class_offset(lv, (bb20*)(cc120*), ABISELECT(32,16), "dd5120");
+ check_base_class_offset(lv, (cc120*), ABISELECT(16,8), "dd5120");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5120.d");
+ test_class_info(&lv, &cd_dd5120);
+ dp->~dd5120();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5120(Test_dd5120, "dd5120", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd5120C1Ev();
+extern void _ZN6dd5120D1Ev();
+Name_Map name_map_dd5120[] = {
+ NSPAIR(_ZN6dd5120C1Ev),
+ NSPAIR(_ZN6dd5120D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc120;
+extern VTBL_ENTRY _ZTI5cc120[];
+extern VTBL_ENTRY _ZTV5cc120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc120[];
+static Base_Class bases_dd5120[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc120, 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 _ZTI6dd5120[];
+extern void _ZN6dd51203barEv();
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY vtc_dd5120[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5120[0]),
+ (VTBL_ENTRY)&_ZN6dd51203barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5120[0]),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd5120[];
+static VTBL_ENTRY _tg__ZTV5cc120__6dd5120[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc120__6dd5120[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_dd5120[] = {
+ {&(_ZTV6dd5120[4]), 4,12},
+ {&(_ZTV6dd5120[8]), 8,12},
+ {&(_ZTV6dd5120[11]), 11,12},
+ {&(_tg__ZTV5cc120__6dd5120[3]), 3,3},
+ {&(_tg__ZTV4bb20__5cc120__6dd5120[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd5120[];
+extern VTBL_ENTRY _ZTV6dd5120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5120[];
+Class_Descriptor cd_dd5120 = { "dd5120", // class name
+ bases_dd5120, 3,
+ &(vtc_dd5120[0]), // expected_vtbl_contents
+ &(vtt_dd5120[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd5120),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5120),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5120),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 ee05120 : dd5120 {
+ int e;
+ ~ee05120(); // tgen
+ ee05120(); // tgen
+};
+//SIG(1 ee05120) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v2 Fi} Fi} v1 Fi} Fi}
+
+
+ee05120 ::~ee05120(){ note_dtor("ee05120", this);} // tgen
+ee05120 ::ee05120(){ note_ctor("ee05120", this);} // tgen
+
+static void Test_ee05120()
+{
+ extern Class_Descriptor cd_ee05120;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee05120, buf);
+ ee05120 *dp, &lv = *(dp=new (buf) ee05120());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee05120)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05120)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee05120");
+ check_base_class_offset(lv, (bb20*)(cc120*), ABISELECT(32,20), "ee05120");
+ check_base_class_offset(lv, (cc120*)(dd5120*), ABISELECT(16,12), "ee05120");
+ check_base_class_offset(lv, (dd5120*), 0, "ee05120");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05120.e");
+ test_class_info(&lv, &cd_ee05120);
+ dp->~ee05120();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05120(Test_ee05120, "ee05120", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee05120C1Ev();
+extern void _ZN7ee05120D1Ev();
+Name_Map name_map_ee05120[] = {
+ NSPAIR(_ZN7ee05120C1Ev),
+ NSPAIR(_ZN7ee05120D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc120;
+extern VTBL_ENTRY _ZTI5cc120[];
+extern VTBL_ENTRY _ZTV5cc120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc120[];
+extern Class_Descriptor cd_dd5120;
+extern VTBL_ENTRY _ZTI6dd5120[];
+extern VTBL_ENTRY _ZTV6dd5120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5120[];
+static Base_Class bases_ee05120[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc120, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5120, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05120[];
+extern void _ZN6dd51203barEv();
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY vtc_ee05120[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05120[0]),
+ (VTBL_ENTRY)&_ZN6dd51203barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05120[0]),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee05120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee05120[];
+extern void _ZN6dd51203barEv();
+static VTBL_ENTRY _tg__ZTV6dd5120__7ee05120[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5120[0]),
+ (VTBL_ENTRY)&_ZN6dd51203barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc120__6dd5120__7ee05120[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__6dd5120__7ee05120[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc120__7ee05120[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc120__7ee05120[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee05120[] = {
+ {&(_ZTV7ee05120[4]), 4,12},
+ {&(_tg__ZTV6dd5120__7ee05120[4]), 4,5},
+ {&(_tg__ZTV5cc120__6dd5120__7ee05120[3]), 3,3},
+ {&(_tg__ZTV4bb20__6dd5120__7ee05120[3]), 3,4},
+ {&(_ZTV7ee05120[8]), 8,12},
+ {&(_ZTV7ee05120[11]), 11,12},
+ {&(_tg__ZTV5cc120__7ee05120[3]), 3,3},
+ {&(_tg__ZTV4bb20__5cc120__7ee05120[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee05120[];
+extern VTBL_ENTRY _ZTV7ee05120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05120[];
+Class_Descriptor cd_ee05120 = { "ee05120", // class name
+ bases_ee05120, 4,
+ &(vtc_ee05120[0]), // expected_vtbl_contents
+ &(vtt_ee05120[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee05120),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05120),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05120),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee15120 : virtual dd5120 {
+ int e;
+ ~ee15120(); // tgen
+ ee15120(); // tgen
+};
+//SIG(1 ee15120) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v2 Fi} Fi} v1 Fi} Fi}
+
+
+ee15120 ::~ee15120(){ note_dtor("ee15120", this);} // tgen
+ee15120 ::ee15120(){ note_ctor("ee15120", this);} // tgen
+
+static void Test_ee15120()
+{
+ extern Class_Descriptor cd_ee15120;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee15120, buf);
+ ee15120 *dp, &lv = *(dp=new (buf) ee15120());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee15120)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15120)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(56,28), "ee15120");
+ check_base_class_offset(lv, (bb20*)(cc120*), ABISELECT(48,24), "ee15120");
+ check_base_class_offset(lv, (cc120*)(dd5120*), ABISELECT(32,16), "ee15120");
+ check_base_class_offset(lv, (dd5120*), ABISELECT(16,8), "ee15120");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15120.e");
+ test_class_info(&lv, &cd_ee15120);
+ dp->~ee15120();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15120(Test_ee15120, "ee15120", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee15120C1Ev();
+extern void _ZN7ee15120D1Ev();
+Name_Map name_map_ee15120[] = {
+ NSPAIR(_ZN7ee15120C1Ev),
+ NSPAIR(_ZN7ee15120D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc120;
+extern VTBL_ENTRY _ZTI5cc120[];
+extern VTBL_ENTRY _ZTV5cc120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc120[];
+extern Class_Descriptor cd_dd5120;
+extern VTBL_ENTRY _ZTI6dd5120[];
+extern VTBL_ENTRY _ZTV6dd5120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5120[];
+static Base_Class bases_ee15120[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(56,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(48,24), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc120, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5120, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee15120[];
+extern void _ZN6dd51203barEv();
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY vtc_ee15120[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15120[0]),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15120[0]),
+ (VTBL_ENTRY)&_ZN6dd51203barEv,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15120[0]),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee15120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee15120[];
+extern void _ZN6dd51203barEv();
+static VTBL_ENTRY _tg__ZTV6dd5120__7ee15120[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5120[0]),
+ (VTBL_ENTRY)&_ZN6dd51203barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc120__6dd5120__7ee15120[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__6dd5120__7ee15120[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc120__7ee15120[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc120__7ee15120[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee15120[] = {
+ {&(_ZTV7ee15120[5]), 5,18},
+ {&(_ZTV7ee15120[10]), 10,18},
+ {&(_ZTV7ee15120[14]), 14,18},
+ {&(_ZTV7ee15120[17]), 17,18},
+ {&(_tg__ZTV6dd5120__7ee15120[4]), 4,5},
+ {&(_tg__ZTV5cc120__6dd5120__7ee15120[3]), 3,3},
+ {&(_tg__ZTV4bb20__6dd5120__7ee15120[3]), 3,4},
+ {&(_tg__ZTV5cc120__7ee15120[3]), 3,3},
+ {&(_tg__ZTV4bb20__5cc120__7ee15120[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee15120[];
+extern VTBL_ENTRY _ZTV7ee15120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15120[];
+Class_Descriptor cd_ee15120 = { "ee15120", // class name
+ bases_ee15120, 4,
+ &(vtc_ee15120[0]), // expected_vtbl_contents
+ &(vtt_ee15120[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee15120),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15120),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15120),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee25120 : dd5120 {
+ int e;
+ virtual void foo(); // _ZN7ee251203fooEv
+ ~ee25120(); // tgen
+ ee25120(); // tgen
+};
+//SIG(1 ee25120) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee25120 ::foo(){vfunc_called(this, "_ZN7ee251203fooEv");}
+ee25120 ::~ee25120(){ note_dtor("ee25120", this);} // tgen
+ee25120 ::ee25120(){ note_ctor("ee25120", this);} // tgen
+
+static void Test_ee25120()
+{
+ extern Class_Descriptor cd_ee25120;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee25120, buf);
+ ee25120 *dp, &lv = *(dp=new (buf) ee25120());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee25120)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25120)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee25120");
+ check_base_class_offset(lv, (bb20*)(cc120*), ABISELECT(32,20), "ee25120");
+ check_base_class_offset(lv, (cc120*)(dd5120*), ABISELECT(16,12), "ee25120");
+ check_base_class_offset(lv, (dd5120*), 0, "ee25120");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25120.e");
+ test_class_info(&lv, &cd_ee25120);
+ dp->~ee25120();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25120(Test_ee25120, "ee25120", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee25120C1Ev();
+extern void _ZN7ee25120D1Ev();
+Name_Map name_map_ee25120[] = {
+ NSPAIR(_ZN7ee25120C1Ev),
+ NSPAIR(_ZN7ee25120D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc120;
+extern VTBL_ENTRY _ZTI5cc120[];
+extern VTBL_ENTRY _ZTV5cc120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc120[];
+extern Class_Descriptor cd_dd5120;
+extern VTBL_ENTRY _ZTI6dd5120[];
+extern VTBL_ENTRY _ZTV6dd5120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5120[];
+static Base_Class bases_ee25120[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc120, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5120, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25120[];
+extern void _ZN6dd51203barEv();
+extern void _ZN7ee251203fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee251203fooEv,_ZTv0_n12_N7ee251203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee251203fooEv,_ZThn20_N7ee251203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25120[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25120[0]),
+ (VTBL_ENTRY)&_ZN6dd51203barEv,
+ (VTBL_ENTRY)&_ZN7ee251203fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25120[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee25120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee251203fooEv,_ZTv0_n12_N7ee251203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee25120[];
+extern void _ZN6dd51203barEv();
+static VTBL_ENTRY _tg__ZTV6dd5120__7ee25120[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5120[0]),
+ (VTBL_ENTRY)&_ZN6dd51203barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc120__6dd5120__7ee25120[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__6dd5120__7ee25120[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc120__7ee25120[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc120__7ee25120[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee25120[] = {
+ {&(_ZTV7ee25120[4]), 4,13},
+ {&(_tg__ZTV6dd5120__7ee25120[4]), 4,5},
+ {&(_tg__ZTV5cc120__6dd5120__7ee25120[3]), 3,3},
+ {&(_tg__ZTV4bb20__6dd5120__7ee25120[3]), 3,4},
+ {&(_ZTV7ee25120[9]), 9,13},
+ {&(_ZTV7ee25120[12]), 12,13},
+ {&(_tg__ZTV5cc120__7ee25120[3]), 3,3},
+ {&(_tg__ZTV4bb20__5cc120__7ee25120[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee25120[];
+extern VTBL_ENTRY _ZTV7ee25120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25120[];
+static VTBL_ENTRY alt_thunk_names69[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee251203fooEv,_ZTv0_n12_N7ee251203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee251203fooEv,_ZThn20_N7ee251203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25120 = { "ee25120", // class name
+ bases_ee25120, 4,
+ &(vtc_ee25120[0]), // expected_vtbl_contents
+ &(vtt_ee25120[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee25120),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25120),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25120),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names69,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee35120 : virtual dd5120 {
+ int e;
+ virtual void foo(); // _ZN7ee351203fooEv
+ ~ee35120(); // tgen
+ ee35120(); // tgen
+};
+//SIG(1 ee35120) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee35120 ::foo(){vfunc_called(this, "_ZN7ee351203fooEv");}
+ee35120 ::~ee35120(){ note_dtor("ee35120", this);} // tgen
+ee35120 ::ee35120(){ note_ctor("ee35120", this);} // tgen
+
+static void Test_ee35120()
+{
+ extern Class_Descriptor cd_ee35120;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee35120, buf);
+ ee35120 *dp, &lv = *(dp=new (buf) ee35120());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee35120)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35120)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(56,28), "ee35120");
+ check_base_class_offset(lv, (bb20*)(cc120*), ABISELECT(48,24), "ee35120");
+ check_base_class_offset(lv, (cc120*)(dd5120*), ABISELECT(32,16), "ee35120");
+ check_base_class_offset(lv, (dd5120*), ABISELECT(16,8), "ee35120");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35120.e");
+ test_class_info(&lv, &cd_ee35120);
+ dp->~ee35120();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35120(Test_ee35120, "ee35120", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee35120C1Ev();
+extern void _ZN7ee35120D1Ev();
+Name_Map name_map_ee35120[] = {
+ NSPAIR(_ZN7ee35120C1Ev),
+ NSPAIR(_ZN7ee35120D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc120;
+extern VTBL_ENTRY _ZTI5cc120[];
+extern VTBL_ENTRY _ZTV5cc120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc120[];
+extern Class_Descriptor cd_dd5120;
+extern VTBL_ENTRY _ZTI6dd5120[];
+extern VTBL_ENTRY _ZTV6dd5120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5120[];
+static Base_Class bases_ee35120[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(56,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(48,24), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc120, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5120, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee35120[];
+extern void _ZN7ee351203fooEv();
+extern void _ZN6dd51203barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee351203fooEv,_ZTv0_n12_N7ee351203fooEv)();
+extern void ABISELECT(_ZThn48_N7ee351203fooEv,_ZThn24_N7ee351203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35120[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35120[0]),
+ (VTBL_ENTRY)&_ZN7ee351203fooEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35120[0]),
+ (VTBL_ENTRY)&_ZN6dd51203barEv,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35120[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee35120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee351203fooEv,_ZTv0_n12_N7ee351203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee35120[];
+extern void _ZN6dd51203barEv();
+static VTBL_ENTRY _tg__ZTV6dd5120__7ee35120[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5120[0]),
+ (VTBL_ENTRY)&_ZN6dd51203barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc120__6dd5120__7ee35120[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__6dd5120__7ee35120[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc120__7ee35120[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc120__7ee35120[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee35120[] = {
+ {&(_ZTV7ee35120[5]), 5,19},
+ {&(_ZTV7ee35120[11]), 11,19},
+ {&(_ZTV7ee35120[15]), 15,19},
+ {&(_ZTV7ee35120[18]), 18,19},
+ {&(_tg__ZTV6dd5120__7ee35120[4]), 4,5},
+ {&(_tg__ZTV5cc120__6dd5120__7ee35120[3]), 3,3},
+ {&(_tg__ZTV4bb20__6dd5120__7ee35120[3]), 3,4},
+ {&(_tg__ZTV5cc120__7ee35120[3]), 3,3},
+ {&(_tg__ZTV4bb20__5cc120__7ee35120[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee35120[];
+extern VTBL_ENTRY _ZTV7ee35120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35120[];
+static VTBL_ENTRY alt_thunk_names70[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee351203fooEv,_ZTv0_n12_N7ee351203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee351203fooEv,_ZThn24_N7ee351203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35120 = { "ee35120", // class name
+ bases_ee35120, 4,
+ &(vtc_ee35120[0]), // expected_vtbl_contents
+ &(vtt_ee35120[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee35120),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35120),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35120),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names70,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee45120 : dd5120 {
+ int e;
+ virtual void bar(); // _ZN7ee451203barEv
+ ~ee45120(); // tgen
+ ee45120(); // tgen
+};
+//SIG(1 ee45120) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee45120 ::bar(){vfunc_called(this, "_ZN7ee451203barEv");}
+ee45120 ::~ee45120(){ note_dtor("ee45120", this);} // tgen
+ee45120 ::ee45120(){ note_ctor("ee45120", this);} // tgen
+
+static void Test_ee45120()
+{
+ extern Class_Descriptor cd_ee45120;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee45120, buf);
+ ee45120 *dp, &lv = *(dp=new (buf) ee45120());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee45120)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45120)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee45120");
+ check_base_class_offset(lv, (bb20*)(cc120*), ABISELECT(32,20), "ee45120");
+ check_base_class_offset(lv, (cc120*)(dd5120*), ABISELECT(16,12), "ee45120");
+ check_base_class_offset(lv, (dd5120*), 0, "ee45120");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45120.e");
+ test_class_info(&lv, &cd_ee45120);
+ dp->~ee45120();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45120(Test_ee45120, "ee45120", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee45120C1Ev();
+extern void _ZN7ee45120D1Ev();
+Name_Map name_map_ee45120[] = {
+ NSPAIR(_ZN7ee45120C1Ev),
+ NSPAIR(_ZN7ee45120D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc120;
+extern VTBL_ENTRY _ZTI5cc120[];
+extern VTBL_ENTRY _ZTV5cc120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc120[];
+extern Class_Descriptor cd_dd5120;
+extern VTBL_ENTRY _ZTI6dd5120[];
+extern VTBL_ENTRY _ZTV6dd5120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5120[];
+static Base_Class bases_ee45120[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc120, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5120, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45120[];
+extern void _ZN7ee451203barEv();
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY vtc_ee45120[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45120[0]),
+ (VTBL_ENTRY)&_ZN7ee451203barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45120[0]),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee45120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee45120[];
+extern void _ZN6dd51203barEv();
+static VTBL_ENTRY _tg__ZTV6dd5120__7ee45120[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5120[0]),
+ (VTBL_ENTRY)&_ZN6dd51203barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc120__6dd5120__7ee45120[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__6dd5120__7ee45120[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc120__7ee45120[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc120__7ee45120[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee45120[] = {
+ {&(_ZTV7ee45120[4]), 4,12},
+ {&(_tg__ZTV6dd5120__7ee45120[4]), 4,5},
+ {&(_tg__ZTV5cc120__6dd5120__7ee45120[3]), 3,3},
+ {&(_tg__ZTV4bb20__6dd5120__7ee45120[3]), 3,4},
+ {&(_ZTV7ee45120[8]), 8,12},
+ {&(_ZTV7ee45120[11]), 11,12},
+ {&(_tg__ZTV5cc120__7ee45120[3]), 3,3},
+ {&(_tg__ZTV4bb20__5cc120__7ee45120[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee45120[];
+extern VTBL_ENTRY _ZTV7ee45120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45120[];
+Class_Descriptor cd_ee45120 = { "ee45120", // class name
+ bases_ee45120, 4,
+ &(vtc_ee45120[0]), // expected_vtbl_contents
+ &(vtt_ee45120[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee45120),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45120),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45120),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee55120 : virtual dd5120 {
+ int e;
+ virtual void bar(); // _ZN7ee551203barEv
+ ~ee55120(); // tgen
+ ee55120(); // tgen
+};
+//SIG(1 ee55120) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee55120 ::bar(){vfunc_called(this, "_ZN7ee551203barEv");}
+ee55120 ::~ee55120(){ note_dtor("ee55120", this);} // tgen
+ee55120 ::ee55120(){ note_ctor("ee55120", this);} // tgen
+
+static void Test_ee55120()
+{
+ extern Class_Descriptor cd_ee55120;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee55120, buf);
+ ee55120 *dp, &lv = *(dp=new (buf) ee55120());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee55120)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55120)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(56,28), "ee55120");
+ check_base_class_offset(lv, (bb20*)(cc120*), ABISELECT(48,24), "ee55120");
+ check_base_class_offset(lv, (cc120*)(dd5120*), ABISELECT(32,16), "ee55120");
+ check_base_class_offset(lv, (dd5120*), ABISELECT(16,8), "ee55120");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55120.e");
+ test_class_info(&lv, &cd_ee55120);
+ dp->~ee55120();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55120(Test_ee55120, "ee55120", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee55120C1Ev();
+extern void _ZN7ee55120D1Ev();
+Name_Map name_map_ee55120[] = {
+ NSPAIR(_ZN7ee55120C1Ev),
+ NSPAIR(_ZN7ee55120D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc120;
+extern VTBL_ENTRY _ZTI5cc120[];
+extern VTBL_ENTRY _ZTV5cc120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc120[];
+extern Class_Descriptor cd_dd5120;
+extern VTBL_ENTRY _ZTI6dd5120[];
+extern VTBL_ENTRY _ZTV6dd5120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5120[];
+static Base_Class bases_ee55120[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(56,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(48,24), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc120, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5120, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee55120[];
+extern void _ZN7ee551203barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee551203barEv,_ZTv0_n20_N7ee551203barEv)();
+extern void ABISELECT(_ZThn16_N7ee551203barEv,_ZThn8_N7ee551203barEv)() __attribute__((weak));
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY vtc_ee55120[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55120[0]),
+ (VTBL_ENTRY)&_ZN7ee551203barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee551203barEv,_ZTv0_n20_N7ee551203barEv),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55120[0]),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee55120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee55120[];
+extern void _ZN6dd51203barEv();
+static VTBL_ENTRY _tg__ZTV6dd5120__7ee55120[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5120[0]),
+ (VTBL_ENTRY)&_ZN6dd51203barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc120__6dd5120__7ee55120[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__6dd5120__7ee55120[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc120__7ee55120[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc120__7ee55120[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee55120[] = {
+ {&(_ZTV7ee55120[5]), 5,19},
+ {&(_ZTV7ee55120[11]), 11,19},
+ {&(_ZTV7ee55120[15]), 15,19},
+ {&(_ZTV7ee55120[18]), 18,19},
+ {&(_tg__ZTV6dd5120__7ee55120[4]), 4,5},
+ {&(_tg__ZTV5cc120__6dd5120__7ee55120[3]), 3,3},
+ {&(_tg__ZTV4bb20__6dd5120__7ee55120[3]), 3,4},
+ {&(_tg__ZTV5cc120__7ee55120[3]), 3,3},
+ {&(_tg__ZTV4bb20__5cc120__7ee55120[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee55120[];
+extern VTBL_ENTRY _ZTV7ee55120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55120[];
+static VTBL_ENTRY alt_thunk_names71[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee551203barEv,_ZTv0_n20_N7ee551203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee551203barEv,_ZThn8_N7ee551203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55120 = { "ee55120", // class name
+ bases_ee55120, 4,
+ &(vtc_ee55120[0]), // expected_vtbl_contents
+ &(vtt_ee55120[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee55120),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55120),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55120),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names71,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee65120 : dd5120 {
+ int e;
+ virtual void foo(); // _ZN7ee651203fooEv
+ virtual void bar(); // _ZN7ee651203barEv
+ ~ee65120(); // tgen
+ ee65120(); // tgen
+};
+//SIG(1 ee65120) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v1 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65120 ::foo(){vfunc_called(this, "_ZN7ee651203fooEv");}
+void ee65120 ::bar(){vfunc_called(this, "_ZN7ee651203barEv");}
+ee65120 ::~ee65120(){ note_dtor("ee65120", this);} // tgen
+ee65120 ::ee65120(){ note_ctor("ee65120", this);} // tgen
+
+static void Test_ee65120()
+{
+ extern Class_Descriptor cd_ee65120;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee65120, buf);
+ ee65120 *dp, &lv = *(dp=new (buf) ee65120());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee65120)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65120)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee65120");
+ check_base_class_offset(lv, (bb20*)(cc120*), ABISELECT(32,20), "ee65120");
+ check_base_class_offset(lv, (cc120*)(dd5120*), ABISELECT(16,12), "ee65120");
+ check_base_class_offset(lv, (dd5120*), 0, "ee65120");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65120.e");
+ test_class_info(&lv, &cd_ee65120);
+ dp->~ee65120();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65120(Test_ee65120, "ee65120", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee65120C1Ev();
+extern void _ZN7ee65120D1Ev();
+Name_Map name_map_ee65120[] = {
+ NSPAIR(_ZN7ee65120C1Ev),
+ NSPAIR(_ZN7ee65120D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc120;
+extern VTBL_ENTRY _ZTI5cc120[];
+extern VTBL_ENTRY _ZTV5cc120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc120[];
+extern Class_Descriptor cd_dd5120;
+extern VTBL_ENTRY _ZTI6dd5120[];
+extern VTBL_ENTRY _ZTV6dd5120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5120[];
+static Base_Class bases_ee65120[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc120, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5120, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65120[];
+extern void _ZN7ee651203barEv();
+extern void _ZN7ee651203fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee651203fooEv,_ZTv0_n12_N7ee651203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee651203fooEv,_ZThn20_N7ee651203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65120[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65120[0]),
+ (VTBL_ENTRY)&_ZN7ee651203barEv,
+ (VTBL_ENTRY)&_ZN7ee651203fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65120[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee65120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee651203fooEv,_ZTv0_n12_N7ee651203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee65120[];
+extern void _ZN6dd51203barEv();
+static VTBL_ENTRY _tg__ZTV6dd5120__7ee65120[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5120[0]),
+ (VTBL_ENTRY)&_ZN6dd51203barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc120__6dd5120__7ee65120[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__6dd5120__7ee65120[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc120__7ee65120[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc120__7ee65120[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee65120[] = {
+ {&(_ZTV7ee65120[4]), 4,13},
+ {&(_tg__ZTV6dd5120__7ee65120[4]), 4,5},
+ {&(_tg__ZTV5cc120__6dd5120__7ee65120[3]), 3,3},
+ {&(_tg__ZTV4bb20__6dd5120__7ee65120[3]), 3,4},
+ {&(_ZTV7ee65120[9]), 9,13},
+ {&(_ZTV7ee65120[12]), 12,13},
+ {&(_tg__ZTV5cc120__7ee65120[3]), 3,3},
+ {&(_tg__ZTV4bb20__5cc120__7ee65120[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee65120[];
+extern VTBL_ENTRY _ZTV7ee65120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65120[];
+static VTBL_ENTRY alt_thunk_names72[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee651203fooEv,_ZTv0_n12_N7ee651203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee651203fooEv,_ZThn20_N7ee651203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65120 = { "ee65120", // class name
+ bases_ee65120, 4,
+ &(vtc_ee65120[0]), // expected_vtbl_contents
+ &(vtt_ee65120[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee65120),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65120),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65120),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names72,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee75120 : virtual dd5120 {
+ int e;
+ virtual void foo(); // _ZN7ee751203fooEv
+ virtual void bar(); // _ZN7ee751203barEv
+ ~ee75120(); // tgen
+ ee75120(); // tgen
+};
+//SIG(1 ee75120) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v1 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75120 ::foo(){vfunc_called(this, "_ZN7ee751203fooEv");}
+void ee75120 ::bar(){vfunc_called(this, "_ZN7ee751203barEv");}
+ee75120 ::~ee75120(){ note_dtor("ee75120", this);} // tgen
+ee75120 ::ee75120(){ note_ctor("ee75120", this);} // tgen
+
+static void Test_ee75120()
+{
+ extern Class_Descriptor cd_ee75120;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee75120, buf);
+ ee75120 *dp, &lv = *(dp=new (buf) ee75120());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee75120)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75120)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(56,28), "ee75120");
+ check_base_class_offset(lv, (bb20*)(cc120*), ABISELECT(48,24), "ee75120");
+ check_base_class_offset(lv, (cc120*)(dd5120*), ABISELECT(32,16), "ee75120");
+ check_base_class_offset(lv, (dd5120*), ABISELECT(16,8), "ee75120");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75120.e");
+ test_class_info(&lv, &cd_ee75120);
+ dp->~ee75120();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75120(Test_ee75120, "ee75120", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee75120C1Ev();
+extern void _ZN7ee75120D1Ev();
+Name_Map name_map_ee75120[] = {
+ NSPAIR(_ZN7ee75120C1Ev),
+ NSPAIR(_ZN7ee75120D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc120;
+extern VTBL_ENTRY _ZTI5cc120[];
+extern VTBL_ENTRY _ZTV5cc120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc120[];
+extern Class_Descriptor cd_dd5120;
+extern VTBL_ENTRY _ZTI6dd5120[];
+extern VTBL_ENTRY _ZTV6dd5120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5120[];
+static Base_Class bases_ee75120[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(56,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(48,24), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc120, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5120, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee75120[];
+extern void _ZN7ee751203fooEv();
+extern void _ZN7ee751203barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee751203barEv,_ZTv0_n20_N7ee751203barEv)();
+extern void ABISELECT(_ZThn16_N7ee751203barEv,_ZThn8_N7ee751203barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee751203fooEv,_ZTv0_n12_N7ee751203fooEv)();
+extern void ABISELECT(_ZThn48_N7ee751203fooEv,_ZThn24_N7ee751203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75120[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75120[0]),
+ (VTBL_ENTRY)&_ZN7ee751203fooEv,
+ (VTBL_ENTRY)&_ZN7ee751203barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee751203barEv,_ZTv0_n20_N7ee751203barEv),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75120[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee75120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee751203fooEv,_ZTv0_n12_N7ee751203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee75120[];
+extern void _ZN6dd51203barEv();
+static VTBL_ENTRY _tg__ZTV6dd5120__7ee75120[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5120[0]),
+ (VTBL_ENTRY)&_ZN6dd51203barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc120__6dd5120__7ee75120[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__6dd5120__7ee75120[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc120__7ee75120[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc120__7ee75120[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee75120[] = {
+ {&(_ZTV7ee75120[5]), 5,20},
+ {&(_ZTV7ee75120[12]), 12,20},
+ {&(_ZTV7ee75120[16]), 16,20},
+ {&(_ZTV7ee75120[19]), 19,20},
+ {&(_tg__ZTV6dd5120__7ee75120[4]), 4,5},
+ {&(_tg__ZTV5cc120__6dd5120__7ee75120[3]), 3,3},
+ {&(_tg__ZTV4bb20__6dd5120__7ee75120[3]), 3,4},
+ {&(_tg__ZTV5cc120__7ee75120[3]), 3,3},
+ {&(_tg__ZTV4bb20__5cc120__7ee75120[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee75120[];
+extern VTBL_ENTRY _ZTV7ee75120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75120[];
+static VTBL_ENTRY alt_thunk_names73[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee751203fooEv,_ZTv0_n12_N7ee751203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee751203fooEv,_ZThn24_N7ee751203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee751203barEv,_ZTv0_n20_N7ee751203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee751203barEv,_ZThn8_N7ee751203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75120 = { "ee75120", // class name
+ bases_ee75120, 4,
+ &(vtc_ee75120[0]), // expected_vtbl_contents
+ &(vtt_ee75120[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee75120),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75120),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75120),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names73,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd6120 : cc120 {
+ int d;
+ virtual void bar(); // _ZN6dd61203barEv
+ virtual void foo(); // _ZN6dd61203fooEv
+ ~dd6120(); // tgen
+ dd6120(); // tgen
+};
+//SIG(-1 dd6120) C1{ BC2{ VBC3{ BC4{ Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void dd6120 ::bar(){vfunc_called(this, "_ZN6dd61203barEv");}
+void dd6120 ::foo(){vfunc_called(this, "_ZN6dd61203fooEv");}
+dd6120 ::~dd6120(){ note_dtor("dd6120", this);} // tgen
+dd6120 ::dd6120(){ note_ctor("dd6120", this);} // tgen
+
+static void Test_dd6120()
+{
+ extern Class_Descriptor cd_dd6120;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd6120, buf);
+ dd6120 *dp, &lv = *(dp=new (buf) dd6120());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd6120)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6120)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(24,16), "dd6120");
+ check_base_class_offset(lv, (bb20*)(cc120*), ABISELECT(16,12), "dd6120");
+ check_base_class_offset(lv, (cc120*), 0, "dd6120");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd6120.d");
+ test_class_info(&lv, &cd_dd6120);
+ dp->~dd6120();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6120(Test_dd6120, "dd6120", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd6120C1Ev();
+extern void _ZN6dd6120D1Ev();
+Name_Map name_map_dd6120[] = {
+ NSPAIR(_ZN6dd6120C1Ev),
+ NSPAIR(_ZN6dd6120D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc120;
+extern VTBL_ENTRY _ZTI5cc120[];
+extern VTBL_ENTRY _ZTV5cc120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc120[];
+static Base_Class bases_dd6120[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc120, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd6120[];
+extern void _ZN6dd61203barEv();
+extern void _ZN6dd61203fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd61203fooEv,_ZTv0_n12_N6dd61203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd61203fooEv,_ZThn12_N6dd61203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd6120[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6120[0]),
+ (VTBL_ENTRY)&_ZN6dd61203barEv,
+ (VTBL_ENTRY)&_ZN6dd61203fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61203fooEv,_ZTv0_n12_N6dd61203fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd6120[];
+static VTBL_ENTRY _tg__ZTV5cc120__6dd6120[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc120__6dd6120[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_dd6120[] = {
+ {&(_ZTV6dd6120[3]), 3,9},
+ {&(_tg__ZTV5cc120__6dd6120[3]), 3,3},
+ {&(_tg__ZTV4bb20__5cc120__6dd6120[3]), 3,4},
+ {&(_ZTV6dd6120[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI6dd6120[];
+extern VTBL_ENTRY _ZTV6dd6120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6120[];
+static VTBL_ENTRY alt_thunk_names74[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61203fooEv,_ZTv0_n12_N6dd61203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61203fooEv,_ZThn12_N6dd61203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd6120 = { "dd6120", // class name
+ bases_dd6120, 3,
+ &(vtc_dd6120[0]), // expected_vtbl_contents
+ &(vtt_dd6120[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd6120),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6120),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd6120),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names74,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee06120 : dd6120 {
+ int e;
+ ~ee06120(); // tgen
+ ee06120(); // tgen
+};
+//SIG(1 ee06120) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v2 Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee06120 ::~ee06120(){ note_dtor("ee06120", this);} // tgen
+ee06120 ::ee06120(){ note_ctor("ee06120", this);} // tgen
+
+static void Test_ee06120()
+{
+ extern Class_Descriptor cd_ee06120;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee06120, buf);
+ ee06120 *dp, &lv = *(dp=new (buf) ee06120());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee06120)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06120)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(32,20), "ee06120");
+ check_base_class_offset(lv, (bb20*)(cc120*)(dd6120*), ABISELECT(24,16), "ee06120");
+ check_base_class_offset(lv, (cc120*)(dd6120*), 0, "ee06120");
+ check_base_class_offset(lv, (dd6120*), 0, "ee06120");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee06120.e");
+ test_class_info(&lv, &cd_ee06120);
+ dp->~ee06120();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06120(Test_ee06120, "ee06120", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee06120C1Ev();
+extern void _ZN7ee06120D1Ev();
+Name_Map name_map_ee06120[] = {
+ NSPAIR(_ZN7ee06120C1Ev),
+ NSPAIR(_ZN7ee06120D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc120;
+extern VTBL_ENTRY _ZTI5cc120[];
+extern VTBL_ENTRY _ZTV5cc120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc120[];
+extern Class_Descriptor cd_dd6120;
+extern VTBL_ENTRY _ZTI6dd6120[];
+extern VTBL_ENTRY _ZTV6dd6120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6120[];
+static Base_Class bases_ee06120[] = {
+ // 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_bb20, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc120, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6120, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee06120[];
+extern void _ZN6dd61203barEv();
+extern void _ZN6dd61203fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd61203fooEv,_ZTv0_n12_N6dd61203fooEv)();
+extern void ABISELECT(_ZThn24_N6dd61203fooEv,_ZThn16_N6dd61203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee06120[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06120[0]),
+ (VTBL_ENTRY)&_ZN6dd61203barEv,
+ (VTBL_ENTRY)&_ZN6dd61203fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee06120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61203fooEv,_ZTv0_n12_N6dd61203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee06120[];
+extern void _ZN6dd61203barEv();
+extern void _ZN6dd61203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6120__7ee06120[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6120[0]),
+ (VTBL_ENTRY)&_ZN6dd61203barEv,
+ (VTBL_ENTRY)&_ZN6dd61203fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1206dd6120__7ee06120[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc1206dd6120__7ee06120[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd61203fooEv,_ZTv0_n12_N6dd61203fooEv)();
+extern void ABISELECT(_ZThn24_N6dd61203fooEv,_ZThn16_N6dd61203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd6120__7ee06120[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61203fooEv,_ZTv0_n12_N6dd61203fooEv),
+};
+static VTT_ENTRY vtt_ee06120[] = {
+ {&(_ZTV7ee06120[3]), 3,9},
+ {&(_tg__ZTV6dd6120__7ee06120[3]), 3,5},
+ {&(_tg__ZTV5cc1206dd6120__7ee06120[3]), 3,3},
+ {&(_tg__ZTV4bb20__5cc1206dd6120__7ee06120[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd6120__7ee06120[3]), 3,4},
+ {&(_ZTV7ee06120[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee06120[];
+extern VTBL_ENTRY _ZTV7ee06120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee06120[];
+static VTBL_ENTRY alt_thunk_names75[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61203fooEv,_ZTv0_n12_N6dd61203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61203fooEv,_ZThn16_N6dd61203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61203fooEv,_ZThn16_N6dd61203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee06120 = { "ee06120", // class name
+ bases_ee06120, 4,
+ &(vtc_ee06120[0]), // expected_vtbl_contents
+ &(vtt_ee06120[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee06120),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06120),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee06120),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names75,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee16120 : virtual dd6120 {
+ int e;
+ ~ee16120(); // tgen
+ ee16120(); // tgen
+};
+//SIG(1 ee16120) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v2 Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee16120 ::~ee16120(){ note_dtor("ee16120", this);} // tgen
+ee16120 ::ee16120(){ note_ctor("ee16120", this);} // tgen
+
+static void Test_ee16120()
+{
+ extern Class_Descriptor cd_ee16120;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee16120, buf);
+ ee16120 *dp, &lv = *(dp=new (buf) ee16120());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee16120)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16120)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee16120");
+ check_base_class_offset(lv, (bb20*)(cc120*)(dd6120*), ABISELECT(32,20), "ee16120");
+ check_base_class_offset(lv, (cc120*)(dd6120*), ABISELECT(16,8), "ee16120");
+ check_base_class_offset(lv, (dd6120*), ABISELECT(16,8), "ee16120");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16120.e");
+ test_class_info(&lv, &cd_ee16120);
+ dp->~ee16120();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16120(Test_ee16120, "ee16120", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee16120C1Ev();
+extern void _ZN7ee16120D1Ev();
+Name_Map name_map_ee16120[] = {
+ NSPAIR(_ZN7ee16120C1Ev),
+ NSPAIR(_ZN7ee16120D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc120;
+extern VTBL_ENTRY _ZTI5cc120[];
+extern VTBL_ENTRY _ZTV5cc120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc120[];
+extern Class_Descriptor cd_dd6120;
+extern VTBL_ENTRY _ZTI6dd6120[];
+extern VTBL_ENTRY _ZTV6dd6120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6120[];
+static Base_Class bases_ee16120[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc120, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6120, 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 _ZTI7ee16120[];
+extern void _ZN6dd61203barEv();
+extern void _ZN6dd61203fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd61203fooEv,_ZTv0_n12_N6dd61203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd61203fooEv,_ZThn12_N6dd61203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee16120[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16120[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16120[0]),
+ (VTBL_ENTRY)&_ZN6dd61203barEv,
+ (VTBL_ENTRY)&_ZN6dd61203fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee16120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61203fooEv,_ZTv0_n12_N6dd61203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee16120[];
+extern void _ZN6dd61203barEv();
+extern void _ZN6dd61203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6120__7ee16120[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6120[0]),
+ (VTBL_ENTRY)&_ZN6dd61203barEv,
+ (VTBL_ENTRY)&_ZN6dd61203fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1206dd6120__7ee16120[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc1206dd6120__7ee16120[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd61203fooEv,_ZTv0_n12_N6dd61203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd61203fooEv,_ZThn12_N6dd61203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd6120__7ee16120[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61203fooEv,_ZTv0_n12_N6dd61203fooEv),
+};
+static VTT_ENTRY vtt_ee16120[] = {
+ {&(_ZTV7ee16120[4]), 4,15},
+ {&(_ZTV7ee16120[9]), 9,15},
+ {&(_ZTV7ee16120[14]), 14,15},
+ {&(_tg__ZTV6dd6120__7ee16120[3]), 3,5},
+ {&(_tg__ZTV5cc1206dd6120__7ee16120[3]), 3,3},
+ {&(_tg__ZTV4bb20__5cc1206dd6120__7ee16120[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd6120__7ee16120[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee16120[];
+extern VTBL_ENTRY _ZTV7ee16120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16120[];
+static VTBL_ENTRY alt_thunk_names76[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61203fooEv,_ZTv0_n12_N6dd61203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61203fooEv,_ZThn12_N6dd61203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61203fooEv,_ZThn12_N6dd61203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee16120 = { "ee16120", // class name
+ bases_ee16120, 4,
+ &(vtc_ee16120[0]), // expected_vtbl_contents
+ &(vtt_ee16120[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee16120),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16120),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16120),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names76,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee26120 : dd6120 {
+ int e;
+ virtual void foo(); // _ZN7ee261203fooEv
+ ~ee26120(); // tgen
+ ee26120(); // tgen
+};
+//SIG(1 ee26120) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v1 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26120 ::foo(){vfunc_called(this, "_ZN7ee261203fooEv");}
+ee26120 ::~ee26120(){ note_dtor("ee26120", this);} // tgen
+ee26120 ::ee26120(){ note_ctor("ee26120", this);} // tgen
+
+static void Test_ee26120()
+{
+ extern Class_Descriptor cd_ee26120;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee26120, buf);
+ ee26120 *dp, &lv = *(dp=new (buf) ee26120());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee26120)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26120)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(32,20), "ee26120");
+ check_base_class_offset(lv, (bb20*)(cc120*)(dd6120*), ABISELECT(24,16), "ee26120");
+ check_base_class_offset(lv, (cc120*)(dd6120*), 0, "ee26120");
+ check_base_class_offset(lv, (dd6120*), 0, "ee26120");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee26120.e");
+ test_class_info(&lv, &cd_ee26120);
+ dp->~ee26120();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26120(Test_ee26120, "ee26120", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee26120C1Ev();
+extern void _ZN7ee26120D1Ev();
+Name_Map name_map_ee26120[] = {
+ NSPAIR(_ZN7ee26120C1Ev),
+ NSPAIR(_ZN7ee26120D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc120;
+extern VTBL_ENTRY _ZTI5cc120[];
+extern VTBL_ENTRY _ZTV5cc120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc120[];
+extern Class_Descriptor cd_dd6120;
+extern VTBL_ENTRY _ZTI6dd6120[];
+extern VTBL_ENTRY _ZTV6dd6120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6120[];
+static Base_Class bases_ee26120[] = {
+ // 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_bb20, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc120, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6120, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee26120[];
+extern void _ZN6dd61203barEv();
+extern void _ZN7ee261203fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee261203fooEv,_ZTv0_n12_N7ee261203fooEv)();
+extern void ABISELECT(_ZThn24_N7ee261203fooEv,_ZThn16_N7ee261203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee26120[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26120[0]),
+ (VTBL_ENTRY)&_ZN6dd61203barEv,
+ (VTBL_ENTRY)&_ZN7ee261203fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee26120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee261203fooEv,_ZTv0_n12_N7ee261203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee26120[];
+extern void _ZN6dd61203barEv();
+extern void _ZN6dd61203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6120__7ee26120[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6120[0]),
+ (VTBL_ENTRY)&_ZN6dd61203barEv,
+ (VTBL_ENTRY)&_ZN6dd61203fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1206dd6120__7ee26120[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc1206dd6120__7ee26120[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd61203fooEv,_ZTv0_n12_N6dd61203fooEv)();
+extern void ABISELECT(_ZThn24_N6dd61203fooEv,_ZThn16_N6dd61203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd6120__7ee26120[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61203fooEv,_ZTv0_n12_N6dd61203fooEv),
+};
+static VTT_ENTRY vtt_ee26120[] = {
+ {&(_ZTV7ee26120[3]), 3,9},
+ {&(_tg__ZTV6dd6120__7ee26120[3]), 3,5},
+ {&(_tg__ZTV5cc1206dd6120__7ee26120[3]), 3,3},
+ {&(_tg__ZTV4bb20__5cc1206dd6120__7ee26120[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd6120__7ee26120[3]), 3,4},
+ {&(_ZTV7ee26120[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee26120[];
+extern VTBL_ENTRY _ZTV7ee26120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee26120[];
+static VTBL_ENTRY alt_thunk_names77[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61203fooEv,_ZTv0_n12_N6dd61203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61203fooEv,_ZThn16_N6dd61203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee261203fooEv,_ZTv0_n12_N7ee261203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee261203fooEv,_ZThn16_N7ee261203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee26120 = { "ee26120", // class name
+ bases_ee26120, 4,
+ &(vtc_ee26120[0]), // expected_vtbl_contents
+ &(vtt_ee26120[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee26120),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26120),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee26120),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names77,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee36120 : virtual dd6120 {
+ int e;
+ virtual void foo(); // _ZN7ee361203fooEv
+ ~ee36120(); // tgen
+ ee36120(); // tgen
+};
+//SIG(1 ee36120) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v1 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36120 ::foo(){vfunc_called(this, "_ZN7ee361203fooEv");}
+ee36120 ::~ee36120(){ note_dtor("ee36120", this);} // tgen
+ee36120 ::ee36120(){ note_ctor("ee36120", this);} // tgen
+
+static void Test_ee36120()
+{
+ extern Class_Descriptor cd_ee36120;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee36120, buf);
+ ee36120 *dp, &lv = *(dp=new (buf) ee36120());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee36120)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36120)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee36120");
+ check_base_class_offset(lv, (bb20*)(cc120*)(dd6120*), ABISELECT(32,20), "ee36120");
+ check_base_class_offset(lv, (cc120*)(dd6120*), ABISELECT(16,8), "ee36120");
+ check_base_class_offset(lv, (dd6120*), ABISELECT(16,8), "ee36120");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36120.e");
+ test_class_info(&lv, &cd_ee36120);
+ dp->~ee36120();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36120(Test_ee36120, "ee36120", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee36120C1Ev();
+extern void _ZN7ee36120D1Ev();
+Name_Map name_map_ee36120[] = {
+ NSPAIR(_ZN7ee36120C1Ev),
+ NSPAIR(_ZN7ee36120D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc120;
+extern VTBL_ENTRY _ZTI5cc120[];
+extern VTBL_ENTRY _ZTV5cc120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc120[];
+extern Class_Descriptor cd_dd6120;
+extern VTBL_ENTRY _ZTI6dd6120[];
+extern VTBL_ENTRY _ZTV6dd6120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6120[];
+static Base_Class bases_ee36120[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc120, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6120, 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 _ZTI7ee36120[];
+extern void _ZN7ee361203fooEv();
+extern void _ZN6dd61203barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee361203fooEv,_ZTv0_n20_N7ee361203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee361203fooEv,_ZThn8_N7ee361203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee361203fooEv,_ZTv0_n12_N7ee361203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee361203fooEv,_ZThn20_N7ee361203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee36120[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36120[0]),
+ (VTBL_ENTRY)&_ZN7ee361203fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36120[0]),
+ (VTBL_ENTRY)&_ZN6dd61203barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee361203fooEv,_ZTv0_n20_N7ee361203fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee36120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee361203fooEv,_ZTv0_n12_N7ee361203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee36120[];
+extern void _ZN6dd61203barEv();
+extern void _ZN6dd61203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6120__7ee36120[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6120[0]),
+ (VTBL_ENTRY)&_ZN6dd61203barEv,
+ (VTBL_ENTRY)&_ZN6dd61203fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1206dd6120__7ee36120[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc1206dd6120__7ee36120[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd61203fooEv,_ZTv0_n12_N6dd61203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd61203fooEv,_ZThn12_N6dd61203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd6120__7ee36120[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61203fooEv,_ZTv0_n12_N6dd61203fooEv),
+};
+static VTT_ENTRY vtt_ee36120[] = {
+ {&(_ZTV7ee36120[4]), 4,16},
+ {&(_ZTV7ee36120[10]), 10,16},
+ {&(_ZTV7ee36120[15]), 15,16},
+ {&(_tg__ZTV6dd6120__7ee36120[3]), 3,5},
+ {&(_tg__ZTV5cc1206dd6120__7ee36120[3]), 3,3},
+ {&(_tg__ZTV4bb20__5cc1206dd6120__7ee36120[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd6120__7ee36120[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee36120[];
+extern VTBL_ENTRY _ZTV7ee36120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36120[];
+static VTBL_ENTRY alt_thunk_names78[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61203fooEv,_ZTv0_n12_N6dd61203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61203fooEv,_ZThn12_N6dd61203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee361203fooEv,_ZTv0_n12_N7ee361203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee361203fooEv,_ZThn20_N7ee361203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee361203fooEv,_ZTv0_n20_N7ee361203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee361203fooEv,_ZThn8_N7ee361203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36120 = { "ee36120", // class name
+ bases_ee36120, 4,
+ &(vtc_ee36120[0]), // expected_vtbl_contents
+ &(vtt_ee36120[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee36120),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36120),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36120),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names78,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee46120 : dd6120 {
+ int e;
+ virtual void bar(); // _ZN7ee461203barEv
+ ~ee46120(); // tgen
+ ee46120(); // tgen
+};
+//SIG(1 ee46120) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v2 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46120 ::bar(){vfunc_called(this, "_ZN7ee461203barEv");}
+ee46120 ::~ee46120(){ note_dtor("ee46120", this);} // tgen
+ee46120 ::ee46120(){ note_ctor("ee46120", this);} // tgen
+
+static void Test_ee46120()
+{
+ extern Class_Descriptor cd_ee46120;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee46120, buf);
+ ee46120 *dp, &lv = *(dp=new (buf) ee46120());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee46120)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46120)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(32,20), "ee46120");
+ check_base_class_offset(lv, (bb20*)(cc120*)(dd6120*), ABISELECT(24,16), "ee46120");
+ check_base_class_offset(lv, (cc120*)(dd6120*), 0, "ee46120");
+ check_base_class_offset(lv, (dd6120*), 0, "ee46120");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee46120.e");
+ test_class_info(&lv, &cd_ee46120);
+ dp->~ee46120();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46120(Test_ee46120, "ee46120", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee46120C1Ev();
+extern void _ZN7ee46120D1Ev();
+Name_Map name_map_ee46120[] = {
+ NSPAIR(_ZN7ee46120C1Ev),
+ NSPAIR(_ZN7ee46120D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc120;
+extern VTBL_ENTRY _ZTI5cc120[];
+extern VTBL_ENTRY _ZTV5cc120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc120[];
+extern Class_Descriptor cd_dd6120;
+extern VTBL_ENTRY _ZTI6dd6120[];
+extern VTBL_ENTRY _ZTV6dd6120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6120[];
+static Base_Class bases_ee46120[] = {
+ // 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_bb20, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc120, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6120, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee46120[];
+extern void _ZN7ee461203barEv();
+extern void _ZN6dd61203fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd61203fooEv,_ZTv0_n12_N6dd61203fooEv)();
+extern void ABISELECT(_ZThn24_N6dd61203fooEv,_ZThn16_N6dd61203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee46120[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46120[0]),
+ (VTBL_ENTRY)&_ZN7ee461203barEv,
+ (VTBL_ENTRY)&_ZN6dd61203fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee46120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61203fooEv,_ZTv0_n12_N6dd61203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee46120[];
+extern void _ZN6dd61203barEv();
+extern void _ZN6dd61203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6120__7ee46120[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6120[0]),
+ (VTBL_ENTRY)&_ZN6dd61203barEv,
+ (VTBL_ENTRY)&_ZN6dd61203fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1206dd6120__7ee46120[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc1206dd6120__7ee46120[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd61203fooEv,_ZTv0_n12_N6dd61203fooEv)();
+extern void ABISELECT(_ZThn24_N6dd61203fooEv,_ZThn16_N6dd61203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd6120__7ee46120[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61203fooEv,_ZTv0_n12_N6dd61203fooEv),
+};
+static VTT_ENTRY vtt_ee46120[] = {
+ {&(_ZTV7ee46120[3]), 3,9},
+ {&(_tg__ZTV6dd6120__7ee46120[3]), 3,5},
+ {&(_tg__ZTV5cc1206dd6120__7ee46120[3]), 3,3},
+ {&(_tg__ZTV4bb20__5cc1206dd6120__7ee46120[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd6120__7ee46120[3]), 3,4},
+ {&(_ZTV7ee46120[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee46120[];
+extern VTBL_ENTRY _ZTV7ee46120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee46120[];
+static VTBL_ENTRY alt_thunk_names79[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61203fooEv,_ZTv0_n12_N6dd61203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61203fooEv,_ZThn16_N6dd61203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61203fooEv,_ZThn16_N6dd61203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee46120 = { "ee46120", // class name
+ bases_ee46120, 4,
+ &(vtc_ee46120[0]), // expected_vtbl_contents
+ &(vtt_ee46120[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee46120),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46120),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee46120),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names79,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee56120 : virtual dd6120 {
+ int e;
+ virtual void bar(); // _ZN7ee561203barEv
+ ~ee56120(); // tgen
+ ee56120(); // tgen
+};
+//SIG(1 ee56120) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v2 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56120 ::bar(){vfunc_called(this, "_ZN7ee561203barEv");}
+ee56120 ::~ee56120(){ note_dtor("ee56120", this);} // tgen
+ee56120 ::ee56120(){ note_ctor("ee56120", this);} // tgen
+
+static void Test_ee56120()
+{
+ extern Class_Descriptor cd_ee56120;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee56120, buf);
+ ee56120 *dp, &lv = *(dp=new (buf) ee56120());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee56120)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56120)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee56120");
+ check_base_class_offset(lv, (bb20*)(cc120*)(dd6120*), ABISELECT(32,20), "ee56120");
+ check_base_class_offset(lv, (cc120*)(dd6120*), ABISELECT(16,8), "ee56120");
+ check_base_class_offset(lv, (dd6120*), ABISELECT(16,8), "ee56120");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56120.e");
+ test_class_info(&lv, &cd_ee56120);
+ dp->~ee56120();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56120(Test_ee56120, "ee56120", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee56120C1Ev();
+extern void _ZN7ee56120D1Ev();
+Name_Map name_map_ee56120[] = {
+ NSPAIR(_ZN7ee56120C1Ev),
+ NSPAIR(_ZN7ee56120D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc120;
+extern VTBL_ENTRY _ZTI5cc120[];
+extern VTBL_ENTRY _ZTV5cc120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc120[];
+extern Class_Descriptor cd_dd6120;
+extern VTBL_ENTRY _ZTI6dd6120[];
+extern VTBL_ENTRY _ZTV6dd6120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6120[];
+static Base_Class bases_ee56120[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc120, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6120, 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 _ZTI7ee56120[];
+extern void _ZN7ee561203barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee561203barEv,_ZTv0_n16_N7ee561203barEv)();
+extern void ABISELECT(_ZThn16_N7ee561203barEv,_ZThn8_N7ee561203barEv)() __attribute__((weak));
+extern void _ZN6dd61203fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd61203fooEv,_ZTv0_n12_N6dd61203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd61203fooEv,_ZThn12_N6dd61203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56120[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56120[0]),
+ (VTBL_ENTRY)&_ZN7ee561203barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee561203barEv,_ZTv0_n16_N7ee561203barEv),
+ (VTBL_ENTRY)&_ZN6dd61203fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee56120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61203fooEv,_ZTv0_n12_N6dd61203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee56120[];
+extern void _ZN6dd61203barEv();
+extern void _ZN6dd61203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6120__7ee56120[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6120[0]),
+ (VTBL_ENTRY)&_ZN6dd61203barEv,
+ (VTBL_ENTRY)&_ZN6dd61203fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1206dd6120__7ee56120[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc1206dd6120__7ee56120[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd61203fooEv,_ZTv0_n12_N6dd61203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd61203fooEv,_ZThn12_N6dd61203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd6120__7ee56120[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61203fooEv,_ZTv0_n12_N6dd61203fooEv),
+};
+static VTT_ENTRY vtt_ee56120[] = {
+ {&(_ZTV7ee56120[4]), 4,16},
+ {&(_ZTV7ee56120[10]), 10,16},
+ {&(_ZTV7ee56120[15]), 15,16},
+ {&(_tg__ZTV6dd6120__7ee56120[3]), 3,5},
+ {&(_tg__ZTV5cc1206dd6120__7ee56120[3]), 3,3},
+ {&(_tg__ZTV4bb20__5cc1206dd6120__7ee56120[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd6120__7ee56120[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee56120[];
+extern VTBL_ENTRY _ZTV7ee56120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56120[];
+static VTBL_ENTRY alt_thunk_names80[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61203fooEv,_ZTv0_n12_N6dd61203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61203fooEv,_ZThn12_N6dd61203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61203fooEv,_ZThn12_N6dd61203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee561203barEv,_ZTv0_n16_N7ee561203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee561203barEv,_ZThn8_N7ee561203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56120 = { "ee56120", // class name
+ bases_ee56120, 4,
+ &(vtc_ee56120[0]), // expected_vtbl_contents
+ &(vtt_ee56120[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee56120),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56120),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56120),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names80,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee66120 : dd6120 {
+ int e;
+ virtual void foo(); // _ZN7ee661203fooEv
+ virtual void bar(); // _ZN7ee661203barEv
+ ~ee66120(); // tgen
+ ee66120(); // tgen
+};
+//SIG(1 ee66120) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v1 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66120 ::foo(){vfunc_called(this, "_ZN7ee661203fooEv");}
+void ee66120 ::bar(){vfunc_called(this, "_ZN7ee661203barEv");}
+ee66120 ::~ee66120(){ note_dtor("ee66120", this);} // tgen
+ee66120 ::ee66120(){ note_ctor("ee66120", this);} // tgen
+
+static void Test_ee66120()
+{
+ extern Class_Descriptor cd_ee66120;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee66120, buf);
+ ee66120 *dp, &lv = *(dp=new (buf) ee66120());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee66120)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66120)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(32,20), "ee66120");
+ check_base_class_offset(lv, (bb20*)(cc120*)(dd6120*), ABISELECT(24,16), "ee66120");
+ check_base_class_offset(lv, (cc120*)(dd6120*), 0, "ee66120");
+ check_base_class_offset(lv, (dd6120*), 0, "ee66120");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee66120.e");
+ test_class_info(&lv, &cd_ee66120);
+ dp->~ee66120();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66120(Test_ee66120, "ee66120", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee66120C1Ev();
+extern void _ZN7ee66120D1Ev();
+Name_Map name_map_ee66120[] = {
+ NSPAIR(_ZN7ee66120C1Ev),
+ NSPAIR(_ZN7ee66120D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc120;
+extern VTBL_ENTRY _ZTI5cc120[];
+extern VTBL_ENTRY _ZTV5cc120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc120[];
+extern Class_Descriptor cd_dd6120;
+extern VTBL_ENTRY _ZTI6dd6120[];
+extern VTBL_ENTRY _ZTV6dd6120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6120[];
+static Base_Class bases_ee66120[] = {
+ // 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_bb20, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc120, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6120, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee66120[];
+extern void _ZN7ee661203barEv();
+extern void _ZN7ee661203fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee661203fooEv,_ZTv0_n12_N7ee661203fooEv)();
+extern void ABISELECT(_ZThn24_N7ee661203fooEv,_ZThn16_N7ee661203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee66120[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66120[0]),
+ (VTBL_ENTRY)&_ZN7ee661203barEv,
+ (VTBL_ENTRY)&_ZN7ee661203fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee66120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee661203fooEv,_ZTv0_n12_N7ee661203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee66120[];
+extern void _ZN6dd61203barEv();
+extern void _ZN6dd61203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6120__7ee66120[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6120[0]),
+ (VTBL_ENTRY)&_ZN6dd61203barEv,
+ (VTBL_ENTRY)&_ZN6dd61203fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1206dd6120__7ee66120[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc1206dd6120__7ee66120[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd61203fooEv,_ZTv0_n12_N6dd61203fooEv)();
+extern void ABISELECT(_ZThn24_N6dd61203fooEv,_ZThn16_N6dd61203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd6120__7ee66120[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61203fooEv,_ZTv0_n12_N6dd61203fooEv),
+};
+static VTT_ENTRY vtt_ee66120[] = {
+ {&(_ZTV7ee66120[3]), 3,9},
+ {&(_tg__ZTV6dd6120__7ee66120[3]), 3,5},
+ {&(_tg__ZTV5cc1206dd6120__7ee66120[3]), 3,3},
+ {&(_tg__ZTV4bb20__5cc1206dd6120__7ee66120[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd6120__7ee66120[3]), 3,4},
+ {&(_ZTV7ee66120[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee66120[];
+extern VTBL_ENTRY _ZTV7ee66120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee66120[];
+static VTBL_ENTRY alt_thunk_names81[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61203fooEv,_ZTv0_n12_N6dd61203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61203fooEv,_ZThn16_N6dd61203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee661203fooEv,_ZTv0_n12_N7ee661203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee661203fooEv,_ZThn16_N7ee661203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee66120 = { "ee66120", // class name
+ bases_ee66120, 4,
+ &(vtc_ee66120[0]), // expected_vtbl_contents
+ &(vtt_ee66120[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee66120),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66120),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee66120),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names81,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee76120 : virtual dd6120 {
+ int e;
+ virtual void foo(); // _ZN7ee761203fooEv
+ virtual void bar(); // _ZN7ee761203barEv
+ ~ee76120(); // tgen
+ ee76120(); // tgen
+};
+//SIG(1 ee76120) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v1 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76120 ::foo(){vfunc_called(this, "_ZN7ee761203fooEv");}
+void ee76120 ::bar(){vfunc_called(this, "_ZN7ee761203barEv");}
+ee76120 ::~ee76120(){ note_dtor("ee76120", this);} // tgen
+ee76120 ::ee76120(){ note_ctor("ee76120", this);} // tgen
+
+static void Test_ee76120()
+{
+ extern Class_Descriptor cd_ee76120;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee76120, buf);
+ ee76120 *dp, &lv = *(dp=new (buf) ee76120());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee76120)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76120)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee76120");
+ check_base_class_offset(lv, (bb20*)(cc120*)(dd6120*), ABISELECT(32,20), "ee76120");
+ check_base_class_offset(lv, (cc120*)(dd6120*), ABISELECT(16,8), "ee76120");
+ check_base_class_offset(lv, (dd6120*), ABISELECT(16,8), "ee76120");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76120.e");
+ test_class_info(&lv, &cd_ee76120);
+ dp->~ee76120();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76120(Test_ee76120, "ee76120", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee76120C1Ev();
+extern void _ZN7ee76120D1Ev();
+Name_Map name_map_ee76120[] = {
+ NSPAIR(_ZN7ee76120C1Ev),
+ NSPAIR(_ZN7ee76120D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc120;
+extern VTBL_ENTRY _ZTI5cc120[];
+extern VTBL_ENTRY _ZTV5cc120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc120[];
+extern Class_Descriptor cd_dd6120;
+extern VTBL_ENTRY _ZTI6dd6120[];
+extern VTBL_ENTRY _ZTV6dd6120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6120[];
+static Base_Class bases_ee76120[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc120, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6120, ABISELECT(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 _ZTI7ee76120[];
+extern void _ZN7ee761203fooEv();
+extern void _ZN7ee761203barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee761203barEv,_ZTv0_n16_N7ee761203barEv)();
+extern void ABISELECT(_ZThn16_N7ee761203barEv,_ZThn8_N7ee761203barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee761203fooEv,_ZTv0_n20_N7ee761203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee761203fooEv,_ZThn8_N7ee761203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee761203fooEv,_ZTv0_n12_N7ee761203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee761203fooEv,_ZThn20_N7ee761203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76120[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76120[0]),
+ (VTBL_ENTRY)&_ZN7ee761203fooEv,
+ (VTBL_ENTRY)&_ZN7ee761203barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee761203barEv,_ZTv0_n16_N7ee761203barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee761203fooEv,_ZTv0_n20_N7ee761203fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee76120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee761203fooEv,_ZTv0_n12_N7ee761203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee76120[];
+extern void _ZN6dd61203barEv();
+extern void _ZN6dd61203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6120__7ee76120[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6120[0]),
+ (VTBL_ENTRY)&_ZN6dd61203barEv,
+ (VTBL_ENTRY)&_ZN6dd61203fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1206dd6120__7ee76120[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc1206dd6120__7ee76120[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd61203fooEv,_ZTv0_n12_N6dd61203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd61203fooEv,_ZThn12_N6dd61203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd6120__7ee76120[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61203fooEv,_ZTv0_n12_N6dd61203fooEv),
+};
+static VTT_ENTRY vtt_ee76120[] = {
+ {&(_ZTV7ee76120[4]), 4,17},
+ {&(_ZTV7ee76120[11]), 11,17},
+ {&(_ZTV7ee76120[16]), 16,17},
+ {&(_tg__ZTV6dd6120__7ee76120[3]), 3,5},
+ {&(_tg__ZTV5cc1206dd6120__7ee76120[3]), 3,3},
+ {&(_tg__ZTV4bb20__5cc1206dd6120__7ee76120[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd6120__7ee76120[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee76120[];
+extern VTBL_ENTRY _ZTV7ee76120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76120[];
+static VTBL_ENTRY alt_thunk_names82[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61203fooEv,_ZTv0_n12_N6dd61203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61203fooEv,_ZThn12_N6dd61203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee761203fooEv,_ZTv0_n12_N7ee761203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee761203fooEv,_ZThn20_N7ee761203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee761203fooEv,_ZTv0_n20_N7ee761203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee761203fooEv,_ZThn8_N7ee761203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee761203barEv,_ZTv0_n16_N7ee761203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee761203barEv,_ZThn8_N7ee761203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76120 = { "ee76120", // class name
+ bases_ee76120, 4,
+ &(vtc_ee76120[0]), // expected_vtbl_contents
+ &(vtt_ee76120[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee76120),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76120),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76120),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names82,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd7120 : virtual cc120 {
+ int d;
+ virtual void bar(); // _ZN6dd71203barEv
+ virtual void foo(); // _ZN6dd71203fooEv
+ ~dd7120(); // tgen
+ dd7120(); // tgen
+};
+//SIG(-1 dd7120) C1{ VBC2{ VBC3{ BC4{ Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void dd7120 ::bar(){vfunc_called(this, "_ZN6dd71203barEv");}
+void dd7120 ::foo(){vfunc_called(this, "_ZN6dd71203fooEv");}
+dd7120 ::~dd7120(){ note_dtor("dd7120", this);} // tgen
+dd7120 ::dd7120(){ note_ctor("dd7120", this);} // tgen
+
+static void Test_dd7120()
+{
+ extern Class_Descriptor cd_dd7120;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd7120, buf);
+ dd7120 *dp, &lv = *(dp=new (buf) dd7120());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd7120)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7120)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,20), "dd7120");
+ check_base_class_offset(lv, (bb20*)(cc120*), ABISELECT(32,16), "dd7120");
+ check_base_class_offset(lv, (cc120*), ABISELECT(16,8), "dd7120");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7120.d");
+ test_class_info(&lv, &cd_dd7120);
+ dp->~dd7120();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7120(Test_dd7120, "dd7120", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd7120C1Ev();
+extern void _ZN6dd7120D1Ev();
+Name_Map name_map_dd7120[] = {
+ NSPAIR(_ZN6dd7120C1Ev),
+ NSPAIR(_ZN6dd7120D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc120;
+extern VTBL_ENTRY _ZTI5cc120[];
+extern VTBL_ENTRY _ZTV5cc120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc120[];
+static Base_Class bases_dd7120[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc120, 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 _ZTI6dd7120[];
+extern void _ZN6dd71203barEv();
+extern void _ZN6dd71203fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd71203fooEv,_ZTv0_n12_N6dd71203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71203fooEv,_ZThn16_N6dd71203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7120[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7120[0]),
+ (VTBL_ENTRY)&_ZN6dd71203barEv,
+ (VTBL_ENTRY)&_ZN6dd71203fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7120[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71203fooEv,_ZTv0_n12_N6dd71203fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd7120[];
+static VTBL_ENTRY _tg__ZTV5cc120__6dd7120[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc120__6dd7120[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_dd7120[] = {
+ {&(_ZTV6dd7120[4]), 4,13},
+ {&(_ZTV6dd7120[9]), 9,13},
+ {&(_ZTV6dd7120[12]), 12,13},
+ {&(_tg__ZTV5cc120__6dd7120[3]), 3,3},
+ {&(_tg__ZTV4bb20__5cc120__6dd7120[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd7120[];
+extern VTBL_ENTRY _ZTV6dd7120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7120[];
+static VTBL_ENTRY alt_thunk_names83[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71203fooEv,_ZTv0_n12_N6dd71203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71203fooEv,_ZThn16_N6dd71203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7120 = { "dd7120", // class name
+ bases_dd7120, 3,
+ &(vtc_dd7120[0]), // expected_vtbl_contents
+ &(vtt_dd7120[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd7120),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7120),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7120),5, //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 ee07120 : dd7120 {
+ int e;
+ ~ee07120(); // tgen
+ ee07120(); // tgen
+};
+//SIG(1 ee07120) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v2 Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee07120 ::~ee07120(){ note_dtor("ee07120", this);} // tgen
+ee07120 ::ee07120(){ note_ctor("ee07120", this);} // tgen
+
+static void Test_ee07120()
+{
+ extern Class_Descriptor cd_ee07120;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee07120, buf);
+ ee07120 *dp, &lv = *(dp=new (buf) ee07120());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee07120)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07120)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee07120");
+ check_base_class_offset(lv, (bb20*)(cc120*), ABISELECT(32,20), "ee07120");
+ check_base_class_offset(lv, (cc120*)(dd7120*), ABISELECT(16,12), "ee07120");
+ check_base_class_offset(lv, (dd7120*), 0, "ee07120");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07120.e");
+ test_class_info(&lv, &cd_ee07120);
+ dp->~ee07120();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07120(Test_ee07120, "ee07120", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee07120C1Ev();
+extern void _ZN7ee07120D1Ev();
+Name_Map name_map_ee07120[] = {
+ NSPAIR(_ZN7ee07120C1Ev),
+ NSPAIR(_ZN7ee07120D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc120;
+extern VTBL_ENTRY _ZTI5cc120[];
+extern VTBL_ENTRY _ZTV5cc120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc120[];
+extern Class_Descriptor cd_dd7120;
+extern VTBL_ENTRY _ZTI6dd7120[];
+extern VTBL_ENTRY _ZTV6dd7120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7120[];
+static Base_Class bases_ee07120[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc120, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7120, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07120[];
+extern void _ZN6dd71203barEv();
+extern void _ZN6dd71203fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd71203fooEv,_ZTv0_n12_N6dd71203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71203fooEv,_ZThn20_N6dd71203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07120[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07120[0]),
+ (VTBL_ENTRY)&_ZN6dd71203barEv,
+ (VTBL_ENTRY)&_ZN6dd71203fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07120[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee07120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71203fooEv,_ZTv0_n12_N6dd71203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee07120[];
+extern void _ZN6dd71203barEv();
+extern void _ZN6dd71203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7120__7ee07120[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7120[0]),
+ (VTBL_ENTRY)&_ZN6dd71203barEv,
+ (VTBL_ENTRY)&_ZN6dd71203fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc120__6dd7120__7ee07120[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7120[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd71203fooEv,_ZTv0_n12_N6dd71203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71203fooEv,_ZThn20_N6dd71203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd7120__7ee07120[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71203fooEv,_ZTv0_n12_N6dd71203fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc120__7ee07120[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc120__7ee07120[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee07120[] = {
+ {&(_ZTV7ee07120[4]), 4,13},
+ {&(_tg__ZTV6dd7120__7ee07120[4]), 4,6},
+ {&(_tg__ZTV5cc120__6dd7120__7ee07120[3]), 3,3},
+ {&(_tg__ZTV4bb20__6dd7120__7ee07120[3]), 3,4},
+ {&(_ZTV7ee07120[9]), 9,13},
+ {&(_ZTV7ee07120[12]), 12,13},
+ {&(_tg__ZTV5cc120__7ee07120[3]), 3,3},
+ {&(_tg__ZTV4bb20__5cc120__7ee07120[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee07120[];
+extern VTBL_ENTRY _ZTV7ee07120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07120[];
+static VTBL_ENTRY alt_thunk_names84[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71203fooEv,_ZTv0_n12_N6dd71203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71203fooEv,_ZThn20_N6dd71203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71203fooEv,_ZThn20_N6dd71203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07120 = { "ee07120", // class name
+ bases_ee07120, 4,
+ &(vtc_ee07120[0]), // expected_vtbl_contents
+ &(vtt_ee07120[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee07120),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07120),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07120),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names84,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee17120 : virtual dd7120 {
+ int e;
+ ~ee17120(); // tgen
+ ee17120(); // tgen
+};
+//SIG(1 ee17120) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v2 Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee17120 ::~ee17120(){ note_dtor("ee17120", this);} // tgen
+ee17120 ::ee17120(){ note_ctor("ee17120", this);} // tgen
+
+static void Test_ee17120()
+{
+ extern Class_Descriptor cd_ee17120;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee17120, buf);
+ ee17120 *dp, &lv = *(dp=new (buf) ee17120());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee17120)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17120)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(56,28), "ee17120");
+ check_base_class_offset(lv, (bb20*)(cc120*), ABISELECT(48,24), "ee17120");
+ check_base_class_offset(lv, (cc120*)(dd7120*), ABISELECT(32,16), "ee17120");
+ check_base_class_offset(lv, (dd7120*), ABISELECT(16,8), "ee17120");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17120.e");
+ test_class_info(&lv, &cd_ee17120);
+ dp->~ee17120();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17120(Test_ee17120, "ee17120", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee17120C1Ev();
+extern void _ZN7ee17120D1Ev();
+Name_Map name_map_ee17120[] = {
+ NSPAIR(_ZN7ee17120C1Ev),
+ NSPAIR(_ZN7ee17120D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc120;
+extern VTBL_ENTRY _ZTI5cc120[];
+extern VTBL_ENTRY _ZTV5cc120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc120[];
+extern Class_Descriptor cd_dd7120;
+extern VTBL_ENTRY _ZTI6dd7120[];
+extern VTBL_ENTRY _ZTV6dd7120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7120[];
+static Base_Class bases_ee17120[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(56,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(48,24), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc120, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7120, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee17120[];
+extern void _ZN6dd71203barEv();
+extern void _ZN6dd71203fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd71203fooEv,_ZTv0_n12_N6dd71203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71203fooEv,_ZThn16_N6dd71203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17120[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17120[0]),
+ 0,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17120[0]),
+ (VTBL_ENTRY)&_ZN6dd71203barEv,
+ (VTBL_ENTRY)&_ZN6dd71203fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17120[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee17120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71203fooEv,_ZTv0_n12_N6dd71203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee17120[];
+extern void _ZN6dd71203barEv();
+extern void _ZN6dd71203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7120__7ee17120[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7120[0]),
+ (VTBL_ENTRY)&_ZN6dd71203barEv,
+ (VTBL_ENTRY)&_ZN6dd71203fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc120__6dd7120__7ee17120[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7120[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd71203fooEv,_ZTv0_n12_N6dd71203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71203fooEv,_ZThn16_N6dd71203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd7120__7ee17120[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71203fooEv,_ZTv0_n12_N6dd71203fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc120__7ee17120[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc120__7ee17120[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee17120[] = {
+ {&(_ZTV7ee17120[5]), 5,20},
+ {&(_ZTV7ee17120[11]), 11,20},
+ {&(_ZTV7ee17120[16]), 16,20},
+ {&(_ZTV7ee17120[19]), 19,20},
+ {&(_tg__ZTV6dd7120__7ee17120[4]), 4,6},
+ {&(_tg__ZTV5cc120__6dd7120__7ee17120[3]), 3,3},
+ {&(_tg__ZTV4bb20__6dd7120__7ee17120[3]), 3,4},
+ {&(_tg__ZTV5cc120__7ee17120[3]), 3,3},
+ {&(_tg__ZTV4bb20__5cc120__7ee17120[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee17120[];
+extern VTBL_ENTRY _ZTV7ee17120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17120[];
+static VTBL_ENTRY alt_thunk_names85[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71203fooEv,_ZTv0_n12_N6dd71203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71203fooEv,_ZThn16_N6dd71203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71203fooEv,_ZThn16_N6dd71203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17120 = { "ee17120", // class name
+ bases_ee17120, 4,
+ &(vtc_ee17120[0]), // expected_vtbl_contents
+ &(vtt_ee17120[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee17120),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17120),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17120),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names85,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee27120 : dd7120 {
+ int e;
+ virtual void foo(); // _ZN7ee271203fooEv
+ ~ee27120(); // tgen
+ ee27120(); // tgen
+};
+//SIG(1 ee27120) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v1 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27120 ::foo(){vfunc_called(this, "_ZN7ee271203fooEv");}
+ee27120 ::~ee27120(){ note_dtor("ee27120", this);} // tgen
+ee27120 ::ee27120(){ note_ctor("ee27120", this);} // tgen
+
+static void Test_ee27120()
+{
+ extern Class_Descriptor cd_ee27120;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee27120, buf);
+ ee27120 *dp, &lv = *(dp=new (buf) ee27120());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee27120)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27120)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee27120");
+ check_base_class_offset(lv, (bb20*)(cc120*), ABISELECT(32,20), "ee27120");
+ check_base_class_offset(lv, (cc120*)(dd7120*), ABISELECT(16,12), "ee27120");
+ check_base_class_offset(lv, (dd7120*), 0, "ee27120");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27120.e");
+ test_class_info(&lv, &cd_ee27120);
+ dp->~ee27120();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27120(Test_ee27120, "ee27120", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee27120C1Ev();
+extern void _ZN7ee27120D1Ev();
+Name_Map name_map_ee27120[] = {
+ NSPAIR(_ZN7ee27120C1Ev),
+ NSPAIR(_ZN7ee27120D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc120;
+extern VTBL_ENTRY _ZTI5cc120[];
+extern VTBL_ENTRY _ZTV5cc120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc120[];
+extern Class_Descriptor cd_dd7120;
+extern VTBL_ENTRY _ZTI6dd7120[];
+extern VTBL_ENTRY _ZTV6dd7120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7120[];
+static Base_Class bases_ee27120[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc120, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7120, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27120[];
+extern void _ZN6dd71203barEv();
+extern void _ZN7ee271203fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee271203fooEv,_ZTv0_n12_N7ee271203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee271203fooEv,_ZThn20_N7ee271203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27120[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27120[0]),
+ (VTBL_ENTRY)&_ZN6dd71203barEv,
+ (VTBL_ENTRY)&_ZN7ee271203fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27120[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee27120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee271203fooEv,_ZTv0_n12_N7ee271203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee27120[];
+extern void _ZN6dd71203barEv();
+extern void _ZN6dd71203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7120__7ee27120[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7120[0]),
+ (VTBL_ENTRY)&_ZN6dd71203barEv,
+ (VTBL_ENTRY)&_ZN6dd71203fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc120__6dd7120__7ee27120[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7120[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd71203fooEv,_ZTv0_n12_N6dd71203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71203fooEv,_ZThn20_N6dd71203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd7120__7ee27120[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71203fooEv,_ZTv0_n12_N6dd71203fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc120__7ee27120[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc120__7ee27120[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee27120[] = {
+ {&(_ZTV7ee27120[4]), 4,13},
+ {&(_tg__ZTV6dd7120__7ee27120[4]), 4,6},
+ {&(_tg__ZTV5cc120__6dd7120__7ee27120[3]), 3,3},
+ {&(_tg__ZTV4bb20__6dd7120__7ee27120[3]), 3,4},
+ {&(_ZTV7ee27120[9]), 9,13},
+ {&(_ZTV7ee27120[12]), 12,13},
+ {&(_tg__ZTV5cc120__7ee27120[3]), 3,3},
+ {&(_tg__ZTV4bb20__5cc120__7ee27120[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee27120[];
+extern VTBL_ENTRY _ZTV7ee27120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27120[];
+static VTBL_ENTRY alt_thunk_names86[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71203fooEv,_ZTv0_n12_N6dd71203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71203fooEv,_ZThn20_N6dd71203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee271203fooEv,_ZTv0_n12_N7ee271203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee271203fooEv,_ZThn20_N7ee271203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27120 = { "ee27120", // class name
+ bases_ee27120, 4,
+ &(vtc_ee27120[0]), // expected_vtbl_contents
+ &(vtt_ee27120[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee27120),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27120),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27120),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names86,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee37120 : virtual dd7120 {
+ int e;
+ virtual void foo(); // _ZN7ee371203fooEv
+ ~ee37120(); // tgen
+ ee37120(); // tgen
+};
+//SIG(1 ee37120) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v1 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37120 ::foo(){vfunc_called(this, "_ZN7ee371203fooEv");}
+ee37120 ::~ee37120(){ note_dtor("ee37120", this);} // tgen
+ee37120 ::ee37120(){ note_ctor("ee37120", this);} // tgen
+
+static void Test_ee37120()
+{
+ extern Class_Descriptor cd_ee37120;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee37120, buf);
+ ee37120 *dp, &lv = *(dp=new (buf) ee37120());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee37120)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37120)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(56,28), "ee37120");
+ check_base_class_offset(lv, (bb20*)(cc120*), ABISELECT(48,24), "ee37120");
+ check_base_class_offset(lv, (cc120*)(dd7120*), ABISELECT(32,16), "ee37120");
+ check_base_class_offset(lv, (dd7120*), ABISELECT(16,8), "ee37120");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37120.e");
+ test_class_info(&lv, &cd_ee37120);
+ dp->~ee37120();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37120(Test_ee37120, "ee37120", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee37120C1Ev();
+extern void _ZN7ee37120D1Ev();
+Name_Map name_map_ee37120[] = {
+ NSPAIR(_ZN7ee37120C1Ev),
+ NSPAIR(_ZN7ee37120D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc120;
+extern VTBL_ENTRY _ZTI5cc120[];
+extern VTBL_ENTRY _ZTV5cc120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc120[];
+extern Class_Descriptor cd_dd7120;
+extern VTBL_ENTRY _ZTI6dd7120[];
+extern VTBL_ENTRY _ZTV6dd7120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7120[];
+static Base_Class bases_ee37120[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(56,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc120, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7120, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee37120[];
+extern void _ZN7ee371203fooEv();
+extern void _ZN6dd71203barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee371203fooEv,_ZTv0_n24_N7ee371203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee371203fooEv,_ZThn8_N7ee371203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee371203fooEv,_ZTv0_n12_N7ee371203fooEv)();
+extern void ABISELECT(_ZThn48_N7ee371203fooEv,_ZThn24_N7ee371203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37120[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37120[0]),
+ (VTBL_ENTRY)&_ZN7ee371203fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37120[0]),
+ (VTBL_ENTRY)&_ZN6dd71203barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee371203fooEv,_ZTv0_n24_N7ee371203fooEv),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37120[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee37120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee371203fooEv,_ZTv0_n12_N7ee371203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee37120[];
+extern void _ZN6dd71203barEv();
+extern void _ZN6dd71203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7120__7ee37120[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7120[0]),
+ (VTBL_ENTRY)&_ZN6dd71203barEv,
+ (VTBL_ENTRY)&_ZN6dd71203fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc120__6dd7120__7ee37120[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7120[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd71203fooEv,_ZTv0_n12_N6dd71203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71203fooEv,_ZThn16_N6dd71203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd7120__7ee37120[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71203fooEv,_ZTv0_n12_N6dd71203fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc120__7ee37120[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc120__7ee37120[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee37120[] = {
+ {&(_ZTV7ee37120[5]), 5,21},
+ {&(_ZTV7ee37120[12]), 12,21},
+ {&(_ZTV7ee37120[17]), 17,21},
+ {&(_ZTV7ee37120[20]), 20,21},
+ {&(_tg__ZTV6dd7120__7ee37120[4]), 4,6},
+ {&(_tg__ZTV5cc120__6dd7120__7ee37120[3]), 3,3},
+ {&(_tg__ZTV4bb20__6dd7120__7ee37120[3]), 3,4},
+ {&(_tg__ZTV5cc120__7ee37120[3]), 3,3},
+ {&(_tg__ZTV4bb20__5cc120__7ee37120[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee37120[];
+extern VTBL_ENTRY _ZTV7ee37120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37120[];
+static VTBL_ENTRY alt_thunk_names87[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71203fooEv,_ZTv0_n12_N6dd71203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71203fooEv,_ZThn16_N6dd71203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee371203fooEv,_ZTv0_n12_N7ee371203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee371203fooEv,_ZThn24_N7ee371203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee371203fooEv,_ZTv0_n24_N7ee371203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee371203fooEv,_ZThn8_N7ee371203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37120 = { "ee37120", // class name
+ bases_ee37120, 4,
+ &(vtc_ee37120[0]), // expected_vtbl_contents
+ &(vtt_ee37120[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee37120),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37120),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37120),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names87,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee47120 : dd7120 {
+ int e;
+ virtual void bar(); // _ZN7ee471203barEv
+ ~ee47120(); // tgen
+ ee47120(); // tgen
+};
+//SIG(1 ee47120) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v2 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47120 ::bar(){vfunc_called(this, "_ZN7ee471203barEv");}
+ee47120 ::~ee47120(){ note_dtor("ee47120", this);} // tgen
+ee47120 ::ee47120(){ note_ctor("ee47120", this);} // tgen
+
+static void Test_ee47120()
+{
+ extern Class_Descriptor cd_ee47120;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee47120, buf);
+ ee47120 *dp, &lv = *(dp=new (buf) ee47120());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee47120)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47120)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee47120");
+ check_base_class_offset(lv, (bb20*)(cc120*), ABISELECT(32,20), "ee47120");
+ check_base_class_offset(lv, (cc120*)(dd7120*), ABISELECT(16,12), "ee47120");
+ check_base_class_offset(lv, (dd7120*), 0, "ee47120");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47120.e");
+ test_class_info(&lv, &cd_ee47120);
+ dp->~ee47120();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47120(Test_ee47120, "ee47120", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee47120C1Ev();
+extern void _ZN7ee47120D1Ev();
+Name_Map name_map_ee47120[] = {
+ NSPAIR(_ZN7ee47120C1Ev),
+ NSPAIR(_ZN7ee47120D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc120;
+extern VTBL_ENTRY _ZTI5cc120[];
+extern VTBL_ENTRY _ZTV5cc120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc120[];
+extern Class_Descriptor cd_dd7120;
+extern VTBL_ENTRY _ZTI6dd7120[];
+extern VTBL_ENTRY _ZTV6dd7120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7120[];
+static Base_Class bases_ee47120[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc120, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7120, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47120[];
+extern void _ZN7ee471203barEv();
+extern void _ZN6dd71203fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd71203fooEv,_ZTv0_n12_N6dd71203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71203fooEv,_ZThn20_N6dd71203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47120[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47120[0]),
+ (VTBL_ENTRY)&_ZN7ee471203barEv,
+ (VTBL_ENTRY)&_ZN6dd71203fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47120[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee47120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71203fooEv,_ZTv0_n12_N6dd71203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee47120[];
+extern void _ZN6dd71203barEv();
+extern void _ZN6dd71203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7120__7ee47120[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7120[0]),
+ (VTBL_ENTRY)&_ZN6dd71203barEv,
+ (VTBL_ENTRY)&_ZN6dd71203fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc120__6dd7120__7ee47120[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7120[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd71203fooEv,_ZTv0_n12_N6dd71203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71203fooEv,_ZThn20_N6dd71203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd7120__7ee47120[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71203fooEv,_ZTv0_n12_N6dd71203fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc120__7ee47120[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc120__7ee47120[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee47120[] = {
+ {&(_ZTV7ee47120[4]), 4,13},
+ {&(_tg__ZTV6dd7120__7ee47120[4]), 4,6},
+ {&(_tg__ZTV5cc120__6dd7120__7ee47120[3]), 3,3},
+ {&(_tg__ZTV4bb20__6dd7120__7ee47120[3]), 3,4},
+ {&(_ZTV7ee47120[9]), 9,13},
+ {&(_ZTV7ee47120[12]), 12,13},
+ {&(_tg__ZTV5cc120__7ee47120[3]), 3,3},
+ {&(_tg__ZTV4bb20__5cc120__7ee47120[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee47120[];
+extern VTBL_ENTRY _ZTV7ee47120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47120[];
+static VTBL_ENTRY alt_thunk_names88[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71203fooEv,_ZTv0_n12_N6dd71203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71203fooEv,_ZThn20_N6dd71203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71203fooEv,_ZThn20_N6dd71203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47120 = { "ee47120", // class name
+ bases_ee47120, 4,
+ &(vtc_ee47120[0]), // expected_vtbl_contents
+ &(vtt_ee47120[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee47120),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47120),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47120),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names88,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee57120 : virtual dd7120 {
+ int e;
+ virtual void bar(); // _ZN7ee571203barEv
+ ~ee57120(); // tgen
+ ee57120(); // tgen
+};
+//SIG(1 ee57120) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v2 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57120 ::bar(){vfunc_called(this, "_ZN7ee571203barEv");}
+ee57120 ::~ee57120(){ note_dtor("ee57120", this);} // tgen
+ee57120 ::ee57120(){ note_ctor("ee57120", this);} // tgen
+
+static void Test_ee57120()
+{
+ extern Class_Descriptor cd_ee57120;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee57120, buf);
+ ee57120 *dp, &lv = *(dp=new (buf) ee57120());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee57120)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57120)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(56,28), "ee57120");
+ check_base_class_offset(lv, (bb20*)(cc120*), ABISELECT(48,24), "ee57120");
+ check_base_class_offset(lv, (cc120*)(dd7120*), ABISELECT(32,16), "ee57120");
+ check_base_class_offset(lv, (dd7120*), ABISELECT(16,8), "ee57120");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57120.e");
+ test_class_info(&lv, &cd_ee57120);
+ dp->~ee57120();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57120(Test_ee57120, "ee57120", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee57120C1Ev();
+extern void _ZN7ee57120D1Ev();
+Name_Map name_map_ee57120[] = {
+ NSPAIR(_ZN7ee57120C1Ev),
+ NSPAIR(_ZN7ee57120D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc120;
+extern VTBL_ENTRY _ZTI5cc120[];
+extern VTBL_ENTRY _ZTV5cc120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc120[];
+extern Class_Descriptor cd_dd7120;
+extern VTBL_ENTRY _ZTI6dd7120[];
+extern VTBL_ENTRY _ZTV6dd7120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7120[];
+static Base_Class bases_ee57120[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(56,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc120, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7120, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee57120[];
+extern void _ZN7ee571203barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee571203barEv,_ZTv0_n20_N7ee571203barEv)();
+extern void ABISELECT(_ZThn16_N7ee571203barEv,_ZThn8_N7ee571203barEv)() __attribute__((weak));
+extern void _ZN6dd71203fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd71203fooEv,_ZTv0_n12_N6dd71203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71203fooEv,_ZThn16_N6dd71203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57120[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57120[0]),
+ (VTBL_ENTRY)&_ZN7ee571203barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee571203barEv,_ZTv0_n20_N7ee571203barEv),
+ (VTBL_ENTRY)&_ZN6dd71203fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57120[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee57120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71203fooEv,_ZTv0_n12_N6dd71203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee57120[];
+extern void _ZN6dd71203barEv();
+extern void _ZN6dd71203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7120__7ee57120[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7120[0]),
+ (VTBL_ENTRY)&_ZN6dd71203barEv,
+ (VTBL_ENTRY)&_ZN6dd71203fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc120__6dd7120__7ee57120[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7120[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd71203fooEv,_ZTv0_n12_N6dd71203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71203fooEv,_ZThn16_N6dd71203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd7120__7ee57120[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71203fooEv,_ZTv0_n12_N6dd71203fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc120__7ee57120[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc120__7ee57120[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee57120[] = {
+ {&(_ZTV7ee57120[5]), 5,21},
+ {&(_ZTV7ee57120[12]), 12,21},
+ {&(_ZTV7ee57120[17]), 17,21},
+ {&(_ZTV7ee57120[20]), 20,21},
+ {&(_tg__ZTV6dd7120__7ee57120[4]), 4,6},
+ {&(_tg__ZTV5cc120__6dd7120__7ee57120[3]), 3,3},
+ {&(_tg__ZTV4bb20__6dd7120__7ee57120[3]), 3,4},
+ {&(_tg__ZTV5cc120__7ee57120[3]), 3,3},
+ {&(_tg__ZTV4bb20__5cc120__7ee57120[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee57120[];
+extern VTBL_ENTRY _ZTV7ee57120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57120[];
+static VTBL_ENTRY alt_thunk_names89[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71203fooEv,_ZTv0_n12_N6dd71203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71203fooEv,_ZThn16_N6dd71203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71203fooEv,_ZThn16_N6dd71203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee571203barEv,_ZTv0_n20_N7ee571203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee571203barEv,_ZThn8_N7ee571203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57120 = { "ee57120", // class name
+ bases_ee57120, 4,
+ &(vtc_ee57120[0]), // expected_vtbl_contents
+ &(vtt_ee57120[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee57120),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57120),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57120),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names89,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee67120 : dd7120 {
+ int e;
+ virtual void foo(); // _ZN7ee671203fooEv
+ virtual void bar(); // _ZN7ee671203barEv
+ ~ee67120(); // tgen
+ ee67120(); // tgen
+};
+//SIG(1 ee67120) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v1 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67120 ::foo(){vfunc_called(this, "_ZN7ee671203fooEv");}
+void ee67120 ::bar(){vfunc_called(this, "_ZN7ee671203barEv");}
+ee67120 ::~ee67120(){ note_dtor("ee67120", this);} // tgen
+ee67120 ::ee67120(){ note_ctor("ee67120", this);} // tgen
+
+static void Test_ee67120()
+{
+ extern Class_Descriptor cd_ee67120;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee67120, buf);
+ ee67120 *dp, &lv = *(dp=new (buf) ee67120());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee67120)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67120)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee67120");
+ check_base_class_offset(lv, (bb20*)(cc120*), ABISELECT(32,20), "ee67120");
+ check_base_class_offset(lv, (cc120*)(dd7120*), ABISELECT(16,12), "ee67120");
+ check_base_class_offset(lv, (dd7120*), 0, "ee67120");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67120.e");
+ test_class_info(&lv, &cd_ee67120);
+ dp->~ee67120();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67120(Test_ee67120, "ee67120", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee67120C1Ev();
+extern void _ZN7ee67120D1Ev();
+Name_Map name_map_ee67120[] = {
+ NSPAIR(_ZN7ee67120C1Ev),
+ NSPAIR(_ZN7ee67120D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc120;
+extern VTBL_ENTRY _ZTI5cc120[];
+extern VTBL_ENTRY _ZTV5cc120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc120[];
+extern Class_Descriptor cd_dd7120;
+extern VTBL_ENTRY _ZTI6dd7120[];
+extern VTBL_ENTRY _ZTV6dd7120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7120[];
+static Base_Class bases_ee67120[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc120, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7120, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67120[];
+extern void _ZN7ee671203barEv();
+extern void _ZN7ee671203fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee671203fooEv,_ZTv0_n12_N7ee671203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee671203fooEv,_ZThn20_N7ee671203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67120[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67120[0]),
+ (VTBL_ENTRY)&_ZN7ee671203barEv,
+ (VTBL_ENTRY)&_ZN7ee671203fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67120[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee67120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee671203fooEv,_ZTv0_n12_N7ee671203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee67120[];
+extern void _ZN6dd71203barEv();
+extern void _ZN6dd71203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7120__7ee67120[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7120[0]),
+ (VTBL_ENTRY)&_ZN6dd71203barEv,
+ (VTBL_ENTRY)&_ZN6dd71203fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc120__6dd7120__7ee67120[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7120[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd71203fooEv,_ZTv0_n12_N6dd71203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71203fooEv,_ZThn20_N6dd71203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd7120__7ee67120[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71203fooEv,_ZTv0_n12_N6dd71203fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc120__7ee67120[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc120__7ee67120[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee67120[] = {
+ {&(_ZTV7ee67120[4]), 4,13},
+ {&(_tg__ZTV6dd7120__7ee67120[4]), 4,6},
+ {&(_tg__ZTV5cc120__6dd7120__7ee67120[3]), 3,3},
+ {&(_tg__ZTV4bb20__6dd7120__7ee67120[3]), 3,4},
+ {&(_ZTV7ee67120[9]), 9,13},
+ {&(_ZTV7ee67120[12]), 12,13},
+ {&(_tg__ZTV5cc120__7ee67120[3]), 3,3},
+ {&(_tg__ZTV4bb20__5cc120__7ee67120[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee67120[];
+extern VTBL_ENTRY _ZTV7ee67120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67120[];
+static VTBL_ENTRY alt_thunk_names90[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71203fooEv,_ZTv0_n12_N6dd71203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71203fooEv,_ZThn20_N6dd71203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee671203fooEv,_ZTv0_n12_N7ee671203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee671203fooEv,_ZThn20_N7ee671203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67120 = { "ee67120", // class name
+ bases_ee67120, 4,
+ &(vtc_ee67120[0]), // expected_vtbl_contents
+ &(vtt_ee67120[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee67120),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67120),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67120),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names90,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee77120 : virtual dd7120 {
+ int e;
+ virtual void foo(); // _ZN7ee771203fooEv
+ virtual void bar(); // _ZN7ee771203barEv
+ ~ee77120(); // tgen
+ ee77120(); // tgen
+};
+//SIG(1 ee77120) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v1 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77120 ::foo(){vfunc_called(this, "_ZN7ee771203fooEv");}
+void ee77120 ::bar(){vfunc_called(this, "_ZN7ee771203barEv");}
+ee77120 ::~ee77120(){ note_dtor("ee77120", this);} // tgen
+ee77120 ::ee77120(){ note_ctor("ee77120", this);} // tgen
+
+static void Test_ee77120()
+{
+ extern Class_Descriptor cd_ee77120;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee77120, buf);
+ ee77120 *dp, &lv = *(dp=new (buf) ee77120());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee77120)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77120)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(56,28), "ee77120");
+ check_base_class_offset(lv, (bb20*)(cc120*), ABISELECT(48,24), "ee77120");
+ check_base_class_offset(lv, (cc120*)(dd7120*), ABISELECT(32,16), "ee77120");
+ check_base_class_offset(lv, (dd7120*), ABISELECT(16,8), "ee77120");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77120.e");
+ test_class_info(&lv, &cd_ee77120);
+ dp->~ee77120();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77120(Test_ee77120, "ee77120", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee77120C1Ev();
+extern void _ZN7ee77120D1Ev();
+Name_Map name_map_ee77120[] = {
+ NSPAIR(_ZN7ee77120C1Ev),
+ NSPAIR(_ZN7ee77120D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc120;
+extern VTBL_ENTRY _ZTI5cc120[];
+extern VTBL_ENTRY _ZTV5cc120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc120[];
+extern Class_Descriptor cd_dd7120;
+extern VTBL_ENTRY _ZTI6dd7120[];
+extern VTBL_ENTRY _ZTV6dd7120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7120[];
+static Base_Class bases_ee77120[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(56,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc120, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7120, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee77120[];
+extern void _ZN7ee771203fooEv();
+extern void _ZN7ee771203barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee771203barEv,_ZTv0_n20_N7ee771203barEv)();
+extern void ABISELECT(_ZThn16_N7ee771203barEv,_ZThn8_N7ee771203barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee771203fooEv,_ZTv0_n24_N7ee771203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee771203fooEv,_ZThn8_N7ee771203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee771203fooEv,_ZTv0_n12_N7ee771203fooEv)();
+extern void ABISELECT(_ZThn48_N7ee771203fooEv,_ZThn24_N7ee771203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77120[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77120[0]),
+ (VTBL_ENTRY)&_ZN7ee771203fooEv,
+ (VTBL_ENTRY)&_ZN7ee771203barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee771203barEv,_ZTv0_n20_N7ee771203barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee771203fooEv,_ZTv0_n24_N7ee771203fooEv),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77120[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee77120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee771203fooEv,_ZTv0_n12_N7ee771203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee77120[];
+extern void _ZN6dd71203barEv();
+extern void _ZN6dd71203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7120__7ee77120[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7120[0]),
+ (VTBL_ENTRY)&_ZN6dd71203barEv,
+ (VTBL_ENTRY)&_ZN6dd71203fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc120__6dd7120__7ee77120[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7120[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd71203fooEv,_ZTv0_n12_N6dd71203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71203fooEv,_ZThn16_N6dd71203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd7120__7ee77120[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7120[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71203fooEv,_ZTv0_n12_N6dd71203fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc120__7ee77120[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc120__7ee77120[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc120[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee77120[] = {
+ {&(_ZTV7ee77120[5]), 5,22},
+ {&(_ZTV7ee77120[13]), 13,22},
+ {&(_ZTV7ee77120[18]), 18,22},
+ {&(_ZTV7ee77120[21]), 21,22},
+ {&(_tg__ZTV6dd7120__7ee77120[4]), 4,6},
+ {&(_tg__ZTV5cc120__6dd7120__7ee77120[3]), 3,3},
+ {&(_tg__ZTV4bb20__6dd7120__7ee77120[3]), 3,4},
+ {&(_tg__ZTV5cc120__7ee77120[3]), 3,3},
+ {&(_tg__ZTV4bb20__5cc120__7ee77120[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee77120[];
+extern VTBL_ENTRY _ZTV7ee77120[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77120[];
+static VTBL_ENTRY alt_thunk_names91[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71203fooEv,_ZTv0_n12_N6dd71203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71203fooEv,_ZThn16_N6dd71203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee771203fooEv,_ZTv0_n12_N7ee771203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee771203fooEv,_ZThn24_N7ee771203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee771203fooEv,_ZTv0_n24_N7ee771203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee771203fooEv,_ZThn8_N7ee771203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee771203barEv,_ZTv0_n20_N7ee771203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee771203barEv,_ZThn8_N7ee771203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77120 = { "ee77120", // class name
+ bases_ee77120, 4,
+ &(vtc_ee77120[0]), // expected_vtbl_contents
+ &(vtt_ee77120[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee77120),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77120),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77120),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names91,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc220 : bb20 {
+ int c;
+ virtual void foo(); // _ZN5cc2203fooEv
+ ~cc220(); // tgen
+ cc220(); // tgen
+};
+//SIG(-1 cc220) C1{ BC2{ BC3{ Fi} v1 Fi} v1 Fi}
+
+
+void cc220 ::foo(){vfunc_called(this, "_ZN5cc2203fooEv");}
+cc220 ::~cc220(){ note_dtor("cc220", this);} // tgen
+cc220 ::cc220(){ note_ctor("cc220", this);} // tgen
+
+static void Test_cc220()
+{
+ extern Class_Descriptor cd_cc220;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,5)];
+ init_test(&cd_cc220, buf);
+ cc220 *dp, &lv = *(dp=new (buf) cc220());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,16), "sizeof(cc220)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc220)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(8,4), "cc220");
+ check_base_class_offset(lv, (bb20*), 0, "cc220");
+ check_field_offset(lv, c, ABISELECT(16,12), "cc220.c");
+ test_class_info(&lv, &cd_cc220);
+ dp->~cc220();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc220(Test_cc220, "cc220", ABISELECT(24,16));
+
+#else // __cplusplus
+
+extern void _ZN5cc220C1Ev();
+extern void _ZN5cc220D1Ev();
+Name_Map name_map_cc220[] = {
+ NSPAIR(_ZN5cc220C1Ev),
+ NSPAIR(_ZN5cc220D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+static Base_Class bases_cc220[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(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 _ZTI5cc220[];
+extern void _ZN5cc2203fooEv();
+static VTBL_ENTRY vtc_cc220[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc220[0]),
+ (VTBL_ENTRY)&_ZN5cc2203fooEv,
+};
+extern VTBL_ENTRY _ZTI5cc220[];
+extern VTBL_ENTRY _ZTV5cc220[];
+Class_Descriptor cd_cc220 = { "cc220", // class name
+ bases_cc220, 2,
+ &(vtc_cc220[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,16), // object size
+ NSPAIRA(_ZTI5cc220),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV5cc220),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 dd0220 : cc220 {
+ int d;
+ ~dd0220(); // tgen
+ dd0220(); // tgen
+};
+//SIG(-1 dd0220) C1{ BC2{ BC3{ BC4{ Fi} v1 Fi} v1 Fi} Fi}
+
+
+dd0220 ::~dd0220(){ note_dtor("dd0220", this);} // tgen
+dd0220 ::dd0220(){ note_ctor("dd0220", this);} // tgen
+
+static void Test_dd0220()
+{
+ extern Class_Descriptor cd_dd0220;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd0220, buf);
+ dd0220 *dp, &lv = *(dp=new (buf) dd0220());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd0220)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0220)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc220*), ABISELECT(8,4), "dd0220");
+ check_base_class_offset(lv, (bb20*)(cc220*), 0, "dd0220");
+ check_base_class_offset(lv, (cc220*), 0, "dd0220");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd0220.d");
+ test_class_info(&lv, &cd_dd0220);
+ dp->~dd0220();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0220(Test_dd0220, "dd0220", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd0220C1Ev();
+extern void _ZN6dd0220D1Ev();
+Name_Map name_map_dd0220[] = {
+ NSPAIR(_ZN6dd0220C1Ev),
+ NSPAIR(_ZN6dd0220D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc220;
+extern VTBL_ENTRY _ZTI5cc220[];
+extern VTBL_ENTRY _ZTV5cc220[];
+static Base_Class bases_dd0220[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc220, 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 _ZTI6dd0220[];
+extern void _ZN5cc2203fooEv();
+static VTBL_ENTRY vtc_dd0220[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0220[0]),
+ (VTBL_ENTRY)&_ZN5cc2203fooEv,
+};
+extern VTBL_ENTRY _ZTI6dd0220[];
+extern VTBL_ENTRY _ZTV6dd0220[];
+Class_Descriptor cd_dd0220 = { "dd0220", // class name
+ bases_dd0220, 3,
+ &(vtc_dd0220[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd0220),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0220),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 ee00220 : dd0220 {
+ int e;
+ ~ee00220(); // tgen
+ ee00220(); // tgen
+};
+//SIG(1 ee00220) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v1 Fi} v1 Fi} Fi} Fi}
+
+
+ee00220 ::~ee00220(){ note_dtor("ee00220", this);} // tgen
+ee00220 ::ee00220(){ note_ctor("ee00220", this);} // tgen
+
+static void Test_ee00220()
+{
+ extern Class_Descriptor cd_ee00220;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee00220, buf);
+ ee00220 *dp, &lv = *(dp=new (buf) ee00220());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee00220)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00220)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc220*)(dd0220*), ABISELECT(8,4), "ee00220");
+ check_base_class_offset(lv, (bb20*)(cc220*)(dd0220*), 0, "ee00220");
+ check_base_class_offset(lv, (cc220*)(dd0220*), 0, "ee00220");
+ check_base_class_offset(lv, (dd0220*), 0, "ee00220");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee00220.e");
+ test_class_info(&lv, &cd_ee00220);
+ dp->~ee00220();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00220(Test_ee00220, "ee00220", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee00220C1Ev();
+extern void _ZN7ee00220D1Ev();
+Name_Map name_map_ee00220[] = {
+ NSPAIR(_ZN7ee00220C1Ev),
+ NSPAIR(_ZN7ee00220D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc220;
+extern VTBL_ENTRY _ZTI5cc220[];
+extern VTBL_ENTRY _ZTV5cc220[];
+extern Class_Descriptor cd_dd0220;
+extern VTBL_ENTRY _ZTI6dd0220[];
+extern VTBL_ENTRY _ZTV6dd0220[];
+static Base_Class bases_ee00220[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc220, 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
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0220, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee00220[];
+extern void _ZN5cc2203fooEv();
+static VTBL_ENTRY vtc_ee00220[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00220[0]),
+ (VTBL_ENTRY)&_ZN5cc2203fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee00220[];
+extern VTBL_ENTRY _ZTV7ee00220[];
+Class_Descriptor cd_ee00220 = { "ee00220", // class name
+ bases_ee00220, 4,
+ &(vtc_ee00220[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee00220),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00220),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 ee10220 : virtual dd0220 {
+ int e;
+ ~ee10220(); // tgen
+ ee10220(); // tgen
+};
+//SIG(1 ee10220) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v1 Fi} v1 Fi} Fi} Fi}
+
+
+ee10220 ::~ee10220(){ note_dtor("ee10220", this);} // tgen
+ee10220 ::ee10220(){ note_ctor("ee10220", this);} // tgen
+
+static void Test_ee10220()
+{
+ extern Class_Descriptor cd_ee10220;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee10220, buf);
+ ee10220 *dp, &lv = *(dp=new (buf) ee10220());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee10220)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10220)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc220*)(dd0220*), ABISELECT(24,12), "ee10220");
+ check_base_class_offset(lv, (bb20*)(cc220*)(dd0220*), ABISELECT(16,8), "ee10220");
+ check_base_class_offset(lv, (cc220*)(dd0220*), ABISELECT(16,8), "ee10220");
+ check_base_class_offset(lv, (dd0220*), ABISELECT(16,8), "ee10220");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10220.e");
+ test_class_info(&lv, &cd_ee10220);
+ dp->~ee10220();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10220(Test_ee10220, "ee10220", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee10220C1Ev();
+extern void _ZN7ee10220D1Ev();
+Name_Map name_map_ee10220[] = {
+ NSPAIR(_ZN7ee10220C1Ev),
+ NSPAIR(_ZN7ee10220D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc220;
+extern VTBL_ENTRY _ZTI5cc220[];
+extern VTBL_ENTRY _ZTV5cc220[];
+extern Class_Descriptor cd_dd0220;
+extern VTBL_ENTRY _ZTI6dd0220[];
+extern VTBL_ENTRY _ZTV6dd0220[];
+static Base_Class bases_ee10220[] = {
+ // 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_bb20, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc220, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0220, 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 _ZTI7ee10220[];
+extern void _ZN5cc2203fooEv();
+static VTBL_ENTRY vtc_ee10220[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10220[0]),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10220[0]),
+ (VTBL_ENTRY)&_ZN5cc2203fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee10220[];
+static VTT_ENTRY vtt_ee10220[] = {
+ {&(_ZTV7ee10220[3]), 3,7},
+ {&(_ZTV7ee10220[6]), 6,7},
+};
+extern VTBL_ENTRY _ZTI7ee10220[];
+extern VTBL_ENTRY _ZTV7ee10220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10220[];
+Class_Descriptor cd_ee10220 = { "ee10220", // class name
+ bases_ee10220, 4,
+ &(vtc_ee10220[0]), // expected_vtbl_contents
+ &(vtt_ee10220[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee10220),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10220),7, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10220),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 ee20220 : dd0220 {
+ int e;
+ virtual void foo(); // _ZN7ee202203fooEv
+ ~ee20220(); // tgen
+ ee20220(); // tgen
+};
+//SIG(1 ee20220) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee20220 ::foo(){vfunc_called(this, "_ZN7ee202203fooEv");}
+ee20220 ::~ee20220(){ note_dtor("ee20220", this);} // tgen
+ee20220 ::ee20220(){ note_ctor("ee20220", this);} // tgen
+
+static void Test_ee20220()
+{
+ extern Class_Descriptor cd_ee20220;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee20220, buf);
+ ee20220 *dp, &lv = *(dp=new (buf) ee20220());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee20220)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20220)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc220*)(dd0220*), ABISELECT(8,4), "ee20220");
+ check_base_class_offset(lv, (bb20*)(cc220*)(dd0220*), 0, "ee20220");
+ check_base_class_offset(lv, (cc220*)(dd0220*), 0, "ee20220");
+ check_base_class_offset(lv, (dd0220*), 0, "ee20220");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee20220.e");
+ test_class_info(&lv, &cd_ee20220);
+ dp->~ee20220();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20220(Test_ee20220, "ee20220", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee20220C1Ev();
+extern void _ZN7ee20220D1Ev();
+Name_Map name_map_ee20220[] = {
+ NSPAIR(_ZN7ee20220C1Ev),
+ NSPAIR(_ZN7ee20220D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc220;
+extern VTBL_ENTRY _ZTI5cc220[];
+extern VTBL_ENTRY _ZTV5cc220[];
+extern Class_Descriptor cd_dd0220;
+extern VTBL_ENTRY _ZTI6dd0220[];
+extern VTBL_ENTRY _ZTV6dd0220[];
+static Base_Class bases_ee20220[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc220, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0220, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee20220[];
+extern void _ZN7ee202203fooEv();
+static VTBL_ENTRY vtc_ee20220[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20220[0]),
+ (VTBL_ENTRY)&_ZN7ee202203fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee20220[];
+extern VTBL_ENTRY _ZTV7ee20220[];
+Class_Descriptor cd_ee20220 = { "ee20220", // class name
+ bases_ee20220, 4,
+ &(vtc_ee20220[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee20220),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20220),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 ee30220 : virtual dd0220 {
+ int e;
+ virtual void foo(); // _ZN7ee302203fooEv
+ ~ee30220(); // tgen
+ ee30220(); // tgen
+};
+//SIG(1 ee30220) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee30220 ::foo(){vfunc_called(this, "_ZN7ee302203fooEv");}
+ee30220 ::~ee30220(){ note_dtor("ee30220", this);} // tgen
+ee30220 ::ee30220(){ note_ctor("ee30220", this);} // tgen
+
+static void Test_ee30220()
+{
+ extern Class_Descriptor cd_ee30220;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee30220, buf);
+ ee30220 *dp, &lv = *(dp=new (buf) ee30220());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee30220)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30220)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc220*)(dd0220*), ABISELECT(24,12), "ee30220");
+ check_base_class_offset(lv, (bb20*)(cc220*)(dd0220*), ABISELECT(16,8), "ee30220");
+ check_base_class_offset(lv, (cc220*)(dd0220*), ABISELECT(16,8), "ee30220");
+ check_base_class_offset(lv, (dd0220*), ABISELECT(16,8), "ee30220");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30220.e");
+ test_class_info(&lv, &cd_ee30220);
+ dp->~ee30220();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30220(Test_ee30220, "ee30220", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee30220C1Ev();
+extern void _ZN7ee30220D1Ev();
+Name_Map name_map_ee30220[] = {
+ NSPAIR(_ZN7ee30220C1Ev),
+ NSPAIR(_ZN7ee30220D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc220;
+extern VTBL_ENTRY _ZTI5cc220[];
+extern VTBL_ENTRY _ZTV5cc220[];
+extern Class_Descriptor cd_dd0220;
+extern VTBL_ENTRY _ZTI6dd0220[];
+extern VTBL_ENTRY _ZTV6dd0220[];
+static Base_Class bases_ee30220[] = {
+ // 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_bb20, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc220, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0220, 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 _ZTI7ee30220[];
+extern void _ZN7ee302203fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee302203fooEv,_ZTv0_n12_N7ee302203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee302203fooEv,_ZThn8_N7ee302203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee30220[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30220[0]),
+ (VTBL_ENTRY)&_ZN7ee302203fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30220[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee302203fooEv,_ZTv0_n12_N7ee302203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee30220[];
+static VTT_ENTRY vtt_ee30220[] = {
+ {&(_ZTV7ee30220[3]), 3,8},
+ {&(_ZTV7ee30220[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee30220[];
+extern VTBL_ENTRY _ZTV7ee30220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30220[];
+static VTBL_ENTRY alt_thunk_names92[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee302203fooEv,_ZTv0_n12_N7ee302203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee302203fooEv,_ZThn8_N7ee302203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30220 = { "ee30220", // class name
+ bases_ee30220, 4,
+ &(vtc_ee30220[0]), // expected_vtbl_contents
+ &(vtt_ee30220[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee30220),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30220),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30220),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names92,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee40220 : dd0220 {
+ int e;
+ virtual void bar(); // _ZN7ee402203barEv
+ ~ee40220(); // tgen
+ ee40220(); // tgen
+};
+//SIG(1 ee40220) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee40220 ::bar(){vfunc_called(this, "_ZN7ee402203barEv");}
+ee40220 ::~ee40220(){ note_dtor("ee40220", this);} // tgen
+ee40220 ::ee40220(){ note_ctor("ee40220", this);} // tgen
+
+static void Test_ee40220()
+{
+ extern Class_Descriptor cd_ee40220;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee40220, buf);
+ ee40220 *dp, &lv = *(dp=new (buf) ee40220());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee40220)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40220)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc220*)(dd0220*), ABISELECT(8,4), "ee40220");
+ check_base_class_offset(lv, (bb20*)(cc220*)(dd0220*), 0, "ee40220");
+ check_base_class_offset(lv, (cc220*)(dd0220*), 0, "ee40220");
+ check_base_class_offset(lv, (dd0220*), 0, "ee40220");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee40220.e");
+ test_class_info(&lv, &cd_ee40220);
+ dp->~ee40220();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40220(Test_ee40220, "ee40220", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee40220C1Ev();
+extern void _ZN7ee40220D1Ev();
+Name_Map name_map_ee40220[] = {
+ NSPAIR(_ZN7ee40220C1Ev),
+ NSPAIR(_ZN7ee40220D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc220;
+extern VTBL_ENTRY _ZTI5cc220[];
+extern VTBL_ENTRY _ZTV5cc220[];
+extern Class_Descriptor cd_dd0220;
+extern VTBL_ENTRY _ZTI6dd0220[];
+extern VTBL_ENTRY _ZTV6dd0220[];
+static Base_Class bases_ee40220[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc220, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0220, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee40220[];
+extern void _ZN5cc2203fooEv();
+extern void _ZN7ee402203barEv();
+static VTBL_ENTRY vtc_ee40220[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40220[0]),
+ (VTBL_ENTRY)&_ZN5cc2203fooEv,
+ (VTBL_ENTRY)&_ZN7ee402203barEv,
+};
+extern VTBL_ENTRY _ZTI7ee40220[];
+extern VTBL_ENTRY _ZTV7ee40220[];
+Class_Descriptor cd_ee40220 = { "ee40220", // class name
+ bases_ee40220, 4,
+ &(vtc_ee40220[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee40220),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40220),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 ee50220 : virtual dd0220 {
+ int e;
+ virtual void bar(); // _ZN7ee502203barEv
+ ~ee50220(); // tgen
+ ee50220(); // tgen
+};
+//SIG(1 ee50220) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee50220 ::bar(){vfunc_called(this, "_ZN7ee502203barEv");}
+ee50220 ::~ee50220(){ note_dtor("ee50220", this);} // tgen
+ee50220 ::ee50220(){ note_ctor("ee50220", this);} // tgen
+
+static void Test_ee50220()
+{
+ extern Class_Descriptor cd_ee50220;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee50220, buf);
+ ee50220 *dp, &lv = *(dp=new (buf) ee50220());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee50220)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50220)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc220*)(dd0220*), ABISELECT(24,12), "ee50220");
+ check_base_class_offset(lv, (bb20*)(cc220*)(dd0220*), ABISELECT(16,8), "ee50220");
+ check_base_class_offset(lv, (cc220*)(dd0220*), ABISELECT(16,8), "ee50220");
+ check_base_class_offset(lv, (dd0220*), ABISELECT(16,8), "ee50220");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50220.e");
+ test_class_info(&lv, &cd_ee50220);
+ dp->~ee50220();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50220(Test_ee50220, "ee50220", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee50220C1Ev();
+extern void _ZN7ee50220D1Ev();
+Name_Map name_map_ee50220[] = {
+ NSPAIR(_ZN7ee50220C1Ev),
+ NSPAIR(_ZN7ee50220D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc220;
+extern VTBL_ENTRY _ZTI5cc220[];
+extern VTBL_ENTRY _ZTV5cc220[];
+extern Class_Descriptor cd_dd0220;
+extern VTBL_ENTRY _ZTI6dd0220[];
+extern VTBL_ENTRY _ZTV6dd0220[];
+static Base_Class bases_ee50220[] = {
+ // 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_bb20, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc220, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0220, 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 _ZTI7ee50220[];
+extern void _ZN7ee502203barEv();
+extern void _ZN5cc2203fooEv();
+static VTBL_ENTRY vtc_ee50220[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50220[0]),
+ (VTBL_ENTRY)&_ZN7ee502203barEv,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50220[0]),
+ (VTBL_ENTRY)&_ZN5cc2203fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee50220[];
+static VTT_ENTRY vtt_ee50220[] = {
+ {&(_ZTV7ee50220[3]), 3,8},
+ {&(_ZTV7ee50220[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee50220[];
+extern VTBL_ENTRY _ZTV7ee50220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50220[];
+Class_Descriptor cd_ee50220 = { "ee50220", // class name
+ bases_ee50220, 4,
+ &(vtc_ee50220[0]), // expected_vtbl_contents
+ &(vtt_ee50220[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee50220),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50220),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50220),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 ee60220 : dd0220 {
+ int e;
+ virtual void foo(); // _ZN7ee602203fooEv
+ virtual void bar(); // _ZN7ee602203barEv
+ ~ee60220(); // tgen
+ ee60220(); // tgen
+};
+//SIG(1 ee60220) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v1 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee60220 ::foo(){vfunc_called(this, "_ZN7ee602203fooEv");}
+void ee60220 ::bar(){vfunc_called(this, "_ZN7ee602203barEv");}
+ee60220 ::~ee60220(){ note_dtor("ee60220", this);} // tgen
+ee60220 ::ee60220(){ note_ctor("ee60220", this);} // tgen
+
+static void Test_ee60220()
+{
+ extern Class_Descriptor cd_ee60220;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee60220, buf);
+ ee60220 *dp, &lv = *(dp=new (buf) ee60220());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee60220)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60220)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc220*)(dd0220*), ABISELECT(8,4), "ee60220");
+ check_base_class_offset(lv, (bb20*)(cc220*)(dd0220*), 0, "ee60220");
+ check_base_class_offset(lv, (cc220*)(dd0220*), 0, "ee60220");
+ check_base_class_offset(lv, (dd0220*), 0, "ee60220");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee60220.e");
+ test_class_info(&lv, &cd_ee60220);
+ dp->~ee60220();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60220(Test_ee60220, "ee60220", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee60220C1Ev();
+extern void _ZN7ee60220D1Ev();
+Name_Map name_map_ee60220[] = {
+ NSPAIR(_ZN7ee60220C1Ev),
+ NSPAIR(_ZN7ee60220D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc220;
+extern VTBL_ENTRY _ZTI5cc220[];
+extern VTBL_ENTRY _ZTV5cc220[];
+extern Class_Descriptor cd_dd0220;
+extern VTBL_ENTRY _ZTI6dd0220[];
+extern VTBL_ENTRY _ZTV6dd0220[];
+static Base_Class bases_ee60220[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc220, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0220, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee60220[];
+extern void _ZN7ee602203fooEv();
+extern void _ZN7ee602203barEv();
+static VTBL_ENTRY vtc_ee60220[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60220[0]),
+ (VTBL_ENTRY)&_ZN7ee602203fooEv,
+ (VTBL_ENTRY)&_ZN7ee602203barEv,
+};
+extern VTBL_ENTRY _ZTI7ee60220[];
+extern VTBL_ENTRY _ZTV7ee60220[];
+Class_Descriptor cd_ee60220 = { "ee60220", // class name
+ bases_ee60220, 4,
+ &(vtc_ee60220[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee60220),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60220),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 ee70220 : virtual dd0220 {
+ int e;
+ virtual void foo(); // _ZN7ee702203fooEv
+ virtual void bar(); // _ZN7ee702203barEv
+ ~ee70220(); // tgen
+ ee70220(); // tgen
+};
+//SIG(1 ee70220) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v1 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee70220 ::foo(){vfunc_called(this, "_ZN7ee702203fooEv");}
+void ee70220 ::bar(){vfunc_called(this, "_ZN7ee702203barEv");}
+ee70220 ::~ee70220(){ note_dtor("ee70220", this);} // tgen
+ee70220 ::ee70220(){ note_ctor("ee70220", this);} // tgen
+
+static void Test_ee70220()
+{
+ extern Class_Descriptor cd_ee70220;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee70220, buf);
+ ee70220 *dp, &lv = *(dp=new (buf) ee70220());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee70220)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70220)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc220*)(dd0220*), ABISELECT(24,12), "ee70220");
+ check_base_class_offset(lv, (bb20*)(cc220*)(dd0220*), ABISELECT(16,8), "ee70220");
+ check_base_class_offset(lv, (cc220*)(dd0220*), ABISELECT(16,8), "ee70220");
+ check_base_class_offset(lv, (dd0220*), ABISELECT(16,8), "ee70220");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70220.e");
+ test_class_info(&lv, &cd_ee70220);
+ dp->~ee70220();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70220(Test_ee70220, "ee70220", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee70220C1Ev();
+extern void _ZN7ee70220D1Ev();
+Name_Map name_map_ee70220[] = {
+ NSPAIR(_ZN7ee70220C1Ev),
+ NSPAIR(_ZN7ee70220D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc220;
+extern VTBL_ENTRY _ZTI5cc220[];
+extern VTBL_ENTRY _ZTV5cc220[];
+extern Class_Descriptor cd_dd0220;
+extern VTBL_ENTRY _ZTI6dd0220[];
+extern VTBL_ENTRY _ZTV6dd0220[];
+static Base_Class bases_ee70220[] = {
+ // 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_bb20, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc220, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0220, 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 _ZTI7ee70220[];
+extern void _ZN7ee702203fooEv();
+extern void _ZN7ee702203barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee702203fooEv,_ZTv0_n12_N7ee702203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee702203fooEv,_ZThn8_N7ee702203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70220[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70220[0]),
+ (VTBL_ENTRY)&_ZN7ee702203fooEv,
+ (VTBL_ENTRY)&_ZN7ee702203barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70220[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee702203fooEv,_ZTv0_n12_N7ee702203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee70220[];
+static VTT_ENTRY vtt_ee70220[] = {
+ {&(_ZTV7ee70220[3]), 3,9},
+ {&(_ZTV7ee70220[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee70220[];
+extern VTBL_ENTRY _ZTV7ee70220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70220[];
+static VTBL_ENTRY alt_thunk_names93[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee702203fooEv,_ZTv0_n12_N7ee702203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee702203fooEv,_ZThn8_N7ee702203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70220 = { "ee70220", // class name
+ bases_ee70220, 4,
+ &(vtc_ee70220[0]), // expected_vtbl_contents
+ &(vtt_ee70220[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee70220),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70220),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70220),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names93,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd1220 : virtual cc220 {
+ int d;
+ ~dd1220(); // tgen
+ dd1220(); // tgen
+};
+//SIG(-1 dd1220) C1{ VBC2{ BC3{ BC4{ Fi} v1 Fi} v1 Fi} Fi}
+
+
+dd1220 ::~dd1220(){ note_dtor("dd1220", this);} // tgen
+dd1220 ::dd1220(){ note_ctor("dd1220", this);} // tgen
+
+static void Test_dd1220()
+{
+ extern Class_Descriptor cd_dd1220;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd1220, buf);
+ dd1220 *dp, &lv = *(dp=new (buf) dd1220());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd1220)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1220)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc220*), ABISELECT(24,12), "dd1220");
+ check_base_class_offset(lv, (bb20*)(cc220*), ABISELECT(16,8), "dd1220");
+ check_base_class_offset(lv, (cc220*), ABISELECT(16,8), "dd1220");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1220.d");
+ test_class_info(&lv, &cd_dd1220);
+ dp->~dd1220();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1220(Test_dd1220, "dd1220", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd1220C1Ev();
+extern void _ZN6dd1220D1Ev();
+Name_Map name_map_dd1220[] = {
+ NSPAIR(_ZN6dd1220C1Ev),
+ NSPAIR(_ZN6dd1220D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc220;
+extern VTBL_ENTRY _ZTI5cc220[];
+extern VTBL_ENTRY _ZTV5cc220[];
+static Base_Class bases_dd1220[] = {
+ // 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_bb20, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc220, 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 _ZTI6dd1220[];
+extern void _ZN5cc2203fooEv();
+static VTBL_ENTRY vtc_dd1220[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1220[0]),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1220[0]),
+ (VTBL_ENTRY)&_ZN5cc2203fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd1220[];
+static VTT_ENTRY vtt_dd1220[] = {
+ {&(_ZTV6dd1220[3]), 3,7},
+ {&(_ZTV6dd1220[6]), 6,7},
+};
+extern VTBL_ENTRY _ZTI6dd1220[];
+extern VTBL_ENTRY _ZTV6dd1220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1220[];
+Class_Descriptor cd_dd1220 = { "dd1220", // class name
+ bases_dd1220, 3,
+ &(vtc_dd1220[0]), // expected_vtbl_contents
+ &(vtt_dd1220[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd1220),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1220),7, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1220),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 ee01220 : dd1220 {
+ int e;
+ ~ee01220(); // tgen
+ ee01220(); // tgen
+};
+//SIG(1 ee01220) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v1 Fi} v1 Fi} Fi} Fi}
+
+
+ee01220 ::~ee01220(){ note_dtor("ee01220", this);} // tgen
+ee01220 ::ee01220(){ note_ctor("ee01220", this);} // tgen
+
+static void Test_ee01220()
+{
+ extern Class_Descriptor cd_ee01220;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee01220, buf);
+ ee01220 *dp, &lv = *(dp=new (buf) ee01220());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee01220)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01220)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc220*), ABISELECT(24,16), "ee01220");
+ check_base_class_offset(lv, (bb20*)(cc220*), ABISELECT(16,12), "ee01220");
+ check_base_class_offset(lv, (cc220*)(dd1220*), ABISELECT(16,12), "ee01220");
+ check_base_class_offset(lv, (dd1220*), 0, "ee01220");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01220.e");
+ test_class_info(&lv, &cd_ee01220);
+ dp->~ee01220();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01220(Test_ee01220, "ee01220", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee01220C1Ev();
+extern void _ZN7ee01220D1Ev();
+Name_Map name_map_ee01220[] = {
+ NSPAIR(_ZN7ee01220C1Ev),
+ NSPAIR(_ZN7ee01220D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc220;
+extern VTBL_ENTRY _ZTI5cc220[];
+extern VTBL_ENTRY _ZTV5cc220[];
+extern Class_Descriptor cd_dd1220;
+extern VTBL_ENTRY _ZTI6dd1220[];
+extern VTBL_ENTRY _ZTV6dd1220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1220[];
+static Base_Class bases_ee01220[] = {
+ // 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_bb20, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc220, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1220, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee01220[];
+extern void _ZN5cc2203fooEv();
+static VTBL_ENTRY vtc_ee01220[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01220[0]),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01220[0]),
+ (VTBL_ENTRY)&_ZN5cc2203fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee01220[];
+static VTBL_ENTRY _tg__ZTV6dd1220__7ee01220[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1220[0]),
+};
+extern void _ZN5cc2203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc220__6dd1220__7ee01220[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1220[0]),
+ (VTBL_ENTRY)&_ZN5cc2203fooEv,
+};
+static VTT_ENTRY vtt_ee01220[] = {
+ {&(_ZTV7ee01220[3]), 3,7},
+ {&(_tg__ZTV6dd1220__7ee01220[3]), 3,3},
+ {&(_tg__ZTV5cc220__6dd1220__7ee01220[3]), 3,4},
+ {&(_ZTV7ee01220[6]), 6,7},
+};
+extern VTBL_ENTRY _ZTI7ee01220[];
+extern VTBL_ENTRY _ZTV7ee01220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01220[];
+Class_Descriptor cd_ee01220 = { "ee01220", // class name
+ bases_ee01220, 4,
+ &(vtc_ee01220[0]), // expected_vtbl_contents
+ &(vtt_ee01220[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee01220),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01220),7, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01220),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 ee11220 : virtual dd1220 {
+ int e;
+ ~ee11220(); // tgen
+ ee11220(); // tgen
+};
+//SIG(1 ee11220) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v1 Fi} v1 Fi} Fi} Fi}
+
+
+ee11220 ::~ee11220(){ note_dtor("ee11220", this);} // tgen
+ee11220 ::ee11220(){ note_ctor("ee11220", this);} // tgen
+
+static void Test_ee11220()
+{
+ extern Class_Descriptor cd_ee11220;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee11220, buf);
+ ee11220 *dp, &lv = *(dp=new (buf) ee11220());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee11220)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11220)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc220*), ABISELECT(40,20), "ee11220");
+ check_base_class_offset(lv, (bb20*)(cc220*), ABISELECT(32,16), "ee11220");
+ check_base_class_offset(lv, (cc220*)(dd1220*), ABISELECT(32,16), "ee11220");
+ check_base_class_offset(lv, (dd1220*), ABISELECT(16,8), "ee11220");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11220.e");
+ test_class_info(&lv, &cd_ee11220);
+ dp->~ee11220();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11220(Test_ee11220, "ee11220", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee11220C1Ev();
+extern void _ZN7ee11220D1Ev();
+Name_Map name_map_ee11220[] = {
+ NSPAIR(_ZN7ee11220C1Ev),
+ NSPAIR(_ZN7ee11220D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc220;
+extern VTBL_ENTRY _ZTI5cc220[];
+extern VTBL_ENTRY _ZTV5cc220[];
+extern Class_Descriptor cd_dd1220;
+extern VTBL_ENTRY _ZTI6dd1220[];
+extern VTBL_ENTRY _ZTV6dd1220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1220[];
+static Base_Class bases_ee11220[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc220, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1220, 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 _ZTI7ee11220[];
+extern void _ZN5cc2203fooEv();
+static VTBL_ENTRY vtc_ee11220[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11220[0]),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11220[0]),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11220[0]),
+ (VTBL_ENTRY)&_ZN5cc2203fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee11220[];
+static VTBL_ENTRY _tg__ZTV6dd1220__7ee11220[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1220[0]),
+};
+extern void _ZN5cc2203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc220__6dd1220__7ee11220[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1220[0]),
+ (VTBL_ENTRY)&_ZN5cc2203fooEv,
+};
+static VTT_ENTRY vtt_ee11220[] = {
+ {&(_ZTV7ee11220[4]), 4,11},
+ {&(_ZTV7ee11220[7]), 7,11},
+ {&(_ZTV7ee11220[10]), 10,11},
+ {&(_tg__ZTV6dd1220__7ee11220[3]), 3,3},
+ {&(_tg__ZTV5cc220__6dd1220__7ee11220[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee11220[];
+extern VTBL_ENTRY _ZTV7ee11220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11220[];
+Class_Descriptor cd_ee11220 = { "ee11220", // class name
+ bases_ee11220, 4,
+ &(vtc_ee11220[0]), // expected_vtbl_contents
+ &(vtt_ee11220[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee11220),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11220),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11220),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 ee21220 : dd1220 {
+ int e;
+ virtual void foo(); // _ZN7ee212203fooEv
+ ~ee21220(); // tgen
+ ee21220(); // tgen
+};
+//SIG(1 ee21220) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee21220 ::foo(){vfunc_called(this, "_ZN7ee212203fooEv");}
+ee21220 ::~ee21220(){ note_dtor("ee21220", this);} // tgen
+ee21220 ::ee21220(){ note_ctor("ee21220", this);} // tgen
+
+static void Test_ee21220()
+{
+ extern Class_Descriptor cd_ee21220;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee21220, buf);
+ ee21220 *dp, &lv = *(dp=new (buf) ee21220());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee21220)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21220)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc220*), ABISELECT(24,16), "ee21220");
+ check_base_class_offset(lv, (bb20*)(cc220*), ABISELECT(16,12), "ee21220");
+ check_base_class_offset(lv, (cc220*)(dd1220*), ABISELECT(16,12), "ee21220");
+ check_base_class_offset(lv, (dd1220*), 0, "ee21220");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21220.e");
+ test_class_info(&lv, &cd_ee21220);
+ dp->~ee21220();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21220(Test_ee21220, "ee21220", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee21220C1Ev();
+extern void _ZN7ee21220D1Ev();
+Name_Map name_map_ee21220[] = {
+ NSPAIR(_ZN7ee21220C1Ev),
+ NSPAIR(_ZN7ee21220D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc220;
+extern VTBL_ENTRY _ZTI5cc220[];
+extern VTBL_ENTRY _ZTV5cc220[];
+extern Class_Descriptor cd_dd1220;
+extern VTBL_ENTRY _ZTI6dd1220[];
+extern VTBL_ENTRY _ZTV6dd1220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1220[];
+static Base_Class bases_ee21220[] = {
+ // 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_bb20, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc220, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1220, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee21220[];
+extern void _ZN7ee212203fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee212203fooEv,_ZTv0_n12_N7ee212203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee212203fooEv,_ZThn12_N7ee212203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee21220[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21220[0]),
+ (VTBL_ENTRY)&_ZN7ee212203fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21220[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee212203fooEv,_ZTv0_n12_N7ee212203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee21220[];
+static VTBL_ENTRY _tg__ZTV6dd1220__7ee21220[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1220[0]),
+};
+extern void _ZN5cc2203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc220__6dd1220__7ee21220[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1220[0]),
+ (VTBL_ENTRY)&_ZN5cc2203fooEv,
+};
+static VTT_ENTRY vtt_ee21220[] = {
+ {&(_ZTV7ee21220[3]), 3,8},
+ {&(_tg__ZTV6dd1220__7ee21220[3]), 3,3},
+ {&(_tg__ZTV5cc220__6dd1220__7ee21220[3]), 3,4},
+ {&(_ZTV7ee21220[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee21220[];
+extern VTBL_ENTRY _ZTV7ee21220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21220[];
+static VTBL_ENTRY alt_thunk_names94[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee212203fooEv,_ZTv0_n12_N7ee212203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee212203fooEv,_ZThn12_N7ee212203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21220 = { "ee21220", // class name
+ bases_ee21220, 4,
+ &(vtc_ee21220[0]), // expected_vtbl_contents
+ &(vtt_ee21220[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee21220),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21220),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21220),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names94,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee31220 : virtual dd1220 {
+ int e;
+ virtual void foo(); // _ZN7ee312203fooEv
+ ~ee31220(); // tgen
+ ee31220(); // tgen
+};
+//SIG(1 ee31220) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee31220 ::foo(){vfunc_called(this, "_ZN7ee312203fooEv");}
+ee31220 ::~ee31220(){ note_dtor("ee31220", this);} // tgen
+ee31220 ::ee31220(){ note_ctor("ee31220", this);} // tgen
+
+static void Test_ee31220()
+{
+ extern Class_Descriptor cd_ee31220;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee31220, buf);
+ ee31220 *dp, &lv = *(dp=new (buf) ee31220());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee31220)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31220)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc220*), ABISELECT(40,20), "ee31220");
+ check_base_class_offset(lv, (bb20*)(cc220*), ABISELECT(32,16), "ee31220");
+ check_base_class_offset(lv, (cc220*)(dd1220*), ABISELECT(32,16), "ee31220");
+ check_base_class_offset(lv, (dd1220*), ABISELECT(16,8), "ee31220");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31220.e");
+ test_class_info(&lv, &cd_ee31220);
+ dp->~ee31220();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31220(Test_ee31220, "ee31220", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee31220C1Ev();
+extern void _ZN7ee31220D1Ev();
+Name_Map name_map_ee31220[] = {
+ NSPAIR(_ZN7ee31220C1Ev),
+ NSPAIR(_ZN7ee31220D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc220;
+extern VTBL_ENTRY _ZTI5cc220[];
+extern VTBL_ENTRY _ZTV5cc220[];
+extern Class_Descriptor cd_dd1220;
+extern VTBL_ENTRY _ZTI6dd1220[];
+extern VTBL_ENTRY _ZTV6dd1220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1220[];
+static Base_Class bases_ee31220[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc220, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1220, 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 _ZTI7ee31220[];
+extern void _ZN7ee312203fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee312203fooEv,_ZTv0_n12_N7ee312203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee312203fooEv,_ZThn16_N7ee312203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee31220[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31220[0]),
+ (VTBL_ENTRY)&_ZN7ee312203fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31220[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31220[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee312203fooEv,_ZTv0_n12_N7ee312203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee31220[];
+static VTBL_ENTRY _tg__ZTV6dd1220__7ee31220[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1220[0]),
+};
+extern void _ZN5cc2203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc220__6dd1220__7ee31220[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1220[0]),
+ (VTBL_ENTRY)&_ZN5cc2203fooEv,
+};
+static VTT_ENTRY vtt_ee31220[] = {
+ {&(_ZTV7ee31220[4]), 4,12},
+ {&(_ZTV7ee31220[8]), 8,12},
+ {&(_ZTV7ee31220[11]), 11,12},
+ {&(_tg__ZTV6dd1220__7ee31220[3]), 3,3},
+ {&(_tg__ZTV5cc220__6dd1220__7ee31220[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee31220[];
+extern VTBL_ENTRY _ZTV7ee31220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31220[];
+static VTBL_ENTRY alt_thunk_names95[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee312203fooEv,_ZTv0_n12_N7ee312203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee312203fooEv,_ZThn16_N7ee312203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31220 = { "ee31220", // class name
+ bases_ee31220, 4,
+ &(vtc_ee31220[0]), // expected_vtbl_contents
+ &(vtt_ee31220[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee31220),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31220),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31220),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names95,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee41220 : dd1220 {
+ int e;
+ virtual void bar(); // _ZN7ee412203barEv
+ ~ee41220(); // tgen
+ ee41220(); // tgen
+};
+//SIG(1 ee41220) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee41220 ::bar(){vfunc_called(this, "_ZN7ee412203barEv");}
+ee41220 ::~ee41220(){ note_dtor("ee41220", this);} // tgen
+ee41220 ::ee41220(){ note_ctor("ee41220", this);} // tgen
+
+static void Test_ee41220()
+{
+ extern Class_Descriptor cd_ee41220;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee41220, buf);
+ ee41220 *dp, &lv = *(dp=new (buf) ee41220());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee41220)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41220)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc220*), ABISELECT(24,16), "ee41220");
+ check_base_class_offset(lv, (bb20*)(cc220*), ABISELECT(16,12), "ee41220");
+ check_base_class_offset(lv, (cc220*)(dd1220*), ABISELECT(16,12), "ee41220");
+ check_base_class_offset(lv, (dd1220*), 0, "ee41220");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41220.e");
+ test_class_info(&lv, &cd_ee41220);
+ dp->~ee41220();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41220(Test_ee41220, "ee41220", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee41220C1Ev();
+extern void _ZN7ee41220D1Ev();
+Name_Map name_map_ee41220[] = {
+ NSPAIR(_ZN7ee41220C1Ev),
+ NSPAIR(_ZN7ee41220D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc220;
+extern VTBL_ENTRY _ZTI5cc220[];
+extern VTBL_ENTRY _ZTV5cc220[];
+extern Class_Descriptor cd_dd1220;
+extern VTBL_ENTRY _ZTI6dd1220[];
+extern VTBL_ENTRY _ZTV6dd1220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1220[];
+static Base_Class bases_ee41220[] = {
+ // 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_bb20, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc220, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1220, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee41220[];
+extern void _ZN7ee412203barEv();
+extern void _ZN5cc2203fooEv();
+static VTBL_ENTRY vtc_ee41220[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41220[0]),
+ (VTBL_ENTRY)&_ZN7ee412203barEv,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41220[0]),
+ (VTBL_ENTRY)&_ZN5cc2203fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee41220[];
+static VTBL_ENTRY _tg__ZTV6dd1220__7ee41220[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1220[0]),
+};
+extern void _ZN5cc2203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc220__6dd1220__7ee41220[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1220[0]),
+ (VTBL_ENTRY)&_ZN5cc2203fooEv,
+};
+static VTT_ENTRY vtt_ee41220[] = {
+ {&(_ZTV7ee41220[3]), 3,8},
+ {&(_tg__ZTV6dd1220__7ee41220[3]), 3,3},
+ {&(_tg__ZTV5cc220__6dd1220__7ee41220[3]), 3,4},
+ {&(_ZTV7ee41220[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee41220[];
+extern VTBL_ENTRY _ZTV7ee41220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41220[];
+Class_Descriptor cd_ee41220 = { "ee41220", // class name
+ bases_ee41220, 4,
+ &(vtc_ee41220[0]), // expected_vtbl_contents
+ &(vtt_ee41220[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee41220),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41220),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41220),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 ee51220 : virtual dd1220 {
+ int e;
+ virtual void bar(); // _ZN7ee512203barEv
+ ~ee51220(); // tgen
+ ee51220(); // tgen
+};
+//SIG(1 ee51220) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee51220 ::bar(){vfunc_called(this, "_ZN7ee512203barEv");}
+ee51220 ::~ee51220(){ note_dtor("ee51220", this);} // tgen
+ee51220 ::ee51220(){ note_ctor("ee51220", this);} // tgen
+
+static void Test_ee51220()
+{
+ extern Class_Descriptor cd_ee51220;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee51220, buf);
+ ee51220 *dp, &lv = *(dp=new (buf) ee51220());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee51220)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51220)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc220*), ABISELECT(40,20), "ee51220");
+ check_base_class_offset(lv, (bb20*)(cc220*), ABISELECT(32,16), "ee51220");
+ check_base_class_offset(lv, (cc220*)(dd1220*), ABISELECT(32,16), "ee51220");
+ check_base_class_offset(lv, (dd1220*), ABISELECT(16,8), "ee51220");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51220.e");
+ test_class_info(&lv, &cd_ee51220);
+ dp->~ee51220();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51220(Test_ee51220, "ee51220", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee51220C1Ev();
+extern void _ZN7ee51220D1Ev();
+Name_Map name_map_ee51220[] = {
+ NSPAIR(_ZN7ee51220C1Ev),
+ NSPAIR(_ZN7ee51220D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc220;
+extern VTBL_ENTRY _ZTI5cc220[];
+extern VTBL_ENTRY _ZTV5cc220[];
+extern Class_Descriptor cd_dd1220;
+extern VTBL_ENTRY _ZTI6dd1220[];
+extern VTBL_ENTRY _ZTV6dd1220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1220[];
+static Base_Class bases_ee51220[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc220, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1220, 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 _ZTI7ee51220[];
+extern void _ZN7ee512203barEv();
+extern void _ZN5cc2203fooEv();
+static VTBL_ENTRY vtc_ee51220[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51220[0]),
+ (VTBL_ENTRY)&_ZN7ee512203barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51220[0]),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51220[0]),
+ (VTBL_ENTRY)&_ZN5cc2203fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee51220[];
+static VTBL_ENTRY _tg__ZTV6dd1220__7ee51220[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1220[0]),
+};
+extern void _ZN5cc2203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc220__6dd1220__7ee51220[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1220[0]),
+ (VTBL_ENTRY)&_ZN5cc2203fooEv,
+};
+static VTT_ENTRY vtt_ee51220[] = {
+ {&(_ZTV7ee51220[4]), 4,12},
+ {&(_ZTV7ee51220[8]), 8,12},
+ {&(_ZTV7ee51220[11]), 11,12},
+ {&(_tg__ZTV6dd1220__7ee51220[3]), 3,3},
+ {&(_tg__ZTV5cc220__6dd1220__7ee51220[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee51220[];
+extern VTBL_ENTRY _ZTV7ee51220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51220[];
+Class_Descriptor cd_ee51220 = { "ee51220", // class name
+ bases_ee51220, 4,
+ &(vtc_ee51220[0]), // expected_vtbl_contents
+ &(vtt_ee51220[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee51220),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51220),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51220),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 ee61220 : dd1220 {
+ int e;
+ virtual void foo(); // _ZN7ee612203fooEv
+ virtual void bar(); // _ZN7ee612203barEv
+ ~ee61220(); // tgen
+ ee61220(); // tgen
+};
+//SIG(1 ee61220) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v1 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee61220 ::foo(){vfunc_called(this, "_ZN7ee612203fooEv");}
+void ee61220 ::bar(){vfunc_called(this, "_ZN7ee612203barEv");}
+ee61220 ::~ee61220(){ note_dtor("ee61220", this);} // tgen
+ee61220 ::ee61220(){ note_ctor("ee61220", this);} // tgen
+
+static void Test_ee61220()
+{
+ extern Class_Descriptor cd_ee61220;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee61220, buf);
+ ee61220 *dp, &lv = *(dp=new (buf) ee61220());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee61220)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61220)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc220*), ABISELECT(24,16), "ee61220");
+ check_base_class_offset(lv, (bb20*)(cc220*), ABISELECT(16,12), "ee61220");
+ check_base_class_offset(lv, (cc220*)(dd1220*), ABISELECT(16,12), "ee61220");
+ check_base_class_offset(lv, (dd1220*), 0, "ee61220");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61220.e");
+ test_class_info(&lv, &cd_ee61220);
+ dp->~ee61220();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61220(Test_ee61220, "ee61220", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee61220C1Ev();
+extern void _ZN7ee61220D1Ev();
+Name_Map name_map_ee61220[] = {
+ NSPAIR(_ZN7ee61220C1Ev),
+ NSPAIR(_ZN7ee61220D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc220;
+extern VTBL_ENTRY _ZTI5cc220[];
+extern VTBL_ENTRY _ZTV5cc220[];
+extern Class_Descriptor cd_dd1220;
+extern VTBL_ENTRY _ZTI6dd1220[];
+extern VTBL_ENTRY _ZTV6dd1220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1220[];
+static Base_Class bases_ee61220[] = {
+ // 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_bb20, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc220, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1220, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee61220[];
+extern void _ZN7ee612203fooEv();
+extern void _ZN7ee612203barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee612203fooEv,_ZTv0_n12_N7ee612203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee612203fooEv,_ZThn12_N7ee612203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61220[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61220[0]),
+ (VTBL_ENTRY)&_ZN7ee612203fooEv,
+ (VTBL_ENTRY)&_ZN7ee612203barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61220[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee612203fooEv,_ZTv0_n12_N7ee612203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee61220[];
+static VTBL_ENTRY _tg__ZTV6dd1220__7ee61220[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1220[0]),
+};
+extern void _ZN5cc2203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc220__6dd1220__7ee61220[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1220[0]),
+ (VTBL_ENTRY)&_ZN5cc2203fooEv,
+};
+static VTT_ENTRY vtt_ee61220[] = {
+ {&(_ZTV7ee61220[3]), 3,9},
+ {&(_tg__ZTV6dd1220__7ee61220[3]), 3,3},
+ {&(_tg__ZTV5cc220__6dd1220__7ee61220[3]), 3,4},
+ {&(_ZTV7ee61220[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee61220[];
+extern VTBL_ENTRY _ZTV7ee61220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61220[];
+static VTBL_ENTRY alt_thunk_names96[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee612203fooEv,_ZTv0_n12_N7ee612203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee612203fooEv,_ZThn12_N7ee612203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61220 = { "ee61220", // class name
+ bases_ee61220, 4,
+ &(vtc_ee61220[0]), // expected_vtbl_contents
+ &(vtt_ee61220[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee61220),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61220),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61220),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names96,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee71220 : virtual dd1220 {
+ int e;
+ virtual void foo(); // _ZN7ee712203fooEv
+ virtual void bar(); // _ZN7ee712203barEv
+ ~ee71220(); // tgen
+ ee71220(); // tgen
+};
+//SIG(1 ee71220) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v1 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee71220 ::foo(){vfunc_called(this, "_ZN7ee712203fooEv");}
+void ee71220 ::bar(){vfunc_called(this, "_ZN7ee712203barEv");}
+ee71220 ::~ee71220(){ note_dtor("ee71220", this);} // tgen
+ee71220 ::ee71220(){ note_ctor("ee71220", this);} // tgen
+
+static void Test_ee71220()
+{
+ extern Class_Descriptor cd_ee71220;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee71220, buf);
+ ee71220 *dp, &lv = *(dp=new (buf) ee71220());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee71220)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71220)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc220*), ABISELECT(40,20), "ee71220");
+ check_base_class_offset(lv, (bb20*)(cc220*), ABISELECT(32,16), "ee71220");
+ check_base_class_offset(lv, (cc220*)(dd1220*), ABISELECT(32,16), "ee71220");
+ check_base_class_offset(lv, (dd1220*), ABISELECT(16,8), "ee71220");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71220.e");
+ test_class_info(&lv, &cd_ee71220);
+ dp->~ee71220();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71220(Test_ee71220, "ee71220", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee71220C1Ev();
+extern void _ZN7ee71220D1Ev();
+Name_Map name_map_ee71220[] = {
+ NSPAIR(_ZN7ee71220C1Ev),
+ NSPAIR(_ZN7ee71220D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc220;
+extern VTBL_ENTRY _ZTI5cc220[];
+extern VTBL_ENTRY _ZTV5cc220[];
+extern Class_Descriptor cd_dd1220;
+extern VTBL_ENTRY _ZTI6dd1220[];
+extern VTBL_ENTRY _ZTV6dd1220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1220[];
+static Base_Class bases_ee71220[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc220, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1220, 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 _ZTI7ee71220[];
+extern void _ZN7ee712203fooEv();
+extern void _ZN7ee712203barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee712203fooEv,_ZTv0_n12_N7ee712203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee712203fooEv,_ZThn16_N7ee712203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71220[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71220[0]),
+ (VTBL_ENTRY)&_ZN7ee712203fooEv,
+ (VTBL_ENTRY)&_ZN7ee712203barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71220[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71220[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee712203fooEv,_ZTv0_n12_N7ee712203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee71220[];
+static VTBL_ENTRY _tg__ZTV6dd1220__7ee71220[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1220[0]),
+};
+extern void _ZN5cc2203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc220__6dd1220__7ee71220[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1220[0]),
+ (VTBL_ENTRY)&_ZN5cc2203fooEv,
+};
+static VTT_ENTRY vtt_ee71220[] = {
+ {&(_ZTV7ee71220[4]), 4,13},
+ {&(_ZTV7ee71220[9]), 9,13},
+ {&(_ZTV7ee71220[12]), 12,13},
+ {&(_tg__ZTV6dd1220__7ee71220[3]), 3,3},
+ {&(_tg__ZTV5cc220__6dd1220__7ee71220[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee71220[];
+extern VTBL_ENTRY _ZTV7ee71220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71220[];
+static VTBL_ENTRY alt_thunk_names97[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee712203fooEv,_ZTv0_n12_N7ee712203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee712203fooEv,_ZThn16_N7ee712203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71220 = { "ee71220", // class name
+ bases_ee71220, 4,
+ &(vtc_ee71220[0]), // expected_vtbl_contents
+ &(vtt_ee71220[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee71220),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71220),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71220),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names97,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd2220 : cc220 {
+ int d;
+ virtual void foo(); // _ZN6dd22203fooEv
+ ~dd2220(); // tgen
+ dd2220(); // tgen
+};
+//SIG(-1 dd2220) C1{ BC2{ BC3{ BC4{ Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void dd2220 ::foo(){vfunc_called(this, "_ZN6dd22203fooEv");}
+dd2220 ::~dd2220(){ note_dtor("dd2220", this);} // tgen
+dd2220 ::dd2220(){ note_ctor("dd2220", this);} // tgen
+
+static void Test_dd2220()
+{
+ extern Class_Descriptor cd_dd2220;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd2220, buf);
+ dd2220 *dp, &lv = *(dp=new (buf) dd2220());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd2220)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2220)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc220*), ABISELECT(8,4), "dd2220");
+ check_base_class_offset(lv, (bb20*)(cc220*), 0, "dd2220");
+ check_base_class_offset(lv, (cc220*), 0, "dd2220");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd2220.d");
+ test_class_info(&lv, &cd_dd2220);
+ dp->~dd2220();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2220(Test_dd2220, "dd2220", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd2220C1Ev();
+extern void _ZN6dd2220D1Ev();
+Name_Map name_map_dd2220[] = {
+ NSPAIR(_ZN6dd2220C1Ev),
+ NSPAIR(_ZN6dd2220D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc220;
+extern VTBL_ENTRY _ZTI5cc220[];
+extern VTBL_ENTRY _ZTV5cc220[];
+static Base_Class bases_dd2220[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc220, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI6dd2220[];
+extern void _ZN6dd22203fooEv();
+static VTBL_ENTRY vtc_dd2220[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2220[0]),
+ (VTBL_ENTRY)&_ZN6dd22203fooEv,
+};
+extern VTBL_ENTRY _ZTI6dd2220[];
+extern VTBL_ENTRY _ZTV6dd2220[];
+Class_Descriptor cd_dd2220 = { "dd2220", // class name
+ bases_dd2220, 3,
+ &(vtc_dd2220[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd2220),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2220),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 ee02220 : dd2220 {
+ int e;
+ ~ee02220(); // tgen
+ ee02220(); // tgen
+};
+//SIG(1 ee02220) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v1 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee02220 ::~ee02220(){ note_dtor("ee02220", this);} // tgen
+ee02220 ::ee02220(){ note_ctor("ee02220", this);} // tgen
+
+static void Test_ee02220()
+{
+ extern Class_Descriptor cd_ee02220;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee02220, buf);
+ ee02220 *dp, &lv = *(dp=new (buf) ee02220());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee02220)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02220)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc220*)(dd2220*), ABISELECT(8,4), "ee02220");
+ check_base_class_offset(lv, (bb20*)(cc220*)(dd2220*), 0, "ee02220");
+ check_base_class_offset(lv, (cc220*)(dd2220*), 0, "ee02220");
+ check_base_class_offset(lv, (dd2220*), 0, "ee02220");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee02220.e");
+ test_class_info(&lv, &cd_ee02220);
+ dp->~ee02220();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02220(Test_ee02220, "ee02220", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee02220C1Ev();
+extern void _ZN7ee02220D1Ev();
+Name_Map name_map_ee02220[] = {
+ NSPAIR(_ZN7ee02220C1Ev),
+ NSPAIR(_ZN7ee02220D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc220;
+extern VTBL_ENTRY _ZTI5cc220[];
+extern VTBL_ENTRY _ZTV5cc220[];
+extern Class_Descriptor cd_dd2220;
+extern VTBL_ENTRY _ZTI6dd2220[];
+extern VTBL_ENTRY _ZTV6dd2220[];
+static Base_Class bases_ee02220[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc220, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2220, 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 _ZTI7ee02220[];
+extern void _ZN6dd22203fooEv();
+static VTBL_ENTRY vtc_ee02220[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02220[0]),
+ (VTBL_ENTRY)&_ZN6dd22203fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee02220[];
+extern VTBL_ENTRY _ZTV7ee02220[];
+Class_Descriptor cd_ee02220 = { "ee02220", // class name
+ bases_ee02220, 4,
+ &(vtc_ee02220[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee02220),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02220),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 ee12220 : virtual dd2220 {
+ int e;
+ ~ee12220(); // tgen
+ ee12220(); // tgen
+};
+//SIG(1 ee12220) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v1 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee12220 ::~ee12220(){ note_dtor("ee12220", this);} // tgen
+ee12220 ::ee12220(){ note_ctor("ee12220", this);} // tgen
+
+static void Test_ee12220()
+{
+ extern Class_Descriptor cd_ee12220;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee12220, buf);
+ ee12220 *dp, &lv = *(dp=new (buf) ee12220());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee12220)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12220)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc220*)(dd2220*), ABISELECT(24,12), "ee12220");
+ check_base_class_offset(lv, (bb20*)(cc220*)(dd2220*), ABISELECT(16,8), "ee12220");
+ check_base_class_offset(lv, (cc220*)(dd2220*), ABISELECT(16,8), "ee12220");
+ check_base_class_offset(lv, (dd2220*), ABISELECT(16,8), "ee12220");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12220.e");
+ test_class_info(&lv, &cd_ee12220);
+ dp->~ee12220();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12220(Test_ee12220, "ee12220", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee12220C1Ev();
+extern void _ZN7ee12220D1Ev();
+Name_Map name_map_ee12220[] = {
+ NSPAIR(_ZN7ee12220C1Ev),
+ NSPAIR(_ZN7ee12220D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc220;
+extern VTBL_ENTRY _ZTI5cc220[];
+extern VTBL_ENTRY _ZTV5cc220[];
+extern Class_Descriptor cd_dd2220;
+extern VTBL_ENTRY _ZTI6dd2220[];
+extern VTBL_ENTRY _ZTV6dd2220[];
+static Base_Class bases_ee12220[] = {
+ // 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_bb20, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc220, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2220, 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 _ZTI7ee12220[];
+extern void _ZN6dd22203fooEv();
+static VTBL_ENTRY vtc_ee12220[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12220[0]),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12220[0]),
+ (VTBL_ENTRY)&_ZN6dd22203fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee12220[];
+static VTT_ENTRY vtt_ee12220[] = {
+ {&(_ZTV7ee12220[3]), 3,7},
+ {&(_ZTV7ee12220[6]), 6,7},
+};
+extern VTBL_ENTRY _ZTI7ee12220[];
+extern VTBL_ENTRY _ZTV7ee12220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12220[];
+Class_Descriptor cd_ee12220 = { "ee12220", // class name
+ bases_ee12220, 4,
+ &(vtc_ee12220[0]), // expected_vtbl_contents
+ &(vtt_ee12220[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee12220),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12220),7, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12220),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 ee22220 : dd2220 {
+ int e;
+ virtual void foo(); // _ZN7ee222203fooEv
+ ~ee22220(); // tgen
+ ee22220(); // tgen
+};
+//SIG(1 ee22220) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v1 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee22220 ::foo(){vfunc_called(this, "_ZN7ee222203fooEv");}
+ee22220 ::~ee22220(){ note_dtor("ee22220", this);} // tgen
+ee22220 ::ee22220(){ note_ctor("ee22220", this);} // tgen
+
+static void Test_ee22220()
+{
+ extern Class_Descriptor cd_ee22220;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee22220, buf);
+ ee22220 *dp, &lv = *(dp=new (buf) ee22220());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee22220)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22220)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc220*)(dd2220*), ABISELECT(8,4), "ee22220");
+ check_base_class_offset(lv, (bb20*)(cc220*)(dd2220*), 0, "ee22220");
+ check_base_class_offset(lv, (cc220*)(dd2220*), 0, "ee22220");
+ check_base_class_offset(lv, (dd2220*), 0, "ee22220");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee22220.e");
+ test_class_info(&lv, &cd_ee22220);
+ dp->~ee22220();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22220(Test_ee22220, "ee22220", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee22220C1Ev();
+extern void _ZN7ee22220D1Ev();
+Name_Map name_map_ee22220[] = {
+ NSPAIR(_ZN7ee22220C1Ev),
+ NSPAIR(_ZN7ee22220D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc220;
+extern VTBL_ENTRY _ZTI5cc220[];
+extern VTBL_ENTRY _ZTV5cc220[];
+extern Class_Descriptor cd_dd2220;
+extern VTBL_ENTRY _ZTI6dd2220[];
+extern VTBL_ENTRY _ZTV6dd2220[];
+static Base_Class bases_ee22220[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc220, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2220, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee22220[];
+extern void _ZN7ee222203fooEv();
+static VTBL_ENTRY vtc_ee22220[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22220[0]),
+ (VTBL_ENTRY)&_ZN7ee222203fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee22220[];
+extern VTBL_ENTRY _ZTV7ee22220[];
+Class_Descriptor cd_ee22220 = { "ee22220", // class name
+ bases_ee22220, 4,
+ &(vtc_ee22220[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee22220),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22220),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 ee32220 : virtual dd2220 {
+ int e;
+ virtual void foo(); // _ZN7ee322203fooEv
+ ~ee32220(); // tgen
+ ee32220(); // tgen
+};
+//SIG(1 ee32220) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v1 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee32220 ::foo(){vfunc_called(this, "_ZN7ee322203fooEv");}
+ee32220 ::~ee32220(){ note_dtor("ee32220", this);} // tgen
+ee32220 ::ee32220(){ note_ctor("ee32220", this);} // tgen
+
+static void Test_ee32220()
+{
+ extern Class_Descriptor cd_ee32220;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee32220, buf);
+ ee32220 *dp, &lv = *(dp=new (buf) ee32220());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee32220)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32220)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc220*)(dd2220*), ABISELECT(24,12), "ee32220");
+ check_base_class_offset(lv, (bb20*)(cc220*)(dd2220*), ABISELECT(16,8), "ee32220");
+ check_base_class_offset(lv, (cc220*)(dd2220*), ABISELECT(16,8), "ee32220");
+ check_base_class_offset(lv, (dd2220*), ABISELECT(16,8), "ee32220");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32220.e");
+ test_class_info(&lv, &cd_ee32220);
+ dp->~ee32220();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32220(Test_ee32220, "ee32220", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee32220C1Ev();
+extern void _ZN7ee32220D1Ev();
+Name_Map name_map_ee32220[] = {
+ NSPAIR(_ZN7ee32220C1Ev),
+ NSPAIR(_ZN7ee32220D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc220;
+extern VTBL_ENTRY _ZTI5cc220[];
+extern VTBL_ENTRY _ZTV5cc220[];
+extern Class_Descriptor cd_dd2220;
+extern VTBL_ENTRY _ZTI6dd2220[];
+extern VTBL_ENTRY _ZTV6dd2220[];
+static Base_Class bases_ee32220[] = {
+ // 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_bb20, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc220, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2220, 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 _ZTI7ee32220[];
+extern void _ZN7ee322203fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee322203fooEv,_ZTv0_n12_N7ee322203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee322203fooEv,_ZThn8_N7ee322203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee32220[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32220[0]),
+ (VTBL_ENTRY)&_ZN7ee322203fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32220[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee322203fooEv,_ZTv0_n12_N7ee322203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee32220[];
+static VTT_ENTRY vtt_ee32220[] = {
+ {&(_ZTV7ee32220[3]), 3,8},
+ {&(_ZTV7ee32220[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee32220[];
+extern VTBL_ENTRY _ZTV7ee32220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32220[];
+static VTBL_ENTRY alt_thunk_names98[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee322203fooEv,_ZTv0_n12_N7ee322203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee322203fooEv,_ZThn8_N7ee322203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32220 = { "ee32220", // class name
+ bases_ee32220, 4,
+ &(vtc_ee32220[0]), // expected_vtbl_contents
+ &(vtt_ee32220[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee32220),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32220),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32220),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names98,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee42220 : dd2220 {
+ int e;
+ virtual void bar(); // _ZN7ee422203barEv
+ ~ee42220(); // tgen
+ ee42220(); // tgen
+};
+//SIG(1 ee42220) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v2 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee42220 ::bar(){vfunc_called(this, "_ZN7ee422203barEv");}
+ee42220 ::~ee42220(){ note_dtor("ee42220", this);} // tgen
+ee42220 ::ee42220(){ note_ctor("ee42220", this);} // tgen
+
+static void Test_ee42220()
+{
+ extern Class_Descriptor cd_ee42220;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee42220, buf);
+ ee42220 *dp, &lv = *(dp=new (buf) ee42220());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee42220)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42220)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc220*)(dd2220*), ABISELECT(8,4), "ee42220");
+ check_base_class_offset(lv, (bb20*)(cc220*)(dd2220*), 0, "ee42220");
+ check_base_class_offset(lv, (cc220*)(dd2220*), 0, "ee42220");
+ check_base_class_offset(lv, (dd2220*), 0, "ee42220");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee42220.e");
+ test_class_info(&lv, &cd_ee42220);
+ dp->~ee42220();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42220(Test_ee42220, "ee42220", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee42220C1Ev();
+extern void _ZN7ee42220D1Ev();
+Name_Map name_map_ee42220[] = {
+ NSPAIR(_ZN7ee42220C1Ev),
+ NSPAIR(_ZN7ee42220D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc220;
+extern VTBL_ENTRY _ZTI5cc220[];
+extern VTBL_ENTRY _ZTV5cc220[];
+extern Class_Descriptor cd_dd2220;
+extern VTBL_ENTRY _ZTI6dd2220[];
+extern VTBL_ENTRY _ZTV6dd2220[];
+static Base_Class bases_ee42220[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc220, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2220, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee42220[];
+extern void _ZN6dd22203fooEv();
+extern void _ZN7ee422203barEv();
+static VTBL_ENTRY vtc_ee42220[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42220[0]),
+ (VTBL_ENTRY)&_ZN6dd22203fooEv,
+ (VTBL_ENTRY)&_ZN7ee422203barEv,
+};
+extern VTBL_ENTRY _ZTI7ee42220[];
+extern VTBL_ENTRY _ZTV7ee42220[];
+Class_Descriptor cd_ee42220 = { "ee42220", // class name
+ bases_ee42220, 4,
+ &(vtc_ee42220[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee42220),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42220),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 ee52220 : virtual dd2220 {
+ int e;
+ virtual void bar(); // _ZN7ee522203barEv
+ ~ee52220(); // tgen
+ ee52220(); // tgen
+};
+//SIG(1 ee52220) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v2 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee52220 ::bar(){vfunc_called(this, "_ZN7ee522203barEv");}
+ee52220 ::~ee52220(){ note_dtor("ee52220", this);} // tgen
+ee52220 ::ee52220(){ note_ctor("ee52220", this);} // tgen
+
+static void Test_ee52220()
+{
+ extern Class_Descriptor cd_ee52220;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee52220, buf);
+ ee52220 *dp, &lv = *(dp=new (buf) ee52220());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee52220)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52220)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc220*)(dd2220*), ABISELECT(24,12), "ee52220");
+ check_base_class_offset(lv, (bb20*)(cc220*)(dd2220*), ABISELECT(16,8), "ee52220");
+ check_base_class_offset(lv, (cc220*)(dd2220*), ABISELECT(16,8), "ee52220");
+ check_base_class_offset(lv, (dd2220*), ABISELECT(16,8), "ee52220");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52220.e");
+ test_class_info(&lv, &cd_ee52220);
+ dp->~ee52220();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52220(Test_ee52220, "ee52220", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee52220C1Ev();
+extern void _ZN7ee52220D1Ev();
+Name_Map name_map_ee52220[] = {
+ NSPAIR(_ZN7ee52220C1Ev),
+ NSPAIR(_ZN7ee52220D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc220;
+extern VTBL_ENTRY _ZTI5cc220[];
+extern VTBL_ENTRY _ZTV5cc220[];
+extern Class_Descriptor cd_dd2220;
+extern VTBL_ENTRY _ZTI6dd2220[];
+extern VTBL_ENTRY _ZTV6dd2220[];
+static Base_Class bases_ee52220[] = {
+ // 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_bb20, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc220, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2220, 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 _ZTI7ee52220[];
+extern void _ZN7ee522203barEv();
+extern void _ZN6dd22203fooEv();
+static VTBL_ENTRY vtc_ee52220[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52220[0]),
+ (VTBL_ENTRY)&_ZN7ee522203barEv,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52220[0]),
+ (VTBL_ENTRY)&_ZN6dd22203fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee52220[];
+static VTT_ENTRY vtt_ee52220[] = {
+ {&(_ZTV7ee52220[3]), 3,8},
+ {&(_ZTV7ee52220[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee52220[];
+extern VTBL_ENTRY _ZTV7ee52220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52220[];
+Class_Descriptor cd_ee52220 = { "ee52220", // class name
+ bases_ee52220, 4,
+ &(vtc_ee52220[0]), // expected_vtbl_contents
+ &(vtt_ee52220[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee52220),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52220),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52220),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 ee62220 : dd2220 {
+ int e;
+ virtual void foo(); // _ZN7ee622203fooEv
+ virtual void bar(); // _ZN7ee622203barEv
+ ~ee62220(); // tgen
+ ee62220(); // tgen
+};
+//SIG(1 ee62220) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v1 Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62220 ::foo(){vfunc_called(this, "_ZN7ee622203fooEv");}
+void ee62220 ::bar(){vfunc_called(this, "_ZN7ee622203barEv");}
+ee62220 ::~ee62220(){ note_dtor("ee62220", this);} // tgen
+ee62220 ::ee62220(){ note_ctor("ee62220", this);} // tgen
+
+static void Test_ee62220()
+{
+ extern Class_Descriptor cd_ee62220;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee62220, buf);
+ ee62220 *dp, &lv = *(dp=new (buf) ee62220());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee62220)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62220)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc220*)(dd2220*), ABISELECT(8,4), "ee62220");
+ check_base_class_offset(lv, (bb20*)(cc220*)(dd2220*), 0, "ee62220");
+ check_base_class_offset(lv, (cc220*)(dd2220*), 0, "ee62220");
+ check_base_class_offset(lv, (dd2220*), 0, "ee62220");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee62220.e");
+ test_class_info(&lv, &cd_ee62220);
+ dp->~ee62220();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62220(Test_ee62220, "ee62220", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee62220C1Ev();
+extern void _ZN7ee62220D1Ev();
+Name_Map name_map_ee62220[] = {
+ NSPAIR(_ZN7ee62220C1Ev),
+ NSPAIR(_ZN7ee62220D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc220;
+extern VTBL_ENTRY _ZTI5cc220[];
+extern VTBL_ENTRY _ZTV5cc220[];
+extern Class_Descriptor cd_dd2220;
+extern VTBL_ENTRY _ZTI6dd2220[];
+extern VTBL_ENTRY _ZTV6dd2220[];
+static Base_Class bases_ee62220[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc220, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2220, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee62220[];
+extern void _ZN7ee622203fooEv();
+extern void _ZN7ee622203barEv();
+static VTBL_ENTRY vtc_ee62220[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62220[0]),
+ (VTBL_ENTRY)&_ZN7ee622203fooEv,
+ (VTBL_ENTRY)&_ZN7ee622203barEv,
+};
+extern VTBL_ENTRY _ZTI7ee62220[];
+extern VTBL_ENTRY _ZTV7ee62220[];
+Class_Descriptor cd_ee62220 = { "ee62220", // class name
+ bases_ee62220, 4,
+ &(vtc_ee62220[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee62220),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62220),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 ee72220 : virtual dd2220 {
+ int e;
+ virtual void foo(); // _ZN7ee722203fooEv
+ virtual void bar(); // _ZN7ee722203barEv
+ ~ee72220(); // tgen
+ ee72220(); // tgen
+};
+//SIG(1 ee72220) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v1 Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72220 ::foo(){vfunc_called(this, "_ZN7ee722203fooEv");}
+void ee72220 ::bar(){vfunc_called(this, "_ZN7ee722203barEv");}
+ee72220 ::~ee72220(){ note_dtor("ee72220", this);} // tgen
+ee72220 ::ee72220(){ note_ctor("ee72220", this);} // tgen
+
+static void Test_ee72220()
+{
+ extern Class_Descriptor cd_ee72220;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee72220, buf);
+ ee72220 *dp, &lv = *(dp=new (buf) ee72220());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee72220)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72220)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc220*)(dd2220*), ABISELECT(24,12), "ee72220");
+ check_base_class_offset(lv, (bb20*)(cc220*)(dd2220*), ABISELECT(16,8), "ee72220");
+ check_base_class_offset(lv, (cc220*)(dd2220*), ABISELECT(16,8), "ee72220");
+ check_base_class_offset(lv, (dd2220*), ABISELECT(16,8), "ee72220");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72220.e");
+ test_class_info(&lv, &cd_ee72220);
+ dp->~ee72220();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72220(Test_ee72220, "ee72220", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee72220C1Ev();
+extern void _ZN7ee72220D1Ev();
+Name_Map name_map_ee72220[] = {
+ NSPAIR(_ZN7ee72220C1Ev),
+ NSPAIR(_ZN7ee72220D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc220;
+extern VTBL_ENTRY _ZTI5cc220[];
+extern VTBL_ENTRY _ZTV5cc220[];
+extern Class_Descriptor cd_dd2220;
+extern VTBL_ENTRY _ZTI6dd2220[];
+extern VTBL_ENTRY _ZTV6dd2220[];
+static Base_Class bases_ee72220[] = {
+ // 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_bb20, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc220, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2220, 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 _ZTI7ee72220[];
+extern void _ZN7ee722203fooEv();
+extern void _ZN7ee722203barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee722203fooEv,_ZTv0_n12_N7ee722203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee722203fooEv,_ZThn8_N7ee722203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72220[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72220[0]),
+ (VTBL_ENTRY)&_ZN7ee722203fooEv,
+ (VTBL_ENTRY)&_ZN7ee722203barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72220[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee722203fooEv,_ZTv0_n12_N7ee722203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee72220[];
+static VTT_ENTRY vtt_ee72220[] = {
+ {&(_ZTV7ee72220[3]), 3,9},
+ {&(_ZTV7ee72220[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee72220[];
+extern VTBL_ENTRY _ZTV7ee72220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72220[];
+static VTBL_ENTRY alt_thunk_names99[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee722203fooEv,_ZTv0_n12_N7ee722203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee722203fooEv,_ZThn8_N7ee722203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72220 = { "ee72220", // class name
+ bases_ee72220, 4,
+ &(vtc_ee72220[0]), // expected_vtbl_contents
+ &(vtt_ee72220[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee72220),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72220),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72220),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names99,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd3220 : virtual cc220 {
+ int d;
+ virtual void foo(); // _ZN6dd32203fooEv
+ ~dd3220(); // tgen
+ dd3220(); // tgen
+};
+//SIG(-1 dd3220) C1{ VBC2{ BC3{ BC4{ Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void dd3220 ::foo(){vfunc_called(this, "_ZN6dd32203fooEv");}
+dd3220 ::~dd3220(){ note_dtor("dd3220", this);} // tgen
+dd3220 ::dd3220(){ note_ctor("dd3220", this);} // tgen
+
+static void Test_dd3220()
+{
+ extern Class_Descriptor cd_dd3220;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd3220, buf);
+ dd3220 *dp, &lv = *(dp=new (buf) dd3220());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd3220)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3220)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc220*), ABISELECT(24,12), "dd3220");
+ check_base_class_offset(lv, (bb20*)(cc220*), ABISELECT(16,8), "dd3220");
+ check_base_class_offset(lv, (cc220*), ABISELECT(16,8), "dd3220");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3220.d");
+ test_class_info(&lv, &cd_dd3220);
+ dp->~dd3220();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3220(Test_dd3220, "dd3220", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd3220C1Ev();
+extern void _ZN6dd3220D1Ev();
+Name_Map name_map_dd3220[] = {
+ NSPAIR(_ZN6dd3220C1Ev),
+ NSPAIR(_ZN6dd3220D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc220;
+extern VTBL_ENTRY _ZTI5cc220[];
+extern VTBL_ENTRY _ZTV5cc220[];
+static Base_Class bases_dd3220[] = {
+ // 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_bb20, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc220, 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 _ZTI6dd3220[];
+extern void _ZN6dd32203fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd32203fooEv,_ZTv0_n12_N6dd32203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32203fooEv,_ZThn8_N6dd32203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd3220[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3220[0]),
+ (VTBL_ENTRY)&_ZN6dd32203fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3220[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32203fooEv,_ZTv0_n12_N6dd32203fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd3220[];
+static VTT_ENTRY vtt_dd3220[] = {
+ {&(_ZTV6dd3220[3]), 3,8},
+ {&(_ZTV6dd3220[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI6dd3220[];
+extern VTBL_ENTRY _ZTV6dd3220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3220[];
+static VTBL_ENTRY alt_thunk_names100[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32203fooEv,_ZTv0_n12_N6dd32203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32203fooEv,_ZThn8_N6dd32203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3220 = { "dd3220", // class name
+ bases_dd3220, 3,
+ &(vtc_dd3220[0]), // expected_vtbl_contents
+ &(vtt_dd3220[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd3220),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3220),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3220),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names100,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03220 : dd3220 {
+ int e;
+ ~ee03220(); // tgen
+ ee03220(); // tgen
+};
+//SIG(1 ee03220) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v1 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee03220 ::~ee03220(){ note_dtor("ee03220", this);} // tgen
+ee03220 ::ee03220(){ note_ctor("ee03220", this);} // tgen
+
+static void Test_ee03220()
+{
+ extern Class_Descriptor cd_ee03220;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee03220, buf);
+ ee03220 *dp, &lv = *(dp=new (buf) ee03220());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee03220)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03220)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc220*), ABISELECT(24,16), "ee03220");
+ check_base_class_offset(lv, (bb20*)(cc220*), ABISELECT(16,12), "ee03220");
+ check_base_class_offset(lv, (cc220*)(dd3220*), ABISELECT(16,12), "ee03220");
+ check_base_class_offset(lv, (dd3220*), 0, "ee03220");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03220.e");
+ test_class_info(&lv, &cd_ee03220);
+ dp->~ee03220();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03220(Test_ee03220, "ee03220", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee03220C1Ev();
+extern void _ZN7ee03220D1Ev();
+Name_Map name_map_ee03220[] = {
+ NSPAIR(_ZN7ee03220C1Ev),
+ NSPAIR(_ZN7ee03220D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc220;
+extern VTBL_ENTRY _ZTI5cc220[];
+extern VTBL_ENTRY _ZTV5cc220[];
+extern Class_Descriptor cd_dd3220;
+extern VTBL_ENTRY _ZTI6dd3220[];
+extern VTBL_ENTRY _ZTV6dd3220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3220[];
+static Base_Class bases_ee03220[] = {
+ // 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_bb20, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc220, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3220, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee03220[];
+extern void _ZN6dd32203fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd32203fooEv,_ZTv0_n12_N6dd32203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32203fooEv,_ZThn12_N6dd32203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee03220[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03220[0]),
+ (VTBL_ENTRY)&_ZN6dd32203fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03220[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32203fooEv,_ZTv0_n12_N6dd32203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee03220[];
+extern void _ZN6dd32203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3220__7ee03220[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3220[0]),
+ (VTBL_ENTRY)&_ZN6dd32203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32203fooEv,_ZTv0_n12_N6dd32203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32203fooEv,_ZThn12_N6dd32203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc220__6dd3220__7ee03220[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3220[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32203fooEv,_ZTv0_n12_N6dd32203fooEv),
+};
+static VTT_ENTRY vtt_ee03220[] = {
+ {&(_ZTV7ee03220[3]), 3,8},
+ {&(_tg__ZTV6dd3220__7ee03220[3]), 3,4},
+ {&(_tg__ZTV5cc220__6dd3220__7ee03220[3]), 3,4},
+ {&(_ZTV7ee03220[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee03220[];
+extern VTBL_ENTRY _ZTV7ee03220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03220[];
+static VTBL_ENTRY alt_thunk_names101[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32203fooEv,_ZTv0_n12_N6dd32203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32203fooEv,_ZThn12_N6dd32203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32203fooEv,_ZThn12_N6dd32203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03220 = { "ee03220", // class name
+ bases_ee03220, 4,
+ &(vtc_ee03220[0]), // expected_vtbl_contents
+ &(vtt_ee03220[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee03220),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03220),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03220),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names101,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee13220 : virtual dd3220 {
+ int e;
+ ~ee13220(); // tgen
+ ee13220(); // tgen
+};
+//SIG(1 ee13220) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v1 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee13220 ::~ee13220(){ note_dtor("ee13220", this);} // tgen
+ee13220 ::ee13220(){ note_ctor("ee13220", this);} // tgen
+
+static void Test_ee13220()
+{
+ extern Class_Descriptor cd_ee13220;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee13220, buf);
+ ee13220 *dp, &lv = *(dp=new (buf) ee13220());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee13220)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13220)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc220*), ABISELECT(40,20), "ee13220");
+ check_base_class_offset(lv, (bb20*)(cc220*), ABISELECT(32,16), "ee13220");
+ check_base_class_offset(lv, (cc220*)(dd3220*), ABISELECT(32,16), "ee13220");
+ check_base_class_offset(lv, (dd3220*), ABISELECT(16,8), "ee13220");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13220.e");
+ test_class_info(&lv, &cd_ee13220);
+ dp->~ee13220();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13220(Test_ee13220, "ee13220", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee13220C1Ev();
+extern void _ZN7ee13220D1Ev();
+Name_Map name_map_ee13220[] = {
+ NSPAIR(_ZN7ee13220C1Ev),
+ NSPAIR(_ZN7ee13220D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc220;
+extern VTBL_ENTRY _ZTI5cc220[];
+extern VTBL_ENTRY _ZTV5cc220[];
+extern Class_Descriptor cd_dd3220;
+extern VTBL_ENTRY _ZTI6dd3220[];
+extern VTBL_ENTRY _ZTV6dd3220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3220[];
+static Base_Class bases_ee13220[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc220, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3220, 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 _ZTI7ee13220[];
+extern void _ZN6dd32203fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd32203fooEv,_ZTv0_n12_N6dd32203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32203fooEv,_ZThn8_N6dd32203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee13220[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13220[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13220[0]),
+ (VTBL_ENTRY)&_ZN6dd32203fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13220[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32203fooEv,_ZTv0_n12_N6dd32203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee13220[];
+extern void _ZN6dd32203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3220__7ee13220[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3220[0]),
+ (VTBL_ENTRY)&_ZN6dd32203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32203fooEv,_ZTv0_n12_N6dd32203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32203fooEv,_ZThn8_N6dd32203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc220__6dd3220__7ee13220[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3220[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32203fooEv,_ZTv0_n12_N6dd32203fooEv),
+};
+static VTT_ENTRY vtt_ee13220[] = {
+ {&(_ZTV7ee13220[4]), 4,13},
+ {&(_ZTV7ee13220[8]), 8,13},
+ {&(_ZTV7ee13220[12]), 12,13},
+ {&(_tg__ZTV6dd3220__7ee13220[3]), 3,4},
+ {&(_tg__ZTV5cc220__6dd3220__7ee13220[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee13220[];
+extern VTBL_ENTRY _ZTV7ee13220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13220[];
+static VTBL_ENTRY alt_thunk_names102[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32203fooEv,_ZTv0_n12_N6dd32203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32203fooEv,_ZThn8_N6dd32203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32203fooEv,_ZThn8_N6dd32203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13220 = { "ee13220", // class name
+ bases_ee13220, 4,
+ &(vtc_ee13220[0]), // expected_vtbl_contents
+ &(vtt_ee13220[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee13220),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13220),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13220),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names102,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee23220 : dd3220 {
+ int e;
+ virtual void foo(); // _ZN7ee232203fooEv
+ ~ee23220(); // tgen
+ ee23220(); // tgen
+};
+//SIG(1 ee23220) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v1 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee23220 ::foo(){vfunc_called(this, "_ZN7ee232203fooEv");}
+ee23220 ::~ee23220(){ note_dtor("ee23220", this);} // tgen
+ee23220 ::ee23220(){ note_ctor("ee23220", this);} // tgen
+
+static void Test_ee23220()
+{
+ extern Class_Descriptor cd_ee23220;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee23220, buf);
+ ee23220 *dp, &lv = *(dp=new (buf) ee23220());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee23220)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23220)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc220*), ABISELECT(24,16), "ee23220");
+ check_base_class_offset(lv, (bb20*)(cc220*), ABISELECT(16,12), "ee23220");
+ check_base_class_offset(lv, (cc220*)(dd3220*), ABISELECT(16,12), "ee23220");
+ check_base_class_offset(lv, (dd3220*), 0, "ee23220");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23220.e");
+ test_class_info(&lv, &cd_ee23220);
+ dp->~ee23220();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23220(Test_ee23220, "ee23220", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee23220C1Ev();
+extern void _ZN7ee23220D1Ev();
+Name_Map name_map_ee23220[] = {
+ NSPAIR(_ZN7ee23220C1Ev),
+ NSPAIR(_ZN7ee23220D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc220;
+extern VTBL_ENTRY _ZTI5cc220[];
+extern VTBL_ENTRY _ZTV5cc220[];
+extern Class_Descriptor cd_dd3220;
+extern VTBL_ENTRY _ZTI6dd3220[];
+extern VTBL_ENTRY _ZTV6dd3220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3220[];
+static Base_Class bases_ee23220[] = {
+ // 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_bb20, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc220, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3220, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee23220[];
+extern void _ZN7ee232203fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee232203fooEv,_ZTv0_n12_N7ee232203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee232203fooEv,_ZThn12_N7ee232203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee23220[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23220[0]),
+ (VTBL_ENTRY)&_ZN7ee232203fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23220[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee232203fooEv,_ZTv0_n12_N7ee232203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee23220[];
+extern void _ZN6dd32203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3220__7ee23220[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3220[0]),
+ (VTBL_ENTRY)&_ZN6dd32203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32203fooEv,_ZTv0_n12_N6dd32203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32203fooEv,_ZThn12_N6dd32203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc220__6dd3220__7ee23220[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3220[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32203fooEv,_ZTv0_n12_N6dd32203fooEv),
+};
+static VTT_ENTRY vtt_ee23220[] = {
+ {&(_ZTV7ee23220[3]), 3,8},
+ {&(_tg__ZTV6dd3220__7ee23220[3]), 3,4},
+ {&(_tg__ZTV5cc220__6dd3220__7ee23220[3]), 3,4},
+ {&(_ZTV7ee23220[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee23220[];
+extern VTBL_ENTRY _ZTV7ee23220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23220[];
+static VTBL_ENTRY alt_thunk_names103[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32203fooEv,_ZTv0_n12_N6dd32203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32203fooEv,_ZThn12_N6dd32203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee232203fooEv,_ZTv0_n12_N7ee232203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee232203fooEv,_ZThn12_N7ee232203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23220 = { "ee23220", // class name
+ bases_ee23220, 4,
+ &(vtc_ee23220[0]), // expected_vtbl_contents
+ &(vtt_ee23220[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee23220),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23220),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23220),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names103,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee33220 : virtual dd3220 {
+ int e;
+ virtual void foo(); // _ZN7ee332203fooEv
+ ~ee33220(); // tgen
+ ee33220(); // tgen
+};
+//SIG(1 ee33220) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v1 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee33220 ::foo(){vfunc_called(this, "_ZN7ee332203fooEv");}
+ee33220 ::~ee33220(){ note_dtor("ee33220", this);} // tgen
+ee33220 ::ee33220(){ note_ctor("ee33220", this);} // tgen
+
+static void Test_ee33220()
+{
+ extern Class_Descriptor cd_ee33220;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee33220, buf);
+ ee33220 *dp, &lv = *(dp=new (buf) ee33220());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee33220)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33220)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc220*), ABISELECT(40,20), "ee33220");
+ check_base_class_offset(lv, (bb20*)(cc220*), ABISELECT(32,16), "ee33220");
+ check_base_class_offset(lv, (cc220*)(dd3220*), ABISELECT(32,16), "ee33220");
+ check_base_class_offset(lv, (dd3220*), ABISELECT(16,8), "ee33220");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33220.e");
+ test_class_info(&lv, &cd_ee33220);
+ dp->~ee33220();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33220(Test_ee33220, "ee33220", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee33220C1Ev();
+extern void _ZN7ee33220D1Ev();
+Name_Map name_map_ee33220[] = {
+ NSPAIR(_ZN7ee33220C1Ev),
+ NSPAIR(_ZN7ee33220D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc220;
+extern VTBL_ENTRY _ZTI5cc220[];
+extern VTBL_ENTRY _ZTV5cc220[];
+extern Class_Descriptor cd_dd3220;
+extern VTBL_ENTRY _ZTI6dd3220[];
+extern VTBL_ENTRY _ZTV6dd3220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3220[];
+static Base_Class bases_ee33220[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc220, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3220, 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 _ZTI7ee33220[];
+extern void _ZN7ee332203fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee332203fooEv,_ZTv0_n16_N7ee332203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee332203fooEv,_ZThn8_N7ee332203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee332203fooEv,_ZTv0_n12_N7ee332203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee332203fooEv,_ZThn16_N7ee332203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee33220[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33220[0]),
+ (VTBL_ENTRY)&_ZN7ee332203fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33220[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee332203fooEv,_ZTv0_n16_N7ee332203fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33220[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee332203fooEv,_ZTv0_n12_N7ee332203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee33220[];
+extern void _ZN6dd32203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3220__7ee33220[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3220[0]),
+ (VTBL_ENTRY)&_ZN6dd32203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32203fooEv,_ZTv0_n12_N6dd32203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32203fooEv,_ZThn8_N6dd32203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc220__6dd3220__7ee33220[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3220[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32203fooEv,_ZTv0_n12_N6dd32203fooEv),
+};
+static VTT_ENTRY vtt_ee33220[] = {
+ {&(_ZTV7ee33220[4]), 4,14},
+ {&(_ZTV7ee33220[9]), 9,14},
+ {&(_ZTV7ee33220[13]), 13,14},
+ {&(_tg__ZTV6dd3220__7ee33220[3]), 3,4},
+ {&(_tg__ZTV5cc220__6dd3220__7ee33220[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee33220[];
+extern VTBL_ENTRY _ZTV7ee33220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33220[];
+static VTBL_ENTRY alt_thunk_names104[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32203fooEv,_ZTv0_n12_N6dd32203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32203fooEv,_ZThn8_N6dd32203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee332203fooEv,_ZTv0_n12_N7ee332203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee332203fooEv,_ZThn16_N7ee332203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee332203fooEv,_ZTv0_n16_N7ee332203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee332203fooEv,_ZThn8_N7ee332203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33220 = { "ee33220", // class name
+ bases_ee33220, 4,
+ &(vtc_ee33220[0]), // expected_vtbl_contents
+ &(vtt_ee33220[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee33220),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33220),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33220),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names104,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee43220 : dd3220 {
+ int e;
+ virtual void bar(); // _ZN7ee432203barEv
+ ~ee43220(); // tgen
+ ee43220(); // tgen
+};
+//SIG(1 ee43220) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v2 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee43220 ::bar(){vfunc_called(this, "_ZN7ee432203barEv");}
+ee43220 ::~ee43220(){ note_dtor("ee43220", this);} // tgen
+ee43220 ::ee43220(){ note_ctor("ee43220", this);} // tgen
+
+static void Test_ee43220()
+{
+ extern Class_Descriptor cd_ee43220;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee43220, buf);
+ ee43220 *dp, &lv = *(dp=new (buf) ee43220());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee43220)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43220)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc220*), ABISELECT(24,16), "ee43220");
+ check_base_class_offset(lv, (bb20*)(cc220*), ABISELECT(16,12), "ee43220");
+ check_base_class_offset(lv, (cc220*)(dd3220*), ABISELECT(16,12), "ee43220");
+ check_base_class_offset(lv, (dd3220*), 0, "ee43220");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43220.e");
+ test_class_info(&lv, &cd_ee43220);
+ dp->~ee43220();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43220(Test_ee43220, "ee43220", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee43220C1Ev();
+extern void _ZN7ee43220D1Ev();
+Name_Map name_map_ee43220[] = {
+ NSPAIR(_ZN7ee43220C1Ev),
+ NSPAIR(_ZN7ee43220D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc220;
+extern VTBL_ENTRY _ZTI5cc220[];
+extern VTBL_ENTRY _ZTV5cc220[];
+extern Class_Descriptor cd_dd3220;
+extern VTBL_ENTRY _ZTI6dd3220[];
+extern VTBL_ENTRY _ZTV6dd3220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3220[];
+static Base_Class bases_ee43220[] = {
+ // 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_bb20, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc220, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3220, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee43220[];
+extern void _ZN6dd32203fooEv();
+extern void _ZN7ee432203barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd32203fooEv,_ZTv0_n12_N6dd32203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32203fooEv,_ZThn12_N6dd32203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43220[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43220[0]),
+ (VTBL_ENTRY)&_ZN6dd32203fooEv,
+ (VTBL_ENTRY)&_ZN7ee432203barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43220[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32203fooEv,_ZTv0_n12_N6dd32203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee43220[];
+extern void _ZN6dd32203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3220__7ee43220[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3220[0]),
+ (VTBL_ENTRY)&_ZN6dd32203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32203fooEv,_ZTv0_n12_N6dd32203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32203fooEv,_ZThn12_N6dd32203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc220__6dd3220__7ee43220[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3220[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32203fooEv,_ZTv0_n12_N6dd32203fooEv),
+};
+static VTT_ENTRY vtt_ee43220[] = {
+ {&(_ZTV7ee43220[3]), 3,9},
+ {&(_tg__ZTV6dd3220__7ee43220[3]), 3,4},
+ {&(_tg__ZTV5cc220__6dd3220__7ee43220[3]), 3,4},
+ {&(_ZTV7ee43220[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee43220[];
+extern VTBL_ENTRY _ZTV7ee43220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43220[];
+static VTBL_ENTRY alt_thunk_names105[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32203fooEv,_ZTv0_n12_N6dd32203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32203fooEv,_ZThn12_N6dd32203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32203fooEv,_ZThn12_N6dd32203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43220 = { "ee43220", // class name
+ bases_ee43220, 4,
+ &(vtc_ee43220[0]), // expected_vtbl_contents
+ &(vtt_ee43220[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee43220),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43220),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43220),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names105,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee53220 : virtual dd3220 {
+ int e;
+ virtual void bar(); // _ZN7ee532203barEv
+ ~ee53220(); // tgen
+ ee53220(); // tgen
+};
+//SIG(1 ee53220) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v2 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee53220 ::bar(){vfunc_called(this, "_ZN7ee532203barEv");}
+ee53220 ::~ee53220(){ note_dtor("ee53220", this);} // tgen
+ee53220 ::ee53220(){ note_ctor("ee53220", this);} // tgen
+
+static void Test_ee53220()
+{
+ extern Class_Descriptor cd_ee53220;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee53220, buf);
+ ee53220 *dp, &lv = *(dp=new (buf) ee53220());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee53220)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53220)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc220*), ABISELECT(40,20), "ee53220");
+ check_base_class_offset(lv, (bb20*)(cc220*), ABISELECT(32,16), "ee53220");
+ check_base_class_offset(lv, (cc220*)(dd3220*), ABISELECT(32,16), "ee53220");
+ check_base_class_offset(lv, (dd3220*), ABISELECT(16,8), "ee53220");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53220.e");
+ test_class_info(&lv, &cd_ee53220);
+ dp->~ee53220();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53220(Test_ee53220, "ee53220", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee53220C1Ev();
+extern void _ZN7ee53220D1Ev();
+Name_Map name_map_ee53220[] = {
+ NSPAIR(_ZN7ee53220C1Ev),
+ NSPAIR(_ZN7ee53220D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc220;
+extern VTBL_ENTRY _ZTI5cc220[];
+extern VTBL_ENTRY _ZTV5cc220[];
+extern Class_Descriptor cd_dd3220;
+extern VTBL_ENTRY _ZTI6dd3220[];
+extern VTBL_ENTRY _ZTV6dd3220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3220[];
+static Base_Class bases_ee53220[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc220, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3220, 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 _ZTI7ee53220[];
+extern void _ZN7ee532203barEv();
+extern void _ZN6dd32203fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd32203fooEv,_ZTv0_n12_N6dd32203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32203fooEv,_ZThn8_N6dd32203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53220[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53220[0]),
+ (VTBL_ENTRY)&_ZN7ee532203barEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53220[0]),
+ (VTBL_ENTRY)&_ZN6dd32203fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53220[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32203fooEv,_ZTv0_n12_N6dd32203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee53220[];
+extern void _ZN6dd32203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3220__7ee53220[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3220[0]),
+ (VTBL_ENTRY)&_ZN6dd32203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32203fooEv,_ZTv0_n12_N6dd32203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32203fooEv,_ZThn8_N6dd32203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc220__6dd3220__7ee53220[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3220[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32203fooEv,_ZTv0_n12_N6dd32203fooEv),
+};
+static VTT_ENTRY vtt_ee53220[] = {
+ {&(_ZTV7ee53220[4]), 4,14},
+ {&(_ZTV7ee53220[9]), 9,14},
+ {&(_ZTV7ee53220[13]), 13,14},
+ {&(_tg__ZTV6dd3220__7ee53220[3]), 3,4},
+ {&(_tg__ZTV5cc220__6dd3220__7ee53220[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee53220[];
+extern VTBL_ENTRY _ZTV7ee53220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53220[];
+static VTBL_ENTRY alt_thunk_names106[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32203fooEv,_ZTv0_n12_N6dd32203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32203fooEv,_ZThn8_N6dd32203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32203fooEv,_ZThn8_N6dd32203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53220 = { "ee53220", // class name
+ bases_ee53220, 4,
+ &(vtc_ee53220[0]), // expected_vtbl_contents
+ &(vtt_ee53220[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee53220),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53220),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53220),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names106,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee63220 : dd3220 {
+ int e;
+ virtual void foo(); // _ZN7ee632203fooEv
+ virtual void bar(); // _ZN7ee632203barEv
+ ~ee63220(); // tgen
+ ee63220(); // tgen
+};
+//SIG(1 ee63220) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v1 Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63220 ::foo(){vfunc_called(this, "_ZN7ee632203fooEv");}
+void ee63220 ::bar(){vfunc_called(this, "_ZN7ee632203barEv");}
+ee63220 ::~ee63220(){ note_dtor("ee63220", this);} // tgen
+ee63220 ::ee63220(){ note_ctor("ee63220", this);} // tgen
+
+static void Test_ee63220()
+{
+ extern Class_Descriptor cd_ee63220;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee63220, buf);
+ ee63220 *dp, &lv = *(dp=new (buf) ee63220());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee63220)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63220)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc220*), ABISELECT(24,16), "ee63220");
+ check_base_class_offset(lv, (bb20*)(cc220*), ABISELECT(16,12), "ee63220");
+ check_base_class_offset(lv, (cc220*)(dd3220*), ABISELECT(16,12), "ee63220");
+ check_base_class_offset(lv, (dd3220*), 0, "ee63220");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63220.e");
+ test_class_info(&lv, &cd_ee63220);
+ dp->~ee63220();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63220(Test_ee63220, "ee63220", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee63220C1Ev();
+extern void _ZN7ee63220D1Ev();
+Name_Map name_map_ee63220[] = {
+ NSPAIR(_ZN7ee63220C1Ev),
+ NSPAIR(_ZN7ee63220D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc220;
+extern VTBL_ENTRY _ZTI5cc220[];
+extern VTBL_ENTRY _ZTV5cc220[];
+extern Class_Descriptor cd_dd3220;
+extern VTBL_ENTRY _ZTI6dd3220[];
+extern VTBL_ENTRY _ZTV6dd3220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3220[];
+static Base_Class bases_ee63220[] = {
+ // 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_bb20, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc220, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3220, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee63220[];
+extern void _ZN7ee632203fooEv();
+extern void _ZN7ee632203barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee632203fooEv,_ZTv0_n12_N7ee632203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee632203fooEv,_ZThn12_N7ee632203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63220[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63220[0]),
+ (VTBL_ENTRY)&_ZN7ee632203fooEv,
+ (VTBL_ENTRY)&_ZN7ee632203barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63220[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee632203fooEv,_ZTv0_n12_N7ee632203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee63220[];
+extern void _ZN6dd32203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3220__7ee63220[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3220[0]),
+ (VTBL_ENTRY)&_ZN6dd32203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32203fooEv,_ZTv0_n12_N6dd32203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32203fooEv,_ZThn12_N6dd32203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc220__6dd3220__7ee63220[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3220[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32203fooEv,_ZTv0_n12_N6dd32203fooEv),
+};
+static VTT_ENTRY vtt_ee63220[] = {
+ {&(_ZTV7ee63220[3]), 3,9},
+ {&(_tg__ZTV6dd3220__7ee63220[3]), 3,4},
+ {&(_tg__ZTV5cc220__6dd3220__7ee63220[3]), 3,4},
+ {&(_ZTV7ee63220[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee63220[];
+extern VTBL_ENTRY _ZTV7ee63220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63220[];
+static VTBL_ENTRY alt_thunk_names107[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32203fooEv,_ZTv0_n12_N6dd32203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32203fooEv,_ZThn12_N6dd32203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee632203fooEv,_ZTv0_n12_N7ee632203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee632203fooEv,_ZThn12_N7ee632203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63220 = { "ee63220", // class name
+ bases_ee63220, 4,
+ &(vtc_ee63220[0]), // expected_vtbl_contents
+ &(vtt_ee63220[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee63220),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63220),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63220),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names107,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee73220 : virtual dd3220 {
+ int e;
+ virtual void foo(); // _ZN7ee732203fooEv
+ virtual void bar(); // _ZN7ee732203barEv
+ ~ee73220(); // tgen
+ ee73220(); // tgen
+};
+//SIG(1 ee73220) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v1 Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73220 ::foo(){vfunc_called(this, "_ZN7ee732203fooEv");}
+void ee73220 ::bar(){vfunc_called(this, "_ZN7ee732203barEv");}
+ee73220 ::~ee73220(){ note_dtor("ee73220", this);} // tgen
+ee73220 ::ee73220(){ note_ctor("ee73220", this);} // tgen
+
+static void Test_ee73220()
+{
+ extern Class_Descriptor cd_ee73220;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee73220, buf);
+ ee73220 *dp, &lv = *(dp=new (buf) ee73220());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee73220)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73220)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc220*), ABISELECT(40,20), "ee73220");
+ check_base_class_offset(lv, (bb20*)(cc220*), ABISELECT(32,16), "ee73220");
+ check_base_class_offset(lv, (cc220*)(dd3220*), ABISELECT(32,16), "ee73220");
+ check_base_class_offset(lv, (dd3220*), ABISELECT(16,8), "ee73220");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73220.e");
+ test_class_info(&lv, &cd_ee73220);
+ dp->~ee73220();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73220(Test_ee73220, "ee73220", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee73220C1Ev();
+extern void _ZN7ee73220D1Ev();
+Name_Map name_map_ee73220[] = {
+ NSPAIR(_ZN7ee73220C1Ev),
+ NSPAIR(_ZN7ee73220D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc220;
+extern VTBL_ENTRY _ZTI5cc220[];
+extern VTBL_ENTRY _ZTV5cc220[];
+extern Class_Descriptor cd_dd3220;
+extern VTBL_ENTRY _ZTI6dd3220[];
+extern VTBL_ENTRY _ZTV6dd3220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3220[];
+static Base_Class bases_ee73220[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc220, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3220, 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 _ZTI7ee73220[];
+extern void _ZN7ee732203fooEv();
+extern void _ZN7ee732203barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee732203fooEv,_ZTv0_n16_N7ee732203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee732203fooEv,_ZThn8_N7ee732203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee732203fooEv,_ZTv0_n12_N7ee732203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee732203fooEv,_ZThn16_N7ee732203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73220[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73220[0]),
+ (VTBL_ENTRY)&_ZN7ee732203fooEv,
+ (VTBL_ENTRY)&_ZN7ee732203barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73220[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee732203fooEv,_ZTv0_n16_N7ee732203fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73220[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee732203fooEv,_ZTv0_n12_N7ee732203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee73220[];
+extern void _ZN6dd32203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3220__7ee73220[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3220[0]),
+ (VTBL_ENTRY)&_ZN6dd32203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32203fooEv,_ZTv0_n12_N6dd32203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32203fooEv,_ZThn8_N6dd32203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc220__6dd3220__7ee73220[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3220[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32203fooEv,_ZTv0_n12_N6dd32203fooEv),
+};
+static VTT_ENTRY vtt_ee73220[] = {
+ {&(_ZTV7ee73220[4]), 4,15},
+ {&(_ZTV7ee73220[10]), 10,15},
+ {&(_ZTV7ee73220[14]), 14,15},
+ {&(_tg__ZTV6dd3220__7ee73220[3]), 3,4},
+ {&(_tg__ZTV5cc220__6dd3220__7ee73220[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee73220[];
+extern VTBL_ENTRY _ZTV7ee73220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73220[];
+static VTBL_ENTRY alt_thunk_names108[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32203fooEv,_ZTv0_n12_N6dd32203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32203fooEv,_ZThn8_N6dd32203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee732203fooEv,_ZTv0_n12_N7ee732203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee732203fooEv,_ZThn16_N7ee732203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee732203fooEv,_ZTv0_n16_N7ee732203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee732203fooEv,_ZThn8_N7ee732203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73220 = { "ee73220", // class name
+ bases_ee73220, 4,
+ &(vtc_ee73220[0]), // expected_vtbl_contents
+ &(vtt_ee73220[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee73220),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73220),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73220),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names108,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd4220 : cc220 {
+ int d;
+ virtual void bar(); // _ZN6dd42203barEv
+ ~dd4220(); // tgen
+ dd4220(); // tgen
+};
+//SIG(-1 dd4220) C1{ BC2{ BC3{ BC4{ Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void dd4220 ::bar(){vfunc_called(this, "_ZN6dd42203barEv");}
+dd4220 ::~dd4220(){ note_dtor("dd4220", this);} // tgen
+dd4220 ::dd4220(){ note_ctor("dd4220", this);} // tgen
+
+static void Test_dd4220()
+{
+ extern Class_Descriptor cd_dd4220;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd4220, buf);
+ dd4220 *dp, &lv = *(dp=new (buf) dd4220());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd4220)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4220)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc220*), ABISELECT(8,4), "dd4220");
+ check_base_class_offset(lv, (bb20*)(cc220*), 0, "dd4220");
+ check_base_class_offset(lv, (cc220*), 0, "dd4220");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd4220.d");
+ test_class_info(&lv, &cd_dd4220);
+ dp->~dd4220();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4220(Test_dd4220, "dd4220", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd4220C1Ev();
+extern void _ZN6dd4220D1Ev();
+Name_Map name_map_dd4220[] = {
+ NSPAIR(_ZN6dd4220C1Ev),
+ NSPAIR(_ZN6dd4220D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc220;
+extern VTBL_ENTRY _ZTI5cc220[];
+extern VTBL_ENTRY _ZTV5cc220[];
+static Base_Class bases_dd4220[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc220, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI6dd4220[];
+extern void _ZN5cc2203fooEv();
+extern void _ZN6dd42203barEv();
+static VTBL_ENTRY vtc_dd4220[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4220[0]),
+ (VTBL_ENTRY)&_ZN5cc2203fooEv,
+ (VTBL_ENTRY)&_ZN6dd42203barEv,
+};
+extern VTBL_ENTRY _ZTI6dd4220[];
+extern VTBL_ENTRY _ZTV6dd4220[];
+Class_Descriptor cd_dd4220 = { "dd4220", // class name
+ bases_dd4220, 3,
+ &(vtc_dd4220[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd4220),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4220),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 ee04220 : dd4220 {
+ int e;
+ ~ee04220(); // tgen
+ ee04220(); // tgen
+};
+//SIG(1 ee04220) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v2 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee04220 ::~ee04220(){ note_dtor("ee04220", this);} // tgen
+ee04220 ::ee04220(){ note_ctor("ee04220", this);} // tgen
+
+static void Test_ee04220()
+{
+ extern Class_Descriptor cd_ee04220;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee04220, buf);
+ ee04220 *dp, &lv = *(dp=new (buf) ee04220());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee04220)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04220)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc220*)(dd4220*), ABISELECT(8,4), "ee04220");
+ check_base_class_offset(lv, (bb20*)(cc220*)(dd4220*), 0, "ee04220");
+ check_base_class_offset(lv, (cc220*)(dd4220*), 0, "ee04220");
+ check_base_class_offset(lv, (dd4220*), 0, "ee04220");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee04220.e");
+ test_class_info(&lv, &cd_ee04220);
+ dp->~ee04220();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04220(Test_ee04220, "ee04220", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee04220C1Ev();
+extern void _ZN7ee04220D1Ev();
+Name_Map name_map_ee04220[] = {
+ NSPAIR(_ZN7ee04220C1Ev),
+ NSPAIR(_ZN7ee04220D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc220;
+extern VTBL_ENTRY _ZTI5cc220[];
+extern VTBL_ENTRY _ZTV5cc220[];
+extern Class_Descriptor cd_dd4220;
+extern VTBL_ENTRY _ZTI6dd4220[];
+extern VTBL_ENTRY _ZTV6dd4220[];
+static Base_Class bases_ee04220[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc220, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4220, 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 _ZTI7ee04220[];
+extern void _ZN5cc2203fooEv();
+extern void _ZN6dd42203barEv();
+static VTBL_ENTRY vtc_ee04220[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04220[0]),
+ (VTBL_ENTRY)&_ZN5cc2203fooEv,
+ (VTBL_ENTRY)&_ZN6dd42203barEv,
+};
+extern VTBL_ENTRY _ZTI7ee04220[];
+extern VTBL_ENTRY _ZTV7ee04220[];
+Class_Descriptor cd_ee04220 = { "ee04220", // class name
+ bases_ee04220, 4,
+ &(vtc_ee04220[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee04220),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04220),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 ee14220 : virtual dd4220 {
+ int e;
+ ~ee14220(); // tgen
+ ee14220(); // tgen
+};
+//SIG(1 ee14220) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v2 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee14220 ::~ee14220(){ note_dtor("ee14220", this);} // tgen
+ee14220 ::ee14220(){ note_ctor("ee14220", this);} // tgen
+
+static void Test_ee14220()
+{
+ extern Class_Descriptor cd_ee14220;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee14220, buf);
+ ee14220 *dp, &lv = *(dp=new (buf) ee14220());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee14220)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14220)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc220*)(dd4220*), ABISELECT(24,12), "ee14220");
+ check_base_class_offset(lv, (bb20*)(cc220*)(dd4220*), ABISELECT(16,8), "ee14220");
+ check_base_class_offset(lv, (cc220*)(dd4220*), ABISELECT(16,8), "ee14220");
+ check_base_class_offset(lv, (dd4220*), ABISELECT(16,8), "ee14220");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14220.e");
+ test_class_info(&lv, &cd_ee14220);
+ dp->~ee14220();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14220(Test_ee14220, "ee14220", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee14220C1Ev();
+extern void _ZN7ee14220D1Ev();
+Name_Map name_map_ee14220[] = {
+ NSPAIR(_ZN7ee14220C1Ev),
+ NSPAIR(_ZN7ee14220D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc220;
+extern VTBL_ENTRY _ZTI5cc220[];
+extern VTBL_ENTRY _ZTV5cc220[];
+extern Class_Descriptor cd_dd4220;
+extern VTBL_ENTRY _ZTI6dd4220[];
+extern VTBL_ENTRY _ZTV6dd4220[];
+static Base_Class bases_ee14220[] = {
+ // 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_bb20, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc220, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4220, 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 _ZTI7ee14220[];
+extern void _ZN5cc2203fooEv();
+extern void _ZN6dd42203barEv();
+static VTBL_ENTRY vtc_ee14220[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14220[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14220[0]),
+ (VTBL_ENTRY)&_ZN5cc2203fooEv,
+ (VTBL_ENTRY)&_ZN6dd42203barEv,
+};
+extern VTBL_ENTRY _ZTV7ee14220[];
+static VTT_ENTRY vtt_ee14220[] = {
+ {&(_ZTV7ee14220[3]), 3,9},
+ {&(_ZTV7ee14220[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee14220[];
+extern VTBL_ENTRY _ZTV7ee14220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14220[];
+Class_Descriptor cd_ee14220 = { "ee14220", // class name
+ bases_ee14220, 4,
+ &(vtc_ee14220[0]), // expected_vtbl_contents
+ &(vtt_ee14220[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee14220),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14220),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14220),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 ee24220 : dd4220 {
+ int e;
+ virtual void foo(); // _ZN7ee242203fooEv
+ ~ee24220(); // tgen
+ ee24220(); // tgen
+};
+//SIG(1 ee24220) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v1 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee24220 ::foo(){vfunc_called(this, "_ZN7ee242203fooEv");}
+ee24220 ::~ee24220(){ note_dtor("ee24220", this);} // tgen
+ee24220 ::ee24220(){ note_ctor("ee24220", this);} // tgen
+
+static void Test_ee24220()
+{
+ extern Class_Descriptor cd_ee24220;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee24220, buf);
+ ee24220 *dp, &lv = *(dp=new (buf) ee24220());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee24220)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24220)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc220*)(dd4220*), ABISELECT(8,4), "ee24220");
+ check_base_class_offset(lv, (bb20*)(cc220*)(dd4220*), 0, "ee24220");
+ check_base_class_offset(lv, (cc220*)(dd4220*), 0, "ee24220");
+ check_base_class_offset(lv, (dd4220*), 0, "ee24220");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee24220.e");
+ test_class_info(&lv, &cd_ee24220);
+ dp->~ee24220();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24220(Test_ee24220, "ee24220", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee24220C1Ev();
+extern void _ZN7ee24220D1Ev();
+Name_Map name_map_ee24220[] = {
+ NSPAIR(_ZN7ee24220C1Ev),
+ NSPAIR(_ZN7ee24220D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc220;
+extern VTBL_ENTRY _ZTI5cc220[];
+extern VTBL_ENTRY _ZTV5cc220[];
+extern Class_Descriptor cd_dd4220;
+extern VTBL_ENTRY _ZTI6dd4220[];
+extern VTBL_ENTRY _ZTV6dd4220[];
+static Base_Class bases_ee24220[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc220, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4220, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee24220[];
+extern void _ZN7ee242203fooEv();
+extern void _ZN6dd42203barEv();
+static VTBL_ENTRY vtc_ee24220[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24220[0]),
+ (VTBL_ENTRY)&_ZN7ee242203fooEv,
+ (VTBL_ENTRY)&_ZN6dd42203barEv,
+};
+extern VTBL_ENTRY _ZTI7ee24220[];
+extern VTBL_ENTRY _ZTV7ee24220[];
+Class_Descriptor cd_ee24220 = { "ee24220", // class name
+ bases_ee24220, 4,
+ &(vtc_ee24220[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee24220),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24220),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 ee34220 : virtual dd4220 {
+ int e;
+ virtual void foo(); // _ZN7ee342203fooEv
+ ~ee34220(); // tgen
+ ee34220(); // tgen
+};
+//SIG(1 ee34220) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v1 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee34220 ::foo(){vfunc_called(this, "_ZN7ee342203fooEv");}
+ee34220 ::~ee34220(){ note_dtor("ee34220", this);} // tgen
+ee34220 ::ee34220(){ note_ctor("ee34220", this);} // tgen
+
+static void Test_ee34220()
+{
+ extern Class_Descriptor cd_ee34220;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee34220, buf);
+ ee34220 *dp, &lv = *(dp=new (buf) ee34220());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee34220)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34220)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc220*)(dd4220*), ABISELECT(24,12), "ee34220");
+ check_base_class_offset(lv, (bb20*)(cc220*)(dd4220*), ABISELECT(16,8), "ee34220");
+ check_base_class_offset(lv, (cc220*)(dd4220*), ABISELECT(16,8), "ee34220");
+ check_base_class_offset(lv, (dd4220*), ABISELECT(16,8), "ee34220");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34220.e");
+ test_class_info(&lv, &cd_ee34220);
+ dp->~ee34220();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34220(Test_ee34220, "ee34220", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee34220C1Ev();
+extern void _ZN7ee34220D1Ev();
+Name_Map name_map_ee34220[] = {
+ NSPAIR(_ZN7ee34220C1Ev),
+ NSPAIR(_ZN7ee34220D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc220;
+extern VTBL_ENTRY _ZTI5cc220[];
+extern VTBL_ENTRY _ZTV5cc220[];
+extern Class_Descriptor cd_dd4220;
+extern VTBL_ENTRY _ZTI6dd4220[];
+extern VTBL_ENTRY _ZTV6dd4220[];
+static Base_Class bases_ee34220[] = {
+ // 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_bb20, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc220, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4220, 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 _ZTI7ee34220[];
+extern void _ZN7ee342203fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee342203fooEv,_ZTv0_n12_N7ee342203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee342203fooEv,_ZThn8_N7ee342203fooEv)() __attribute__((weak));
+extern void _ZN6dd42203barEv();
+static VTBL_ENTRY vtc_ee34220[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34220[0]),
+ (VTBL_ENTRY)&_ZN7ee342203fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34220[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee342203fooEv,_ZTv0_n12_N7ee342203fooEv),
+ (VTBL_ENTRY)&_ZN6dd42203barEv,
+};
+extern VTBL_ENTRY _ZTV7ee34220[];
+static VTT_ENTRY vtt_ee34220[] = {
+ {&(_ZTV7ee34220[3]), 3,10},
+ {&(_ZTV7ee34220[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee34220[];
+extern VTBL_ENTRY _ZTV7ee34220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34220[];
+static VTBL_ENTRY alt_thunk_names109[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee342203fooEv,_ZTv0_n12_N7ee342203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee342203fooEv,_ZThn8_N7ee342203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34220 = { "ee34220", // class name
+ bases_ee34220, 4,
+ &(vtc_ee34220[0]), // expected_vtbl_contents
+ &(vtt_ee34220[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee34220),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34220),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34220),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names109,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee44220 : dd4220 {
+ int e;
+ virtual void bar(); // _ZN7ee442203barEv
+ ~ee44220(); // tgen
+ ee44220(); // tgen
+};
+//SIG(1 ee44220) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v2 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee44220 ::bar(){vfunc_called(this, "_ZN7ee442203barEv");}
+ee44220 ::~ee44220(){ note_dtor("ee44220", this);} // tgen
+ee44220 ::ee44220(){ note_ctor("ee44220", this);} // tgen
+
+static void Test_ee44220()
+{
+ extern Class_Descriptor cd_ee44220;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee44220, buf);
+ ee44220 *dp, &lv = *(dp=new (buf) ee44220());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee44220)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44220)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc220*)(dd4220*), ABISELECT(8,4), "ee44220");
+ check_base_class_offset(lv, (bb20*)(cc220*)(dd4220*), 0, "ee44220");
+ check_base_class_offset(lv, (cc220*)(dd4220*), 0, "ee44220");
+ check_base_class_offset(lv, (dd4220*), 0, "ee44220");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee44220.e");
+ test_class_info(&lv, &cd_ee44220);
+ dp->~ee44220();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44220(Test_ee44220, "ee44220", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee44220C1Ev();
+extern void _ZN7ee44220D1Ev();
+Name_Map name_map_ee44220[] = {
+ NSPAIR(_ZN7ee44220C1Ev),
+ NSPAIR(_ZN7ee44220D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc220;
+extern VTBL_ENTRY _ZTI5cc220[];
+extern VTBL_ENTRY _ZTV5cc220[];
+extern Class_Descriptor cd_dd4220;
+extern VTBL_ENTRY _ZTI6dd4220[];
+extern VTBL_ENTRY _ZTV6dd4220[];
+static Base_Class bases_ee44220[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc220, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4220, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee44220[];
+extern void _ZN5cc2203fooEv();
+extern void _ZN7ee442203barEv();
+static VTBL_ENTRY vtc_ee44220[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44220[0]),
+ (VTBL_ENTRY)&_ZN5cc2203fooEv,
+ (VTBL_ENTRY)&_ZN7ee442203barEv,
+};
+extern VTBL_ENTRY _ZTI7ee44220[];
+extern VTBL_ENTRY _ZTV7ee44220[];
+Class_Descriptor cd_ee44220 = { "ee44220", // class name
+ bases_ee44220, 4,
+ &(vtc_ee44220[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee44220),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44220),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 ee54220 : virtual dd4220 {
+ int e;
+ virtual void bar(); // _ZN7ee542203barEv
+ ~ee54220(); // tgen
+ ee54220(); // tgen
+};
+//SIG(1 ee54220) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v2 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee54220 ::bar(){vfunc_called(this, "_ZN7ee542203barEv");}
+ee54220 ::~ee54220(){ note_dtor("ee54220", this);} // tgen
+ee54220 ::ee54220(){ note_ctor("ee54220", this);} // tgen
+
+static void Test_ee54220()
+{
+ extern Class_Descriptor cd_ee54220;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee54220, buf);
+ ee54220 *dp, &lv = *(dp=new (buf) ee54220());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee54220)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54220)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc220*)(dd4220*), ABISELECT(24,12), "ee54220");
+ check_base_class_offset(lv, (bb20*)(cc220*)(dd4220*), ABISELECT(16,8), "ee54220");
+ check_base_class_offset(lv, (cc220*)(dd4220*), ABISELECT(16,8), "ee54220");
+ check_base_class_offset(lv, (dd4220*), ABISELECT(16,8), "ee54220");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54220.e");
+ test_class_info(&lv, &cd_ee54220);
+ dp->~ee54220();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54220(Test_ee54220, "ee54220", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee54220C1Ev();
+extern void _ZN7ee54220D1Ev();
+Name_Map name_map_ee54220[] = {
+ NSPAIR(_ZN7ee54220C1Ev),
+ NSPAIR(_ZN7ee54220D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc220;
+extern VTBL_ENTRY _ZTI5cc220[];
+extern VTBL_ENTRY _ZTV5cc220[];
+extern Class_Descriptor cd_dd4220;
+extern VTBL_ENTRY _ZTI6dd4220[];
+extern VTBL_ENTRY _ZTV6dd4220[];
+static Base_Class bases_ee54220[] = {
+ // 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_bb20, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc220, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4220, 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 _ZTI7ee54220[];
+extern void _ZN7ee542203barEv();
+extern void _ZN5cc2203fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee542203barEv,_ZTv0_n16_N7ee542203barEv)();
+extern void ABISELECT(_ZThn16_N7ee542203barEv,_ZThn8_N7ee542203barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54220[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54220[0]),
+ (VTBL_ENTRY)&_ZN7ee542203barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54220[0]),
+ (VTBL_ENTRY)&_ZN5cc2203fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee542203barEv,_ZTv0_n16_N7ee542203barEv),
+};
+extern VTBL_ENTRY _ZTV7ee54220[];
+static VTT_ENTRY vtt_ee54220[] = {
+ {&(_ZTV7ee54220[3]), 3,10},
+ {&(_ZTV7ee54220[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee54220[];
+extern VTBL_ENTRY _ZTV7ee54220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54220[];
+static VTBL_ENTRY alt_thunk_names110[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee542203barEv,_ZTv0_n16_N7ee542203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee542203barEv,_ZThn8_N7ee542203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54220 = { "ee54220", // class name
+ bases_ee54220, 4,
+ &(vtc_ee54220[0]), // expected_vtbl_contents
+ &(vtt_ee54220[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee54220),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54220),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54220),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names110,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee64220 : dd4220 {
+ int e;
+ virtual void foo(); // _ZN7ee642203fooEv
+ virtual void bar(); // _ZN7ee642203barEv
+ ~ee64220(); // tgen
+ ee64220(); // tgen
+};
+//SIG(1 ee64220) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v1 Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64220 ::foo(){vfunc_called(this, "_ZN7ee642203fooEv");}
+void ee64220 ::bar(){vfunc_called(this, "_ZN7ee642203barEv");}
+ee64220 ::~ee64220(){ note_dtor("ee64220", this);} // tgen
+ee64220 ::ee64220(){ note_ctor("ee64220", this);} // tgen
+
+static void Test_ee64220()
+{
+ extern Class_Descriptor cd_ee64220;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee64220, buf);
+ ee64220 *dp, &lv = *(dp=new (buf) ee64220());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee64220)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64220)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc220*)(dd4220*), ABISELECT(8,4), "ee64220");
+ check_base_class_offset(lv, (bb20*)(cc220*)(dd4220*), 0, "ee64220");
+ check_base_class_offset(lv, (cc220*)(dd4220*), 0, "ee64220");
+ check_base_class_offset(lv, (dd4220*), 0, "ee64220");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee64220.e");
+ test_class_info(&lv, &cd_ee64220);
+ dp->~ee64220();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64220(Test_ee64220, "ee64220", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee64220C1Ev();
+extern void _ZN7ee64220D1Ev();
+Name_Map name_map_ee64220[] = {
+ NSPAIR(_ZN7ee64220C1Ev),
+ NSPAIR(_ZN7ee64220D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc220;
+extern VTBL_ENTRY _ZTI5cc220[];
+extern VTBL_ENTRY _ZTV5cc220[];
+extern Class_Descriptor cd_dd4220;
+extern VTBL_ENTRY _ZTI6dd4220[];
+extern VTBL_ENTRY _ZTV6dd4220[];
+static Base_Class bases_ee64220[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc220, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4220, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee64220[];
+extern void _ZN7ee642203fooEv();
+extern void _ZN7ee642203barEv();
+static VTBL_ENTRY vtc_ee64220[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64220[0]),
+ (VTBL_ENTRY)&_ZN7ee642203fooEv,
+ (VTBL_ENTRY)&_ZN7ee642203barEv,
+};
+extern VTBL_ENTRY _ZTI7ee64220[];
+extern VTBL_ENTRY _ZTV7ee64220[];
+Class_Descriptor cd_ee64220 = { "ee64220", // class name
+ bases_ee64220, 4,
+ &(vtc_ee64220[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee64220),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64220),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 ee74220 : virtual dd4220 {
+ int e;
+ virtual void foo(); // _ZN7ee742203fooEv
+ virtual void bar(); // _ZN7ee742203barEv
+ ~ee74220(); // tgen
+ ee74220(); // tgen
+};
+//SIG(1 ee74220) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v1 Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74220 ::foo(){vfunc_called(this, "_ZN7ee742203fooEv");}
+void ee74220 ::bar(){vfunc_called(this, "_ZN7ee742203barEv");}
+ee74220 ::~ee74220(){ note_dtor("ee74220", this);} // tgen
+ee74220 ::ee74220(){ note_ctor("ee74220", this);} // tgen
+
+static void Test_ee74220()
+{
+ extern Class_Descriptor cd_ee74220;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee74220, buf);
+ ee74220 *dp, &lv = *(dp=new (buf) ee74220());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee74220)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74220)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc220*)(dd4220*), ABISELECT(24,12), "ee74220");
+ check_base_class_offset(lv, (bb20*)(cc220*)(dd4220*), ABISELECT(16,8), "ee74220");
+ check_base_class_offset(lv, (cc220*)(dd4220*), ABISELECT(16,8), "ee74220");
+ check_base_class_offset(lv, (dd4220*), ABISELECT(16,8), "ee74220");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74220.e");
+ test_class_info(&lv, &cd_ee74220);
+ dp->~ee74220();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74220(Test_ee74220, "ee74220", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee74220C1Ev();
+extern void _ZN7ee74220D1Ev();
+Name_Map name_map_ee74220[] = {
+ NSPAIR(_ZN7ee74220C1Ev),
+ NSPAIR(_ZN7ee74220D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc220;
+extern VTBL_ENTRY _ZTI5cc220[];
+extern VTBL_ENTRY _ZTV5cc220[];
+extern Class_Descriptor cd_dd4220;
+extern VTBL_ENTRY _ZTI6dd4220[];
+extern VTBL_ENTRY _ZTV6dd4220[];
+static Base_Class bases_ee74220[] = {
+ // 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_bb20, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc220, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4220, 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 _ZTI7ee74220[];
+extern void _ZN7ee742203fooEv();
+extern void _ZN7ee742203barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee742203fooEv,_ZTv0_n12_N7ee742203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee742203fooEv,_ZThn8_N7ee742203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee742203barEv,_ZTv0_n16_N7ee742203barEv)();
+extern void ABISELECT(_ZThn16_N7ee742203barEv,_ZThn8_N7ee742203barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74220[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74220[0]),
+ (VTBL_ENTRY)&_ZN7ee742203fooEv,
+ (VTBL_ENTRY)&_ZN7ee742203barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74220[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee742203fooEv,_ZTv0_n12_N7ee742203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee742203barEv,_ZTv0_n16_N7ee742203barEv),
+};
+extern VTBL_ENTRY _ZTV7ee74220[];
+static VTT_ENTRY vtt_ee74220[] = {
+ {&(_ZTV7ee74220[3]), 3,11},
+ {&(_ZTV7ee74220[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee74220[];
+extern VTBL_ENTRY _ZTV7ee74220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74220[];
+static VTBL_ENTRY alt_thunk_names111[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee742203barEv,_ZTv0_n16_N7ee742203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee742203barEv,_ZThn8_N7ee742203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee742203fooEv,_ZTv0_n12_N7ee742203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee742203fooEv,_ZThn8_N7ee742203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74220 = { "ee74220", // class name
+ bases_ee74220, 4,
+ &(vtc_ee74220[0]), // expected_vtbl_contents
+ &(vtt_ee74220[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee74220),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74220),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74220),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names111,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd5220 : virtual cc220 {
+ int d;
+ virtual void bar(); // _ZN6dd52203barEv
+ ~dd5220(); // tgen
+ dd5220(); // tgen
+};
+//SIG(-1 dd5220) C1{ VBC2{ BC3{ BC4{ Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void dd5220 ::bar(){vfunc_called(this, "_ZN6dd52203barEv");}
+dd5220 ::~dd5220(){ note_dtor("dd5220", this);} // tgen
+dd5220 ::dd5220(){ note_ctor("dd5220", this);} // tgen
+
+static void Test_dd5220()
+{
+ extern Class_Descriptor cd_dd5220;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd5220, buf);
+ dd5220 *dp, &lv = *(dp=new (buf) dd5220());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd5220)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5220)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc220*), ABISELECT(24,12), "dd5220");
+ check_base_class_offset(lv, (bb20*)(cc220*), ABISELECT(16,8), "dd5220");
+ check_base_class_offset(lv, (cc220*), ABISELECT(16,8), "dd5220");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5220.d");
+ test_class_info(&lv, &cd_dd5220);
+ dp->~dd5220();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5220(Test_dd5220, "dd5220", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd5220C1Ev();
+extern void _ZN6dd5220D1Ev();
+Name_Map name_map_dd5220[] = {
+ NSPAIR(_ZN6dd5220C1Ev),
+ NSPAIR(_ZN6dd5220D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc220;
+extern VTBL_ENTRY _ZTI5cc220[];
+extern VTBL_ENTRY _ZTV5cc220[];
+static Base_Class bases_dd5220[] = {
+ // 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_bb20, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc220, 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 _ZTI6dd5220[];
+extern void _ZN6dd52203barEv();
+extern void _ZN5cc2203fooEv();
+static VTBL_ENTRY vtc_dd5220[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5220[0]),
+ (VTBL_ENTRY)&_ZN6dd52203barEv,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5220[0]),
+ (VTBL_ENTRY)&_ZN5cc2203fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd5220[];
+static VTT_ENTRY vtt_dd5220[] = {
+ {&(_ZTV6dd5220[3]), 3,8},
+ {&(_ZTV6dd5220[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI6dd5220[];
+extern VTBL_ENTRY _ZTV6dd5220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5220[];
+Class_Descriptor cd_dd5220 = { "dd5220", // class name
+ bases_dd5220, 3,
+ &(vtc_dd5220[0]), // expected_vtbl_contents
+ &(vtt_dd5220[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd5220),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5220),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5220),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 ee05220 : dd5220 {
+ int e;
+ ~ee05220(); // tgen
+ ee05220(); // tgen
+};
+//SIG(1 ee05220) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v2 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee05220 ::~ee05220(){ note_dtor("ee05220", this);} // tgen
+ee05220 ::ee05220(){ note_ctor("ee05220", this);} // tgen
+
+static void Test_ee05220()
+{
+ extern Class_Descriptor cd_ee05220;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee05220, buf);
+ ee05220 *dp, &lv = *(dp=new (buf) ee05220());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee05220)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05220)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc220*), ABISELECT(24,16), "ee05220");
+ check_base_class_offset(lv, (bb20*)(cc220*), ABISELECT(16,12), "ee05220");
+ check_base_class_offset(lv, (cc220*)(dd5220*), ABISELECT(16,12), "ee05220");
+ check_base_class_offset(lv, (dd5220*), 0, "ee05220");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05220.e");
+ test_class_info(&lv, &cd_ee05220);
+ dp->~ee05220();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05220(Test_ee05220, "ee05220", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee05220C1Ev();
+extern void _ZN7ee05220D1Ev();
+Name_Map name_map_ee05220[] = {
+ NSPAIR(_ZN7ee05220C1Ev),
+ NSPAIR(_ZN7ee05220D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc220;
+extern VTBL_ENTRY _ZTI5cc220[];
+extern VTBL_ENTRY _ZTV5cc220[];
+extern Class_Descriptor cd_dd5220;
+extern VTBL_ENTRY _ZTI6dd5220[];
+extern VTBL_ENTRY _ZTV6dd5220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5220[];
+static Base_Class bases_ee05220[] = {
+ // 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_bb20, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc220, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5220, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee05220[];
+extern void _ZN6dd52203barEv();
+extern void _ZN5cc2203fooEv();
+static VTBL_ENTRY vtc_ee05220[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05220[0]),
+ (VTBL_ENTRY)&_ZN6dd52203barEv,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05220[0]),
+ (VTBL_ENTRY)&_ZN5cc2203fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee05220[];
+extern void _ZN6dd52203barEv();
+static VTBL_ENTRY _tg__ZTV6dd5220__7ee05220[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5220[0]),
+ (VTBL_ENTRY)&_ZN6dd52203barEv,
+};
+extern void _ZN5cc2203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc220__6dd5220__7ee05220[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5220[0]),
+ (VTBL_ENTRY)&_ZN5cc2203fooEv,
+};
+static VTT_ENTRY vtt_ee05220[] = {
+ {&(_ZTV7ee05220[3]), 3,8},
+ {&(_tg__ZTV6dd5220__7ee05220[3]), 3,4},
+ {&(_tg__ZTV5cc220__6dd5220__7ee05220[3]), 3,4},
+ {&(_ZTV7ee05220[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee05220[];
+extern VTBL_ENTRY _ZTV7ee05220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05220[];
+Class_Descriptor cd_ee05220 = { "ee05220", // class name
+ bases_ee05220, 4,
+ &(vtc_ee05220[0]), // expected_vtbl_contents
+ &(vtt_ee05220[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee05220),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05220),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05220),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 ee15220 : virtual dd5220 {
+ int e;
+ ~ee15220(); // tgen
+ ee15220(); // tgen
+};
+//SIG(1 ee15220) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v2 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee15220 ::~ee15220(){ note_dtor("ee15220", this);} // tgen
+ee15220 ::ee15220(){ note_ctor("ee15220", this);} // tgen
+
+static void Test_ee15220()
+{
+ extern Class_Descriptor cd_ee15220;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee15220, buf);
+ ee15220 *dp, &lv = *(dp=new (buf) ee15220());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee15220)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15220)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc220*), ABISELECT(40,20), "ee15220");
+ check_base_class_offset(lv, (bb20*)(cc220*), ABISELECT(32,16), "ee15220");
+ check_base_class_offset(lv, (cc220*)(dd5220*), ABISELECT(32,16), "ee15220");
+ check_base_class_offset(lv, (dd5220*), ABISELECT(16,8), "ee15220");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15220.e");
+ test_class_info(&lv, &cd_ee15220);
+ dp->~ee15220();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15220(Test_ee15220, "ee15220", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee15220C1Ev();
+extern void _ZN7ee15220D1Ev();
+Name_Map name_map_ee15220[] = {
+ NSPAIR(_ZN7ee15220C1Ev),
+ NSPAIR(_ZN7ee15220D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc220;
+extern VTBL_ENTRY _ZTI5cc220[];
+extern VTBL_ENTRY _ZTV5cc220[];
+extern Class_Descriptor cd_dd5220;
+extern VTBL_ENTRY _ZTI6dd5220[];
+extern VTBL_ENTRY _ZTV6dd5220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5220[];
+static Base_Class bases_ee15220[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc220, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5220, 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 _ZTI7ee15220[];
+extern void _ZN6dd52203barEv();
+extern void _ZN5cc2203fooEv();
+static VTBL_ENTRY vtc_ee15220[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15220[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15220[0]),
+ (VTBL_ENTRY)&_ZN6dd52203barEv,
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15220[0]),
+ (VTBL_ENTRY)&_ZN5cc2203fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee15220[];
+extern void _ZN6dd52203barEv();
+static VTBL_ENTRY _tg__ZTV6dd5220__7ee15220[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5220[0]),
+ (VTBL_ENTRY)&_ZN6dd52203barEv,
+};
+extern void _ZN5cc2203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc220__6dd5220__7ee15220[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5220[0]),
+ (VTBL_ENTRY)&_ZN5cc2203fooEv,
+};
+static VTT_ENTRY vtt_ee15220[] = {
+ {&(_ZTV7ee15220[4]), 4,13},
+ {&(_ZTV7ee15220[8]), 8,13},
+ {&(_ZTV7ee15220[12]), 12,13},
+ {&(_tg__ZTV6dd5220__7ee15220[3]), 3,4},
+ {&(_tg__ZTV5cc220__6dd5220__7ee15220[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee15220[];
+extern VTBL_ENTRY _ZTV7ee15220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15220[];
+Class_Descriptor cd_ee15220 = { "ee15220", // class name
+ bases_ee15220, 4,
+ &(vtc_ee15220[0]), // expected_vtbl_contents
+ &(vtt_ee15220[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee15220),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15220),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15220),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 ee25220 : dd5220 {
+ int e;
+ virtual void foo(); // _ZN7ee252203fooEv
+ ~ee25220(); // tgen
+ ee25220(); // tgen
+};
+//SIG(1 ee25220) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v1 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee25220 ::foo(){vfunc_called(this, "_ZN7ee252203fooEv");}
+ee25220 ::~ee25220(){ note_dtor("ee25220", this);} // tgen
+ee25220 ::ee25220(){ note_ctor("ee25220", this);} // tgen
+
+static void Test_ee25220()
+{
+ extern Class_Descriptor cd_ee25220;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee25220, buf);
+ ee25220 *dp, &lv = *(dp=new (buf) ee25220());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee25220)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25220)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc220*), ABISELECT(24,16), "ee25220");
+ check_base_class_offset(lv, (bb20*)(cc220*), ABISELECT(16,12), "ee25220");
+ check_base_class_offset(lv, (cc220*)(dd5220*), ABISELECT(16,12), "ee25220");
+ check_base_class_offset(lv, (dd5220*), 0, "ee25220");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25220.e");
+ test_class_info(&lv, &cd_ee25220);
+ dp->~ee25220();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25220(Test_ee25220, "ee25220", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee25220C1Ev();
+extern void _ZN7ee25220D1Ev();
+Name_Map name_map_ee25220[] = {
+ NSPAIR(_ZN7ee25220C1Ev),
+ NSPAIR(_ZN7ee25220D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc220;
+extern VTBL_ENTRY _ZTI5cc220[];
+extern VTBL_ENTRY _ZTV5cc220[];
+extern Class_Descriptor cd_dd5220;
+extern VTBL_ENTRY _ZTI6dd5220[];
+extern VTBL_ENTRY _ZTV6dd5220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5220[];
+static Base_Class bases_ee25220[] = {
+ // 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_bb20, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc220, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5220, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee25220[];
+extern void _ZN6dd52203barEv();
+extern void _ZN7ee252203fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee252203fooEv,_ZTv0_n12_N7ee252203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee252203fooEv,_ZThn12_N7ee252203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25220[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25220[0]),
+ (VTBL_ENTRY)&_ZN6dd52203barEv,
+ (VTBL_ENTRY)&_ZN7ee252203fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25220[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee252203fooEv,_ZTv0_n12_N7ee252203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee25220[];
+extern void _ZN6dd52203barEv();
+static VTBL_ENTRY _tg__ZTV6dd5220__7ee25220[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5220[0]),
+ (VTBL_ENTRY)&_ZN6dd52203barEv,
+};
+extern void _ZN5cc2203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc220__6dd5220__7ee25220[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5220[0]),
+ (VTBL_ENTRY)&_ZN5cc2203fooEv,
+};
+static VTT_ENTRY vtt_ee25220[] = {
+ {&(_ZTV7ee25220[3]), 3,9},
+ {&(_tg__ZTV6dd5220__7ee25220[3]), 3,4},
+ {&(_tg__ZTV5cc220__6dd5220__7ee25220[3]), 3,4},
+ {&(_ZTV7ee25220[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee25220[];
+extern VTBL_ENTRY _ZTV7ee25220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25220[];
+static VTBL_ENTRY alt_thunk_names112[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee252203fooEv,_ZTv0_n12_N7ee252203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee252203fooEv,_ZThn12_N7ee252203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25220 = { "ee25220", // class name
+ bases_ee25220, 4,
+ &(vtc_ee25220[0]), // expected_vtbl_contents
+ &(vtt_ee25220[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee25220),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25220),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25220),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names112,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee35220 : virtual dd5220 {
+ int e;
+ virtual void foo(); // _ZN7ee352203fooEv
+ ~ee35220(); // tgen
+ ee35220(); // tgen
+};
+//SIG(1 ee35220) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v1 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee35220 ::foo(){vfunc_called(this, "_ZN7ee352203fooEv");}
+ee35220 ::~ee35220(){ note_dtor("ee35220", this);} // tgen
+ee35220 ::ee35220(){ note_ctor("ee35220", this);} // tgen
+
+static void Test_ee35220()
+{
+ extern Class_Descriptor cd_ee35220;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee35220, buf);
+ ee35220 *dp, &lv = *(dp=new (buf) ee35220());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee35220)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35220)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc220*), ABISELECT(40,20), "ee35220");
+ check_base_class_offset(lv, (bb20*)(cc220*), ABISELECT(32,16), "ee35220");
+ check_base_class_offset(lv, (cc220*)(dd5220*), ABISELECT(32,16), "ee35220");
+ check_base_class_offset(lv, (dd5220*), ABISELECT(16,8), "ee35220");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35220.e");
+ test_class_info(&lv, &cd_ee35220);
+ dp->~ee35220();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35220(Test_ee35220, "ee35220", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee35220C1Ev();
+extern void _ZN7ee35220D1Ev();
+Name_Map name_map_ee35220[] = {
+ NSPAIR(_ZN7ee35220C1Ev),
+ NSPAIR(_ZN7ee35220D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc220;
+extern VTBL_ENTRY _ZTI5cc220[];
+extern VTBL_ENTRY _ZTV5cc220[];
+extern Class_Descriptor cd_dd5220;
+extern VTBL_ENTRY _ZTI6dd5220[];
+extern VTBL_ENTRY _ZTV6dd5220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5220[];
+static Base_Class bases_ee35220[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc220, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5220, 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 _ZTI7ee35220[];
+extern void _ZN7ee352203fooEv();
+extern void _ZN6dd52203barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee352203fooEv,_ZTv0_n12_N7ee352203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee352203fooEv,_ZThn16_N7ee352203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35220[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35220[0]),
+ (VTBL_ENTRY)&_ZN7ee352203fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35220[0]),
+ (VTBL_ENTRY)&_ZN6dd52203barEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35220[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee352203fooEv,_ZTv0_n12_N7ee352203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee35220[];
+extern void _ZN6dd52203barEv();
+static VTBL_ENTRY _tg__ZTV6dd5220__7ee35220[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5220[0]),
+ (VTBL_ENTRY)&_ZN6dd52203barEv,
+};
+extern void _ZN5cc2203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc220__6dd5220__7ee35220[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5220[0]),
+ (VTBL_ENTRY)&_ZN5cc2203fooEv,
+};
+static VTT_ENTRY vtt_ee35220[] = {
+ {&(_ZTV7ee35220[4]), 4,14},
+ {&(_ZTV7ee35220[9]), 9,14},
+ {&(_ZTV7ee35220[13]), 13,14},
+ {&(_tg__ZTV6dd5220__7ee35220[3]), 3,4},
+ {&(_tg__ZTV5cc220__6dd5220__7ee35220[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee35220[];
+extern VTBL_ENTRY _ZTV7ee35220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35220[];
+static VTBL_ENTRY alt_thunk_names113[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee352203fooEv,_ZTv0_n12_N7ee352203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee352203fooEv,_ZThn16_N7ee352203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35220 = { "ee35220", // class name
+ bases_ee35220, 4,
+ &(vtc_ee35220[0]), // expected_vtbl_contents
+ &(vtt_ee35220[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee35220),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35220),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35220),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names113,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee45220 : dd5220 {
+ int e;
+ virtual void bar(); // _ZN7ee452203barEv
+ ~ee45220(); // tgen
+ ee45220(); // tgen
+};
+//SIG(1 ee45220) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v2 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee45220 ::bar(){vfunc_called(this, "_ZN7ee452203barEv");}
+ee45220 ::~ee45220(){ note_dtor("ee45220", this);} // tgen
+ee45220 ::ee45220(){ note_ctor("ee45220", this);} // tgen
+
+static void Test_ee45220()
+{
+ extern Class_Descriptor cd_ee45220;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee45220, buf);
+ ee45220 *dp, &lv = *(dp=new (buf) ee45220());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee45220)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45220)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc220*), ABISELECT(24,16), "ee45220");
+ check_base_class_offset(lv, (bb20*)(cc220*), ABISELECT(16,12), "ee45220");
+ check_base_class_offset(lv, (cc220*)(dd5220*), ABISELECT(16,12), "ee45220");
+ check_base_class_offset(lv, (dd5220*), 0, "ee45220");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45220.e");
+ test_class_info(&lv, &cd_ee45220);
+ dp->~ee45220();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45220(Test_ee45220, "ee45220", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee45220C1Ev();
+extern void _ZN7ee45220D1Ev();
+Name_Map name_map_ee45220[] = {
+ NSPAIR(_ZN7ee45220C1Ev),
+ NSPAIR(_ZN7ee45220D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc220;
+extern VTBL_ENTRY _ZTI5cc220[];
+extern VTBL_ENTRY _ZTV5cc220[];
+extern Class_Descriptor cd_dd5220;
+extern VTBL_ENTRY _ZTI6dd5220[];
+extern VTBL_ENTRY _ZTV6dd5220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5220[];
+static Base_Class bases_ee45220[] = {
+ // 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_bb20, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc220, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5220, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee45220[];
+extern void _ZN7ee452203barEv();
+extern void _ZN5cc2203fooEv();
+static VTBL_ENTRY vtc_ee45220[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45220[0]),
+ (VTBL_ENTRY)&_ZN7ee452203barEv,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45220[0]),
+ (VTBL_ENTRY)&_ZN5cc2203fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee45220[];
+extern void _ZN6dd52203barEv();
+static VTBL_ENTRY _tg__ZTV6dd5220__7ee45220[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5220[0]),
+ (VTBL_ENTRY)&_ZN6dd52203barEv,
+};
+extern void _ZN5cc2203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc220__6dd5220__7ee45220[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5220[0]),
+ (VTBL_ENTRY)&_ZN5cc2203fooEv,
+};
+static VTT_ENTRY vtt_ee45220[] = {
+ {&(_ZTV7ee45220[3]), 3,8},
+ {&(_tg__ZTV6dd5220__7ee45220[3]), 3,4},
+ {&(_tg__ZTV5cc220__6dd5220__7ee45220[3]), 3,4},
+ {&(_ZTV7ee45220[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee45220[];
+extern VTBL_ENTRY _ZTV7ee45220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45220[];
+Class_Descriptor cd_ee45220 = { "ee45220", // class name
+ bases_ee45220, 4,
+ &(vtc_ee45220[0]), // expected_vtbl_contents
+ &(vtt_ee45220[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee45220),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45220),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45220),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 ee55220 : virtual dd5220 {
+ int e;
+ virtual void bar(); // _ZN7ee552203barEv
+ ~ee55220(); // tgen
+ ee55220(); // tgen
+};
+//SIG(1 ee55220) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v2 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee55220 ::bar(){vfunc_called(this, "_ZN7ee552203barEv");}
+ee55220 ::~ee55220(){ note_dtor("ee55220", this);} // tgen
+ee55220 ::ee55220(){ note_ctor("ee55220", this);} // tgen
+
+static void Test_ee55220()
+{
+ extern Class_Descriptor cd_ee55220;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee55220, buf);
+ ee55220 *dp, &lv = *(dp=new (buf) ee55220());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee55220)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55220)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc220*), ABISELECT(40,20), "ee55220");
+ check_base_class_offset(lv, (bb20*)(cc220*), ABISELECT(32,16), "ee55220");
+ check_base_class_offset(lv, (cc220*)(dd5220*), ABISELECT(32,16), "ee55220");
+ check_base_class_offset(lv, (dd5220*), ABISELECT(16,8), "ee55220");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55220.e");
+ test_class_info(&lv, &cd_ee55220);
+ dp->~ee55220();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55220(Test_ee55220, "ee55220", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee55220C1Ev();
+extern void _ZN7ee55220D1Ev();
+Name_Map name_map_ee55220[] = {
+ NSPAIR(_ZN7ee55220C1Ev),
+ NSPAIR(_ZN7ee55220D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc220;
+extern VTBL_ENTRY _ZTI5cc220[];
+extern VTBL_ENTRY _ZTV5cc220[];
+extern Class_Descriptor cd_dd5220;
+extern VTBL_ENTRY _ZTI6dd5220[];
+extern VTBL_ENTRY _ZTV6dd5220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5220[];
+static Base_Class bases_ee55220[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc220, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5220, 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 _ZTI7ee55220[];
+extern void _ZN7ee552203barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee552203barEv,_ZTv0_n16_N7ee552203barEv)();
+extern void ABISELECT(_ZThn16_N7ee552203barEv,_ZThn8_N7ee552203barEv)() __attribute__((weak));
+extern void _ZN5cc2203fooEv();
+static VTBL_ENTRY vtc_ee55220[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55220[0]),
+ (VTBL_ENTRY)&_ZN7ee552203barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55220[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee552203barEv,_ZTv0_n16_N7ee552203barEv),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55220[0]),
+ (VTBL_ENTRY)&_ZN5cc2203fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee55220[];
+extern void _ZN6dd52203barEv();
+static VTBL_ENTRY _tg__ZTV6dd5220__7ee55220[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5220[0]),
+ (VTBL_ENTRY)&_ZN6dd52203barEv,
+};
+extern void _ZN5cc2203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc220__6dd5220__7ee55220[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5220[0]),
+ (VTBL_ENTRY)&_ZN5cc2203fooEv,
+};
+static VTT_ENTRY vtt_ee55220[] = {
+ {&(_ZTV7ee55220[4]), 4,14},
+ {&(_ZTV7ee55220[9]), 9,14},
+ {&(_ZTV7ee55220[13]), 13,14},
+ {&(_tg__ZTV6dd5220__7ee55220[3]), 3,4},
+ {&(_tg__ZTV5cc220__6dd5220__7ee55220[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee55220[];
+extern VTBL_ENTRY _ZTV7ee55220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55220[];
+static VTBL_ENTRY alt_thunk_names114[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee552203barEv,_ZTv0_n16_N7ee552203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee552203barEv,_ZThn8_N7ee552203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55220 = { "ee55220", // class name
+ bases_ee55220, 4,
+ &(vtc_ee55220[0]), // expected_vtbl_contents
+ &(vtt_ee55220[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee55220),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55220),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55220),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names114,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee65220 : dd5220 {
+ int e;
+ virtual void foo(); // _ZN7ee652203fooEv
+ virtual void bar(); // _ZN7ee652203barEv
+ ~ee65220(); // tgen
+ ee65220(); // tgen
+};
+//SIG(1 ee65220) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v1 Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65220 ::foo(){vfunc_called(this, "_ZN7ee652203fooEv");}
+void ee65220 ::bar(){vfunc_called(this, "_ZN7ee652203barEv");}
+ee65220 ::~ee65220(){ note_dtor("ee65220", this);} // tgen
+ee65220 ::ee65220(){ note_ctor("ee65220", this);} // tgen
+
+static void Test_ee65220()
+{
+ extern Class_Descriptor cd_ee65220;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee65220, buf);
+ ee65220 *dp, &lv = *(dp=new (buf) ee65220());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee65220)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65220)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc220*), ABISELECT(24,16), "ee65220");
+ check_base_class_offset(lv, (bb20*)(cc220*), ABISELECT(16,12), "ee65220");
+ check_base_class_offset(lv, (cc220*)(dd5220*), ABISELECT(16,12), "ee65220");
+ check_base_class_offset(lv, (dd5220*), 0, "ee65220");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65220.e");
+ test_class_info(&lv, &cd_ee65220);
+ dp->~ee65220();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65220(Test_ee65220, "ee65220", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee65220C1Ev();
+extern void _ZN7ee65220D1Ev();
+Name_Map name_map_ee65220[] = {
+ NSPAIR(_ZN7ee65220C1Ev),
+ NSPAIR(_ZN7ee65220D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc220;
+extern VTBL_ENTRY _ZTI5cc220[];
+extern VTBL_ENTRY _ZTV5cc220[];
+extern Class_Descriptor cd_dd5220;
+extern VTBL_ENTRY _ZTI6dd5220[];
+extern VTBL_ENTRY _ZTV6dd5220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5220[];
+static Base_Class bases_ee65220[] = {
+ // 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_bb20, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc220, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5220, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee65220[];
+extern void _ZN7ee652203barEv();
+extern void _ZN7ee652203fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee652203fooEv,_ZTv0_n12_N7ee652203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee652203fooEv,_ZThn12_N7ee652203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65220[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65220[0]),
+ (VTBL_ENTRY)&_ZN7ee652203barEv,
+ (VTBL_ENTRY)&_ZN7ee652203fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65220[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee652203fooEv,_ZTv0_n12_N7ee652203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee65220[];
+extern void _ZN6dd52203barEv();
+static VTBL_ENTRY _tg__ZTV6dd5220__7ee65220[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5220[0]),
+ (VTBL_ENTRY)&_ZN6dd52203barEv,
+};
+extern void _ZN5cc2203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc220__6dd5220__7ee65220[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5220[0]),
+ (VTBL_ENTRY)&_ZN5cc2203fooEv,
+};
+static VTT_ENTRY vtt_ee65220[] = {
+ {&(_ZTV7ee65220[3]), 3,9},
+ {&(_tg__ZTV6dd5220__7ee65220[3]), 3,4},
+ {&(_tg__ZTV5cc220__6dd5220__7ee65220[3]), 3,4},
+ {&(_ZTV7ee65220[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee65220[];
+extern VTBL_ENTRY _ZTV7ee65220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65220[];
+static VTBL_ENTRY alt_thunk_names115[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee652203fooEv,_ZTv0_n12_N7ee652203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee652203fooEv,_ZThn12_N7ee652203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65220 = { "ee65220", // class name
+ bases_ee65220, 4,
+ &(vtc_ee65220[0]), // expected_vtbl_contents
+ &(vtt_ee65220[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee65220),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65220),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65220),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names115,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee75220 : virtual dd5220 {
+ int e;
+ virtual void foo(); // _ZN7ee752203fooEv
+ virtual void bar(); // _ZN7ee752203barEv
+ ~ee75220(); // tgen
+ ee75220(); // tgen
+};
+//SIG(1 ee75220) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v1 Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75220 ::foo(){vfunc_called(this, "_ZN7ee752203fooEv");}
+void ee75220 ::bar(){vfunc_called(this, "_ZN7ee752203barEv");}
+ee75220 ::~ee75220(){ note_dtor("ee75220", this);} // tgen
+ee75220 ::ee75220(){ note_ctor("ee75220", this);} // tgen
+
+static void Test_ee75220()
+{
+ extern Class_Descriptor cd_ee75220;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee75220, buf);
+ ee75220 *dp, &lv = *(dp=new (buf) ee75220());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee75220)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75220)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc220*), ABISELECT(40,20), "ee75220");
+ check_base_class_offset(lv, (bb20*)(cc220*), ABISELECT(32,16), "ee75220");
+ check_base_class_offset(lv, (cc220*)(dd5220*), ABISELECT(32,16), "ee75220");
+ check_base_class_offset(lv, (dd5220*), ABISELECT(16,8), "ee75220");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75220.e");
+ test_class_info(&lv, &cd_ee75220);
+ dp->~ee75220();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75220(Test_ee75220, "ee75220", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee75220C1Ev();
+extern void _ZN7ee75220D1Ev();
+Name_Map name_map_ee75220[] = {
+ NSPAIR(_ZN7ee75220C1Ev),
+ NSPAIR(_ZN7ee75220D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc220;
+extern VTBL_ENTRY _ZTI5cc220[];
+extern VTBL_ENTRY _ZTV5cc220[];
+extern Class_Descriptor cd_dd5220;
+extern VTBL_ENTRY _ZTI6dd5220[];
+extern VTBL_ENTRY _ZTV6dd5220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5220[];
+static Base_Class bases_ee75220[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc220, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5220, 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 _ZTI7ee75220[];
+extern void _ZN7ee752203fooEv();
+extern void _ZN7ee752203barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee752203barEv,_ZTv0_n16_N7ee752203barEv)();
+extern void ABISELECT(_ZThn16_N7ee752203barEv,_ZThn8_N7ee752203barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee752203fooEv,_ZTv0_n12_N7ee752203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee752203fooEv,_ZThn16_N7ee752203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75220[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75220[0]),
+ (VTBL_ENTRY)&_ZN7ee752203fooEv,
+ (VTBL_ENTRY)&_ZN7ee752203barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75220[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee752203barEv,_ZTv0_n16_N7ee752203barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75220[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee752203fooEv,_ZTv0_n12_N7ee752203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee75220[];
+extern void _ZN6dd52203barEv();
+static VTBL_ENTRY _tg__ZTV6dd5220__7ee75220[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5220[0]),
+ (VTBL_ENTRY)&_ZN6dd52203barEv,
+};
+extern void _ZN5cc2203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc220__6dd5220__7ee75220[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5220[0]),
+ (VTBL_ENTRY)&_ZN5cc2203fooEv,
+};
+static VTT_ENTRY vtt_ee75220[] = {
+ {&(_ZTV7ee75220[4]), 4,15},
+ {&(_ZTV7ee75220[10]), 10,15},
+ {&(_ZTV7ee75220[14]), 14,15},
+ {&(_tg__ZTV6dd5220__7ee75220[3]), 3,4},
+ {&(_tg__ZTV5cc220__6dd5220__7ee75220[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee75220[];
+extern VTBL_ENTRY _ZTV7ee75220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75220[];
+static VTBL_ENTRY alt_thunk_names116[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee752203fooEv,_ZTv0_n12_N7ee752203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee752203fooEv,_ZThn16_N7ee752203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee752203barEv,_ZTv0_n16_N7ee752203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee752203barEv,_ZThn8_N7ee752203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75220 = { "ee75220", // class name
+ bases_ee75220, 4,
+ &(vtc_ee75220[0]), // expected_vtbl_contents
+ &(vtt_ee75220[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee75220),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75220),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75220),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names116,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd6220 : cc220 {
+ int d;
+ virtual void bar(); // _ZN6dd62203barEv
+ virtual void foo(); // _ZN6dd62203fooEv
+ ~dd6220(); // tgen
+ dd6220(); // tgen
+};
+//SIG(-1 dd6220) C1{ BC2{ BC3{ BC4{ Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void dd6220 ::bar(){vfunc_called(this, "_ZN6dd62203barEv");}
+void dd6220 ::foo(){vfunc_called(this, "_ZN6dd62203fooEv");}
+dd6220 ::~dd6220(){ note_dtor("dd6220", this);} // tgen
+dd6220 ::dd6220(){ note_ctor("dd6220", this);} // tgen
+
+static void Test_dd6220()
+{
+ extern Class_Descriptor cd_dd6220;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd6220, buf);
+ dd6220 *dp, &lv = *(dp=new (buf) dd6220());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd6220)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6220)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc220*), ABISELECT(8,4), "dd6220");
+ check_base_class_offset(lv, (bb20*)(cc220*), 0, "dd6220");
+ check_base_class_offset(lv, (cc220*), 0, "dd6220");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd6220.d");
+ test_class_info(&lv, &cd_dd6220);
+ dp->~dd6220();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6220(Test_dd6220, "dd6220", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd6220C1Ev();
+extern void _ZN6dd6220D1Ev();
+Name_Map name_map_dd6220[] = {
+ NSPAIR(_ZN6dd6220C1Ev),
+ NSPAIR(_ZN6dd6220D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc220;
+extern VTBL_ENTRY _ZTI5cc220[];
+extern VTBL_ENTRY _ZTV5cc220[];
+static Base_Class bases_dd6220[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc220, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI6dd6220[];
+extern void _ZN6dd62203fooEv();
+extern void _ZN6dd62203barEv();
+static VTBL_ENTRY vtc_dd6220[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6220[0]),
+ (VTBL_ENTRY)&_ZN6dd62203fooEv,
+ (VTBL_ENTRY)&_ZN6dd62203barEv,
+};
+extern VTBL_ENTRY _ZTI6dd6220[];
+extern VTBL_ENTRY _ZTV6dd6220[];
+Class_Descriptor cd_dd6220 = { "dd6220", // class name
+ bases_dd6220, 3,
+ &(vtc_dd6220[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd6220),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6220),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 ee06220 : dd6220 {
+ int e;
+ ~ee06220(); // tgen
+ ee06220(); // tgen
+};
+//SIG(1 ee06220) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v2 Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee06220 ::~ee06220(){ note_dtor("ee06220", this);} // tgen
+ee06220 ::ee06220(){ note_ctor("ee06220", this);} // tgen
+
+static void Test_ee06220()
+{
+ extern Class_Descriptor cd_ee06220;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee06220, buf);
+ ee06220 *dp, &lv = *(dp=new (buf) ee06220());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee06220)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06220)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc220*)(dd6220*), ABISELECT(8,4), "ee06220");
+ check_base_class_offset(lv, (bb20*)(cc220*)(dd6220*), 0, "ee06220");
+ check_base_class_offset(lv, (cc220*)(dd6220*), 0, "ee06220");
+ check_base_class_offset(lv, (dd6220*), 0, "ee06220");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee06220.e");
+ test_class_info(&lv, &cd_ee06220);
+ dp->~ee06220();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06220(Test_ee06220, "ee06220", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee06220C1Ev();
+extern void _ZN7ee06220D1Ev();
+Name_Map name_map_ee06220[] = {
+ NSPAIR(_ZN7ee06220C1Ev),
+ NSPAIR(_ZN7ee06220D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc220;
+extern VTBL_ENTRY _ZTI5cc220[];
+extern VTBL_ENTRY _ZTV5cc220[];
+extern Class_Descriptor cd_dd6220;
+extern VTBL_ENTRY _ZTI6dd6220[];
+extern VTBL_ENTRY _ZTV6dd6220[];
+static Base_Class bases_ee06220[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc220, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6220, 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 _ZTI7ee06220[];
+extern void _ZN6dd62203fooEv();
+extern void _ZN6dd62203barEv();
+static VTBL_ENTRY vtc_ee06220[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06220[0]),
+ (VTBL_ENTRY)&_ZN6dd62203fooEv,
+ (VTBL_ENTRY)&_ZN6dd62203barEv,
+};
+extern VTBL_ENTRY _ZTI7ee06220[];
+extern VTBL_ENTRY _ZTV7ee06220[];
+Class_Descriptor cd_ee06220 = { "ee06220", // class name
+ bases_ee06220, 4,
+ &(vtc_ee06220[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee06220),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06220),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 ee16220 : virtual dd6220 {
+ int e;
+ ~ee16220(); // tgen
+ ee16220(); // tgen
+};
+//SIG(1 ee16220) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v2 Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee16220 ::~ee16220(){ note_dtor("ee16220", this);} // tgen
+ee16220 ::ee16220(){ note_ctor("ee16220", this);} // tgen
+
+static void Test_ee16220()
+{
+ extern Class_Descriptor cd_ee16220;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee16220, buf);
+ ee16220 *dp, &lv = *(dp=new (buf) ee16220());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee16220)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16220)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc220*)(dd6220*), ABISELECT(24,12), "ee16220");
+ check_base_class_offset(lv, (bb20*)(cc220*)(dd6220*), ABISELECT(16,8), "ee16220");
+ check_base_class_offset(lv, (cc220*)(dd6220*), ABISELECT(16,8), "ee16220");
+ check_base_class_offset(lv, (dd6220*), ABISELECT(16,8), "ee16220");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16220.e");
+ test_class_info(&lv, &cd_ee16220);
+ dp->~ee16220();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16220(Test_ee16220, "ee16220", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee16220C1Ev();
+extern void _ZN7ee16220D1Ev();
+Name_Map name_map_ee16220[] = {
+ NSPAIR(_ZN7ee16220C1Ev),
+ NSPAIR(_ZN7ee16220D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc220;
+extern VTBL_ENTRY _ZTI5cc220[];
+extern VTBL_ENTRY _ZTV5cc220[];
+extern Class_Descriptor cd_dd6220;
+extern VTBL_ENTRY _ZTI6dd6220[];
+extern VTBL_ENTRY _ZTV6dd6220[];
+static Base_Class bases_ee16220[] = {
+ // 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_bb20, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc220, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6220, 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 _ZTI7ee16220[];
+extern void _ZN6dd62203fooEv();
+extern void _ZN6dd62203barEv();
+static VTBL_ENTRY vtc_ee16220[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16220[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16220[0]),
+ (VTBL_ENTRY)&_ZN6dd62203fooEv,
+ (VTBL_ENTRY)&_ZN6dd62203barEv,
+};
+extern VTBL_ENTRY _ZTV7ee16220[];
+static VTT_ENTRY vtt_ee16220[] = {
+ {&(_ZTV7ee16220[3]), 3,9},
+ {&(_ZTV7ee16220[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee16220[];
+extern VTBL_ENTRY _ZTV7ee16220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16220[];
+Class_Descriptor cd_ee16220 = { "ee16220", // class name
+ bases_ee16220, 4,
+ &(vtc_ee16220[0]), // expected_vtbl_contents
+ &(vtt_ee16220[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee16220),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16220),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16220),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 ee26220 : dd6220 {
+ int e;
+ virtual void foo(); // _ZN7ee262203fooEv
+ ~ee26220(); // tgen
+ ee26220(); // tgen
+};
+//SIG(1 ee26220) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v1 Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26220 ::foo(){vfunc_called(this, "_ZN7ee262203fooEv");}
+ee26220 ::~ee26220(){ note_dtor("ee26220", this);} // tgen
+ee26220 ::ee26220(){ note_ctor("ee26220", this);} // tgen
+
+static void Test_ee26220()
+{
+ extern Class_Descriptor cd_ee26220;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee26220, buf);
+ ee26220 *dp, &lv = *(dp=new (buf) ee26220());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee26220)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26220)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc220*)(dd6220*), ABISELECT(8,4), "ee26220");
+ check_base_class_offset(lv, (bb20*)(cc220*)(dd6220*), 0, "ee26220");
+ check_base_class_offset(lv, (cc220*)(dd6220*), 0, "ee26220");
+ check_base_class_offset(lv, (dd6220*), 0, "ee26220");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee26220.e");
+ test_class_info(&lv, &cd_ee26220);
+ dp->~ee26220();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26220(Test_ee26220, "ee26220", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee26220C1Ev();
+extern void _ZN7ee26220D1Ev();
+Name_Map name_map_ee26220[] = {
+ NSPAIR(_ZN7ee26220C1Ev),
+ NSPAIR(_ZN7ee26220D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc220;
+extern VTBL_ENTRY _ZTI5cc220[];
+extern VTBL_ENTRY _ZTV5cc220[];
+extern Class_Descriptor cd_dd6220;
+extern VTBL_ENTRY _ZTI6dd6220[];
+extern VTBL_ENTRY _ZTV6dd6220[];
+static Base_Class bases_ee26220[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc220, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6220, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee26220[];
+extern void _ZN7ee262203fooEv();
+extern void _ZN6dd62203barEv();
+static VTBL_ENTRY vtc_ee26220[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26220[0]),
+ (VTBL_ENTRY)&_ZN7ee262203fooEv,
+ (VTBL_ENTRY)&_ZN6dd62203barEv,
+};
+extern VTBL_ENTRY _ZTI7ee26220[];
+extern VTBL_ENTRY _ZTV7ee26220[];
+Class_Descriptor cd_ee26220 = { "ee26220", // class name
+ bases_ee26220, 4,
+ &(vtc_ee26220[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee26220),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26220),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 ee36220 : virtual dd6220 {
+ int e;
+ virtual void foo(); // _ZN7ee362203fooEv
+ ~ee36220(); // tgen
+ ee36220(); // tgen
+};
+//SIG(1 ee36220) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v1 Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36220 ::foo(){vfunc_called(this, "_ZN7ee362203fooEv");}
+ee36220 ::~ee36220(){ note_dtor("ee36220", this);} // tgen
+ee36220 ::ee36220(){ note_ctor("ee36220", this);} // tgen
+
+static void Test_ee36220()
+{
+ extern Class_Descriptor cd_ee36220;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee36220, buf);
+ ee36220 *dp, &lv = *(dp=new (buf) ee36220());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee36220)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36220)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc220*)(dd6220*), ABISELECT(24,12), "ee36220");
+ check_base_class_offset(lv, (bb20*)(cc220*)(dd6220*), ABISELECT(16,8), "ee36220");
+ check_base_class_offset(lv, (cc220*)(dd6220*), ABISELECT(16,8), "ee36220");
+ check_base_class_offset(lv, (dd6220*), ABISELECT(16,8), "ee36220");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36220.e");
+ test_class_info(&lv, &cd_ee36220);
+ dp->~ee36220();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36220(Test_ee36220, "ee36220", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee36220C1Ev();
+extern void _ZN7ee36220D1Ev();
+Name_Map name_map_ee36220[] = {
+ NSPAIR(_ZN7ee36220C1Ev),
+ NSPAIR(_ZN7ee36220D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc220;
+extern VTBL_ENTRY _ZTI5cc220[];
+extern VTBL_ENTRY _ZTV5cc220[];
+extern Class_Descriptor cd_dd6220;
+extern VTBL_ENTRY _ZTI6dd6220[];
+extern VTBL_ENTRY _ZTV6dd6220[];
+static Base_Class bases_ee36220[] = {
+ // 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_bb20, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc220, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6220, 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 _ZTI7ee36220[];
+extern void _ZN7ee362203fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee362203fooEv,_ZTv0_n12_N7ee362203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee362203fooEv,_ZThn8_N7ee362203fooEv)() __attribute__((weak));
+extern void _ZN6dd62203barEv();
+static VTBL_ENTRY vtc_ee36220[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36220[0]),
+ (VTBL_ENTRY)&_ZN7ee362203fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36220[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee362203fooEv,_ZTv0_n12_N7ee362203fooEv),
+ (VTBL_ENTRY)&_ZN6dd62203barEv,
+};
+extern VTBL_ENTRY _ZTV7ee36220[];
+static VTT_ENTRY vtt_ee36220[] = {
+ {&(_ZTV7ee36220[3]), 3,10},
+ {&(_ZTV7ee36220[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee36220[];
+extern VTBL_ENTRY _ZTV7ee36220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36220[];
+static VTBL_ENTRY alt_thunk_names117[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee362203fooEv,_ZTv0_n12_N7ee362203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee362203fooEv,_ZThn8_N7ee362203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36220 = { "ee36220", // class name
+ bases_ee36220, 4,
+ &(vtc_ee36220[0]), // expected_vtbl_contents
+ &(vtt_ee36220[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee36220),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36220),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36220),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names117,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee46220 : dd6220 {
+ int e;
+ virtual void bar(); // _ZN7ee462203barEv
+ ~ee46220(); // tgen
+ ee46220(); // tgen
+};
+//SIG(1 ee46220) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v2 Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46220 ::bar(){vfunc_called(this, "_ZN7ee462203barEv");}
+ee46220 ::~ee46220(){ note_dtor("ee46220", this);} // tgen
+ee46220 ::ee46220(){ note_ctor("ee46220", this);} // tgen
+
+static void Test_ee46220()
+{
+ extern Class_Descriptor cd_ee46220;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee46220, buf);
+ ee46220 *dp, &lv = *(dp=new (buf) ee46220());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee46220)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46220)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc220*)(dd6220*), ABISELECT(8,4), "ee46220");
+ check_base_class_offset(lv, (bb20*)(cc220*)(dd6220*), 0, "ee46220");
+ check_base_class_offset(lv, (cc220*)(dd6220*), 0, "ee46220");
+ check_base_class_offset(lv, (dd6220*), 0, "ee46220");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee46220.e");
+ test_class_info(&lv, &cd_ee46220);
+ dp->~ee46220();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46220(Test_ee46220, "ee46220", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee46220C1Ev();
+extern void _ZN7ee46220D1Ev();
+Name_Map name_map_ee46220[] = {
+ NSPAIR(_ZN7ee46220C1Ev),
+ NSPAIR(_ZN7ee46220D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc220;
+extern VTBL_ENTRY _ZTI5cc220[];
+extern VTBL_ENTRY _ZTV5cc220[];
+extern Class_Descriptor cd_dd6220;
+extern VTBL_ENTRY _ZTI6dd6220[];
+extern VTBL_ENTRY _ZTV6dd6220[];
+static Base_Class bases_ee46220[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc220, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6220, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee46220[];
+extern void _ZN6dd62203fooEv();
+extern void _ZN7ee462203barEv();
+static VTBL_ENTRY vtc_ee46220[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46220[0]),
+ (VTBL_ENTRY)&_ZN6dd62203fooEv,
+ (VTBL_ENTRY)&_ZN7ee462203barEv,
+};
+extern VTBL_ENTRY _ZTI7ee46220[];
+extern VTBL_ENTRY _ZTV7ee46220[];
+Class_Descriptor cd_ee46220 = { "ee46220", // class name
+ bases_ee46220, 4,
+ &(vtc_ee46220[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee46220),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46220),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 ee56220 : virtual dd6220 {
+ int e;
+ virtual void bar(); // _ZN7ee562203barEv
+ ~ee56220(); // tgen
+ ee56220(); // tgen
+};
+//SIG(1 ee56220) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v2 Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56220 ::bar(){vfunc_called(this, "_ZN7ee562203barEv");}
+ee56220 ::~ee56220(){ note_dtor("ee56220", this);} // tgen
+ee56220 ::ee56220(){ note_ctor("ee56220", this);} // tgen
+
+static void Test_ee56220()
+{
+ extern Class_Descriptor cd_ee56220;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee56220, buf);
+ ee56220 *dp, &lv = *(dp=new (buf) ee56220());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee56220)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56220)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc220*)(dd6220*), ABISELECT(24,12), "ee56220");
+ check_base_class_offset(lv, (bb20*)(cc220*)(dd6220*), ABISELECT(16,8), "ee56220");
+ check_base_class_offset(lv, (cc220*)(dd6220*), ABISELECT(16,8), "ee56220");
+ check_base_class_offset(lv, (dd6220*), ABISELECT(16,8), "ee56220");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56220.e");
+ test_class_info(&lv, &cd_ee56220);
+ dp->~ee56220();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56220(Test_ee56220, "ee56220", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee56220C1Ev();
+extern void _ZN7ee56220D1Ev();
+Name_Map name_map_ee56220[] = {
+ NSPAIR(_ZN7ee56220C1Ev),
+ NSPAIR(_ZN7ee56220D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc220;
+extern VTBL_ENTRY _ZTI5cc220[];
+extern VTBL_ENTRY _ZTV5cc220[];
+extern Class_Descriptor cd_dd6220;
+extern VTBL_ENTRY _ZTI6dd6220[];
+extern VTBL_ENTRY _ZTV6dd6220[];
+static Base_Class bases_ee56220[] = {
+ // 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_bb20, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc220, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6220, 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 _ZTI7ee56220[];
+extern void _ZN7ee562203barEv();
+extern void _ZN6dd62203fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee562203barEv,_ZTv0_n16_N7ee562203barEv)();
+extern void ABISELECT(_ZThn16_N7ee562203barEv,_ZThn8_N7ee562203barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56220[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56220[0]),
+ (VTBL_ENTRY)&_ZN7ee562203barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56220[0]),
+ (VTBL_ENTRY)&_ZN6dd62203fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee562203barEv,_ZTv0_n16_N7ee562203barEv),
+};
+extern VTBL_ENTRY _ZTV7ee56220[];
+static VTT_ENTRY vtt_ee56220[] = {
+ {&(_ZTV7ee56220[3]), 3,10},
+ {&(_ZTV7ee56220[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee56220[];
+extern VTBL_ENTRY _ZTV7ee56220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56220[];
+static VTBL_ENTRY alt_thunk_names118[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee562203barEv,_ZTv0_n16_N7ee562203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee562203barEv,_ZThn8_N7ee562203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56220 = { "ee56220", // class name
+ bases_ee56220, 4,
+ &(vtc_ee56220[0]), // expected_vtbl_contents
+ &(vtt_ee56220[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee56220),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56220),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56220),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names118,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee66220 : dd6220 {
+ int e;
+ virtual void foo(); // _ZN7ee662203fooEv
+ virtual void bar(); // _ZN7ee662203barEv
+ ~ee66220(); // tgen
+ ee66220(); // tgen
+};
+//SIG(1 ee66220) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v1 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66220 ::foo(){vfunc_called(this, "_ZN7ee662203fooEv");}
+void ee66220 ::bar(){vfunc_called(this, "_ZN7ee662203barEv");}
+ee66220 ::~ee66220(){ note_dtor("ee66220", this);} // tgen
+ee66220 ::ee66220(){ note_ctor("ee66220", this);} // tgen
+
+static void Test_ee66220()
+{
+ extern Class_Descriptor cd_ee66220;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee66220, buf);
+ ee66220 *dp, &lv = *(dp=new (buf) ee66220());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee66220)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66220)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc220*)(dd6220*), ABISELECT(8,4), "ee66220");
+ check_base_class_offset(lv, (bb20*)(cc220*)(dd6220*), 0, "ee66220");
+ check_base_class_offset(lv, (cc220*)(dd6220*), 0, "ee66220");
+ check_base_class_offset(lv, (dd6220*), 0, "ee66220");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee66220.e");
+ test_class_info(&lv, &cd_ee66220);
+ dp->~ee66220();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66220(Test_ee66220, "ee66220", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee66220C1Ev();
+extern void _ZN7ee66220D1Ev();
+Name_Map name_map_ee66220[] = {
+ NSPAIR(_ZN7ee66220C1Ev),
+ NSPAIR(_ZN7ee66220D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc220;
+extern VTBL_ENTRY _ZTI5cc220[];
+extern VTBL_ENTRY _ZTV5cc220[];
+extern Class_Descriptor cd_dd6220;
+extern VTBL_ENTRY _ZTI6dd6220[];
+extern VTBL_ENTRY _ZTV6dd6220[];
+static Base_Class bases_ee66220[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc220, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6220, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee66220[];
+extern void _ZN7ee662203fooEv();
+extern void _ZN7ee662203barEv();
+static VTBL_ENTRY vtc_ee66220[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66220[0]),
+ (VTBL_ENTRY)&_ZN7ee662203fooEv,
+ (VTBL_ENTRY)&_ZN7ee662203barEv,
+};
+extern VTBL_ENTRY _ZTI7ee66220[];
+extern VTBL_ENTRY _ZTV7ee66220[];
+Class_Descriptor cd_ee66220 = { "ee66220", // class name
+ bases_ee66220, 4,
+ &(vtc_ee66220[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee66220),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66220),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 ee76220 : virtual dd6220 {
+ int e;
+ virtual void foo(); // _ZN7ee762203fooEv
+ virtual void bar(); // _ZN7ee762203barEv
+ ~ee76220(); // tgen
+ ee76220(); // tgen
+};
+//SIG(1 ee76220) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v1 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76220 ::foo(){vfunc_called(this, "_ZN7ee762203fooEv");}
+void ee76220 ::bar(){vfunc_called(this, "_ZN7ee762203barEv");}
+ee76220 ::~ee76220(){ note_dtor("ee76220", this);} // tgen
+ee76220 ::ee76220(){ note_ctor("ee76220", this);} // tgen
+
+static void Test_ee76220()
+{
+ extern Class_Descriptor cd_ee76220;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee76220, buf);
+ ee76220 *dp, &lv = *(dp=new (buf) ee76220());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee76220)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76220)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc220*)(dd6220*), ABISELECT(24,12), "ee76220");
+ check_base_class_offset(lv, (bb20*)(cc220*)(dd6220*), ABISELECT(16,8), "ee76220");
+ check_base_class_offset(lv, (cc220*)(dd6220*), ABISELECT(16,8), "ee76220");
+ check_base_class_offset(lv, (dd6220*), ABISELECT(16,8), "ee76220");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76220.e");
+ test_class_info(&lv, &cd_ee76220);
+ dp->~ee76220();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76220(Test_ee76220, "ee76220", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee76220C1Ev();
+extern void _ZN7ee76220D1Ev();
+Name_Map name_map_ee76220[] = {
+ NSPAIR(_ZN7ee76220C1Ev),
+ NSPAIR(_ZN7ee76220D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc220;
+extern VTBL_ENTRY _ZTI5cc220[];
+extern VTBL_ENTRY _ZTV5cc220[];
+extern Class_Descriptor cd_dd6220;
+extern VTBL_ENTRY _ZTI6dd6220[];
+extern VTBL_ENTRY _ZTV6dd6220[];
+static Base_Class bases_ee76220[] = {
+ // 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_bb20, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc220, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6220, 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 _ZTI7ee76220[];
+extern void _ZN7ee762203fooEv();
+extern void _ZN7ee762203barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee762203fooEv,_ZTv0_n12_N7ee762203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee762203fooEv,_ZThn8_N7ee762203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee762203barEv,_ZTv0_n16_N7ee762203barEv)();
+extern void ABISELECT(_ZThn16_N7ee762203barEv,_ZThn8_N7ee762203barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76220[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76220[0]),
+ (VTBL_ENTRY)&_ZN7ee762203fooEv,
+ (VTBL_ENTRY)&_ZN7ee762203barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76220[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee762203fooEv,_ZTv0_n12_N7ee762203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee762203barEv,_ZTv0_n16_N7ee762203barEv),
+};
+extern VTBL_ENTRY _ZTV7ee76220[];
+static VTT_ENTRY vtt_ee76220[] = {
+ {&(_ZTV7ee76220[3]), 3,11},
+ {&(_ZTV7ee76220[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee76220[];
+extern VTBL_ENTRY _ZTV7ee76220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76220[];
+static VTBL_ENTRY alt_thunk_names119[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee762203barEv,_ZTv0_n16_N7ee762203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee762203barEv,_ZThn8_N7ee762203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee762203fooEv,_ZTv0_n12_N7ee762203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee762203fooEv,_ZThn8_N7ee762203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76220 = { "ee76220", // class name
+ bases_ee76220, 4,
+ &(vtc_ee76220[0]), // expected_vtbl_contents
+ &(vtt_ee76220[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee76220),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76220),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76220),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names119,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd7220 : virtual cc220 {
+ int d;
+ virtual void bar(); // _ZN6dd72203barEv
+ virtual void foo(); // _ZN6dd72203fooEv
+ ~dd7220(); // tgen
+ dd7220(); // tgen
+};
+//SIG(-1 dd7220) C1{ VBC2{ BC3{ BC4{ Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void dd7220 ::bar(){vfunc_called(this, "_ZN6dd72203barEv");}
+void dd7220 ::foo(){vfunc_called(this, "_ZN6dd72203fooEv");}
+dd7220 ::~dd7220(){ note_dtor("dd7220", this);} // tgen
+dd7220 ::dd7220(){ note_ctor("dd7220", this);} // tgen
+
+static void Test_dd7220()
+{
+ extern Class_Descriptor cd_dd7220;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd7220, buf);
+ dd7220 *dp, &lv = *(dp=new (buf) dd7220());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd7220)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7220)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc220*), ABISELECT(24,12), "dd7220");
+ check_base_class_offset(lv, (bb20*)(cc220*), ABISELECT(16,8), "dd7220");
+ check_base_class_offset(lv, (cc220*), ABISELECT(16,8), "dd7220");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7220.d");
+ test_class_info(&lv, &cd_dd7220);
+ dp->~dd7220();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7220(Test_dd7220, "dd7220", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd7220C1Ev();
+extern void _ZN6dd7220D1Ev();
+Name_Map name_map_dd7220[] = {
+ NSPAIR(_ZN6dd7220C1Ev),
+ NSPAIR(_ZN6dd7220D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc220;
+extern VTBL_ENTRY _ZTI5cc220[];
+extern VTBL_ENTRY _ZTV5cc220[];
+static Base_Class bases_dd7220[] = {
+ // 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_bb20, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc220, 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 _ZTI6dd7220[];
+extern void _ZN6dd72203barEv();
+extern void _ZN6dd72203fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd72203fooEv,_ZTv0_n12_N6dd72203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72203fooEv,_ZThn8_N6dd72203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7220[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7220[0]),
+ (VTBL_ENTRY)&_ZN6dd72203barEv,
+ (VTBL_ENTRY)&_ZN6dd72203fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7220[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72203fooEv,_ZTv0_n12_N6dd72203fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd7220[];
+static VTT_ENTRY vtt_dd7220[] = {
+ {&(_ZTV6dd7220[3]), 3,9},
+ {&(_ZTV6dd7220[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI6dd7220[];
+extern VTBL_ENTRY _ZTV6dd7220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7220[];
+static VTBL_ENTRY alt_thunk_names120[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72203fooEv,_ZTv0_n12_N6dd72203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72203fooEv,_ZThn8_N6dd72203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7220 = { "dd7220", // class name
+ bases_dd7220, 3,
+ &(vtc_dd7220[0]), // expected_vtbl_contents
+ &(vtt_dd7220[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd7220),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7220),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7220),2, //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 ee07220 : dd7220 {
+ int e;
+ ~ee07220(); // tgen
+ ee07220(); // tgen
+};
+//SIG(1 ee07220) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v2 Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee07220 ::~ee07220(){ note_dtor("ee07220", this);} // tgen
+ee07220 ::ee07220(){ note_ctor("ee07220", this);} // tgen
+
+static void Test_ee07220()
+{
+ extern Class_Descriptor cd_ee07220;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee07220, buf);
+ ee07220 *dp, &lv = *(dp=new (buf) ee07220());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee07220)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07220)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc220*), ABISELECT(24,16), "ee07220");
+ check_base_class_offset(lv, (bb20*)(cc220*), ABISELECT(16,12), "ee07220");
+ check_base_class_offset(lv, (cc220*)(dd7220*), ABISELECT(16,12), "ee07220");
+ check_base_class_offset(lv, (dd7220*), 0, "ee07220");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07220.e");
+ test_class_info(&lv, &cd_ee07220);
+ dp->~ee07220();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07220(Test_ee07220, "ee07220", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee07220C1Ev();
+extern void _ZN7ee07220D1Ev();
+Name_Map name_map_ee07220[] = {
+ NSPAIR(_ZN7ee07220C1Ev),
+ NSPAIR(_ZN7ee07220D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc220;
+extern VTBL_ENTRY _ZTI5cc220[];
+extern VTBL_ENTRY _ZTV5cc220[];
+extern Class_Descriptor cd_dd7220;
+extern VTBL_ENTRY _ZTI6dd7220[];
+extern VTBL_ENTRY _ZTV6dd7220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7220[];
+static Base_Class bases_ee07220[] = {
+ // 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_bb20, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc220, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7220, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee07220[];
+extern void _ZN6dd72203barEv();
+extern void _ZN6dd72203fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd72203fooEv,_ZTv0_n12_N6dd72203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72203fooEv,_ZThn12_N6dd72203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07220[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07220[0]),
+ (VTBL_ENTRY)&_ZN6dd72203barEv,
+ (VTBL_ENTRY)&_ZN6dd72203fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07220[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72203fooEv,_ZTv0_n12_N6dd72203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee07220[];
+extern void _ZN6dd72203barEv();
+extern void _ZN6dd72203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7220__7ee07220[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7220[0]),
+ (VTBL_ENTRY)&_ZN6dd72203barEv,
+ (VTBL_ENTRY)&_ZN6dd72203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72203fooEv,_ZTv0_n12_N6dd72203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72203fooEv,_ZThn12_N6dd72203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc220__6dd7220__7ee07220[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7220[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72203fooEv,_ZTv0_n12_N6dd72203fooEv),
+};
+static VTT_ENTRY vtt_ee07220[] = {
+ {&(_ZTV7ee07220[3]), 3,9},
+ {&(_tg__ZTV6dd7220__7ee07220[3]), 3,5},
+ {&(_tg__ZTV5cc220__6dd7220__7ee07220[3]), 3,4},
+ {&(_ZTV7ee07220[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee07220[];
+extern VTBL_ENTRY _ZTV7ee07220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07220[];
+static VTBL_ENTRY alt_thunk_names121[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72203fooEv,_ZTv0_n12_N6dd72203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72203fooEv,_ZThn12_N6dd72203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72203fooEv,_ZThn12_N6dd72203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07220 = { "ee07220", // class name
+ bases_ee07220, 4,
+ &(vtc_ee07220[0]), // expected_vtbl_contents
+ &(vtt_ee07220[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee07220),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07220),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07220),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names121,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee17220 : virtual dd7220 {
+ int e;
+ ~ee17220(); // tgen
+ ee17220(); // tgen
+};
+//SIG(1 ee17220) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v2 Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee17220 ::~ee17220(){ note_dtor("ee17220", this);} // tgen
+ee17220 ::ee17220(){ note_ctor("ee17220", this);} // tgen
+
+static void Test_ee17220()
+{
+ extern Class_Descriptor cd_ee17220;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee17220, buf);
+ ee17220 *dp, &lv = *(dp=new (buf) ee17220());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee17220)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17220)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc220*), ABISELECT(40,20), "ee17220");
+ check_base_class_offset(lv, (bb20*)(cc220*), ABISELECT(32,16), "ee17220");
+ check_base_class_offset(lv, (cc220*)(dd7220*), ABISELECT(32,16), "ee17220");
+ check_base_class_offset(lv, (dd7220*), ABISELECT(16,8), "ee17220");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17220.e");
+ test_class_info(&lv, &cd_ee17220);
+ dp->~ee17220();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17220(Test_ee17220, "ee17220", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee17220C1Ev();
+extern void _ZN7ee17220D1Ev();
+Name_Map name_map_ee17220[] = {
+ NSPAIR(_ZN7ee17220C1Ev),
+ NSPAIR(_ZN7ee17220D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc220;
+extern VTBL_ENTRY _ZTI5cc220[];
+extern VTBL_ENTRY _ZTV5cc220[];
+extern Class_Descriptor cd_dd7220;
+extern VTBL_ENTRY _ZTI6dd7220[];
+extern VTBL_ENTRY _ZTV6dd7220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7220[];
+static Base_Class bases_ee17220[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc220, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7220, 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 _ZTI7ee17220[];
+extern void _ZN6dd72203barEv();
+extern void _ZN6dd72203fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd72203fooEv,_ZTv0_n12_N6dd72203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72203fooEv,_ZThn8_N6dd72203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17220[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17220[0]),
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17220[0]),
+ (VTBL_ENTRY)&_ZN6dd72203barEv,
+ (VTBL_ENTRY)&_ZN6dd72203fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17220[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72203fooEv,_ZTv0_n12_N6dd72203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee17220[];
+extern void _ZN6dd72203barEv();
+extern void _ZN6dd72203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7220__7ee17220[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7220[0]),
+ (VTBL_ENTRY)&_ZN6dd72203barEv,
+ (VTBL_ENTRY)&_ZN6dd72203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72203fooEv,_ZTv0_n12_N6dd72203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72203fooEv,_ZThn8_N6dd72203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc220__6dd7220__7ee17220[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7220[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72203fooEv,_ZTv0_n12_N6dd72203fooEv),
+};
+static VTT_ENTRY vtt_ee17220[] = {
+ {&(_ZTV7ee17220[4]), 4,15},
+ {&(_ZTV7ee17220[9]), 9,15},
+ {&(_ZTV7ee17220[14]), 14,15},
+ {&(_tg__ZTV6dd7220__7ee17220[3]), 3,5},
+ {&(_tg__ZTV5cc220__6dd7220__7ee17220[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee17220[];
+extern VTBL_ENTRY _ZTV7ee17220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17220[];
+static VTBL_ENTRY alt_thunk_names122[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72203fooEv,_ZTv0_n12_N6dd72203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72203fooEv,_ZThn8_N6dd72203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72203fooEv,_ZThn8_N6dd72203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17220 = { "ee17220", // class name
+ bases_ee17220, 4,
+ &(vtc_ee17220[0]), // expected_vtbl_contents
+ &(vtt_ee17220[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee17220),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17220),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17220),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names122,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee27220 : dd7220 {
+ int e;
+ virtual void foo(); // _ZN7ee272203fooEv
+ ~ee27220(); // tgen
+ ee27220(); // tgen
+};
+//SIG(1 ee27220) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v1 Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27220 ::foo(){vfunc_called(this, "_ZN7ee272203fooEv");}
+ee27220 ::~ee27220(){ note_dtor("ee27220", this);} // tgen
+ee27220 ::ee27220(){ note_ctor("ee27220", this);} // tgen
+
+static void Test_ee27220()
+{
+ extern Class_Descriptor cd_ee27220;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee27220, buf);
+ ee27220 *dp, &lv = *(dp=new (buf) ee27220());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee27220)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27220)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc220*), ABISELECT(24,16), "ee27220");
+ check_base_class_offset(lv, (bb20*)(cc220*), ABISELECT(16,12), "ee27220");
+ check_base_class_offset(lv, (cc220*)(dd7220*), ABISELECT(16,12), "ee27220");
+ check_base_class_offset(lv, (dd7220*), 0, "ee27220");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27220.e");
+ test_class_info(&lv, &cd_ee27220);
+ dp->~ee27220();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27220(Test_ee27220, "ee27220", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee27220C1Ev();
+extern void _ZN7ee27220D1Ev();
+Name_Map name_map_ee27220[] = {
+ NSPAIR(_ZN7ee27220C1Ev),
+ NSPAIR(_ZN7ee27220D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc220;
+extern VTBL_ENTRY _ZTI5cc220[];
+extern VTBL_ENTRY _ZTV5cc220[];
+extern Class_Descriptor cd_dd7220;
+extern VTBL_ENTRY _ZTI6dd7220[];
+extern VTBL_ENTRY _ZTV6dd7220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7220[];
+static Base_Class bases_ee27220[] = {
+ // 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_bb20, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc220, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7220, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee27220[];
+extern void _ZN6dd72203barEv();
+extern void _ZN7ee272203fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee272203fooEv,_ZTv0_n12_N7ee272203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee272203fooEv,_ZThn12_N7ee272203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27220[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27220[0]),
+ (VTBL_ENTRY)&_ZN6dd72203barEv,
+ (VTBL_ENTRY)&_ZN7ee272203fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27220[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee272203fooEv,_ZTv0_n12_N7ee272203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee27220[];
+extern void _ZN6dd72203barEv();
+extern void _ZN6dd72203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7220__7ee27220[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7220[0]),
+ (VTBL_ENTRY)&_ZN6dd72203barEv,
+ (VTBL_ENTRY)&_ZN6dd72203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72203fooEv,_ZTv0_n12_N6dd72203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72203fooEv,_ZThn12_N6dd72203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc220__6dd7220__7ee27220[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7220[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72203fooEv,_ZTv0_n12_N6dd72203fooEv),
+};
+static VTT_ENTRY vtt_ee27220[] = {
+ {&(_ZTV7ee27220[3]), 3,9},
+ {&(_tg__ZTV6dd7220__7ee27220[3]), 3,5},
+ {&(_tg__ZTV5cc220__6dd7220__7ee27220[3]), 3,4},
+ {&(_ZTV7ee27220[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee27220[];
+extern VTBL_ENTRY _ZTV7ee27220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27220[];
+static VTBL_ENTRY alt_thunk_names123[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72203fooEv,_ZTv0_n12_N6dd72203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72203fooEv,_ZThn12_N6dd72203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee272203fooEv,_ZTv0_n12_N7ee272203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee272203fooEv,_ZThn12_N7ee272203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27220 = { "ee27220", // class name
+ bases_ee27220, 4,
+ &(vtc_ee27220[0]), // expected_vtbl_contents
+ &(vtt_ee27220[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee27220),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27220),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27220),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names123,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee37220 : virtual dd7220 {
+ int e;
+ virtual void foo(); // _ZN7ee372203fooEv
+ ~ee37220(); // tgen
+ ee37220(); // tgen
+};
+//SIG(1 ee37220) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v1 Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37220 ::foo(){vfunc_called(this, "_ZN7ee372203fooEv");}
+ee37220 ::~ee37220(){ note_dtor("ee37220", this);} // tgen
+ee37220 ::ee37220(){ note_ctor("ee37220", this);} // tgen
+
+static void Test_ee37220()
+{
+ extern Class_Descriptor cd_ee37220;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee37220, buf);
+ ee37220 *dp, &lv = *(dp=new (buf) ee37220());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee37220)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37220)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc220*), ABISELECT(40,20), "ee37220");
+ check_base_class_offset(lv, (bb20*)(cc220*), ABISELECT(32,16), "ee37220");
+ check_base_class_offset(lv, (cc220*)(dd7220*), ABISELECT(32,16), "ee37220");
+ check_base_class_offset(lv, (dd7220*), ABISELECT(16,8), "ee37220");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37220.e");
+ test_class_info(&lv, &cd_ee37220);
+ dp->~ee37220();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37220(Test_ee37220, "ee37220", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee37220C1Ev();
+extern void _ZN7ee37220D1Ev();
+Name_Map name_map_ee37220[] = {
+ NSPAIR(_ZN7ee37220C1Ev),
+ NSPAIR(_ZN7ee37220D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc220;
+extern VTBL_ENTRY _ZTI5cc220[];
+extern VTBL_ENTRY _ZTV5cc220[];
+extern Class_Descriptor cd_dd7220;
+extern VTBL_ENTRY _ZTI6dd7220[];
+extern VTBL_ENTRY _ZTV6dd7220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7220[];
+static Base_Class bases_ee37220[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc220, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7220, 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 _ZTI7ee37220[];
+extern void _ZN7ee372203fooEv();
+extern void _ZN6dd72203barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee372203fooEv,_ZTv0_n20_N7ee372203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee372203fooEv,_ZThn8_N7ee372203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee372203fooEv,_ZTv0_n12_N7ee372203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee372203fooEv,_ZThn16_N7ee372203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37220[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37220[0]),
+ (VTBL_ENTRY)&_ZN7ee372203fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37220[0]),
+ (VTBL_ENTRY)&_ZN6dd72203barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee372203fooEv,_ZTv0_n20_N7ee372203fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37220[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee372203fooEv,_ZTv0_n12_N7ee372203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee37220[];
+extern void _ZN6dd72203barEv();
+extern void _ZN6dd72203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7220__7ee37220[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7220[0]),
+ (VTBL_ENTRY)&_ZN6dd72203barEv,
+ (VTBL_ENTRY)&_ZN6dd72203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72203fooEv,_ZTv0_n12_N6dd72203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72203fooEv,_ZThn8_N6dd72203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc220__6dd7220__7ee37220[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7220[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72203fooEv,_ZTv0_n12_N6dd72203fooEv),
+};
+static VTT_ENTRY vtt_ee37220[] = {
+ {&(_ZTV7ee37220[4]), 4,16},
+ {&(_ZTV7ee37220[10]), 10,16},
+ {&(_ZTV7ee37220[15]), 15,16},
+ {&(_tg__ZTV6dd7220__7ee37220[3]), 3,5},
+ {&(_tg__ZTV5cc220__6dd7220__7ee37220[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee37220[];
+extern VTBL_ENTRY _ZTV7ee37220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37220[];
+static VTBL_ENTRY alt_thunk_names124[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72203fooEv,_ZTv0_n12_N6dd72203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72203fooEv,_ZThn8_N6dd72203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee372203fooEv,_ZTv0_n12_N7ee372203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee372203fooEv,_ZThn16_N7ee372203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee372203fooEv,_ZTv0_n20_N7ee372203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee372203fooEv,_ZThn8_N7ee372203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37220 = { "ee37220", // class name
+ bases_ee37220, 4,
+ &(vtc_ee37220[0]), // expected_vtbl_contents
+ &(vtt_ee37220[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee37220),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37220),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37220),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names124,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee47220 : dd7220 {
+ int e;
+ virtual void bar(); // _ZN7ee472203barEv
+ ~ee47220(); // tgen
+ ee47220(); // tgen
+};
+//SIG(1 ee47220) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v2 Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47220 ::bar(){vfunc_called(this, "_ZN7ee472203barEv");}
+ee47220 ::~ee47220(){ note_dtor("ee47220", this);} // tgen
+ee47220 ::ee47220(){ note_ctor("ee47220", this);} // tgen
+
+static void Test_ee47220()
+{
+ extern Class_Descriptor cd_ee47220;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee47220, buf);
+ ee47220 *dp, &lv = *(dp=new (buf) ee47220());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee47220)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47220)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc220*), ABISELECT(24,16), "ee47220");
+ check_base_class_offset(lv, (bb20*)(cc220*), ABISELECT(16,12), "ee47220");
+ check_base_class_offset(lv, (cc220*)(dd7220*), ABISELECT(16,12), "ee47220");
+ check_base_class_offset(lv, (dd7220*), 0, "ee47220");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47220.e");
+ test_class_info(&lv, &cd_ee47220);
+ dp->~ee47220();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47220(Test_ee47220, "ee47220", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee47220C1Ev();
+extern void _ZN7ee47220D1Ev();
+Name_Map name_map_ee47220[] = {
+ NSPAIR(_ZN7ee47220C1Ev),
+ NSPAIR(_ZN7ee47220D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc220;
+extern VTBL_ENTRY _ZTI5cc220[];
+extern VTBL_ENTRY _ZTV5cc220[];
+extern Class_Descriptor cd_dd7220;
+extern VTBL_ENTRY _ZTI6dd7220[];
+extern VTBL_ENTRY _ZTV6dd7220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7220[];
+static Base_Class bases_ee47220[] = {
+ // 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_bb20, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc220, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7220, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee47220[];
+extern void _ZN7ee472203barEv();
+extern void _ZN6dd72203fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd72203fooEv,_ZTv0_n12_N6dd72203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72203fooEv,_ZThn12_N6dd72203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47220[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47220[0]),
+ (VTBL_ENTRY)&_ZN7ee472203barEv,
+ (VTBL_ENTRY)&_ZN6dd72203fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47220[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72203fooEv,_ZTv0_n12_N6dd72203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee47220[];
+extern void _ZN6dd72203barEv();
+extern void _ZN6dd72203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7220__7ee47220[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7220[0]),
+ (VTBL_ENTRY)&_ZN6dd72203barEv,
+ (VTBL_ENTRY)&_ZN6dd72203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72203fooEv,_ZTv0_n12_N6dd72203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72203fooEv,_ZThn12_N6dd72203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc220__6dd7220__7ee47220[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7220[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72203fooEv,_ZTv0_n12_N6dd72203fooEv),
+};
+static VTT_ENTRY vtt_ee47220[] = {
+ {&(_ZTV7ee47220[3]), 3,9},
+ {&(_tg__ZTV6dd7220__7ee47220[3]), 3,5},
+ {&(_tg__ZTV5cc220__6dd7220__7ee47220[3]), 3,4},
+ {&(_ZTV7ee47220[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee47220[];
+extern VTBL_ENTRY _ZTV7ee47220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47220[];
+static VTBL_ENTRY alt_thunk_names125[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72203fooEv,_ZTv0_n12_N6dd72203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72203fooEv,_ZThn12_N6dd72203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72203fooEv,_ZThn12_N6dd72203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47220 = { "ee47220", // class name
+ bases_ee47220, 4,
+ &(vtc_ee47220[0]), // expected_vtbl_contents
+ &(vtt_ee47220[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee47220),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47220),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47220),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names125,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee57220 : virtual dd7220 {
+ int e;
+ virtual void bar(); // _ZN7ee572203barEv
+ ~ee57220(); // tgen
+ ee57220(); // tgen
+};
+//SIG(1 ee57220) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v2 Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57220 ::bar(){vfunc_called(this, "_ZN7ee572203barEv");}
+ee57220 ::~ee57220(){ note_dtor("ee57220", this);} // tgen
+ee57220 ::ee57220(){ note_ctor("ee57220", this);} // tgen
+
+static void Test_ee57220()
+{
+ extern Class_Descriptor cd_ee57220;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee57220, buf);
+ ee57220 *dp, &lv = *(dp=new (buf) ee57220());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee57220)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57220)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc220*), ABISELECT(40,20), "ee57220");
+ check_base_class_offset(lv, (bb20*)(cc220*), ABISELECT(32,16), "ee57220");
+ check_base_class_offset(lv, (cc220*)(dd7220*), ABISELECT(32,16), "ee57220");
+ check_base_class_offset(lv, (dd7220*), ABISELECT(16,8), "ee57220");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57220.e");
+ test_class_info(&lv, &cd_ee57220);
+ dp->~ee57220();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57220(Test_ee57220, "ee57220", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee57220C1Ev();
+extern void _ZN7ee57220D1Ev();
+Name_Map name_map_ee57220[] = {
+ NSPAIR(_ZN7ee57220C1Ev),
+ NSPAIR(_ZN7ee57220D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc220;
+extern VTBL_ENTRY _ZTI5cc220[];
+extern VTBL_ENTRY _ZTV5cc220[];
+extern Class_Descriptor cd_dd7220;
+extern VTBL_ENTRY _ZTI6dd7220[];
+extern VTBL_ENTRY _ZTV6dd7220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7220[];
+static Base_Class bases_ee57220[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc220, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7220, 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 _ZTI7ee57220[];
+extern void _ZN7ee572203barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee572203barEv,_ZTv0_n16_N7ee572203barEv)();
+extern void ABISELECT(_ZThn16_N7ee572203barEv,_ZThn8_N7ee572203barEv)() __attribute__((weak));
+extern void _ZN6dd72203fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd72203fooEv,_ZTv0_n12_N6dd72203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72203fooEv,_ZThn8_N6dd72203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57220[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57220[0]),
+ (VTBL_ENTRY)&_ZN7ee572203barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57220[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee572203barEv,_ZTv0_n16_N7ee572203barEv),
+ (VTBL_ENTRY)&_ZN6dd72203fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57220[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72203fooEv,_ZTv0_n12_N6dd72203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee57220[];
+extern void _ZN6dd72203barEv();
+extern void _ZN6dd72203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7220__7ee57220[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7220[0]),
+ (VTBL_ENTRY)&_ZN6dd72203barEv,
+ (VTBL_ENTRY)&_ZN6dd72203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72203fooEv,_ZTv0_n12_N6dd72203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72203fooEv,_ZThn8_N6dd72203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc220__6dd7220__7ee57220[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7220[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72203fooEv,_ZTv0_n12_N6dd72203fooEv),
+};
+static VTT_ENTRY vtt_ee57220[] = {
+ {&(_ZTV7ee57220[4]), 4,16},
+ {&(_ZTV7ee57220[10]), 10,16},
+ {&(_ZTV7ee57220[15]), 15,16},
+ {&(_tg__ZTV6dd7220__7ee57220[3]), 3,5},
+ {&(_tg__ZTV5cc220__6dd7220__7ee57220[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee57220[];
+extern VTBL_ENTRY _ZTV7ee57220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57220[];
+static VTBL_ENTRY alt_thunk_names126[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72203fooEv,_ZTv0_n12_N6dd72203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72203fooEv,_ZThn8_N6dd72203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72203fooEv,_ZThn8_N6dd72203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee572203barEv,_ZTv0_n16_N7ee572203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee572203barEv,_ZThn8_N7ee572203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57220 = { "ee57220", // class name
+ bases_ee57220, 4,
+ &(vtc_ee57220[0]), // expected_vtbl_contents
+ &(vtt_ee57220[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee57220),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57220),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57220),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names126,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee67220 : dd7220 {
+ int e;
+ virtual void foo(); // _ZN7ee672203fooEv
+ virtual void bar(); // _ZN7ee672203barEv
+ ~ee67220(); // tgen
+ ee67220(); // tgen
+};
+//SIG(1 ee67220) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v1 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67220 ::foo(){vfunc_called(this, "_ZN7ee672203fooEv");}
+void ee67220 ::bar(){vfunc_called(this, "_ZN7ee672203barEv");}
+ee67220 ::~ee67220(){ note_dtor("ee67220", this);} // tgen
+ee67220 ::ee67220(){ note_ctor("ee67220", this);} // tgen
+
+static void Test_ee67220()
+{
+ extern Class_Descriptor cd_ee67220;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee67220, buf);
+ ee67220 *dp, &lv = *(dp=new (buf) ee67220());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee67220)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67220)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc220*), ABISELECT(24,16), "ee67220");
+ check_base_class_offset(lv, (bb20*)(cc220*), ABISELECT(16,12), "ee67220");
+ check_base_class_offset(lv, (cc220*)(dd7220*), ABISELECT(16,12), "ee67220");
+ check_base_class_offset(lv, (dd7220*), 0, "ee67220");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67220.e");
+ test_class_info(&lv, &cd_ee67220);
+ dp->~ee67220();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67220(Test_ee67220, "ee67220", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee67220C1Ev();
+extern void _ZN7ee67220D1Ev();
+Name_Map name_map_ee67220[] = {
+ NSPAIR(_ZN7ee67220C1Ev),
+ NSPAIR(_ZN7ee67220D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc220;
+extern VTBL_ENTRY _ZTI5cc220[];
+extern VTBL_ENTRY _ZTV5cc220[];
+extern Class_Descriptor cd_dd7220;
+extern VTBL_ENTRY _ZTI6dd7220[];
+extern VTBL_ENTRY _ZTV6dd7220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7220[];
+static Base_Class bases_ee67220[] = {
+ // 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_bb20, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc220, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7220, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee67220[];
+extern void _ZN7ee672203barEv();
+extern void _ZN7ee672203fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee672203fooEv,_ZTv0_n12_N7ee672203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee672203fooEv,_ZThn12_N7ee672203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67220[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67220[0]),
+ (VTBL_ENTRY)&_ZN7ee672203barEv,
+ (VTBL_ENTRY)&_ZN7ee672203fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67220[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee672203fooEv,_ZTv0_n12_N7ee672203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee67220[];
+extern void _ZN6dd72203barEv();
+extern void _ZN6dd72203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7220__7ee67220[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7220[0]),
+ (VTBL_ENTRY)&_ZN6dd72203barEv,
+ (VTBL_ENTRY)&_ZN6dd72203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72203fooEv,_ZTv0_n12_N6dd72203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72203fooEv,_ZThn12_N6dd72203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc220__6dd7220__7ee67220[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7220[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72203fooEv,_ZTv0_n12_N6dd72203fooEv),
+};
+static VTT_ENTRY vtt_ee67220[] = {
+ {&(_ZTV7ee67220[3]), 3,9},
+ {&(_tg__ZTV6dd7220__7ee67220[3]), 3,5},
+ {&(_tg__ZTV5cc220__6dd7220__7ee67220[3]), 3,4},
+ {&(_ZTV7ee67220[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee67220[];
+extern VTBL_ENTRY _ZTV7ee67220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67220[];
+static VTBL_ENTRY alt_thunk_names127[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72203fooEv,_ZTv0_n12_N6dd72203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72203fooEv,_ZThn12_N6dd72203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee672203fooEv,_ZTv0_n12_N7ee672203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee672203fooEv,_ZThn12_N7ee672203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67220 = { "ee67220", // class name
+ bases_ee67220, 4,
+ &(vtc_ee67220[0]), // expected_vtbl_contents
+ &(vtt_ee67220[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee67220),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67220),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67220),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names127,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee77220 : virtual dd7220 {
+ int e;
+ virtual void foo(); // _ZN7ee772203fooEv
+ virtual void bar(); // _ZN7ee772203barEv
+ ~ee77220(); // tgen
+ ee77220(); // tgen
+};
+//SIG(1 ee77220) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v1 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77220 ::foo(){vfunc_called(this, "_ZN7ee772203fooEv");}
+void ee77220 ::bar(){vfunc_called(this, "_ZN7ee772203barEv");}
+ee77220 ::~ee77220(){ note_dtor("ee77220", this);} // tgen
+ee77220 ::ee77220(){ note_ctor("ee77220", this);} // tgen
+
+static void Test_ee77220()
+{
+ extern Class_Descriptor cd_ee77220;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee77220, buf);
+ ee77220 *dp, &lv = *(dp=new (buf) ee77220());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee77220)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77220)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc220*), ABISELECT(40,20), "ee77220");
+ check_base_class_offset(lv, (bb20*)(cc220*), ABISELECT(32,16), "ee77220");
+ check_base_class_offset(lv, (cc220*)(dd7220*), ABISELECT(32,16), "ee77220");
+ check_base_class_offset(lv, (dd7220*), ABISELECT(16,8), "ee77220");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77220.e");
+ test_class_info(&lv, &cd_ee77220);
+ dp->~ee77220();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77220(Test_ee77220, "ee77220", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee77220C1Ev();
+extern void _ZN7ee77220D1Ev();
+Name_Map name_map_ee77220[] = {
+ NSPAIR(_ZN7ee77220C1Ev),
+ NSPAIR(_ZN7ee77220D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc220;
+extern VTBL_ENTRY _ZTI5cc220[];
+extern VTBL_ENTRY _ZTV5cc220[];
+extern Class_Descriptor cd_dd7220;
+extern VTBL_ENTRY _ZTI6dd7220[];
+extern VTBL_ENTRY _ZTV6dd7220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7220[];
+static Base_Class bases_ee77220[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc220, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7220, ABISELECT(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 _ZTI7ee77220[];
+extern void _ZN7ee772203fooEv();
+extern void _ZN7ee772203barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee772203barEv,_ZTv0_n16_N7ee772203barEv)();
+extern void ABISELECT(_ZThn16_N7ee772203barEv,_ZThn8_N7ee772203barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee772203fooEv,_ZTv0_n20_N7ee772203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee772203fooEv,_ZThn8_N7ee772203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee772203fooEv,_ZTv0_n12_N7ee772203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee772203fooEv,_ZThn16_N7ee772203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77220[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77220[0]),
+ (VTBL_ENTRY)&_ZN7ee772203fooEv,
+ (VTBL_ENTRY)&_ZN7ee772203barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77220[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee772203barEv,_ZTv0_n16_N7ee772203barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee772203fooEv,_ZTv0_n20_N7ee772203fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77220[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee772203fooEv,_ZTv0_n12_N7ee772203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee77220[];
+extern void _ZN6dd72203barEv();
+extern void _ZN6dd72203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7220__7ee77220[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7220[0]),
+ (VTBL_ENTRY)&_ZN6dd72203barEv,
+ (VTBL_ENTRY)&_ZN6dd72203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72203fooEv,_ZTv0_n12_N6dd72203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72203fooEv,_ZThn8_N6dd72203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc220__6dd7220__7ee77220[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7220[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72203fooEv,_ZTv0_n12_N6dd72203fooEv),
+};
+static VTT_ENTRY vtt_ee77220[] = {
+ {&(_ZTV7ee77220[4]), 4,17},
+ {&(_ZTV7ee77220[11]), 11,17},
+ {&(_ZTV7ee77220[16]), 16,17},
+ {&(_tg__ZTV6dd7220__7ee77220[3]), 3,5},
+ {&(_tg__ZTV5cc220__6dd7220__7ee77220[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee77220[];
+extern VTBL_ENTRY _ZTV7ee77220[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77220[];
+static VTBL_ENTRY alt_thunk_names128[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72203fooEv,_ZTv0_n12_N6dd72203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72203fooEv,_ZThn8_N6dd72203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee772203fooEv,_ZTv0_n12_N7ee772203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee772203fooEv,_ZThn16_N7ee772203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee772203fooEv,_ZTv0_n20_N7ee772203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee772203fooEv,_ZThn8_N7ee772203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee772203barEv,_ZTv0_n16_N7ee772203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee772203barEv,_ZThn8_N7ee772203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77220 = { "ee77220", // class name
+ bases_ee77220, 4,
+ &(vtc_ee77220[0]), // expected_vtbl_contents
+ &(vtt_ee77220[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee77220),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77220),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77220),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names128,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc320 : virtual bb20 {
+ int c;
+ virtual void foo(); // _ZN5cc3203fooEv
+ ~cc320(); // tgen
+ cc320(); // tgen
+};
+//SIG(-1 cc320) C1{ VBC2{ BC3{ Fi} v1 Fi} v1 Fi}
+
+
+void cc320 ::foo(){vfunc_called(this, "_ZN5cc3203fooEv");}
+cc320 ::~cc320(){ note_dtor("cc320", this);} // tgen
+cc320 ::cc320(){ note_ctor("cc320", this);} // tgen
+
+static void Test_cc320()
+{
+ extern Class_Descriptor cd_cc320;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_cc320, buf);
+ cc320 *dp, &lv = *(dp=new (buf) cc320());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(cc320)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc320)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(24,12), "cc320");
+ check_base_class_offset(lv, (bb20*), ABISELECT(16,8), "cc320");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc320.c");
+ test_class_info(&lv, &cd_cc320);
+ dp->~cc320();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc320(Test_cc320, "cc320", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN5cc320C1Ev();
+extern void _ZN5cc320D1Ev();
+Name_Map name_map_cc320[] = {
+ NSPAIR(_ZN5cc320C1Ev),
+ NSPAIR(_ZN5cc320D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+static Base_Class bases_cc320[] = {
+ // 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_bb20, 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 _ZTI5cc320[];
+extern void _ZN5cc3203fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_cc320[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+extern VTBL_ENTRY _ZTV5cc320[];
+static VTT_ENTRY vtt_cc320[] = {
+ {&(_ZTV5cc320[3]), 3,8},
+ {&(_ZTV5cc320[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI5cc320[];
+extern VTBL_ENTRY _ZTV5cc320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc320[];
+static VTBL_ENTRY alt_thunk_names129[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_cc320 = { "cc320", // class name
+ bases_cc320, 2,
+ &(vtc_cc320[0]), // expected_vtbl_contents
+ &(vtt_cc320[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI5cc320),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV5cc320),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5cc320),2, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names129,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd0320 : cc320 {
+ int d;
+ ~dd0320(); // tgen
+ dd0320(); // tgen
+};
+//SIG(-1 dd0320) C1{ BC2{ VBC3{ BC4{ Fi} v1 Fi} v1 Fi} Fi}
+
+
+dd0320 ::~dd0320(){ note_dtor("dd0320", this);} // tgen
+dd0320 ::dd0320(){ note_ctor("dd0320", this);} // tgen
+
+static void Test_dd0320()
+{
+ extern Class_Descriptor cd_dd0320;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd0320, buf);
+ dd0320 *dp, &lv = *(dp=new (buf) dd0320());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd0320)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0320)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(24,16), "dd0320");
+ check_base_class_offset(lv, (bb20*)(cc320*), ABISELECT(16,12), "dd0320");
+ check_base_class_offset(lv, (cc320*), 0, "dd0320");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd0320.d");
+ test_class_info(&lv, &cd_dd0320);
+ dp->~dd0320();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0320(Test_dd0320, "dd0320", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd0320C1Ev();
+extern void _ZN6dd0320D1Ev();
+Name_Map name_map_dd0320[] = {
+ NSPAIR(_ZN6dd0320C1Ev),
+ NSPAIR(_ZN6dd0320D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc320;
+extern VTBL_ENTRY _ZTI5cc320[];
+extern VTBL_ENTRY _ZTV5cc320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc320[];
+static Base_Class bases_dd0320[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc320, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd0320[];
+extern void _ZN5cc3203fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn12_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd0320[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd0320[];
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc320__6dd0320[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn12_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc320__6dd0320[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+static VTT_ENTRY vtt_dd0320[] = {
+ {&(_ZTV6dd0320[3]), 3,8},
+ {&(_tg__ZTV5cc320__6dd0320[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc320__6dd0320[3]), 3,4},
+ {&(_ZTV6dd0320[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI6dd0320[];
+extern VTBL_ENTRY _ZTV6dd0320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0320[];
+static VTBL_ENTRY alt_thunk_names130[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn12_N5cc3203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn12_N5cc3203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd0320 = { "dd0320", // class name
+ bases_dd0320, 3,
+ &(vtc_dd0320[0]), // expected_vtbl_contents
+ &(vtt_dd0320[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd0320),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0320),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd0320),4, //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 ee00320 : dd0320 {
+ int e;
+ ~ee00320(); // tgen
+ ee00320(); // tgen
+};
+//SIG(1 ee00320) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v1 Fi} v1 Fi} Fi} Fi}
+
+
+ee00320 ::~ee00320(){ note_dtor("ee00320", this);} // tgen
+ee00320 ::ee00320(){ note_ctor("ee00320", this);} // tgen
+
+static void Test_ee00320()
+{
+ extern Class_Descriptor cd_ee00320;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee00320, buf);
+ ee00320 *dp, &lv = *(dp=new (buf) ee00320());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee00320)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00320)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(32,20), "ee00320");
+ check_base_class_offset(lv, (bb20*)(cc320*)(dd0320*), ABISELECT(24,16), "ee00320");
+ check_base_class_offset(lv, (cc320*)(dd0320*), 0, "ee00320");
+ check_base_class_offset(lv, (dd0320*), 0, "ee00320");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee00320.e");
+ test_class_info(&lv, &cd_ee00320);
+ dp->~ee00320();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00320(Test_ee00320, "ee00320", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee00320C1Ev();
+extern void _ZN7ee00320D1Ev();
+Name_Map name_map_ee00320[] = {
+ NSPAIR(_ZN7ee00320C1Ev),
+ NSPAIR(_ZN7ee00320D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc320;
+extern VTBL_ENTRY _ZTI5cc320[];
+extern VTBL_ENTRY _ZTV5cc320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc320[];
+extern Class_Descriptor cd_dd0320;
+extern VTBL_ENTRY _ZTI6dd0320[];
+extern VTBL_ENTRY _ZTV6dd0320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0320[];
+static Base_Class bases_ee00320[] = {
+ // 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_bb20, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc320, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0320, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee00320[];
+extern void _ZN5cc3203fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3203fooEv,_ZThn16_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee00320[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee00320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee00320[];
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0320__7ee00320[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3206dd0320__7ee00320[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3203fooEv,_ZThn16_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc3206dd0320__7ee00320[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3203fooEv,_ZThn16_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd0320__7ee00320[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+static VTT_ENTRY vtt_ee00320[] = {
+ {&(_ZTV7ee00320[3]), 3,8},
+ {&(_tg__ZTV6dd0320__7ee00320[3]), 3,4},
+ {&(_tg__ZTV5cc3206dd0320__7ee00320[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc3206dd0320__7ee00320[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd0320__7ee00320[3]), 3,4},
+ {&(_ZTV7ee00320[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee00320[];
+extern VTBL_ENTRY _ZTV7ee00320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee00320[];
+static VTBL_ENTRY alt_thunk_names131[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3203fooEv,_ZThn16_N5cc3203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3203fooEv,_ZThn16_N5cc3203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3203fooEv,_ZThn16_N5cc3203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee00320 = { "ee00320", // class name
+ bases_ee00320, 4,
+ &(vtc_ee00320[0]), // expected_vtbl_contents
+ &(vtt_ee00320[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee00320),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00320),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee00320),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names131,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee10320 : virtual dd0320 {
+ int e;
+ ~ee10320(); // tgen
+ ee10320(); // tgen
+};
+//SIG(1 ee10320) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v1 Fi} v1 Fi} Fi} Fi}
+
+
+ee10320 ::~ee10320(){ note_dtor("ee10320", this);} // tgen
+ee10320 ::ee10320(){ note_ctor("ee10320", this);} // tgen
+
+static void Test_ee10320()
+{
+ extern Class_Descriptor cd_ee10320;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee10320, buf);
+ ee10320 *dp, &lv = *(dp=new (buf) ee10320());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee10320)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10320)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee10320");
+ check_base_class_offset(lv, (bb20*)(cc320*)(dd0320*), ABISELECT(32,20), "ee10320");
+ check_base_class_offset(lv, (cc320*)(dd0320*), ABISELECT(16,8), "ee10320");
+ check_base_class_offset(lv, (dd0320*), ABISELECT(16,8), "ee10320");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10320.e");
+ test_class_info(&lv, &cd_ee10320);
+ dp->~ee10320();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10320(Test_ee10320, "ee10320", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee10320C1Ev();
+extern void _ZN7ee10320D1Ev();
+Name_Map name_map_ee10320[] = {
+ NSPAIR(_ZN7ee10320C1Ev),
+ NSPAIR(_ZN7ee10320D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc320;
+extern VTBL_ENTRY _ZTI5cc320[];
+extern VTBL_ENTRY _ZTV5cc320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc320[];
+extern Class_Descriptor cd_dd0320;
+extern VTBL_ENTRY _ZTI6dd0320[];
+extern VTBL_ENTRY _ZTV6dd0320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0320[];
+static Base_Class bases_ee10320[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc320, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0320, 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 _ZTI7ee10320[];
+extern void _ZN5cc3203fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn12_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee10320[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10320[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee10320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee10320[];
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0320__7ee10320[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3206dd0320__7ee10320[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn12_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc3206dd0320__7ee10320[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn12_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd0320__7ee10320[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+static VTT_ENTRY vtt_ee10320[] = {
+ {&(_ZTV7ee10320[4]), 4,13},
+ {&(_ZTV7ee10320[8]), 8,13},
+ {&(_ZTV7ee10320[12]), 12,13},
+ {&(_tg__ZTV6dd0320__7ee10320[3]), 3,4},
+ {&(_tg__ZTV5cc3206dd0320__7ee10320[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc3206dd0320__7ee10320[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd0320__7ee10320[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee10320[];
+extern VTBL_ENTRY _ZTV7ee10320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10320[];
+static VTBL_ENTRY alt_thunk_names132[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn12_N5cc3203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn12_N5cc3203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn12_N5cc3203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee10320 = { "ee10320", // class name
+ bases_ee10320, 4,
+ &(vtc_ee10320[0]), // expected_vtbl_contents
+ &(vtt_ee10320[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee10320),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10320),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10320),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names132,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee20320 : dd0320 {
+ int e;
+ virtual void foo(); // _ZN7ee203203fooEv
+ ~ee20320(); // tgen
+ ee20320(); // tgen
+};
+//SIG(1 ee20320) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee20320 ::foo(){vfunc_called(this, "_ZN7ee203203fooEv");}
+ee20320 ::~ee20320(){ note_dtor("ee20320", this);} // tgen
+ee20320 ::ee20320(){ note_ctor("ee20320", this);} // tgen
+
+static void Test_ee20320()
+{
+ extern Class_Descriptor cd_ee20320;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee20320, buf);
+ ee20320 *dp, &lv = *(dp=new (buf) ee20320());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee20320)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20320)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(32,20), "ee20320");
+ check_base_class_offset(lv, (bb20*)(cc320*)(dd0320*), ABISELECT(24,16), "ee20320");
+ check_base_class_offset(lv, (cc320*)(dd0320*), 0, "ee20320");
+ check_base_class_offset(lv, (dd0320*), 0, "ee20320");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee20320.e");
+ test_class_info(&lv, &cd_ee20320);
+ dp->~ee20320();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20320(Test_ee20320, "ee20320", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee20320C1Ev();
+extern void _ZN7ee20320D1Ev();
+Name_Map name_map_ee20320[] = {
+ NSPAIR(_ZN7ee20320C1Ev),
+ NSPAIR(_ZN7ee20320D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc320;
+extern VTBL_ENTRY _ZTI5cc320[];
+extern VTBL_ENTRY _ZTV5cc320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc320[];
+extern Class_Descriptor cd_dd0320;
+extern VTBL_ENTRY _ZTI6dd0320[];
+extern VTBL_ENTRY _ZTV6dd0320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0320[];
+static Base_Class bases_ee20320[] = {
+ // 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_bb20, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc320, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0320, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee20320[];
+extern void _ZN7ee203203fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee203203fooEv,_ZTv0_n12_N7ee203203fooEv)();
+extern void ABISELECT(_ZThn24_N7ee203203fooEv,_ZThn16_N7ee203203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee20320[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20320[0]),
+ (VTBL_ENTRY)&_ZN7ee203203fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee20320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee203203fooEv,_ZTv0_n12_N7ee203203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee20320[];
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0320__7ee20320[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3206dd0320__7ee20320[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3203fooEv,_ZThn16_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc3206dd0320__7ee20320[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3203fooEv,_ZThn16_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd0320__7ee20320[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+static VTT_ENTRY vtt_ee20320[] = {
+ {&(_ZTV7ee20320[3]), 3,8},
+ {&(_tg__ZTV6dd0320__7ee20320[3]), 3,4},
+ {&(_tg__ZTV5cc3206dd0320__7ee20320[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc3206dd0320__7ee20320[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd0320__7ee20320[3]), 3,4},
+ {&(_ZTV7ee20320[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee20320[];
+extern VTBL_ENTRY _ZTV7ee20320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee20320[];
+static VTBL_ENTRY alt_thunk_names133[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3203fooEv,_ZThn16_N5cc3203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3203fooEv,_ZThn16_N5cc3203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee203203fooEv,_ZTv0_n12_N7ee203203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee203203fooEv,_ZThn16_N7ee203203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee20320 = { "ee20320", // class name
+ bases_ee20320, 4,
+ &(vtc_ee20320[0]), // expected_vtbl_contents
+ &(vtt_ee20320[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee20320),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20320),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee20320),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names133,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee30320 : virtual dd0320 {
+ int e;
+ virtual void foo(); // _ZN7ee303203fooEv
+ ~ee30320(); // tgen
+ ee30320(); // tgen
+};
+//SIG(1 ee30320) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee30320 ::foo(){vfunc_called(this, "_ZN7ee303203fooEv");}
+ee30320 ::~ee30320(){ note_dtor("ee30320", this);} // tgen
+ee30320 ::ee30320(){ note_ctor("ee30320", this);} // tgen
+
+static void Test_ee30320()
+{
+ extern Class_Descriptor cd_ee30320;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee30320, buf);
+ ee30320 *dp, &lv = *(dp=new (buf) ee30320());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee30320)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30320)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee30320");
+ check_base_class_offset(lv, (bb20*)(cc320*)(dd0320*), ABISELECT(32,20), "ee30320");
+ check_base_class_offset(lv, (cc320*)(dd0320*), ABISELECT(16,8), "ee30320");
+ check_base_class_offset(lv, (dd0320*), ABISELECT(16,8), "ee30320");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30320.e");
+ test_class_info(&lv, &cd_ee30320);
+ dp->~ee30320();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30320(Test_ee30320, "ee30320", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee30320C1Ev();
+extern void _ZN7ee30320D1Ev();
+Name_Map name_map_ee30320[] = {
+ NSPAIR(_ZN7ee30320C1Ev),
+ NSPAIR(_ZN7ee30320D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc320;
+extern VTBL_ENTRY _ZTI5cc320[];
+extern VTBL_ENTRY _ZTV5cc320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc320[];
+extern Class_Descriptor cd_dd0320;
+extern VTBL_ENTRY _ZTI6dd0320[];
+extern VTBL_ENTRY _ZTV6dd0320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0320[];
+static Base_Class bases_ee30320[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc320, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0320, 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 _ZTI7ee30320[];
+extern void _ZN7ee303203fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee303203fooEv,_ZTv0_n16_N7ee303203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee303203fooEv,_ZThn8_N7ee303203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee303203fooEv,_ZTv0_n12_N7ee303203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee303203fooEv,_ZThn20_N7ee303203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee30320[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30320[0]),
+ (VTBL_ENTRY)&_ZN7ee303203fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee303203fooEv,_ZTv0_n16_N7ee303203fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee30320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee303203fooEv,_ZTv0_n12_N7ee303203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee30320[];
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0320__7ee30320[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3206dd0320__7ee30320[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn12_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc3206dd0320__7ee30320[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn12_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd0320__7ee30320[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+static VTT_ENTRY vtt_ee30320[] = {
+ {&(_ZTV7ee30320[4]), 4,14},
+ {&(_ZTV7ee30320[9]), 9,14},
+ {&(_ZTV7ee30320[13]), 13,14},
+ {&(_tg__ZTV6dd0320__7ee30320[3]), 3,4},
+ {&(_tg__ZTV5cc3206dd0320__7ee30320[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc3206dd0320__7ee30320[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd0320__7ee30320[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee30320[];
+extern VTBL_ENTRY _ZTV7ee30320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30320[];
+static VTBL_ENTRY alt_thunk_names134[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn12_N5cc3203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn12_N5cc3203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee303203fooEv,_ZTv0_n12_N7ee303203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee303203fooEv,_ZThn20_N7ee303203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee303203fooEv,_ZTv0_n16_N7ee303203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee303203fooEv,_ZThn8_N7ee303203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30320 = { "ee30320", // class name
+ bases_ee30320, 4,
+ &(vtc_ee30320[0]), // expected_vtbl_contents
+ &(vtt_ee30320[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee30320),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30320),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30320),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names134,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee40320 : dd0320 {
+ int e;
+ virtual void bar(); // _ZN7ee403203barEv
+ ~ee40320(); // tgen
+ ee40320(); // tgen
+};
+//SIG(1 ee40320) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee40320 ::bar(){vfunc_called(this, "_ZN7ee403203barEv");}
+ee40320 ::~ee40320(){ note_dtor("ee40320", this);} // tgen
+ee40320 ::ee40320(){ note_ctor("ee40320", this);} // tgen
+
+static void Test_ee40320()
+{
+ extern Class_Descriptor cd_ee40320;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee40320, buf);
+ ee40320 *dp, &lv = *(dp=new (buf) ee40320());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee40320)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40320)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(32,20), "ee40320");
+ check_base_class_offset(lv, (bb20*)(cc320*)(dd0320*), ABISELECT(24,16), "ee40320");
+ check_base_class_offset(lv, (cc320*)(dd0320*), 0, "ee40320");
+ check_base_class_offset(lv, (dd0320*), 0, "ee40320");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee40320.e");
+ test_class_info(&lv, &cd_ee40320);
+ dp->~ee40320();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40320(Test_ee40320, "ee40320", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee40320C1Ev();
+extern void _ZN7ee40320D1Ev();
+Name_Map name_map_ee40320[] = {
+ NSPAIR(_ZN7ee40320C1Ev),
+ NSPAIR(_ZN7ee40320D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc320;
+extern VTBL_ENTRY _ZTI5cc320[];
+extern VTBL_ENTRY _ZTV5cc320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc320[];
+extern Class_Descriptor cd_dd0320;
+extern VTBL_ENTRY _ZTI6dd0320[];
+extern VTBL_ENTRY _ZTV6dd0320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0320[];
+static Base_Class bases_ee40320[] = {
+ // 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_bb20, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc320, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0320, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee40320[];
+extern void _ZN5cc3203fooEv();
+extern void _ZN7ee403203barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3203fooEv,_ZThn16_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee40320[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+ (VTBL_ENTRY)&_ZN7ee403203barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee40320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee40320[];
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0320__7ee40320[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3206dd0320__7ee40320[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3203fooEv,_ZThn16_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc3206dd0320__7ee40320[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3203fooEv,_ZThn16_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd0320__7ee40320[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+static VTT_ENTRY vtt_ee40320[] = {
+ {&(_ZTV7ee40320[3]), 3,9},
+ {&(_tg__ZTV6dd0320__7ee40320[3]), 3,4},
+ {&(_tg__ZTV5cc3206dd0320__7ee40320[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc3206dd0320__7ee40320[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd0320__7ee40320[3]), 3,4},
+ {&(_ZTV7ee40320[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee40320[];
+extern VTBL_ENTRY _ZTV7ee40320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee40320[];
+static VTBL_ENTRY alt_thunk_names135[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3203fooEv,_ZThn16_N5cc3203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3203fooEv,_ZThn16_N5cc3203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3203fooEv,_ZThn16_N5cc3203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee40320 = { "ee40320", // class name
+ bases_ee40320, 4,
+ &(vtc_ee40320[0]), // expected_vtbl_contents
+ &(vtt_ee40320[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee40320),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40320),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee40320),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names135,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee50320 : virtual dd0320 {
+ int e;
+ virtual void bar(); // _ZN7ee503203barEv
+ ~ee50320(); // tgen
+ ee50320(); // tgen
+};
+//SIG(1 ee50320) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee50320 ::bar(){vfunc_called(this, "_ZN7ee503203barEv");}
+ee50320 ::~ee50320(){ note_dtor("ee50320", this);} // tgen
+ee50320 ::ee50320(){ note_ctor("ee50320", this);} // tgen
+
+static void Test_ee50320()
+{
+ extern Class_Descriptor cd_ee50320;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee50320, buf);
+ ee50320 *dp, &lv = *(dp=new (buf) ee50320());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee50320)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50320)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee50320");
+ check_base_class_offset(lv, (bb20*)(cc320*)(dd0320*), ABISELECT(32,20), "ee50320");
+ check_base_class_offset(lv, (cc320*)(dd0320*), ABISELECT(16,8), "ee50320");
+ check_base_class_offset(lv, (dd0320*), ABISELECT(16,8), "ee50320");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50320.e");
+ test_class_info(&lv, &cd_ee50320);
+ dp->~ee50320();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50320(Test_ee50320, "ee50320", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee50320C1Ev();
+extern void _ZN7ee50320D1Ev();
+Name_Map name_map_ee50320[] = {
+ NSPAIR(_ZN7ee50320C1Ev),
+ NSPAIR(_ZN7ee50320D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc320;
+extern VTBL_ENTRY _ZTI5cc320[];
+extern VTBL_ENTRY _ZTV5cc320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc320[];
+extern Class_Descriptor cd_dd0320;
+extern VTBL_ENTRY _ZTI6dd0320[];
+extern VTBL_ENTRY _ZTV6dd0320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0320[];
+static Base_Class bases_ee50320[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc320, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0320, 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 _ZTI7ee50320[];
+extern void _ZN7ee503203barEv();
+extern void _ZN5cc3203fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn12_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee50320[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50320[0]),
+ (VTBL_ENTRY)&_ZN7ee503203barEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee50320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee50320[];
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0320__7ee50320[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3206dd0320__7ee50320[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn12_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc3206dd0320__7ee50320[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn12_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd0320__7ee50320[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+static VTT_ENTRY vtt_ee50320[] = {
+ {&(_ZTV7ee50320[4]), 4,14},
+ {&(_ZTV7ee50320[9]), 9,14},
+ {&(_ZTV7ee50320[13]), 13,14},
+ {&(_tg__ZTV6dd0320__7ee50320[3]), 3,4},
+ {&(_tg__ZTV5cc3206dd0320__7ee50320[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc3206dd0320__7ee50320[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd0320__7ee50320[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee50320[];
+extern VTBL_ENTRY _ZTV7ee50320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50320[];
+static VTBL_ENTRY alt_thunk_names136[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn12_N5cc3203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn12_N5cc3203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn12_N5cc3203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50320 = { "ee50320", // class name
+ bases_ee50320, 4,
+ &(vtc_ee50320[0]), // expected_vtbl_contents
+ &(vtt_ee50320[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee50320),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50320),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50320),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names136,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee60320 : dd0320 {
+ int e;
+ virtual void foo(); // _ZN7ee603203fooEv
+ virtual void bar(); // _ZN7ee603203barEv
+ ~ee60320(); // tgen
+ ee60320(); // tgen
+};
+//SIG(1 ee60320) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v1 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee60320 ::foo(){vfunc_called(this, "_ZN7ee603203fooEv");}
+void ee60320 ::bar(){vfunc_called(this, "_ZN7ee603203barEv");}
+ee60320 ::~ee60320(){ note_dtor("ee60320", this);} // tgen
+ee60320 ::ee60320(){ note_ctor("ee60320", this);} // tgen
+
+static void Test_ee60320()
+{
+ extern Class_Descriptor cd_ee60320;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee60320, buf);
+ ee60320 *dp, &lv = *(dp=new (buf) ee60320());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee60320)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60320)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(32,20), "ee60320");
+ check_base_class_offset(lv, (bb20*)(cc320*)(dd0320*), ABISELECT(24,16), "ee60320");
+ check_base_class_offset(lv, (cc320*)(dd0320*), 0, "ee60320");
+ check_base_class_offset(lv, (dd0320*), 0, "ee60320");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee60320.e");
+ test_class_info(&lv, &cd_ee60320);
+ dp->~ee60320();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60320(Test_ee60320, "ee60320", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee60320C1Ev();
+extern void _ZN7ee60320D1Ev();
+Name_Map name_map_ee60320[] = {
+ NSPAIR(_ZN7ee60320C1Ev),
+ NSPAIR(_ZN7ee60320D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc320;
+extern VTBL_ENTRY _ZTI5cc320[];
+extern VTBL_ENTRY _ZTV5cc320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc320[];
+extern Class_Descriptor cd_dd0320;
+extern VTBL_ENTRY _ZTI6dd0320[];
+extern VTBL_ENTRY _ZTV6dd0320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0320[];
+static Base_Class bases_ee60320[] = {
+ // 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_bb20, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc320, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0320, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee60320[];
+extern void _ZN7ee603203fooEv();
+extern void _ZN7ee603203barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee603203fooEv,_ZTv0_n12_N7ee603203fooEv)();
+extern void ABISELECT(_ZThn24_N7ee603203fooEv,_ZThn16_N7ee603203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee60320[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60320[0]),
+ (VTBL_ENTRY)&_ZN7ee603203fooEv,
+ (VTBL_ENTRY)&_ZN7ee603203barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee60320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee603203fooEv,_ZTv0_n12_N7ee603203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee60320[];
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0320__7ee60320[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3206dd0320__7ee60320[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3203fooEv,_ZThn16_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc3206dd0320__7ee60320[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3203fooEv,_ZThn16_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd0320__7ee60320[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+static VTT_ENTRY vtt_ee60320[] = {
+ {&(_ZTV7ee60320[3]), 3,9},
+ {&(_tg__ZTV6dd0320__7ee60320[3]), 3,4},
+ {&(_tg__ZTV5cc3206dd0320__7ee60320[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc3206dd0320__7ee60320[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd0320__7ee60320[3]), 3,4},
+ {&(_ZTV7ee60320[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee60320[];
+extern VTBL_ENTRY _ZTV7ee60320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee60320[];
+static VTBL_ENTRY alt_thunk_names137[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3203fooEv,_ZThn16_N5cc3203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3203fooEv,_ZThn16_N5cc3203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee603203fooEv,_ZTv0_n12_N7ee603203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee603203fooEv,_ZThn16_N7ee603203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee60320 = { "ee60320", // class name
+ bases_ee60320, 4,
+ &(vtc_ee60320[0]), // expected_vtbl_contents
+ &(vtt_ee60320[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee60320),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60320),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee60320),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names137,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee70320 : virtual dd0320 {
+ int e;
+ virtual void foo(); // _ZN7ee703203fooEv
+ virtual void bar(); // _ZN7ee703203barEv
+ ~ee70320(); // tgen
+ ee70320(); // tgen
+};
+//SIG(1 ee70320) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v1 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee70320 ::foo(){vfunc_called(this, "_ZN7ee703203fooEv");}
+void ee70320 ::bar(){vfunc_called(this, "_ZN7ee703203barEv");}
+ee70320 ::~ee70320(){ note_dtor("ee70320", this);} // tgen
+ee70320 ::ee70320(){ note_ctor("ee70320", this);} // tgen
+
+static void Test_ee70320()
+{
+ extern Class_Descriptor cd_ee70320;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee70320, buf);
+ ee70320 *dp, &lv = *(dp=new (buf) ee70320());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee70320)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70320)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee70320");
+ check_base_class_offset(lv, (bb20*)(cc320*)(dd0320*), ABISELECT(32,20), "ee70320");
+ check_base_class_offset(lv, (cc320*)(dd0320*), ABISELECT(16,8), "ee70320");
+ check_base_class_offset(lv, (dd0320*), ABISELECT(16,8), "ee70320");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70320.e");
+ test_class_info(&lv, &cd_ee70320);
+ dp->~ee70320();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70320(Test_ee70320, "ee70320", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee70320C1Ev();
+extern void _ZN7ee70320D1Ev();
+Name_Map name_map_ee70320[] = {
+ NSPAIR(_ZN7ee70320C1Ev),
+ NSPAIR(_ZN7ee70320D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc320;
+extern VTBL_ENTRY _ZTI5cc320[];
+extern VTBL_ENTRY _ZTV5cc320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc320[];
+extern Class_Descriptor cd_dd0320;
+extern VTBL_ENTRY _ZTI6dd0320[];
+extern VTBL_ENTRY _ZTV6dd0320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0320[];
+static Base_Class bases_ee70320[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc320, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0320, 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 _ZTI7ee70320[];
+extern void _ZN7ee703203fooEv();
+extern void _ZN7ee703203barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee703203fooEv,_ZTv0_n16_N7ee703203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee703203fooEv,_ZThn8_N7ee703203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee703203fooEv,_ZTv0_n12_N7ee703203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee703203fooEv,_ZThn20_N7ee703203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70320[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70320[0]),
+ (VTBL_ENTRY)&_ZN7ee703203fooEv,
+ (VTBL_ENTRY)&_ZN7ee703203barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee703203fooEv,_ZTv0_n16_N7ee703203fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee70320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee703203fooEv,_ZTv0_n12_N7ee703203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee70320[];
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0320__7ee70320[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3206dd0320__7ee70320[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn12_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc3206dd0320__7ee70320[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn12_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd0320__7ee70320[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+static VTT_ENTRY vtt_ee70320[] = {
+ {&(_ZTV7ee70320[4]), 4,15},
+ {&(_ZTV7ee70320[10]), 10,15},
+ {&(_ZTV7ee70320[14]), 14,15},
+ {&(_tg__ZTV6dd0320__7ee70320[3]), 3,4},
+ {&(_tg__ZTV5cc3206dd0320__7ee70320[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc3206dd0320__7ee70320[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd0320__7ee70320[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee70320[];
+extern VTBL_ENTRY _ZTV7ee70320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70320[];
+static VTBL_ENTRY alt_thunk_names138[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn12_N5cc3203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn12_N5cc3203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee703203fooEv,_ZTv0_n12_N7ee703203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee703203fooEv,_ZThn20_N7ee703203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee703203fooEv,_ZTv0_n16_N7ee703203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee703203fooEv,_ZThn8_N7ee703203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70320 = { "ee70320", // class name
+ bases_ee70320, 4,
+ &(vtc_ee70320[0]), // expected_vtbl_contents
+ &(vtt_ee70320[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee70320),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70320),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70320),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names138,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd1320 : virtual cc320 {
+ int d;
+ ~dd1320(); // tgen
+ dd1320(); // tgen
+};
+//SIG(-1 dd1320) C1{ VBC2{ VBC3{ BC4{ Fi} v1 Fi} v1 Fi} Fi}
+
+
+dd1320 ::~dd1320(){ note_dtor("dd1320", this);} // tgen
+dd1320 ::dd1320(){ note_ctor("dd1320", this);} // tgen
+
+static void Test_dd1320()
+{
+ extern Class_Descriptor cd_dd1320;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd1320, buf);
+ dd1320 *dp, &lv = *(dp=new (buf) dd1320());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd1320)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1320)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,20), "dd1320");
+ check_base_class_offset(lv, (bb20*)(cc320*), ABISELECT(32,16), "dd1320");
+ check_base_class_offset(lv, (cc320*), ABISELECT(16,8), "dd1320");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1320.d");
+ test_class_info(&lv, &cd_dd1320);
+ dp->~dd1320();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1320(Test_dd1320, "dd1320", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd1320C1Ev();
+extern void _ZN6dd1320D1Ev();
+Name_Map name_map_dd1320[] = {
+ NSPAIR(_ZN6dd1320C1Ev),
+ NSPAIR(_ZN6dd1320D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc320;
+extern VTBL_ENTRY _ZTI5cc320[];
+extern VTBL_ENTRY _ZTV5cc320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc320[];
+static Base_Class bases_dd1320[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc320, 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 _ZTI6dd1320[];
+extern void _ZN5cc3203fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd1320[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1320[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd1320[];
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc320__6dd1320[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc320__6dd1320[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+static VTT_ENTRY vtt_dd1320[] = {
+ {&(_ZTV6dd1320[4]), 4,13},
+ {&(_ZTV6dd1320[8]), 8,13},
+ {&(_ZTV6dd1320[12]), 12,13},
+ {&(_tg__ZTV5cc320__6dd1320[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc320__6dd1320[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd1320[];
+extern VTBL_ENTRY _ZTV6dd1320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1320[];
+static VTBL_ENTRY alt_thunk_names139[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd1320 = { "dd1320", // class name
+ bases_dd1320, 3,
+ &(vtc_dd1320[0]), // expected_vtbl_contents
+ &(vtt_dd1320[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd1320),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1320),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1320),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 ee01320 : dd1320 {
+ int e;
+ ~ee01320(); // tgen
+ ee01320(); // tgen
+};
+//SIG(1 ee01320) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v1 Fi} v1 Fi} Fi} Fi}
+
+
+ee01320 ::~ee01320(){ note_dtor("ee01320", this);} // tgen
+ee01320 ::ee01320(){ note_ctor("ee01320", this);} // tgen
+
+static void Test_ee01320()
+{
+ extern Class_Descriptor cd_ee01320;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee01320, buf);
+ ee01320 *dp, &lv = *(dp=new (buf) ee01320());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee01320)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01320)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee01320");
+ check_base_class_offset(lv, (bb20*)(cc320*), ABISELECT(32,20), "ee01320");
+ check_base_class_offset(lv, (cc320*)(dd1320*), ABISELECT(16,12), "ee01320");
+ check_base_class_offset(lv, (dd1320*), 0, "ee01320");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01320.e");
+ test_class_info(&lv, &cd_ee01320);
+ dp->~ee01320();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01320(Test_ee01320, "ee01320", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee01320C1Ev();
+extern void _ZN7ee01320D1Ev();
+Name_Map name_map_ee01320[] = {
+ NSPAIR(_ZN7ee01320C1Ev),
+ NSPAIR(_ZN7ee01320D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc320;
+extern VTBL_ENTRY _ZTI5cc320[];
+extern VTBL_ENTRY _ZTV5cc320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc320[];
+extern Class_Descriptor cd_dd1320;
+extern VTBL_ENTRY _ZTI6dd1320[];
+extern VTBL_ENTRY _ZTV6dd1320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1320[];
+static Base_Class bases_ee01320[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc320, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1320, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01320[];
+extern void _ZN5cc3203fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee01320[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01320[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee01320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee01320[];
+static VTBL_ENTRY _tg__ZTV6dd1320__7ee01320[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1320[0]),
+};
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc320__6dd1320__7ee01320[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd1320__7ee01320[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc320__7ee01320[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc320__7ee01320[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+static VTT_ENTRY vtt_ee01320[] = {
+ {&(_ZTV7ee01320[4]), 4,13},
+ {&(_tg__ZTV6dd1320__7ee01320[4]), 4,4},
+ {&(_tg__ZTV5cc320__6dd1320__7ee01320[4]), 4,5},
+ {&(_tg__ZTV4bb20__6dd1320__7ee01320[3]), 3,4},
+ {&(_ZTV7ee01320[8]), 8,13},
+ {&(_ZTV7ee01320[12]), 12,13},
+ {&(_tg__ZTV5cc320__7ee01320[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc320__7ee01320[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee01320[];
+extern VTBL_ENTRY _ZTV7ee01320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01320[];
+static VTBL_ENTRY alt_thunk_names140[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee01320 = { "ee01320", // class name
+ bases_ee01320, 4,
+ &(vtc_ee01320[0]), // expected_vtbl_contents
+ &(vtt_ee01320[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee01320),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01320),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01320),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names140,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee11320 : virtual dd1320 {
+ int e;
+ ~ee11320(); // tgen
+ ee11320(); // tgen
+};
+//SIG(1 ee11320) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v1 Fi} v1 Fi} Fi} Fi}
+
+
+ee11320 ::~ee11320(){ note_dtor("ee11320", this);} // tgen
+ee11320 ::ee11320(){ note_ctor("ee11320", this);} // tgen
+
+static void Test_ee11320()
+{
+ extern Class_Descriptor cd_ee11320;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee11320, buf);
+ ee11320 *dp, &lv = *(dp=new (buf) ee11320());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee11320)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11320)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(56,28), "ee11320");
+ check_base_class_offset(lv, (bb20*)(cc320*), ABISELECT(48,24), "ee11320");
+ check_base_class_offset(lv, (cc320*)(dd1320*), ABISELECT(32,16), "ee11320");
+ check_base_class_offset(lv, (dd1320*), ABISELECT(16,8), "ee11320");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11320.e");
+ test_class_info(&lv, &cd_ee11320);
+ dp->~ee11320();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11320(Test_ee11320, "ee11320", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee11320C1Ev();
+extern void _ZN7ee11320D1Ev();
+Name_Map name_map_ee11320[] = {
+ NSPAIR(_ZN7ee11320C1Ev),
+ NSPAIR(_ZN7ee11320D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc320;
+extern VTBL_ENTRY _ZTI5cc320[];
+extern VTBL_ENTRY _ZTV5cc320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc320[];
+extern Class_Descriptor cd_dd1320;
+extern VTBL_ENTRY _ZTI6dd1320[];
+extern VTBL_ENTRY _ZTV6dd1320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1320[];
+static Base_Class bases_ee11320[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(56,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(48,24), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc320, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1320, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee11320[];
+extern void _ZN5cc3203fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee11320[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11320[0]),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11320[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee11320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee11320[];
+static VTBL_ENTRY _tg__ZTV6dd1320__7ee11320[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1320[0]),
+};
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc320__6dd1320__7ee11320[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd1320__7ee11320[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc320__7ee11320[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc320__7ee11320[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+static VTT_ENTRY vtt_ee11320[] = {
+ {&(_ZTV7ee11320[5]), 5,18},
+ {&(_ZTV7ee11320[9]), 9,18},
+ {&(_ZTV7ee11320[13]), 13,18},
+ {&(_ZTV7ee11320[17]), 17,18},
+ {&(_tg__ZTV6dd1320__7ee11320[4]), 4,4},
+ {&(_tg__ZTV5cc320__6dd1320__7ee11320[4]), 4,5},
+ {&(_tg__ZTV4bb20__6dd1320__7ee11320[3]), 3,4},
+ {&(_tg__ZTV5cc320__7ee11320[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc320__7ee11320[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee11320[];
+extern VTBL_ENTRY _ZTV7ee11320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11320[];
+static VTBL_ENTRY alt_thunk_names141[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee11320 = { "ee11320", // class name
+ bases_ee11320, 4,
+ &(vtc_ee11320[0]), // expected_vtbl_contents
+ &(vtt_ee11320[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee11320),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11320),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11320),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names141,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee21320 : dd1320 {
+ int e;
+ virtual void foo(); // _ZN7ee213203fooEv
+ ~ee21320(); // tgen
+ ee21320(); // tgen
+};
+//SIG(1 ee21320) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee21320 ::foo(){vfunc_called(this, "_ZN7ee213203fooEv");}
+ee21320 ::~ee21320(){ note_dtor("ee21320", this);} // tgen
+ee21320 ::ee21320(){ note_ctor("ee21320", this);} // tgen
+
+static void Test_ee21320()
+{
+ extern Class_Descriptor cd_ee21320;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee21320, buf);
+ ee21320 *dp, &lv = *(dp=new (buf) ee21320());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee21320)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21320)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee21320");
+ check_base_class_offset(lv, (bb20*)(cc320*), ABISELECT(32,20), "ee21320");
+ check_base_class_offset(lv, (cc320*)(dd1320*), ABISELECT(16,12), "ee21320");
+ check_base_class_offset(lv, (dd1320*), 0, "ee21320");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21320.e");
+ test_class_info(&lv, &cd_ee21320);
+ dp->~ee21320();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21320(Test_ee21320, "ee21320", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee21320C1Ev();
+extern void _ZN7ee21320D1Ev();
+Name_Map name_map_ee21320[] = {
+ NSPAIR(_ZN7ee21320C1Ev),
+ NSPAIR(_ZN7ee21320D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc320;
+extern VTBL_ENTRY _ZTI5cc320[];
+extern VTBL_ENTRY _ZTV5cc320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc320[];
+extern Class_Descriptor cd_dd1320;
+extern VTBL_ENTRY _ZTI6dd1320[];
+extern VTBL_ENTRY _ZTV6dd1320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1320[];
+static Base_Class bases_ee21320[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc320, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1320, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21320[];
+extern void _ZN7ee213203fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee213203fooEv,_ZTv0_n16_N7ee213203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee213203fooEv,_ZThn12_N7ee213203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee213203fooEv,_ZTv0_n12_N7ee213203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee213203fooEv,_ZThn20_N7ee213203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee21320[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21320[0]),
+ (VTBL_ENTRY)&_ZN7ee213203fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee213203fooEv,_ZTv0_n16_N7ee213203fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee21320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee213203fooEv,_ZTv0_n12_N7ee213203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee21320[];
+static VTBL_ENTRY _tg__ZTV6dd1320__7ee21320[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1320[0]),
+};
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc320__6dd1320__7ee21320[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd1320__7ee21320[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc320__7ee21320[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc320__7ee21320[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+static VTT_ENTRY vtt_ee21320[] = {
+ {&(_ZTV7ee21320[4]), 4,14},
+ {&(_tg__ZTV6dd1320__7ee21320[4]), 4,4},
+ {&(_tg__ZTV5cc320__6dd1320__7ee21320[4]), 4,5},
+ {&(_tg__ZTV4bb20__6dd1320__7ee21320[3]), 3,4},
+ {&(_ZTV7ee21320[9]), 9,14},
+ {&(_ZTV7ee21320[13]), 13,14},
+ {&(_tg__ZTV5cc320__7ee21320[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc320__7ee21320[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee21320[];
+extern VTBL_ENTRY _ZTV7ee21320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21320[];
+static VTBL_ENTRY alt_thunk_names142[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee213203fooEv,_ZTv0_n12_N7ee213203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee213203fooEv,_ZThn20_N7ee213203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee213203fooEv,_ZTv0_n16_N7ee213203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee213203fooEv,_ZThn12_N7ee213203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21320 = { "ee21320", // class name
+ bases_ee21320, 4,
+ &(vtc_ee21320[0]), // expected_vtbl_contents
+ &(vtt_ee21320[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee21320),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21320),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21320),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names142,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee31320 : virtual dd1320 {
+ int e;
+ virtual void foo(); // _ZN7ee313203fooEv
+ ~ee31320(); // tgen
+ ee31320(); // tgen
+};
+//SIG(1 ee31320) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee31320 ::foo(){vfunc_called(this, "_ZN7ee313203fooEv");}
+ee31320 ::~ee31320(){ note_dtor("ee31320", this);} // tgen
+ee31320 ::ee31320(){ note_ctor("ee31320", this);} // tgen
+
+static void Test_ee31320()
+{
+ extern Class_Descriptor cd_ee31320;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee31320, buf);
+ ee31320 *dp, &lv = *(dp=new (buf) ee31320());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee31320)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31320)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(56,28), "ee31320");
+ check_base_class_offset(lv, (bb20*)(cc320*), ABISELECT(48,24), "ee31320");
+ check_base_class_offset(lv, (cc320*)(dd1320*), ABISELECT(32,16), "ee31320");
+ check_base_class_offset(lv, (dd1320*), ABISELECT(16,8), "ee31320");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31320.e");
+ test_class_info(&lv, &cd_ee31320);
+ dp->~ee31320();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31320(Test_ee31320, "ee31320", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee31320C1Ev();
+extern void _ZN7ee31320D1Ev();
+Name_Map name_map_ee31320[] = {
+ NSPAIR(_ZN7ee31320C1Ev),
+ NSPAIR(_ZN7ee31320D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc320;
+extern VTBL_ENTRY _ZTI5cc320[];
+extern VTBL_ENTRY _ZTV5cc320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc320[];
+extern Class_Descriptor cd_dd1320;
+extern VTBL_ENTRY _ZTI6dd1320[];
+extern VTBL_ENTRY _ZTV6dd1320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1320[];
+static Base_Class bases_ee31320[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(56,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(48,24), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc320, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1320, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee31320[];
+extern void _ZN7ee313203fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee313203fooEv,_ZTv0_n16_N7ee313203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee313203fooEv,_ZThn16_N7ee313203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee313203fooEv,_ZTv0_n12_N7ee313203fooEv)();
+extern void ABISELECT(_ZThn48_N7ee313203fooEv,_ZThn24_N7ee313203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee31320[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31320[0]),
+ (VTBL_ENTRY)&_ZN7ee313203fooEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31320[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee313203fooEv,_ZTv0_n16_N7ee313203fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee31320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee313203fooEv,_ZTv0_n12_N7ee313203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee31320[];
+static VTBL_ENTRY _tg__ZTV6dd1320__7ee31320[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1320[0]),
+};
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc320__6dd1320__7ee31320[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd1320__7ee31320[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc320__7ee31320[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc320__7ee31320[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+static VTT_ENTRY vtt_ee31320[] = {
+ {&(_ZTV7ee31320[5]), 5,19},
+ {&(_ZTV7ee31320[10]), 10,19},
+ {&(_ZTV7ee31320[14]), 14,19},
+ {&(_ZTV7ee31320[18]), 18,19},
+ {&(_tg__ZTV6dd1320__7ee31320[4]), 4,4},
+ {&(_tg__ZTV5cc320__6dd1320__7ee31320[4]), 4,5},
+ {&(_tg__ZTV4bb20__6dd1320__7ee31320[3]), 3,4},
+ {&(_tg__ZTV5cc320__7ee31320[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc320__7ee31320[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee31320[];
+extern VTBL_ENTRY _ZTV7ee31320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31320[];
+static VTBL_ENTRY alt_thunk_names143[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee313203fooEv,_ZTv0_n12_N7ee313203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee313203fooEv,_ZThn24_N7ee313203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee313203fooEv,_ZTv0_n16_N7ee313203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee313203fooEv,_ZThn16_N7ee313203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31320 = { "ee31320", // class name
+ bases_ee31320, 4,
+ &(vtc_ee31320[0]), // expected_vtbl_contents
+ &(vtt_ee31320[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee31320),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31320),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31320),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names143,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee41320 : dd1320 {
+ int e;
+ virtual void bar(); // _ZN7ee413203barEv
+ ~ee41320(); // tgen
+ ee41320(); // tgen
+};
+//SIG(1 ee41320) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee41320 ::bar(){vfunc_called(this, "_ZN7ee413203barEv");}
+ee41320 ::~ee41320(){ note_dtor("ee41320", this);} // tgen
+ee41320 ::ee41320(){ note_ctor("ee41320", this);} // tgen
+
+static void Test_ee41320()
+{
+ extern Class_Descriptor cd_ee41320;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee41320, buf);
+ ee41320 *dp, &lv = *(dp=new (buf) ee41320());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee41320)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41320)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee41320");
+ check_base_class_offset(lv, (bb20*)(cc320*), ABISELECT(32,20), "ee41320");
+ check_base_class_offset(lv, (cc320*)(dd1320*), ABISELECT(16,12), "ee41320");
+ check_base_class_offset(lv, (dd1320*), 0, "ee41320");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41320.e");
+ test_class_info(&lv, &cd_ee41320);
+ dp->~ee41320();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41320(Test_ee41320, "ee41320", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee41320C1Ev();
+extern void _ZN7ee41320D1Ev();
+Name_Map name_map_ee41320[] = {
+ NSPAIR(_ZN7ee41320C1Ev),
+ NSPAIR(_ZN7ee41320D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc320;
+extern VTBL_ENTRY _ZTI5cc320[];
+extern VTBL_ENTRY _ZTV5cc320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc320[];
+extern Class_Descriptor cd_dd1320;
+extern VTBL_ENTRY _ZTI6dd1320[];
+extern VTBL_ENTRY _ZTV6dd1320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1320[];
+static Base_Class bases_ee41320[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc320, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1320, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41320[];
+extern void _ZN7ee413203barEv();
+extern void _ZN5cc3203fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee41320[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41320[0]),
+ (VTBL_ENTRY)&_ZN7ee413203barEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee41320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee41320[];
+static VTBL_ENTRY _tg__ZTV6dd1320__7ee41320[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1320[0]),
+};
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc320__6dd1320__7ee41320[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd1320__7ee41320[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc320__7ee41320[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc320__7ee41320[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+static VTT_ENTRY vtt_ee41320[] = {
+ {&(_ZTV7ee41320[4]), 4,14},
+ {&(_tg__ZTV6dd1320__7ee41320[4]), 4,4},
+ {&(_tg__ZTV5cc320__6dd1320__7ee41320[4]), 4,5},
+ {&(_tg__ZTV4bb20__6dd1320__7ee41320[3]), 3,4},
+ {&(_ZTV7ee41320[9]), 9,14},
+ {&(_ZTV7ee41320[13]), 13,14},
+ {&(_tg__ZTV5cc320__7ee41320[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc320__7ee41320[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee41320[];
+extern VTBL_ENTRY _ZTV7ee41320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41320[];
+static VTBL_ENTRY alt_thunk_names144[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41320 = { "ee41320", // class name
+ bases_ee41320, 4,
+ &(vtc_ee41320[0]), // expected_vtbl_contents
+ &(vtt_ee41320[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee41320),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41320),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41320),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names144,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee51320 : virtual dd1320 {
+ int e;
+ virtual void bar(); // _ZN7ee513203barEv
+ ~ee51320(); // tgen
+ ee51320(); // tgen
+};
+//SIG(1 ee51320) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee51320 ::bar(){vfunc_called(this, "_ZN7ee513203barEv");}
+ee51320 ::~ee51320(){ note_dtor("ee51320", this);} // tgen
+ee51320 ::ee51320(){ note_ctor("ee51320", this);} // tgen
+
+static void Test_ee51320()
+{
+ extern Class_Descriptor cd_ee51320;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee51320, buf);
+ ee51320 *dp, &lv = *(dp=new (buf) ee51320());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee51320)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51320)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(56,28), "ee51320");
+ check_base_class_offset(lv, (bb20*)(cc320*), ABISELECT(48,24), "ee51320");
+ check_base_class_offset(lv, (cc320*)(dd1320*), ABISELECT(32,16), "ee51320");
+ check_base_class_offset(lv, (dd1320*), ABISELECT(16,8), "ee51320");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51320.e");
+ test_class_info(&lv, &cd_ee51320);
+ dp->~ee51320();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51320(Test_ee51320, "ee51320", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee51320C1Ev();
+extern void _ZN7ee51320D1Ev();
+Name_Map name_map_ee51320[] = {
+ NSPAIR(_ZN7ee51320C1Ev),
+ NSPAIR(_ZN7ee51320D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc320;
+extern VTBL_ENTRY _ZTI5cc320[];
+extern VTBL_ENTRY _ZTV5cc320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc320[];
+extern Class_Descriptor cd_dd1320;
+extern VTBL_ENTRY _ZTI6dd1320[];
+extern VTBL_ENTRY _ZTV6dd1320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1320[];
+static Base_Class bases_ee51320[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(56,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(48,24), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc320, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1320, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee51320[];
+extern void _ZN7ee513203barEv();
+extern void _ZN5cc3203fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee51320[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51320[0]),
+ (VTBL_ENTRY)&_ZN7ee513203barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51320[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee51320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee51320[];
+static VTBL_ENTRY _tg__ZTV6dd1320__7ee51320[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1320[0]),
+};
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc320__6dd1320__7ee51320[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd1320__7ee51320[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc320__7ee51320[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc320__7ee51320[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+static VTT_ENTRY vtt_ee51320[] = {
+ {&(_ZTV7ee51320[5]), 5,19},
+ {&(_ZTV7ee51320[10]), 10,19},
+ {&(_ZTV7ee51320[14]), 14,19},
+ {&(_ZTV7ee51320[18]), 18,19},
+ {&(_tg__ZTV6dd1320__7ee51320[4]), 4,4},
+ {&(_tg__ZTV5cc320__6dd1320__7ee51320[4]), 4,5},
+ {&(_tg__ZTV4bb20__6dd1320__7ee51320[3]), 3,4},
+ {&(_tg__ZTV5cc320__7ee51320[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc320__7ee51320[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee51320[];
+extern VTBL_ENTRY _ZTV7ee51320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51320[];
+static VTBL_ENTRY alt_thunk_names145[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51320 = { "ee51320", // class name
+ bases_ee51320, 4,
+ &(vtc_ee51320[0]), // expected_vtbl_contents
+ &(vtt_ee51320[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee51320),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51320),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51320),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names145,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee61320 : dd1320 {
+ int e;
+ virtual void foo(); // _ZN7ee613203fooEv
+ virtual void bar(); // _ZN7ee613203barEv
+ ~ee61320(); // tgen
+ ee61320(); // tgen
+};
+//SIG(1 ee61320) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v1 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee61320 ::foo(){vfunc_called(this, "_ZN7ee613203fooEv");}
+void ee61320 ::bar(){vfunc_called(this, "_ZN7ee613203barEv");}
+ee61320 ::~ee61320(){ note_dtor("ee61320", this);} // tgen
+ee61320 ::ee61320(){ note_ctor("ee61320", this);} // tgen
+
+static void Test_ee61320()
+{
+ extern Class_Descriptor cd_ee61320;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee61320, buf);
+ ee61320 *dp, &lv = *(dp=new (buf) ee61320());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee61320)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61320)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee61320");
+ check_base_class_offset(lv, (bb20*)(cc320*), ABISELECT(32,20), "ee61320");
+ check_base_class_offset(lv, (cc320*)(dd1320*), ABISELECT(16,12), "ee61320");
+ check_base_class_offset(lv, (dd1320*), 0, "ee61320");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61320.e");
+ test_class_info(&lv, &cd_ee61320);
+ dp->~ee61320();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61320(Test_ee61320, "ee61320", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee61320C1Ev();
+extern void _ZN7ee61320D1Ev();
+Name_Map name_map_ee61320[] = {
+ NSPAIR(_ZN7ee61320C1Ev),
+ NSPAIR(_ZN7ee61320D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc320;
+extern VTBL_ENTRY _ZTI5cc320[];
+extern VTBL_ENTRY _ZTV5cc320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc320[];
+extern Class_Descriptor cd_dd1320;
+extern VTBL_ENTRY _ZTI6dd1320[];
+extern VTBL_ENTRY _ZTV6dd1320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1320[];
+static Base_Class bases_ee61320[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc320, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1320, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61320[];
+extern void _ZN7ee613203fooEv();
+extern void _ZN7ee613203barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee613203fooEv,_ZTv0_n16_N7ee613203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee613203fooEv,_ZThn12_N7ee613203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee613203fooEv,_ZTv0_n12_N7ee613203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee613203fooEv,_ZThn20_N7ee613203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61320[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61320[0]),
+ (VTBL_ENTRY)&_ZN7ee613203fooEv,
+ (VTBL_ENTRY)&_ZN7ee613203barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee613203fooEv,_ZTv0_n16_N7ee613203fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee61320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee613203fooEv,_ZTv0_n12_N7ee613203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee61320[];
+static VTBL_ENTRY _tg__ZTV6dd1320__7ee61320[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1320[0]),
+};
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc320__6dd1320__7ee61320[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd1320__7ee61320[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc320__7ee61320[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc320__7ee61320[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+static VTT_ENTRY vtt_ee61320[] = {
+ {&(_ZTV7ee61320[4]), 4,15},
+ {&(_tg__ZTV6dd1320__7ee61320[4]), 4,4},
+ {&(_tg__ZTV5cc320__6dd1320__7ee61320[4]), 4,5},
+ {&(_tg__ZTV4bb20__6dd1320__7ee61320[3]), 3,4},
+ {&(_ZTV7ee61320[10]), 10,15},
+ {&(_ZTV7ee61320[14]), 14,15},
+ {&(_tg__ZTV5cc320__7ee61320[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc320__7ee61320[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee61320[];
+extern VTBL_ENTRY _ZTV7ee61320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61320[];
+static VTBL_ENTRY alt_thunk_names146[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee613203fooEv,_ZTv0_n12_N7ee613203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee613203fooEv,_ZThn20_N7ee613203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee613203fooEv,_ZTv0_n16_N7ee613203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee613203fooEv,_ZThn12_N7ee613203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61320 = { "ee61320", // class name
+ bases_ee61320, 4,
+ &(vtc_ee61320[0]), // expected_vtbl_contents
+ &(vtt_ee61320[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee61320),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61320),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61320),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names146,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee71320 : virtual dd1320 {
+ int e;
+ virtual void foo(); // _ZN7ee713203fooEv
+ virtual void bar(); // _ZN7ee713203barEv
+ ~ee71320(); // tgen
+ ee71320(); // tgen
+};
+//SIG(1 ee71320) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v1 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee71320 ::foo(){vfunc_called(this, "_ZN7ee713203fooEv");}
+void ee71320 ::bar(){vfunc_called(this, "_ZN7ee713203barEv");}
+ee71320 ::~ee71320(){ note_dtor("ee71320", this);} // tgen
+ee71320 ::ee71320(){ note_ctor("ee71320", this);} // tgen
+
+static void Test_ee71320()
+{
+ extern Class_Descriptor cd_ee71320;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee71320, buf);
+ ee71320 *dp, &lv = *(dp=new (buf) ee71320());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee71320)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71320)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(56,28), "ee71320");
+ check_base_class_offset(lv, (bb20*)(cc320*), ABISELECT(48,24), "ee71320");
+ check_base_class_offset(lv, (cc320*)(dd1320*), ABISELECT(32,16), "ee71320");
+ check_base_class_offset(lv, (dd1320*), ABISELECT(16,8), "ee71320");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71320.e");
+ test_class_info(&lv, &cd_ee71320);
+ dp->~ee71320();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71320(Test_ee71320, "ee71320", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee71320C1Ev();
+extern void _ZN7ee71320D1Ev();
+Name_Map name_map_ee71320[] = {
+ NSPAIR(_ZN7ee71320C1Ev),
+ NSPAIR(_ZN7ee71320D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc320;
+extern VTBL_ENTRY _ZTI5cc320[];
+extern VTBL_ENTRY _ZTV5cc320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc320[];
+extern Class_Descriptor cd_dd1320;
+extern VTBL_ENTRY _ZTI6dd1320[];
+extern VTBL_ENTRY _ZTV6dd1320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1320[];
+static Base_Class bases_ee71320[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(56,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(48,24), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc320, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1320, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee71320[];
+extern void _ZN7ee713203fooEv();
+extern void _ZN7ee713203barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee713203fooEv,_ZTv0_n16_N7ee713203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee713203fooEv,_ZThn16_N7ee713203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee713203fooEv,_ZTv0_n12_N7ee713203fooEv)();
+extern void ABISELECT(_ZThn48_N7ee713203fooEv,_ZThn24_N7ee713203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71320[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71320[0]),
+ (VTBL_ENTRY)&_ZN7ee713203fooEv,
+ (VTBL_ENTRY)&_ZN7ee713203barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71320[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee713203fooEv,_ZTv0_n16_N7ee713203fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee71320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee713203fooEv,_ZTv0_n12_N7ee713203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee71320[];
+static VTBL_ENTRY _tg__ZTV6dd1320__7ee71320[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1320[0]),
+};
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc320__6dd1320__7ee71320[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd1320__7ee71320[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc320__7ee71320[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc320__7ee71320[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+static VTT_ENTRY vtt_ee71320[] = {
+ {&(_ZTV7ee71320[5]), 5,20},
+ {&(_ZTV7ee71320[11]), 11,20},
+ {&(_ZTV7ee71320[15]), 15,20},
+ {&(_ZTV7ee71320[19]), 19,20},
+ {&(_tg__ZTV6dd1320__7ee71320[4]), 4,4},
+ {&(_tg__ZTV5cc320__6dd1320__7ee71320[4]), 4,5},
+ {&(_tg__ZTV4bb20__6dd1320__7ee71320[3]), 3,4},
+ {&(_tg__ZTV5cc320__7ee71320[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc320__7ee71320[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee71320[];
+extern VTBL_ENTRY _ZTV7ee71320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71320[];
+static VTBL_ENTRY alt_thunk_names147[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee713203fooEv,_ZTv0_n12_N7ee713203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee713203fooEv,_ZThn24_N7ee713203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee713203fooEv,_ZTv0_n16_N7ee713203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee713203fooEv,_ZThn16_N7ee713203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71320 = { "ee71320", // class name
+ bases_ee71320, 4,
+ &(vtc_ee71320[0]), // expected_vtbl_contents
+ &(vtt_ee71320[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee71320),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71320),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71320),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names147,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd2320 : cc320 {
+ int d;
+ virtual void foo(); // _ZN6dd23203fooEv
+ ~dd2320(); // tgen
+ dd2320(); // tgen
+};
+//SIG(-1 dd2320) C1{ BC2{ VBC3{ BC4{ Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void dd2320 ::foo(){vfunc_called(this, "_ZN6dd23203fooEv");}
+dd2320 ::~dd2320(){ note_dtor("dd2320", this);} // tgen
+dd2320 ::dd2320(){ note_ctor("dd2320", this);} // tgen
+
+static void Test_dd2320()
+{
+ extern Class_Descriptor cd_dd2320;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd2320, buf);
+ dd2320 *dp, &lv = *(dp=new (buf) dd2320());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd2320)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2320)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(24,16), "dd2320");
+ check_base_class_offset(lv, (bb20*)(cc320*), ABISELECT(16,12), "dd2320");
+ check_base_class_offset(lv, (cc320*), 0, "dd2320");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd2320.d");
+ test_class_info(&lv, &cd_dd2320);
+ dp->~dd2320();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2320(Test_dd2320, "dd2320", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd2320C1Ev();
+extern void _ZN6dd2320D1Ev();
+Name_Map name_map_dd2320[] = {
+ NSPAIR(_ZN6dd2320C1Ev),
+ NSPAIR(_ZN6dd2320D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc320;
+extern VTBL_ENTRY _ZTI5cc320[];
+extern VTBL_ENTRY _ZTV5cc320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc320[];
+static Base_Class bases_dd2320[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc320, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd2320[];
+extern void _ZN6dd23203fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd23203fooEv,_ZTv0_n12_N6dd23203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd23203fooEv,_ZThn12_N6dd23203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd2320[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2320[0]),
+ (VTBL_ENTRY)&_ZN6dd23203fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23203fooEv,_ZTv0_n12_N6dd23203fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd2320[];
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc320__6dd2320[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn12_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc320__6dd2320[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+static VTT_ENTRY vtt_dd2320[] = {
+ {&(_ZTV6dd2320[3]), 3,8},
+ {&(_tg__ZTV5cc320__6dd2320[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc320__6dd2320[3]), 3,4},
+ {&(_ZTV6dd2320[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI6dd2320[];
+extern VTBL_ENTRY _ZTV6dd2320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2320[];
+static VTBL_ENTRY alt_thunk_names148[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn12_N5cc3203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23203fooEv,_ZTv0_n12_N6dd23203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd23203fooEv,_ZThn12_N6dd23203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd2320 = { "dd2320", // class name
+ bases_dd2320, 3,
+ &(vtc_dd2320[0]), // expected_vtbl_contents
+ &(vtt_dd2320[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd2320),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2320),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd2320),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 ee02320 : dd2320 {
+ int e;
+ ~ee02320(); // tgen
+ ee02320(); // tgen
+};
+//SIG(1 ee02320) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v1 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee02320 ::~ee02320(){ note_dtor("ee02320", this);} // tgen
+ee02320 ::ee02320(){ note_ctor("ee02320", this);} // tgen
+
+static void Test_ee02320()
+{
+ extern Class_Descriptor cd_ee02320;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee02320, buf);
+ ee02320 *dp, &lv = *(dp=new (buf) ee02320());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee02320)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02320)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(32,20), "ee02320");
+ check_base_class_offset(lv, (bb20*)(cc320*)(dd2320*), ABISELECT(24,16), "ee02320");
+ check_base_class_offset(lv, (cc320*)(dd2320*), 0, "ee02320");
+ check_base_class_offset(lv, (dd2320*), 0, "ee02320");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee02320.e");
+ test_class_info(&lv, &cd_ee02320);
+ dp->~ee02320();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02320(Test_ee02320, "ee02320", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee02320C1Ev();
+extern void _ZN7ee02320D1Ev();
+Name_Map name_map_ee02320[] = {
+ NSPAIR(_ZN7ee02320C1Ev),
+ NSPAIR(_ZN7ee02320D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc320;
+extern VTBL_ENTRY _ZTI5cc320[];
+extern VTBL_ENTRY _ZTV5cc320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc320[];
+extern Class_Descriptor cd_dd2320;
+extern VTBL_ENTRY _ZTI6dd2320[];
+extern VTBL_ENTRY _ZTV6dd2320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2320[];
+static Base_Class bases_ee02320[] = {
+ // 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_bb20, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc320, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2320, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee02320[];
+extern void _ZN6dd23203fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd23203fooEv,_ZTv0_n12_N6dd23203fooEv)();
+extern void ABISELECT(_ZThn24_N6dd23203fooEv,_ZThn16_N6dd23203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee02320[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02320[0]),
+ (VTBL_ENTRY)&_ZN6dd23203fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee02320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23203fooEv,_ZTv0_n12_N6dd23203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee02320[];
+extern void _ZN6dd23203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2320__7ee02320[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2320[0]),
+ (VTBL_ENTRY)&_ZN6dd23203fooEv,
+};
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3206dd2320__7ee02320[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3203fooEv,_ZThn16_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc3206dd2320__7ee02320[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd23203fooEv,_ZTv0_n12_N6dd23203fooEv)();
+extern void ABISELECT(_ZThn24_N6dd23203fooEv,_ZThn16_N6dd23203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd2320__7ee02320[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23203fooEv,_ZTv0_n12_N6dd23203fooEv),
+};
+static VTT_ENTRY vtt_ee02320[] = {
+ {&(_ZTV7ee02320[3]), 3,8},
+ {&(_tg__ZTV6dd2320__7ee02320[3]), 3,4},
+ {&(_tg__ZTV5cc3206dd2320__7ee02320[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc3206dd2320__7ee02320[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd2320__7ee02320[3]), 3,4},
+ {&(_ZTV7ee02320[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee02320[];
+extern VTBL_ENTRY _ZTV7ee02320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee02320[];
+static VTBL_ENTRY alt_thunk_names149[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3203fooEv,_ZThn16_N5cc3203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23203fooEv,_ZTv0_n12_N6dd23203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd23203fooEv,_ZThn16_N6dd23203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd23203fooEv,_ZThn16_N6dd23203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee02320 = { "ee02320", // class name
+ bases_ee02320, 4,
+ &(vtc_ee02320[0]), // expected_vtbl_contents
+ &(vtt_ee02320[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee02320),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02320),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee02320),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names149,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee12320 : virtual dd2320 {
+ int e;
+ ~ee12320(); // tgen
+ ee12320(); // tgen
+};
+//SIG(1 ee12320) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v1 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee12320 ::~ee12320(){ note_dtor("ee12320", this);} // tgen
+ee12320 ::ee12320(){ note_ctor("ee12320", this);} // tgen
+
+static void Test_ee12320()
+{
+ extern Class_Descriptor cd_ee12320;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee12320, buf);
+ ee12320 *dp, &lv = *(dp=new (buf) ee12320());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee12320)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12320)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee12320");
+ check_base_class_offset(lv, (bb20*)(cc320*)(dd2320*), ABISELECT(32,20), "ee12320");
+ check_base_class_offset(lv, (cc320*)(dd2320*), ABISELECT(16,8), "ee12320");
+ check_base_class_offset(lv, (dd2320*), ABISELECT(16,8), "ee12320");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12320.e");
+ test_class_info(&lv, &cd_ee12320);
+ dp->~ee12320();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12320(Test_ee12320, "ee12320", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee12320C1Ev();
+extern void _ZN7ee12320D1Ev();
+Name_Map name_map_ee12320[] = {
+ NSPAIR(_ZN7ee12320C1Ev),
+ NSPAIR(_ZN7ee12320D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc320;
+extern VTBL_ENTRY _ZTI5cc320[];
+extern VTBL_ENTRY _ZTV5cc320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc320[];
+extern Class_Descriptor cd_dd2320;
+extern VTBL_ENTRY _ZTI6dd2320[];
+extern VTBL_ENTRY _ZTV6dd2320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2320[];
+static Base_Class bases_ee12320[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc320, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2320, 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 _ZTI7ee12320[];
+extern void _ZN6dd23203fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd23203fooEv,_ZTv0_n12_N6dd23203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd23203fooEv,_ZThn12_N6dd23203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee12320[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12320[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12320[0]),
+ (VTBL_ENTRY)&_ZN6dd23203fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee12320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23203fooEv,_ZTv0_n12_N6dd23203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee12320[];
+extern void _ZN6dd23203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2320__7ee12320[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2320[0]),
+ (VTBL_ENTRY)&_ZN6dd23203fooEv,
+};
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3206dd2320__7ee12320[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn12_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc3206dd2320__7ee12320[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd23203fooEv,_ZTv0_n12_N6dd23203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd23203fooEv,_ZThn12_N6dd23203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd2320__7ee12320[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23203fooEv,_ZTv0_n12_N6dd23203fooEv),
+};
+static VTT_ENTRY vtt_ee12320[] = {
+ {&(_ZTV7ee12320[4]), 4,13},
+ {&(_ZTV7ee12320[8]), 8,13},
+ {&(_ZTV7ee12320[12]), 12,13},
+ {&(_tg__ZTV6dd2320__7ee12320[3]), 3,4},
+ {&(_tg__ZTV5cc3206dd2320__7ee12320[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc3206dd2320__7ee12320[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd2320__7ee12320[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee12320[];
+extern VTBL_ENTRY _ZTV7ee12320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12320[];
+static VTBL_ENTRY alt_thunk_names150[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn12_N5cc3203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23203fooEv,_ZTv0_n12_N6dd23203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd23203fooEv,_ZThn12_N6dd23203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd23203fooEv,_ZThn12_N6dd23203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee12320 = { "ee12320", // class name
+ bases_ee12320, 4,
+ &(vtc_ee12320[0]), // expected_vtbl_contents
+ &(vtt_ee12320[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee12320),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12320),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12320),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names150,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee22320 : dd2320 {
+ int e;
+ virtual void foo(); // _ZN7ee223203fooEv
+ ~ee22320(); // tgen
+ ee22320(); // tgen
+};
+//SIG(1 ee22320) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v1 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee22320 ::foo(){vfunc_called(this, "_ZN7ee223203fooEv");}
+ee22320 ::~ee22320(){ note_dtor("ee22320", this);} // tgen
+ee22320 ::ee22320(){ note_ctor("ee22320", this);} // tgen
+
+static void Test_ee22320()
+{
+ extern Class_Descriptor cd_ee22320;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee22320, buf);
+ ee22320 *dp, &lv = *(dp=new (buf) ee22320());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee22320)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22320)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(32,20), "ee22320");
+ check_base_class_offset(lv, (bb20*)(cc320*)(dd2320*), ABISELECT(24,16), "ee22320");
+ check_base_class_offset(lv, (cc320*)(dd2320*), 0, "ee22320");
+ check_base_class_offset(lv, (dd2320*), 0, "ee22320");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee22320.e");
+ test_class_info(&lv, &cd_ee22320);
+ dp->~ee22320();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22320(Test_ee22320, "ee22320", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee22320C1Ev();
+extern void _ZN7ee22320D1Ev();
+Name_Map name_map_ee22320[] = {
+ NSPAIR(_ZN7ee22320C1Ev),
+ NSPAIR(_ZN7ee22320D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc320;
+extern VTBL_ENTRY _ZTI5cc320[];
+extern VTBL_ENTRY _ZTV5cc320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc320[];
+extern Class_Descriptor cd_dd2320;
+extern VTBL_ENTRY _ZTI6dd2320[];
+extern VTBL_ENTRY _ZTV6dd2320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2320[];
+static Base_Class bases_ee22320[] = {
+ // 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_bb20, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc320, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2320, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee22320[];
+extern void _ZN7ee223203fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee223203fooEv,_ZTv0_n12_N7ee223203fooEv)();
+extern void ABISELECT(_ZThn24_N7ee223203fooEv,_ZThn16_N7ee223203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee22320[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22320[0]),
+ (VTBL_ENTRY)&_ZN7ee223203fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee22320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee223203fooEv,_ZTv0_n12_N7ee223203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee22320[];
+extern void _ZN6dd23203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2320__7ee22320[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2320[0]),
+ (VTBL_ENTRY)&_ZN6dd23203fooEv,
+};
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3206dd2320__7ee22320[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3203fooEv,_ZThn16_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc3206dd2320__7ee22320[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd23203fooEv,_ZTv0_n12_N6dd23203fooEv)();
+extern void ABISELECT(_ZThn24_N6dd23203fooEv,_ZThn16_N6dd23203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd2320__7ee22320[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23203fooEv,_ZTv0_n12_N6dd23203fooEv),
+};
+static VTT_ENTRY vtt_ee22320[] = {
+ {&(_ZTV7ee22320[3]), 3,8},
+ {&(_tg__ZTV6dd2320__7ee22320[3]), 3,4},
+ {&(_tg__ZTV5cc3206dd2320__7ee22320[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc3206dd2320__7ee22320[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd2320__7ee22320[3]), 3,4},
+ {&(_ZTV7ee22320[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee22320[];
+extern VTBL_ENTRY _ZTV7ee22320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee22320[];
+static VTBL_ENTRY alt_thunk_names151[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23203fooEv,_ZTv0_n12_N6dd23203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd23203fooEv,_ZThn16_N6dd23203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3203fooEv,_ZThn16_N5cc3203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee223203fooEv,_ZTv0_n12_N7ee223203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee223203fooEv,_ZThn16_N7ee223203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee22320 = { "ee22320", // class name
+ bases_ee22320, 4,
+ &(vtc_ee22320[0]), // expected_vtbl_contents
+ &(vtt_ee22320[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee22320),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22320),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee22320),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names151,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee32320 : virtual dd2320 {
+ int e;
+ virtual void foo(); // _ZN7ee323203fooEv
+ ~ee32320(); // tgen
+ ee32320(); // tgen
+};
+//SIG(1 ee32320) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v1 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee32320 ::foo(){vfunc_called(this, "_ZN7ee323203fooEv");}
+ee32320 ::~ee32320(){ note_dtor("ee32320", this);} // tgen
+ee32320 ::ee32320(){ note_ctor("ee32320", this);} // tgen
+
+static void Test_ee32320()
+{
+ extern Class_Descriptor cd_ee32320;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee32320, buf);
+ ee32320 *dp, &lv = *(dp=new (buf) ee32320());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee32320)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32320)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee32320");
+ check_base_class_offset(lv, (bb20*)(cc320*)(dd2320*), ABISELECT(32,20), "ee32320");
+ check_base_class_offset(lv, (cc320*)(dd2320*), ABISELECT(16,8), "ee32320");
+ check_base_class_offset(lv, (dd2320*), ABISELECT(16,8), "ee32320");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32320.e");
+ test_class_info(&lv, &cd_ee32320);
+ dp->~ee32320();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32320(Test_ee32320, "ee32320", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee32320C1Ev();
+extern void _ZN7ee32320D1Ev();
+Name_Map name_map_ee32320[] = {
+ NSPAIR(_ZN7ee32320C1Ev),
+ NSPAIR(_ZN7ee32320D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc320;
+extern VTBL_ENTRY _ZTI5cc320[];
+extern VTBL_ENTRY _ZTV5cc320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc320[];
+extern Class_Descriptor cd_dd2320;
+extern VTBL_ENTRY _ZTI6dd2320[];
+extern VTBL_ENTRY _ZTV6dd2320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2320[];
+static Base_Class bases_ee32320[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc320, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2320, 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 _ZTI7ee32320[];
+extern void _ZN7ee323203fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee323203fooEv,_ZTv0_n16_N7ee323203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee323203fooEv,_ZThn8_N7ee323203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee323203fooEv,_ZTv0_n12_N7ee323203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee323203fooEv,_ZThn20_N7ee323203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee32320[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32320[0]),
+ (VTBL_ENTRY)&_ZN7ee323203fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee323203fooEv,_ZTv0_n16_N7ee323203fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee32320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee323203fooEv,_ZTv0_n12_N7ee323203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee32320[];
+extern void _ZN6dd23203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2320__7ee32320[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2320[0]),
+ (VTBL_ENTRY)&_ZN6dd23203fooEv,
+};
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3206dd2320__7ee32320[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn12_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc3206dd2320__7ee32320[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd23203fooEv,_ZTv0_n12_N6dd23203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd23203fooEv,_ZThn12_N6dd23203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd2320__7ee32320[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23203fooEv,_ZTv0_n12_N6dd23203fooEv),
+};
+static VTT_ENTRY vtt_ee32320[] = {
+ {&(_ZTV7ee32320[4]), 4,14},
+ {&(_ZTV7ee32320[9]), 9,14},
+ {&(_ZTV7ee32320[13]), 13,14},
+ {&(_tg__ZTV6dd2320__7ee32320[3]), 3,4},
+ {&(_tg__ZTV5cc3206dd2320__7ee32320[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc3206dd2320__7ee32320[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd2320__7ee32320[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee32320[];
+extern VTBL_ENTRY _ZTV7ee32320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32320[];
+static VTBL_ENTRY alt_thunk_names152[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23203fooEv,_ZTv0_n12_N6dd23203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd23203fooEv,_ZThn12_N6dd23203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn12_N5cc3203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee323203fooEv,_ZTv0_n12_N7ee323203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee323203fooEv,_ZThn20_N7ee323203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee323203fooEv,_ZTv0_n16_N7ee323203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee323203fooEv,_ZThn8_N7ee323203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32320 = { "ee32320", // class name
+ bases_ee32320, 4,
+ &(vtc_ee32320[0]), // expected_vtbl_contents
+ &(vtt_ee32320[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee32320),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32320),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32320),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names152,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee42320 : dd2320 {
+ int e;
+ virtual void bar(); // _ZN7ee423203barEv
+ ~ee42320(); // tgen
+ ee42320(); // tgen
+};
+//SIG(1 ee42320) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v2 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee42320 ::bar(){vfunc_called(this, "_ZN7ee423203barEv");}
+ee42320 ::~ee42320(){ note_dtor("ee42320", this);} // tgen
+ee42320 ::ee42320(){ note_ctor("ee42320", this);} // tgen
+
+static void Test_ee42320()
+{
+ extern Class_Descriptor cd_ee42320;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee42320, buf);
+ ee42320 *dp, &lv = *(dp=new (buf) ee42320());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee42320)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42320)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(32,20), "ee42320");
+ check_base_class_offset(lv, (bb20*)(cc320*)(dd2320*), ABISELECT(24,16), "ee42320");
+ check_base_class_offset(lv, (cc320*)(dd2320*), 0, "ee42320");
+ check_base_class_offset(lv, (dd2320*), 0, "ee42320");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee42320.e");
+ test_class_info(&lv, &cd_ee42320);
+ dp->~ee42320();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42320(Test_ee42320, "ee42320", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee42320C1Ev();
+extern void _ZN7ee42320D1Ev();
+Name_Map name_map_ee42320[] = {
+ NSPAIR(_ZN7ee42320C1Ev),
+ NSPAIR(_ZN7ee42320D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc320;
+extern VTBL_ENTRY _ZTI5cc320[];
+extern VTBL_ENTRY _ZTV5cc320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc320[];
+extern Class_Descriptor cd_dd2320;
+extern VTBL_ENTRY _ZTI6dd2320[];
+extern VTBL_ENTRY _ZTV6dd2320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2320[];
+static Base_Class bases_ee42320[] = {
+ // 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_bb20, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc320, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2320, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee42320[];
+extern void _ZN6dd23203fooEv();
+extern void _ZN7ee423203barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd23203fooEv,_ZTv0_n12_N6dd23203fooEv)();
+extern void ABISELECT(_ZThn24_N6dd23203fooEv,_ZThn16_N6dd23203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee42320[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42320[0]),
+ (VTBL_ENTRY)&_ZN6dd23203fooEv,
+ (VTBL_ENTRY)&_ZN7ee423203barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee42320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23203fooEv,_ZTv0_n12_N6dd23203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee42320[];
+extern void _ZN6dd23203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2320__7ee42320[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2320[0]),
+ (VTBL_ENTRY)&_ZN6dd23203fooEv,
+};
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3206dd2320__7ee42320[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3203fooEv,_ZThn16_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc3206dd2320__7ee42320[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd23203fooEv,_ZTv0_n12_N6dd23203fooEv)();
+extern void ABISELECT(_ZThn24_N6dd23203fooEv,_ZThn16_N6dd23203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd2320__7ee42320[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23203fooEv,_ZTv0_n12_N6dd23203fooEv),
+};
+static VTT_ENTRY vtt_ee42320[] = {
+ {&(_ZTV7ee42320[3]), 3,9},
+ {&(_tg__ZTV6dd2320__7ee42320[3]), 3,4},
+ {&(_tg__ZTV5cc3206dd2320__7ee42320[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc3206dd2320__7ee42320[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd2320__7ee42320[3]), 3,4},
+ {&(_ZTV7ee42320[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee42320[];
+extern VTBL_ENTRY _ZTV7ee42320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee42320[];
+static VTBL_ENTRY alt_thunk_names153[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3203fooEv,_ZThn16_N5cc3203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23203fooEv,_ZTv0_n12_N6dd23203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd23203fooEv,_ZThn16_N6dd23203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd23203fooEv,_ZThn16_N6dd23203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee42320 = { "ee42320", // class name
+ bases_ee42320, 4,
+ &(vtc_ee42320[0]), // expected_vtbl_contents
+ &(vtt_ee42320[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee42320),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42320),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee42320),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names153,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee52320 : virtual dd2320 {
+ int e;
+ virtual void bar(); // _ZN7ee523203barEv
+ ~ee52320(); // tgen
+ ee52320(); // tgen
+};
+//SIG(1 ee52320) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v2 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee52320 ::bar(){vfunc_called(this, "_ZN7ee523203barEv");}
+ee52320 ::~ee52320(){ note_dtor("ee52320", this);} // tgen
+ee52320 ::ee52320(){ note_ctor("ee52320", this);} // tgen
+
+static void Test_ee52320()
+{
+ extern Class_Descriptor cd_ee52320;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee52320, buf);
+ ee52320 *dp, &lv = *(dp=new (buf) ee52320());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee52320)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52320)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee52320");
+ check_base_class_offset(lv, (bb20*)(cc320*)(dd2320*), ABISELECT(32,20), "ee52320");
+ check_base_class_offset(lv, (cc320*)(dd2320*), ABISELECT(16,8), "ee52320");
+ check_base_class_offset(lv, (dd2320*), ABISELECT(16,8), "ee52320");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52320.e");
+ test_class_info(&lv, &cd_ee52320);
+ dp->~ee52320();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52320(Test_ee52320, "ee52320", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee52320C1Ev();
+extern void _ZN7ee52320D1Ev();
+Name_Map name_map_ee52320[] = {
+ NSPAIR(_ZN7ee52320C1Ev),
+ NSPAIR(_ZN7ee52320D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc320;
+extern VTBL_ENTRY _ZTI5cc320[];
+extern VTBL_ENTRY _ZTV5cc320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc320[];
+extern Class_Descriptor cd_dd2320;
+extern VTBL_ENTRY _ZTI6dd2320[];
+extern VTBL_ENTRY _ZTV6dd2320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2320[];
+static Base_Class bases_ee52320[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc320, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2320, 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 _ZTI7ee52320[];
+extern void _ZN7ee523203barEv();
+extern void _ZN6dd23203fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd23203fooEv,_ZTv0_n12_N6dd23203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd23203fooEv,_ZThn12_N6dd23203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee52320[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52320[0]),
+ (VTBL_ENTRY)&_ZN7ee523203barEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52320[0]),
+ (VTBL_ENTRY)&_ZN6dd23203fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee52320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23203fooEv,_ZTv0_n12_N6dd23203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee52320[];
+extern void _ZN6dd23203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2320__7ee52320[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2320[0]),
+ (VTBL_ENTRY)&_ZN6dd23203fooEv,
+};
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3206dd2320__7ee52320[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn12_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc3206dd2320__7ee52320[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd23203fooEv,_ZTv0_n12_N6dd23203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd23203fooEv,_ZThn12_N6dd23203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd2320__7ee52320[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23203fooEv,_ZTv0_n12_N6dd23203fooEv),
+};
+static VTT_ENTRY vtt_ee52320[] = {
+ {&(_ZTV7ee52320[4]), 4,14},
+ {&(_ZTV7ee52320[9]), 9,14},
+ {&(_ZTV7ee52320[13]), 13,14},
+ {&(_tg__ZTV6dd2320__7ee52320[3]), 3,4},
+ {&(_tg__ZTV5cc3206dd2320__7ee52320[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc3206dd2320__7ee52320[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd2320__7ee52320[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee52320[];
+extern VTBL_ENTRY _ZTV7ee52320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52320[];
+static VTBL_ENTRY alt_thunk_names154[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn12_N5cc3203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23203fooEv,_ZTv0_n12_N6dd23203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd23203fooEv,_ZThn12_N6dd23203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd23203fooEv,_ZThn12_N6dd23203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52320 = { "ee52320", // class name
+ bases_ee52320, 4,
+ &(vtc_ee52320[0]), // expected_vtbl_contents
+ &(vtt_ee52320[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee52320),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52320),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52320),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names154,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee62320 : dd2320 {
+ int e;
+ virtual void foo(); // _ZN7ee623203fooEv
+ virtual void bar(); // _ZN7ee623203barEv
+ ~ee62320(); // tgen
+ ee62320(); // tgen
+};
+//SIG(1 ee62320) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v1 Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62320 ::foo(){vfunc_called(this, "_ZN7ee623203fooEv");}
+void ee62320 ::bar(){vfunc_called(this, "_ZN7ee623203barEv");}
+ee62320 ::~ee62320(){ note_dtor("ee62320", this);} // tgen
+ee62320 ::ee62320(){ note_ctor("ee62320", this);} // tgen
+
+static void Test_ee62320()
+{
+ extern Class_Descriptor cd_ee62320;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee62320, buf);
+ ee62320 *dp, &lv = *(dp=new (buf) ee62320());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee62320)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62320)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(32,20), "ee62320");
+ check_base_class_offset(lv, (bb20*)(cc320*)(dd2320*), ABISELECT(24,16), "ee62320");
+ check_base_class_offset(lv, (cc320*)(dd2320*), 0, "ee62320");
+ check_base_class_offset(lv, (dd2320*), 0, "ee62320");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee62320.e");
+ test_class_info(&lv, &cd_ee62320);
+ dp->~ee62320();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62320(Test_ee62320, "ee62320", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee62320C1Ev();
+extern void _ZN7ee62320D1Ev();
+Name_Map name_map_ee62320[] = {
+ NSPAIR(_ZN7ee62320C1Ev),
+ NSPAIR(_ZN7ee62320D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc320;
+extern VTBL_ENTRY _ZTI5cc320[];
+extern VTBL_ENTRY _ZTV5cc320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc320[];
+extern Class_Descriptor cd_dd2320;
+extern VTBL_ENTRY _ZTI6dd2320[];
+extern VTBL_ENTRY _ZTV6dd2320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2320[];
+static Base_Class bases_ee62320[] = {
+ // 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_bb20, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc320, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2320, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee62320[];
+extern void _ZN7ee623203fooEv();
+extern void _ZN7ee623203barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee623203fooEv,_ZTv0_n12_N7ee623203fooEv)();
+extern void ABISELECT(_ZThn24_N7ee623203fooEv,_ZThn16_N7ee623203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee62320[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62320[0]),
+ (VTBL_ENTRY)&_ZN7ee623203fooEv,
+ (VTBL_ENTRY)&_ZN7ee623203barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee62320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee623203fooEv,_ZTv0_n12_N7ee623203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee62320[];
+extern void _ZN6dd23203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2320__7ee62320[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2320[0]),
+ (VTBL_ENTRY)&_ZN6dd23203fooEv,
+};
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3206dd2320__7ee62320[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3203fooEv,_ZThn16_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc3206dd2320__7ee62320[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd23203fooEv,_ZTv0_n12_N6dd23203fooEv)();
+extern void ABISELECT(_ZThn24_N6dd23203fooEv,_ZThn16_N6dd23203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd2320__7ee62320[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23203fooEv,_ZTv0_n12_N6dd23203fooEv),
+};
+static VTT_ENTRY vtt_ee62320[] = {
+ {&(_ZTV7ee62320[3]), 3,9},
+ {&(_tg__ZTV6dd2320__7ee62320[3]), 3,4},
+ {&(_tg__ZTV5cc3206dd2320__7ee62320[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc3206dd2320__7ee62320[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd2320__7ee62320[3]), 3,4},
+ {&(_ZTV7ee62320[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee62320[];
+extern VTBL_ENTRY _ZTV7ee62320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee62320[];
+static VTBL_ENTRY alt_thunk_names155[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23203fooEv,_ZTv0_n12_N6dd23203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd23203fooEv,_ZThn16_N6dd23203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3203fooEv,_ZThn16_N5cc3203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee623203fooEv,_ZTv0_n12_N7ee623203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee623203fooEv,_ZThn16_N7ee623203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee62320 = { "ee62320", // class name
+ bases_ee62320, 4,
+ &(vtc_ee62320[0]), // expected_vtbl_contents
+ &(vtt_ee62320[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee62320),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62320),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee62320),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names155,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee72320 : virtual dd2320 {
+ int e;
+ virtual void foo(); // _ZN7ee723203fooEv
+ virtual void bar(); // _ZN7ee723203barEv
+ ~ee72320(); // tgen
+ ee72320(); // tgen
+};
+//SIG(1 ee72320) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v1 Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72320 ::foo(){vfunc_called(this, "_ZN7ee723203fooEv");}
+void ee72320 ::bar(){vfunc_called(this, "_ZN7ee723203barEv");}
+ee72320 ::~ee72320(){ note_dtor("ee72320", this);} // tgen
+ee72320 ::ee72320(){ note_ctor("ee72320", this);} // tgen
+
+static void Test_ee72320()
+{
+ extern Class_Descriptor cd_ee72320;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee72320, buf);
+ ee72320 *dp, &lv = *(dp=new (buf) ee72320());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee72320)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72320)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee72320");
+ check_base_class_offset(lv, (bb20*)(cc320*)(dd2320*), ABISELECT(32,20), "ee72320");
+ check_base_class_offset(lv, (cc320*)(dd2320*), ABISELECT(16,8), "ee72320");
+ check_base_class_offset(lv, (dd2320*), ABISELECT(16,8), "ee72320");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72320.e");
+ test_class_info(&lv, &cd_ee72320);
+ dp->~ee72320();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72320(Test_ee72320, "ee72320", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee72320C1Ev();
+extern void _ZN7ee72320D1Ev();
+Name_Map name_map_ee72320[] = {
+ NSPAIR(_ZN7ee72320C1Ev),
+ NSPAIR(_ZN7ee72320D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc320;
+extern VTBL_ENTRY _ZTI5cc320[];
+extern VTBL_ENTRY _ZTV5cc320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc320[];
+extern Class_Descriptor cd_dd2320;
+extern VTBL_ENTRY _ZTI6dd2320[];
+extern VTBL_ENTRY _ZTV6dd2320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2320[];
+static Base_Class bases_ee72320[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc320, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2320, 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 _ZTI7ee72320[];
+extern void _ZN7ee723203fooEv();
+extern void _ZN7ee723203barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee723203fooEv,_ZTv0_n16_N7ee723203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee723203fooEv,_ZThn8_N7ee723203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee723203fooEv,_ZTv0_n12_N7ee723203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee723203fooEv,_ZThn20_N7ee723203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72320[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72320[0]),
+ (VTBL_ENTRY)&_ZN7ee723203fooEv,
+ (VTBL_ENTRY)&_ZN7ee723203barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee723203fooEv,_ZTv0_n16_N7ee723203fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee72320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee723203fooEv,_ZTv0_n12_N7ee723203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee72320[];
+extern void _ZN6dd23203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2320__7ee72320[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2320[0]),
+ (VTBL_ENTRY)&_ZN6dd23203fooEv,
+};
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3206dd2320__7ee72320[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn12_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc3206dd2320__7ee72320[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd23203fooEv,_ZTv0_n12_N6dd23203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd23203fooEv,_ZThn12_N6dd23203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd2320__7ee72320[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23203fooEv,_ZTv0_n12_N6dd23203fooEv),
+};
+static VTT_ENTRY vtt_ee72320[] = {
+ {&(_ZTV7ee72320[4]), 4,15},
+ {&(_ZTV7ee72320[10]), 10,15},
+ {&(_ZTV7ee72320[14]), 14,15},
+ {&(_tg__ZTV6dd2320__7ee72320[3]), 3,4},
+ {&(_tg__ZTV5cc3206dd2320__7ee72320[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc3206dd2320__7ee72320[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd2320__7ee72320[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee72320[];
+extern VTBL_ENTRY _ZTV7ee72320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72320[];
+static VTBL_ENTRY alt_thunk_names156[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23203fooEv,_ZTv0_n12_N6dd23203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd23203fooEv,_ZThn12_N6dd23203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn12_N5cc3203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee723203fooEv,_ZTv0_n12_N7ee723203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee723203fooEv,_ZThn20_N7ee723203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee723203fooEv,_ZTv0_n16_N7ee723203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee723203fooEv,_ZThn8_N7ee723203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72320 = { "ee72320", // class name
+ bases_ee72320, 4,
+ &(vtc_ee72320[0]), // expected_vtbl_contents
+ &(vtt_ee72320[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee72320),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72320),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72320),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names156,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd3320 : virtual cc320 {
+ int d;
+ virtual void foo(); // _ZN6dd33203fooEv
+ ~dd3320(); // tgen
+ dd3320(); // tgen
+};
+//SIG(-1 dd3320) C1{ VBC2{ VBC3{ BC4{ Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void dd3320 ::foo(){vfunc_called(this, "_ZN6dd33203fooEv");}
+dd3320 ::~dd3320(){ note_dtor("dd3320", this);} // tgen
+dd3320 ::dd3320(){ note_ctor("dd3320", this);} // tgen
+
+static void Test_dd3320()
+{
+ extern Class_Descriptor cd_dd3320;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd3320, buf);
+ dd3320 *dp, &lv = *(dp=new (buf) dd3320());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd3320)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3320)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,20), "dd3320");
+ check_base_class_offset(lv, (bb20*)(cc320*), ABISELECT(32,16), "dd3320");
+ check_base_class_offset(lv, (cc320*), ABISELECT(16,8), "dd3320");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3320.d");
+ test_class_info(&lv, &cd_dd3320);
+ dp->~dd3320();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3320(Test_dd3320, "dd3320", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd3320C1Ev();
+extern void _ZN6dd3320D1Ev();
+Name_Map name_map_dd3320[] = {
+ NSPAIR(_ZN6dd3320C1Ev),
+ NSPAIR(_ZN6dd3320D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc320;
+extern VTBL_ENTRY _ZTI5cc320[];
+extern VTBL_ENTRY _ZTV5cc320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc320[];
+static Base_Class bases_dd3320[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc320, 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 _ZTI6dd3320[];
+extern void _ZN6dd33203fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd33203fooEv,_ZTv0_n16_N6dd33203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33203fooEv,_ZThn8_N6dd33203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd33203fooEv,_ZTv0_n12_N6dd33203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33203fooEv,_ZThn16_N6dd33203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd3320[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3320[0]),
+ (VTBL_ENTRY)&_ZN6dd33203fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33203fooEv,_ZTv0_n16_N6dd33203fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33203fooEv,_ZTv0_n12_N6dd33203fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd3320[];
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc320__6dd3320[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc320__6dd3320[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+static VTT_ENTRY vtt_dd3320[] = {
+ {&(_ZTV6dd3320[4]), 4,14},
+ {&(_ZTV6dd3320[9]), 9,14},
+ {&(_ZTV6dd3320[13]), 13,14},
+ {&(_tg__ZTV5cc320__6dd3320[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc320__6dd3320[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd3320[];
+extern VTBL_ENTRY _ZTV6dd3320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3320[];
+static VTBL_ENTRY alt_thunk_names157[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33203fooEv,_ZTv0_n12_N6dd33203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33203fooEv,_ZThn16_N6dd33203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33203fooEv,_ZTv0_n16_N6dd33203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33203fooEv,_ZThn8_N6dd33203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3320 = { "dd3320", // class name
+ bases_dd3320, 3,
+ &(vtc_dd3320[0]), // expected_vtbl_contents
+ &(vtt_dd3320[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd3320),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3320),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3320),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 ee03320 : dd3320 {
+ int e;
+ ~ee03320(); // tgen
+ ee03320(); // tgen
+};
+//SIG(1 ee03320) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v1 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee03320 ::~ee03320(){ note_dtor("ee03320", this);} // tgen
+ee03320 ::ee03320(){ note_ctor("ee03320", this);} // tgen
+
+static void Test_ee03320()
+{
+ extern Class_Descriptor cd_ee03320;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee03320, buf);
+ ee03320 *dp, &lv = *(dp=new (buf) ee03320());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee03320)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03320)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee03320");
+ check_base_class_offset(lv, (bb20*)(cc320*), ABISELECT(32,20), "ee03320");
+ check_base_class_offset(lv, (cc320*)(dd3320*), ABISELECT(16,12), "ee03320");
+ check_base_class_offset(lv, (dd3320*), 0, "ee03320");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03320.e");
+ test_class_info(&lv, &cd_ee03320);
+ dp->~ee03320();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03320(Test_ee03320, "ee03320", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee03320C1Ev();
+extern void _ZN7ee03320D1Ev();
+Name_Map name_map_ee03320[] = {
+ NSPAIR(_ZN7ee03320C1Ev),
+ NSPAIR(_ZN7ee03320D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc320;
+extern VTBL_ENTRY _ZTI5cc320[];
+extern VTBL_ENTRY _ZTV5cc320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc320[];
+extern Class_Descriptor cd_dd3320;
+extern VTBL_ENTRY _ZTI6dd3320[];
+extern VTBL_ENTRY _ZTV6dd3320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3320[];
+static Base_Class bases_ee03320[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc320, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3320, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03320[];
+extern void _ZN6dd33203fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd33203fooEv,_ZTv0_n16_N6dd33203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33203fooEv,_ZThn12_N6dd33203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd33203fooEv,_ZTv0_n12_N6dd33203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33203fooEv,_ZThn20_N6dd33203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee03320[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03320[0]),
+ (VTBL_ENTRY)&_ZN6dd33203fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33203fooEv,_ZTv0_n16_N6dd33203fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee03320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33203fooEv,_ZTv0_n12_N6dd33203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee03320[];
+extern void _ZN6dd33203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3320__7ee03320[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3320[0]),
+ (VTBL_ENTRY)&_ZN6dd33203fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd33203fooEv,_ZTv0_n16_N6dd33203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33203fooEv,_ZThn12_N6dd33203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc320__6dd3320__7ee03320[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33203fooEv,_ZTv0_n16_N6dd33203fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd33203fooEv,_ZTv0_n12_N6dd33203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33203fooEv,_ZThn20_N6dd33203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd3320__7ee03320[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33203fooEv,_ZTv0_n12_N6dd33203fooEv),
+};
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc320__7ee03320[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc320__7ee03320[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+static VTT_ENTRY vtt_ee03320[] = {
+ {&(_ZTV7ee03320[4]), 4,14},
+ {&(_tg__ZTV6dd3320__7ee03320[4]), 4,5},
+ {&(_tg__ZTV5cc320__6dd3320__7ee03320[4]), 4,5},
+ {&(_tg__ZTV4bb20__6dd3320__7ee03320[3]), 3,4},
+ {&(_ZTV7ee03320[9]), 9,14},
+ {&(_ZTV7ee03320[13]), 13,14},
+ {&(_tg__ZTV5cc320__7ee03320[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc320__7ee03320[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee03320[];
+extern VTBL_ENTRY _ZTV7ee03320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03320[];
+static VTBL_ENTRY alt_thunk_names158[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33203fooEv,_ZTv0_n12_N6dd33203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33203fooEv,_ZThn20_N6dd33203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33203fooEv,_ZThn20_N6dd33203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33203fooEv,_ZTv0_n16_N6dd33203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33203fooEv,_ZThn12_N6dd33203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33203fooEv,_ZThn12_N6dd33203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03320 = { "ee03320", // class name
+ bases_ee03320, 4,
+ &(vtc_ee03320[0]), // expected_vtbl_contents
+ &(vtt_ee03320[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee03320),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03320),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03320),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names158,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee13320 : virtual dd3320 {
+ int e;
+ ~ee13320(); // tgen
+ ee13320(); // tgen
+};
+//SIG(1 ee13320) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v1 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee13320 ::~ee13320(){ note_dtor("ee13320", this);} // tgen
+ee13320 ::ee13320(){ note_ctor("ee13320", this);} // tgen
+
+static void Test_ee13320()
+{
+ extern Class_Descriptor cd_ee13320;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee13320, buf);
+ ee13320 *dp, &lv = *(dp=new (buf) ee13320());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee13320)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13320)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(56,28), "ee13320");
+ check_base_class_offset(lv, (bb20*)(cc320*), ABISELECT(48,24), "ee13320");
+ check_base_class_offset(lv, (cc320*)(dd3320*), ABISELECT(32,16), "ee13320");
+ check_base_class_offset(lv, (dd3320*), ABISELECT(16,8), "ee13320");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13320.e");
+ test_class_info(&lv, &cd_ee13320);
+ dp->~ee13320();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13320(Test_ee13320, "ee13320", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee13320C1Ev();
+extern void _ZN7ee13320D1Ev();
+Name_Map name_map_ee13320[] = {
+ NSPAIR(_ZN7ee13320C1Ev),
+ NSPAIR(_ZN7ee13320D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc320;
+extern VTBL_ENTRY _ZTI5cc320[];
+extern VTBL_ENTRY _ZTV5cc320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc320[];
+extern Class_Descriptor cd_dd3320;
+extern VTBL_ENTRY _ZTI6dd3320[];
+extern VTBL_ENTRY _ZTV6dd3320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3320[];
+static Base_Class bases_ee13320[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(56,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(48,24), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc320, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3320, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee13320[];
+extern void _ZN6dd33203fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd33203fooEv,_ZTv0_n16_N6dd33203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33203fooEv,_ZThn8_N6dd33203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd33203fooEv,_ZTv0_n12_N6dd33203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33203fooEv,_ZThn16_N6dd33203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee13320[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13320[0]),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13320[0]),
+ (VTBL_ENTRY)&_ZN6dd33203fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33203fooEv,_ZTv0_n16_N6dd33203fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee13320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33203fooEv,_ZTv0_n12_N6dd33203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee13320[];
+extern void _ZN6dd33203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3320__7ee13320[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3320[0]),
+ (VTBL_ENTRY)&_ZN6dd33203fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd33203fooEv,_ZTv0_n16_N6dd33203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33203fooEv,_ZThn8_N6dd33203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc320__6dd3320__7ee13320[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33203fooEv,_ZTv0_n16_N6dd33203fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd33203fooEv,_ZTv0_n12_N6dd33203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33203fooEv,_ZThn16_N6dd33203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd3320__7ee13320[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33203fooEv,_ZTv0_n12_N6dd33203fooEv),
+};
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc320__7ee13320[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc320__7ee13320[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+static VTT_ENTRY vtt_ee13320[] = {
+ {&(_ZTV7ee13320[5]), 5,20},
+ {&(_ZTV7ee13320[10]), 10,20},
+ {&(_ZTV7ee13320[15]), 15,20},
+ {&(_ZTV7ee13320[19]), 19,20},
+ {&(_tg__ZTV6dd3320__7ee13320[4]), 4,5},
+ {&(_tg__ZTV5cc320__6dd3320__7ee13320[4]), 4,5},
+ {&(_tg__ZTV4bb20__6dd3320__7ee13320[3]), 3,4},
+ {&(_tg__ZTV5cc320__7ee13320[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc320__7ee13320[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee13320[];
+extern VTBL_ENTRY _ZTV7ee13320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13320[];
+static VTBL_ENTRY alt_thunk_names159[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33203fooEv,_ZTv0_n12_N6dd33203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33203fooEv,_ZThn16_N6dd33203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33203fooEv,_ZThn16_N6dd33203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33203fooEv,_ZTv0_n16_N6dd33203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33203fooEv,_ZThn8_N6dd33203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33203fooEv,_ZThn8_N6dd33203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13320 = { "ee13320", // class name
+ bases_ee13320, 4,
+ &(vtc_ee13320[0]), // expected_vtbl_contents
+ &(vtt_ee13320[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee13320),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13320),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13320),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names159,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee23320 : dd3320 {
+ int e;
+ virtual void foo(); // _ZN7ee233203fooEv
+ ~ee23320(); // tgen
+ ee23320(); // tgen
+};
+//SIG(1 ee23320) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v1 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee23320 ::foo(){vfunc_called(this, "_ZN7ee233203fooEv");}
+ee23320 ::~ee23320(){ note_dtor("ee23320", this);} // tgen
+ee23320 ::ee23320(){ note_ctor("ee23320", this);} // tgen
+
+static void Test_ee23320()
+{
+ extern Class_Descriptor cd_ee23320;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee23320, buf);
+ ee23320 *dp, &lv = *(dp=new (buf) ee23320());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee23320)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23320)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee23320");
+ check_base_class_offset(lv, (bb20*)(cc320*), ABISELECT(32,20), "ee23320");
+ check_base_class_offset(lv, (cc320*)(dd3320*), ABISELECT(16,12), "ee23320");
+ check_base_class_offset(lv, (dd3320*), 0, "ee23320");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23320.e");
+ test_class_info(&lv, &cd_ee23320);
+ dp->~ee23320();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23320(Test_ee23320, "ee23320", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee23320C1Ev();
+extern void _ZN7ee23320D1Ev();
+Name_Map name_map_ee23320[] = {
+ NSPAIR(_ZN7ee23320C1Ev),
+ NSPAIR(_ZN7ee23320D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc320;
+extern VTBL_ENTRY _ZTI5cc320[];
+extern VTBL_ENTRY _ZTV5cc320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc320[];
+extern Class_Descriptor cd_dd3320;
+extern VTBL_ENTRY _ZTI6dd3320[];
+extern VTBL_ENTRY _ZTV6dd3320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3320[];
+static Base_Class bases_ee23320[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc320, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3320, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23320[];
+extern void _ZN7ee233203fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee233203fooEv,_ZTv0_n16_N7ee233203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee233203fooEv,_ZThn12_N7ee233203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee233203fooEv,_ZTv0_n12_N7ee233203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee233203fooEv,_ZThn20_N7ee233203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee23320[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23320[0]),
+ (VTBL_ENTRY)&_ZN7ee233203fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee233203fooEv,_ZTv0_n16_N7ee233203fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee23320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee233203fooEv,_ZTv0_n12_N7ee233203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee23320[];
+extern void _ZN6dd33203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3320__7ee23320[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3320[0]),
+ (VTBL_ENTRY)&_ZN6dd33203fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd33203fooEv,_ZTv0_n16_N6dd33203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33203fooEv,_ZThn12_N6dd33203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc320__6dd3320__7ee23320[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33203fooEv,_ZTv0_n16_N6dd33203fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd33203fooEv,_ZTv0_n12_N6dd33203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33203fooEv,_ZThn20_N6dd33203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd3320__7ee23320[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33203fooEv,_ZTv0_n12_N6dd33203fooEv),
+};
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc320__7ee23320[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc320__7ee23320[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+static VTT_ENTRY vtt_ee23320[] = {
+ {&(_ZTV7ee23320[4]), 4,14},
+ {&(_tg__ZTV6dd3320__7ee23320[4]), 4,5},
+ {&(_tg__ZTV5cc320__6dd3320__7ee23320[4]), 4,5},
+ {&(_tg__ZTV4bb20__6dd3320__7ee23320[3]), 3,4},
+ {&(_ZTV7ee23320[9]), 9,14},
+ {&(_ZTV7ee23320[13]), 13,14},
+ {&(_tg__ZTV5cc320__7ee23320[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc320__7ee23320[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee23320[];
+extern VTBL_ENTRY _ZTV7ee23320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23320[];
+static VTBL_ENTRY alt_thunk_names160[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33203fooEv,_ZTv0_n12_N6dd33203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33203fooEv,_ZThn20_N6dd33203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33203fooEv,_ZTv0_n16_N6dd33203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33203fooEv,_ZThn12_N6dd33203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee233203fooEv,_ZTv0_n12_N7ee233203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee233203fooEv,_ZThn20_N7ee233203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee233203fooEv,_ZTv0_n16_N7ee233203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee233203fooEv,_ZThn12_N7ee233203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23320 = { "ee23320", // class name
+ bases_ee23320, 4,
+ &(vtc_ee23320[0]), // expected_vtbl_contents
+ &(vtt_ee23320[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee23320),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23320),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23320),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names160,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee33320 : virtual dd3320 {
+ int e;
+ virtual void foo(); // _ZN7ee333203fooEv
+ ~ee33320(); // tgen
+ ee33320(); // tgen
+};
+//SIG(1 ee33320) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v1 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee33320 ::foo(){vfunc_called(this, "_ZN7ee333203fooEv");}
+ee33320 ::~ee33320(){ note_dtor("ee33320", this);} // tgen
+ee33320 ::ee33320(){ note_ctor("ee33320", this);} // tgen
+
+static void Test_ee33320()
+{
+ extern Class_Descriptor cd_ee33320;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee33320, buf);
+ ee33320 *dp, &lv = *(dp=new (buf) ee33320());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee33320)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33320)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(56,28), "ee33320");
+ check_base_class_offset(lv, (bb20*)(cc320*), ABISELECT(48,24), "ee33320");
+ check_base_class_offset(lv, (cc320*)(dd3320*), ABISELECT(32,16), "ee33320");
+ check_base_class_offset(lv, (dd3320*), ABISELECT(16,8), "ee33320");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33320.e");
+ test_class_info(&lv, &cd_ee33320);
+ dp->~ee33320();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33320(Test_ee33320, "ee33320", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee33320C1Ev();
+extern void _ZN7ee33320D1Ev();
+Name_Map name_map_ee33320[] = {
+ NSPAIR(_ZN7ee33320C1Ev),
+ NSPAIR(_ZN7ee33320D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc320;
+extern VTBL_ENTRY _ZTI5cc320[];
+extern VTBL_ENTRY _ZTV5cc320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc320[];
+extern Class_Descriptor cd_dd3320;
+extern VTBL_ENTRY _ZTI6dd3320[];
+extern VTBL_ENTRY _ZTV6dd3320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3320[];
+static Base_Class bases_ee33320[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(56,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc320, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3320, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee33320[];
+extern void _ZN7ee333203fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee333203fooEv,_ZTv0_n20_N7ee333203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee333203fooEv,_ZThn8_N7ee333203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee333203fooEv,_ZTv0_n16_N7ee333203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee333203fooEv,_ZThn16_N7ee333203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee333203fooEv,_ZTv0_n12_N7ee333203fooEv)();
+extern void ABISELECT(_ZThn48_N7ee333203fooEv,_ZThn24_N7ee333203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee33320[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33320[0]),
+ (VTBL_ENTRY)&_ZN7ee333203fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee333203fooEv,_ZTv0_n20_N7ee333203fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee333203fooEv,_ZTv0_n16_N7ee333203fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee33320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee333203fooEv,_ZTv0_n12_N7ee333203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee33320[];
+extern void _ZN6dd33203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3320__7ee33320[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3320[0]),
+ (VTBL_ENTRY)&_ZN6dd33203fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd33203fooEv,_ZTv0_n16_N6dd33203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33203fooEv,_ZThn8_N6dd33203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc320__6dd3320__7ee33320[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33203fooEv,_ZTv0_n16_N6dd33203fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd33203fooEv,_ZTv0_n12_N6dd33203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33203fooEv,_ZThn16_N6dd33203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd3320__7ee33320[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33203fooEv,_ZTv0_n12_N6dd33203fooEv),
+};
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc320__7ee33320[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc320__7ee33320[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+static VTT_ENTRY vtt_ee33320[] = {
+ {&(_ZTV7ee33320[5]), 5,21},
+ {&(_ZTV7ee33320[11]), 11,21},
+ {&(_ZTV7ee33320[16]), 16,21},
+ {&(_ZTV7ee33320[20]), 20,21},
+ {&(_tg__ZTV6dd3320__7ee33320[4]), 4,5},
+ {&(_tg__ZTV5cc320__6dd3320__7ee33320[4]), 4,5},
+ {&(_tg__ZTV4bb20__6dd3320__7ee33320[3]), 3,4},
+ {&(_tg__ZTV5cc320__7ee33320[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc320__7ee33320[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee33320[];
+extern VTBL_ENTRY _ZTV7ee33320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33320[];
+static VTBL_ENTRY alt_thunk_names161[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33203fooEv,_ZTv0_n12_N6dd33203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33203fooEv,_ZThn16_N6dd33203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33203fooEv,_ZTv0_n16_N6dd33203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33203fooEv,_ZThn8_N6dd33203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee333203fooEv,_ZTv0_n12_N7ee333203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee333203fooEv,_ZThn24_N7ee333203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee333203fooEv,_ZTv0_n16_N7ee333203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee333203fooEv,_ZThn16_N7ee333203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee333203fooEv,_ZTv0_n20_N7ee333203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee333203fooEv,_ZThn8_N7ee333203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33320 = { "ee33320", // class name
+ bases_ee33320, 4,
+ &(vtc_ee33320[0]), // expected_vtbl_contents
+ &(vtt_ee33320[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee33320),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33320),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33320),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names161,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee43320 : dd3320 {
+ int e;
+ virtual void bar(); // _ZN7ee433203barEv
+ ~ee43320(); // tgen
+ ee43320(); // tgen
+};
+//SIG(1 ee43320) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v2 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee43320 ::bar(){vfunc_called(this, "_ZN7ee433203barEv");}
+ee43320 ::~ee43320(){ note_dtor("ee43320", this);} // tgen
+ee43320 ::ee43320(){ note_ctor("ee43320", this);} // tgen
+
+static void Test_ee43320()
+{
+ extern Class_Descriptor cd_ee43320;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee43320, buf);
+ ee43320 *dp, &lv = *(dp=new (buf) ee43320());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee43320)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43320)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee43320");
+ check_base_class_offset(lv, (bb20*)(cc320*), ABISELECT(32,20), "ee43320");
+ check_base_class_offset(lv, (cc320*)(dd3320*), ABISELECT(16,12), "ee43320");
+ check_base_class_offset(lv, (dd3320*), 0, "ee43320");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43320.e");
+ test_class_info(&lv, &cd_ee43320);
+ dp->~ee43320();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43320(Test_ee43320, "ee43320", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee43320C1Ev();
+extern void _ZN7ee43320D1Ev();
+Name_Map name_map_ee43320[] = {
+ NSPAIR(_ZN7ee43320C1Ev),
+ NSPAIR(_ZN7ee43320D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc320;
+extern VTBL_ENTRY _ZTI5cc320[];
+extern VTBL_ENTRY _ZTV5cc320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc320[];
+extern Class_Descriptor cd_dd3320;
+extern VTBL_ENTRY _ZTI6dd3320[];
+extern VTBL_ENTRY _ZTV6dd3320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3320[];
+static Base_Class bases_ee43320[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc320, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3320, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43320[];
+extern void _ZN6dd33203fooEv();
+extern void _ZN7ee433203barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd33203fooEv,_ZTv0_n16_N6dd33203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33203fooEv,_ZThn12_N6dd33203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd33203fooEv,_ZTv0_n12_N6dd33203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33203fooEv,_ZThn20_N6dd33203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43320[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43320[0]),
+ (VTBL_ENTRY)&_ZN6dd33203fooEv,
+ (VTBL_ENTRY)&_ZN7ee433203barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33203fooEv,_ZTv0_n16_N6dd33203fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee43320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33203fooEv,_ZTv0_n12_N6dd33203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee43320[];
+extern void _ZN6dd33203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3320__7ee43320[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3320[0]),
+ (VTBL_ENTRY)&_ZN6dd33203fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd33203fooEv,_ZTv0_n16_N6dd33203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33203fooEv,_ZThn12_N6dd33203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc320__6dd3320__7ee43320[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33203fooEv,_ZTv0_n16_N6dd33203fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd33203fooEv,_ZTv0_n12_N6dd33203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33203fooEv,_ZThn20_N6dd33203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd3320__7ee43320[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33203fooEv,_ZTv0_n12_N6dd33203fooEv),
+};
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc320__7ee43320[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc320__7ee43320[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+static VTT_ENTRY vtt_ee43320[] = {
+ {&(_ZTV7ee43320[4]), 4,15},
+ {&(_tg__ZTV6dd3320__7ee43320[4]), 4,5},
+ {&(_tg__ZTV5cc320__6dd3320__7ee43320[4]), 4,5},
+ {&(_tg__ZTV4bb20__6dd3320__7ee43320[3]), 3,4},
+ {&(_ZTV7ee43320[10]), 10,15},
+ {&(_ZTV7ee43320[14]), 14,15},
+ {&(_tg__ZTV5cc320__7ee43320[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc320__7ee43320[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee43320[];
+extern VTBL_ENTRY _ZTV7ee43320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43320[];
+static VTBL_ENTRY alt_thunk_names162[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33203fooEv,_ZTv0_n12_N6dd33203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33203fooEv,_ZThn20_N6dd33203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33203fooEv,_ZThn20_N6dd33203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33203fooEv,_ZTv0_n16_N6dd33203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33203fooEv,_ZThn12_N6dd33203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33203fooEv,_ZThn12_N6dd33203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43320 = { "ee43320", // class name
+ bases_ee43320, 4,
+ &(vtc_ee43320[0]), // expected_vtbl_contents
+ &(vtt_ee43320[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee43320),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43320),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43320),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names162,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee53320 : virtual dd3320 {
+ int e;
+ virtual void bar(); // _ZN7ee533203barEv
+ ~ee53320(); // tgen
+ ee53320(); // tgen
+};
+//SIG(1 ee53320) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v2 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee53320 ::bar(){vfunc_called(this, "_ZN7ee533203barEv");}
+ee53320 ::~ee53320(){ note_dtor("ee53320", this);} // tgen
+ee53320 ::ee53320(){ note_ctor("ee53320", this);} // tgen
+
+static void Test_ee53320()
+{
+ extern Class_Descriptor cd_ee53320;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee53320, buf);
+ ee53320 *dp, &lv = *(dp=new (buf) ee53320());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee53320)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53320)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(56,28), "ee53320");
+ check_base_class_offset(lv, (bb20*)(cc320*), ABISELECT(48,24), "ee53320");
+ check_base_class_offset(lv, (cc320*)(dd3320*), ABISELECT(32,16), "ee53320");
+ check_base_class_offset(lv, (dd3320*), ABISELECT(16,8), "ee53320");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53320.e");
+ test_class_info(&lv, &cd_ee53320);
+ dp->~ee53320();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53320(Test_ee53320, "ee53320", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee53320C1Ev();
+extern void _ZN7ee53320D1Ev();
+Name_Map name_map_ee53320[] = {
+ NSPAIR(_ZN7ee53320C1Ev),
+ NSPAIR(_ZN7ee53320D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc320;
+extern VTBL_ENTRY _ZTI5cc320[];
+extern VTBL_ENTRY _ZTV5cc320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc320[];
+extern Class_Descriptor cd_dd3320;
+extern VTBL_ENTRY _ZTI6dd3320[];
+extern VTBL_ENTRY _ZTV6dd3320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3320[];
+static Base_Class bases_ee53320[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(56,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc320, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3320, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee53320[];
+extern void _ZN7ee533203barEv();
+extern void _ZN6dd33203fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd33203fooEv,_ZTv0_n16_N6dd33203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33203fooEv,_ZThn8_N6dd33203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd33203fooEv,_ZTv0_n12_N6dd33203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33203fooEv,_ZThn16_N6dd33203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53320[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53320[0]),
+ (VTBL_ENTRY)&_ZN7ee533203barEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53320[0]),
+ (VTBL_ENTRY)&_ZN6dd33203fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33203fooEv,_ZTv0_n16_N6dd33203fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee53320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33203fooEv,_ZTv0_n12_N6dd33203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee53320[];
+extern void _ZN6dd33203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3320__7ee53320[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3320[0]),
+ (VTBL_ENTRY)&_ZN6dd33203fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd33203fooEv,_ZTv0_n16_N6dd33203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33203fooEv,_ZThn8_N6dd33203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc320__6dd3320__7ee53320[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33203fooEv,_ZTv0_n16_N6dd33203fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd33203fooEv,_ZTv0_n12_N6dd33203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33203fooEv,_ZThn16_N6dd33203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd3320__7ee53320[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33203fooEv,_ZTv0_n12_N6dd33203fooEv),
+};
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc320__7ee53320[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc320__7ee53320[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+static VTT_ENTRY vtt_ee53320[] = {
+ {&(_ZTV7ee53320[5]), 5,21},
+ {&(_ZTV7ee53320[11]), 11,21},
+ {&(_ZTV7ee53320[16]), 16,21},
+ {&(_ZTV7ee53320[20]), 20,21},
+ {&(_tg__ZTV6dd3320__7ee53320[4]), 4,5},
+ {&(_tg__ZTV5cc320__6dd3320__7ee53320[4]), 4,5},
+ {&(_tg__ZTV4bb20__6dd3320__7ee53320[3]), 3,4},
+ {&(_tg__ZTV5cc320__7ee53320[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc320__7ee53320[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee53320[];
+extern VTBL_ENTRY _ZTV7ee53320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53320[];
+static VTBL_ENTRY alt_thunk_names163[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33203fooEv,_ZTv0_n12_N6dd33203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33203fooEv,_ZThn16_N6dd33203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33203fooEv,_ZThn16_N6dd33203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33203fooEv,_ZTv0_n16_N6dd33203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33203fooEv,_ZThn8_N6dd33203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33203fooEv,_ZThn8_N6dd33203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53320 = { "ee53320", // class name
+ bases_ee53320, 4,
+ &(vtc_ee53320[0]), // expected_vtbl_contents
+ &(vtt_ee53320[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee53320),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53320),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53320),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names163,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee63320 : dd3320 {
+ int e;
+ virtual void foo(); // _ZN7ee633203fooEv
+ virtual void bar(); // _ZN7ee633203barEv
+ ~ee63320(); // tgen
+ ee63320(); // tgen
+};
+//SIG(1 ee63320) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v1 Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63320 ::foo(){vfunc_called(this, "_ZN7ee633203fooEv");}
+void ee63320 ::bar(){vfunc_called(this, "_ZN7ee633203barEv");}
+ee63320 ::~ee63320(){ note_dtor("ee63320", this);} // tgen
+ee63320 ::ee63320(){ note_ctor("ee63320", this);} // tgen
+
+static void Test_ee63320()
+{
+ extern Class_Descriptor cd_ee63320;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee63320, buf);
+ ee63320 *dp, &lv = *(dp=new (buf) ee63320());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee63320)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63320)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee63320");
+ check_base_class_offset(lv, (bb20*)(cc320*), ABISELECT(32,20), "ee63320");
+ check_base_class_offset(lv, (cc320*)(dd3320*), ABISELECT(16,12), "ee63320");
+ check_base_class_offset(lv, (dd3320*), 0, "ee63320");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63320.e");
+ test_class_info(&lv, &cd_ee63320);
+ dp->~ee63320();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63320(Test_ee63320, "ee63320", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee63320C1Ev();
+extern void _ZN7ee63320D1Ev();
+Name_Map name_map_ee63320[] = {
+ NSPAIR(_ZN7ee63320C1Ev),
+ NSPAIR(_ZN7ee63320D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc320;
+extern VTBL_ENTRY _ZTI5cc320[];
+extern VTBL_ENTRY _ZTV5cc320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc320[];
+extern Class_Descriptor cd_dd3320;
+extern VTBL_ENTRY _ZTI6dd3320[];
+extern VTBL_ENTRY _ZTV6dd3320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3320[];
+static Base_Class bases_ee63320[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc320, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3320, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63320[];
+extern void _ZN7ee633203fooEv();
+extern void _ZN7ee633203barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee633203fooEv,_ZTv0_n16_N7ee633203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee633203fooEv,_ZThn12_N7ee633203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee633203fooEv,_ZTv0_n12_N7ee633203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee633203fooEv,_ZThn20_N7ee633203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63320[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63320[0]),
+ (VTBL_ENTRY)&_ZN7ee633203fooEv,
+ (VTBL_ENTRY)&_ZN7ee633203barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee633203fooEv,_ZTv0_n16_N7ee633203fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee63320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee633203fooEv,_ZTv0_n12_N7ee633203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee63320[];
+extern void _ZN6dd33203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3320__7ee63320[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3320[0]),
+ (VTBL_ENTRY)&_ZN6dd33203fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd33203fooEv,_ZTv0_n16_N6dd33203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33203fooEv,_ZThn12_N6dd33203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc320__6dd3320__7ee63320[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33203fooEv,_ZTv0_n16_N6dd33203fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd33203fooEv,_ZTv0_n12_N6dd33203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33203fooEv,_ZThn20_N6dd33203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd3320__7ee63320[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33203fooEv,_ZTv0_n12_N6dd33203fooEv),
+};
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc320__7ee63320[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc320__7ee63320[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+static VTT_ENTRY vtt_ee63320[] = {
+ {&(_ZTV7ee63320[4]), 4,15},
+ {&(_tg__ZTV6dd3320__7ee63320[4]), 4,5},
+ {&(_tg__ZTV5cc320__6dd3320__7ee63320[4]), 4,5},
+ {&(_tg__ZTV4bb20__6dd3320__7ee63320[3]), 3,4},
+ {&(_ZTV7ee63320[10]), 10,15},
+ {&(_ZTV7ee63320[14]), 14,15},
+ {&(_tg__ZTV5cc320__7ee63320[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc320__7ee63320[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee63320[];
+extern VTBL_ENTRY _ZTV7ee63320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63320[];
+static VTBL_ENTRY alt_thunk_names164[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33203fooEv,_ZTv0_n12_N6dd33203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33203fooEv,_ZThn20_N6dd33203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33203fooEv,_ZTv0_n16_N6dd33203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33203fooEv,_ZThn12_N6dd33203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee633203fooEv,_ZTv0_n12_N7ee633203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee633203fooEv,_ZThn20_N7ee633203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee633203fooEv,_ZTv0_n16_N7ee633203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee633203fooEv,_ZThn12_N7ee633203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63320 = { "ee63320", // class name
+ bases_ee63320, 4,
+ &(vtc_ee63320[0]), // expected_vtbl_contents
+ &(vtt_ee63320[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee63320),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63320),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63320),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names164,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee73320 : virtual dd3320 {
+ int e;
+ virtual void foo(); // _ZN7ee733203fooEv
+ virtual void bar(); // _ZN7ee733203barEv
+ ~ee73320(); // tgen
+ ee73320(); // tgen
+};
+//SIG(1 ee73320) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v1 Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73320 ::foo(){vfunc_called(this, "_ZN7ee733203fooEv");}
+void ee73320 ::bar(){vfunc_called(this, "_ZN7ee733203barEv");}
+ee73320 ::~ee73320(){ note_dtor("ee73320", this);} // tgen
+ee73320 ::ee73320(){ note_ctor("ee73320", this);} // tgen
+
+static void Test_ee73320()
+{
+ extern Class_Descriptor cd_ee73320;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee73320, buf);
+ ee73320 *dp, &lv = *(dp=new (buf) ee73320());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee73320)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73320)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(56,28), "ee73320");
+ check_base_class_offset(lv, (bb20*)(cc320*), ABISELECT(48,24), "ee73320");
+ check_base_class_offset(lv, (cc320*)(dd3320*), ABISELECT(32,16), "ee73320");
+ check_base_class_offset(lv, (dd3320*), ABISELECT(16,8), "ee73320");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73320.e");
+ test_class_info(&lv, &cd_ee73320);
+ dp->~ee73320();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73320(Test_ee73320, "ee73320", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee73320C1Ev();
+extern void _ZN7ee73320D1Ev();
+Name_Map name_map_ee73320[] = {
+ NSPAIR(_ZN7ee73320C1Ev),
+ NSPAIR(_ZN7ee73320D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc320;
+extern VTBL_ENTRY _ZTI5cc320[];
+extern VTBL_ENTRY _ZTV5cc320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc320[];
+extern Class_Descriptor cd_dd3320;
+extern VTBL_ENTRY _ZTI6dd3320[];
+extern VTBL_ENTRY _ZTV6dd3320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3320[];
+static Base_Class bases_ee73320[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(56,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc320, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3320, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee73320[];
+extern void _ZN7ee733203fooEv();
+extern void _ZN7ee733203barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee733203fooEv,_ZTv0_n20_N7ee733203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee733203fooEv,_ZThn8_N7ee733203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee733203fooEv,_ZTv0_n16_N7ee733203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee733203fooEv,_ZThn16_N7ee733203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee733203fooEv,_ZTv0_n12_N7ee733203fooEv)();
+extern void ABISELECT(_ZThn48_N7ee733203fooEv,_ZThn24_N7ee733203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73320[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73320[0]),
+ (VTBL_ENTRY)&_ZN7ee733203fooEv,
+ (VTBL_ENTRY)&_ZN7ee733203barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee733203fooEv,_ZTv0_n20_N7ee733203fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee733203fooEv,_ZTv0_n16_N7ee733203fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee73320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee733203fooEv,_ZTv0_n12_N7ee733203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee73320[];
+extern void _ZN6dd33203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3320__7ee73320[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3320[0]),
+ (VTBL_ENTRY)&_ZN6dd33203fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd33203fooEv,_ZTv0_n16_N6dd33203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33203fooEv,_ZThn8_N6dd33203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc320__6dd3320__7ee73320[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33203fooEv,_ZTv0_n16_N6dd33203fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd33203fooEv,_ZTv0_n12_N6dd33203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33203fooEv,_ZThn16_N6dd33203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd3320__7ee73320[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33203fooEv,_ZTv0_n12_N6dd33203fooEv),
+};
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc320__7ee73320[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc320__7ee73320[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+static VTT_ENTRY vtt_ee73320[] = {
+ {&(_ZTV7ee73320[5]), 5,22},
+ {&(_ZTV7ee73320[12]), 12,22},
+ {&(_ZTV7ee73320[17]), 17,22},
+ {&(_ZTV7ee73320[21]), 21,22},
+ {&(_tg__ZTV6dd3320__7ee73320[4]), 4,5},
+ {&(_tg__ZTV5cc320__6dd3320__7ee73320[4]), 4,5},
+ {&(_tg__ZTV4bb20__6dd3320__7ee73320[3]), 3,4},
+ {&(_tg__ZTV5cc320__7ee73320[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc320__7ee73320[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee73320[];
+extern VTBL_ENTRY _ZTV7ee73320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73320[];
+static VTBL_ENTRY alt_thunk_names165[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33203fooEv,_ZTv0_n12_N6dd33203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33203fooEv,_ZThn16_N6dd33203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33203fooEv,_ZTv0_n16_N6dd33203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33203fooEv,_ZThn8_N6dd33203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee733203fooEv,_ZTv0_n12_N7ee733203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee733203fooEv,_ZThn24_N7ee733203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee733203fooEv,_ZTv0_n16_N7ee733203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee733203fooEv,_ZThn16_N7ee733203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee733203fooEv,_ZTv0_n20_N7ee733203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee733203fooEv,_ZThn8_N7ee733203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73320 = { "ee73320", // class name
+ bases_ee73320, 4,
+ &(vtc_ee73320[0]), // expected_vtbl_contents
+ &(vtt_ee73320[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee73320),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73320),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73320),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names165,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd4320 : cc320 {
+ int d;
+ virtual void bar(); // _ZN6dd43203barEv
+ ~dd4320(); // tgen
+ dd4320(); // tgen
+};
+//SIG(-1 dd4320) C1{ BC2{ VBC3{ BC4{ Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void dd4320 ::bar(){vfunc_called(this, "_ZN6dd43203barEv");}
+dd4320 ::~dd4320(){ note_dtor("dd4320", this);} // tgen
+dd4320 ::dd4320(){ note_ctor("dd4320", this);} // tgen
+
+static void Test_dd4320()
+{
+ extern Class_Descriptor cd_dd4320;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd4320, buf);
+ dd4320 *dp, &lv = *(dp=new (buf) dd4320());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd4320)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4320)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(24,16), "dd4320");
+ check_base_class_offset(lv, (bb20*)(cc320*), ABISELECT(16,12), "dd4320");
+ check_base_class_offset(lv, (cc320*), 0, "dd4320");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd4320.d");
+ test_class_info(&lv, &cd_dd4320);
+ dp->~dd4320();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4320(Test_dd4320, "dd4320", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd4320C1Ev();
+extern void _ZN6dd4320D1Ev();
+Name_Map name_map_dd4320[] = {
+ NSPAIR(_ZN6dd4320C1Ev),
+ NSPAIR(_ZN6dd4320D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc320;
+extern VTBL_ENTRY _ZTI5cc320[];
+extern VTBL_ENTRY _ZTV5cc320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc320[];
+static Base_Class bases_dd4320[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc320, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd4320[];
+extern void _ZN5cc3203fooEv();
+extern void _ZN6dd43203barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn12_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd4320[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+ (VTBL_ENTRY)&_ZN6dd43203barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd4320[];
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc320__6dd4320[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn12_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc320__6dd4320[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+static VTT_ENTRY vtt_dd4320[] = {
+ {&(_ZTV6dd4320[3]), 3,9},
+ {&(_tg__ZTV5cc320__6dd4320[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc320__6dd4320[3]), 3,4},
+ {&(_ZTV6dd4320[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI6dd4320[];
+extern VTBL_ENTRY _ZTV6dd4320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4320[];
+static VTBL_ENTRY alt_thunk_names166[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn12_N5cc3203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn12_N5cc3203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd4320 = { "dd4320", // class name
+ bases_dd4320, 3,
+ &(vtc_dd4320[0]), // expected_vtbl_contents
+ &(vtt_dd4320[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd4320),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4320),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd4320),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 ee04320 : dd4320 {
+ int e;
+ ~ee04320(); // tgen
+ ee04320(); // tgen
+};
+//SIG(1 ee04320) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v2 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee04320 ::~ee04320(){ note_dtor("ee04320", this);} // tgen
+ee04320 ::ee04320(){ note_ctor("ee04320", this);} // tgen
+
+static void Test_ee04320()
+{
+ extern Class_Descriptor cd_ee04320;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee04320, buf);
+ ee04320 *dp, &lv = *(dp=new (buf) ee04320());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee04320)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04320)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(32,20), "ee04320");
+ check_base_class_offset(lv, (bb20*)(cc320*)(dd4320*), ABISELECT(24,16), "ee04320");
+ check_base_class_offset(lv, (cc320*)(dd4320*), 0, "ee04320");
+ check_base_class_offset(lv, (dd4320*), 0, "ee04320");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee04320.e");
+ test_class_info(&lv, &cd_ee04320);
+ dp->~ee04320();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04320(Test_ee04320, "ee04320", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee04320C1Ev();
+extern void _ZN7ee04320D1Ev();
+Name_Map name_map_ee04320[] = {
+ NSPAIR(_ZN7ee04320C1Ev),
+ NSPAIR(_ZN7ee04320D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc320;
+extern VTBL_ENTRY _ZTI5cc320[];
+extern VTBL_ENTRY _ZTV5cc320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc320[];
+extern Class_Descriptor cd_dd4320;
+extern VTBL_ENTRY _ZTI6dd4320[];
+extern VTBL_ENTRY _ZTV6dd4320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4320[];
+static Base_Class bases_ee04320[] = {
+ // 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_bb20, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc320, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4320, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee04320[];
+extern void _ZN5cc3203fooEv();
+extern void _ZN6dd43203barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3203fooEv,_ZThn16_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee04320[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+ (VTBL_ENTRY)&_ZN6dd43203barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee04320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee04320[];
+extern void _ZN5cc3203fooEv();
+extern void _ZN6dd43203barEv();
+static VTBL_ENTRY _tg__ZTV6dd4320__7ee04320[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+ (VTBL_ENTRY)&_ZN6dd43203barEv,
+};
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3206dd4320__7ee04320[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3203fooEv,_ZThn16_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc3206dd4320__7ee04320[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3203fooEv,_ZThn16_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd4320__7ee04320[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+static VTT_ENTRY vtt_ee04320[] = {
+ {&(_ZTV7ee04320[3]), 3,9},
+ {&(_tg__ZTV6dd4320__7ee04320[3]), 3,5},
+ {&(_tg__ZTV5cc3206dd4320__7ee04320[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc3206dd4320__7ee04320[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd4320__7ee04320[3]), 3,4},
+ {&(_ZTV7ee04320[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee04320[];
+extern VTBL_ENTRY _ZTV7ee04320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee04320[];
+static VTBL_ENTRY alt_thunk_names167[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3203fooEv,_ZThn16_N5cc3203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3203fooEv,_ZThn16_N5cc3203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3203fooEv,_ZThn16_N5cc3203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee04320 = { "ee04320", // class name
+ bases_ee04320, 4,
+ &(vtc_ee04320[0]), // expected_vtbl_contents
+ &(vtt_ee04320[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee04320),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04320),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee04320),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names167,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee14320 : virtual dd4320 {
+ int e;
+ ~ee14320(); // tgen
+ ee14320(); // tgen
+};
+//SIG(1 ee14320) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v2 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee14320 ::~ee14320(){ note_dtor("ee14320", this);} // tgen
+ee14320 ::ee14320(){ note_ctor("ee14320", this);} // tgen
+
+static void Test_ee14320()
+{
+ extern Class_Descriptor cd_ee14320;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee14320, buf);
+ ee14320 *dp, &lv = *(dp=new (buf) ee14320());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee14320)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14320)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee14320");
+ check_base_class_offset(lv, (bb20*)(cc320*)(dd4320*), ABISELECT(32,20), "ee14320");
+ check_base_class_offset(lv, (cc320*)(dd4320*), ABISELECT(16,8), "ee14320");
+ check_base_class_offset(lv, (dd4320*), ABISELECT(16,8), "ee14320");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14320.e");
+ test_class_info(&lv, &cd_ee14320);
+ dp->~ee14320();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14320(Test_ee14320, "ee14320", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee14320C1Ev();
+extern void _ZN7ee14320D1Ev();
+Name_Map name_map_ee14320[] = {
+ NSPAIR(_ZN7ee14320C1Ev),
+ NSPAIR(_ZN7ee14320D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc320;
+extern VTBL_ENTRY _ZTI5cc320[];
+extern VTBL_ENTRY _ZTV5cc320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc320[];
+extern Class_Descriptor cd_dd4320;
+extern VTBL_ENTRY _ZTI6dd4320[];
+extern VTBL_ENTRY _ZTV6dd4320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4320[];
+static Base_Class bases_ee14320[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc320, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4320, 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 _ZTI7ee14320[];
+extern void _ZN5cc3203fooEv();
+extern void _ZN6dd43203barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn12_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee14320[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14320[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+ (VTBL_ENTRY)&_ZN6dd43203barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee14320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee14320[];
+extern void _ZN5cc3203fooEv();
+extern void _ZN6dd43203barEv();
+static VTBL_ENTRY _tg__ZTV6dd4320__7ee14320[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+ (VTBL_ENTRY)&_ZN6dd43203barEv,
+};
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3206dd4320__7ee14320[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn12_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc3206dd4320__7ee14320[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn12_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd4320__7ee14320[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+static VTT_ENTRY vtt_ee14320[] = {
+ {&(_ZTV7ee14320[4]), 4,15},
+ {&(_ZTV7ee14320[9]), 9,15},
+ {&(_ZTV7ee14320[14]), 14,15},
+ {&(_tg__ZTV6dd4320__7ee14320[3]), 3,5},
+ {&(_tg__ZTV5cc3206dd4320__7ee14320[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc3206dd4320__7ee14320[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd4320__7ee14320[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee14320[];
+extern VTBL_ENTRY _ZTV7ee14320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14320[];
+static VTBL_ENTRY alt_thunk_names168[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn12_N5cc3203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn12_N5cc3203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn12_N5cc3203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee14320 = { "ee14320", // class name
+ bases_ee14320, 4,
+ &(vtc_ee14320[0]), // expected_vtbl_contents
+ &(vtt_ee14320[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee14320),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14320),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14320),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names168,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee24320 : dd4320 {
+ int e;
+ virtual void foo(); // _ZN7ee243203fooEv
+ ~ee24320(); // tgen
+ ee24320(); // tgen
+};
+//SIG(1 ee24320) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v1 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee24320 ::foo(){vfunc_called(this, "_ZN7ee243203fooEv");}
+ee24320 ::~ee24320(){ note_dtor("ee24320", this);} // tgen
+ee24320 ::ee24320(){ note_ctor("ee24320", this);} // tgen
+
+static void Test_ee24320()
+{
+ extern Class_Descriptor cd_ee24320;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee24320, buf);
+ ee24320 *dp, &lv = *(dp=new (buf) ee24320());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee24320)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24320)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(32,20), "ee24320");
+ check_base_class_offset(lv, (bb20*)(cc320*)(dd4320*), ABISELECT(24,16), "ee24320");
+ check_base_class_offset(lv, (cc320*)(dd4320*), 0, "ee24320");
+ check_base_class_offset(lv, (dd4320*), 0, "ee24320");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee24320.e");
+ test_class_info(&lv, &cd_ee24320);
+ dp->~ee24320();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24320(Test_ee24320, "ee24320", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee24320C1Ev();
+extern void _ZN7ee24320D1Ev();
+Name_Map name_map_ee24320[] = {
+ NSPAIR(_ZN7ee24320C1Ev),
+ NSPAIR(_ZN7ee24320D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc320;
+extern VTBL_ENTRY _ZTI5cc320[];
+extern VTBL_ENTRY _ZTV5cc320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc320[];
+extern Class_Descriptor cd_dd4320;
+extern VTBL_ENTRY _ZTI6dd4320[];
+extern VTBL_ENTRY _ZTV6dd4320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4320[];
+static Base_Class bases_ee24320[] = {
+ // 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_bb20, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc320, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4320, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee24320[];
+extern void _ZN7ee243203fooEv();
+extern void _ZN6dd43203barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee243203fooEv,_ZTv0_n12_N7ee243203fooEv)();
+extern void ABISELECT(_ZThn24_N7ee243203fooEv,_ZThn16_N7ee243203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee24320[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24320[0]),
+ (VTBL_ENTRY)&_ZN7ee243203fooEv,
+ (VTBL_ENTRY)&_ZN6dd43203barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee24320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee243203fooEv,_ZTv0_n12_N7ee243203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee24320[];
+extern void _ZN5cc3203fooEv();
+extern void _ZN6dd43203barEv();
+static VTBL_ENTRY _tg__ZTV6dd4320__7ee24320[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+ (VTBL_ENTRY)&_ZN6dd43203barEv,
+};
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3206dd4320__7ee24320[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3203fooEv,_ZThn16_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc3206dd4320__7ee24320[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3203fooEv,_ZThn16_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd4320__7ee24320[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+static VTT_ENTRY vtt_ee24320[] = {
+ {&(_ZTV7ee24320[3]), 3,9},
+ {&(_tg__ZTV6dd4320__7ee24320[3]), 3,5},
+ {&(_tg__ZTV5cc3206dd4320__7ee24320[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc3206dd4320__7ee24320[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd4320__7ee24320[3]), 3,4},
+ {&(_ZTV7ee24320[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee24320[];
+extern VTBL_ENTRY _ZTV7ee24320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee24320[];
+static VTBL_ENTRY alt_thunk_names169[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3203fooEv,_ZThn16_N5cc3203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3203fooEv,_ZThn16_N5cc3203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee243203fooEv,_ZTv0_n12_N7ee243203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee243203fooEv,_ZThn16_N7ee243203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee24320 = { "ee24320", // class name
+ bases_ee24320, 4,
+ &(vtc_ee24320[0]), // expected_vtbl_contents
+ &(vtt_ee24320[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee24320),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24320),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee24320),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names169,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee34320 : virtual dd4320 {
+ int e;
+ virtual void foo(); // _ZN7ee343203fooEv
+ ~ee34320(); // tgen
+ ee34320(); // tgen
+};
+//SIG(1 ee34320) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v1 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee34320 ::foo(){vfunc_called(this, "_ZN7ee343203fooEv");}
+ee34320 ::~ee34320(){ note_dtor("ee34320", this);} // tgen
+ee34320 ::ee34320(){ note_ctor("ee34320", this);} // tgen
+
+static void Test_ee34320()
+{
+ extern Class_Descriptor cd_ee34320;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee34320, buf);
+ ee34320 *dp, &lv = *(dp=new (buf) ee34320());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee34320)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34320)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee34320");
+ check_base_class_offset(lv, (bb20*)(cc320*)(dd4320*), ABISELECT(32,20), "ee34320");
+ check_base_class_offset(lv, (cc320*)(dd4320*), ABISELECT(16,8), "ee34320");
+ check_base_class_offset(lv, (dd4320*), ABISELECT(16,8), "ee34320");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34320.e");
+ test_class_info(&lv, &cd_ee34320);
+ dp->~ee34320();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34320(Test_ee34320, "ee34320", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee34320C1Ev();
+extern void _ZN7ee34320D1Ev();
+Name_Map name_map_ee34320[] = {
+ NSPAIR(_ZN7ee34320C1Ev),
+ NSPAIR(_ZN7ee34320D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc320;
+extern VTBL_ENTRY _ZTI5cc320[];
+extern VTBL_ENTRY _ZTV5cc320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc320[];
+extern Class_Descriptor cd_dd4320;
+extern VTBL_ENTRY _ZTI6dd4320[];
+extern VTBL_ENTRY _ZTV6dd4320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4320[];
+static Base_Class bases_ee34320[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc320, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4320, 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 _ZTI7ee34320[];
+extern void _ZN7ee343203fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee343203fooEv,_ZTv0_n16_N7ee343203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee343203fooEv,_ZThn8_N7ee343203fooEv)() __attribute__((weak));
+extern void _ZN6dd43203barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee343203fooEv,_ZTv0_n12_N7ee343203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee343203fooEv,_ZThn20_N7ee343203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee34320[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34320[0]),
+ (VTBL_ENTRY)&_ZN7ee343203fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee343203fooEv,_ZTv0_n16_N7ee343203fooEv),
+ (VTBL_ENTRY)&_ZN6dd43203barEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee34320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee343203fooEv,_ZTv0_n12_N7ee343203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee34320[];
+extern void _ZN5cc3203fooEv();
+extern void _ZN6dd43203barEv();
+static VTBL_ENTRY _tg__ZTV6dd4320__7ee34320[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+ (VTBL_ENTRY)&_ZN6dd43203barEv,
+};
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3206dd4320__7ee34320[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn12_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc3206dd4320__7ee34320[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn12_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd4320__7ee34320[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+static VTT_ENTRY vtt_ee34320[] = {
+ {&(_ZTV7ee34320[4]), 4,16},
+ {&(_ZTV7ee34320[10]), 10,16},
+ {&(_ZTV7ee34320[15]), 15,16},
+ {&(_tg__ZTV6dd4320__7ee34320[3]), 3,5},
+ {&(_tg__ZTV5cc3206dd4320__7ee34320[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc3206dd4320__7ee34320[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd4320__7ee34320[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee34320[];
+extern VTBL_ENTRY _ZTV7ee34320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34320[];
+static VTBL_ENTRY alt_thunk_names170[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn12_N5cc3203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn12_N5cc3203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee343203fooEv,_ZTv0_n12_N7ee343203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee343203fooEv,_ZThn20_N7ee343203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee343203fooEv,_ZTv0_n16_N7ee343203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee343203fooEv,_ZThn8_N7ee343203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34320 = { "ee34320", // class name
+ bases_ee34320, 4,
+ &(vtc_ee34320[0]), // expected_vtbl_contents
+ &(vtt_ee34320[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee34320),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34320),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34320),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names170,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee44320 : dd4320 {
+ int e;
+ virtual void bar(); // _ZN7ee443203barEv
+ ~ee44320(); // tgen
+ ee44320(); // tgen
+};
+//SIG(1 ee44320) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v2 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee44320 ::bar(){vfunc_called(this, "_ZN7ee443203barEv");}
+ee44320 ::~ee44320(){ note_dtor("ee44320", this);} // tgen
+ee44320 ::ee44320(){ note_ctor("ee44320", this);} // tgen
+
+static void Test_ee44320()
+{
+ extern Class_Descriptor cd_ee44320;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee44320, buf);
+ ee44320 *dp, &lv = *(dp=new (buf) ee44320());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee44320)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44320)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(32,20), "ee44320");
+ check_base_class_offset(lv, (bb20*)(cc320*)(dd4320*), ABISELECT(24,16), "ee44320");
+ check_base_class_offset(lv, (cc320*)(dd4320*), 0, "ee44320");
+ check_base_class_offset(lv, (dd4320*), 0, "ee44320");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee44320.e");
+ test_class_info(&lv, &cd_ee44320);
+ dp->~ee44320();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44320(Test_ee44320, "ee44320", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee44320C1Ev();
+extern void _ZN7ee44320D1Ev();
+Name_Map name_map_ee44320[] = {
+ NSPAIR(_ZN7ee44320C1Ev),
+ NSPAIR(_ZN7ee44320D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc320;
+extern VTBL_ENTRY _ZTI5cc320[];
+extern VTBL_ENTRY _ZTV5cc320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc320[];
+extern Class_Descriptor cd_dd4320;
+extern VTBL_ENTRY _ZTI6dd4320[];
+extern VTBL_ENTRY _ZTV6dd4320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4320[];
+static Base_Class bases_ee44320[] = {
+ // 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_bb20, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc320, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4320, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee44320[];
+extern void _ZN5cc3203fooEv();
+extern void _ZN7ee443203barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3203fooEv,_ZThn16_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee44320[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+ (VTBL_ENTRY)&_ZN7ee443203barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee44320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee44320[];
+extern void _ZN5cc3203fooEv();
+extern void _ZN6dd43203barEv();
+static VTBL_ENTRY _tg__ZTV6dd4320__7ee44320[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+ (VTBL_ENTRY)&_ZN6dd43203barEv,
+};
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3206dd4320__7ee44320[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3203fooEv,_ZThn16_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc3206dd4320__7ee44320[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3203fooEv,_ZThn16_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd4320__7ee44320[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+static VTT_ENTRY vtt_ee44320[] = {
+ {&(_ZTV7ee44320[3]), 3,9},
+ {&(_tg__ZTV6dd4320__7ee44320[3]), 3,5},
+ {&(_tg__ZTV5cc3206dd4320__7ee44320[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc3206dd4320__7ee44320[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd4320__7ee44320[3]), 3,4},
+ {&(_ZTV7ee44320[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee44320[];
+extern VTBL_ENTRY _ZTV7ee44320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee44320[];
+static VTBL_ENTRY alt_thunk_names171[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3203fooEv,_ZThn16_N5cc3203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3203fooEv,_ZThn16_N5cc3203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3203fooEv,_ZThn16_N5cc3203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee44320 = { "ee44320", // class name
+ bases_ee44320, 4,
+ &(vtc_ee44320[0]), // expected_vtbl_contents
+ &(vtt_ee44320[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee44320),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44320),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee44320),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names171,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee54320 : virtual dd4320 {
+ int e;
+ virtual void bar(); // _ZN7ee543203barEv
+ ~ee54320(); // tgen
+ ee54320(); // tgen
+};
+//SIG(1 ee54320) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v2 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee54320 ::bar(){vfunc_called(this, "_ZN7ee543203barEv");}
+ee54320 ::~ee54320(){ note_dtor("ee54320", this);} // tgen
+ee54320 ::ee54320(){ note_ctor("ee54320", this);} // tgen
+
+static void Test_ee54320()
+{
+ extern Class_Descriptor cd_ee54320;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee54320, buf);
+ ee54320 *dp, &lv = *(dp=new (buf) ee54320());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee54320)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54320)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee54320");
+ check_base_class_offset(lv, (bb20*)(cc320*)(dd4320*), ABISELECT(32,20), "ee54320");
+ check_base_class_offset(lv, (cc320*)(dd4320*), ABISELECT(16,8), "ee54320");
+ check_base_class_offset(lv, (dd4320*), ABISELECT(16,8), "ee54320");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54320.e");
+ test_class_info(&lv, &cd_ee54320);
+ dp->~ee54320();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54320(Test_ee54320, "ee54320", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee54320C1Ev();
+extern void _ZN7ee54320D1Ev();
+Name_Map name_map_ee54320[] = {
+ NSPAIR(_ZN7ee54320C1Ev),
+ NSPAIR(_ZN7ee54320D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc320;
+extern VTBL_ENTRY _ZTI5cc320[];
+extern VTBL_ENTRY _ZTV5cc320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc320[];
+extern Class_Descriptor cd_dd4320;
+extern VTBL_ENTRY _ZTI6dd4320[];
+extern VTBL_ENTRY _ZTV6dd4320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4320[];
+static Base_Class bases_ee54320[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc320, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4320, 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 _ZTI7ee54320[];
+extern void _ZN7ee543203barEv();
+extern void _ZN5cc3203fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee543203barEv,_ZTv0_n20_N7ee543203barEv)();
+extern void ABISELECT(_ZThn16_N7ee543203barEv,_ZThn8_N7ee543203barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn12_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54320[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54320[0]),
+ (VTBL_ENTRY)&_ZN7ee543203barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee543203barEv,_ZTv0_n20_N7ee543203barEv),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee54320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee54320[];
+extern void _ZN5cc3203fooEv();
+extern void _ZN6dd43203barEv();
+static VTBL_ENTRY _tg__ZTV6dd4320__7ee54320[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+ (VTBL_ENTRY)&_ZN6dd43203barEv,
+};
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3206dd4320__7ee54320[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn12_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc3206dd4320__7ee54320[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn12_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd4320__7ee54320[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+static VTT_ENTRY vtt_ee54320[] = {
+ {&(_ZTV7ee54320[4]), 4,16},
+ {&(_ZTV7ee54320[10]), 10,16},
+ {&(_ZTV7ee54320[15]), 15,16},
+ {&(_tg__ZTV6dd4320__7ee54320[3]), 3,5},
+ {&(_tg__ZTV5cc3206dd4320__7ee54320[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc3206dd4320__7ee54320[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd4320__7ee54320[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee54320[];
+extern VTBL_ENTRY _ZTV7ee54320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54320[];
+static VTBL_ENTRY alt_thunk_names172[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn12_N5cc3203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn12_N5cc3203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn12_N5cc3203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee543203barEv,_ZTv0_n20_N7ee543203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee543203barEv,_ZThn8_N7ee543203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54320 = { "ee54320", // class name
+ bases_ee54320, 4,
+ &(vtc_ee54320[0]), // expected_vtbl_contents
+ &(vtt_ee54320[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee54320),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54320),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54320),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names172,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee64320 : dd4320 {
+ int e;
+ virtual void foo(); // _ZN7ee643203fooEv
+ virtual void bar(); // _ZN7ee643203barEv
+ ~ee64320(); // tgen
+ ee64320(); // tgen
+};
+//SIG(1 ee64320) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v1 Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64320 ::foo(){vfunc_called(this, "_ZN7ee643203fooEv");}
+void ee64320 ::bar(){vfunc_called(this, "_ZN7ee643203barEv");}
+ee64320 ::~ee64320(){ note_dtor("ee64320", this);} // tgen
+ee64320 ::ee64320(){ note_ctor("ee64320", this);} // tgen
+
+static void Test_ee64320()
+{
+ extern Class_Descriptor cd_ee64320;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee64320, buf);
+ ee64320 *dp, &lv = *(dp=new (buf) ee64320());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee64320)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64320)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(32,20), "ee64320");
+ check_base_class_offset(lv, (bb20*)(cc320*)(dd4320*), ABISELECT(24,16), "ee64320");
+ check_base_class_offset(lv, (cc320*)(dd4320*), 0, "ee64320");
+ check_base_class_offset(lv, (dd4320*), 0, "ee64320");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee64320.e");
+ test_class_info(&lv, &cd_ee64320);
+ dp->~ee64320();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64320(Test_ee64320, "ee64320", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee64320C1Ev();
+extern void _ZN7ee64320D1Ev();
+Name_Map name_map_ee64320[] = {
+ NSPAIR(_ZN7ee64320C1Ev),
+ NSPAIR(_ZN7ee64320D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc320;
+extern VTBL_ENTRY _ZTI5cc320[];
+extern VTBL_ENTRY _ZTV5cc320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc320[];
+extern Class_Descriptor cd_dd4320;
+extern VTBL_ENTRY _ZTI6dd4320[];
+extern VTBL_ENTRY _ZTV6dd4320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4320[];
+static Base_Class bases_ee64320[] = {
+ // 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_bb20, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc320, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4320, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee64320[];
+extern void _ZN7ee643203fooEv();
+extern void _ZN7ee643203barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee643203fooEv,_ZTv0_n12_N7ee643203fooEv)();
+extern void ABISELECT(_ZThn24_N7ee643203fooEv,_ZThn16_N7ee643203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee64320[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64320[0]),
+ (VTBL_ENTRY)&_ZN7ee643203fooEv,
+ (VTBL_ENTRY)&_ZN7ee643203barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee64320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee643203fooEv,_ZTv0_n12_N7ee643203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee64320[];
+extern void _ZN5cc3203fooEv();
+extern void _ZN6dd43203barEv();
+static VTBL_ENTRY _tg__ZTV6dd4320__7ee64320[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+ (VTBL_ENTRY)&_ZN6dd43203barEv,
+};
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3206dd4320__7ee64320[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3203fooEv,_ZThn16_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc3206dd4320__7ee64320[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3203fooEv,_ZThn16_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd4320__7ee64320[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+static VTT_ENTRY vtt_ee64320[] = {
+ {&(_ZTV7ee64320[3]), 3,9},
+ {&(_tg__ZTV6dd4320__7ee64320[3]), 3,5},
+ {&(_tg__ZTV5cc3206dd4320__7ee64320[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc3206dd4320__7ee64320[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd4320__7ee64320[3]), 3,4},
+ {&(_ZTV7ee64320[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee64320[];
+extern VTBL_ENTRY _ZTV7ee64320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee64320[];
+static VTBL_ENTRY alt_thunk_names173[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3203fooEv,_ZThn16_N5cc3203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3203fooEv,_ZThn16_N5cc3203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee643203fooEv,_ZTv0_n12_N7ee643203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee643203fooEv,_ZThn16_N7ee643203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee64320 = { "ee64320", // class name
+ bases_ee64320, 4,
+ &(vtc_ee64320[0]), // expected_vtbl_contents
+ &(vtt_ee64320[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee64320),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64320),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee64320),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names173,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee74320 : virtual dd4320 {
+ int e;
+ virtual void foo(); // _ZN7ee743203fooEv
+ virtual void bar(); // _ZN7ee743203barEv
+ ~ee74320(); // tgen
+ ee74320(); // tgen
+};
+//SIG(1 ee74320) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v1 Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74320 ::foo(){vfunc_called(this, "_ZN7ee743203fooEv");}
+void ee74320 ::bar(){vfunc_called(this, "_ZN7ee743203barEv");}
+ee74320 ::~ee74320(){ note_dtor("ee74320", this);} // tgen
+ee74320 ::ee74320(){ note_ctor("ee74320", this);} // tgen
+
+static void Test_ee74320()
+{
+ extern Class_Descriptor cd_ee74320;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee74320, buf);
+ ee74320 *dp, &lv = *(dp=new (buf) ee74320());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee74320)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74320)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee74320");
+ check_base_class_offset(lv, (bb20*)(cc320*)(dd4320*), ABISELECT(32,20), "ee74320");
+ check_base_class_offset(lv, (cc320*)(dd4320*), ABISELECT(16,8), "ee74320");
+ check_base_class_offset(lv, (dd4320*), ABISELECT(16,8), "ee74320");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74320.e");
+ test_class_info(&lv, &cd_ee74320);
+ dp->~ee74320();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74320(Test_ee74320, "ee74320", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee74320C1Ev();
+extern void _ZN7ee74320D1Ev();
+Name_Map name_map_ee74320[] = {
+ NSPAIR(_ZN7ee74320C1Ev),
+ NSPAIR(_ZN7ee74320D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc320;
+extern VTBL_ENTRY _ZTI5cc320[];
+extern VTBL_ENTRY _ZTV5cc320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc320[];
+extern Class_Descriptor cd_dd4320;
+extern VTBL_ENTRY _ZTI6dd4320[];
+extern VTBL_ENTRY _ZTV6dd4320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4320[];
+static Base_Class bases_ee74320[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc320, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4320, ABISELECT(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 _ZTI7ee74320[];
+extern void _ZN7ee743203fooEv();
+extern void _ZN7ee743203barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee743203fooEv,_ZTv0_n16_N7ee743203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee743203fooEv,_ZThn8_N7ee743203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee743203barEv,_ZTv0_n20_N7ee743203barEv)();
+extern void ABISELECT(_ZThn16_N7ee743203barEv,_ZThn8_N7ee743203barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee743203fooEv,_ZTv0_n12_N7ee743203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee743203fooEv,_ZThn20_N7ee743203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74320[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74320[0]),
+ (VTBL_ENTRY)&_ZN7ee743203fooEv,
+ (VTBL_ENTRY)&_ZN7ee743203barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee743203fooEv,_ZTv0_n16_N7ee743203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee743203barEv,_ZTv0_n20_N7ee743203barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee74320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee743203fooEv,_ZTv0_n12_N7ee743203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee74320[];
+extern void _ZN5cc3203fooEv();
+extern void _ZN6dd43203barEv();
+static VTBL_ENTRY _tg__ZTV6dd4320__7ee74320[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+ (VTBL_ENTRY)&_ZN6dd43203barEv,
+};
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3206dd4320__7ee74320[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn12_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc3206dd4320__7ee74320[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn12_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd4320__7ee74320[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+static VTT_ENTRY vtt_ee74320[] = {
+ {&(_ZTV7ee74320[4]), 4,17},
+ {&(_ZTV7ee74320[11]), 11,17},
+ {&(_ZTV7ee74320[16]), 16,17},
+ {&(_tg__ZTV6dd4320__7ee74320[3]), 3,5},
+ {&(_tg__ZTV5cc3206dd4320__7ee74320[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc3206dd4320__7ee74320[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd4320__7ee74320[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee74320[];
+extern VTBL_ENTRY _ZTV7ee74320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74320[];
+static VTBL_ENTRY alt_thunk_names174[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn12_N5cc3203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn12_N5cc3203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee743203fooEv,_ZTv0_n12_N7ee743203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee743203fooEv,_ZThn20_N7ee743203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee743203barEv,_ZTv0_n20_N7ee743203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee743203barEv,_ZThn8_N7ee743203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee743203fooEv,_ZTv0_n16_N7ee743203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee743203fooEv,_ZThn8_N7ee743203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74320 = { "ee74320", // class name
+ bases_ee74320, 4,
+ &(vtc_ee74320[0]), // expected_vtbl_contents
+ &(vtt_ee74320[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee74320),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74320),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74320),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names174,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd5320 : virtual cc320 {
+ int d;
+ virtual void bar(); // _ZN6dd53203barEv
+ ~dd5320(); // tgen
+ dd5320(); // tgen
+};
+//SIG(-1 dd5320) C1{ VBC2{ VBC3{ BC4{ Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void dd5320 ::bar(){vfunc_called(this, "_ZN6dd53203barEv");}
+dd5320 ::~dd5320(){ note_dtor("dd5320", this);} // tgen
+dd5320 ::dd5320(){ note_ctor("dd5320", this);} // tgen
+
+static void Test_dd5320()
+{
+ extern Class_Descriptor cd_dd5320;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd5320, buf);
+ dd5320 *dp, &lv = *(dp=new (buf) dd5320());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd5320)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5320)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,20), "dd5320");
+ check_base_class_offset(lv, (bb20*)(cc320*), ABISELECT(32,16), "dd5320");
+ check_base_class_offset(lv, (cc320*), ABISELECT(16,8), "dd5320");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5320.d");
+ test_class_info(&lv, &cd_dd5320);
+ dp->~dd5320();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5320(Test_dd5320, "dd5320", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd5320C1Ev();
+extern void _ZN6dd5320D1Ev();
+Name_Map name_map_dd5320[] = {
+ NSPAIR(_ZN6dd5320C1Ev),
+ NSPAIR(_ZN6dd5320D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc320;
+extern VTBL_ENTRY _ZTI5cc320[];
+extern VTBL_ENTRY _ZTV5cc320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc320[];
+static Base_Class bases_dd5320[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc320, 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 _ZTI6dd5320[];
+extern void _ZN6dd53203barEv();
+extern void _ZN5cc3203fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd5320[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5320[0]),
+ (VTBL_ENTRY)&_ZN6dd53203barEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd5320[];
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc320__6dd5320[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc320__6dd5320[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+static VTT_ENTRY vtt_dd5320[] = {
+ {&(_ZTV6dd5320[4]), 4,14},
+ {&(_ZTV6dd5320[9]), 9,14},
+ {&(_ZTV6dd5320[13]), 13,14},
+ {&(_tg__ZTV5cc320__6dd5320[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc320__6dd5320[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd5320[];
+extern VTBL_ENTRY _ZTV6dd5320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5320[];
+static VTBL_ENTRY alt_thunk_names175[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5320 = { "dd5320", // class name
+ bases_dd5320, 3,
+ &(vtc_dd5320[0]), // expected_vtbl_contents
+ &(vtt_dd5320[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd5320),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5320),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5320),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 ee05320 : dd5320 {
+ int e;
+ ~ee05320(); // tgen
+ ee05320(); // tgen
+};
+//SIG(1 ee05320) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v2 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee05320 ::~ee05320(){ note_dtor("ee05320", this);} // tgen
+ee05320 ::ee05320(){ note_ctor("ee05320", this);} // tgen
+
+static void Test_ee05320()
+{
+ extern Class_Descriptor cd_ee05320;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee05320, buf);
+ ee05320 *dp, &lv = *(dp=new (buf) ee05320());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee05320)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05320)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee05320");
+ check_base_class_offset(lv, (bb20*)(cc320*), ABISELECT(32,20), "ee05320");
+ check_base_class_offset(lv, (cc320*)(dd5320*), ABISELECT(16,12), "ee05320");
+ check_base_class_offset(lv, (dd5320*), 0, "ee05320");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05320.e");
+ test_class_info(&lv, &cd_ee05320);
+ dp->~ee05320();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05320(Test_ee05320, "ee05320", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee05320C1Ev();
+extern void _ZN7ee05320D1Ev();
+Name_Map name_map_ee05320[] = {
+ NSPAIR(_ZN7ee05320C1Ev),
+ NSPAIR(_ZN7ee05320D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc320;
+extern VTBL_ENTRY _ZTI5cc320[];
+extern VTBL_ENTRY _ZTV5cc320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc320[];
+extern Class_Descriptor cd_dd5320;
+extern VTBL_ENTRY _ZTI6dd5320[];
+extern VTBL_ENTRY _ZTV6dd5320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5320[];
+static Base_Class bases_ee05320[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc320, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5320, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05320[];
+extern void _ZN6dd53203barEv();
+extern void _ZN5cc3203fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee05320[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05320[0]),
+ (VTBL_ENTRY)&_ZN6dd53203barEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee05320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee05320[];
+extern void _ZN6dd53203barEv();
+static VTBL_ENTRY _tg__ZTV6dd5320__7ee05320[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5320[0]),
+ (VTBL_ENTRY)&_ZN6dd53203barEv,
+};
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc320__6dd5320__7ee05320[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd5320__7ee05320[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc320__7ee05320[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc320__7ee05320[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+static VTT_ENTRY vtt_ee05320[] = {
+ {&(_ZTV7ee05320[4]), 4,14},
+ {&(_tg__ZTV6dd5320__7ee05320[4]), 4,5},
+ {&(_tg__ZTV5cc320__6dd5320__7ee05320[4]), 4,5},
+ {&(_tg__ZTV4bb20__6dd5320__7ee05320[3]), 3,4},
+ {&(_ZTV7ee05320[9]), 9,14},
+ {&(_ZTV7ee05320[13]), 13,14},
+ {&(_tg__ZTV5cc320__7ee05320[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc320__7ee05320[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee05320[];
+extern VTBL_ENTRY _ZTV7ee05320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05320[];
+static VTBL_ENTRY alt_thunk_names176[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05320 = { "ee05320", // class name
+ bases_ee05320, 4,
+ &(vtc_ee05320[0]), // expected_vtbl_contents
+ &(vtt_ee05320[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee05320),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05320),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05320),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names176,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee15320 : virtual dd5320 {
+ int e;
+ ~ee15320(); // tgen
+ ee15320(); // tgen
+};
+//SIG(1 ee15320) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v2 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee15320 ::~ee15320(){ note_dtor("ee15320", this);} // tgen
+ee15320 ::ee15320(){ note_ctor("ee15320", this);} // tgen
+
+static void Test_ee15320()
+{
+ extern Class_Descriptor cd_ee15320;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee15320, buf);
+ ee15320 *dp, &lv = *(dp=new (buf) ee15320());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee15320)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15320)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(56,28), "ee15320");
+ check_base_class_offset(lv, (bb20*)(cc320*), ABISELECT(48,24), "ee15320");
+ check_base_class_offset(lv, (cc320*)(dd5320*), ABISELECT(32,16), "ee15320");
+ check_base_class_offset(lv, (dd5320*), ABISELECT(16,8), "ee15320");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15320.e");
+ test_class_info(&lv, &cd_ee15320);
+ dp->~ee15320();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15320(Test_ee15320, "ee15320", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee15320C1Ev();
+extern void _ZN7ee15320D1Ev();
+Name_Map name_map_ee15320[] = {
+ NSPAIR(_ZN7ee15320C1Ev),
+ NSPAIR(_ZN7ee15320D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc320;
+extern VTBL_ENTRY _ZTI5cc320[];
+extern VTBL_ENTRY _ZTV5cc320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc320[];
+extern Class_Descriptor cd_dd5320;
+extern VTBL_ENTRY _ZTI6dd5320[];
+extern VTBL_ENTRY _ZTV6dd5320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5320[];
+static Base_Class bases_ee15320[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(56,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(48,24), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc320, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5320, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee15320[];
+extern void _ZN6dd53203barEv();
+extern void _ZN5cc3203fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee15320[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15320[0]),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15320[0]),
+ (VTBL_ENTRY)&_ZN6dd53203barEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee15320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee15320[];
+extern void _ZN6dd53203barEv();
+static VTBL_ENTRY _tg__ZTV6dd5320__7ee15320[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5320[0]),
+ (VTBL_ENTRY)&_ZN6dd53203barEv,
+};
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc320__6dd5320__7ee15320[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd5320__7ee15320[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc320__7ee15320[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc320__7ee15320[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+static VTT_ENTRY vtt_ee15320[] = {
+ {&(_ZTV7ee15320[5]), 5,20},
+ {&(_ZTV7ee15320[10]), 10,20},
+ {&(_ZTV7ee15320[15]), 15,20},
+ {&(_ZTV7ee15320[19]), 19,20},
+ {&(_tg__ZTV6dd5320__7ee15320[4]), 4,5},
+ {&(_tg__ZTV5cc320__6dd5320__7ee15320[4]), 4,5},
+ {&(_tg__ZTV4bb20__6dd5320__7ee15320[3]), 3,4},
+ {&(_tg__ZTV5cc320__7ee15320[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc320__7ee15320[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee15320[];
+extern VTBL_ENTRY _ZTV7ee15320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15320[];
+static VTBL_ENTRY alt_thunk_names177[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15320 = { "ee15320", // class name
+ bases_ee15320, 4,
+ &(vtc_ee15320[0]), // expected_vtbl_contents
+ &(vtt_ee15320[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee15320),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15320),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15320),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names177,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee25320 : dd5320 {
+ int e;
+ virtual void foo(); // _ZN7ee253203fooEv
+ ~ee25320(); // tgen
+ ee25320(); // tgen
+};
+//SIG(1 ee25320) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v1 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee25320 ::foo(){vfunc_called(this, "_ZN7ee253203fooEv");}
+ee25320 ::~ee25320(){ note_dtor("ee25320", this);} // tgen
+ee25320 ::ee25320(){ note_ctor("ee25320", this);} // tgen
+
+static void Test_ee25320()
+{
+ extern Class_Descriptor cd_ee25320;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee25320, buf);
+ ee25320 *dp, &lv = *(dp=new (buf) ee25320());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee25320)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25320)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee25320");
+ check_base_class_offset(lv, (bb20*)(cc320*), ABISELECT(32,20), "ee25320");
+ check_base_class_offset(lv, (cc320*)(dd5320*), ABISELECT(16,12), "ee25320");
+ check_base_class_offset(lv, (dd5320*), 0, "ee25320");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25320.e");
+ test_class_info(&lv, &cd_ee25320);
+ dp->~ee25320();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25320(Test_ee25320, "ee25320", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee25320C1Ev();
+extern void _ZN7ee25320D1Ev();
+Name_Map name_map_ee25320[] = {
+ NSPAIR(_ZN7ee25320C1Ev),
+ NSPAIR(_ZN7ee25320D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc320;
+extern VTBL_ENTRY _ZTI5cc320[];
+extern VTBL_ENTRY _ZTV5cc320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc320[];
+extern Class_Descriptor cd_dd5320;
+extern VTBL_ENTRY _ZTI6dd5320[];
+extern VTBL_ENTRY _ZTV6dd5320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5320[];
+static Base_Class bases_ee25320[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc320, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5320, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25320[];
+extern void _ZN6dd53203barEv();
+extern void _ZN7ee253203fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee253203fooEv,_ZTv0_n16_N7ee253203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee253203fooEv,_ZThn12_N7ee253203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee253203fooEv,_ZTv0_n12_N7ee253203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee253203fooEv,_ZThn20_N7ee253203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25320[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25320[0]),
+ (VTBL_ENTRY)&_ZN6dd53203barEv,
+ (VTBL_ENTRY)&_ZN7ee253203fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee253203fooEv,_ZTv0_n16_N7ee253203fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee25320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee253203fooEv,_ZTv0_n12_N7ee253203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee25320[];
+extern void _ZN6dd53203barEv();
+static VTBL_ENTRY _tg__ZTV6dd5320__7ee25320[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5320[0]),
+ (VTBL_ENTRY)&_ZN6dd53203barEv,
+};
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc320__6dd5320__7ee25320[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd5320__7ee25320[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc320__7ee25320[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc320__7ee25320[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+static VTT_ENTRY vtt_ee25320[] = {
+ {&(_ZTV7ee25320[4]), 4,15},
+ {&(_tg__ZTV6dd5320__7ee25320[4]), 4,5},
+ {&(_tg__ZTV5cc320__6dd5320__7ee25320[4]), 4,5},
+ {&(_tg__ZTV4bb20__6dd5320__7ee25320[3]), 3,4},
+ {&(_ZTV7ee25320[10]), 10,15},
+ {&(_ZTV7ee25320[14]), 14,15},
+ {&(_tg__ZTV5cc320__7ee25320[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc320__7ee25320[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee25320[];
+extern VTBL_ENTRY _ZTV7ee25320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25320[];
+static VTBL_ENTRY alt_thunk_names178[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee253203fooEv,_ZTv0_n12_N7ee253203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee253203fooEv,_ZThn20_N7ee253203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee253203fooEv,_ZTv0_n16_N7ee253203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee253203fooEv,_ZThn12_N7ee253203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25320 = { "ee25320", // class name
+ bases_ee25320, 4,
+ &(vtc_ee25320[0]), // expected_vtbl_contents
+ &(vtt_ee25320[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee25320),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25320),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25320),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names178,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee35320 : virtual dd5320 {
+ int e;
+ virtual void foo(); // _ZN7ee353203fooEv
+ ~ee35320(); // tgen
+ ee35320(); // tgen
+};
+//SIG(1 ee35320) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v1 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee35320 ::foo(){vfunc_called(this, "_ZN7ee353203fooEv");}
+ee35320 ::~ee35320(){ note_dtor("ee35320", this);} // tgen
+ee35320 ::ee35320(){ note_ctor("ee35320", this);} // tgen
+
+static void Test_ee35320()
+{
+ extern Class_Descriptor cd_ee35320;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee35320, buf);
+ ee35320 *dp, &lv = *(dp=new (buf) ee35320());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee35320)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35320)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(56,28), "ee35320");
+ check_base_class_offset(lv, (bb20*)(cc320*), ABISELECT(48,24), "ee35320");
+ check_base_class_offset(lv, (cc320*)(dd5320*), ABISELECT(32,16), "ee35320");
+ check_base_class_offset(lv, (dd5320*), ABISELECT(16,8), "ee35320");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35320.e");
+ test_class_info(&lv, &cd_ee35320);
+ dp->~ee35320();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35320(Test_ee35320, "ee35320", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee35320C1Ev();
+extern void _ZN7ee35320D1Ev();
+Name_Map name_map_ee35320[] = {
+ NSPAIR(_ZN7ee35320C1Ev),
+ NSPAIR(_ZN7ee35320D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc320;
+extern VTBL_ENTRY _ZTI5cc320[];
+extern VTBL_ENTRY _ZTV5cc320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc320[];
+extern Class_Descriptor cd_dd5320;
+extern VTBL_ENTRY _ZTI6dd5320[];
+extern VTBL_ENTRY _ZTV6dd5320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5320[];
+static Base_Class bases_ee35320[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(56,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc320, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5320, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee35320[];
+extern void _ZN7ee353203fooEv();
+extern void _ZN6dd53203barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee353203fooEv,_ZTv0_n16_N7ee353203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee353203fooEv,_ZThn16_N7ee353203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee353203fooEv,_ZTv0_n12_N7ee353203fooEv)();
+extern void ABISELECT(_ZThn48_N7ee353203fooEv,_ZThn24_N7ee353203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35320[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35320[0]),
+ (VTBL_ENTRY)&_ZN7ee353203fooEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35320[0]),
+ (VTBL_ENTRY)&_ZN6dd53203barEv,
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee353203fooEv,_ZTv0_n16_N7ee353203fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee35320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee353203fooEv,_ZTv0_n12_N7ee353203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee35320[];
+extern void _ZN6dd53203barEv();
+static VTBL_ENTRY _tg__ZTV6dd5320__7ee35320[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5320[0]),
+ (VTBL_ENTRY)&_ZN6dd53203barEv,
+};
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc320__6dd5320__7ee35320[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd5320__7ee35320[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc320__7ee35320[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc320__7ee35320[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+static VTT_ENTRY vtt_ee35320[] = {
+ {&(_ZTV7ee35320[5]), 5,21},
+ {&(_ZTV7ee35320[11]), 11,21},
+ {&(_ZTV7ee35320[16]), 16,21},
+ {&(_ZTV7ee35320[20]), 20,21},
+ {&(_tg__ZTV6dd5320__7ee35320[4]), 4,5},
+ {&(_tg__ZTV5cc320__6dd5320__7ee35320[4]), 4,5},
+ {&(_tg__ZTV4bb20__6dd5320__7ee35320[3]), 3,4},
+ {&(_tg__ZTV5cc320__7ee35320[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc320__7ee35320[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee35320[];
+extern VTBL_ENTRY _ZTV7ee35320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35320[];
+static VTBL_ENTRY alt_thunk_names179[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee353203fooEv,_ZTv0_n12_N7ee353203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee353203fooEv,_ZThn24_N7ee353203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee353203fooEv,_ZTv0_n16_N7ee353203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee353203fooEv,_ZThn16_N7ee353203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35320 = { "ee35320", // class name
+ bases_ee35320, 4,
+ &(vtc_ee35320[0]), // expected_vtbl_contents
+ &(vtt_ee35320[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee35320),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35320),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35320),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names179,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee45320 : dd5320 {
+ int e;
+ virtual void bar(); // _ZN7ee453203barEv
+ ~ee45320(); // tgen
+ ee45320(); // tgen
+};
+//SIG(1 ee45320) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v2 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee45320 ::bar(){vfunc_called(this, "_ZN7ee453203barEv");}
+ee45320 ::~ee45320(){ note_dtor("ee45320", this);} // tgen
+ee45320 ::ee45320(){ note_ctor("ee45320", this);} // tgen
+
+static void Test_ee45320()
+{
+ extern Class_Descriptor cd_ee45320;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee45320, buf);
+ ee45320 *dp, &lv = *(dp=new (buf) ee45320());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee45320)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45320)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee45320");
+ check_base_class_offset(lv, (bb20*)(cc320*), ABISELECT(32,20), "ee45320");
+ check_base_class_offset(lv, (cc320*)(dd5320*), ABISELECT(16,12), "ee45320");
+ check_base_class_offset(lv, (dd5320*), 0, "ee45320");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45320.e");
+ test_class_info(&lv, &cd_ee45320);
+ dp->~ee45320();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45320(Test_ee45320, "ee45320", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee45320C1Ev();
+extern void _ZN7ee45320D1Ev();
+Name_Map name_map_ee45320[] = {
+ NSPAIR(_ZN7ee45320C1Ev),
+ NSPAIR(_ZN7ee45320D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc320;
+extern VTBL_ENTRY _ZTI5cc320[];
+extern VTBL_ENTRY _ZTV5cc320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc320[];
+extern Class_Descriptor cd_dd5320;
+extern VTBL_ENTRY _ZTI6dd5320[];
+extern VTBL_ENTRY _ZTV6dd5320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5320[];
+static Base_Class bases_ee45320[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc320, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5320, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45320[];
+extern void _ZN7ee453203barEv();
+extern void _ZN5cc3203fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee45320[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45320[0]),
+ (VTBL_ENTRY)&_ZN7ee453203barEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee45320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee45320[];
+extern void _ZN6dd53203barEv();
+static VTBL_ENTRY _tg__ZTV6dd5320__7ee45320[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5320[0]),
+ (VTBL_ENTRY)&_ZN6dd53203barEv,
+};
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc320__6dd5320__7ee45320[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd5320__7ee45320[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc320__7ee45320[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc320__7ee45320[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+static VTT_ENTRY vtt_ee45320[] = {
+ {&(_ZTV7ee45320[4]), 4,14},
+ {&(_tg__ZTV6dd5320__7ee45320[4]), 4,5},
+ {&(_tg__ZTV5cc320__6dd5320__7ee45320[4]), 4,5},
+ {&(_tg__ZTV4bb20__6dd5320__7ee45320[3]), 3,4},
+ {&(_ZTV7ee45320[9]), 9,14},
+ {&(_ZTV7ee45320[13]), 13,14},
+ {&(_tg__ZTV5cc320__7ee45320[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc320__7ee45320[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee45320[];
+extern VTBL_ENTRY _ZTV7ee45320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45320[];
+static VTBL_ENTRY alt_thunk_names180[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45320 = { "ee45320", // class name
+ bases_ee45320, 4,
+ &(vtc_ee45320[0]), // expected_vtbl_contents
+ &(vtt_ee45320[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee45320),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45320),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45320),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names180,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee55320 : virtual dd5320 {
+ int e;
+ virtual void bar(); // _ZN7ee553203barEv
+ ~ee55320(); // tgen
+ ee55320(); // tgen
+};
+//SIG(1 ee55320) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v2 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee55320 ::bar(){vfunc_called(this, "_ZN7ee553203barEv");}
+ee55320 ::~ee55320(){ note_dtor("ee55320", this);} // tgen
+ee55320 ::ee55320(){ note_ctor("ee55320", this);} // tgen
+
+static void Test_ee55320()
+{
+ extern Class_Descriptor cd_ee55320;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee55320, buf);
+ ee55320 *dp, &lv = *(dp=new (buf) ee55320());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee55320)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55320)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(56,28), "ee55320");
+ check_base_class_offset(lv, (bb20*)(cc320*), ABISELECT(48,24), "ee55320");
+ check_base_class_offset(lv, (cc320*)(dd5320*), ABISELECT(32,16), "ee55320");
+ check_base_class_offset(lv, (dd5320*), ABISELECT(16,8), "ee55320");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55320.e");
+ test_class_info(&lv, &cd_ee55320);
+ dp->~ee55320();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55320(Test_ee55320, "ee55320", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee55320C1Ev();
+extern void _ZN7ee55320D1Ev();
+Name_Map name_map_ee55320[] = {
+ NSPAIR(_ZN7ee55320C1Ev),
+ NSPAIR(_ZN7ee55320D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc320;
+extern VTBL_ENTRY _ZTI5cc320[];
+extern VTBL_ENTRY _ZTV5cc320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc320[];
+extern Class_Descriptor cd_dd5320;
+extern VTBL_ENTRY _ZTI6dd5320[];
+extern VTBL_ENTRY _ZTV6dd5320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5320[];
+static Base_Class bases_ee55320[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(56,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc320, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5320, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee55320[];
+extern void _ZN7ee553203barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee553203barEv,_ZTv0_n20_N7ee553203barEv)();
+extern void ABISELECT(_ZThn16_N7ee553203barEv,_ZThn8_N7ee553203barEv)() __attribute__((weak));
+extern void _ZN5cc3203fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee55320[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55320[0]),
+ (VTBL_ENTRY)&_ZN7ee553203barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee553203barEv,_ZTv0_n20_N7ee553203barEv),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee55320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee55320[];
+extern void _ZN6dd53203barEv();
+static VTBL_ENTRY _tg__ZTV6dd5320__7ee55320[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5320[0]),
+ (VTBL_ENTRY)&_ZN6dd53203barEv,
+};
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc320__6dd5320__7ee55320[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd5320__7ee55320[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc320__7ee55320[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc320__7ee55320[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+static VTT_ENTRY vtt_ee55320[] = {
+ {&(_ZTV7ee55320[5]), 5,21},
+ {&(_ZTV7ee55320[11]), 11,21},
+ {&(_ZTV7ee55320[16]), 16,21},
+ {&(_ZTV7ee55320[20]), 20,21},
+ {&(_tg__ZTV6dd5320__7ee55320[4]), 4,5},
+ {&(_tg__ZTV5cc320__6dd5320__7ee55320[4]), 4,5},
+ {&(_tg__ZTV4bb20__6dd5320__7ee55320[3]), 3,4},
+ {&(_tg__ZTV5cc320__7ee55320[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc320__7ee55320[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee55320[];
+extern VTBL_ENTRY _ZTV7ee55320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55320[];
+static VTBL_ENTRY alt_thunk_names181[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee553203barEv,_ZTv0_n20_N7ee553203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee553203barEv,_ZThn8_N7ee553203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55320 = { "ee55320", // class name
+ bases_ee55320, 4,
+ &(vtc_ee55320[0]), // expected_vtbl_contents
+ &(vtt_ee55320[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee55320),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55320),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55320),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names181,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee65320 : dd5320 {
+ int e;
+ virtual void foo(); // _ZN7ee653203fooEv
+ virtual void bar(); // _ZN7ee653203barEv
+ ~ee65320(); // tgen
+ ee65320(); // tgen
+};
+//SIG(1 ee65320) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v1 Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65320 ::foo(){vfunc_called(this, "_ZN7ee653203fooEv");}
+void ee65320 ::bar(){vfunc_called(this, "_ZN7ee653203barEv");}
+ee65320 ::~ee65320(){ note_dtor("ee65320", this);} // tgen
+ee65320 ::ee65320(){ note_ctor("ee65320", this);} // tgen
+
+static void Test_ee65320()
+{
+ extern Class_Descriptor cd_ee65320;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee65320, buf);
+ ee65320 *dp, &lv = *(dp=new (buf) ee65320());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee65320)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65320)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee65320");
+ check_base_class_offset(lv, (bb20*)(cc320*), ABISELECT(32,20), "ee65320");
+ check_base_class_offset(lv, (cc320*)(dd5320*), ABISELECT(16,12), "ee65320");
+ check_base_class_offset(lv, (dd5320*), 0, "ee65320");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65320.e");
+ test_class_info(&lv, &cd_ee65320);
+ dp->~ee65320();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65320(Test_ee65320, "ee65320", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee65320C1Ev();
+extern void _ZN7ee65320D1Ev();
+Name_Map name_map_ee65320[] = {
+ NSPAIR(_ZN7ee65320C1Ev),
+ NSPAIR(_ZN7ee65320D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc320;
+extern VTBL_ENTRY _ZTI5cc320[];
+extern VTBL_ENTRY _ZTV5cc320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc320[];
+extern Class_Descriptor cd_dd5320;
+extern VTBL_ENTRY _ZTI6dd5320[];
+extern VTBL_ENTRY _ZTV6dd5320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5320[];
+static Base_Class bases_ee65320[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc320, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5320, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65320[];
+extern void _ZN7ee653203barEv();
+extern void _ZN7ee653203fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee653203fooEv,_ZTv0_n16_N7ee653203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee653203fooEv,_ZThn12_N7ee653203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee653203fooEv,_ZTv0_n12_N7ee653203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee653203fooEv,_ZThn20_N7ee653203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65320[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65320[0]),
+ (VTBL_ENTRY)&_ZN7ee653203barEv,
+ (VTBL_ENTRY)&_ZN7ee653203fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee653203fooEv,_ZTv0_n16_N7ee653203fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee65320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee653203fooEv,_ZTv0_n12_N7ee653203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee65320[];
+extern void _ZN6dd53203barEv();
+static VTBL_ENTRY _tg__ZTV6dd5320__7ee65320[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5320[0]),
+ (VTBL_ENTRY)&_ZN6dd53203barEv,
+};
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc320__6dd5320__7ee65320[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd5320__7ee65320[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc320__7ee65320[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc320__7ee65320[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+static VTT_ENTRY vtt_ee65320[] = {
+ {&(_ZTV7ee65320[4]), 4,15},
+ {&(_tg__ZTV6dd5320__7ee65320[4]), 4,5},
+ {&(_tg__ZTV5cc320__6dd5320__7ee65320[4]), 4,5},
+ {&(_tg__ZTV4bb20__6dd5320__7ee65320[3]), 3,4},
+ {&(_ZTV7ee65320[10]), 10,15},
+ {&(_ZTV7ee65320[14]), 14,15},
+ {&(_tg__ZTV5cc320__7ee65320[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc320__7ee65320[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee65320[];
+extern VTBL_ENTRY _ZTV7ee65320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65320[];
+static VTBL_ENTRY alt_thunk_names182[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee653203fooEv,_ZTv0_n12_N7ee653203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee653203fooEv,_ZThn20_N7ee653203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee653203fooEv,_ZTv0_n16_N7ee653203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee653203fooEv,_ZThn12_N7ee653203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65320 = { "ee65320", // class name
+ bases_ee65320, 4,
+ &(vtc_ee65320[0]), // expected_vtbl_contents
+ &(vtt_ee65320[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee65320),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65320),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65320),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names182,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee75320 : virtual dd5320 {
+ int e;
+ virtual void foo(); // _ZN7ee753203fooEv
+ virtual void bar(); // _ZN7ee753203barEv
+ ~ee75320(); // tgen
+ ee75320(); // tgen
+};
+//SIG(1 ee75320) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v1 Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75320 ::foo(){vfunc_called(this, "_ZN7ee753203fooEv");}
+void ee75320 ::bar(){vfunc_called(this, "_ZN7ee753203barEv");}
+ee75320 ::~ee75320(){ note_dtor("ee75320", this);} // tgen
+ee75320 ::ee75320(){ note_ctor("ee75320", this);} // tgen
+
+static void Test_ee75320()
+{
+ extern Class_Descriptor cd_ee75320;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee75320, buf);
+ ee75320 *dp, &lv = *(dp=new (buf) ee75320());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee75320)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75320)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(56,28), "ee75320");
+ check_base_class_offset(lv, (bb20*)(cc320*), ABISELECT(48,24), "ee75320");
+ check_base_class_offset(lv, (cc320*)(dd5320*), ABISELECT(32,16), "ee75320");
+ check_base_class_offset(lv, (dd5320*), ABISELECT(16,8), "ee75320");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75320.e");
+ test_class_info(&lv, &cd_ee75320);
+ dp->~ee75320();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75320(Test_ee75320, "ee75320", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee75320C1Ev();
+extern void _ZN7ee75320D1Ev();
+Name_Map name_map_ee75320[] = {
+ NSPAIR(_ZN7ee75320C1Ev),
+ NSPAIR(_ZN7ee75320D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc320;
+extern VTBL_ENTRY _ZTI5cc320[];
+extern VTBL_ENTRY _ZTV5cc320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc320[];
+extern Class_Descriptor cd_dd5320;
+extern VTBL_ENTRY _ZTI6dd5320[];
+extern VTBL_ENTRY _ZTV6dd5320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5320[];
+static Base_Class bases_ee75320[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(56,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc320, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5320, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee75320[];
+extern void _ZN7ee753203fooEv();
+extern void _ZN7ee753203barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee753203barEv,_ZTv0_n20_N7ee753203barEv)();
+extern void ABISELECT(_ZThn16_N7ee753203barEv,_ZThn8_N7ee753203barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee753203fooEv,_ZTv0_n16_N7ee753203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee753203fooEv,_ZThn16_N7ee753203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee753203fooEv,_ZTv0_n12_N7ee753203fooEv)();
+extern void ABISELECT(_ZThn48_N7ee753203fooEv,_ZThn24_N7ee753203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75320[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75320[0]),
+ (VTBL_ENTRY)&_ZN7ee753203fooEv,
+ (VTBL_ENTRY)&_ZN7ee753203barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee753203barEv,_ZTv0_n20_N7ee753203barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee753203fooEv,_ZTv0_n16_N7ee753203fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee75320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee753203fooEv,_ZTv0_n12_N7ee753203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee75320[];
+extern void _ZN6dd53203barEv();
+static VTBL_ENTRY _tg__ZTV6dd5320__7ee75320[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5320[0]),
+ (VTBL_ENTRY)&_ZN6dd53203barEv,
+};
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc320__6dd5320__7ee75320[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd5320__7ee75320[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc320__7ee75320[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc320__7ee75320[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+static VTT_ENTRY vtt_ee75320[] = {
+ {&(_ZTV7ee75320[5]), 5,22},
+ {&(_ZTV7ee75320[12]), 12,22},
+ {&(_ZTV7ee75320[17]), 17,22},
+ {&(_ZTV7ee75320[21]), 21,22},
+ {&(_tg__ZTV6dd5320__7ee75320[4]), 4,5},
+ {&(_tg__ZTV5cc320__6dd5320__7ee75320[4]), 4,5},
+ {&(_tg__ZTV4bb20__6dd5320__7ee75320[3]), 3,4},
+ {&(_tg__ZTV5cc320__7ee75320[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc320__7ee75320[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee75320[];
+extern VTBL_ENTRY _ZTV7ee75320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75320[];
+static VTBL_ENTRY alt_thunk_names183[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee753203fooEv,_ZTv0_n12_N7ee753203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee753203fooEv,_ZThn24_N7ee753203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee753203fooEv,_ZTv0_n16_N7ee753203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee753203fooEv,_ZThn16_N7ee753203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee753203barEv,_ZTv0_n20_N7ee753203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee753203barEv,_ZThn8_N7ee753203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75320 = { "ee75320", // class name
+ bases_ee75320, 4,
+ &(vtc_ee75320[0]), // expected_vtbl_contents
+ &(vtt_ee75320[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee75320),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75320),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75320),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names183,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd6320 : cc320 {
+ int d;
+ virtual void bar(); // _ZN6dd63203barEv
+ virtual void foo(); // _ZN6dd63203fooEv
+ ~dd6320(); // tgen
+ dd6320(); // tgen
+};
+//SIG(-1 dd6320) C1{ BC2{ VBC3{ BC4{ Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void dd6320 ::bar(){vfunc_called(this, "_ZN6dd63203barEv");}
+void dd6320 ::foo(){vfunc_called(this, "_ZN6dd63203fooEv");}
+dd6320 ::~dd6320(){ note_dtor("dd6320", this);} // tgen
+dd6320 ::dd6320(){ note_ctor("dd6320", this);} // tgen
+
+static void Test_dd6320()
+{
+ extern Class_Descriptor cd_dd6320;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd6320, buf);
+ dd6320 *dp, &lv = *(dp=new (buf) dd6320());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd6320)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6320)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(24,16), "dd6320");
+ check_base_class_offset(lv, (bb20*)(cc320*), ABISELECT(16,12), "dd6320");
+ check_base_class_offset(lv, (cc320*), 0, "dd6320");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd6320.d");
+ test_class_info(&lv, &cd_dd6320);
+ dp->~dd6320();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6320(Test_dd6320, "dd6320", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd6320C1Ev();
+extern void _ZN6dd6320D1Ev();
+Name_Map name_map_dd6320[] = {
+ NSPAIR(_ZN6dd6320C1Ev),
+ NSPAIR(_ZN6dd6320D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc320;
+extern VTBL_ENTRY _ZTI5cc320[];
+extern VTBL_ENTRY _ZTV5cc320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc320[];
+static Base_Class bases_dd6320[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc320, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd6320[];
+extern void _ZN6dd63203fooEv();
+extern void _ZN6dd63203barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd63203fooEv,_ZTv0_n12_N6dd63203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd63203fooEv,_ZThn12_N6dd63203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd6320[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6320[0]),
+ (VTBL_ENTRY)&_ZN6dd63203fooEv,
+ (VTBL_ENTRY)&_ZN6dd63203barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63203fooEv,_ZTv0_n12_N6dd63203fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd6320[];
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc320__6dd6320[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn12_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc320__6dd6320[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+static VTT_ENTRY vtt_dd6320[] = {
+ {&(_ZTV6dd6320[3]), 3,9},
+ {&(_tg__ZTV5cc320__6dd6320[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc320__6dd6320[3]), 3,4},
+ {&(_ZTV6dd6320[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI6dd6320[];
+extern VTBL_ENTRY _ZTV6dd6320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6320[];
+static VTBL_ENTRY alt_thunk_names184[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn12_N5cc3203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63203fooEv,_ZTv0_n12_N6dd63203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63203fooEv,_ZThn12_N6dd63203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd6320 = { "dd6320", // class name
+ bases_dd6320, 3,
+ &(vtc_dd6320[0]), // expected_vtbl_contents
+ &(vtt_dd6320[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd6320),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6320),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd6320),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 ee06320 : dd6320 {
+ int e;
+ ~ee06320(); // tgen
+ ee06320(); // tgen
+};
+//SIG(1 ee06320) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v2 Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee06320 ::~ee06320(){ note_dtor("ee06320", this);} // tgen
+ee06320 ::ee06320(){ note_ctor("ee06320", this);} // tgen
+
+static void Test_ee06320()
+{
+ extern Class_Descriptor cd_ee06320;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee06320, buf);
+ ee06320 *dp, &lv = *(dp=new (buf) ee06320());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee06320)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06320)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(32,20), "ee06320");
+ check_base_class_offset(lv, (bb20*)(cc320*)(dd6320*), ABISELECT(24,16), "ee06320");
+ check_base_class_offset(lv, (cc320*)(dd6320*), 0, "ee06320");
+ check_base_class_offset(lv, (dd6320*), 0, "ee06320");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee06320.e");
+ test_class_info(&lv, &cd_ee06320);
+ dp->~ee06320();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06320(Test_ee06320, "ee06320", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee06320C1Ev();
+extern void _ZN7ee06320D1Ev();
+Name_Map name_map_ee06320[] = {
+ NSPAIR(_ZN7ee06320C1Ev),
+ NSPAIR(_ZN7ee06320D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc320;
+extern VTBL_ENTRY _ZTI5cc320[];
+extern VTBL_ENTRY _ZTV5cc320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc320[];
+extern Class_Descriptor cd_dd6320;
+extern VTBL_ENTRY _ZTI6dd6320[];
+extern VTBL_ENTRY _ZTV6dd6320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6320[];
+static Base_Class bases_ee06320[] = {
+ // 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_bb20, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc320, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6320, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee06320[];
+extern void _ZN6dd63203fooEv();
+extern void _ZN6dd63203barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd63203fooEv,_ZTv0_n12_N6dd63203fooEv)();
+extern void ABISELECT(_ZThn24_N6dd63203fooEv,_ZThn16_N6dd63203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee06320[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06320[0]),
+ (VTBL_ENTRY)&_ZN6dd63203fooEv,
+ (VTBL_ENTRY)&_ZN6dd63203barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee06320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63203fooEv,_ZTv0_n12_N6dd63203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee06320[];
+extern void _ZN6dd63203fooEv();
+extern void _ZN6dd63203barEv();
+static VTBL_ENTRY _tg__ZTV6dd6320__7ee06320[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6320[0]),
+ (VTBL_ENTRY)&_ZN6dd63203fooEv,
+ (VTBL_ENTRY)&_ZN6dd63203barEv,
+};
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3206dd6320__7ee06320[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3203fooEv,_ZThn16_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc3206dd6320__7ee06320[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd63203fooEv,_ZTv0_n12_N6dd63203fooEv)();
+extern void ABISELECT(_ZThn24_N6dd63203fooEv,_ZThn16_N6dd63203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd6320__7ee06320[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63203fooEv,_ZTv0_n12_N6dd63203fooEv),
+};
+static VTT_ENTRY vtt_ee06320[] = {
+ {&(_ZTV7ee06320[3]), 3,9},
+ {&(_tg__ZTV6dd6320__7ee06320[3]), 3,5},
+ {&(_tg__ZTV5cc3206dd6320__7ee06320[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc3206dd6320__7ee06320[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd6320__7ee06320[3]), 3,4},
+ {&(_ZTV7ee06320[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee06320[];
+extern VTBL_ENTRY _ZTV7ee06320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee06320[];
+static VTBL_ENTRY alt_thunk_names185[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3203fooEv,_ZThn16_N5cc3203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63203fooEv,_ZTv0_n12_N6dd63203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63203fooEv,_ZThn16_N6dd63203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63203fooEv,_ZThn16_N6dd63203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee06320 = { "ee06320", // class name
+ bases_ee06320, 4,
+ &(vtc_ee06320[0]), // expected_vtbl_contents
+ &(vtt_ee06320[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee06320),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06320),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee06320),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names185,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee16320 : virtual dd6320 {
+ int e;
+ ~ee16320(); // tgen
+ ee16320(); // tgen
+};
+//SIG(1 ee16320) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v2 Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee16320 ::~ee16320(){ note_dtor("ee16320", this);} // tgen
+ee16320 ::ee16320(){ note_ctor("ee16320", this);} // tgen
+
+static void Test_ee16320()
+{
+ extern Class_Descriptor cd_ee16320;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee16320, buf);
+ ee16320 *dp, &lv = *(dp=new (buf) ee16320());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee16320)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16320)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee16320");
+ check_base_class_offset(lv, (bb20*)(cc320*)(dd6320*), ABISELECT(32,20), "ee16320");
+ check_base_class_offset(lv, (cc320*)(dd6320*), ABISELECT(16,8), "ee16320");
+ check_base_class_offset(lv, (dd6320*), ABISELECT(16,8), "ee16320");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16320.e");
+ test_class_info(&lv, &cd_ee16320);
+ dp->~ee16320();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16320(Test_ee16320, "ee16320", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee16320C1Ev();
+extern void _ZN7ee16320D1Ev();
+Name_Map name_map_ee16320[] = {
+ NSPAIR(_ZN7ee16320C1Ev),
+ NSPAIR(_ZN7ee16320D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc320;
+extern VTBL_ENTRY _ZTI5cc320[];
+extern VTBL_ENTRY _ZTV5cc320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc320[];
+extern Class_Descriptor cd_dd6320;
+extern VTBL_ENTRY _ZTI6dd6320[];
+extern VTBL_ENTRY _ZTV6dd6320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6320[];
+static Base_Class bases_ee16320[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc320, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6320, 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 _ZTI7ee16320[];
+extern void _ZN6dd63203fooEv();
+extern void _ZN6dd63203barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd63203fooEv,_ZTv0_n12_N6dd63203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd63203fooEv,_ZThn12_N6dd63203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee16320[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16320[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16320[0]),
+ (VTBL_ENTRY)&_ZN6dd63203fooEv,
+ (VTBL_ENTRY)&_ZN6dd63203barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee16320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63203fooEv,_ZTv0_n12_N6dd63203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee16320[];
+extern void _ZN6dd63203fooEv();
+extern void _ZN6dd63203barEv();
+static VTBL_ENTRY _tg__ZTV6dd6320__7ee16320[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6320[0]),
+ (VTBL_ENTRY)&_ZN6dd63203fooEv,
+ (VTBL_ENTRY)&_ZN6dd63203barEv,
+};
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3206dd6320__7ee16320[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn12_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc3206dd6320__7ee16320[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd63203fooEv,_ZTv0_n12_N6dd63203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd63203fooEv,_ZThn12_N6dd63203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd6320__7ee16320[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63203fooEv,_ZTv0_n12_N6dd63203fooEv),
+};
+static VTT_ENTRY vtt_ee16320[] = {
+ {&(_ZTV7ee16320[4]), 4,15},
+ {&(_ZTV7ee16320[9]), 9,15},
+ {&(_ZTV7ee16320[14]), 14,15},
+ {&(_tg__ZTV6dd6320__7ee16320[3]), 3,5},
+ {&(_tg__ZTV5cc3206dd6320__7ee16320[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc3206dd6320__7ee16320[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd6320__7ee16320[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee16320[];
+extern VTBL_ENTRY _ZTV7ee16320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16320[];
+static VTBL_ENTRY alt_thunk_names186[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn12_N5cc3203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63203fooEv,_ZTv0_n12_N6dd63203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63203fooEv,_ZThn12_N6dd63203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63203fooEv,_ZThn12_N6dd63203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee16320 = { "ee16320", // class name
+ bases_ee16320, 4,
+ &(vtc_ee16320[0]), // expected_vtbl_contents
+ &(vtt_ee16320[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee16320),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16320),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16320),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names186,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee26320 : dd6320 {
+ int e;
+ virtual void foo(); // _ZN7ee263203fooEv
+ ~ee26320(); // tgen
+ ee26320(); // tgen
+};
+//SIG(1 ee26320) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v1 Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26320 ::foo(){vfunc_called(this, "_ZN7ee263203fooEv");}
+ee26320 ::~ee26320(){ note_dtor("ee26320", this);} // tgen
+ee26320 ::ee26320(){ note_ctor("ee26320", this);} // tgen
+
+static void Test_ee26320()
+{
+ extern Class_Descriptor cd_ee26320;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee26320, buf);
+ ee26320 *dp, &lv = *(dp=new (buf) ee26320());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee26320)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26320)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(32,20), "ee26320");
+ check_base_class_offset(lv, (bb20*)(cc320*)(dd6320*), ABISELECT(24,16), "ee26320");
+ check_base_class_offset(lv, (cc320*)(dd6320*), 0, "ee26320");
+ check_base_class_offset(lv, (dd6320*), 0, "ee26320");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee26320.e");
+ test_class_info(&lv, &cd_ee26320);
+ dp->~ee26320();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26320(Test_ee26320, "ee26320", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee26320C1Ev();
+extern void _ZN7ee26320D1Ev();
+Name_Map name_map_ee26320[] = {
+ NSPAIR(_ZN7ee26320C1Ev),
+ NSPAIR(_ZN7ee26320D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc320;
+extern VTBL_ENTRY _ZTI5cc320[];
+extern VTBL_ENTRY _ZTV5cc320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc320[];
+extern Class_Descriptor cd_dd6320;
+extern VTBL_ENTRY _ZTI6dd6320[];
+extern VTBL_ENTRY _ZTV6dd6320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6320[];
+static Base_Class bases_ee26320[] = {
+ // 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_bb20, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc320, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6320, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee26320[];
+extern void _ZN7ee263203fooEv();
+extern void _ZN6dd63203barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee263203fooEv,_ZTv0_n12_N7ee263203fooEv)();
+extern void ABISELECT(_ZThn24_N7ee263203fooEv,_ZThn16_N7ee263203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee26320[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26320[0]),
+ (VTBL_ENTRY)&_ZN7ee263203fooEv,
+ (VTBL_ENTRY)&_ZN6dd63203barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee26320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee263203fooEv,_ZTv0_n12_N7ee263203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee26320[];
+extern void _ZN6dd63203fooEv();
+extern void _ZN6dd63203barEv();
+static VTBL_ENTRY _tg__ZTV6dd6320__7ee26320[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6320[0]),
+ (VTBL_ENTRY)&_ZN6dd63203fooEv,
+ (VTBL_ENTRY)&_ZN6dd63203barEv,
+};
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3206dd6320__7ee26320[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3203fooEv,_ZThn16_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc3206dd6320__7ee26320[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd63203fooEv,_ZTv0_n12_N6dd63203fooEv)();
+extern void ABISELECT(_ZThn24_N6dd63203fooEv,_ZThn16_N6dd63203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd6320__7ee26320[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63203fooEv,_ZTv0_n12_N6dd63203fooEv),
+};
+static VTT_ENTRY vtt_ee26320[] = {
+ {&(_ZTV7ee26320[3]), 3,9},
+ {&(_tg__ZTV6dd6320__7ee26320[3]), 3,5},
+ {&(_tg__ZTV5cc3206dd6320__7ee26320[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc3206dd6320__7ee26320[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd6320__7ee26320[3]), 3,4},
+ {&(_ZTV7ee26320[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee26320[];
+extern VTBL_ENTRY _ZTV7ee26320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee26320[];
+static VTBL_ENTRY alt_thunk_names187[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63203fooEv,_ZTv0_n12_N6dd63203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63203fooEv,_ZThn16_N6dd63203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3203fooEv,_ZThn16_N5cc3203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee263203fooEv,_ZTv0_n12_N7ee263203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee263203fooEv,_ZThn16_N7ee263203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee26320 = { "ee26320", // class name
+ bases_ee26320, 4,
+ &(vtc_ee26320[0]), // expected_vtbl_contents
+ &(vtt_ee26320[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee26320),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26320),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee26320),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names187,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee36320 : virtual dd6320 {
+ int e;
+ virtual void foo(); // _ZN7ee363203fooEv
+ ~ee36320(); // tgen
+ ee36320(); // tgen
+};
+//SIG(1 ee36320) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v1 Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36320 ::foo(){vfunc_called(this, "_ZN7ee363203fooEv");}
+ee36320 ::~ee36320(){ note_dtor("ee36320", this);} // tgen
+ee36320 ::ee36320(){ note_ctor("ee36320", this);} // tgen
+
+static void Test_ee36320()
+{
+ extern Class_Descriptor cd_ee36320;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee36320, buf);
+ ee36320 *dp, &lv = *(dp=new (buf) ee36320());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee36320)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36320)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee36320");
+ check_base_class_offset(lv, (bb20*)(cc320*)(dd6320*), ABISELECT(32,20), "ee36320");
+ check_base_class_offset(lv, (cc320*)(dd6320*), ABISELECT(16,8), "ee36320");
+ check_base_class_offset(lv, (dd6320*), ABISELECT(16,8), "ee36320");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36320.e");
+ test_class_info(&lv, &cd_ee36320);
+ dp->~ee36320();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36320(Test_ee36320, "ee36320", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee36320C1Ev();
+extern void _ZN7ee36320D1Ev();
+Name_Map name_map_ee36320[] = {
+ NSPAIR(_ZN7ee36320C1Ev),
+ NSPAIR(_ZN7ee36320D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc320;
+extern VTBL_ENTRY _ZTI5cc320[];
+extern VTBL_ENTRY _ZTV5cc320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc320[];
+extern Class_Descriptor cd_dd6320;
+extern VTBL_ENTRY _ZTI6dd6320[];
+extern VTBL_ENTRY _ZTV6dd6320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6320[];
+static Base_Class bases_ee36320[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc320, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6320, 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 _ZTI7ee36320[];
+extern void _ZN7ee363203fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee363203fooEv,_ZTv0_n16_N7ee363203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee363203fooEv,_ZThn8_N7ee363203fooEv)() __attribute__((weak));
+extern void _ZN6dd63203barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee363203fooEv,_ZTv0_n12_N7ee363203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee363203fooEv,_ZThn20_N7ee363203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee36320[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36320[0]),
+ (VTBL_ENTRY)&_ZN7ee363203fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee363203fooEv,_ZTv0_n16_N7ee363203fooEv),
+ (VTBL_ENTRY)&_ZN6dd63203barEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee36320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee363203fooEv,_ZTv0_n12_N7ee363203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee36320[];
+extern void _ZN6dd63203fooEv();
+extern void _ZN6dd63203barEv();
+static VTBL_ENTRY _tg__ZTV6dd6320__7ee36320[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6320[0]),
+ (VTBL_ENTRY)&_ZN6dd63203fooEv,
+ (VTBL_ENTRY)&_ZN6dd63203barEv,
+};
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3206dd6320__7ee36320[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn12_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc3206dd6320__7ee36320[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd63203fooEv,_ZTv0_n12_N6dd63203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd63203fooEv,_ZThn12_N6dd63203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd6320__7ee36320[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63203fooEv,_ZTv0_n12_N6dd63203fooEv),
+};
+static VTT_ENTRY vtt_ee36320[] = {
+ {&(_ZTV7ee36320[4]), 4,16},
+ {&(_ZTV7ee36320[10]), 10,16},
+ {&(_ZTV7ee36320[15]), 15,16},
+ {&(_tg__ZTV6dd6320__7ee36320[3]), 3,5},
+ {&(_tg__ZTV5cc3206dd6320__7ee36320[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc3206dd6320__7ee36320[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd6320__7ee36320[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee36320[];
+extern VTBL_ENTRY _ZTV7ee36320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36320[];
+static VTBL_ENTRY alt_thunk_names188[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63203fooEv,_ZTv0_n12_N6dd63203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63203fooEv,_ZThn12_N6dd63203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn12_N5cc3203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee363203fooEv,_ZTv0_n12_N7ee363203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee363203fooEv,_ZThn20_N7ee363203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee363203fooEv,_ZTv0_n16_N7ee363203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee363203fooEv,_ZThn8_N7ee363203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36320 = { "ee36320", // class name
+ bases_ee36320, 4,
+ &(vtc_ee36320[0]), // expected_vtbl_contents
+ &(vtt_ee36320[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee36320),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36320),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36320),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names188,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee46320 : dd6320 {
+ int e;
+ virtual void bar(); // _ZN7ee463203barEv
+ ~ee46320(); // tgen
+ ee46320(); // tgen
+};
+//SIG(1 ee46320) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v2 Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46320 ::bar(){vfunc_called(this, "_ZN7ee463203barEv");}
+ee46320 ::~ee46320(){ note_dtor("ee46320", this);} // tgen
+ee46320 ::ee46320(){ note_ctor("ee46320", this);} // tgen
+
+static void Test_ee46320()
+{
+ extern Class_Descriptor cd_ee46320;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee46320, buf);
+ ee46320 *dp, &lv = *(dp=new (buf) ee46320());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee46320)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46320)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(32,20), "ee46320");
+ check_base_class_offset(lv, (bb20*)(cc320*)(dd6320*), ABISELECT(24,16), "ee46320");
+ check_base_class_offset(lv, (cc320*)(dd6320*), 0, "ee46320");
+ check_base_class_offset(lv, (dd6320*), 0, "ee46320");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee46320.e");
+ test_class_info(&lv, &cd_ee46320);
+ dp->~ee46320();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46320(Test_ee46320, "ee46320", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee46320C1Ev();
+extern void _ZN7ee46320D1Ev();
+Name_Map name_map_ee46320[] = {
+ NSPAIR(_ZN7ee46320C1Ev),
+ NSPAIR(_ZN7ee46320D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc320;
+extern VTBL_ENTRY _ZTI5cc320[];
+extern VTBL_ENTRY _ZTV5cc320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc320[];
+extern Class_Descriptor cd_dd6320;
+extern VTBL_ENTRY _ZTI6dd6320[];
+extern VTBL_ENTRY _ZTV6dd6320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6320[];
+static Base_Class bases_ee46320[] = {
+ // 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_bb20, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc320, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6320, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee46320[];
+extern void _ZN6dd63203fooEv();
+extern void _ZN7ee463203barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd63203fooEv,_ZTv0_n12_N6dd63203fooEv)();
+extern void ABISELECT(_ZThn24_N6dd63203fooEv,_ZThn16_N6dd63203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee46320[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46320[0]),
+ (VTBL_ENTRY)&_ZN6dd63203fooEv,
+ (VTBL_ENTRY)&_ZN7ee463203barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee46320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63203fooEv,_ZTv0_n12_N6dd63203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee46320[];
+extern void _ZN6dd63203fooEv();
+extern void _ZN6dd63203barEv();
+static VTBL_ENTRY _tg__ZTV6dd6320__7ee46320[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6320[0]),
+ (VTBL_ENTRY)&_ZN6dd63203fooEv,
+ (VTBL_ENTRY)&_ZN6dd63203barEv,
+};
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3206dd6320__7ee46320[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3203fooEv,_ZThn16_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc3206dd6320__7ee46320[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd63203fooEv,_ZTv0_n12_N6dd63203fooEv)();
+extern void ABISELECT(_ZThn24_N6dd63203fooEv,_ZThn16_N6dd63203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd6320__7ee46320[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63203fooEv,_ZTv0_n12_N6dd63203fooEv),
+};
+static VTT_ENTRY vtt_ee46320[] = {
+ {&(_ZTV7ee46320[3]), 3,9},
+ {&(_tg__ZTV6dd6320__7ee46320[3]), 3,5},
+ {&(_tg__ZTV5cc3206dd6320__7ee46320[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc3206dd6320__7ee46320[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd6320__7ee46320[3]), 3,4},
+ {&(_ZTV7ee46320[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee46320[];
+extern VTBL_ENTRY _ZTV7ee46320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee46320[];
+static VTBL_ENTRY alt_thunk_names189[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3203fooEv,_ZThn16_N5cc3203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63203fooEv,_ZTv0_n12_N6dd63203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63203fooEv,_ZThn16_N6dd63203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63203fooEv,_ZThn16_N6dd63203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee46320 = { "ee46320", // class name
+ bases_ee46320, 4,
+ &(vtc_ee46320[0]), // expected_vtbl_contents
+ &(vtt_ee46320[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee46320),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46320),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee46320),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names189,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee56320 : virtual dd6320 {
+ int e;
+ virtual void bar(); // _ZN7ee563203barEv
+ ~ee56320(); // tgen
+ ee56320(); // tgen
+};
+//SIG(1 ee56320) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v2 Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56320 ::bar(){vfunc_called(this, "_ZN7ee563203barEv");}
+ee56320 ::~ee56320(){ note_dtor("ee56320", this);} // tgen
+ee56320 ::ee56320(){ note_ctor("ee56320", this);} // tgen
+
+static void Test_ee56320()
+{
+ extern Class_Descriptor cd_ee56320;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee56320, buf);
+ ee56320 *dp, &lv = *(dp=new (buf) ee56320());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee56320)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56320)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee56320");
+ check_base_class_offset(lv, (bb20*)(cc320*)(dd6320*), ABISELECT(32,20), "ee56320");
+ check_base_class_offset(lv, (cc320*)(dd6320*), ABISELECT(16,8), "ee56320");
+ check_base_class_offset(lv, (dd6320*), ABISELECT(16,8), "ee56320");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56320.e");
+ test_class_info(&lv, &cd_ee56320);
+ dp->~ee56320();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56320(Test_ee56320, "ee56320", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee56320C1Ev();
+extern void _ZN7ee56320D1Ev();
+Name_Map name_map_ee56320[] = {
+ NSPAIR(_ZN7ee56320C1Ev),
+ NSPAIR(_ZN7ee56320D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc320;
+extern VTBL_ENTRY _ZTI5cc320[];
+extern VTBL_ENTRY _ZTV5cc320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc320[];
+extern Class_Descriptor cd_dd6320;
+extern VTBL_ENTRY _ZTI6dd6320[];
+extern VTBL_ENTRY _ZTV6dd6320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6320[];
+static Base_Class bases_ee56320[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc320, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6320, 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 _ZTI7ee56320[];
+extern void _ZN7ee563203barEv();
+extern void _ZN6dd63203fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee563203barEv,_ZTv0_n20_N7ee563203barEv)();
+extern void ABISELECT(_ZThn16_N7ee563203barEv,_ZThn8_N7ee563203barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd63203fooEv,_ZTv0_n12_N6dd63203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd63203fooEv,_ZThn12_N6dd63203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56320[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56320[0]),
+ (VTBL_ENTRY)&_ZN7ee563203barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56320[0]),
+ (VTBL_ENTRY)&_ZN6dd63203fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee563203barEv,_ZTv0_n20_N7ee563203barEv),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee56320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63203fooEv,_ZTv0_n12_N6dd63203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee56320[];
+extern void _ZN6dd63203fooEv();
+extern void _ZN6dd63203barEv();
+static VTBL_ENTRY _tg__ZTV6dd6320__7ee56320[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6320[0]),
+ (VTBL_ENTRY)&_ZN6dd63203fooEv,
+ (VTBL_ENTRY)&_ZN6dd63203barEv,
+};
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3206dd6320__7ee56320[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn12_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc3206dd6320__7ee56320[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd63203fooEv,_ZTv0_n12_N6dd63203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd63203fooEv,_ZThn12_N6dd63203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd6320__7ee56320[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63203fooEv,_ZTv0_n12_N6dd63203fooEv),
+};
+static VTT_ENTRY vtt_ee56320[] = {
+ {&(_ZTV7ee56320[4]), 4,16},
+ {&(_ZTV7ee56320[10]), 10,16},
+ {&(_ZTV7ee56320[15]), 15,16},
+ {&(_tg__ZTV6dd6320__7ee56320[3]), 3,5},
+ {&(_tg__ZTV5cc3206dd6320__7ee56320[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc3206dd6320__7ee56320[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd6320__7ee56320[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee56320[];
+extern VTBL_ENTRY _ZTV7ee56320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56320[];
+static VTBL_ENTRY alt_thunk_names190[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn12_N5cc3203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63203fooEv,_ZTv0_n12_N6dd63203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63203fooEv,_ZThn12_N6dd63203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63203fooEv,_ZThn12_N6dd63203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee563203barEv,_ZTv0_n20_N7ee563203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee563203barEv,_ZThn8_N7ee563203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56320 = { "ee56320", // class name
+ bases_ee56320, 4,
+ &(vtc_ee56320[0]), // expected_vtbl_contents
+ &(vtt_ee56320[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee56320),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56320),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56320),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names190,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee66320 : dd6320 {
+ int e;
+ virtual void foo(); // _ZN7ee663203fooEv
+ virtual void bar(); // _ZN7ee663203barEv
+ ~ee66320(); // tgen
+ ee66320(); // tgen
+};
+//SIG(1 ee66320) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v1 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66320 ::foo(){vfunc_called(this, "_ZN7ee663203fooEv");}
+void ee66320 ::bar(){vfunc_called(this, "_ZN7ee663203barEv");}
+ee66320 ::~ee66320(){ note_dtor("ee66320", this);} // tgen
+ee66320 ::ee66320(){ note_ctor("ee66320", this);} // tgen
+
+static void Test_ee66320()
+{
+ extern Class_Descriptor cd_ee66320;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee66320, buf);
+ ee66320 *dp, &lv = *(dp=new (buf) ee66320());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee66320)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66320)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(32,20), "ee66320");
+ check_base_class_offset(lv, (bb20*)(cc320*)(dd6320*), ABISELECT(24,16), "ee66320");
+ check_base_class_offset(lv, (cc320*)(dd6320*), 0, "ee66320");
+ check_base_class_offset(lv, (dd6320*), 0, "ee66320");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee66320.e");
+ test_class_info(&lv, &cd_ee66320);
+ dp->~ee66320();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66320(Test_ee66320, "ee66320", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee66320C1Ev();
+extern void _ZN7ee66320D1Ev();
+Name_Map name_map_ee66320[] = {
+ NSPAIR(_ZN7ee66320C1Ev),
+ NSPAIR(_ZN7ee66320D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc320;
+extern VTBL_ENTRY _ZTI5cc320[];
+extern VTBL_ENTRY _ZTV5cc320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc320[];
+extern Class_Descriptor cd_dd6320;
+extern VTBL_ENTRY _ZTI6dd6320[];
+extern VTBL_ENTRY _ZTV6dd6320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6320[];
+static Base_Class bases_ee66320[] = {
+ // 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_bb20, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc320, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6320, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee66320[];
+extern void _ZN7ee663203fooEv();
+extern void _ZN7ee663203barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee663203fooEv,_ZTv0_n12_N7ee663203fooEv)();
+extern void ABISELECT(_ZThn24_N7ee663203fooEv,_ZThn16_N7ee663203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee66320[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66320[0]),
+ (VTBL_ENTRY)&_ZN7ee663203fooEv,
+ (VTBL_ENTRY)&_ZN7ee663203barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee66320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee663203fooEv,_ZTv0_n12_N7ee663203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee66320[];
+extern void _ZN6dd63203fooEv();
+extern void _ZN6dd63203barEv();
+static VTBL_ENTRY _tg__ZTV6dd6320__7ee66320[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6320[0]),
+ (VTBL_ENTRY)&_ZN6dd63203fooEv,
+ (VTBL_ENTRY)&_ZN6dd63203barEv,
+};
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3206dd6320__7ee66320[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3203fooEv,_ZThn16_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc3206dd6320__7ee66320[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd63203fooEv,_ZTv0_n12_N6dd63203fooEv)();
+extern void ABISELECT(_ZThn24_N6dd63203fooEv,_ZThn16_N6dd63203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd6320__7ee66320[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63203fooEv,_ZTv0_n12_N6dd63203fooEv),
+};
+static VTT_ENTRY vtt_ee66320[] = {
+ {&(_ZTV7ee66320[3]), 3,9},
+ {&(_tg__ZTV6dd6320__7ee66320[3]), 3,5},
+ {&(_tg__ZTV5cc3206dd6320__7ee66320[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc3206dd6320__7ee66320[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd6320__7ee66320[3]), 3,4},
+ {&(_ZTV7ee66320[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee66320[];
+extern VTBL_ENTRY _ZTV7ee66320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee66320[];
+static VTBL_ENTRY alt_thunk_names191[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63203fooEv,_ZTv0_n12_N6dd63203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63203fooEv,_ZThn16_N6dd63203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3203fooEv,_ZThn16_N5cc3203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee663203fooEv,_ZTv0_n12_N7ee663203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee663203fooEv,_ZThn16_N7ee663203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee66320 = { "ee66320", // class name
+ bases_ee66320, 4,
+ &(vtc_ee66320[0]), // expected_vtbl_contents
+ &(vtt_ee66320[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee66320),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66320),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee66320),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names191,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee76320 : virtual dd6320 {
+ int e;
+ virtual void foo(); // _ZN7ee763203fooEv
+ virtual void bar(); // _ZN7ee763203barEv
+ ~ee76320(); // tgen
+ ee76320(); // tgen
+};
+//SIG(1 ee76320) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v1 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76320 ::foo(){vfunc_called(this, "_ZN7ee763203fooEv");}
+void ee76320 ::bar(){vfunc_called(this, "_ZN7ee763203barEv");}
+ee76320 ::~ee76320(){ note_dtor("ee76320", this);} // tgen
+ee76320 ::ee76320(){ note_ctor("ee76320", this);} // tgen
+
+static void Test_ee76320()
+{
+ extern Class_Descriptor cd_ee76320;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee76320, buf);
+ ee76320 *dp, &lv = *(dp=new (buf) ee76320());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee76320)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76320)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee76320");
+ check_base_class_offset(lv, (bb20*)(cc320*)(dd6320*), ABISELECT(32,20), "ee76320");
+ check_base_class_offset(lv, (cc320*)(dd6320*), ABISELECT(16,8), "ee76320");
+ check_base_class_offset(lv, (dd6320*), ABISELECT(16,8), "ee76320");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76320.e");
+ test_class_info(&lv, &cd_ee76320);
+ dp->~ee76320();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76320(Test_ee76320, "ee76320", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee76320C1Ev();
+extern void _ZN7ee76320D1Ev();
+Name_Map name_map_ee76320[] = {
+ NSPAIR(_ZN7ee76320C1Ev),
+ NSPAIR(_ZN7ee76320D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc320;
+extern VTBL_ENTRY _ZTI5cc320[];
+extern VTBL_ENTRY _ZTV5cc320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc320[];
+extern Class_Descriptor cd_dd6320;
+extern VTBL_ENTRY _ZTI6dd6320[];
+extern VTBL_ENTRY _ZTV6dd6320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6320[];
+static Base_Class bases_ee76320[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc320, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6320, ABISELECT(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 _ZTI7ee76320[];
+extern void _ZN7ee763203fooEv();
+extern void _ZN7ee763203barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee763203fooEv,_ZTv0_n16_N7ee763203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee763203fooEv,_ZThn8_N7ee763203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee763203barEv,_ZTv0_n20_N7ee763203barEv)();
+extern void ABISELECT(_ZThn16_N7ee763203barEv,_ZThn8_N7ee763203barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee763203fooEv,_ZTv0_n12_N7ee763203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee763203fooEv,_ZThn20_N7ee763203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76320[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76320[0]),
+ (VTBL_ENTRY)&_ZN7ee763203fooEv,
+ (VTBL_ENTRY)&_ZN7ee763203barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee763203fooEv,_ZTv0_n16_N7ee763203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee763203barEv,_ZTv0_n20_N7ee763203barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee76320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee763203fooEv,_ZTv0_n12_N7ee763203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee76320[];
+extern void _ZN6dd63203fooEv();
+extern void _ZN6dd63203barEv();
+static VTBL_ENTRY _tg__ZTV6dd6320__7ee76320[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6320[0]),
+ (VTBL_ENTRY)&_ZN6dd63203fooEv,
+ (VTBL_ENTRY)&_ZN6dd63203barEv,
+};
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3206dd6320__7ee76320[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn12_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc3206dd6320__7ee76320[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd63203fooEv,_ZTv0_n12_N6dd63203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd63203fooEv,_ZThn12_N6dd63203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd6320__7ee76320[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63203fooEv,_ZTv0_n12_N6dd63203fooEv),
+};
+static VTT_ENTRY vtt_ee76320[] = {
+ {&(_ZTV7ee76320[4]), 4,17},
+ {&(_ZTV7ee76320[11]), 11,17},
+ {&(_ZTV7ee76320[16]), 16,17},
+ {&(_tg__ZTV6dd6320__7ee76320[3]), 3,5},
+ {&(_tg__ZTV5cc3206dd6320__7ee76320[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc3206dd6320__7ee76320[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd6320__7ee76320[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee76320[];
+extern VTBL_ENTRY _ZTV7ee76320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76320[];
+static VTBL_ENTRY alt_thunk_names192[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63203fooEv,_ZTv0_n12_N6dd63203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63203fooEv,_ZThn12_N6dd63203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn12_N5cc3203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee763203fooEv,_ZTv0_n12_N7ee763203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee763203fooEv,_ZThn20_N7ee763203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee763203barEv,_ZTv0_n20_N7ee763203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee763203barEv,_ZThn8_N7ee763203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee763203fooEv,_ZTv0_n16_N7ee763203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee763203fooEv,_ZThn8_N7ee763203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76320 = { "ee76320", // class name
+ bases_ee76320, 4,
+ &(vtc_ee76320[0]), // expected_vtbl_contents
+ &(vtt_ee76320[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee76320),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76320),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76320),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names192,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd7320 : virtual cc320 {
+ int d;
+ virtual void bar(); // _ZN6dd73203barEv
+ virtual void foo(); // _ZN6dd73203fooEv
+ ~dd7320(); // tgen
+ dd7320(); // tgen
+};
+//SIG(-1 dd7320) C1{ VBC2{ VBC3{ BC4{ Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void dd7320 ::bar(){vfunc_called(this, "_ZN6dd73203barEv");}
+void dd7320 ::foo(){vfunc_called(this, "_ZN6dd73203fooEv");}
+dd7320 ::~dd7320(){ note_dtor("dd7320", this);} // tgen
+dd7320 ::dd7320(){ note_ctor("dd7320", this);} // tgen
+
+static void Test_dd7320()
+{
+ extern Class_Descriptor cd_dd7320;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd7320, buf);
+ dd7320 *dp, &lv = *(dp=new (buf) dd7320());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd7320)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7320)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,20), "dd7320");
+ check_base_class_offset(lv, (bb20*)(cc320*), ABISELECT(32,16), "dd7320");
+ check_base_class_offset(lv, (cc320*), ABISELECT(16,8), "dd7320");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7320.d");
+ test_class_info(&lv, &cd_dd7320);
+ dp->~dd7320();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7320(Test_dd7320, "dd7320", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd7320C1Ev();
+extern void _ZN6dd7320D1Ev();
+Name_Map name_map_dd7320[] = {
+ NSPAIR(_ZN6dd7320C1Ev),
+ NSPAIR(_ZN6dd7320D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc320;
+extern VTBL_ENTRY _ZTI5cc320[];
+extern VTBL_ENTRY _ZTV5cc320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc320[];
+static Base_Class bases_dd7320[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc320, 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 _ZTI6dd7320[];
+extern void _ZN6dd73203barEv();
+extern void _ZN6dd73203fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd73203fooEv,_ZTv0_n16_N6dd73203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73203fooEv,_ZThn8_N6dd73203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd73203fooEv,_ZTv0_n12_N6dd73203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73203fooEv,_ZThn16_N6dd73203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7320[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7320[0]),
+ (VTBL_ENTRY)&_ZN6dd73203barEv,
+ (VTBL_ENTRY)&_ZN6dd73203fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73203fooEv,_ZTv0_n16_N6dd73203fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73203fooEv,_ZTv0_n12_N6dd73203fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd7320[];
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc320__6dd7320[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc320__6dd7320[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+static VTT_ENTRY vtt_dd7320[] = {
+ {&(_ZTV6dd7320[4]), 4,15},
+ {&(_ZTV6dd7320[10]), 10,15},
+ {&(_ZTV6dd7320[14]), 14,15},
+ {&(_tg__ZTV5cc320__6dd7320[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc320__6dd7320[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd7320[];
+extern VTBL_ENTRY _ZTV6dd7320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7320[];
+static VTBL_ENTRY alt_thunk_names193[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73203fooEv,_ZTv0_n12_N6dd73203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73203fooEv,_ZThn16_N6dd73203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73203fooEv,_ZTv0_n16_N6dd73203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73203fooEv,_ZThn8_N6dd73203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7320 = { "dd7320", // class name
+ bases_dd7320, 3,
+ &(vtc_dd7320[0]), // expected_vtbl_contents
+ &(vtt_dd7320[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd7320),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7320),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7320),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 ee07320 : dd7320 {
+ int e;
+ ~ee07320(); // tgen
+ ee07320(); // tgen
+};
+//SIG(1 ee07320) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v2 Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee07320 ::~ee07320(){ note_dtor("ee07320", this);} // tgen
+ee07320 ::ee07320(){ note_ctor("ee07320", this);} // tgen
+
+static void Test_ee07320()
+{
+ extern Class_Descriptor cd_ee07320;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee07320, buf);
+ ee07320 *dp, &lv = *(dp=new (buf) ee07320());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee07320)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07320)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee07320");
+ check_base_class_offset(lv, (bb20*)(cc320*), ABISELECT(32,20), "ee07320");
+ check_base_class_offset(lv, (cc320*)(dd7320*), ABISELECT(16,12), "ee07320");
+ check_base_class_offset(lv, (dd7320*), 0, "ee07320");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07320.e");
+ test_class_info(&lv, &cd_ee07320);
+ dp->~ee07320();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07320(Test_ee07320, "ee07320", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee07320C1Ev();
+extern void _ZN7ee07320D1Ev();
+Name_Map name_map_ee07320[] = {
+ NSPAIR(_ZN7ee07320C1Ev),
+ NSPAIR(_ZN7ee07320D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc320;
+extern VTBL_ENTRY _ZTI5cc320[];
+extern VTBL_ENTRY _ZTV5cc320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc320[];
+extern Class_Descriptor cd_dd7320;
+extern VTBL_ENTRY _ZTI6dd7320[];
+extern VTBL_ENTRY _ZTV6dd7320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7320[];
+static Base_Class bases_ee07320[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc320, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7320, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07320[];
+extern void _ZN6dd73203barEv();
+extern void _ZN6dd73203fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd73203fooEv,_ZTv0_n16_N6dd73203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73203fooEv,_ZThn12_N6dd73203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd73203fooEv,_ZTv0_n12_N6dd73203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73203fooEv,_ZThn20_N6dd73203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07320[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07320[0]),
+ (VTBL_ENTRY)&_ZN6dd73203barEv,
+ (VTBL_ENTRY)&_ZN6dd73203fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73203fooEv,_ZTv0_n16_N6dd73203fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee07320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73203fooEv,_ZTv0_n12_N6dd73203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee07320[];
+extern void _ZN6dd73203barEv();
+extern void _ZN6dd73203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7320__7ee07320[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7320[0]),
+ (VTBL_ENTRY)&_ZN6dd73203barEv,
+ (VTBL_ENTRY)&_ZN6dd73203fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73203fooEv,_ZTv0_n16_N6dd73203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73203fooEv,_ZThn12_N6dd73203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc320__6dd7320__7ee07320[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73203fooEv,_ZTv0_n16_N6dd73203fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd73203fooEv,_ZTv0_n12_N6dd73203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73203fooEv,_ZThn20_N6dd73203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd7320__7ee07320[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73203fooEv,_ZTv0_n12_N6dd73203fooEv),
+};
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc320__7ee07320[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc320__7ee07320[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+static VTT_ENTRY vtt_ee07320[] = {
+ {&(_ZTV7ee07320[4]), 4,15},
+ {&(_tg__ZTV6dd7320__7ee07320[4]), 4,6},
+ {&(_tg__ZTV5cc320__6dd7320__7ee07320[4]), 4,5},
+ {&(_tg__ZTV4bb20__6dd7320__7ee07320[3]), 3,4},
+ {&(_ZTV7ee07320[10]), 10,15},
+ {&(_ZTV7ee07320[14]), 14,15},
+ {&(_tg__ZTV5cc320__7ee07320[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc320__7ee07320[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee07320[];
+extern VTBL_ENTRY _ZTV7ee07320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07320[];
+static VTBL_ENTRY alt_thunk_names194[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73203fooEv,_ZTv0_n12_N6dd73203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73203fooEv,_ZThn20_N6dd73203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73203fooEv,_ZThn20_N6dd73203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73203fooEv,_ZTv0_n16_N6dd73203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73203fooEv,_ZThn12_N6dd73203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73203fooEv,_ZThn12_N6dd73203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07320 = { "ee07320", // class name
+ bases_ee07320, 4,
+ &(vtc_ee07320[0]), // expected_vtbl_contents
+ &(vtt_ee07320[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee07320),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07320),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07320),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names194,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee17320 : virtual dd7320 {
+ int e;
+ ~ee17320(); // tgen
+ ee17320(); // tgen
+};
+//SIG(1 ee17320) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v2 Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee17320 ::~ee17320(){ note_dtor("ee17320", this);} // tgen
+ee17320 ::ee17320(){ note_ctor("ee17320", this);} // tgen
+
+static void Test_ee17320()
+{
+ extern Class_Descriptor cd_ee17320;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee17320, buf);
+ ee17320 *dp, &lv = *(dp=new (buf) ee17320());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee17320)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17320)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(56,28), "ee17320");
+ check_base_class_offset(lv, (bb20*)(cc320*), ABISELECT(48,24), "ee17320");
+ check_base_class_offset(lv, (cc320*)(dd7320*), ABISELECT(32,16), "ee17320");
+ check_base_class_offset(lv, (dd7320*), ABISELECT(16,8), "ee17320");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17320.e");
+ test_class_info(&lv, &cd_ee17320);
+ dp->~ee17320();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17320(Test_ee17320, "ee17320", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee17320C1Ev();
+extern void _ZN7ee17320D1Ev();
+Name_Map name_map_ee17320[] = {
+ NSPAIR(_ZN7ee17320C1Ev),
+ NSPAIR(_ZN7ee17320D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc320;
+extern VTBL_ENTRY _ZTI5cc320[];
+extern VTBL_ENTRY _ZTV5cc320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc320[];
+extern Class_Descriptor cd_dd7320;
+extern VTBL_ENTRY _ZTI6dd7320[];
+extern VTBL_ENTRY _ZTV6dd7320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7320[];
+static Base_Class bases_ee17320[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(56,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc320, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7320, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee17320[];
+extern void _ZN6dd73203barEv();
+extern void _ZN6dd73203fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd73203fooEv,_ZTv0_n16_N6dd73203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73203fooEv,_ZThn8_N6dd73203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd73203fooEv,_ZTv0_n12_N6dd73203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73203fooEv,_ZThn16_N6dd73203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17320[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17320[0]),
+ 0,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17320[0]),
+ (VTBL_ENTRY)&_ZN6dd73203barEv,
+ (VTBL_ENTRY)&_ZN6dd73203fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73203fooEv,_ZTv0_n16_N6dd73203fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee17320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73203fooEv,_ZTv0_n12_N6dd73203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee17320[];
+extern void _ZN6dd73203barEv();
+extern void _ZN6dd73203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7320__7ee17320[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7320[0]),
+ (VTBL_ENTRY)&_ZN6dd73203barEv,
+ (VTBL_ENTRY)&_ZN6dd73203fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73203fooEv,_ZTv0_n16_N6dd73203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73203fooEv,_ZThn8_N6dd73203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc320__6dd7320__7ee17320[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73203fooEv,_ZTv0_n16_N6dd73203fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd73203fooEv,_ZTv0_n12_N6dd73203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73203fooEv,_ZThn16_N6dd73203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd7320__7ee17320[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73203fooEv,_ZTv0_n12_N6dd73203fooEv),
+};
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc320__7ee17320[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc320__7ee17320[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+static VTT_ENTRY vtt_ee17320[] = {
+ {&(_ZTV7ee17320[5]), 5,22},
+ {&(_ZTV7ee17320[11]), 11,22},
+ {&(_ZTV7ee17320[17]), 17,22},
+ {&(_ZTV7ee17320[21]), 21,22},
+ {&(_tg__ZTV6dd7320__7ee17320[4]), 4,6},
+ {&(_tg__ZTV5cc320__6dd7320__7ee17320[4]), 4,5},
+ {&(_tg__ZTV4bb20__6dd7320__7ee17320[3]), 3,4},
+ {&(_tg__ZTV5cc320__7ee17320[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc320__7ee17320[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee17320[];
+extern VTBL_ENTRY _ZTV7ee17320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17320[];
+static VTBL_ENTRY alt_thunk_names195[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73203fooEv,_ZTv0_n12_N6dd73203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73203fooEv,_ZThn16_N6dd73203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73203fooEv,_ZThn16_N6dd73203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73203fooEv,_ZTv0_n16_N6dd73203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73203fooEv,_ZThn8_N6dd73203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73203fooEv,_ZThn8_N6dd73203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17320 = { "ee17320", // class name
+ bases_ee17320, 4,
+ &(vtc_ee17320[0]), // expected_vtbl_contents
+ &(vtt_ee17320[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee17320),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17320),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17320),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names195,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee27320 : dd7320 {
+ int e;
+ virtual void foo(); // _ZN7ee273203fooEv
+ ~ee27320(); // tgen
+ ee27320(); // tgen
+};
+//SIG(1 ee27320) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v1 Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27320 ::foo(){vfunc_called(this, "_ZN7ee273203fooEv");}
+ee27320 ::~ee27320(){ note_dtor("ee27320", this);} // tgen
+ee27320 ::ee27320(){ note_ctor("ee27320", this);} // tgen
+
+static void Test_ee27320()
+{
+ extern Class_Descriptor cd_ee27320;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee27320, buf);
+ ee27320 *dp, &lv = *(dp=new (buf) ee27320());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee27320)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27320)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee27320");
+ check_base_class_offset(lv, (bb20*)(cc320*), ABISELECT(32,20), "ee27320");
+ check_base_class_offset(lv, (cc320*)(dd7320*), ABISELECT(16,12), "ee27320");
+ check_base_class_offset(lv, (dd7320*), 0, "ee27320");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27320.e");
+ test_class_info(&lv, &cd_ee27320);
+ dp->~ee27320();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27320(Test_ee27320, "ee27320", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee27320C1Ev();
+extern void _ZN7ee27320D1Ev();
+Name_Map name_map_ee27320[] = {
+ NSPAIR(_ZN7ee27320C1Ev),
+ NSPAIR(_ZN7ee27320D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc320;
+extern VTBL_ENTRY _ZTI5cc320[];
+extern VTBL_ENTRY _ZTV5cc320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc320[];
+extern Class_Descriptor cd_dd7320;
+extern VTBL_ENTRY _ZTI6dd7320[];
+extern VTBL_ENTRY _ZTV6dd7320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7320[];
+static Base_Class bases_ee27320[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc320, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7320, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27320[];
+extern void _ZN6dd73203barEv();
+extern void _ZN7ee273203fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee273203fooEv,_ZTv0_n16_N7ee273203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee273203fooEv,_ZThn12_N7ee273203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee273203fooEv,_ZTv0_n12_N7ee273203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee273203fooEv,_ZThn20_N7ee273203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27320[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27320[0]),
+ (VTBL_ENTRY)&_ZN6dd73203barEv,
+ (VTBL_ENTRY)&_ZN7ee273203fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee273203fooEv,_ZTv0_n16_N7ee273203fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee27320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee273203fooEv,_ZTv0_n12_N7ee273203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee27320[];
+extern void _ZN6dd73203barEv();
+extern void _ZN6dd73203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7320__7ee27320[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7320[0]),
+ (VTBL_ENTRY)&_ZN6dd73203barEv,
+ (VTBL_ENTRY)&_ZN6dd73203fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73203fooEv,_ZTv0_n16_N6dd73203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73203fooEv,_ZThn12_N6dd73203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc320__6dd7320__7ee27320[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73203fooEv,_ZTv0_n16_N6dd73203fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd73203fooEv,_ZTv0_n12_N6dd73203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73203fooEv,_ZThn20_N6dd73203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd7320__7ee27320[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73203fooEv,_ZTv0_n12_N6dd73203fooEv),
+};
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc320__7ee27320[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc320__7ee27320[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+static VTT_ENTRY vtt_ee27320[] = {
+ {&(_ZTV7ee27320[4]), 4,15},
+ {&(_tg__ZTV6dd7320__7ee27320[4]), 4,6},
+ {&(_tg__ZTV5cc320__6dd7320__7ee27320[4]), 4,5},
+ {&(_tg__ZTV4bb20__6dd7320__7ee27320[3]), 3,4},
+ {&(_ZTV7ee27320[10]), 10,15},
+ {&(_ZTV7ee27320[14]), 14,15},
+ {&(_tg__ZTV5cc320__7ee27320[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc320__7ee27320[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee27320[];
+extern VTBL_ENTRY _ZTV7ee27320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27320[];
+static VTBL_ENTRY alt_thunk_names196[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73203fooEv,_ZTv0_n12_N6dd73203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73203fooEv,_ZThn20_N6dd73203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73203fooEv,_ZTv0_n16_N6dd73203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73203fooEv,_ZThn12_N6dd73203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee273203fooEv,_ZTv0_n12_N7ee273203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee273203fooEv,_ZThn20_N7ee273203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee273203fooEv,_ZTv0_n16_N7ee273203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee273203fooEv,_ZThn12_N7ee273203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27320 = { "ee27320", // class name
+ bases_ee27320, 4,
+ &(vtc_ee27320[0]), // expected_vtbl_contents
+ &(vtt_ee27320[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee27320),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27320),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27320),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names196,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee37320 : virtual dd7320 {
+ int e;
+ virtual void foo(); // _ZN7ee373203fooEv
+ ~ee37320(); // tgen
+ ee37320(); // tgen
+};
+//SIG(1 ee37320) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v1 Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37320 ::foo(){vfunc_called(this, "_ZN7ee373203fooEv");}
+ee37320 ::~ee37320(){ note_dtor("ee37320", this);} // tgen
+ee37320 ::ee37320(){ note_ctor("ee37320", this);} // tgen
+
+static void Test_ee37320()
+{
+ extern Class_Descriptor cd_ee37320;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee37320, buf);
+ ee37320 *dp, &lv = *(dp=new (buf) ee37320());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee37320)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37320)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(56,28), "ee37320");
+ check_base_class_offset(lv, (bb20*)(cc320*), ABISELECT(48,24), "ee37320");
+ check_base_class_offset(lv, (cc320*)(dd7320*), ABISELECT(32,16), "ee37320");
+ check_base_class_offset(lv, (dd7320*), ABISELECT(16,8), "ee37320");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37320.e");
+ test_class_info(&lv, &cd_ee37320);
+ dp->~ee37320();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37320(Test_ee37320, "ee37320", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee37320C1Ev();
+extern void _ZN7ee37320D1Ev();
+Name_Map name_map_ee37320[] = {
+ NSPAIR(_ZN7ee37320C1Ev),
+ NSPAIR(_ZN7ee37320D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc320;
+extern VTBL_ENTRY _ZTI5cc320[];
+extern VTBL_ENTRY _ZTV5cc320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc320[];
+extern Class_Descriptor cd_dd7320;
+extern VTBL_ENTRY _ZTI6dd7320[];
+extern VTBL_ENTRY _ZTV6dd7320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7320[];
+static Base_Class bases_ee37320[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(56,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc320, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7320, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee37320[];
+extern void _ZN7ee373203fooEv();
+extern void _ZN6dd73203barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee373203fooEv,_ZTv0_n24_N7ee373203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee373203fooEv,_ZThn8_N7ee373203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee373203fooEv,_ZTv0_n16_N7ee373203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee373203fooEv,_ZThn16_N7ee373203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee373203fooEv,_ZTv0_n12_N7ee373203fooEv)();
+extern void ABISELECT(_ZThn48_N7ee373203fooEv,_ZThn24_N7ee373203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37320[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37320[0]),
+ (VTBL_ENTRY)&_ZN7ee373203fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37320[0]),
+ (VTBL_ENTRY)&_ZN6dd73203barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee373203fooEv,_ZTv0_n24_N7ee373203fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee373203fooEv,_ZTv0_n16_N7ee373203fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee37320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee373203fooEv,_ZTv0_n12_N7ee373203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee37320[];
+extern void _ZN6dd73203barEv();
+extern void _ZN6dd73203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7320__7ee37320[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7320[0]),
+ (VTBL_ENTRY)&_ZN6dd73203barEv,
+ (VTBL_ENTRY)&_ZN6dd73203fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73203fooEv,_ZTv0_n16_N6dd73203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73203fooEv,_ZThn8_N6dd73203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc320__6dd7320__7ee37320[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73203fooEv,_ZTv0_n16_N6dd73203fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd73203fooEv,_ZTv0_n12_N6dd73203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73203fooEv,_ZThn16_N6dd73203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd7320__7ee37320[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73203fooEv,_ZTv0_n12_N6dd73203fooEv),
+};
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc320__7ee37320[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc320__7ee37320[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+static VTT_ENTRY vtt_ee37320[] = {
+ {&(_ZTV7ee37320[5]), 5,23},
+ {&(_ZTV7ee37320[12]), 12,23},
+ {&(_ZTV7ee37320[18]), 18,23},
+ {&(_ZTV7ee37320[22]), 22,23},
+ {&(_tg__ZTV6dd7320__7ee37320[4]), 4,6},
+ {&(_tg__ZTV5cc320__6dd7320__7ee37320[4]), 4,5},
+ {&(_tg__ZTV4bb20__6dd7320__7ee37320[3]), 3,4},
+ {&(_tg__ZTV5cc320__7ee37320[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc320__7ee37320[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee37320[];
+extern VTBL_ENTRY _ZTV7ee37320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37320[];
+static VTBL_ENTRY alt_thunk_names197[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73203fooEv,_ZTv0_n12_N6dd73203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73203fooEv,_ZThn16_N6dd73203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73203fooEv,_ZTv0_n16_N6dd73203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73203fooEv,_ZThn8_N6dd73203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee373203fooEv,_ZTv0_n12_N7ee373203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee373203fooEv,_ZThn24_N7ee373203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee373203fooEv,_ZTv0_n16_N7ee373203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee373203fooEv,_ZThn16_N7ee373203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee373203fooEv,_ZTv0_n24_N7ee373203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee373203fooEv,_ZThn8_N7ee373203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37320 = { "ee37320", // class name
+ bases_ee37320, 4,
+ &(vtc_ee37320[0]), // expected_vtbl_contents
+ &(vtt_ee37320[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee37320),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37320),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37320),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names197,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee47320 : dd7320 {
+ int e;
+ virtual void bar(); // _ZN7ee473203barEv
+ ~ee47320(); // tgen
+ ee47320(); // tgen
+};
+//SIG(1 ee47320) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v2 Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47320 ::bar(){vfunc_called(this, "_ZN7ee473203barEv");}
+ee47320 ::~ee47320(){ note_dtor("ee47320", this);} // tgen
+ee47320 ::ee47320(){ note_ctor("ee47320", this);} // tgen
+
+static void Test_ee47320()
+{
+ extern Class_Descriptor cd_ee47320;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee47320, buf);
+ ee47320 *dp, &lv = *(dp=new (buf) ee47320());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee47320)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47320)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee47320");
+ check_base_class_offset(lv, (bb20*)(cc320*), ABISELECT(32,20), "ee47320");
+ check_base_class_offset(lv, (cc320*)(dd7320*), ABISELECT(16,12), "ee47320");
+ check_base_class_offset(lv, (dd7320*), 0, "ee47320");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47320.e");
+ test_class_info(&lv, &cd_ee47320);
+ dp->~ee47320();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47320(Test_ee47320, "ee47320", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee47320C1Ev();
+extern void _ZN7ee47320D1Ev();
+Name_Map name_map_ee47320[] = {
+ NSPAIR(_ZN7ee47320C1Ev),
+ NSPAIR(_ZN7ee47320D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc320;
+extern VTBL_ENTRY _ZTI5cc320[];
+extern VTBL_ENTRY _ZTV5cc320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc320[];
+extern Class_Descriptor cd_dd7320;
+extern VTBL_ENTRY _ZTI6dd7320[];
+extern VTBL_ENTRY _ZTV6dd7320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7320[];
+static Base_Class bases_ee47320[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc320, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7320, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47320[];
+extern void _ZN7ee473203barEv();
+extern void _ZN6dd73203fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd73203fooEv,_ZTv0_n16_N6dd73203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73203fooEv,_ZThn12_N6dd73203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd73203fooEv,_ZTv0_n12_N6dd73203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73203fooEv,_ZThn20_N6dd73203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47320[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47320[0]),
+ (VTBL_ENTRY)&_ZN7ee473203barEv,
+ (VTBL_ENTRY)&_ZN6dd73203fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73203fooEv,_ZTv0_n16_N6dd73203fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee47320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73203fooEv,_ZTv0_n12_N6dd73203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee47320[];
+extern void _ZN6dd73203barEv();
+extern void _ZN6dd73203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7320__7ee47320[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7320[0]),
+ (VTBL_ENTRY)&_ZN6dd73203barEv,
+ (VTBL_ENTRY)&_ZN6dd73203fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73203fooEv,_ZTv0_n16_N6dd73203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73203fooEv,_ZThn12_N6dd73203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc320__6dd7320__7ee47320[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73203fooEv,_ZTv0_n16_N6dd73203fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd73203fooEv,_ZTv0_n12_N6dd73203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73203fooEv,_ZThn20_N6dd73203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd7320__7ee47320[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73203fooEv,_ZTv0_n12_N6dd73203fooEv),
+};
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc320__7ee47320[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc320__7ee47320[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+static VTT_ENTRY vtt_ee47320[] = {
+ {&(_ZTV7ee47320[4]), 4,15},
+ {&(_tg__ZTV6dd7320__7ee47320[4]), 4,6},
+ {&(_tg__ZTV5cc320__6dd7320__7ee47320[4]), 4,5},
+ {&(_tg__ZTV4bb20__6dd7320__7ee47320[3]), 3,4},
+ {&(_ZTV7ee47320[10]), 10,15},
+ {&(_ZTV7ee47320[14]), 14,15},
+ {&(_tg__ZTV5cc320__7ee47320[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc320__7ee47320[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee47320[];
+extern VTBL_ENTRY _ZTV7ee47320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47320[];
+static VTBL_ENTRY alt_thunk_names198[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73203fooEv,_ZTv0_n12_N6dd73203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73203fooEv,_ZThn20_N6dd73203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73203fooEv,_ZThn20_N6dd73203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73203fooEv,_ZTv0_n16_N6dd73203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73203fooEv,_ZThn12_N6dd73203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73203fooEv,_ZThn12_N6dd73203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47320 = { "ee47320", // class name
+ bases_ee47320, 4,
+ &(vtc_ee47320[0]), // expected_vtbl_contents
+ &(vtt_ee47320[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee47320),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47320),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47320),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names198,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee57320 : virtual dd7320 {
+ int e;
+ virtual void bar(); // _ZN7ee573203barEv
+ ~ee57320(); // tgen
+ ee57320(); // tgen
+};
+//SIG(1 ee57320) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v2 Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57320 ::bar(){vfunc_called(this, "_ZN7ee573203barEv");}
+ee57320 ::~ee57320(){ note_dtor("ee57320", this);} // tgen
+ee57320 ::ee57320(){ note_ctor("ee57320", this);} // tgen
+
+static void Test_ee57320()
+{
+ extern Class_Descriptor cd_ee57320;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee57320, buf);
+ ee57320 *dp, &lv = *(dp=new (buf) ee57320());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee57320)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57320)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(56,28), "ee57320");
+ check_base_class_offset(lv, (bb20*)(cc320*), ABISELECT(48,24), "ee57320");
+ check_base_class_offset(lv, (cc320*)(dd7320*), ABISELECT(32,16), "ee57320");
+ check_base_class_offset(lv, (dd7320*), ABISELECT(16,8), "ee57320");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57320.e");
+ test_class_info(&lv, &cd_ee57320);
+ dp->~ee57320();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57320(Test_ee57320, "ee57320", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee57320C1Ev();
+extern void _ZN7ee57320D1Ev();
+Name_Map name_map_ee57320[] = {
+ NSPAIR(_ZN7ee57320C1Ev),
+ NSPAIR(_ZN7ee57320D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc320;
+extern VTBL_ENTRY _ZTI5cc320[];
+extern VTBL_ENTRY _ZTV5cc320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc320[];
+extern Class_Descriptor cd_dd7320;
+extern VTBL_ENTRY _ZTI6dd7320[];
+extern VTBL_ENTRY _ZTV6dd7320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7320[];
+static Base_Class bases_ee57320[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(56,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc320, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7320, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee57320[];
+extern void _ZN7ee573203barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee573203barEv,_ZTv0_n20_N7ee573203barEv)();
+extern void ABISELECT(_ZThn16_N7ee573203barEv,_ZThn8_N7ee573203barEv)() __attribute__((weak));
+extern void _ZN6dd73203fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd73203fooEv,_ZTv0_n16_N6dd73203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73203fooEv,_ZThn8_N6dd73203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd73203fooEv,_ZTv0_n12_N6dd73203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73203fooEv,_ZThn16_N6dd73203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57320[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57320[0]),
+ (VTBL_ENTRY)&_ZN7ee573203barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee573203barEv,_ZTv0_n20_N7ee573203barEv),
+ (VTBL_ENTRY)&_ZN6dd73203fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73203fooEv,_ZTv0_n16_N6dd73203fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee57320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73203fooEv,_ZTv0_n12_N6dd73203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee57320[];
+extern void _ZN6dd73203barEv();
+extern void _ZN6dd73203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7320__7ee57320[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7320[0]),
+ (VTBL_ENTRY)&_ZN6dd73203barEv,
+ (VTBL_ENTRY)&_ZN6dd73203fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73203fooEv,_ZTv0_n16_N6dd73203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73203fooEv,_ZThn8_N6dd73203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc320__6dd7320__7ee57320[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73203fooEv,_ZTv0_n16_N6dd73203fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd73203fooEv,_ZTv0_n12_N6dd73203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73203fooEv,_ZThn16_N6dd73203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd7320__7ee57320[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73203fooEv,_ZTv0_n12_N6dd73203fooEv),
+};
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc320__7ee57320[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc320__7ee57320[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+static VTT_ENTRY vtt_ee57320[] = {
+ {&(_ZTV7ee57320[5]), 5,23},
+ {&(_ZTV7ee57320[12]), 12,23},
+ {&(_ZTV7ee57320[18]), 18,23},
+ {&(_ZTV7ee57320[22]), 22,23},
+ {&(_tg__ZTV6dd7320__7ee57320[4]), 4,6},
+ {&(_tg__ZTV5cc320__6dd7320__7ee57320[4]), 4,5},
+ {&(_tg__ZTV4bb20__6dd7320__7ee57320[3]), 3,4},
+ {&(_tg__ZTV5cc320__7ee57320[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc320__7ee57320[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee57320[];
+extern VTBL_ENTRY _ZTV7ee57320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57320[];
+static VTBL_ENTRY alt_thunk_names199[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73203fooEv,_ZTv0_n12_N6dd73203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73203fooEv,_ZThn16_N6dd73203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73203fooEv,_ZThn16_N6dd73203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73203fooEv,_ZTv0_n16_N6dd73203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73203fooEv,_ZThn8_N6dd73203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73203fooEv,_ZThn8_N6dd73203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee573203barEv,_ZTv0_n20_N7ee573203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee573203barEv,_ZThn8_N7ee573203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57320 = { "ee57320", // class name
+ bases_ee57320, 4,
+ &(vtc_ee57320[0]), // expected_vtbl_contents
+ &(vtt_ee57320[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee57320),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57320),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57320),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names199,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee67320 : dd7320 {
+ int e;
+ virtual void foo(); // _ZN7ee673203fooEv
+ virtual void bar(); // _ZN7ee673203barEv
+ ~ee67320(); // tgen
+ ee67320(); // tgen
+};
+//SIG(1 ee67320) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v1 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67320 ::foo(){vfunc_called(this, "_ZN7ee673203fooEv");}
+void ee67320 ::bar(){vfunc_called(this, "_ZN7ee673203barEv");}
+ee67320 ::~ee67320(){ note_dtor("ee67320", this);} // tgen
+ee67320 ::ee67320(){ note_ctor("ee67320", this);} // tgen
+
+static void Test_ee67320()
+{
+ extern Class_Descriptor cd_ee67320;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee67320, buf);
+ ee67320 *dp, &lv = *(dp=new (buf) ee67320());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee67320)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67320)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee67320");
+ check_base_class_offset(lv, (bb20*)(cc320*), ABISELECT(32,20), "ee67320");
+ check_base_class_offset(lv, (cc320*)(dd7320*), ABISELECT(16,12), "ee67320");
+ check_base_class_offset(lv, (dd7320*), 0, "ee67320");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67320.e");
+ test_class_info(&lv, &cd_ee67320);
+ dp->~ee67320();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67320(Test_ee67320, "ee67320", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee67320C1Ev();
+extern void _ZN7ee67320D1Ev();
+Name_Map name_map_ee67320[] = {
+ NSPAIR(_ZN7ee67320C1Ev),
+ NSPAIR(_ZN7ee67320D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc320;
+extern VTBL_ENTRY _ZTI5cc320[];
+extern VTBL_ENTRY _ZTV5cc320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc320[];
+extern Class_Descriptor cd_dd7320;
+extern VTBL_ENTRY _ZTI6dd7320[];
+extern VTBL_ENTRY _ZTV6dd7320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7320[];
+static Base_Class bases_ee67320[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc320, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7320, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67320[];
+extern void _ZN7ee673203barEv();
+extern void _ZN7ee673203fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee673203fooEv,_ZTv0_n16_N7ee673203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee673203fooEv,_ZThn12_N7ee673203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee673203fooEv,_ZTv0_n12_N7ee673203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee673203fooEv,_ZThn20_N7ee673203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67320[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67320[0]),
+ (VTBL_ENTRY)&_ZN7ee673203barEv,
+ (VTBL_ENTRY)&_ZN7ee673203fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee673203fooEv,_ZTv0_n16_N7ee673203fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee67320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee673203fooEv,_ZTv0_n12_N7ee673203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee67320[];
+extern void _ZN6dd73203barEv();
+extern void _ZN6dd73203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7320__7ee67320[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7320[0]),
+ (VTBL_ENTRY)&_ZN6dd73203barEv,
+ (VTBL_ENTRY)&_ZN6dd73203fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73203fooEv,_ZTv0_n16_N6dd73203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73203fooEv,_ZThn12_N6dd73203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc320__6dd7320__7ee67320[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73203fooEv,_ZTv0_n16_N6dd73203fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd73203fooEv,_ZTv0_n12_N6dd73203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73203fooEv,_ZThn20_N6dd73203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd7320__7ee67320[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73203fooEv,_ZTv0_n12_N6dd73203fooEv),
+};
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc320__7ee67320[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc320__7ee67320[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+static VTT_ENTRY vtt_ee67320[] = {
+ {&(_ZTV7ee67320[4]), 4,15},
+ {&(_tg__ZTV6dd7320__7ee67320[4]), 4,6},
+ {&(_tg__ZTV5cc320__6dd7320__7ee67320[4]), 4,5},
+ {&(_tg__ZTV4bb20__6dd7320__7ee67320[3]), 3,4},
+ {&(_ZTV7ee67320[10]), 10,15},
+ {&(_ZTV7ee67320[14]), 14,15},
+ {&(_tg__ZTV5cc320__7ee67320[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc320__7ee67320[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee67320[];
+extern VTBL_ENTRY _ZTV7ee67320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67320[];
+static VTBL_ENTRY alt_thunk_names200[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73203fooEv,_ZTv0_n12_N6dd73203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73203fooEv,_ZThn20_N6dd73203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73203fooEv,_ZTv0_n16_N6dd73203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73203fooEv,_ZThn12_N6dd73203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee673203fooEv,_ZTv0_n12_N7ee673203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee673203fooEv,_ZThn20_N7ee673203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee673203fooEv,_ZTv0_n16_N7ee673203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee673203fooEv,_ZThn12_N7ee673203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67320 = { "ee67320", // class name
+ bases_ee67320, 4,
+ &(vtc_ee67320[0]), // expected_vtbl_contents
+ &(vtt_ee67320[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee67320),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67320),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67320),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names200,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee77320 : virtual dd7320 {
+ int e;
+ virtual void foo(); // _ZN7ee773203fooEv
+ virtual void bar(); // _ZN7ee773203barEv
+ ~ee77320(); // tgen
+ ee77320(); // tgen
+};
+//SIG(1 ee77320) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v1 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77320 ::foo(){vfunc_called(this, "_ZN7ee773203fooEv");}
+void ee77320 ::bar(){vfunc_called(this, "_ZN7ee773203barEv");}
+ee77320 ::~ee77320(){ note_dtor("ee77320", this);} // tgen
+ee77320 ::ee77320(){ note_ctor("ee77320", this);} // tgen
+
+static void Test_ee77320()
+{
+ extern Class_Descriptor cd_ee77320;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee77320, buf);
+ ee77320 *dp, &lv = *(dp=new (buf) ee77320());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee77320)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77320)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(56,28), "ee77320");
+ check_base_class_offset(lv, (bb20*)(cc320*), ABISELECT(48,24), "ee77320");
+ check_base_class_offset(lv, (cc320*)(dd7320*), ABISELECT(32,16), "ee77320");
+ check_base_class_offset(lv, (dd7320*), ABISELECT(16,8), "ee77320");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77320.e");
+ test_class_info(&lv, &cd_ee77320);
+ dp->~ee77320();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77320(Test_ee77320, "ee77320", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee77320C1Ev();
+extern void _ZN7ee77320D1Ev();
+Name_Map name_map_ee77320[] = {
+ NSPAIR(_ZN7ee77320C1Ev),
+ NSPAIR(_ZN7ee77320D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc320;
+extern VTBL_ENTRY _ZTI5cc320[];
+extern VTBL_ENTRY _ZTV5cc320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc320[];
+extern Class_Descriptor cd_dd7320;
+extern VTBL_ENTRY _ZTI6dd7320[];
+extern VTBL_ENTRY _ZTV6dd7320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7320[];
+static Base_Class bases_ee77320[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(56,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc320, ABISELECT(32,16), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7320, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee77320[];
+extern void _ZN7ee773203fooEv();
+extern void _ZN7ee773203barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee773203barEv,_ZTv0_n20_N7ee773203barEv)();
+extern void ABISELECT(_ZThn16_N7ee773203barEv,_ZThn8_N7ee773203barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee773203fooEv,_ZTv0_n24_N7ee773203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee773203fooEv,_ZThn8_N7ee773203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee773203fooEv,_ZTv0_n16_N7ee773203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee773203fooEv,_ZThn16_N7ee773203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee773203fooEv,_ZTv0_n12_N7ee773203fooEv)();
+extern void ABISELECT(_ZThn48_N7ee773203fooEv,_ZThn24_N7ee773203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77320[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77320[0]),
+ (VTBL_ENTRY)&_ZN7ee773203fooEv,
+ (VTBL_ENTRY)&_ZN7ee773203barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee773203barEv,_ZTv0_n20_N7ee773203barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee773203fooEv,_ZTv0_n24_N7ee773203fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee773203fooEv,_ZTv0_n16_N7ee773203fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee77320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee773203fooEv,_ZTv0_n12_N7ee773203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee77320[];
+extern void _ZN6dd73203barEv();
+extern void _ZN6dd73203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7320__7ee77320[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7320[0]),
+ (VTBL_ENTRY)&_ZN6dd73203barEv,
+ (VTBL_ENTRY)&_ZN6dd73203fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73203fooEv,_ZTv0_n16_N6dd73203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73203fooEv,_ZThn8_N6dd73203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc320__6dd7320__7ee77320[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73203fooEv,_ZTv0_n16_N6dd73203fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd73203fooEv,_ZTv0_n12_N6dd73203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73203fooEv,_ZThn16_N6dd73203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd7320__7ee77320[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73203fooEv,_ZTv0_n12_N6dd73203fooEv),
+};
+extern void _ZN5cc3203fooEv();
+static VTBL_ENTRY _tg__ZTV5cc320__7ee77320[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&_ZN5cc3203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc320__7ee77320[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc320[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv),
+};
+static VTT_ENTRY vtt_ee77320[] = {
+ {&(_ZTV7ee77320[5]), 5,24},
+ {&(_ZTV7ee77320[13]), 13,24},
+ {&(_ZTV7ee77320[19]), 19,24},
+ {&(_ZTV7ee77320[23]), 23,24},
+ {&(_tg__ZTV6dd7320__7ee77320[4]), 4,6},
+ {&(_tg__ZTV5cc320__6dd7320__7ee77320[4]), 4,5},
+ {&(_tg__ZTV4bb20__6dd7320__7ee77320[3]), 3,4},
+ {&(_tg__ZTV5cc320__7ee77320[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc320__7ee77320[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee77320[];
+extern VTBL_ENTRY _ZTV7ee77320[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77320[];
+static VTBL_ENTRY alt_thunk_names201[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3203fooEv,_ZTv0_n12_N5cc3203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3203fooEv,_ZThn8_N5cc3203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73203fooEv,_ZTv0_n12_N6dd73203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73203fooEv,_ZThn16_N6dd73203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73203fooEv,_ZTv0_n16_N6dd73203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73203fooEv,_ZThn8_N6dd73203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee773203fooEv,_ZTv0_n12_N7ee773203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee773203fooEv,_ZThn24_N7ee773203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee773203fooEv,_ZTv0_n16_N7ee773203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee773203fooEv,_ZThn16_N7ee773203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee773203fooEv,_ZTv0_n24_N7ee773203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee773203fooEv,_ZThn8_N7ee773203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee773203barEv,_ZTv0_n20_N7ee773203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee773203barEv,_ZThn8_N7ee773203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77320 = { "ee77320", // class name
+ bases_ee77320, 4,
+ &(vtc_ee77320[0]), // expected_vtbl_contents
+ &(vtt_ee77320[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee77320),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77320),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77320),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names201,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc420 : bb20 {
+ int c;
+ virtual void bar(); // _ZN5cc4203barEv
+ ~cc420(); // tgen
+ cc420(); // tgen
+};
+//SIG(-1 cc420) C1{ BC2{ BC3{ Fi} v2 Fi} v1 Fi}
+
+
+void cc420 ::bar(){vfunc_called(this, "_ZN5cc4203barEv");}
+cc420 ::~cc420(){ note_dtor("cc420", this);} // tgen
+cc420 ::cc420(){ note_ctor("cc420", this);} // tgen
+
+static void Test_cc420()
+{
+ extern Class_Descriptor cd_cc420;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,5)];
+ init_test(&cd_cc420, buf);
+ cc420 *dp, &lv = *(dp=new (buf) cc420());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,16), "sizeof(cc420)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc420)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(8,4), "cc420");
+ check_base_class_offset(lv, (bb20*), 0, "cc420");
+ check_field_offset(lv, c, ABISELECT(16,12), "cc420.c");
+ test_class_info(&lv, &cd_cc420);
+ dp->~cc420();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc420(Test_cc420, "cc420", ABISELECT(24,16));
+
+#else // __cplusplus
+
+extern void _ZN5cc420C1Ev();
+extern void _ZN5cc420D1Ev();
+Name_Map name_map_cc420[] = {
+ NSPAIR(_ZN5cc420C1Ev),
+ NSPAIR(_ZN5cc420D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+static Base_Class bases_cc420[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(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 _ZTI5cc420[];
+extern void _ZN4bb203fooEv();
+extern void _ZN5cc4203barEv();
+static VTBL_ENTRY vtc_cc420[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc420[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+ (VTBL_ENTRY)&_ZN5cc4203barEv,
+};
+extern VTBL_ENTRY _ZTI5cc420[];
+extern VTBL_ENTRY _ZTV5cc420[];
+Class_Descriptor cd_cc420 = { "cc420", // class name
+ bases_cc420, 2,
+ &(vtc_cc420[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,16), // object size
+ NSPAIRA(_ZTI5cc420),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV5cc420),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 dd0420 : cc420 {
+ int d;
+ ~dd0420(); // tgen
+ dd0420(); // tgen
+};
+//SIG(-1 dd0420) C1{ BC2{ BC3{ BC4{ Fi} v2 Fi} v1 Fi} Fi}
+
+
+dd0420 ::~dd0420(){ note_dtor("dd0420", this);} // tgen
+dd0420 ::dd0420(){ note_ctor("dd0420", this);} // tgen
+
+static void Test_dd0420()
+{
+ extern Class_Descriptor cd_dd0420;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd0420, buf);
+ dd0420 *dp, &lv = *(dp=new (buf) dd0420());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd0420)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0420)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc420*), ABISELECT(8,4), "dd0420");
+ check_base_class_offset(lv, (bb20*)(cc420*), 0, "dd0420");
+ check_base_class_offset(lv, (cc420*), 0, "dd0420");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd0420.d");
+ test_class_info(&lv, &cd_dd0420);
+ dp->~dd0420();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0420(Test_dd0420, "dd0420", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd0420C1Ev();
+extern void _ZN6dd0420D1Ev();
+Name_Map name_map_dd0420[] = {
+ NSPAIR(_ZN6dd0420C1Ev),
+ NSPAIR(_ZN6dd0420D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc420;
+extern VTBL_ENTRY _ZTI5cc420[];
+extern VTBL_ENTRY _ZTV5cc420[];
+static Base_Class bases_dd0420[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc420, 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 _ZTI6dd0420[];
+extern void _ZN4bb203fooEv();
+extern void _ZN5cc4203barEv();
+static VTBL_ENTRY vtc_dd0420[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0420[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+ (VTBL_ENTRY)&_ZN5cc4203barEv,
+};
+extern VTBL_ENTRY _ZTI6dd0420[];
+extern VTBL_ENTRY _ZTV6dd0420[];
+Class_Descriptor cd_dd0420 = { "dd0420", // class name
+ bases_dd0420, 3,
+ &(vtc_dd0420[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd0420),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0420),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 ee00420 : dd0420 {
+ int e;
+ ~ee00420(); // tgen
+ ee00420(); // tgen
+};
+//SIG(1 ee00420) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v2 Fi} v1 Fi} Fi} Fi}
+
+
+ee00420 ::~ee00420(){ note_dtor("ee00420", this);} // tgen
+ee00420 ::ee00420(){ note_ctor("ee00420", this);} // tgen
+
+static void Test_ee00420()
+{
+ extern Class_Descriptor cd_ee00420;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee00420, buf);
+ ee00420 *dp, &lv = *(dp=new (buf) ee00420());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee00420)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00420)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc420*)(dd0420*), ABISELECT(8,4), "ee00420");
+ check_base_class_offset(lv, (bb20*)(cc420*)(dd0420*), 0, "ee00420");
+ check_base_class_offset(lv, (cc420*)(dd0420*), 0, "ee00420");
+ check_base_class_offset(lv, (dd0420*), 0, "ee00420");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee00420.e");
+ test_class_info(&lv, &cd_ee00420);
+ dp->~ee00420();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00420(Test_ee00420, "ee00420", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee00420C1Ev();
+extern void _ZN7ee00420D1Ev();
+Name_Map name_map_ee00420[] = {
+ NSPAIR(_ZN7ee00420C1Ev),
+ NSPAIR(_ZN7ee00420D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc420;
+extern VTBL_ENTRY _ZTI5cc420[];
+extern VTBL_ENTRY _ZTV5cc420[];
+extern Class_Descriptor cd_dd0420;
+extern VTBL_ENTRY _ZTI6dd0420[];
+extern VTBL_ENTRY _ZTV6dd0420[];
+static Base_Class bases_ee00420[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc420, 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
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0420, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee00420[];
+extern void _ZN4bb203fooEv();
+extern void _ZN5cc4203barEv();
+static VTBL_ENTRY vtc_ee00420[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00420[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+ (VTBL_ENTRY)&_ZN5cc4203barEv,
+};
+extern VTBL_ENTRY _ZTI7ee00420[];
+extern VTBL_ENTRY _ZTV7ee00420[];
+Class_Descriptor cd_ee00420 = { "ee00420", // class name
+ bases_ee00420, 4,
+ &(vtc_ee00420[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee00420),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00420),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 ee10420 : virtual dd0420 {
+ int e;
+ ~ee10420(); // tgen
+ ee10420(); // tgen
+};
+//SIG(1 ee10420) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v2 Fi} v1 Fi} Fi} Fi}
+
+
+ee10420 ::~ee10420(){ note_dtor("ee10420", this);} // tgen
+ee10420 ::ee10420(){ note_ctor("ee10420", this);} // tgen
+
+static void Test_ee10420()
+{
+ extern Class_Descriptor cd_ee10420;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee10420, buf);
+ ee10420 *dp, &lv = *(dp=new (buf) ee10420());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee10420)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10420)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc420*)(dd0420*), ABISELECT(24,12), "ee10420");
+ check_base_class_offset(lv, (bb20*)(cc420*)(dd0420*), ABISELECT(16,8), "ee10420");
+ check_base_class_offset(lv, (cc420*)(dd0420*), ABISELECT(16,8), "ee10420");
+ check_base_class_offset(lv, (dd0420*), ABISELECT(16,8), "ee10420");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10420.e");
+ test_class_info(&lv, &cd_ee10420);
+ dp->~ee10420();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10420(Test_ee10420, "ee10420", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee10420C1Ev();
+extern void _ZN7ee10420D1Ev();
+Name_Map name_map_ee10420[] = {
+ NSPAIR(_ZN7ee10420C1Ev),
+ NSPAIR(_ZN7ee10420D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc420;
+extern VTBL_ENTRY _ZTI5cc420[];
+extern VTBL_ENTRY _ZTV5cc420[];
+extern Class_Descriptor cd_dd0420;
+extern VTBL_ENTRY _ZTI6dd0420[];
+extern VTBL_ENTRY _ZTV6dd0420[];
+static Base_Class bases_ee10420[] = {
+ // 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_bb20, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc420, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0420, 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 _ZTI7ee10420[];
+extern void _ZN4bb203fooEv();
+extern void _ZN5cc4203barEv();
+static VTBL_ENTRY vtc_ee10420[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10420[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10420[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+ (VTBL_ENTRY)&_ZN5cc4203barEv,
+};
+extern VTBL_ENTRY _ZTV7ee10420[];
+static VTT_ENTRY vtt_ee10420[] = {
+ {&(_ZTV7ee10420[3]), 3,9},
+ {&(_ZTV7ee10420[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee10420[];
+extern VTBL_ENTRY _ZTV7ee10420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10420[];
+Class_Descriptor cd_ee10420 = { "ee10420", // class name
+ bases_ee10420, 4,
+ &(vtc_ee10420[0]), // expected_vtbl_contents
+ &(vtt_ee10420[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee10420),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10420),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10420),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 ee20420 : dd0420 {
+ int e;
+ virtual void foo(); // _ZN7ee204203fooEv
+ ~ee20420(); // tgen
+ ee20420(); // tgen
+};
+//SIG(1 ee20420) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v1 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee20420 ::foo(){vfunc_called(this, "_ZN7ee204203fooEv");}
+ee20420 ::~ee20420(){ note_dtor("ee20420", this);} // tgen
+ee20420 ::ee20420(){ note_ctor("ee20420", this);} // tgen
+
+static void Test_ee20420()
+{
+ extern Class_Descriptor cd_ee20420;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee20420, buf);
+ ee20420 *dp, &lv = *(dp=new (buf) ee20420());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee20420)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20420)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc420*)(dd0420*), ABISELECT(8,4), "ee20420");
+ check_base_class_offset(lv, (bb20*)(cc420*)(dd0420*), 0, "ee20420");
+ check_base_class_offset(lv, (cc420*)(dd0420*), 0, "ee20420");
+ check_base_class_offset(lv, (dd0420*), 0, "ee20420");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee20420.e");
+ test_class_info(&lv, &cd_ee20420);
+ dp->~ee20420();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20420(Test_ee20420, "ee20420", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee20420C1Ev();
+extern void _ZN7ee20420D1Ev();
+Name_Map name_map_ee20420[] = {
+ NSPAIR(_ZN7ee20420C1Ev),
+ NSPAIR(_ZN7ee20420D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc420;
+extern VTBL_ENTRY _ZTI5cc420[];
+extern VTBL_ENTRY _ZTV5cc420[];
+extern Class_Descriptor cd_dd0420;
+extern VTBL_ENTRY _ZTI6dd0420[];
+extern VTBL_ENTRY _ZTV6dd0420[];
+static Base_Class bases_ee20420[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc420, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0420, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee20420[];
+extern void _ZN7ee204203fooEv();
+extern void _ZN5cc4203barEv();
+static VTBL_ENTRY vtc_ee20420[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20420[0]),
+ (VTBL_ENTRY)&_ZN7ee204203fooEv,
+ (VTBL_ENTRY)&_ZN5cc4203barEv,
+};
+extern VTBL_ENTRY _ZTI7ee20420[];
+extern VTBL_ENTRY _ZTV7ee20420[];
+Class_Descriptor cd_ee20420 = { "ee20420", // class name
+ bases_ee20420, 4,
+ &(vtc_ee20420[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee20420),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20420),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 ee30420 : virtual dd0420 {
+ int e;
+ virtual void foo(); // _ZN7ee304203fooEv
+ ~ee30420(); // tgen
+ ee30420(); // tgen
+};
+//SIG(1 ee30420) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v1 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee30420 ::foo(){vfunc_called(this, "_ZN7ee304203fooEv");}
+ee30420 ::~ee30420(){ note_dtor("ee30420", this);} // tgen
+ee30420 ::ee30420(){ note_ctor("ee30420", this);} // tgen
+
+static void Test_ee30420()
+{
+ extern Class_Descriptor cd_ee30420;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee30420, buf);
+ ee30420 *dp, &lv = *(dp=new (buf) ee30420());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee30420)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30420)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc420*)(dd0420*), ABISELECT(24,12), "ee30420");
+ check_base_class_offset(lv, (bb20*)(cc420*)(dd0420*), ABISELECT(16,8), "ee30420");
+ check_base_class_offset(lv, (cc420*)(dd0420*), ABISELECT(16,8), "ee30420");
+ check_base_class_offset(lv, (dd0420*), ABISELECT(16,8), "ee30420");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30420.e");
+ test_class_info(&lv, &cd_ee30420);
+ dp->~ee30420();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30420(Test_ee30420, "ee30420", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee30420C1Ev();
+extern void _ZN7ee30420D1Ev();
+Name_Map name_map_ee30420[] = {
+ NSPAIR(_ZN7ee30420C1Ev),
+ NSPAIR(_ZN7ee30420D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc420;
+extern VTBL_ENTRY _ZTI5cc420[];
+extern VTBL_ENTRY _ZTV5cc420[];
+extern Class_Descriptor cd_dd0420;
+extern VTBL_ENTRY _ZTI6dd0420[];
+extern VTBL_ENTRY _ZTV6dd0420[];
+static Base_Class bases_ee30420[] = {
+ // 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_bb20, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc420, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0420, 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 _ZTI7ee30420[];
+extern void _ZN7ee304203fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee304203fooEv,_ZTv0_n12_N7ee304203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee304203fooEv,_ZThn8_N7ee304203fooEv)() __attribute__((weak));
+extern void _ZN5cc4203barEv();
+static VTBL_ENTRY vtc_ee30420[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30420[0]),
+ (VTBL_ENTRY)&_ZN7ee304203fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30420[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee304203fooEv,_ZTv0_n12_N7ee304203fooEv),
+ (VTBL_ENTRY)&_ZN5cc4203barEv,
+};
+extern VTBL_ENTRY _ZTV7ee30420[];
+static VTT_ENTRY vtt_ee30420[] = {
+ {&(_ZTV7ee30420[3]), 3,10},
+ {&(_ZTV7ee30420[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee30420[];
+extern VTBL_ENTRY _ZTV7ee30420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30420[];
+static VTBL_ENTRY alt_thunk_names202[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee304203fooEv,_ZTv0_n12_N7ee304203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee304203fooEv,_ZThn8_N7ee304203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30420 = { "ee30420", // class name
+ bases_ee30420, 4,
+ &(vtc_ee30420[0]), // expected_vtbl_contents
+ &(vtt_ee30420[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee30420),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30420),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30420),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names202,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee40420 : dd0420 {
+ int e;
+ virtual void bar(); // _ZN7ee404203barEv
+ ~ee40420(); // tgen
+ ee40420(); // tgen
+};
+//SIG(1 ee40420) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v2 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee40420 ::bar(){vfunc_called(this, "_ZN7ee404203barEv");}
+ee40420 ::~ee40420(){ note_dtor("ee40420", this);} // tgen
+ee40420 ::ee40420(){ note_ctor("ee40420", this);} // tgen
+
+static void Test_ee40420()
+{
+ extern Class_Descriptor cd_ee40420;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee40420, buf);
+ ee40420 *dp, &lv = *(dp=new (buf) ee40420());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee40420)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40420)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc420*)(dd0420*), ABISELECT(8,4), "ee40420");
+ check_base_class_offset(lv, (bb20*)(cc420*)(dd0420*), 0, "ee40420");
+ check_base_class_offset(lv, (cc420*)(dd0420*), 0, "ee40420");
+ check_base_class_offset(lv, (dd0420*), 0, "ee40420");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee40420.e");
+ test_class_info(&lv, &cd_ee40420);
+ dp->~ee40420();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40420(Test_ee40420, "ee40420", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee40420C1Ev();
+extern void _ZN7ee40420D1Ev();
+Name_Map name_map_ee40420[] = {
+ NSPAIR(_ZN7ee40420C1Ev),
+ NSPAIR(_ZN7ee40420D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc420;
+extern VTBL_ENTRY _ZTI5cc420[];
+extern VTBL_ENTRY _ZTV5cc420[];
+extern Class_Descriptor cd_dd0420;
+extern VTBL_ENTRY _ZTI6dd0420[];
+extern VTBL_ENTRY _ZTV6dd0420[];
+static Base_Class bases_ee40420[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc420, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0420, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee40420[];
+extern void _ZN4bb203fooEv();
+extern void _ZN7ee404203barEv();
+static VTBL_ENTRY vtc_ee40420[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40420[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+ (VTBL_ENTRY)&_ZN7ee404203barEv,
+};
+extern VTBL_ENTRY _ZTI7ee40420[];
+extern VTBL_ENTRY _ZTV7ee40420[];
+Class_Descriptor cd_ee40420 = { "ee40420", // class name
+ bases_ee40420, 4,
+ &(vtc_ee40420[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee40420),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40420),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 ee50420 : virtual dd0420 {
+ int e;
+ virtual void bar(); // _ZN7ee504203barEv
+ ~ee50420(); // tgen
+ ee50420(); // tgen
+};
+//SIG(1 ee50420) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v2 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee50420 ::bar(){vfunc_called(this, "_ZN7ee504203barEv");}
+ee50420 ::~ee50420(){ note_dtor("ee50420", this);} // tgen
+ee50420 ::ee50420(){ note_ctor("ee50420", this);} // tgen
+
+static void Test_ee50420()
+{
+ extern Class_Descriptor cd_ee50420;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee50420, buf);
+ ee50420 *dp, &lv = *(dp=new (buf) ee50420());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee50420)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50420)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc420*)(dd0420*), ABISELECT(24,12), "ee50420");
+ check_base_class_offset(lv, (bb20*)(cc420*)(dd0420*), ABISELECT(16,8), "ee50420");
+ check_base_class_offset(lv, (cc420*)(dd0420*), ABISELECT(16,8), "ee50420");
+ check_base_class_offset(lv, (dd0420*), ABISELECT(16,8), "ee50420");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50420.e");
+ test_class_info(&lv, &cd_ee50420);
+ dp->~ee50420();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50420(Test_ee50420, "ee50420", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee50420C1Ev();
+extern void _ZN7ee50420D1Ev();
+Name_Map name_map_ee50420[] = {
+ NSPAIR(_ZN7ee50420C1Ev),
+ NSPAIR(_ZN7ee50420D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc420;
+extern VTBL_ENTRY _ZTI5cc420[];
+extern VTBL_ENTRY _ZTV5cc420[];
+extern Class_Descriptor cd_dd0420;
+extern VTBL_ENTRY _ZTI6dd0420[];
+extern VTBL_ENTRY _ZTV6dd0420[];
+static Base_Class bases_ee50420[] = {
+ // 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_bb20, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc420, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0420, 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 _ZTI7ee50420[];
+extern void _ZN7ee504203barEv();
+extern void _ZN4bb203fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee504203barEv,_ZTv0_n16_N7ee504203barEv)();
+extern void ABISELECT(_ZThn16_N7ee504203barEv,_ZThn8_N7ee504203barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee50420[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50420[0]),
+ (VTBL_ENTRY)&_ZN7ee504203barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50420[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee504203barEv,_ZTv0_n16_N7ee504203barEv),
+};
+extern VTBL_ENTRY _ZTV7ee50420[];
+static VTT_ENTRY vtt_ee50420[] = {
+ {&(_ZTV7ee50420[3]), 3,10},
+ {&(_ZTV7ee50420[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee50420[];
+extern VTBL_ENTRY _ZTV7ee50420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50420[];
+static VTBL_ENTRY alt_thunk_names203[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee504203barEv,_ZTv0_n16_N7ee504203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee504203barEv,_ZThn8_N7ee504203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50420 = { "ee50420", // class name
+ bases_ee50420, 4,
+ &(vtc_ee50420[0]), // expected_vtbl_contents
+ &(vtt_ee50420[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee50420),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50420),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50420),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names203,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee60420 : dd0420 {
+ int e;
+ virtual void foo(); // _ZN7ee604203fooEv
+ virtual void bar(); // _ZN7ee604203barEv
+ ~ee60420(); // tgen
+ ee60420(); // tgen
+};
+//SIG(1 ee60420) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v1 Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee60420 ::foo(){vfunc_called(this, "_ZN7ee604203fooEv");}
+void ee60420 ::bar(){vfunc_called(this, "_ZN7ee604203barEv");}
+ee60420 ::~ee60420(){ note_dtor("ee60420", this);} // tgen
+ee60420 ::ee60420(){ note_ctor("ee60420", this);} // tgen
+
+static void Test_ee60420()
+{
+ extern Class_Descriptor cd_ee60420;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee60420, buf);
+ ee60420 *dp, &lv = *(dp=new (buf) ee60420());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee60420)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60420)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc420*)(dd0420*), ABISELECT(8,4), "ee60420");
+ check_base_class_offset(lv, (bb20*)(cc420*)(dd0420*), 0, "ee60420");
+ check_base_class_offset(lv, (cc420*)(dd0420*), 0, "ee60420");
+ check_base_class_offset(lv, (dd0420*), 0, "ee60420");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee60420.e");
+ test_class_info(&lv, &cd_ee60420);
+ dp->~ee60420();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60420(Test_ee60420, "ee60420", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee60420C1Ev();
+extern void _ZN7ee60420D1Ev();
+Name_Map name_map_ee60420[] = {
+ NSPAIR(_ZN7ee60420C1Ev),
+ NSPAIR(_ZN7ee60420D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc420;
+extern VTBL_ENTRY _ZTI5cc420[];
+extern VTBL_ENTRY _ZTV5cc420[];
+extern Class_Descriptor cd_dd0420;
+extern VTBL_ENTRY _ZTI6dd0420[];
+extern VTBL_ENTRY _ZTV6dd0420[];
+static Base_Class bases_ee60420[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc420, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0420, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee60420[];
+extern void _ZN7ee604203fooEv();
+extern void _ZN7ee604203barEv();
+static VTBL_ENTRY vtc_ee60420[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60420[0]),
+ (VTBL_ENTRY)&_ZN7ee604203fooEv,
+ (VTBL_ENTRY)&_ZN7ee604203barEv,
+};
+extern VTBL_ENTRY _ZTI7ee60420[];
+extern VTBL_ENTRY _ZTV7ee60420[];
+Class_Descriptor cd_ee60420 = { "ee60420", // class name
+ bases_ee60420, 4,
+ &(vtc_ee60420[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee60420),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60420),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 ee70420 : virtual dd0420 {
+ int e;
+ virtual void foo(); // _ZN7ee704203fooEv
+ virtual void bar(); // _ZN7ee704203barEv
+ ~ee70420(); // tgen
+ ee70420(); // tgen
+};
+//SIG(1 ee70420) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v1 Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee70420 ::foo(){vfunc_called(this, "_ZN7ee704203fooEv");}
+void ee70420 ::bar(){vfunc_called(this, "_ZN7ee704203barEv");}
+ee70420 ::~ee70420(){ note_dtor("ee70420", this);} // tgen
+ee70420 ::ee70420(){ note_ctor("ee70420", this);} // tgen
+
+static void Test_ee70420()
+{
+ extern Class_Descriptor cd_ee70420;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee70420, buf);
+ ee70420 *dp, &lv = *(dp=new (buf) ee70420());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee70420)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70420)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc420*)(dd0420*), ABISELECT(24,12), "ee70420");
+ check_base_class_offset(lv, (bb20*)(cc420*)(dd0420*), ABISELECT(16,8), "ee70420");
+ check_base_class_offset(lv, (cc420*)(dd0420*), ABISELECT(16,8), "ee70420");
+ check_base_class_offset(lv, (dd0420*), ABISELECT(16,8), "ee70420");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70420.e");
+ test_class_info(&lv, &cd_ee70420);
+ dp->~ee70420();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70420(Test_ee70420, "ee70420", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee70420C1Ev();
+extern void _ZN7ee70420D1Ev();
+Name_Map name_map_ee70420[] = {
+ NSPAIR(_ZN7ee70420C1Ev),
+ NSPAIR(_ZN7ee70420D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc420;
+extern VTBL_ENTRY _ZTI5cc420[];
+extern VTBL_ENTRY _ZTV5cc420[];
+extern Class_Descriptor cd_dd0420;
+extern VTBL_ENTRY _ZTI6dd0420[];
+extern VTBL_ENTRY _ZTV6dd0420[];
+static Base_Class bases_ee70420[] = {
+ // 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_bb20, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc420, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0420, 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 _ZTI7ee70420[];
+extern void _ZN7ee704203fooEv();
+extern void _ZN7ee704203barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee704203fooEv,_ZTv0_n12_N7ee704203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee704203fooEv,_ZThn8_N7ee704203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee704203barEv,_ZTv0_n16_N7ee704203barEv)();
+extern void ABISELECT(_ZThn16_N7ee704203barEv,_ZThn8_N7ee704203barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70420[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70420[0]),
+ (VTBL_ENTRY)&_ZN7ee704203fooEv,
+ (VTBL_ENTRY)&_ZN7ee704203barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70420[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee704203fooEv,_ZTv0_n12_N7ee704203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee704203barEv,_ZTv0_n16_N7ee704203barEv),
+};
+extern VTBL_ENTRY _ZTV7ee70420[];
+static VTT_ENTRY vtt_ee70420[] = {
+ {&(_ZTV7ee70420[3]), 3,11},
+ {&(_ZTV7ee70420[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee70420[];
+extern VTBL_ENTRY _ZTV7ee70420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70420[];
+static VTBL_ENTRY alt_thunk_names204[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee704203barEv,_ZTv0_n16_N7ee704203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee704203barEv,_ZThn8_N7ee704203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee704203fooEv,_ZTv0_n12_N7ee704203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee704203fooEv,_ZThn8_N7ee704203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70420 = { "ee70420", // class name
+ bases_ee70420, 4,
+ &(vtc_ee70420[0]), // expected_vtbl_contents
+ &(vtt_ee70420[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee70420),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70420),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70420),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names204,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd1420 : virtual cc420 {
+ int d;
+ ~dd1420(); // tgen
+ dd1420(); // tgen
+};
+//SIG(-1 dd1420) C1{ VBC2{ BC3{ BC4{ Fi} v2 Fi} v1 Fi} Fi}
+
+
+dd1420 ::~dd1420(){ note_dtor("dd1420", this);} // tgen
+dd1420 ::dd1420(){ note_ctor("dd1420", this);} // tgen
+
+static void Test_dd1420()
+{
+ extern Class_Descriptor cd_dd1420;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd1420, buf);
+ dd1420 *dp, &lv = *(dp=new (buf) dd1420());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd1420)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1420)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc420*), ABISELECT(24,12), "dd1420");
+ check_base_class_offset(lv, (bb20*)(cc420*), ABISELECT(16,8), "dd1420");
+ check_base_class_offset(lv, (cc420*), ABISELECT(16,8), "dd1420");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1420.d");
+ test_class_info(&lv, &cd_dd1420);
+ dp->~dd1420();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1420(Test_dd1420, "dd1420", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd1420C1Ev();
+extern void _ZN6dd1420D1Ev();
+Name_Map name_map_dd1420[] = {
+ NSPAIR(_ZN6dd1420C1Ev),
+ NSPAIR(_ZN6dd1420D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc420;
+extern VTBL_ENTRY _ZTI5cc420[];
+extern VTBL_ENTRY _ZTV5cc420[];
+static Base_Class bases_dd1420[] = {
+ // 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_bb20, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc420, 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 _ZTI6dd1420[];
+extern void _ZN4bb203fooEv();
+extern void _ZN5cc4203barEv();
+static VTBL_ENTRY vtc_dd1420[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1420[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1420[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+ (VTBL_ENTRY)&_ZN5cc4203barEv,
+};
+extern VTBL_ENTRY _ZTV6dd1420[];
+static VTT_ENTRY vtt_dd1420[] = {
+ {&(_ZTV6dd1420[3]), 3,9},
+ {&(_ZTV6dd1420[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI6dd1420[];
+extern VTBL_ENTRY _ZTV6dd1420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1420[];
+Class_Descriptor cd_dd1420 = { "dd1420", // class name
+ bases_dd1420, 3,
+ &(vtc_dd1420[0]), // expected_vtbl_contents
+ &(vtt_dd1420[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd1420),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1420),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1420),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 ee01420 : dd1420 {
+ int e;
+ ~ee01420(); // tgen
+ ee01420(); // tgen
+};
+//SIG(1 ee01420) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v2 Fi} v1 Fi} Fi} Fi}
+
+
+ee01420 ::~ee01420(){ note_dtor("ee01420", this);} // tgen
+ee01420 ::ee01420(){ note_ctor("ee01420", this);} // tgen
+
+static void Test_ee01420()
+{
+ extern Class_Descriptor cd_ee01420;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee01420, buf);
+ ee01420 *dp, &lv = *(dp=new (buf) ee01420());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee01420)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01420)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc420*), ABISELECT(24,16), "ee01420");
+ check_base_class_offset(lv, (bb20*)(cc420*), ABISELECT(16,12), "ee01420");
+ check_base_class_offset(lv, (cc420*)(dd1420*), ABISELECT(16,12), "ee01420");
+ check_base_class_offset(lv, (dd1420*), 0, "ee01420");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01420.e");
+ test_class_info(&lv, &cd_ee01420);
+ dp->~ee01420();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01420(Test_ee01420, "ee01420", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee01420C1Ev();
+extern void _ZN7ee01420D1Ev();
+Name_Map name_map_ee01420[] = {
+ NSPAIR(_ZN7ee01420C1Ev),
+ NSPAIR(_ZN7ee01420D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc420;
+extern VTBL_ENTRY _ZTI5cc420[];
+extern VTBL_ENTRY _ZTV5cc420[];
+extern Class_Descriptor cd_dd1420;
+extern VTBL_ENTRY _ZTI6dd1420[];
+extern VTBL_ENTRY _ZTV6dd1420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1420[];
+static Base_Class bases_ee01420[] = {
+ // 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_bb20, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc420, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1420, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee01420[];
+extern void _ZN4bb203fooEv();
+extern void _ZN5cc4203barEv();
+static VTBL_ENTRY vtc_ee01420[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01420[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01420[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+ (VTBL_ENTRY)&_ZN5cc4203barEv,
+};
+extern VTBL_ENTRY _ZTV7ee01420[];
+static VTBL_ENTRY _tg__ZTV6dd1420__7ee01420[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1420[0]),
+};
+extern void _ZN4bb203fooEv();
+extern void _ZN5cc4203barEv();
+static VTBL_ENTRY _tg__ZTV5cc420__6dd1420__7ee01420[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1420[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+ (VTBL_ENTRY)&_ZN5cc4203barEv,
+};
+static VTT_ENTRY vtt_ee01420[] = {
+ {&(_ZTV7ee01420[3]), 3,9},
+ {&(_tg__ZTV6dd1420__7ee01420[3]), 3,3},
+ {&(_tg__ZTV5cc420__6dd1420__7ee01420[4]), 4,6},
+ {&(_ZTV7ee01420[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee01420[];
+extern VTBL_ENTRY _ZTV7ee01420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01420[];
+Class_Descriptor cd_ee01420 = { "ee01420", // class name
+ bases_ee01420, 4,
+ &(vtc_ee01420[0]), // expected_vtbl_contents
+ &(vtt_ee01420[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee01420),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01420),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01420),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 ee11420 : virtual dd1420 {
+ int e;
+ ~ee11420(); // tgen
+ ee11420(); // tgen
+};
+//SIG(1 ee11420) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v2 Fi} v1 Fi} Fi} Fi}
+
+
+ee11420 ::~ee11420(){ note_dtor("ee11420", this);} // tgen
+ee11420 ::ee11420(){ note_ctor("ee11420", this);} // tgen
+
+static void Test_ee11420()
+{
+ extern Class_Descriptor cd_ee11420;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee11420, buf);
+ ee11420 *dp, &lv = *(dp=new (buf) ee11420());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee11420)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11420)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc420*), ABISELECT(40,20), "ee11420");
+ check_base_class_offset(lv, (bb20*)(cc420*), ABISELECT(32,16), "ee11420");
+ check_base_class_offset(lv, (cc420*)(dd1420*), ABISELECT(32,16), "ee11420");
+ check_base_class_offset(lv, (dd1420*), ABISELECT(16,8), "ee11420");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11420.e");
+ test_class_info(&lv, &cd_ee11420);
+ dp->~ee11420();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11420(Test_ee11420, "ee11420", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee11420C1Ev();
+extern void _ZN7ee11420D1Ev();
+Name_Map name_map_ee11420[] = {
+ NSPAIR(_ZN7ee11420C1Ev),
+ NSPAIR(_ZN7ee11420D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc420;
+extern VTBL_ENTRY _ZTI5cc420[];
+extern VTBL_ENTRY _ZTV5cc420[];
+extern Class_Descriptor cd_dd1420;
+extern VTBL_ENTRY _ZTI6dd1420[];
+extern VTBL_ENTRY _ZTV6dd1420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1420[];
+static Base_Class bases_ee11420[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc420, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1420, 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 _ZTI7ee11420[];
+extern void _ZN4bb203fooEv();
+extern void _ZN5cc4203barEv();
+static VTBL_ENTRY vtc_ee11420[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11420[0]),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11420[0]),
+ 0,
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11420[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+ (VTBL_ENTRY)&_ZN5cc4203barEv,
+};
+extern VTBL_ENTRY _ZTV7ee11420[];
+static VTBL_ENTRY _tg__ZTV6dd1420__7ee11420[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1420[0]),
+};
+extern void _ZN4bb203fooEv();
+extern void _ZN5cc4203barEv();
+static VTBL_ENTRY _tg__ZTV5cc420__6dd1420__7ee11420[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1420[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+ (VTBL_ENTRY)&_ZN5cc4203barEv,
+};
+static VTT_ENTRY vtt_ee11420[] = {
+ {&(_ZTV7ee11420[4]), 4,13},
+ {&(_ZTV7ee11420[7]), 7,13},
+ {&(_ZTV7ee11420[11]), 11,13},
+ {&(_tg__ZTV6dd1420__7ee11420[3]), 3,3},
+ {&(_tg__ZTV5cc420__6dd1420__7ee11420[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee11420[];
+extern VTBL_ENTRY _ZTV7ee11420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11420[];
+Class_Descriptor cd_ee11420 = { "ee11420", // class name
+ bases_ee11420, 4,
+ &(vtc_ee11420[0]), // expected_vtbl_contents
+ &(vtt_ee11420[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee11420),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11420),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11420),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 ee21420 : dd1420 {
+ int e;
+ virtual void foo(); // _ZN7ee214203fooEv
+ ~ee21420(); // tgen
+ ee21420(); // tgen
+};
+//SIG(1 ee21420) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v1 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee21420 ::foo(){vfunc_called(this, "_ZN7ee214203fooEv");}
+ee21420 ::~ee21420(){ note_dtor("ee21420", this);} // tgen
+ee21420 ::ee21420(){ note_ctor("ee21420", this);} // tgen
+
+static void Test_ee21420()
+{
+ extern Class_Descriptor cd_ee21420;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee21420, buf);
+ ee21420 *dp, &lv = *(dp=new (buf) ee21420());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee21420)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21420)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc420*), ABISELECT(24,16), "ee21420");
+ check_base_class_offset(lv, (bb20*)(cc420*), ABISELECT(16,12), "ee21420");
+ check_base_class_offset(lv, (cc420*)(dd1420*), ABISELECT(16,12), "ee21420");
+ check_base_class_offset(lv, (dd1420*), 0, "ee21420");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21420.e");
+ test_class_info(&lv, &cd_ee21420);
+ dp->~ee21420();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21420(Test_ee21420, "ee21420", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee21420C1Ev();
+extern void _ZN7ee21420D1Ev();
+Name_Map name_map_ee21420[] = {
+ NSPAIR(_ZN7ee21420C1Ev),
+ NSPAIR(_ZN7ee21420D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc420;
+extern VTBL_ENTRY _ZTI5cc420[];
+extern VTBL_ENTRY _ZTV5cc420[];
+extern Class_Descriptor cd_dd1420;
+extern VTBL_ENTRY _ZTI6dd1420[];
+extern VTBL_ENTRY _ZTV6dd1420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1420[];
+static Base_Class bases_ee21420[] = {
+ // 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_bb20, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc420, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1420, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee21420[];
+extern void _ZN7ee214203fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee214203fooEv,_ZTv0_n12_N7ee214203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee214203fooEv,_ZThn12_N7ee214203fooEv)() __attribute__((weak));
+extern void _ZN5cc4203barEv();
+static VTBL_ENTRY vtc_ee21420[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21420[0]),
+ (VTBL_ENTRY)&_ZN7ee214203fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21420[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee214203fooEv,_ZTv0_n12_N7ee214203fooEv),
+ (VTBL_ENTRY)&_ZN5cc4203barEv,
+};
+extern VTBL_ENTRY _ZTV7ee21420[];
+static VTBL_ENTRY _tg__ZTV6dd1420__7ee21420[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1420[0]),
+};
+extern void _ZN4bb203fooEv();
+extern void _ZN5cc4203barEv();
+static VTBL_ENTRY _tg__ZTV5cc420__6dd1420__7ee21420[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1420[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+ (VTBL_ENTRY)&_ZN5cc4203barEv,
+};
+static VTT_ENTRY vtt_ee21420[] = {
+ {&(_ZTV7ee21420[3]), 3,10},
+ {&(_tg__ZTV6dd1420__7ee21420[3]), 3,3},
+ {&(_tg__ZTV5cc420__6dd1420__7ee21420[4]), 4,6},
+ {&(_ZTV7ee21420[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee21420[];
+extern VTBL_ENTRY _ZTV7ee21420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21420[];
+static VTBL_ENTRY alt_thunk_names205[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee214203fooEv,_ZTv0_n12_N7ee214203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee214203fooEv,_ZThn12_N7ee214203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21420 = { "ee21420", // class name
+ bases_ee21420, 4,
+ &(vtc_ee21420[0]), // expected_vtbl_contents
+ &(vtt_ee21420[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee21420),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21420),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21420),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names205,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee31420 : virtual dd1420 {
+ int e;
+ virtual void foo(); // _ZN7ee314203fooEv
+ ~ee31420(); // tgen
+ ee31420(); // tgen
+};
+//SIG(1 ee31420) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v1 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee31420 ::foo(){vfunc_called(this, "_ZN7ee314203fooEv");}
+ee31420 ::~ee31420(){ note_dtor("ee31420", this);} // tgen
+ee31420 ::ee31420(){ note_ctor("ee31420", this);} // tgen
+
+static void Test_ee31420()
+{
+ extern Class_Descriptor cd_ee31420;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee31420, buf);
+ ee31420 *dp, &lv = *(dp=new (buf) ee31420());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee31420)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31420)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc420*), ABISELECT(40,20), "ee31420");
+ check_base_class_offset(lv, (bb20*)(cc420*), ABISELECT(32,16), "ee31420");
+ check_base_class_offset(lv, (cc420*)(dd1420*), ABISELECT(32,16), "ee31420");
+ check_base_class_offset(lv, (dd1420*), ABISELECT(16,8), "ee31420");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31420.e");
+ test_class_info(&lv, &cd_ee31420);
+ dp->~ee31420();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31420(Test_ee31420, "ee31420", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee31420C1Ev();
+extern void _ZN7ee31420D1Ev();
+Name_Map name_map_ee31420[] = {
+ NSPAIR(_ZN7ee31420C1Ev),
+ NSPAIR(_ZN7ee31420D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc420;
+extern VTBL_ENTRY _ZTI5cc420[];
+extern VTBL_ENTRY _ZTV5cc420[];
+extern Class_Descriptor cd_dd1420;
+extern VTBL_ENTRY _ZTI6dd1420[];
+extern VTBL_ENTRY _ZTV6dd1420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1420[];
+static Base_Class bases_ee31420[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc420, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1420, 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 _ZTI7ee31420[];
+extern void _ZN7ee314203fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee314203fooEv,_ZTv0_n12_N7ee314203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee314203fooEv,_ZThn16_N7ee314203fooEv)() __attribute__((weak));
+extern void _ZN5cc4203barEv();
+static VTBL_ENTRY vtc_ee31420[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31420[0]),
+ (VTBL_ENTRY)&_ZN7ee314203fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31420[0]),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31420[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee314203fooEv,_ZTv0_n12_N7ee314203fooEv),
+ (VTBL_ENTRY)&_ZN5cc4203barEv,
+};
+extern VTBL_ENTRY _ZTV7ee31420[];
+static VTBL_ENTRY _tg__ZTV6dd1420__7ee31420[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1420[0]),
+};
+extern void _ZN4bb203fooEv();
+extern void _ZN5cc4203barEv();
+static VTBL_ENTRY _tg__ZTV5cc420__6dd1420__7ee31420[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1420[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+ (VTBL_ENTRY)&_ZN5cc4203barEv,
+};
+static VTT_ENTRY vtt_ee31420[] = {
+ {&(_ZTV7ee31420[4]), 4,14},
+ {&(_ZTV7ee31420[8]), 8,14},
+ {&(_ZTV7ee31420[12]), 12,14},
+ {&(_tg__ZTV6dd1420__7ee31420[3]), 3,3},
+ {&(_tg__ZTV5cc420__6dd1420__7ee31420[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee31420[];
+extern VTBL_ENTRY _ZTV7ee31420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31420[];
+static VTBL_ENTRY alt_thunk_names206[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee314203fooEv,_ZTv0_n12_N7ee314203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee314203fooEv,_ZThn16_N7ee314203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31420 = { "ee31420", // class name
+ bases_ee31420, 4,
+ &(vtc_ee31420[0]), // expected_vtbl_contents
+ &(vtt_ee31420[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee31420),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31420),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31420),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names206,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee41420 : dd1420 {
+ int e;
+ virtual void bar(); // _ZN7ee414203barEv
+ ~ee41420(); // tgen
+ ee41420(); // tgen
+};
+//SIG(1 ee41420) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v2 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee41420 ::bar(){vfunc_called(this, "_ZN7ee414203barEv");}
+ee41420 ::~ee41420(){ note_dtor("ee41420", this);} // tgen
+ee41420 ::ee41420(){ note_ctor("ee41420", this);} // tgen
+
+static void Test_ee41420()
+{
+ extern Class_Descriptor cd_ee41420;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee41420, buf);
+ ee41420 *dp, &lv = *(dp=new (buf) ee41420());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee41420)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41420)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc420*), ABISELECT(24,16), "ee41420");
+ check_base_class_offset(lv, (bb20*)(cc420*), ABISELECT(16,12), "ee41420");
+ check_base_class_offset(lv, (cc420*)(dd1420*), ABISELECT(16,12), "ee41420");
+ check_base_class_offset(lv, (dd1420*), 0, "ee41420");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41420.e");
+ test_class_info(&lv, &cd_ee41420);
+ dp->~ee41420();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41420(Test_ee41420, "ee41420", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee41420C1Ev();
+extern void _ZN7ee41420D1Ev();
+Name_Map name_map_ee41420[] = {
+ NSPAIR(_ZN7ee41420C1Ev),
+ NSPAIR(_ZN7ee41420D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc420;
+extern VTBL_ENTRY _ZTI5cc420[];
+extern VTBL_ENTRY _ZTV5cc420[];
+extern Class_Descriptor cd_dd1420;
+extern VTBL_ENTRY _ZTI6dd1420[];
+extern VTBL_ENTRY _ZTV6dd1420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1420[];
+static Base_Class bases_ee41420[] = {
+ // 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_bb20, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc420, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1420, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee41420[];
+extern void _ZN7ee414203barEv();
+extern void _ZN4bb203fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee414203barEv,_ZTv0_n16_N7ee414203barEv)();
+extern void ABISELECT(_ZThn16_N7ee414203barEv,_ZThn12_N7ee414203barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee41420[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41420[0]),
+ (VTBL_ENTRY)&_ZN7ee414203barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41420[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee414203barEv,_ZTv0_n16_N7ee414203barEv),
+};
+extern VTBL_ENTRY _ZTV7ee41420[];
+static VTBL_ENTRY _tg__ZTV6dd1420__7ee41420[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1420[0]),
+};
+extern void _ZN4bb203fooEv();
+extern void _ZN5cc4203barEv();
+static VTBL_ENTRY _tg__ZTV5cc420__6dd1420__7ee41420[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1420[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+ (VTBL_ENTRY)&_ZN5cc4203barEv,
+};
+static VTT_ENTRY vtt_ee41420[] = {
+ {&(_ZTV7ee41420[3]), 3,10},
+ {&(_tg__ZTV6dd1420__7ee41420[3]), 3,3},
+ {&(_tg__ZTV5cc420__6dd1420__7ee41420[4]), 4,6},
+ {&(_ZTV7ee41420[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee41420[];
+extern VTBL_ENTRY _ZTV7ee41420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41420[];
+static VTBL_ENTRY alt_thunk_names207[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee414203barEv,_ZTv0_n16_N7ee414203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee414203barEv,_ZThn12_N7ee414203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41420 = { "ee41420", // class name
+ bases_ee41420, 4,
+ &(vtc_ee41420[0]), // expected_vtbl_contents
+ &(vtt_ee41420[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee41420),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41420),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41420),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names207,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee51420 : virtual dd1420 {
+ int e;
+ virtual void bar(); // _ZN7ee514203barEv
+ ~ee51420(); // tgen
+ ee51420(); // tgen
+};
+//SIG(1 ee51420) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v2 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee51420 ::bar(){vfunc_called(this, "_ZN7ee514203barEv");}
+ee51420 ::~ee51420(){ note_dtor("ee51420", this);} // tgen
+ee51420 ::ee51420(){ note_ctor("ee51420", this);} // tgen
+
+static void Test_ee51420()
+{
+ extern Class_Descriptor cd_ee51420;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee51420, buf);
+ ee51420 *dp, &lv = *(dp=new (buf) ee51420());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee51420)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51420)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc420*), ABISELECT(40,20), "ee51420");
+ check_base_class_offset(lv, (bb20*)(cc420*), ABISELECT(32,16), "ee51420");
+ check_base_class_offset(lv, (cc420*)(dd1420*), ABISELECT(32,16), "ee51420");
+ check_base_class_offset(lv, (dd1420*), ABISELECT(16,8), "ee51420");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51420.e");
+ test_class_info(&lv, &cd_ee51420);
+ dp->~ee51420();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51420(Test_ee51420, "ee51420", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee51420C1Ev();
+extern void _ZN7ee51420D1Ev();
+Name_Map name_map_ee51420[] = {
+ NSPAIR(_ZN7ee51420C1Ev),
+ NSPAIR(_ZN7ee51420D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc420;
+extern VTBL_ENTRY _ZTI5cc420[];
+extern VTBL_ENTRY _ZTV5cc420[];
+extern Class_Descriptor cd_dd1420;
+extern VTBL_ENTRY _ZTI6dd1420[];
+extern VTBL_ENTRY _ZTV6dd1420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1420[];
+static Base_Class bases_ee51420[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc420, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1420, 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 _ZTI7ee51420[];
+extern void _ZN7ee514203barEv();
+extern void _ZN4bb203fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee514203barEv,_ZTv0_n16_N7ee514203barEv)();
+extern void ABISELECT(_ZThn32_N7ee514203barEv,_ZThn16_N7ee514203barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee51420[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51420[0]),
+ (VTBL_ENTRY)&_ZN7ee514203barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51420[0]),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51420[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee514203barEv,_ZTv0_n16_N7ee514203barEv),
+};
+extern VTBL_ENTRY _ZTV7ee51420[];
+static VTBL_ENTRY _tg__ZTV6dd1420__7ee51420[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1420[0]),
+};
+extern void _ZN4bb203fooEv();
+extern void _ZN5cc4203barEv();
+static VTBL_ENTRY _tg__ZTV5cc420__6dd1420__7ee51420[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1420[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+ (VTBL_ENTRY)&_ZN5cc4203barEv,
+};
+static VTT_ENTRY vtt_ee51420[] = {
+ {&(_ZTV7ee51420[4]), 4,14},
+ {&(_ZTV7ee51420[8]), 8,14},
+ {&(_ZTV7ee51420[12]), 12,14},
+ {&(_tg__ZTV6dd1420__7ee51420[3]), 3,3},
+ {&(_tg__ZTV5cc420__6dd1420__7ee51420[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee51420[];
+extern VTBL_ENTRY _ZTV7ee51420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51420[];
+static VTBL_ENTRY alt_thunk_names208[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee514203barEv,_ZTv0_n16_N7ee514203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee514203barEv,_ZThn16_N7ee514203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51420 = { "ee51420", // class name
+ bases_ee51420, 4,
+ &(vtc_ee51420[0]), // expected_vtbl_contents
+ &(vtt_ee51420[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee51420),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51420),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51420),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names208,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee61420 : dd1420 {
+ int e;
+ virtual void foo(); // _ZN7ee614203fooEv
+ virtual void bar(); // _ZN7ee614203barEv
+ ~ee61420(); // tgen
+ ee61420(); // tgen
+};
+//SIG(1 ee61420) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v1 Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee61420 ::foo(){vfunc_called(this, "_ZN7ee614203fooEv");}
+void ee61420 ::bar(){vfunc_called(this, "_ZN7ee614203barEv");}
+ee61420 ::~ee61420(){ note_dtor("ee61420", this);} // tgen
+ee61420 ::ee61420(){ note_ctor("ee61420", this);} // tgen
+
+static void Test_ee61420()
+{
+ extern Class_Descriptor cd_ee61420;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee61420, buf);
+ ee61420 *dp, &lv = *(dp=new (buf) ee61420());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee61420)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61420)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc420*), ABISELECT(24,16), "ee61420");
+ check_base_class_offset(lv, (bb20*)(cc420*), ABISELECT(16,12), "ee61420");
+ check_base_class_offset(lv, (cc420*)(dd1420*), ABISELECT(16,12), "ee61420");
+ check_base_class_offset(lv, (dd1420*), 0, "ee61420");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61420.e");
+ test_class_info(&lv, &cd_ee61420);
+ dp->~ee61420();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61420(Test_ee61420, "ee61420", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee61420C1Ev();
+extern void _ZN7ee61420D1Ev();
+Name_Map name_map_ee61420[] = {
+ NSPAIR(_ZN7ee61420C1Ev),
+ NSPAIR(_ZN7ee61420D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc420;
+extern VTBL_ENTRY _ZTI5cc420[];
+extern VTBL_ENTRY _ZTV5cc420[];
+extern Class_Descriptor cd_dd1420;
+extern VTBL_ENTRY _ZTI6dd1420[];
+extern VTBL_ENTRY _ZTV6dd1420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1420[];
+static Base_Class bases_ee61420[] = {
+ // 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_bb20, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc420, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1420, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee61420[];
+extern void _ZN7ee614203fooEv();
+extern void _ZN7ee614203barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee614203fooEv,_ZTv0_n12_N7ee614203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee614203fooEv,_ZThn12_N7ee614203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee614203barEv,_ZTv0_n16_N7ee614203barEv)();
+extern void ABISELECT(_ZThn16_N7ee614203barEv,_ZThn12_N7ee614203barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61420[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61420[0]),
+ (VTBL_ENTRY)&_ZN7ee614203fooEv,
+ (VTBL_ENTRY)&_ZN7ee614203barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61420[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee614203fooEv,_ZTv0_n12_N7ee614203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee614203barEv,_ZTv0_n16_N7ee614203barEv),
+};
+extern VTBL_ENTRY _ZTV7ee61420[];
+static VTBL_ENTRY _tg__ZTV6dd1420__7ee61420[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1420[0]),
+};
+extern void _ZN4bb203fooEv();
+extern void _ZN5cc4203barEv();
+static VTBL_ENTRY _tg__ZTV5cc420__6dd1420__7ee61420[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1420[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+ (VTBL_ENTRY)&_ZN5cc4203barEv,
+};
+static VTT_ENTRY vtt_ee61420[] = {
+ {&(_ZTV7ee61420[3]), 3,11},
+ {&(_tg__ZTV6dd1420__7ee61420[3]), 3,3},
+ {&(_tg__ZTV5cc420__6dd1420__7ee61420[4]), 4,6},
+ {&(_ZTV7ee61420[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee61420[];
+extern VTBL_ENTRY _ZTV7ee61420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61420[];
+static VTBL_ENTRY alt_thunk_names209[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee614203barEv,_ZTv0_n16_N7ee614203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee614203barEv,_ZThn12_N7ee614203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee614203fooEv,_ZTv0_n12_N7ee614203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee614203fooEv,_ZThn12_N7ee614203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61420 = { "ee61420", // class name
+ bases_ee61420, 4,
+ &(vtc_ee61420[0]), // expected_vtbl_contents
+ &(vtt_ee61420[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee61420),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61420),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61420),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names209,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee71420 : virtual dd1420 {
+ int e;
+ virtual void foo(); // _ZN7ee714203fooEv
+ virtual void bar(); // _ZN7ee714203barEv
+ ~ee71420(); // tgen
+ ee71420(); // tgen
+};
+//SIG(1 ee71420) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v1 Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee71420 ::foo(){vfunc_called(this, "_ZN7ee714203fooEv");}
+void ee71420 ::bar(){vfunc_called(this, "_ZN7ee714203barEv");}
+ee71420 ::~ee71420(){ note_dtor("ee71420", this);} // tgen
+ee71420 ::ee71420(){ note_ctor("ee71420", this);} // tgen
+
+static void Test_ee71420()
+{
+ extern Class_Descriptor cd_ee71420;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee71420, buf);
+ ee71420 *dp, &lv = *(dp=new (buf) ee71420());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee71420)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71420)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc420*), ABISELECT(40,20), "ee71420");
+ check_base_class_offset(lv, (bb20*)(cc420*), ABISELECT(32,16), "ee71420");
+ check_base_class_offset(lv, (cc420*)(dd1420*), ABISELECT(32,16), "ee71420");
+ check_base_class_offset(lv, (dd1420*), ABISELECT(16,8), "ee71420");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71420.e");
+ test_class_info(&lv, &cd_ee71420);
+ dp->~ee71420();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71420(Test_ee71420, "ee71420", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee71420C1Ev();
+extern void _ZN7ee71420D1Ev();
+Name_Map name_map_ee71420[] = {
+ NSPAIR(_ZN7ee71420C1Ev),
+ NSPAIR(_ZN7ee71420D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc420;
+extern VTBL_ENTRY _ZTI5cc420[];
+extern VTBL_ENTRY _ZTV5cc420[];
+extern Class_Descriptor cd_dd1420;
+extern VTBL_ENTRY _ZTI6dd1420[];
+extern VTBL_ENTRY _ZTV6dd1420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1420[];
+static Base_Class bases_ee71420[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc420, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1420, 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 _ZTI7ee71420[];
+extern void _ZN7ee714203fooEv();
+extern void _ZN7ee714203barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee714203fooEv,_ZTv0_n12_N7ee714203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee714203fooEv,_ZThn16_N7ee714203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee714203barEv,_ZTv0_n16_N7ee714203barEv)();
+extern void ABISELECT(_ZThn32_N7ee714203barEv,_ZThn16_N7ee714203barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71420[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71420[0]),
+ (VTBL_ENTRY)&_ZN7ee714203fooEv,
+ (VTBL_ENTRY)&_ZN7ee714203barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71420[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71420[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee714203fooEv,_ZTv0_n12_N7ee714203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee714203barEv,_ZTv0_n16_N7ee714203barEv),
+};
+extern VTBL_ENTRY _ZTV7ee71420[];
+static VTBL_ENTRY _tg__ZTV6dd1420__7ee71420[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1420[0]),
+};
+extern void _ZN4bb203fooEv();
+extern void _ZN5cc4203barEv();
+static VTBL_ENTRY _tg__ZTV5cc420__6dd1420__7ee71420[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1420[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+ (VTBL_ENTRY)&_ZN5cc4203barEv,
+};
+static VTT_ENTRY vtt_ee71420[] = {
+ {&(_ZTV7ee71420[4]), 4,15},
+ {&(_ZTV7ee71420[9]), 9,15},
+ {&(_ZTV7ee71420[13]), 13,15},
+ {&(_tg__ZTV6dd1420__7ee71420[3]), 3,3},
+ {&(_tg__ZTV5cc420__6dd1420__7ee71420[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee71420[];
+extern VTBL_ENTRY _ZTV7ee71420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71420[];
+static VTBL_ENTRY alt_thunk_names210[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee714203barEv,_ZTv0_n16_N7ee714203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee714203barEv,_ZThn16_N7ee714203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee714203fooEv,_ZTv0_n12_N7ee714203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee714203fooEv,_ZThn16_N7ee714203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71420 = { "ee71420", // class name
+ bases_ee71420, 4,
+ &(vtc_ee71420[0]), // expected_vtbl_contents
+ &(vtt_ee71420[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee71420),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71420),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71420),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names210,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd2420 : cc420 {
+ int d;
+ virtual void foo(); // _ZN6dd24203fooEv
+ ~dd2420(); // tgen
+ dd2420(); // tgen
+};
+//SIG(-1 dd2420) C1{ BC2{ BC3{ BC4{ Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void dd2420 ::foo(){vfunc_called(this, "_ZN6dd24203fooEv");}
+dd2420 ::~dd2420(){ note_dtor("dd2420", this);} // tgen
+dd2420 ::dd2420(){ note_ctor("dd2420", this);} // tgen
+
+static void Test_dd2420()
+{
+ extern Class_Descriptor cd_dd2420;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd2420, buf);
+ dd2420 *dp, &lv = *(dp=new (buf) dd2420());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd2420)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2420)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc420*), ABISELECT(8,4), "dd2420");
+ check_base_class_offset(lv, (bb20*)(cc420*), 0, "dd2420");
+ check_base_class_offset(lv, (cc420*), 0, "dd2420");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd2420.d");
+ test_class_info(&lv, &cd_dd2420);
+ dp->~dd2420();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2420(Test_dd2420, "dd2420", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd2420C1Ev();
+extern void _ZN6dd2420D1Ev();
+Name_Map name_map_dd2420[] = {
+ NSPAIR(_ZN6dd2420C1Ev),
+ NSPAIR(_ZN6dd2420D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc420;
+extern VTBL_ENTRY _ZTI5cc420[];
+extern VTBL_ENTRY _ZTV5cc420[];
+static Base_Class bases_dd2420[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc420, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI6dd2420[];
+extern void _ZN6dd24203fooEv();
+extern void _ZN5cc4203barEv();
+static VTBL_ENTRY vtc_dd2420[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2420[0]),
+ (VTBL_ENTRY)&_ZN6dd24203fooEv,
+ (VTBL_ENTRY)&_ZN5cc4203barEv,
+};
+extern VTBL_ENTRY _ZTI6dd2420[];
+extern VTBL_ENTRY _ZTV6dd2420[];
+Class_Descriptor cd_dd2420 = { "dd2420", // class name
+ bases_dd2420, 3,
+ &(vtc_dd2420[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd2420),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2420),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 ee02420 : dd2420 {
+ int e;
+ ~ee02420(); // tgen
+ ee02420(); // tgen
+};
+//SIG(1 ee02420) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v1 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee02420 ::~ee02420(){ note_dtor("ee02420", this);} // tgen
+ee02420 ::ee02420(){ note_ctor("ee02420", this);} // tgen
+
+static void Test_ee02420()
+{
+ extern Class_Descriptor cd_ee02420;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee02420, buf);
+ ee02420 *dp, &lv = *(dp=new (buf) ee02420());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee02420)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02420)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc420*)(dd2420*), ABISELECT(8,4), "ee02420");
+ check_base_class_offset(lv, (bb20*)(cc420*)(dd2420*), 0, "ee02420");
+ check_base_class_offset(lv, (cc420*)(dd2420*), 0, "ee02420");
+ check_base_class_offset(lv, (dd2420*), 0, "ee02420");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee02420.e");
+ test_class_info(&lv, &cd_ee02420);
+ dp->~ee02420();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02420(Test_ee02420, "ee02420", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee02420C1Ev();
+extern void _ZN7ee02420D1Ev();
+Name_Map name_map_ee02420[] = {
+ NSPAIR(_ZN7ee02420C1Ev),
+ NSPAIR(_ZN7ee02420D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc420;
+extern VTBL_ENTRY _ZTI5cc420[];
+extern VTBL_ENTRY _ZTV5cc420[];
+extern Class_Descriptor cd_dd2420;
+extern VTBL_ENTRY _ZTI6dd2420[];
+extern VTBL_ENTRY _ZTV6dd2420[];
+static Base_Class bases_ee02420[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc420, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2420, 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 _ZTI7ee02420[];
+extern void _ZN6dd24203fooEv();
+extern void _ZN5cc4203barEv();
+static VTBL_ENTRY vtc_ee02420[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02420[0]),
+ (VTBL_ENTRY)&_ZN6dd24203fooEv,
+ (VTBL_ENTRY)&_ZN5cc4203barEv,
+};
+extern VTBL_ENTRY _ZTI7ee02420[];
+extern VTBL_ENTRY _ZTV7ee02420[];
+Class_Descriptor cd_ee02420 = { "ee02420", // class name
+ bases_ee02420, 4,
+ &(vtc_ee02420[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee02420),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02420),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 ee12420 : virtual dd2420 {
+ int e;
+ ~ee12420(); // tgen
+ ee12420(); // tgen
+};
+//SIG(1 ee12420) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v1 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee12420 ::~ee12420(){ note_dtor("ee12420", this);} // tgen
+ee12420 ::ee12420(){ note_ctor("ee12420", this);} // tgen
+
+static void Test_ee12420()
+{
+ extern Class_Descriptor cd_ee12420;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee12420, buf);
+ ee12420 *dp, &lv = *(dp=new (buf) ee12420());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee12420)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12420)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc420*)(dd2420*), ABISELECT(24,12), "ee12420");
+ check_base_class_offset(lv, (bb20*)(cc420*)(dd2420*), ABISELECT(16,8), "ee12420");
+ check_base_class_offset(lv, (cc420*)(dd2420*), ABISELECT(16,8), "ee12420");
+ check_base_class_offset(lv, (dd2420*), ABISELECT(16,8), "ee12420");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12420.e");
+ test_class_info(&lv, &cd_ee12420);
+ dp->~ee12420();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12420(Test_ee12420, "ee12420", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee12420C1Ev();
+extern void _ZN7ee12420D1Ev();
+Name_Map name_map_ee12420[] = {
+ NSPAIR(_ZN7ee12420C1Ev),
+ NSPAIR(_ZN7ee12420D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc420;
+extern VTBL_ENTRY _ZTI5cc420[];
+extern VTBL_ENTRY _ZTV5cc420[];
+extern Class_Descriptor cd_dd2420;
+extern VTBL_ENTRY _ZTI6dd2420[];
+extern VTBL_ENTRY _ZTV6dd2420[];
+static Base_Class bases_ee12420[] = {
+ // 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_bb20, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc420, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2420, 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 _ZTI7ee12420[];
+extern void _ZN6dd24203fooEv();
+extern void _ZN5cc4203barEv();
+static VTBL_ENTRY vtc_ee12420[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12420[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12420[0]),
+ (VTBL_ENTRY)&_ZN6dd24203fooEv,
+ (VTBL_ENTRY)&_ZN5cc4203barEv,
+};
+extern VTBL_ENTRY _ZTV7ee12420[];
+static VTT_ENTRY vtt_ee12420[] = {
+ {&(_ZTV7ee12420[3]), 3,9},
+ {&(_ZTV7ee12420[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee12420[];
+extern VTBL_ENTRY _ZTV7ee12420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12420[];
+Class_Descriptor cd_ee12420 = { "ee12420", // class name
+ bases_ee12420, 4,
+ &(vtc_ee12420[0]), // expected_vtbl_contents
+ &(vtt_ee12420[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee12420),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12420),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12420),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 ee22420 : dd2420 {
+ int e;
+ virtual void foo(); // _ZN7ee224203fooEv
+ ~ee22420(); // tgen
+ ee22420(); // tgen
+};
+//SIG(1 ee22420) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v1 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee22420 ::foo(){vfunc_called(this, "_ZN7ee224203fooEv");}
+ee22420 ::~ee22420(){ note_dtor("ee22420", this);} // tgen
+ee22420 ::ee22420(){ note_ctor("ee22420", this);} // tgen
+
+static void Test_ee22420()
+{
+ extern Class_Descriptor cd_ee22420;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee22420, buf);
+ ee22420 *dp, &lv = *(dp=new (buf) ee22420());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee22420)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22420)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc420*)(dd2420*), ABISELECT(8,4), "ee22420");
+ check_base_class_offset(lv, (bb20*)(cc420*)(dd2420*), 0, "ee22420");
+ check_base_class_offset(lv, (cc420*)(dd2420*), 0, "ee22420");
+ check_base_class_offset(lv, (dd2420*), 0, "ee22420");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee22420.e");
+ test_class_info(&lv, &cd_ee22420);
+ dp->~ee22420();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22420(Test_ee22420, "ee22420", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee22420C1Ev();
+extern void _ZN7ee22420D1Ev();
+Name_Map name_map_ee22420[] = {
+ NSPAIR(_ZN7ee22420C1Ev),
+ NSPAIR(_ZN7ee22420D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc420;
+extern VTBL_ENTRY _ZTI5cc420[];
+extern VTBL_ENTRY _ZTV5cc420[];
+extern Class_Descriptor cd_dd2420;
+extern VTBL_ENTRY _ZTI6dd2420[];
+extern VTBL_ENTRY _ZTV6dd2420[];
+static Base_Class bases_ee22420[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc420, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2420, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee22420[];
+extern void _ZN7ee224203fooEv();
+extern void _ZN5cc4203barEv();
+static VTBL_ENTRY vtc_ee22420[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22420[0]),
+ (VTBL_ENTRY)&_ZN7ee224203fooEv,
+ (VTBL_ENTRY)&_ZN5cc4203barEv,
+};
+extern VTBL_ENTRY _ZTI7ee22420[];
+extern VTBL_ENTRY _ZTV7ee22420[];
+Class_Descriptor cd_ee22420 = { "ee22420", // class name
+ bases_ee22420, 4,
+ &(vtc_ee22420[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee22420),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22420),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 ee32420 : virtual dd2420 {
+ int e;
+ virtual void foo(); // _ZN7ee324203fooEv
+ ~ee32420(); // tgen
+ ee32420(); // tgen
+};
+//SIG(1 ee32420) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v1 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee32420 ::foo(){vfunc_called(this, "_ZN7ee324203fooEv");}
+ee32420 ::~ee32420(){ note_dtor("ee32420", this);} // tgen
+ee32420 ::ee32420(){ note_ctor("ee32420", this);} // tgen
+
+static void Test_ee32420()
+{
+ extern Class_Descriptor cd_ee32420;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee32420, buf);
+ ee32420 *dp, &lv = *(dp=new (buf) ee32420());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee32420)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32420)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc420*)(dd2420*), ABISELECT(24,12), "ee32420");
+ check_base_class_offset(lv, (bb20*)(cc420*)(dd2420*), ABISELECT(16,8), "ee32420");
+ check_base_class_offset(lv, (cc420*)(dd2420*), ABISELECT(16,8), "ee32420");
+ check_base_class_offset(lv, (dd2420*), ABISELECT(16,8), "ee32420");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32420.e");
+ test_class_info(&lv, &cd_ee32420);
+ dp->~ee32420();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32420(Test_ee32420, "ee32420", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee32420C1Ev();
+extern void _ZN7ee32420D1Ev();
+Name_Map name_map_ee32420[] = {
+ NSPAIR(_ZN7ee32420C1Ev),
+ NSPAIR(_ZN7ee32420D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc420;
+extern VTBL_ENTRY _ZTI5cc420[];
+extern VTBL_ENTRY _ZTV5cc420[];
+extern Class_Descriptor cd_dd2420;
+extern VTBL_ENTRY _ZTI6dd2420[];
+extern VTBL_ENTRY _ZTV6dd2420[];
+static Base_Class bases_ee32420[] = {
+ // 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_bb20, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc420, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2420, 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 _ZTI7ee32420[];
+extern void _ZN7ee324203fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee324203fooEv,_ZTv0_n12_N7ee324203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee324203fooEv,_ZThn8_N7ee324203fooEv)() __attribute__((weak));
+extern void _ZN5cc4203barEv();
+static VTBL_ENTRY vtc_ee32420[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32420[0]),
+ (VTBL_ENTRY)&_ZN7ee324203fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32420[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee324203fooEv,_ZTv0_n12_N7ee324203fooEv),
+ (VTBL_ENTRY)&_ZN5cc4203barEv,
+};
+extern VTBL_ENTRY _ZTV7ee32420[];
+static VTT_ENTRY vtt_ee32420[] = {
+ {&(_ZTV7ee32420[3]), 3,10},
+ {&(_ZTV7ee32420[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee32420[];
+extern VTBL_ENTRY _ZTV7ee32420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32420[];
+static VTBL_ENTRY alt_thunk_names211[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee324203fooEv,_ZTv0_n12_N7ee324203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee324203fooEv,_ZThn8_N7ee324203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32420 = { "ee32420", // class name
+ bases_ee32420, 4,
+ &(vtc_ee32420[0]), // expected_vtbl_contents
+ &(vtt_ee32420[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee32420),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32420),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32420),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names211,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee42420 : dd2420 {
+ int e;
+ virtual void bar(); // _ZN7ee424203barEv
+ ~ee42420(); // tgen
+ ee42420(); // tgen
+};
+//SIG(1 ee42420) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v2 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee42420 ::bar(){vfunc_called(this, "_ZN7ee424203barEv");}
+ee42420 ::~ee42420(){ note_dtor("ee42420", this);} // tgen
+ee42420 ::ee42420(){ note_ctor("ee42420", this);} // tgen
+
+static void Test_ee42420()
+{
+ extern Class_Descriptor cd_ee42420;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee42420, buf);
+ ee42420 *dp, &lv = *(dp=new (buf) ee42420());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee42420)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42420)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc420*)(dd2420*), ABISELECT(8,4), "ee42420");
+ check_base_class_offset(lv, (bb20*)(cc420*)(dd2420*), 0, "ee42420");
+ check_base_class_offset(lv, (cc420*)(dd2420*), 0, "ee42420");
+ check_base_class_offset(lv, (dd2420*), 0, "ee42420");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee42420.e");
+ test_class_info(&lv, &cd_ee42420);
+ dp->~ee42420();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42420(Test_ee42420, "ee42420", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee42420C1Ev();
+extern void _ZN7ee42420D1Ev();
+Name_Map name_map_ee42420[] = {
+ NSPAIR(_ZN7ee42420C1Ev),
+ NSPAIR(_ZN7ee42420D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc420;
+extern VTBL_ENTRY _ZTI5cc420[];
+extern VTBL_ENTRY _ZTV5cc420[];
+extern Class_Descriptor cd_dd2420;
+extern VTBL_ENTRY _ZTI6dd2420[];
+extern VTBL_ENTRY _ZTV6dd2420[];
+static Base_Class bases_ee42420[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc420, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2420, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee42420[];
+extern void _ZN6dd24203fooEv();
+extern void _ZN7ee424203barEv();
+static VTBL_ENTRY vtc_ee42420[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42420[0]),
+ (VTBL_ENTRY)&_ZN6dd24203fooEv,
+ (VTBL_ENTRY)&_ZN7ee424203barEv,
+};
+extern VTBL_ENTRY _ZTI7ee42420[];
+extern VTBL_ENTRY _ZTV7ee42420[];
+Class_Descriptor cd_ee42420 = { "ee42420", // class name
+ bases_ee42420, 4,
+ &(vtc_ee42420[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee42420),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42420),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 ee52420 : virtual dd2420 {
+ int e;
+ virtual void bar(); // _ZN7ee524203barEv
+ ~ee52420(); // tgen
+ ee52420(); // tgen
+};
+//SIG(1 ee52420) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v2 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee52420 ::bar(){vfunc_called(this, "_ZN7ee524203barEv");}
+ee52420 ::~ee52420(){ note_dtor("ee52420", this);} // tgen
+ee52420 ::ee52420(){ note_ctor("ee52420", this);} // tgen
+
+static void Test_ee52420()
+{
+ extern Class_Descriptor cd_ee52420;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee52420, buf);
+ ee52420 *dp, &lv = *(dp=new (buf) ee52420());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee52420)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52420)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc420*)(dd2420*), ABISELECT(24,12), "ee52420");
+ check_base_class_offset(lv, (bb20*)(cc420*)(dd2420*), ABISELECT(16,8), "ee52420");
+ check_base_class_offset(lv, (cc420*)(dd2420*), ABISELECT(16,8), "ee52420");
+ check_base_class_offset(lv, (dd2420*), ABISELECT(16,8), "ee52420");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52420.e");
+ test_class_info(&lv, &cd_ee52420);
+ dp->~ee52420();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52420(Test_ee52420, "ee52420", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee52420C1Ev();
+extern void _ZN7ee52420D1Ev();
+Name_Map name_map_ee52420[] = {
+ NSPAIR(_ZN7ee52420C1Ev),
+ NSPAIR(_ZN7ee52420D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc420;
+extern VTBL_ENTRY _ZTI5cc420[];
+extern VTBL_ENTRY _ZTV5cc420[];
+extern Class_Descriptor cd_dd2420;
+extern VTBL_ENTRY _ZTI6dd2420[];
+extern VTBL_ENTRY _ZTV6dd2420[];
+static Base_Class bases_ee52420[] = {
+ // 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_bb20, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc420, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2420, 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 _ZTI7ee52420[];
+extern void _ZN7ee524203barEv();
+extern void _ZN6dd24203fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee524203barEv,_ZTv0_n16_N7ee524203barEv)();
+extern void ABISELECT(_ZThn16_N7ee524203barEv,_ZThn8_N7ee524203barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee52420[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52420[0]),
+ (VTBL_ENTRY)&_ZN7ee524203barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52420[0]),
+ (VTBL_ENTRY)&_ZN6dd24203fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee524203barEv,_ZTv0_n16_N7ee524203barEv),
+};
+extern VTBL_ENTRY _ZTV7ee52420[];
+static VTT_ENTRY vtt_ee52420[] = {
+ {&(_ZTV7ee52420[3]), 3,10},
+ {&(_ZTV7ee52420[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee52420[];
+extern VTBL_ENTRY _ZTV7ee52420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52420[];
+static VTBL_ENTRY alt_thunk_names212[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee524203barEv,_ZTv0_n16_N7ee524203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee524203barEv,_ZThn8_N7ee524203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52420 = { "ee52420", // class name
+ bases_ee52420, 4,
+ &(vtc_ee52420[0]), // expected_vtbl_contents
+ &(vtt_ee52420[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee52420),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52420),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52420),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names212,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee62420 : dd2420 {
+ int e;
+ virtual void foo(); // _ZN7ee624203fooEv
+ virtual void bar(); // _ZN7ee624203barEv
+ ~ee62420(); // tgen
+ ee62420(); // tgen
+};
+//SIG(1 ee62420) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v1 Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62420 ::foo(){vfunc_called(this, "_ZN7ee624203fooEv");}
+void ee62420 ::bar(){vfunc_called(this, "_ZN7ee624203barEv");}
+ee62420 ::~ee62420(){ note_dtor("ee62420", this);} // tgen
+ee62420 ::ee62420(){ note_ctor("ee62420", this);} // tgen
+
+static void Test_ee62420()
+{
+ extern Class_Descriptor cd_ee62420;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee62420, buf);
+ ee62420 *dp, &lv = *(dp=new (buf) ee62420());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee62420)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62420)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc420*)(dd2420*), ABISELECT(8,4), "ee62420");
+ check_base_class_offset(lv, (bb20*)(cc420*)(dd2420*), 0, "ee62420");
+ check_base_class_offset(lv, (cc420*)(dd2420*), 0, "ee62420");
+ check_base_class_offset(lv, (dd2420*), 0, "ee62420");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee62420.e");
+ test_class_info(&lv, &cd_ee62420);
+ dp->~ee62420();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62420(Test_ee62420, "ee62420", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee62420C1Ev();
+extern void _ZN7ee62420D1Ev();
+Name_Map name_map_ee62420[] = {
+ NSPAIR(_ZN7ee62420C1Ev),
+ NSPAIR(_ZN7ee62420D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc420;
+extern VTBL_ENTRY _ZTI5cc420[];
+extern VTBL_ENTRY _ZTV5cc420[];
+extern Class_Descriptor cd_dd2420;
+extern VTBL_ENTRY _ZTI6dd2420[];
+extern VTBL_ENTRY _ZTV6dd2420[];
+static Base_Class bases_ee62420[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc420, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2420, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee62420[];
+extern void _ZN7ee624203fooEv();
+extern void _ZN7ee624203barEv();
+static VTBL_ENTRY vtc_ee62420[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62420[0]),
+ (VTBL_ENTRY)&_ZN7ee624203fooEv,
+ (VTBL_ENTRY)&_ZN7ee624203barEv,
+};
+extern VTBL_ENTRY _ZTI7ee62420[];
+extern VTBL_ENTRY _ZTV7ee62420[];
+Class_Descriptor cd_ee62420 = { "ee62420", // class name
+ bases_ee62420, 4,
+ &(vtc_ee62420[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee62420),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62420),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 ee72420 : virtual dd2420 {
+ int e;
+ virtual void foo(); // _ZN7ee724203fooEv
+ virtual void bar(); // _ZN7ee724203barEv
+ ~ee72420(); // tgen
+ ee72420(); // tgen
+};
+//SIG(1 ee72420) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v1 Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72420 ::foo(){vfunc_called(this, "_ZN7ee724203fooEv");}
+void ee72420 ::bar(){vfunc_called(this, "_ZN7ee724203barEv");}
+ee72420 ::~ee72420(){ note_dtor("ee72420", this);} // tgen
+ee72420 ::ee72420(){ note_ctor("ee72420", this);} // tgen
+
+static void Test_ee72420()
+{
+ extern Class_Descriptor cd_ee72420;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee72420, buf);
+ ee72420 *dp, &lv = *(dp=new (buf) ee72420());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee72420)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72420)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc420*)(dd2420*), ABISELECT(24,12), "ee72420");
+ check_base_class_offset(lv, (bb20*)(cc420*)(dd2420*), ABISELECT(16,8), "ee72420");
+ check_base_class_offset(lv, (cc420*)(dd2420*), ABISELECT(16,8), "ee72420");
+ check_base_class_offset(lv, (dd2420*), ABISELECT(16,8), "ee72420");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72420.e");
+ test_class_info(&lv, &cd_ee72420);
+ dp->~ee72420();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72420(Test_ee72420, "ee72420", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee72420C1Ev();
+extern void _ZN7ee72420D1Ev();
+Name_Map name_map_ee72420[] = {
+ NSPAIR(_ZN7ee72420C1Ev),
+ NSPAIR(_ZN7ee72420D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc420;
+extern VTBL_ENTRY _ZTI5cc420[];
+extern VTBL_ENTRY _ZTV5cc420[];
+extern Class_Descriptor cd_dd2420;
+extern VTBL_ENTRY _ZTI6dd2420[];
+extern VTBL_ENTRY _ZTV6dd2420[];
+static Base_Class bases_ee72420[] = {
+ // 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_bb20, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc420, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2420, 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 _ZTI7ee72420[];
+extern void _ZN7ee724203fooEv();
+extern void _ZN7ee724203barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee724203fooEv,_ZTv0_n12_N7ee724203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee724203fooEv,_ZThn8_N7ee724203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee724203barEv,_ZTv0_n16_N7ee724203barEv)();
+extern void ABISELECT(_ZThn16_N7ee724203barEv,_ZThn8_N7ee724203barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72420[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72420[0]),
+ (VTBL_ENTRY)&_ZN7ee724203fooEv,
+ (VTBL_ENTRY)&_ZN7ee724203barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72420[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee724203fooEv,_ZTv0_n12_N7ee724203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee724203barEv,_ZTv0_n16_N7ee724203barEv),
+};
+extern VTBL_ENTRY _ZTV7ee72420[];
+static VTT_ENTRY vtt_ee72420[] = {
+ {&(_ZTV7ee72420[3]), 3,11},
+ {&(_ZTV7ee72420[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee72420[];
+extern VTBL_ENTRY _ZTV7ee72420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72420[];
+static VTBL_ENTRY alt_thunk_names213[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee724203barEv,_ZTv0_n16_N7ee724203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee724203barEv,_ZThn8_N7ee724203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee724203fooEv,_ZTv0_n12_N7ee724203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee724203fooEv,_ZThn8_N7ee724203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72420 = { "ee72420", // class name
+ bases_ee72420, 4,
+ &(vtc_ee72420[0]), // expected_vtbl_contents
+ &(vtt_ee72420[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee72420),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72420),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72420),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names213,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd3420 : virtual cc420 {
+ int d;
+ virtual void foo(); // _ZN6dd34203fooEv
+ ~dd3420(); // tgen
+ dd3420(); // tgen
+};
+//SIG(-1 dd3420) C1{ VBC2{ BC3{ BC4{ Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void dd3420 ::foo(){vfunc_called(this, "_ZN6dd34203fooEv");}
+dd3420 ::~dd3420(){ note_dtor("dd3420", this);} // tgen
+dd3420 ::dd3420(){ note_ctor("dd3420", this);} // tgen
+
+static void Test_dd3420()
+{
+ extern Class_Descriptor cd_dd3420;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd3420, buf);
+ dd3420 *dp, &lv = *(dp=new (buf) dd3420());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd3420)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3420)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc420*), ABISELECT(24,12), "dd3420");
+ check_base_class_offset(lv, (bb20*)(cc420*), ABISELECT(16,8), "dd3420");
+ check_base_class_offset(lv, (cc420*), ABISELECT(16,8), "dd3420");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3420.d");
+ test_class_info(&lv, &cd_dd3420);
+ dp->~dd3420();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3420(Test_dd3420, "dd3420", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd3420C1Ev();
+extern void _ZN6dd3420D1Ev();
+Name_Map name_map_dd3420[] = {
+ NSPAIR(_ZN6dd3420C1Ev),
+ NSPAIR(_ZN6dd3420D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc420;
+extern VTBL_ENTRY _ZTI5cc420[];
+extern VTBL_ENTRY _ZTV5cc420[];
+static Base_Class bases_dd3420[] = {
+ // 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_bb20, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc420, 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 _ZTI6dd3420[];
+extern void _ZN6dd34203fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd34203fooEv,_ZTv0_n12_N6dd34203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34203fooEv,_ZThn8_N6dd34203fooEv)() __attribute__((weak));
+extern void _ZN5cc4203barEv();
+static VTBL_ENTRY vtc_dd3420[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3420[0]),
+ (VTBL_ENTRY)&_ZN6dd34203fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3420[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34203fooEv,_ZTv0_n12_N6dd34203fooEv),
+ (VTBL_ENTRY)&_ZN5cc4203barEv,
+};
+extern VTBL_ENTRY _ZTV6dd3420[];
+static VTT_ENTRY vtt_dd3420[] = {
+ {&(_ZTV6dd3420[3]), 3,10},
+ {&(_ZTV6dd3420[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd3420[];
+extern VTBL_ENTRY _ZTV6dd3420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3420[];
+static VTBL_ENTRY alt_thunk_names214[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34203fooEv,_ZTv0_n12_N6dd34203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34203fooEv,_ZThn8_N6dd34203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3420 = { "dd3420", // class name
+ bases_dd3420, 3,
+ &(vtc_dd3420[0]), // expected_vtbl_contents
+ &(vtt_dd3420[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd3420),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3420),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3420),2, //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 ee03420 : dd3420 {
+ int e;
+ ~ee03420(); // tgen
+ ee03420(); // tgen
+};
+//SIG(1 ee03420) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v1 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee03420 ::~ee03420(){ note_dtor("ee03420", this);} // tgen
+ee03420 ::ee03420(){ note_ctor("ee03420", this);} // tgen
+
+static void Test_ee03420()
+{
+ extern Class_Descriptor cd_ee03420;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee03420, buf);
+ ee03420 *dp, &lv = *(dp=new (buf) ee03420());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee03420)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03420)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc420*), ABISELECT(24,16), "ee03420");
+ check_base_class_offset(lv, (bb20*)(cc420*), ABISELECT(16,12), "ee03420");
+ check_base_class_offset(lv, (cc420*)(dd3420*), ABISELECT(16,12), "ee03420");
+ check_base_class_offset(lv, (dd3420*), 0, "ee03420");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03420.e");
+ test_class_info(&lv, &cd_ee03420);
+ dp->~ee03420();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03420(Test_ee03420, "ee03420", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee03420C1Ev();
+extern void _ZN7ee03420D1Ev();
+Name_Map name_map_ee03420[] = {
+ NSPAIR(_ZN7ee03420C1Ev),
+ NSPAIR(_ZN7ee03420D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc420;
+extern VTBL_ENTRY _ZTI5cc420[];
+extern VTBL_ENTRY _ZTV5cc420[];
+extern Class_Descriptor cd_dd3420;
+extern VTBL_ENTRY _ZTI6dd3420[];
+extern VTBL_ENTRY _ZTV6dd3420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3420[];
+static Base_Class bases_ee03420[] = {
+ // 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_bb20, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc420, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3420, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee03420[];
+extern void _ZN6dd34203fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd34203fooEv,_ZTv0_n12_N6dd34203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34203fooEv,_ZThn12_N6dd34203fooEv)() __attribute__((weak));
+extern void _ZN5cc4203barEv();
+static VTBL_ENTRY vtc_ee03420[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03420[0]),
+ (VTBL_ENTRY)&_ZN6dd34203fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03420[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34203fooEv,_ZTv0_n12_N6dd34203fooEv),
+ (VTBL_ENTRY)&_ZN5cc4203barEv,
+};
+extern VTBL_ENTRY _ZTV7ee03420[];
+extern void _ZN6dd34203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3420__7ee03420[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3420[0]),
+ (VTBL_ENTRY)&_ZN6dd34203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd34203fooEv,_ZTv0_n12_N6dd34203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34203fooEv,_ZThn12_N6dd34203fooEv)() __attribute__((weak));
+extern void _ZN5cc4203barEv();
+static VTBL_ENTRY _tg__ZTV5cc420__6dd3420__7ee03420[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3420[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34203fooEv,_ZTv0_n12_N6dd34203fooEv),
+ (VTBL_ENTRY)&_ZN5cc4203barEv,
+};
+static VTT_ENTRY vtt_ee03420[] = {
+ {&(_ZTV7ee03420[3]), 3,10},
+ {&(_tg__ZTV6dd3420__7ee03420[3]), 3,4},
+ {&(_tg__ZTV5cc420__6dd3420__7ee03420[4]), 4,6},
+ {&(_ZTV7ee03420[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee03420[];
+extern VTBL_ENTRY _ZTV7ee03420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03420[];
+static VTBL_ENTRY alt_thunk_names215[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34203fooEv,_ZTv0_n12_N6dd34203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34203fooEv,_ZThn12_N6dd34203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34203fooEv,_ZThn12_N6dd34203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03420 = { "ee03420", // class name
+ bases_ee03420, 4,
+ &(vtc_ee03420[0]), // expected_vtbl_contents
+ &(vtt_ee03420[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee03420),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03420),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03420),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names215,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee13420 : virtual dd3420 {
+ int e;
+ ~ee13420(); // tgen
+ ee13420(); // tgen
+};
+//SIG(1 ee13420) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v1 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee13420 ::~ee13420(){ note_dtor("ee13420", this);} // tgen
+ee13420 ::ee13420(){ note_ctor("ee13420", this);} // tgen
+
+static void Test_ee13420()
+{
+ extern Class_Descriptor cd_ee13420;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee13420, buf);
+ ee13420 *dp, &lv = *(dp=new (buf) ee13420());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee13420)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13420)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc420*), ABISELECT(40,20), "ee13420");
+ check_base_class_offset(lv, (bb20*)(cc420*), ABISELECT(32,16), "ee13420");
+ check_base_class_offset(lv, (cc420*)(dd3420*), ABISELECT(32,16), "ee13420");
+ check_base_class_offset(lv, (dd3420*), ABISELECT(16,8), "ee13420");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13420.e");
+ test_class_info(&lv, &cd_ee13420);
+ dp->~ee13420();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13420(Test_ee13420, "ee13420", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee13420C1Ev();
+extern void _ZN7ee13420D1Ev();
+Name_Map name_map_ee13420[] = {
+ NSPAIR(_ZN7ee13420C1Ev),
+ NSPAIR(_ZN7ee13420D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc420;
+extern VTBL_ENTRY _ZTI5cc420[];
+extern VTBL_ENTRY _ZTV5cc420[];
+extern Class_Descriptor cd_dd3420;
+extern VTBL_ENTRY _ZTI6dd3420[];
+extern VTBL_ENTRY _ZTV6dd3420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3420[];
+static Base_Class bases_ee13420[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc420, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3420, 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 _ZTI7ee13420[];
+extern void _ZN6dd34203fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd34203fooEv,_ZTv0_n12_N6dd34203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34203fooEv,_ZThn8_N6dd34203fooEv)() __attribute__((weak));
+extern void _ZN5cc4203barEv();
+static VTBL_ENTRY vtc_ee13420[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13420[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13420[0]),
+ (VTBL_ENTRY)&_ZN6dd34203fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13420[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34203fooEv,_ZTv0_n12_N6dd34203fooEv),
+ (VTBL_ENTRY)&_ZN5cc4203barEv,
+};
+extern VTBL_ENTRY _ZTV7ee13420[];
+extern void _ZN6dd34203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3420__7ee13420[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3420[0]),
+ (VTBL_ENTRY)&_ZN6dd34203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd34203fooEv,_ZTv0_n12_N6dd34203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34203fooEv,_ZThn8_N6dd34203fooEv)() __attribute__((weak));
+extern void _ZN5cc4203barEv();
+static VTBL_ENTRY _tg__ZTV5cc420__6dd3420__7ee13420[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3420[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34203fooEv,_ZTv0_n12_N6dd34203fooEv),
+ (VTBL_ENTRY)&_ZN5cc4203barEv,
+};
+static VTT_ENTRY vtt_ee13420[] = {
+ {&(_ZTV7ee13420[4]), 4,15},
+ {&(_ZTV7ee13420[8]), 8,15},
+ {&(_ZTV7ee13420[13]), 13,15},
+ {&(_tg__ZTV6dd3420__7ee13420[3]), 3,4},
+ {&(_tg__ZTV5cc420__6dd3420__7ee13420[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee13420[];
+extern VTBL_ENTRY _ZTV7ee13420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13420[];
+static VTBL_ENTRY alt_thunk_names216[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34203fooEv,_ZTv0_n12_N6dd34203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34203fooEv,_ZThn8_N6dd34203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34203fooEv,_ZThn8_N6dd34203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13420 = { "ee13420", // class name
+ bases_ee13420, 4,
+ &(vtc_ee13420[0]), // expected_vtbl_contents
+ &(vtt_ee13420[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee13420),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13420),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13420),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names216,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee23420 : dd3420 {
+ int e;
+ virtual void foo(); // _ZN7ee234203fooEv
+ ~ee23420(); // tgen
+ ee23420(); // tgen
+};
+//SIG(1 ee23420) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v1 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee23420 ::foo(){vfunc_called(this, "_ZN7ee234203fooEv");}
+ee23420 ::~ee23420(){ note_dtor("ee23420", this);} // tgen
+ee23420 ::ee23420(){ note_ctor("ee23420", this);} // tgen
+
+static void Test_ee23420()
+{
+ extern Class_Descriptor cd_ee23420;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee23420, buf);
+ ee23420 *dp, &lv = *(dp=new (buf) ee23420());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee23420)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23420)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc420*), ABISELECT(24,16), "ee23420");
+ check_base_class_offset(lv, (bb20*)(cc420*), ABISELECT(16,12), "ee23420");
+ check_base_class_offset(lv, (cc420*)(dd3420*), ABISELECT(16,12), "ee23420");
+ check_base_class_offset(lv, (dd3420*), 0, "ee23420");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23420.e");
+ test_class_info(&lv, &cd_ee23420);
+ dp->~ee23420();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23420(Test_ee23420, "ee23420", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee23420C1Ev();
+extern void _ZN7ee23420D1Ev();
+Name_Map name_map_ee23420[] = {
+ NSPAIR(_ZN7ee23420C1Ev),
+ NSPAIR(_ZN7ee23420D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc420;
+extern VTBL_ENTRY _ZTI5cc420[];
+extern VTBL_ENTRY _ZTV5cc420[];
+extern Class_Descriptor cd_dd3420;
+extern VTBL_ENTRY _ZTI6dd3420[];
+extern VTBL_ENTRY _ZTV6dd3420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3420[];
+static Base_Class bases_ee23420[] = {
+ // 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_bb20, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc420, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3420, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee23420[];
+extern void _ZN7ee234203fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee234203fooEv,_ZTv0_n12_N7ee234203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee234203fooEv,_ZThn12_N7ee234203fooEv)() __attribute__((weak));
+extern void _ZN5cc4203barEv();
+static VTBL_ENTRY vtc_ee23420[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23420[0]),
+ (VTBL_ENTRY)&_ZN7ee234203fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23420[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee234203fooEv,_ZTv0_n12_N7ee234203fooEv),
+ (VTBL_ENTRY)&_ZN5cc4203barEv,
+};
+extern VTBL_ENTRY _ZTV7ee23420[];
+extern void _ZN6dd34203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3420__7ee23420[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3420[0]),
+ (VTBL_ENTRY)&_ZN6dd34203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd34203fooEv,_ZTv0_n12_N6dd34203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34203fooEv,_ZThn12_N6dd34203fooEv)() __attribute__((weak));
+extern void _ZN5cc4203barEv();
+static VTBL_ENTRY _tg__ZTV5cc420__6dd3420__7ee23420[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3420[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34203fooEv,_ZTv0_n12_N6dd34203fooEv),
+ (VTBL_ENTRY)&_ZN5cc4203barEv,
+};
+static VTT_ENTRY vtt_ee23420[] = {
+ {&(_ZTV7ee23420[3]), 3,10},
+ {&(_tg__ZTV6dd3420__7ee23420[3]), 3,4},
+ {&(_tg__ZTV5cc420__6dd3420__7ee23420[4]), 4,6},
+ {&(_ZTV7ee23420[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee23420[];
+extern VTBL_ENTRY _ZTV7ee23420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23420[];
+static VTBL_ENTRY alt_thunk_names217[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34203fooEv,_ZTv0_n12_N6dd34203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34203fooEv,_ZThn12_N6dd34203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee234203fooEv,_ZTv0_n12_N7ee234203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee234203fooEv,_ZThn12_N7ee234203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23420 = { "ee23420", // class name
+ bases_ee23420, 4,
+ &(vtc_ee23420[0]), // expected_vtbl_contents
+ &(vtt_ee23420[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee23420),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23420),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23420),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names217,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee33420 : virtual dd3420 {
+ int e;
+ virtual void foo(); // _ZN7ee334203fooEv
+ ~ee33420(); // tgen
+ ee33420(); // tgen
+};
+//SIG(1 ee33420) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v1 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee33420 ::foo(){vfunc_called(this, "_ZN7ee334203fooEv");}
+ee33420 ::~ee33420(){ note_dtor("ee33420", this);} // tgen
+ee33420 ::ee33420(){ note_ctor("ee33420", this);} // tgen
+
+static void Test_ee33420()
+{
+ extern Class_Descriptor cd_ee33420;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee33420, buf);
+ ee33420 *dp, &lv = *(dp=new (buf) ee33420());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee33420)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33420)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc420*), ABISELECT(40,20), "ee33420");
+ check_base_class_offset(lv, (bb20*)(cc420*), ABISELECT(32,16), "ee33420");
+ check_base_class_offset(lv, (cc420*)(dd3420*), ABISELECT(32,16), "ee33420");
+ check_base_class_offset(lv, (dd3420*), ABISELECT(16,8), "ee33420");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33420.e");
+ test_class_info(&lv, &cd_ee33420);
+ dp->~ee33420();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33420(Test_ee33420, "ee33420", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee33420C1Ev();
+extern void _ZN7ee33420D1Ev();
+Name_Map name_map_ee33420[] = {
+ NSPAIR(_ZN7ee33420C1Ev),
+ NSPAIR(_ZN7ee33420D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc420;
+extern VTBL_ENTRY _ZTI5cc420[];
+extern VTBL_ENTRY _ZTV5cc420[];
+extern Class_Descriptor cd_dd3420;
+extern VTBL_ENTRY _ZTI6dd3420[];
+extern VTBL_ENTRY _ZTV6dd3420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3420[];
+static Base_Class bases_ee33420[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc420, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3420, 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 _ZTI7ee33420[];
+extern void _ZN7ee334203fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee334203fooEv,_ZTv0_n16_N7ee334203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee334203fooEv,_ZThn8_N7ee334203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee334203fooEv,_ZTv0_n12_N7ee334203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee334203fooEv,_ZThn16_N7ee334203fooEv)() __attribute__((weak));
+extern void _ZN5cc4203barEv();
+static VTBL_ENTRY vtc_ee33420[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33420[0]),
+ (VTBL_ENTRY)&_ZN7ee334203fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33420[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee334203fooEv,_ZTv0_n16_N7ee334203fooEv),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33420[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee334203fooEv,_ZTv0_n12_N7ee334203fooEv),
+ (VTBL_ENTRY)&_ZN5cc4203barEv,
+};
+extern VTBL_ENTRY _ZTV7ee33420[];
+extern void _ZN6dd34203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3420__7ee33420[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3420[0]),
+ (VTBL_ENTRY)&_ZN6dd34203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd34203fooEv,_ZTv0_n12_N6dd34203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34203fooEv,_ZThn8_N6dd34203fooEv)() __attribute__((weak));
+extern void _ZN5cc4203barEv();
+static VTBL_ENTRY _tg__ZTV5cc420__6dd3420__7ee33420[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3420[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34203fooEv,_ZTv0_n12_N6dd34203fooEv),
+ (VTBL_ENTRY)&_ZN5cc4203barEv,
+};
+static VTT_ENTRY vtt_ee33420[] = {
+ {&(_ZTV7ee33420[4]), 4,16},
+ {&(_ZTV7ee33420[9]), 9,16},
+ {&(_ZTV7ee33420[14]), 14,16},
+ {&(_tg__ZTV6dd3420__7ee33420[3]), 3,4},
+ {&(_tg__ZTV5cc420__6dd3420__7ee33420[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee33420[];
+extern VTBL_ENTRY _ZTV7ee33420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33420[];
+static VTBL_ENTRY alt_thunk_names218[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34203fooEv,_ZTv0_n12_N6dd34203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34203fooEv,_ZThn8_N6dd34203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee334203fooEv,_ZTv0_n12_N7ee334203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee334203fooEv,_ZThn16_N7ee334203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee334203fooEv,_ZTv0_n16_N7ee334203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee334203fooEv,_ZThn8_N7ee334203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33420 = { "ee33420", // class name
+ bases_ee33420, 4,
+ &(vtc_ee33420[0]), // expected_vtbl_contents
+ &(vtt_ee33420[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee33420),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33420),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33420),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names218,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee43420 : dd3420 {
+ int e;
+ virtual void bar(); // _ZN7ee434203barEv
+ ~ee43420(); // tgen
+ ee43420(); // tgen
+};
+//SIG(1 ee43420) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v2 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee43420 ::bar(){vfunc_called(this, "_ZN7ee434203barEv");}
+ee43420 ::~ee43420(){ note_dtor("ee43420", this);} // tgen
+ee43420 ::ee43420(){ note_ctor("ee43420", this);} // tgen
+
+static void Test_ee43420()
+{
+ extern Class_Descriptor cd_ee43420;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee43420, buf);
+ ee43420 *dp, &lv = *(dp=new (buf) ee43420());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee43420)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43420)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc420*), ABISELECT(24,16), "ee43420");
+ check_base_class_offset(lv, (bb20*)(cc420*), ABISELECT(16,12), "ee43420");
+ check_base_class_offset(lv, (cc420*)(dd3420*), ABISELECT(16,12), "ee43420");
+ check_base_class_offset(lv, (dd3420*), 0, "ee43420");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43420.e");
+ test_class_info(&lv, &cd_ee43420);
+ dp->~ee43420();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43420(Test_ee43420, "ee43420", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee43420C1Ev();
+extern void _ZN7ee43420D1Ev();
+Name_Map name_map_ee43420[] = {
+ NSPAIR(_ZN7ee43420C1Ev),
+ NSPAIR(_ZN7ee43420D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc420;
+extern VTBL_ENTRY _ZTI5cc420[];
+extern VTBL_ENTRY _ZTV5cc420[];
+extern Class_Descriptor cd_dd3420;
+extern VTBL_ENTRY _ZTI6dd3420[];
+extern VTBL_ENTRY _ZTV6dd3420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3420[];
+static Base_Class bases_ee43420[] = {
+ // 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_bb20, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc420, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3420, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee43420[];
+extern void _ZN6dd34203fooEv();
+extern void _ZN7ee434203barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd34203fooEv,_ZTv0_n12_N6dd34203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34203fooEv,_ZThn12_N6dd34203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee434203barEv,_ZTv0_n16_N7ee434203barEv)();
+extern void ABISELECT(_ZThn16_N7ee434203barEv,_ZThn12_N7ee434203barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43420[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43420[0]),
+ (VTBL_ENTRY)&_ZN6dd34203fooEv,
+ (VTBL_ENTRY)&_ZN7ee434203barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43420[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34203fooEv,_ZTv0_n12_N6dd34203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee434203barEv,_ZTv0_n16_N7ee434203barEv),
+};
+extern VTBL_ENTRY _ZTV7ee43420[];
+extern void _ZN6dd34203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3420__7ee43420[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3420[0]),
+ (VTBL_ENTRY)&_ZN6dd34203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd34203fooEv,_ZTv0_n12_N6dd34203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34203fooEv,_ZThn12_N6dd34203fooEv)() __attribute__((weak));
+extern void _ZN5cc4203barEv();
+static VTBL_ENTRY _tg__ZTV5cc420__6dd3420__7ee43420[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3420[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34203fooEv,_ZTv0_n12_N6dd34203fooEv),
+ (VTBL_ENTRY)&_ZN5cc4203barEv,
+};
+static VTT_ENTRY vtt_ee43420[] = {
+ {&(_ZTV7ee43420[3]), 3,11},
+ {&(_tg__ZTV6dd3420__7ee43420[3]), 3,4},
+ {&(_tg__ZTV5cc420__6dd3420__7ee43420[4]), 4,6},
+ {&(_ZTV7ee43420[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee43420[];
+extern VTBL_ENTRY _ZTV7ee43420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43420[];
+static VTBL_ENTRY alt_thunk_names219[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee434203barEv,_ZTv0_n16_N7ee434203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee434203barEv,_ZThn12_N7ee434203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34203fooEv,_ZTv0_n12_N6dd34203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34203fooEv,_ZThn12_N6dd34203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34203fooEv,_ZThn12_N6dd34203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43420 = { "ee43420", // class name
+ bases_ee43420, 4,
+ &(vtc_ee43420[0]), // expected_vtbl_contents
+ &(vtt_ee43420[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee43420),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43420),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43420),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names219,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee53420 : virtual dd3420 {
+ int e;
+ virtual void bar(); // _ZN7ee534203barEv
+ ~ee53420(); // tgen
+ ee53420(); // tgen
+};
+//SIG(1 ee53420) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v2 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee53420 ::bar(){vfunc_called(this, "_ZN7ee534203barEv");}
+ee53420 ::~ee53420(){ note_dtor("ee53420", this);} // tgen
+ee53420 ::ee53420(){ note_ctor("ee53420", this);} // tgen
+
+static void Test_ee53420()
+{
+ extern Class_Descriptor cd_ee53420;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee53420, buf);
+ ee53420 *dp, &lv = *(dp=new (buf) ee53420());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee53420)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53420)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc420*), ABISELECT(40,20), "ee53420");
+ check_base_class_offset(lv, (bb20*)(cc420*), ABISELECT(32,16), "ee53420");
+ check_base_class_offset(lv, (cc420*)(dd3420*), ABISELECT(32,16), "ee53420");
+ check_base_class_offset(lv, (dd3420*), ABISELECT(16,8), "ee53420");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53420.e");
+ test_class_info(&lv, &cd_ee53420);
+ dp->~ee53420();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53420(Test_ee53420, "ee53420", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee53420C1Ev();
+extern void _ZN7ee53420D1Ev();
+Name_Map name_map_ee53420[] = {
+ NSPAIR(_ZN7ee53420C1Ev),
+ NSPAIR(_ZN7ee53420D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc420;
+extern VTBL_ENTRY _ZTI5cc420[];
+extern VTBL_ENTRY _ZTV5cc420[];
+extern Class_Descriptor cd_dd3420;
+extern VTBL_ENTRY _ZTI6dd3420[];
+extern VTBL_ENTRY _ZTV6dd3420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3420[];
+static Base_Class bases_ee53420[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc420, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3420, 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 _ZTI7ee53420[];
+extern void _ZN7ee534203barEv();
+extern void _ZN6dd34203fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd34203fooEv,_ZTv0_n12_N6dd34203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34203fooEv,_ZThn8_N6dd34203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee534203barEv,_ZTv0_n16_N7ee534203barEv)();
+extern void ABISELECT(_ZThn32_N7ee534203barEv,_ZThn16_N7ee534203barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53420[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53420[0]),
+ (VTBL_ENTRY)&_ZN7ee534203barEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53420[0]),
+ (VTBL_ENTRY)&_ZN6dd34203fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53420[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34203fooEv,_ZTv0_n12_N6dd34203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee534203barEv,_ZTv0_n16_N7ee534203barEv),
+};
+extern VTBL_ENTRY _ZTV7ee53420[];
+extern void _ZN6dd34203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3420__7ee53420[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3420[0]),
+ (VTBL_ENTRY)&_ZN6dd34203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd34203fooEv,_ZTv0_n12_N6dd34203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34203fooEv,_ZThn8_N6dd34203fooEv)() __attribute__((weak));
+extern void _ZN5cc4203barEv();
+static VTBL_ENTRY _tg__ZTV5cc420__6dd3420__7ee53420[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3420[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34203fooEv,_ZTv0_n12_N6dd34203fooEv),
+ (VTBL_ENTRY)&_ZN5cc4203barEv,
+};
+static VTT_ENTRY vtt_ee53420[] = {
+ {&(_ZTV7ee53420[4]), 4,16},
+ {&(_ZTV7ee53420[9]), 9,16},
+ {&(_ZTV7ee53420[14]), 14,16},
+ {&(_tg__ZTV6dd3420__7ee53420[3]), 3,4},
+ {&(_tg__ZTV5cc420__6dd3420__7ee53420[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee53420[];
+extern VTBL_ENTRY _ZTV7ee53420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53420[];
+static VTBL_ENTRY alt_thunk_names220[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee534203barEv,_ZTv0_n16_N7ee534203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee534203barEv,_ZThn16_N7ee534203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34203fooEv,_ZTv0_n12_N6dd34203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34203fooEv,_ZThn8_N6dd34203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34203fooEv,_ZThn8_N6dd34203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53420 = { "ee53420", // class name
+ bases_ee53420, 4,
+ &(vtc_ee53420[0]), // expected_vtbl_contents
+ &(vtt_ee53420[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee53420),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53420),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53420),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names220,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee63420 : dd3420 {
+ int e;
+ virtual void foo(); // _ZN7ee634203fooEv
+ virtual void bar(); // _ZN7ee634203barEv
+ ~ee63420(); // tgen
+ ee63420(); // tgen
+};
+//SIG(1 ee63420) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v1 Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63420 ::foo(){vfunc_called(this, "_ZN7ee634203fooEv");}
+void ee63420 ::bar(){vfunc_called(this, "_ZN7ee634203barEv");}
+ee63420 ::~ee63420(){ note_dtor("ee63420", this);} // tgen
+ee63420 ::ee63420(){ note_ctor("ee63420", this);} // tgen
+
+static void Test_ee63420()
+{
+ extern Class_Descriptor cd_ee63420;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee63420, buf);
+ ee63420 *dp, &lv = *(dp=new (buf) ee63420());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee63420)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63420)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc420*), ABISELECT(24,16), "ee63420");
+ check_base_class_offset(lv, (bb20*)(cc420*), ABISELECT(16,12), "ee63420");
+ check_base_class_offset(lv, (cc420*)(dd3420*), ABISELECT(16,12), "ee63420");
+ check_base_class_offset(lv, (dd3420*), 0, "ee63420");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63420.e");
+ test_class_info(&lv, &cd_ee63420);
+ dp->~ee63420();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63420(Test_ee63420, "ee63420", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee63420C1Ev();
+extern void _ZN7ee63420D1Ev();
+Name_Map name_map_ee63420[] = {
+ NSPAIR(_ZN7ee63420C1Ev),
+ NSPAIR(_ZN7ee63420D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc420;
+extern VTBL_ENTRY _ZTI5cc420[];
+extern VTBL_ENTRY _ZTV5cc420[];
+extern Class_Descriptor cd_dd3420;
+extern VTBL_ENTRY _ZTI6dd3420[];
+extern VTBL_ENTRY _ZTV6dd3420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3420[];
+static Base_Class bases_ee63420[] = {
+ // 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_bb20, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc420, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3420, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee63420[];
+extern void _ZN7ee634203fooEv();
+extern void _ZN7ee634203barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee634203fooEv,_ZTv0_n12_N7ee634203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee634203fooEv,_ZThn12_N7ee634203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee634203barEv,_ZTv0_n16_N7ee634203barEv)();
+extern void ABISELECT(_ZThn16_N7ee634203barEv,_ZThn12_N7ee634203barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63420[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63420[0]),
+ (VTBL_ENTRY)&_ZN7ee634203fooEv,
+ (VTBL_ENTRY)&_ZN7ee634203barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63420[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee634203fooEv,_ZTv0_n12_N7ee634203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee634203barEv,_ZTv0_n16_N7ee634203barEv),
+};
+extern VTBL_ENTRY _ZTV7ee63420[];
+extern void _ZN6dd34203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3420__7ee63420[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3420[0]),
+ (VTBL_ENTRY)&_ZN6dd34203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd34203fooEv,_ZTv0_n12_N6dd34203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34203fooEv,_ZThn12_N6dd34203fooEv)() __attribute__((weak));
+extern void _ZN5cc4203barEv();
+static VTBL_ENTRY _tg__ZTV5cc420__6dd3420__7ee63420[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3420[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34203fooEv,_ZTv0_n12_N6dd34203fooEv),
+ (VTBL_ENTRY)&_ZN5cc4203barEv,
+};
+static VTT_ENTRY vtt_ee63420[] = {
+ {&(_ZTV7ee63420[3]), 3,11},
+ {&(_tg__ZTV6dd3420__7ee63420[3]), 3,4},
+ {&(_tg__ZTV5cc420__6dd3420__7ee63420[4]), 4,6},
+ {&(_ZTV7ee63420[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee63420[];
+extern VTBL_ENTRY _ZTV7ee63420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63420[];
+static VTBL_ENTRY alt_thunk_names221[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34203fooEv,_ZTv0_n12_N6dd34203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34203fooEv,_ZThn12_N6dd34203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee634203barEv,_ZTv0_n16_N7ee634203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee634203barEv,_ZThn12_N7ee634203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee634203fooEv,_ZTv0_n12_N7ee634203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee634203fooEv,_ZThn12_N7ee634203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63420 = { "ee63420", // class name
+ bases_ee63420, 4,
+ &(vtc_ee63420[0]), // expected_vtbl_contents
+ &(vtt_ee63420[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee63420),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63420),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63420),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names221,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee73420 : virtual dd3420 {
+ int e;
+ virtual void foo(); // _ZN7ee734203fooEv
+ virtual void bar(); // _ZN7ee734203barEv
+ ~ee73420(); // tgen
+ ee73420(); // tgen
+};
+//SIG(1 ee73420) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v1 Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73420 ::foo(){vfunc_called(this, "_ZN7ee734203fooEv");}
+void ee73420 ::bar(){vfunc_called(this, "_ZN7ee734203barEv");}
+ee73420 ::~ee73420(){ note_dtor("ee73420", this);} // tgen
+ee73420 ::ee73420(){ note_ctor("ee73420", this);} // tgen
+
+static void Test_ee73420()
+{
+ extern Class_Descriptor cd_ee73420;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee73420, buf);
+ ee73420 *dp, &lv = *(dp=new (buf) ee73420());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee73420)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73420)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc420*), ABISELECT(40,20), "ee73420");
+ check_base_class_offset(lv, (bb20*)(cc420*), ABISELECT(32,16), "ee73420");
+ check_base_class_offset(lv, (cc420*)(dd3420*), ABISELECT(32,16), "ee73420");
+ check_base_class_offset(lv, (dd3420*), ABISELECT(16,8), "ee73420");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73420.e");
+ test_class_info(&lv, &cd_ee73420);
+ dp->~ee73420();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73420(Test_ee73420, "ee73420", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee73420C1Ev();
+extern void _ZN7ee73420D1Ev();
+Name_Map name_map_ee73420[] = {
+ NSPAIR(_ZN7ee73420C1Ev),
+ NSPAIR(_ZN7ee73420D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc420;
+extern VTBL_ENTRY _ZTI5cc420[];
+extern VTBL_ENTRY _ZTV5cc420[];
+extern Class_Descriptor cd_dd3420;
+extern VTBL_ENTRY _ZTI6dd3420[];
+extern VTBL_ENTRY _ZTV6dd3420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3420[];
+static Base_Class bases_ee73420[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc420, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3420, 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 _ZTI7ee73420[];
+extern void _ZN7ee734203fooEv();
+extern void _ZN7ee734203barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee734203fooEv,_ZTv0_n16_N7ee734203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee734203fooEv,_ZThn8_N7ee734203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee734203fooEv,_ZTv0_n12_N7ee734203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee734203fooEv,_ZThn16_N7ee734203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee734203barEv,_ZTv0_n16_N7ee734203barEv)();
+extern void ABISELECT(_ZThn32_N7ee734203barEv,_ZThn16_N7ee734203barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73420[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73420[0]),
+ (VTBL_ENTRY)&_ZN7ee734203fooEv,
+ (VTBL_ENTRY)&_ZN7ee734203barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73420[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee734203fooEv,_ZTv0_n16_N7ee734203fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73420[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee734203fooEv,_ZTv0_n12_N7ee734203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee734203barEv,_ZTv0_n16_N7ee734203barEv),
+};
+extern VTBL_ENTRY _ZTV7ee73420[];
+extern void _ZN6dd34203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3420__7ee73420[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3420[0]),
+ (VTBL_ENTRY)&_ZN6dd34203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd34203fooEv,_ZTv0_n12_N6dd34203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34203fooEv,_ZThn8_N6dd34203fooEv)() __attribute__((weak));
+extern void _ZN5cc4203barEv();
+static VTBL_ENTRY _tg__ZTV5cc420__6dd3420__7ee73420[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3420[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34203fooEv,_ZTv0_n12_N6dd34203fooEv),
+ (VTBL_ENTRY)&_ZN5cc4203barEv,
+};
+static VTT_ENTRY vtt_ee73420[] = {
+ {&(_ZTV7ee73420[4]), 4,17},
+ {&(_ZTV7ee73420[10]), 10,17},
+ {&(_ZTV7ee73420[15]), 15,17},
+ {&(_tg__ZTV6dd3420__7ee73420[3]), 3,4},
+ {&(_tg__ZTV5cc420__6dd3420__7ee73420[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee73420[];
+extern VTBL_ENTRY _ZTV7ee73420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73420[];
+static VTBL_ENTRY alt_thunk_names222[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34203fooEv,_ZTv0_n12_N6dd34203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34203fooEv,_ZThn8_N6dd34203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee734203barEv,_ZTv0_n16_N7ee734203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee734203barEv,_ZThn16_N7ee734203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee734203fooEv,_ZTv0_n12_N7ee734203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee734203fooEv,_ZThn16_N7ee734203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee734203fooEv,_ZTv0_n16_N7ee734203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee734203fooEv,_ZThn8_N7ee734203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73420 = { "ee73420", // class name
+ bases_ee73420, 4,
+ &(vtc_ee73420[0]), // expected_vtbl_contents
+ &(vtt_ee73420[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee73420),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73420),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73420),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names222,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd4420 : cc420 {
+ int d;
+ virtual void bar(); // _ZN6dd44203barEv
+ ~dd4420(); // tgen
+ dd4420(); // tgen
+};
+//SIG(-1 dd4420) C1{ BC2{ BC3{ BC4{ Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void dd4420 ::bar(){vfunc_called(this, "_ZN6dd44203barEv");}
+dd4420 ::~dd4420(){ note_dtor("dd4420", this);} // tgen
+dd4420 ::dd4420(){ note_ctor("dd4420", this);} // tgen
+
+static void Test_dd4420()
+{
+ extern Class_Descriptor cd_dd4420;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd4420, buf);
+ dd4420 *dp, &lv = *(dp=new (buf) dd4420());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd4420)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4420)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc420*), ABISELECT(8,4), "dd4420");
+ check_base_class_offset(lv, (bb20*)(cc420*), 0, "dd4420");
+ check_base_class_offset(lv, (cc420*), 0, "dd4420");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd4420.d");
+ test_class_info(&lv, &cd_dd4420);
+ dp->~dd4420();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4420(Test_dd4420, "dd4420", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd4420C1Ev();
+extern void _ZN6dd4420D1Ev();
+Name_Map name_map_dd4420[] = {
+ NSPAIR(_ZN6dd4420C1Ev),
+ NSPAIR(_ZN6dd4420D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc420;
+extern VTBL_ENTRY _ZTI5cc420[];
+extern VTBL_ENTRY _ZTV5cc420[];
+static Base_Class bases_dd4420[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc420, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI6dd4420[];
+extern void _ZN4bb203fooEv();
+extern void _ZN6dd44203barEv();
+static VTBL_ENTRY vtc_dd4420[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4420[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+ (VTBL_ENTRY)&_ZN6dd44203barEv,
+};
+extern VTBL_ENTRY _ZTI6dd4420[];
+extern VTBL_ENTRY _ZTV6dd4420[];
+Class_Descriptor cd_dd4420 = { "dd4420", // class name
+ bases_dd4420, 3,
+ &(vtc_dd4420[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd4420),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4420),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 ee04420 : dd4420 {
+ int e;
+ ~ee04420(); // tgen
+ ee04420(); // tgen
+};
+//SIG(1 ee04420) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v2 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee04420 ::~ee04420(){ note_dtor("ee04420", this);} // tgen
+ee04420 ::ee04420(){ note_ctor("ee04420", this);} // tgen
+
+static void Test_ee04420()
+{
+ extern Class_Descriptor cd_ee04420;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee04420, buf);
+ ee04420 *dp, &lv = *(dp=new (buf) ee04420());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee04420)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04420)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc420*)(dd4420*), ABISELECT(8,4), "ee04420");
+ check_base_class_offset(lv, (bb20*)(cc420*)(dd4420*), 0, "ee04420");
+ check_base_class_offset(lv, (cc420*)(dd4420*), 0, "ee04420");
+ check_base_class_offset(lv, (dd4420*), 0, "ee04420");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee04420.e");
+ test_class_info(&lv, &cd_ee04420);
+ dp->~ee04420();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04420(Test_ee04420, "ee04420", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee04420C1Ev();
+extern void _ZN7ee04420D1Ev();
+Name_Map name_map_ee04420[] = {
+ NSPAIR(_ZN7ee04420C1Ev),
+ NSPAIR(_ZN7ee04420D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc420;
+extern VTBL_ENTRY _ZTI5cc420[];
+extern VTBL_ENTRY _ZTV5cc420[];
+extern Class_Descriptor cd_dd4420;
+extern VTBL_ENTRY _ZTI6dd4420[];
+extern VTBL_ENTRY _ZTV6dd4420[];
+static Base_Class bases_ee04420[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc420, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4420, 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 _ZTI7ee04420[];
+extern void _ZN4bb203fooEv();
+extern void _ZN6dd44203barEv();
+static VTBL_ENTRY vtc_ee04420[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04420[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+ (VTBL_ENTRY)&_ZN6dd44203barEv,
+};
+extern VTBL_ENTRY _ZTI7ee04420[];
+extern VTBL_ENTRY _ZTV7ee04420[];
+Class_Descriptor cd_ee04420 = { "ee04420", // class name
+ bases_ee04420, 4,
+ &(vtc_ee04420[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee04420),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04420),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 ee14420 : virtual dd4420 {
+ int e;
+ ~ee14420(); // tgen
+ ee14420(); // tgen
+};
+//SIG(1 ee14420) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v2 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee14420 ::~ee14420(){ note_dtor("ee14420", this);} // tgen
+ee14420 ::ee14420(){ note_ctor("ee14420", this);} // tgen
+
+static void Test_ee14420()
+{
+ extern Class_Descriptor cd_ee14420;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee14420, buf);
+ ee14420 *dp, &lv = *(dp=new (buf) ee14420());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee14420)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14420)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc420*)(dd4420*), ABISELECT(24,12), "ee14420");
+ check_base_class_offset(lv, (bb20*)(cc420*)(dd4420*), ABISELECT(16,8), "ee14420");
+ check_base_class_offset(lv, (cc420*)(dd4420*), ABISELECT(16,8), "ee14420");
+ check_base_class_offset(lv, (dd4420*), ABISELECT(16,8), "ee14420");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14420.e");
+ test_class_info(&lv, &cd_ee14420);
+ dp->~ee14420();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14420(Test_ee14420, "ee14420", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee14420C1Ev();
+extern void _ZN7ee14420D1Ev();
+Name_Map name_map_ee14420[] = {
+ NSPAIR(_ZN7ee14420C1Ev),
+ NSPAIR(_ZN7ee14420D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc420;
+extern VTBL_ENTRY _ZTI5cc420[];
+extern VTBL_ENTRY _ZTV5cc420[];
+extern Class_Descriptor cd_dd4420;
+extern VTBL_ENTRY _ZTI6dd4420[];
+extern VTBL_ENTRY _ZTV6dd4420[];
+static Base_Class bases_ee14420[] = {
+ // 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_bb20, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc420, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4420, 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 _ZTI7ee14420[];
+extern void _ZN4bb203fooEv();
+extern void _ZN6dd44203barEv();
+static VTBL_ENTRY vtc_ee14420[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14420[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14420[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+ (VTBL_ENTRY)&_ZN6dd44203barEv,
+};
+extern VTBL_ENTRY _ZTV7ee14420[];
+static VTT_ENTRY vtt_ee14420[] = {
+ {&(_ZTV7ee14420[3]), 3,9},
+ {&(_ZTV7ee14420[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee14420[];
+extern VTBL_ENTRY _ZTV7ee14420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14420[];
+Class_Descriptor cd_ee14420 = { "ee14420", // class name
+ bases_ee14420, 4,
+ &(vtc_ee14420[0]), // expected_vtbl_contents
+ &(vtt_ee14420[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee14420),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14420),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14420),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 ee24420 : dd4420 {
+ int e;
+ virtual void foo(); // _ZN7ee244203fooEv
+ ~ee24420(); // tgen
+ ee24420(); // tgen
+};
+//SIG(1 ee24420) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v1 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee24420 ::foo(){vfunc_called(this, "_ZN7ee244203fooEv");}
+ee24420 ::~ee24420(){ note_dtor("ee24420", this);} // tgen
+ee24420 ::ee24420(){ note_ctor("ee24420", this);} // tgen
+
+static void Test_ee24420()
+{
+ extern Class_Descriptor cd_ee24420;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee24420, buf);
+ ee24420 *dp, &lv = *(dp=new (buf) ee24420());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee24420)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24420)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc420*)(dd4420*), ABISELECT(8,4), "ee24420");
+ check_base_class_offset(lv, (bb20*)(cc420*)(dd4420*), 0, "ee24420");
+ check_base_class_offset(lv, (cc420*)(dd4420*), 0, "ee24420");
+ check_base_class_offset(lv, (dd4420*), 0, "ee24420");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee24420.e");
+ test_class_info(&lv, &cd_ee24420);
+ dp->~ee24420();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24420(Test_ee24420, "ee24420", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee24420C1Ev();
+extern void _ZN7ee24420D1Ev();
+Name_Map name_map_ee24420[] = {
+ NSPAIR(_ZN7ee24420C1Ev),
+ NSPAIR(_ZN7ee24420D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc420;
+extern VTBL_ENTRY _ZTI5cc420[];
+extern VTBL_ENTRY _ZTV5cc420[];
+extern Class_Descriptor cd_dd4420;
+extern VTBL_ENTRY _ZTI6dd4420[];
+extern VTBL_ENTRY _ZTV6dd4420[];
+static Base_Class bases_ee24420[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc420, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4420, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee24420[];
+extern void _ZN7ee244203fooEv();
+extern void _ZN6dd44203barEv();
+static VTBL_ENTRY vtc_ee24420[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24420[0]),
+ (VTBL_ENTRY)&_ZN7ee244203fooEv,
+ (VTBL_ENTRY)&_ZN6dd44203barEv,
+};
+extern VTBL_ENTRY _ZTI7ee24420[];
+extern VTBL_ENTRY _ZTV7ee24420[];
+Class_Descriptor cd_ee24420 = { "ee24420", // class name
+ bases_ee24420, 4,
+ &(vtc_ee24420[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee24420),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24420),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 ee34420 : virtual dd4420 {
+ int e;
+ virtual void foo(); // _ZN7ee344203fooEv
+ ~ee34420(); // tgen
+ ee34420(); // tgen
+};
+//SIG(1 ee34420) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v1 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee34420 ::foo(){vfunc_called(this, "_ZN7ee344203fooEv");}
+ee34420 ::~ee34420(){ note_dtor("ee34420", this);} // tgen
+ee34420 ::ee34420(){ note_ctor("ee34420", this);} // tgen
+
+static void Test_ee34420()
+{
+ extern Class_Descriptor cd_ee34420;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee34420, buf);
+ ee34420 *dp, &lv = *(dp=new (buf) ee34420());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee34420)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34420)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc420*)(dd4420*), ABISELECT(24,12), "ee34420");
+ check_base_class_offset(lv, (bb20*)(cc420*)(dd4420*), ABISELECT(16,8), "ee34420");
+ check_base_class_offset(lv, (cc420*)(dd4420*), ABISELECT(16,8), "ee34420");
+ check_base_class_offset(lv, (dd4420*), ABISELECT(16,8), "ee34420");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34420.e");
+ test_class_info(&lv, &cd_ee34420);
+ dp->~ee34420();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34420(Test_ee34420, "ee34420", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee34420C1Ev();
+extern void _ZN7ee34420D1Ev();
+Name_Map name_map_ee34420[] = {
+ NSPAIR(_ZN7ee34420C1Ev),
+ NSPAIR(_ZN7ee34420D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc420;
+extern VTBL_ENTRY _ZTI5cc420[];
+extern VTBL_ENTRY _ZTV5cc420[];
+extern Class_Descriptor cd_dd4420;
+extern VTBL_ENTRY _ZTI6dd4420[];
+extern VTBL_ENTRY _ZTV6dd4420[];
+static Base_Class bases_ee34420[] = {
+ // 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_bb20, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc420, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4420, 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 _ZTI7ee34420[];
+extern void _ZN7ee344203fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee344203fooEv,_ZTv0_n12_N7ee344203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee344203fooEv,_ZThn8_N7ee344203fooEv)() __attribute__((weak));
+extern void _ZN6dd44203barEv();
+static VTBL_ENTRY vtc_ee34420[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34420[0]),
+ (VTBL_ENTRY)&_ZN7ee344203fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34420[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee344203fooEv,_ZTv0_n12_N7ee344203fooEv),
+ (VTBL_ENTRY)&_ZN6dd44203barEv,
+};
+extern VTBL_ENTRY _ZTV7ee34420[];
+static VTT_ENTRY vtt_ee34420[] = {
+ {&(_ZTV7ee34420[3]), 3,10},
+ {&(_ZTV7ee34420[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee34420[];
+extern VTBL_ENTRY _ZTV7ee34420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34420[];
+static VTBL_ENTRY alt_thunk_names223[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee344203fooEv,_ZTv0_n12_N7ee344203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee344203fooEv,_ZThn8_N7ee344203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34420 = { "ee34420", // class name
+ bases_ee34420, 4,
+ &(vtc_ee34420[0]), // expected_vtbl_contents
+ &(vtt_ee34420[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee34420),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34420),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34420),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names223,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee44420 : dd4420 {
+ int e;
+ virtual void bar(); // _ZN7ee444203barEv
+ ~ee44420(); // tgen
+ ee44420(); // tgen
+};
+//SIG(1 ee44420) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v2 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee44420 ::bar(){vfunc_called(this, "_ZN7ee444203barEv");}
+ee44420 ::~ee44420(){ note_dtor("ee44420", this);} // tgen
+ee44420 ::ee44420(){ note_ctor("ee44420", this);} // tgen
+
+static void Test_ee44420()
+{
+ extern Class_Descriptor cd_ee44420;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee44420, buf);
+ ee44420 *dp, &lv = *(dp=new (buf) ee44420());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee44420)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44420)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc420*)(dd4420*), ABISELECT(8,4), "ee44420");
+ check_base_class_offset(lv, (bb20*)(cc420*)(dd4420*), 0, "ee44420");
+ check_base_class_offset(lv, (cc420*)(dd4420*), 0, "ee44420");
+ check_base_class_offset(lv, (dd4420*), 0, "ee44420");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee44420.e");
+ test_class_info(&lv, &cd_ee44420);
+ dp->~ee44420();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44420(Test_ee44420, "ee44420", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee44420C1Ev();
+extern void _ZN7ee44420D1Ev();
+Name_Map name_map_ee44420[] = {
+ NSPAIR(_ZN7ee44420C1Ev),
+ NSPAIR(_ZN7ee44420D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc420;
+extern VTBL_ENTRY _ZTI5cc420[];
+extern VTBL_ENTRY _ZTV5cc420[];
+extern Class_Descriptor cd_dd4420;
+extern VTBL_ENTRY _ZTI6dd4420[];
+extern VTBL_ENTRY _ZTV6dd4420[];
+static Base_Class bases_ee44420[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc420, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4420, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee44420[];
+extern void _ZN4bb203fooEv();
+extern void _ZN7ee444203barEv();
+static VTBL_ENTRY vtc_ee44420[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44420[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+ (VTBL_ENTRY)&_ZN7ee444203barEv,
+};
+extern VTBL_ENTRY _ZTI7ee44420[];
+extern VTBL_ENTRY _ZTV7ee44420[];
+Class_Descriptor cd_ee44420 = { "ee44420", // class name
+ bases_ee44420, 4,
+ &(vtc_ee44420[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee44420),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44420),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 ee54420 : virtual dd4420 {
+ int e;
+ virtual void bar(); // _ZN7ee544203barEv
+ ~ee54420(); // tgen
+ ee54420(); // tgen
+};
+//SIG(1 ee54420) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v2 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee54420 ::bar(){vfunc_called(this, "_ZN7ee544203barEv");}
+ee54420 ::~ee54420(){ note_dtor("ee54420", this);} // tgen
+ee54420 ::ee54420(){ note_ctor("ee54420", this);} // tgen
+
+static void Test_ee54420()
+{
+ extern Class_Descriptor cd_ee54420;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee54420, buf);
+ ee54420 *dp, &lv = *(dp=new (buf) ee54420());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee54420)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54420)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc420*)(dd4420*), ABISELECT(24,12), "ee54420");
+ check_base_class_offset(lv, (bb20*)(cc420*)(dd4420*), ABISELECT(16,8), "ee54420");
+ check_base_class_offset(lv, (cc420*)(dd4420*), ABISELECT(16,8), "ee54420");
+ check_base_class_offset(lv, (dd4420*), ABISELECT(16,8), "ee54420");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54420.e");
+ test_class_info(&lv, &cd_ee54420);
+ dp->~ee54420();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54420(Test_ee54420, "ee54420", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee54420C1Ev();
+extern void _ZN7ee54420D1Ev();
+Name_Map name_map_ee54420[] = {
+ NSPAIR(_ZN7ee54420C1Ev),
+ NSPAIR(_ZN7ee54420D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc420;
+extern VTBL_ENTRY _ZTI5cc420[];
+extern VTBL_ENTRY _ZTV5cc420[];
+extern Class_Descriptor cd_dd4420;
+extern VTBL_ENTRY _ZTI6dd4420[];
+extern VTBL_ENTRY _ZTV6dd4420[];
+static Base_Class bases_ee54420[] = {
+ // 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_bb20, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc420, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4420, 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 _ZTI7ee54420[];
+extern void _ZN7ee544203barEv();
+extern void _ZN4bb203fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee544203barEv,_ZTv0_n16_N7ee544203barEv)();
+extern void ABISELECT(_ZThn16_N7ee544203barEv,_ZThn8_N7ee544203barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54420[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54420[0]),
+ (VTBL_ENTRY)&_ZN7ee544203barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54420[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee544203barEv,_ZTv0_n16_N7ee544203barEv),
+};
+extern VTBL_ENTRY _ZTV7ee54420[];
+static VTT_ENTRY vtt_ee54420[] = {
+ {&(_ZTV7ee54420[3]), 3,10},
+ {&(_ZTV7ee54420[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee54420[];
+extern VTBL_ENTRY _ZTV7ee54420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54420[];
+static VTBL_ENTRY alt_thunk_names224[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee544203barEv,_ZTv0_n16_N7ee544203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee544203barEv,_ZThn8_N7ee544203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54420 = { "ee54420", // class name
+ bases_ee54420, 4,
+ &(vtc_ee54420[0]), // expected_vtbl_contents
+ &(vtt_ee54420[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee54420),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54420),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54420),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names224,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee64420 : dd4420 {
+ int e;
+ virtual void foo(); // _ZN7ee644203fooEv
+ virtual void bar(); // _ZN7ee644203barEv
+ ~ee64420(); // tgen
+ ee64420(); // tgen
+};
+//SIG(1 ee64420) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v1 Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64420 ::foo(){vfunc_called(this, "_ZN7ee644203fooEv");}
+void ee64420 ::bar(){vfunc_called(this, "_ZN7ee644203barEv");}
+ee64420 ::~ee64420(){ note_dtor("ee64420", this);} // tgen
+ee64420 ::ee64420(){ note_ctor("ee64420", this);} // tgen
+
+static void Test_ee64420()
+{
+ extern Class_Descriptor cd_ee64420;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee64420, buf);
+ ee64420 *dp, &lv = *(dp=new (buf) ee64420());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee64420)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64420)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc420*)(dd4420*), ABISELECT(8,4), "ee64420");
+ check_base_class_offset(lv, (bb20*)(cc420*)(dd4420*), 0, "ee64420");
+ check_base_class_offset(lv, (cc420*)(dd4420*), 0, "ee64420");
+ check_base_class_offset(lv, (dd4420*), 0, "ee64420");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee64420.e");
+ test_class_info(&lv, &cd_ee64420);
+ dp->~ee64420();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64420(Test_ee64420, "ee64420", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee64420C1Ev();
+extern void _ZN7ee64420D1Ev();
+Name_Map name_map_ee64420[] = {
+ NSPAIR(_ZN7ee64420C1Ev),
+ NSPAIR(_ZN7ee64420D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc420;
+extern VTBL_ENTRY _ZTI5cc420[];
+extern VTBL_ENTRY _ZTV5cc420[];
+extern Class_Descriptor cd_dd4420;
+extern VTBL_ENTRY _ZTI6dd4420[];
+extern VTBL_ENTRY _ZTV6dd4420[];
+static Base_Class bases_ee64420[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc420, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4420, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee64420[];
+extern void _ZN7ee644203fooEv();
+extern void _ZN7ee644203barEv();
+static VTBL_ENTRY vtc_ee64420[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64420[0]),
+ (VTBL_ENTRY)&_ZN7ee644203fooEv,
+ (VTBL_ENTRY)&_ZN7ee644203barEv,
+};
+extern VTBL_ENTRY _ZTI7ee64420[];
+extern VTBL_ENTRY _ZTV7ee64420[];
+Class_Descriptor cd_ee64420 = { "ee64420", // class name
+ bases_ee64420, 4,
+ &(vtc_ee64420[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee64420),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64420),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 ee74420 : virtual dd4420 {
+ int e;
+ virtual void foo(); // _ZN7ee744203fooEv
+ virtual void bar(); // _ZN7ee744203barEv
+ ~ee74420(); // tgen
+ ee74420(); // tgen
+};
+//SIG(1 ee74420) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v1 Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74420 ::foo(){vfunc_called(this, "_ZN7ee744203fooEv");}
+void ee74420 ::bar(){vfunc_called(this, "_ZN7ee744203barEv");}
+ee74420 ::~ee74420(){ note_dtor("ee74420", this);} // tgen
+ee74420 ::ee74420(){ note_ctor("ee74420", this);} // tgen
+
+static void Test_ee74420()
+{
+ extern Class_Descriptor cd_ee74420;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee74420, buf);
+ ee74420 *dp, &lv = *(dp=new (buf) ee74420());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee74420)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74420)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc420*)(dd4420*), ABISELECT(24,12), "ee74420");
+ check_base_class_offset(lv, (bb20*)(cc420*)(dd4420*), ABISELECT(16,8), "ee74420");
+ check_base_class_offset(lv, (cc420*)(dd4420*), ABISELECT(16,8), "ee74420");
+ check_base_class_offset(lv, (dd4420*), ABISELECT(16,8), "ee74420");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74420.e");
+ test_class_info(&lv, &cd_ee74420);
+ dp->~ee74420();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74420(Test_ee74420, "ee74420", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee74420C1Ev();
+extern void _ZN7ee74420D1Ev();
+Name_Map name_map_ee74420[] = {
+ NSPAIR(_ZN7ee74420C1Ev),
+ NSPAIR(_ZN7ee74420D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc420;
+extern VTBL_ENTRY _ZTI5cc420[];
+extern VTBL_ENTRY _ZTV5cc420[];
+extern Class_Descriptor cd_dd4420;
+extern VTBL_ENTRY _ZTI6dd4420[];
+extern VTBL_ENTRY _ZTV6dd4420[];
+static Base_Class bases_ee74420[] = {
+ // 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_bb20, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc420, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4420, 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 _ZTI7ee74420[];
+extern void _ZN7ee744203fooEv();
+extern void _ZN7ee744203barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee744203fooEv,_ZTv0_n12_N7ee744203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee744203fooEv,_ZThn8_N7ee744203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee744203barEv,_ZTv0_n16_N7ee744203barEv)();
+extern void ABISELECT(_ZThn16_N7ee744203barEv,_ZThn8_N7ee744203barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74420[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74420[0]),
+ (VTBL_ENTRY)&_ZN7ee744203fooEv,
+ (VTBL_ENTRY)&_ZN7ee744203barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74420[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee744203fooEv,_ZTv0_n12_N7ee744203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee744203barEv,_ZTv0_n16_N7ee744203barEv),
+};
+extern VTBL_ENTRY _ZTV7ee74420[];
+static VTT_ENTRY vtt_ee74420[] = {
+ {&(_ZTV7ee74420[3]), 3,11},
+ {&(_ZTV7ee74420[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee74420[];
+extern VTBL_ENTRY _ZTV7ee74420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74420[];
+static VTBL_ENTRY alt_thunk_names225[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee744203barEv,_ZTv0_n16_N7ee744203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee744203barEv,_ZThn8_N7ee744203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee744203fooEv,_ZTv0_n12_N7ee744203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee744203fooEv,_ZThn8_N7ee744203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74420 = { "ee74420", // class name
+ bases_ee74420, 4,
+ &(vtc_ee74420[0]), // expected_vtbl_contents
+ &(vtt_ee74420[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee74420),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74420),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74420),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names225,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd5420 : virtual cc420 {
+ int d;
+ virtual void bar(); // _ZN6dd54203barEv
+ ~dd5420(); // tgen
+ dd5420(); // tgen
+};
+//SIG(-1 dd5420) C1{ VBC2{ BC3{ BC4{ Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void dd5420 ::bar(){vfunc_called(this, "_ZN6dd54203barEv");}
+dd5420 ::~dd5420(){ note_dtor("dd5420", this);} // tgen
+dd5420 ::dd5420(){ note_ctor("dd5420", this);} // tgen
+
+static void Test_dd5420()
+{
+ extern Class_Descriptor cd_dd5420;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd5420, buf);
+ dd5420 *dp, &lv = *(dp=new (buf) dd5420());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd5420)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5420)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc420*), ABISELECT(24,12), "dd5420");
+ check_base_class_offset(lv, (bb20*)(cc420*), ABISELECT(16,8), "dd5420");
+ check_base_class_offset(lv, (cc420*), ABISELECT(16,8), "dd5420");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5420.d");
+ test_class_info(&lv, &cd_dd5420);
+ dp->~dd5420();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5420(Test_dd5420, "dd5420", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd5420C1Ev();
+extern void _ZN6dd5420D1Ev();
+Name_Map name_map_dd5420[] = {
+ NSPAIR(_ZN6dd5420C1Ev),
+ NSPAIR(_ZN6dd5420D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc420;
+extern VTBL_ENTRY _ZTI5cc420[];
+extern VTBL_ENTRY _ZTV5cc420[];
+static Base_Class bases_dd5420[] = {
+ // 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_bb20, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc420, 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 _ZTI6dd5420[];
+extern void _ZN6dd54203barEv();
+extern void _ZN4bb203fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54203barEv,_ZTv0_n16_N6dd54203barEv)();
+extern void ABISELECT(_ZThn16_N6dd54203barEv,_ZThn8_N6dd54203barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd5420[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5420[0]),
+ (VTBL_ENTRY)&_ZN6dd54203barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5420[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54203barEv,_ZTv0_n16_N6dd54203barEv),
+};
+extern VTBL_ENTRY _ZTV6dd5420[];
+static VTT_ENTRY vtt_dd5420[] = {
+ {&(_ZTV6dd5420[3]), 3,10},
+ {&(_ZTV6dd5420[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd5420[];
+extern VTBL_ENTRY _ZTV6dd5420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5420[];
+static VTBL_ENTRY alt_thunk_names226[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54203barEv,_ZTv0_n16_N6dd54203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54203barEv,_ZThn8_N6dd54203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5420 = { "dd5420", // class name
+ bases_dd5420, 3,
+ &(vtc_dd5420[0]), // expected_vtbl_contents
+ &(vtt_dd5420[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd5420),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5420),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5420),2, //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 ee05420 : dd5420 {
+ int e;
+ ~ee05420(); // tgen
+ ee05420(); // tgen
+};
+//SIG(1 ee05420) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v2 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee05420 ::~ee05420(){ note_dtor("ee05420", this);} // tgen
+ee05420 ::ee05420(){ note_ctor("ee05420", this);} // tgen
+
+static void Test_ee05420()
+{
+ extern Class_Descriptor cd_ee05420;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee05420, buf);
+ ee05420 *dp, &lv = *(dp=new (buf) ee05420());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee05420)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05420)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc420*), ABISELECT(24,16), "ee05420");
+ check_base_class_offset(lv, (bb20*)(cc420*), ABISELECT(16,12), "ee05420");
+ check_base_class_offset(lv, (cc420*)(dd5420*), ABISELECT(16,12), "ee05420");
+ check_base_class_offset(lv, (dd5420*), 0, "ee05420");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05420.e");
+ test_class_info(&lv, &cd_ee05420);
+ dp->~ee05420();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05420(Test_ee05420, "ee05420", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee05420C1Ev();
+extern void _ZN7ee05420D1Ev();
+Name_Map name_map_ee05420[] = {
+ NSPAIR(_ZN7ee05420C1Ev),
+ NSPAIR(_ZN7ee05420D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc420;
+extern VTBL_ENTRY _ZTI5cc420[];
+extern VTBL_ENTRY _ZTV5cc420[];
+extern Class_Descriptor cd_dd5420;
+extern VTBL_ENTRY _ZTI6dd5420[];
+extern VTBL_ENTRY _ZTV6dd5420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5420[];
+static Base_Class bases_ee05420[] = {
+ // 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_bb20, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc420, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5420, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee05420[];
+extern void _ZN6dd54203barEv();
+extern void _ZN4bb203fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54203barEv,_ZTv0_n16_N6dd54203barEv)();
+extern void ABISELECT(_ZThn16_N6dd54203barEv,_ZThn12_N6dd54203barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee05420[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05420[0]),
+ (VTBL_ENTRY)&_ZN6dd54203barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05420[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54203barEv,_ZTv0_n16_N6dd54203barEv),
+};
+extern VTBL_ENTRY _ZTV7ee05420[];
+extern void _ZN6dd54203barEv();
+static VTBL_ENTRY _tg__ZTV6dd5420__7ee05420[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5420[0]),
+ (VTBL_ENTRY)&_ZN6dd54203barEv,
+};
+extern void _ZN4bb203fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54203barEv,_ZTv0_n16_N6dd54203barEv)();
+extern void ABISELECT(_ZThn16_N6dd54203barEv,_ZThn12_N6dd54203barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc420__6dd5420__7ee05420[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5420[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54203barEv,_ZTv0_n16_N6dd54203barEv),
+};
+static VTT_ENTRY vtt_ee05420[] = {
+ {&(_ZTV7ee05420[3]), 3,10},
+ {&(_tg__ZTV6dd5420__7ee05420[3]), 3,4},
+ {&(_tg__ZTV5cc420__6dd5420__7ee05420[4]), 4,6},
+ {&(_ZTV7ee05420[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee05420[];
+extern VTBL_ENTRY _ZTV7ee05420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05420[];
+static VTBL_ENTRY alt_thunk_names227[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54203barEv,_ZTv0_n16_N6dd54203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54203barEv,_ZThn12_N6dd54203barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54203barEv,_ZThn12_N6dd54203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05420 = { "ee05420", // class name
+ bases_ee05420, 4,
+ &(vtc_ee05420[0]), // expected_vtbl_contents
+ &(vtt_ee05420[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee05420),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05420),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05420),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names227,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee15420 : virtual dd5420 {
+ int e;
+ ~ee15420(); // tgen
+ ee15420(); // tgen
+};
+//SIG(1 ee15420) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v2 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee15420 ::~ee15420(){ note_dtor("ee15420", this);} // tgen
+ee15420 ::ee15420(){ note_ctor("ee15420", this);} // tgen
+
+static void Test_ee15420()
+{
+ extern Class_Descriptor cd_ee15420;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee15420, buf);
+ ee15420 *dp, &lv = *(dp=new (buf) ee15420());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee15420)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15420)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc420*), ABISELECT(40,20), "ee15420");
+ check_base_class_offset(lv, (bb20*)(cc420*), ABISELECT(32,16), "ee15420");
+ check_base_class_offset(lv, (cc420*)(dd5420*), ABISELECT(32,16), "ee15420");
+ check_base_class_offset(lv, (dd5420*), ABISELECT(16,8), "ee15420");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15420.e");
+ test_class_info(&lv, &cd_ee15420);
+ dp->~ee15420();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15420(Test_ee15420, "ee15420", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee15420C1Ev();
+extern void _ZN7ee15420D1Ev();
+Name_Map name_map_ee15420[] = {
+ NSPAIR(_ZN7ee15420C1Ev),
+ NSPAIR(_ZN7ee15420D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc420;
+extern VTBL_ENTRY _ZTI5cc420[];
+extern VTBL_ENTRY _ZTV5cc420[];
+extern Class_Descriptor cd_dd5420;
+extern VTBL_ENTRY _ZTI6dd5420[];
+extern VTBL_ENTRY _ZTV6dd5420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5420[];
+static Base_Class bases_ee15420[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc420, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5420, 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 _ZTI7ee15420[];
+extern void _ZN6dd54203barEv();
+extern void _ZN4bb203fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54203barEv,_ZTv0_n16_N6dd54203barEv)();
+extern void ABISELECT(_ZThn16_N6dd54203barEv,_ZThn8_N6dd54203barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee15420[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15420[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15420[0]),
+ (VTBL_ENTRY)&_ZN6dd54203barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15420[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54203barEv,_ZTv0_n16_N6dd54203barEv),
+};
+extern VTBL_ENTRY _ZTV7ee15420[];
+extern void _ZN6dd54203barEv();
+static VTBL_ENTRY _tg__ZTV6dd5420__7ee15420[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5420[0]),
+ (VTBL_ENTRY)&_ZN6dd54203barEv,
+};
+extern void _ZN4bb203fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54203barEv,_ZTv0_n16_N6dd54203barEv)();
+extern void ABISELECT(_ZThn16_N6dd54203barEv,_ZThn8_N6dd54203barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc420__6dd5420__7ee15420[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5420[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54203barEv,_ZTv0_n16_N6dd54203barEv),
+};
+static VTT_ENTRY vtt_ee15420[] = {
+ {&(_ZTV7ee15420[4]), 4,15},
+ {&(_ZTV7ee15420[8]), 8,15},
+ {&(_ZTV7ee15420[13]), 13,15},
+ {&(_tg__ZTV6dd5420__7ee15420[3]), 3,4},
+ {&(_tg__ZTV5cc420__6dd5420__7ee15420[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee15420[];
+extern VTBL_ENTRY _ZTV7ee15420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15420[];
+static VTBL_ENTRY alt_thunk_names228[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54203barEv,_ZTv0_n16_N6dd54203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54203barEv,_ZThn8_N6dd54203barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54203barEv,_ZThn8_N6dd54203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15420 = { "ee15420", // class name
+ bases_ee15420, 4,
+ &(vtc_ee15420[0]), // expected_vtbl_contents
+ &(vtt_ee15420[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee15420),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15420),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15420),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names228,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee25420 : dd5420 {
+ int e;
+ virtual void foo(); // _ZN7ee254203fooEv
+ ~ee25420(); // tgen
+ ee25420(); // tgen
+};
+//SIG(1 ee25420) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v1 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee25420 ::foo(){vfunc_called(this, "_ZN7ee254203fooEv");}
+ee25420 ::~ee25420(){ note_dtor("ee25420", this);} // tgen
+ee25420 ::ee25420(){ note_ctor("ee25420", this);} // tgen
+
+static void Test_ee25420()
+{
+ extern Class_Descriptor cd_ee25420;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee25420, buf);
+ ee25420 *dp, &lv = *(dp=new (buf) ee25420());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee25420)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25420)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc420*), ABISELECT(24,16), "ee25420");
+ check_base_class_offset(lv, (bb20*)(cc420*), ABISELECT(16,12), "ee25420");
+ check_base_class_offset(lv, (cc420*)(dd5420*), ABISELECT(16,12), "ee25420");
+ check_base_class_offset(lv, (dd5420*), 0, "ee25420");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25420.e");
+ test_class_info(&lv, &cd_ee25420);
+ dp->~ee25420();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25420(Test_ee25420, "ee25420", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee25420C1Ev();
+extern void _ZN7ee25420D1Ev();
+Name_Map name_map_ee25420[] = {
+ NSPAIR(_ZN7ee25420C1Ev),
+ NSPAIR(_ZN7ee25420D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc420;
+extern VTBL_ENTRY _ZTI5cc420[];
+extern VTBL_ENTRY _ZTV5cc420[];
+extern Class_Descriptor cd_dd5420;
+extern VTBL_ENTRY _ZTI6dd5420[];
+extern VTBL_ENTRY _ZTV6dd5420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5420[];
+static Base_Class bases_ee25420[] = {
+ // 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_bb20, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc420, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5420, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee25420[];
+extern void _ZN6dd54203barEv();
+extern void _ZN7ee254203fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee254203fooEv,_ZTv0_n12_N7ee254203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee254203fooEv,_ZThn12_N7ee254203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd54203barEv,_ZTv0_n16_N6dd54203barEv)();
+extern void ABISELECT(_ZThn16_N6dd54203barEv,_ZThn12_N6dd54203barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25420[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25420[0]),
+ (VTBL_ENTRY)&_ZN6dd54203barEv,
+ (VTBL_ENTRY)&_ZN7ee254203fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25420[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee254203fooEv,_ZTv0_n12_N7ee254203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54203barEv,_ZTv0_n16_N6dd54203barEv),
+};
+extern VTBL_ENTRY _ZTV7ee25420[];
+extern void _ZN6dd54203barEv();
+static VTBL_ENTRY _tg__ZTV6dd5420__7ee25420[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5420[0]),
+ (VTBL_ENTRY)&_ZN6dd54203barEv,
+};
+extern void _ZN4bb203fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54203barEv,_ZTv0_n16_N6dd54203barEv)();
+extern void ABISELECT(_ZThn16_N6dd54203barEv,_ZThn12_N6dd54203barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc420__6dd5420__7ee25420[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5420[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54203barEv,_ZTv0_n16_N6dd54203barEv),
+};
+static VTT_ENTRY vtt_ee25420[] = {
+ {&(_ZTV7ee25420[3]), 3,11},
+ {&(_tg__ZTV6dd5420__7ee25420[3]), 3,4},
+ {&(_tg__ZTV5cc420__6dd5420__7ee25420[4]), 4,6},
+ {&(_ZTV7ee25420[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee25420[];
+extern VTBL_ENTRY _ZTV7ee25420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25420[];
+static VTBL_ENTRY alt_thunk_names229[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54203barEv,_ZTv0_n16_N6dd54203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54203barEv,_ZThn12_N6dd54203barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54203barEv,_ZThn12_N6dd54203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee254203fooEv,_ZTv0_n12_N7ee254203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee254203fooEv,_ZThn12_N7ee254203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25420 = { "ee25420", // class name
+ bases_ee25420, 4,
+ &(vtc_ee25420[0]), // expected_vtbl_contents
+ &(vtt_ee25420[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee25420),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25420),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25420),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names229,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee35420 : virtual dd5420 {
+ int e;
+ virtual void foo(); // _ZN7ee354203fooEv
+ ~ee35420(); // tgen
+ ee35420(); // tgen
+};
+//SIG(1 ee35420) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v1 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee35420 ::foo(){vfunc_called(this, "_ZN7ee354203fooEv");}
+ee35420 ::~ee35420(){ note_dtor("ee35420", this);} // tgen
+ee35420 ::ee35420(){ note_ctor("ee35420", this);} // tgen
+
+static void Test_ee35420()
+{
+ extern Class_Descriptor cd_ee35420;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee35420, buf);
+ ee35420 *dp, &lv = *(dp=new (buf) ee35420());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee35420)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35420)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc420*), ABISELECT(40,20), "ee35420");
+ check_base_class_offset(lv, (bb20*)(cc420*), ABISELECT(32,16), "ee35420");
+ check_base_class_offset(lv, (cc420*)(dd5420*), ABISELECT(32,16), "ee35420");
+ check_base_class_offset(lv, (dd5420*), ABISELECT(16,8), "ee35420");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35420.e");
+ test_class_info(&lv, &cd_ee35420);
+ dp->~ee35420();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35420(Test_ee35420, "ee35420", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee35420C1Ev();
+extern void _ZN7ee35420D1Ev();
+Name_Map name_map_ee35420[] = {
+ NSPAIR(_ZN7ee35420C1Ev),
+ NSPAIR(_ZN7ee35420D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc420;
+extern VTBL_ENTRY _ZTI5cc420[];
+extern VTBL_ENTRY _ZTV5cc420[];
+extern Class_Descriptor cd_dd5420;
+extern VTBL_ENTRY _ZTI6dd5420[];
+extern VTBL_ENTRY _ZTV6dd5420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5420[];
+static Base_Class bases_ee35420[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc420, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5420, 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 _ZTI7ee35420[];
+extern void _ZN7ee354203fooEv();
+extern void _ZN6dd54203barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee354203fooEv,_ZTv0_n12_N7ee354203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee354203fooEv,_ZThn16_N7ee354203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd54203barEv,_ZTv0_n16_N6dd54203barEv)();
+extern void ABISELECT(_ZThn16_N6dd54203barEv,_ZThn8_N6dd54203barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35420[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35420[0]),
+ (VTBL_ENTRY)&_ZN7ee354203fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35420[0]),
+ (VTBL_ENTRY)&_ZN6dd54203barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35420[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee354203fooEv,_ZTv0_n12_N7ee354203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54203barEv,_ZTv0_n16_N6dd54203barEv),
+};
+extern VTBL_ENTRY _ZTV7ee35420[];
+extern void _ZN6dd54203barEv();
+static VTBL_ENTRY _tg__ZTV6dd5420__7ee35420[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5420[0]),
+ (VTBL_ENTRY)&_ZN6dd54203barEv,
+};
+extern void _ZN4bb203fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54203barEv,_ZTv0_n16_N6dd54203barEv)();
+extern void ABISELECT(_ZThn16_N6dd54203barEv,_ZThn8_N6dd54203barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc420__6dd5420__7ee35420[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5420[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54203barEv,_ZTv0_n16_N6dd54203barEv),
+};
+static VTT_ENTRY vtt_ee35420[] = {
+ {&(_ZTV7ee35420[4]), 4,16},
+ {&(_ZTV7ee35420[9]), 9,16},
+ {&(_ZTV7ee35420[14]), 14,16},
+ {&(_tg__ZTV6dd5420__7ee35420[3]), 3,4},
+ {&(_tg__ZTV5cc420__6dd5420__7ee35420[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee35420[];
+extern VTBL_ENTRY _ZTV7ee35420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35420[];
+static VTBL_ENTRY alt_thunk_names230[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54203barEv,_ZTv0_n16_N6dd54203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54203barEv,_ZThn8_N6dd54203barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54203barEv,_ZThn8_N6dd54203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee354203fooEv,_ZTv0_n12_N7ee354203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee354203fooEv,_ZThn16_N7ee354203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35420 = { "ee35420", // class name
+ bases_ee35420, 4,
+ &(vtc_ee35420[0]), // expected_vtbl_contents
+ &(vtt_ee35420[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee35420),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35420),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35420),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names230,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee45420 : dd5420 {
+ int e;
+ virtual void bar(); // _ZN7ee454203barEv
+ ~ee45420(); // tgen
+ ee45420(); // tgen
+};
+//SIG(1 ee45420) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v2 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee45420 ::bar(){vfunc_called(this, "_ZN7ee454203barEv");}
+ee45420 ::~ee45420(){ note_dtor("ee45420", this);} // tgen
+ee45420 ::ee45420(){ note_ctor("ee45420", this);} // tgen
+
+static void Test_ee45420()
+{
+ extern Class_Descriptor cd_ee45420;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee45420, buf);
+ ee45420 *dp, &lv = *(dp=new (buf) ee45420());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee45420)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45420)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc420*), ABISELECT(24,16), "ee45420");
+ check_base_class_offset(lv, (bb20*)(cc420*), ABISELECT(16,12), "ee45420");
+ check_base_class_offset(lv, (cc420*)(dd5420*), ABISELECT(16,12), "ee45420");
+ check_base_class_offset(lv, (dd5420*), 0, "ee45420");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45420.e");
+ test_class_info(&lv, &cd_ee45420);
+ dp->~ee45420();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45420(Test_ee45420, "ee45420", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee45420C1Ev();
+extern void _ZN7ee45420D1Ev();
+Name_Map name_map_ee45420[] = {
+ NSPAIR(_ZN7ee45420C1Ev),
+ NSPAIR(_ZN7ee45420D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc420;
+extern VTBL_ENTRY _ZTI5cc420[];
+extern VTBL_ENTRY _ZTV5cc420[];
+extern Class_Descriptor cd_dd5420;
+extern VTBL_ENTRY _ZTI6dd5420[];
+extern VTBL_ENTRY _ZTV6dd5420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5420[];
+static Base_Class bases_ee45420[] = {
+ // 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_bb20, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc420, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5420, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee45420[];
+extern void _ZN7ee454203barEv();
+extern void _ZN4bb203fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee454203barEv,_ZTv0_n16_N7ee454203barEv)();
+extern void ABISELECT(_ZThn16_N7ee454203barEv,_ZThn12_N7ee454203barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee45420[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45420[0]),
+ (VTBL_ENTRY)&_ZN7ee454203barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45420[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee454203barEv,_ZTv0_n16_N7ee454203barEv),
+};
+extern VTBL_ENTRY _ZTV7ee45420[];
+extern void _ZN6dd54203barEv();
+static VTBL_ENTRY _tg__ZTV6dd5420__7ee45420[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5420[0]),
+ (VTBL_ENTRY)&_ZN6dd54203barEv,
+};
+extern void _ZN4bb203fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54203barEv,_ZTv0_n16_N6dd54203barEv)();
+extern void ABISELECT(_ZThn16_N6dd54203barEv,_ZThn12_N6dd54203barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc420__6dd5420__7ee45420[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5420[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54203barEv,_ZTv0_n16_N6dd54203barEv),
+};
+static VTT_ENTRY vtt_ee45420[] = {
+ {&(_ZTV7ee45420[3]), 3,10},
+ {&(_tg__ZTV6dd5420__7ee45420[3]), 3,4},
+ {&(_tg__ZTV5cc420__6dd5420__7ee45420[4]), 4,6},
+ {&(_ZTV7ee45420[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee45420[];
+extern VTBL_ENTRY _ZTV7ee45420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45420[];
+static VTBL_ENTRY alt_thunk_names231[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54203barEv,_ZTv0_n16_N6dd54203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54203barEv,_ZThn12_N6dd54203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee454203barEv,_ZTv0_n16_N7ee454203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee454203barEv,_ZThn12_N7ee454203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45420 = { "ee45420", // class name
+ bases_ee45420, 4,
+ &(vtc_ee45420[0]), // expected_vtbl_contents
+ &(vtt_ee45420[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee45420),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45420),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45420),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names231,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee55420 : virtual dd5420 {
+ int e;
+ virtual void bar(); // _ZN7ee554203barEv
+ ~ee55420(); // tgen
+ ee55420(); // tgen
+};
+//SIG(1 ee55420) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v2 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee55420 ::bar(){vfunc_called(this, "_ZN7ee554203barEv");}
+ee55420 ::~ee55420(){ note_dtor("ee55420", this);} // tgen
+ee55420 ::ee55420(){ note_ctor("ee55420", this);} // tgen
+
+static void Test_ee55420()
+{
+ extern Class_Descriptor cd_ee55420;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee55420, buf);
+ ee55420 *dp, &lv = *(dp=new (buf) ee55420());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee55420)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55420)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc420*), ABISELECT(40,20), "ee55420");
+ check_base_class_offset(lv, (bb20*)(cc420*), ABISELECT(32,16), "ee55420");
+ check_base_class_offset(lv, (cc420*)(dd5420*), ABISELECT(32,16), "ee55420");
+ check_base_class_offset(lv, (dd5420*), ABISELECT(16,8), "ee55420");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55420.e");
+ test_class_info(&lv, &cd_ee55420);
+ dp->~ee55420();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55420(Test_ee55420, "ee55420", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee55420C1Ev();
+extern void _ZN7ee55420D1Ev();
+Name_Map name_map_ee55420[] = {
+ NSPAIR(_ZN7ee55420C1Ev),
+ NSPAIR(_ZN7ee55420D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc420;
+extern VTBL_ENTRY _ZTI5cc420[];
+extern VTBL_ENTRY _ZTV5cc420[];
+extern Class_Descriptor cd_dd5420;
+extern VTBL_ENTRY _ZTI6dd5420[];
+extern VTBL_ENTRY _ZTV6dd5420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5420[];
+static Base_Class bases_ee55420[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc420, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5420, 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 _ZTI7ee55420[];
+extern void _ZN7ee554203barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee554203barEv,_ZTv0_n16_N7ee554203barEv)();
+extern void ABISELECT(_ZThn16_N7ee554203barEv,_ZThn8_N7ee554203barEv)() __attribute__((weak));
+extern void _ZN4bb203fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee554203barEv,_ZTv0_n16_N7ee554203barEv)();
+extern void ABISELECT(_ZThn32_N7ee554203barEv,_ZThn16_N7ee554203barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee55420[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55420[0]),
+ (VTBL_ENTRY)&_ZN7ee554203barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55420[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee554203barEv,_ZTv0_n16_N7ee554203barEv),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55420[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee554203barEv,_ZTv0_n16_N7ee554203barEv),
+};
+extern VTBL_ENTRY _ZTV7ee55420[];
+extern void _ZN6dd54203barEv();
+static VTBL_ENTRY _tg__ZTV6dd5420__7ee55420[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5420[0]),
+ (VTBL_ENTRY)&_ZN6dd54203barEv,
+};
+extern void _ZN4bb203fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54203barEv,_ZTv0_n16_N6dd54203barEv)();
+extern void ABISELECT(_ZThn16_N6dd54203barEv,_ZThn8_N6dd54203barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc420__6dd5420__7ee55420[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5420[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54203barEv,_ZTv0_n16_N6dd54203barEv),
+};
+static VTT_ENTRY vtt_ee55420[] = {
+ {&(_ZTV7ee55420[4]), 4,16},
+ {&(_ZTV7ee55420[9]), 9,16},
+ {&(_ZTV7ee55420[14]), 14,16},
+ {&(_tg__ZTV6dd5420__7ee55420[3]), 3,4},
+ {&(_tg__ZTV5cc420__6dd5420__7ee55420[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee55420[];
+extern VTBL_ENTRY _ZTV7ee55420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55420[];
+static VTBL_ENTRY alt_thunk_names232[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54203barEv,_ZTv0_n16_N6dd54203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54203barEv,_ZThn8_N6dd54203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee554203barEv,_ZTv0_n16_N7ee554203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee554203barEv,_ZThn16_N7ee554203barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee554203barEv,_ZThn8_N7ee554203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55420 = { "ee55420", // class name
+ bases_ee55420, 4,
+ &(vtc_ee55420[0]), // expected_vtbl_contents
+ &(vtt_ee55420[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee55420),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55420),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55420),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names232,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee65420 : dd5420 {
+ int e;
+ virtual void foo(); // _ZN7ee654203fooEv
+ virtual void bar(); // _ZN7ee654203barEv
+ ~ee65420(); // tgen
+ ee65420(); // tgen
+};
+//SIG(1 ee65420) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v1 Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65420 ::foo(){vfunc_called(this, "_ZN7ee654203fooEv");}
+void ee65420 ::bar(){vfunc_called(this, "_ZN7ee654203barEv");}
+ee65420 ::~ee65420(){ note_dtor("ee65420", this);} // tgen
+ee65420 ::ee65420(){ note_ctor("ee65420", this);} // tgen
+
+static void Test_ee65420()
+{
+ extern Class_Descriptor cd_ee65420;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee65420, buf);
+ ee65420 *dp, &lv = *(dp=new (buf) ee65420());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee65420)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65420)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc420*), ABISELECT(24,16), "ee65420");
+ check_base_class_offset(lv, (bb20*)(cc420*), ABISELECT(16,12), "ee65420");
+ check_base_class_offset(lv, (cc420*)(dd5420*), ABISELECT(16,12), "ee65420");
+ check_base_class_offset(lv, (dd5420*), 0, "ee65420");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65420.e");
+ test_class_info(&lv, &cd_ee65420);
+ dp->~ee65420();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65420(Test_ee65420, "ee65420", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee65420C1Ev();
+extern void _ZN7ee65420D1Ev();
+Name_Map name_map_ee65420[] = {
+ NSPAIR(_ZN7ee65420C1Ev),
+ NSPAIR(_ZN7ee65420D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc420;
+extern VTBL_ENTRY _ZTI5cc420[];
+extern VTBL_ENTRY _ZTV5cc420[];
+extern Class_Descriptor cd_dd5420;
+extern VTBL_ENTRY _ZTI6dd5420[];
+extern VTBL_ENTRY _ZTV6dd5420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5420[];
+static Base_Class bases_ee65420[] = {
+ // 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_bb20, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc420, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5420, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee65420[];
+extern void _ZN7ee654203barEv();
+extern void _ZN7ee654203fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee654203fooEv,_ZTv0_n12_N7ee654203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee654203fooEv,_ZThn12_N7ee654203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee654203barEv,_ZTv0_n16_N7ee654203barEv)();
+extern void ABISELECT(_ZThn16_N7ee654203barEv,_ZThn12_N7ee654203barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65420[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65420[0]),
+ (VTBL_ENTRY)&_ZN7ee654203barEv,
+ (VTBL_ENTRY)&_ZN7ee654203fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65420[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee654203fooEv,_ZTv0_n12_N7ee654203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee654203barEv,_ZTv0_n16_N7ee654203barEv),
+};
+extern VTBL_ENTRY _ZTV7ee65420[];
+extern void _ZN6dd54203barEv();
+static VTBL_ENTRY _tg__ZTV6dd5420__7ee65420[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5420[0]),
+ (VTBL_ENTRY)&_ZN6dd54203barEv,
+};
+extern void _ZN4bb203fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54203barEv,_ZTv0_n16_N6dd54203barEv)();
+extern void ABISELECT(_ZThn16_N6dd54203barEv,_ZThn12_N6dd54203barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc420__6dd5420__7ee65420[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5420[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54203barEv,_ZTv0_n16_N6dd54203barEv),
+};
+static VTT_ENTRY vtt_ee65420[] = {
+ {&(_ZTV7ee65420[3]), 3,11},
+ {&(_tg__ZTV6dd5420__7ee65420[3]), 3,4},
+ {&(_tg__ZTV5cc420__6dd5420__7ee65420[4]), 4,6},
+ {&(_ZTV7ee65420[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee65420[];
+extern VTBL_ENTRY _ZTV7ee65420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65420[];
+static VTBL_ENTRY alt_thunk_names233[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54203barEv,_ZTv0_n16_N6dd54203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54203barEv,_ZThn12_N6dd54203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee654203barEv,_ZTv0_n16_N7ee654203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee654203barEv,_ZThn12_N7ee654203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee654203fooEv,_ZTv0_n12_N7ee654203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee654203fooEv,_ZThn12_N7ee654203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65420 = { "ee65420", // class name
+ bases_ee65420, 4,
+ &(vtc_ee65420[0]), // expected_vtbl_contents
+ &(vtt_ee65420[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee65420),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65420),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65420),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names233,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee75420 : virtual dd5420 {
+ int e;
+ virtual void foo(); // _ZN7ee754203fooEv
+ virtual void bar(); // _ZN7ee754203barEv
+ ~ee75420(); // tgen
+ ee75420(); // tgen
+};
+//SIG(1 ee75420) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v1 Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75420 ::foo(){vfunc_called(this, "_ZN7ee754203fooEv");}
+void ee75420 ::bar(){vfunc_called(this, "_ZN7ee754203barEv");}
+ee75420 ::~ee75420(){ note_dtor("ee75420", this);} // tgen
+ee75420 ::ee75420(){ note_ctor("ee75420", this);} // tgen
+
+static void Test_ee75420()
+{
+ extern Class_Descriptor cd_ee75420;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee75420, buf);
+ ee75420 *dp, &lv = *(dp=new (buf) ee75420());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee75420)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75420)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc420*), ABISELECT(40,20), "ee75420");
+ check_base_class_offset(lv, (bb20*)(cc420*), ABISELECT(32,16), "ee75420");
+ check_base_class_offset(lv, (cc420*)(dd5420*), ABISELECT(32,16), "ee75420");
+ check_base_class_offset(lv, (dd5420*), ABISELECT(16,8), "ee75420");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75420.e");
+ test_class_info(&lv, &cd_ee75420);
+ dp->~ee75420();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75420(Test_ee75420, "ee75420", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee75420C1Ev();
+extern void _ZN7ee75420D1Ev();
+Name_Map name_map_ee75420[] = {
+ NSPAIR(_ZN7ee75420C1Ev),
+ NSPAIR(_ZN7ee75420D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc420;
+extern VTBL_ENTRY _ZTI5cc420[];
+extern VTBL_ENTRY _ZTV5cc420[];
+extern Class_Descriptor cd_dd5420;
+extern VTBL_ENTRY _ZTI6dd5420[];
+extern VTBL_ENTRY _ZTV6dd5420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5420[];
+static Base_Class bases_ee75420[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc420, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5420, 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 _ZTI7ee75420[];
+extern void _ZN7ee754203fooEv();
+extern void _ZN7ee754203barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee754203barEv,_ZTv0_n16_N7ee754203barEv)();
+extern void ABISELECT(_ZThn16_N7ee754203barEv,_ZThn8_N7ee754203barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee754203fooEv,_ZTv0_n12_N7ee754203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee754203fooEv,_ZThn16_N7ee754203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee754203barEv,_ZTv0_n16_N7ee754203barEv)();
+extern void ABISELECT(_ZThn32_N7ee754203barEv,_ZThn16_N7ee754203barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75420[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75420[0]),
+ (VTBL_ENTRY)&_ZN7ee754203fooEv,
+ (VTBL_ENTRY)&_ZN7ee754203barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75420[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee754203barEv,_ZTv0_n16_N7ee754203barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75420[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee754203fooEv,_ZTv0_n12_N7ee754203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee754203barEv,_ZTv0_n16_N7ee754203barEv),
+};
+extern VTBL_ENTRY _ZTV7ee75420[];
+extern void _ZN6dd54203barEv();
+static VTBL_ENTRY _tg__ZTV6dd5420__7ee75420[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5420[0]),
+ (VTBL_ENTRY)&_ZN6dd54203barEv,
+};
+extern void _ZN4bb203fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54203barEv,_ZTv0_n16_N6dd54203barEv)();
+extern void ABISELECT(_ZThn16_N6dd54203barEv,_ZThn8_N6dd54203barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc420__6dd5420__7ee75420[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5420[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54203barEv,_ZTv0_n16_N6dd54203barEv),
+};
+static VTT_ENTRY vtt_ee75420[] = {
+ {&(_ZTV7ee75420[4]), 4,17},
+ {&(_ZTV7ee75420[10]), 10,17},
+ {&(_ZTV7ee75420[15]), 15,17},
+ {&(_tg__ZTV6dd5420__7ee75420[3]), 3,4},
+ {&(_tg__ZTV5cc420__6dd5420__7ee75420[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee75420[];
+extern VTBL_ENTRY _ZTV7ee75420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75420[];
+static VTBL_ENTRY alt_thunk_names234[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54203barEv,_ZTv0_n16_N6dd54203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54203barEv,_ZThn8_N6dd54203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee754203fooEv,_ZTv0_n12_N7ee754203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee754203fooEv,_ZThn16_N7ee754203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee754203barEv,_ZTv0_n16_N7ee754203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee754203barEv,_ZThn16_N7ee754203barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee754203barEv,_ZThn8_N7ee754203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75420 = { "ee75420", // class name
+ bases_ee75420, 4,
+ &(vtc_ee75420[0]), // expected_vtbl_contents
+ &(vtt_ee75420[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee75420),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75420),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75420),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names234,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd6420 : cc420 {
+ int d;
+ virtual void bar(); // _ZN6dd64203barEv
+ virtual void foo(); // _ZN6dd64203fooEv
+ ~dd6420(); // tgen
+ dd6420(); // tgen
+};
+//SIG(-1 dd6420) C1{ BC2{ BC3{ BC4{ Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void dd6420 ::bar(){vfunc_called(this, "_ZN6dd64203barEv");}
+void dd6420 ::foo(){vfunc_called(this, "_ZN6dd64203fooEv");}
+dd6420 ::~dd6420(){ note_dtor("dd6420", this);} // tgen
+dd6420 ::dd6420(){ note_ctor("dd6420", this);} // tgen
+
+static void Test_dd6420()
+{
+ extern Class_Descriptor cd_dd6420;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd6420, buf);
+ dd6420 *dp, &lv = *(dp=new (buf) dd6420());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd6420)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6420)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc420*), ABISELECT(8,4), "dd6420");
+ check_base_class_offset(lv, (bb20*)(cc420*), 0, "dd6420");
+ check_base_class_offset(lv, (cc420*), 0, "dd6420");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd6420.d");
+ test_class_info(&lv, &cd_dd6420);
+ dp->~dd6420();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6420(Test_dd6420, "dd6420", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd6420C1Ev();
+extern void _ZN6dd6420D1Ev();
+Name_Map name_map_dd6420[] = {
+ NSPAIR(_ZN6dd6420C1Ev),
+ NSPAIR(_ZN6dd6420D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc420;
+extern VTBL_ENTRY _ZTI5cc420[];
+extern VTBL_ENTRY _ZTV5cc420[];
+static Base_Class bases_dd6420[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc420, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI6dd6420[];
+extern void _ZN6dd64203fooEv();
+extern void _ZN6dd64203barEv();
+static VTBL_ENTRY vtc_dd6420[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6420[0]),
+ (VTBL_ENTRY)&_ZN6dd64203fooEv,
+ (VTBL_ENTRY)&_ZN6dd64203barEv,
+};
+extern VTBL_ENTRY _ZTI6dd6420[];
+extern VTBL_ENTRY _ZTV6dd6420[];
+Class_Descriptor cd_dd6420 = { "dd6420", // class name
+ bases_dd6420, 3,
+ &(vtc_dd6420[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd6420),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6420),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 ee06420 : dd6420 {
+ int e;
+ ~ee06420(); // tgen
+ ee06420(); // tgen
+};
+//SIG(1 ee06420) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v2 Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee06420 ::~ee06420(){ note_dtor("ee06420", this);} // tgen
+ee06420 ::ee06420(){ note_ctor("ee06420", this);} // tgen
+
+static void Test_ee06420()
+{
+ extern Class_Descriptor cd_ee06420;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee06420, buf);
+ ee06420 *dp, &lv = *(dp=new (buf) ee06420());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee06420)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06420)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc420*)(dd6420*), ABISELECT(8,4), "ee06420");
+ check_base_class_offset(lv, (bb20*)(cc420*)(dd6420*), 0, "ee06420");
+ check_base_class_offset(lv, (cc420*)(dd6420*), 0, "ee06420");
+ check_base_class_offset(lv, (dd6420*), 0, "ee06420");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee06420.e");
+ test_class_info(&lv, &cd_ee06420);
+ dp->~ee06420();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06420(Test_ee06420, "ee06420", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee06420C1Ev();
+extern void _ZN7ee06420D1Ev();
+Name_Map name_map_ee06420[] = {
+ NSPAIR(_ZN7ee06420C1Ev),
+ NSPAIR(_ZN7ee06420D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc420;
+extern VTBL_ENTRY _ZTI5cc420[];
+extern VTBL_ENTRY _ZTV5cc420[];
+extern Class_Descriptor cd_dd6420;
+extern VTBL_ENTRY _ZTI6dd6420[];
+extern VTBL_ENTRY _ZTV6dd6420[];
+static Base_Class bases_ee06420[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc420, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6420, 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 _ZTI7ee06420[];
+extern void _ZN6dd64203fooEv();
+extern void _ZN6dd64203barEv();
+static VTBL_ENTRY vtc_ee06420[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06420[0]),
+ (VTBL_ENTRY)&_ZN6dd64203fooEv,
+ (VTBL_ENTRY)&_ZN6dd64203barEv,
+};
+extern VTBL_ENTRY _ZTI7ee06420[];
+extern VTBL_ENTRY _ZTV7ee06420[];
+Class_Descriptor cd_ee06420 = { "ee06420", // class name
+ bases_ee06420, 4,
+ &(vtc_ee06420[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee06420),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06420),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 ee16420 : virtual dd6420 {
+ int e;
+ ~ee16420(); // tgen
+ ee16420(); // tgen
+};
+//SIG(1 ee16420) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v2 Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee16420 ::~ee16420(){ note_dtor("ee16420", this);} // tgen
+ee16420 ::ee16420(){ note_ctor("ee16420", this);} // tgen
+
+static void Test_ee16420()
+{
+ extern Class_Descriptor cd_ee16420;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee16420, buf);
+ ee16420 *dp, &lv = *(dp=new (buf) ee16420());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee16420)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16420)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc420*)(dd6420*), ABISELECT(24,12), "ee16420");
+ check_base_class_offset(lv, (bb20*)(cc420*)(dd6420*), ABISELECT(16,8), "ee16420");
+ check_base_class_offset(lv, (cc420*)(dd6420*), ABISELECT(16,8), "ee16420");
+ check_base_class_offset(lv, (dd6420*), ABISELECT(16,8), "ee16420");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16420.e");
+ test_class_info(&lv, &cd_ee16420);
+ dp->~ee16420();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16420(Test_ee16420, "ee16420", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee16420C1Ev();
+extern void _ZN7ee16420D1Ev();
+Name_Map name_map_ee16420[] = {
+ NSPAIR(_ZN7ee16420C1Ev),
+ NSPAIR(_ZN7ee16420D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc420;
+extern VTBL_ENTRY _ZTI5cc420[];
+extern VTBL_ENTRY _ZTV5cc420[];
+extern Class_Descriptor cd_dd6420;
+extern VTBL_ENTRY _ZTI6dd6420[];
+extern VTBL_ENTRY _ZTV6dd6420[];
+static Base_Class bases_ee16420[] = {
+ // 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_bb20, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc420, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6420, 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 _ZTI7ee16420[];
+extern void _ZN6dd64203fooEv();
+extern void _ZN6dd64203barEv();
+static VTBL_ENTRY vtc_ee16420[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16420[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16420[0]),
+ (VTBL_ENTRY)&_ZN6dd64203fooEv,
+ (VTBL_ENTRY)&_ZN6dd64203barEv,
+};
+extern VTBL_ENTRY _ZTV7ee16420[];
+static VTT_ENTRY vtt_ee16420[] = {
+ {&(_ZTV7ee16420[3]), 3,9},
+ {&(_ZTV7ee16420[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee16420[];
+extern VTBL_ENTRY _ZTV7ee16420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16420[];
+Class_Descriptor cd_ee16420 = { "ee16420", // class name
+ bases_ee16420, 4,
+ &(vtc_ee16420[0]), // expected_vtbl_contents
+ &(vtt_ee16420[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee16420),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16420),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16420),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 ee26420 : dd6420 {
+ int e;
+ virtual void foo(); // _ZN7ee264203fooEv
+ ~ee26420(); // tgen
+ ee26420(); // tgen
+};
+//SIG(1 ee26420) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v1 Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26420 ::foo(){vfunc_called(this, "_ZN7ee264203fooEv");}
+ee26420 ::~ee26420(){ note_dtor("ee26420", this);} // tgen
+ee26420 ::ee26420(){ note_ctor("ee26420", this);} // tgen
+
+static void Test_ee26420()
+{
+ extern Class_Descriptor cd_ee26420;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee26420, buf);
+ ee26420 *dp, &lv = *(dp=new (buf) ee26420());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee26420)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26420)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc420*)(dd6420*), ABISELECT(8,4), "ee26420");
+ check_base_class_offset(lv, (bb20*)(cc420*)(dd6420*), 0, "ee26420");
+ check_base_class_offset(lv, (cc420*)(dd6420*), 0, "ee26420");
+ check_base_class_offset(lv, (dd6420*), 0, "ee26420");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee26420.e");
+ test_class_info(&lv, &cd_ee26420);
+ dp->~ee26420();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26420(Test_ee26420, "ee26420", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee26420C1Ev();
+extern void _ZN7ee26420D1Ev();
+Name_Map name_map_ee26420[] = {
+ NSPAIR(_ZN7ee26420C1Ev),
+ NSPAIR(_ZN7ee26420D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc420;
+extern VTBL_ENTRY _ZTI5cc420[];
+extern VTBL_ENTRY _ZTV5cc420[];
+extern Class_Descriptor cd_dd6420;
+extern VTBL_ENTRY _ZTI6dd6420[];
+extern VTBL_ENTRY _ZTV6dd6420[];
+static Base_Class bases_ee26420[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc420, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6420, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee26420[];
+extern void _ZN7ee264203fooEv();
+extern void _ZN6dd64203barEv();
+static VTBL_ENTRY vtc_ee26420[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26420[0]),
+ (VTBL_ENTRY)&_ZN7ee264203fooEv,
+ (VTBL_ENTRY)&_ZN6dd64203barEv,
+};
+extern VTBL_ENTRY _ZTI7ee26420[];
+extern VTBL_ENTRY _ZTV7ee26420[];
+Class_Descriptor cd_ee26420 = { "ee26420", // class name
+ bases_ee26420, 4,
+ &(vtc_ee26420[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee26420),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26420),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 ee36420 : virtual dd6420 {
+ int e;
+ virtual void foo(); // _ZN7ee364203fooEv
+ ~ee36420(); // tgen
+ ee36420(); // tgen
+};
+//SIG(1 ee36420) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v1 Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36420 ::foo(){vfunc_called(this, "_ZN7ee364203fooEv");}
+ee36420 ::~ee36420(){ note_dtor("ee36420", this);} // tgen
+ee36420 ::ee36420(){ note_ctor("ee36420", this);} // tgen
+
+static void Test_ee36420()
+{
+ extern Class_Descriptor cd_ee36420;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee36420, buf);
+ ee36420 *dp, &lv = *(dp=new (buf) ee36420());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee36420)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36420)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc420*)(dd6420*), ABISELECT(24,12), "ee36420");
+ check_base_class_offset(lv, (bb20*)(cc420*)(dd6420*), ABISELECT(16,8), "ee36420");
+ check_base_class_offset(lv, (cc420*)(dd6420*), ABISELECT(16,8), "ee36420");
+ check_base_class_offset(lv, (dd6420*), ABISELECT(16,8), "ee36420");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36420.e");
+ test_class_info(&lv, &cd_ee36420);
+ dp->~ee36420();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36420(Test_ee36420, "ee36420", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee36420C1Ev();
+extern void _ZN7ee36420D1Ev();
+Name_Map name_map_ee36420[] = {
+ NSPAIR(_ZN7ee36420C1Ev),
+ NSPAIR(_ZN7ee36420D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc420;
+extern VTBL_ENTRY _ZTI5cc420[];
+extern VTBL_ENTRY _ZTV5cc420[];
+extern Class_Descriptor cd_dd6420;
+extern VTBL_ENTRY _ZTI6dd6420[];
+extern VTBL_ENTRY _ZTV6dd6420[];
+static Base_Class bases_ee36420[] = {
+ // 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_bb20, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc420, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6420, 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 _ZTI7ee36420[];
+extern void _ZN7ee364203fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee364203fooEv,_ZTv0_n12_N7ee364203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee364203fooEv,_ZThn8_N7ee364203fooEv)() __attribute__((weak));
+extern void _ZN6dd64203barEv();
+static VTBL_ENTRY vtc_ee36420[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36420[0]),
+ (VTBL_ENTRY)&_ZN7ee364203fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36420[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee364203fooEv,_ZTv0_n12_N7ee364203fooEv),
+ (VTBL_ENTRY)&_ZN6dd64203barEv,
+};
+extern VTBL_ENTRY _ZTV7ee36420[];
+static VTT_ENTRY vtt_ee36420[] = {
+ {&(_ZTV7ee36420[3]), 3,10},
+ {&(_ZTV7ee36420[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee36420[];
+extern VTBL_ENTRY _ZTV7ee36420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36420[];
+static VTBL_ENTRY alt_thunk_names235[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee364203fooEv,_ZTv0_n12_N7ee364203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee364203fooEv,_ZThn8_N7ee364203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36420 = { "ee36420", // class name
+ bases_ee36420, 4,
+ &(vtc_ee36420[0]), // expected_vtbl_contents
+ &(vtt_ee36420[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee36420),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36420),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36420),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names235,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee46420 : dd6420 {
+ int e;
+ virtual void bar(); // _ZN7ee464203barEv
+ ~ee46420(); // tgen
+ ee46420(); // tgen
+};
+//SIG(1 ee46420) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v2 Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46420 ::bar(){vfunc_called(this, "_ZN7ee464203barEv");}
+ee46420 ::~ee46420(){ note_dtor("ee46420", this);} // tgen
+ee46420 ::ee46420(){ note_ctor("ee46420", this);} // tgen
+
+static void Test_ee46420()
+{
+ extern Class_Descriptor cd_ee46420;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee46420, buf);
+ ee46420 *dp, &lv = *(dp=new (buf) ee46420());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee46420)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46420)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc420*)(dd6420*), ABISELECT(8,4), "ee46420");
+ check_base_class_offset(lv, (bb20*)(cc420*)(dd6420*), 0, "ee46420");
+ check_base_class_offset(lv, (cc420*)(dd6420*), 0, "ee46420");
+ check_base_class_offset(lv, (dd6420*), 0, "ee46420");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee46420.e");
+ test_class_info(&lv, &cd_ee46420);
+ dp->~ee46420();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46420(Test_ee46420, "ee46420", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee46420C1Ev();
+extern void _ZN7ee46420D1Ev();
+Name_Map name_map_ee46420[] = {
+ NSPAIR(_ZN7ee46420C1Ev),
+ NSPAIR(_ZN7ee46420D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc420;
+extern VTBL_ENTRY _ZTI5cc420[];
+extern VTBL_ENTRY _ZTV5cc420[];
+extern Class_Descriptor cd_dd6420;
+extern VTBL_ENTRY _ZTI6dd6420[];
+extern VTBL_ENTRY _ZTV6dd6420[];
+static Base_Class bases_ee46420[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc420, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6420, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee46420[];
+extern void _ZN6dd64203fooEv();
+extern void _ZN7ee464203barEv();
+static VTBL_ENTRY vtc_ee46420[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46420[0]),
+ (VTBL_ENTRY)&_ZN6dd64203fooEv,
+ (VTBL_ENTRY)&_ZN7ee464203barEv,
+};
+extern VTBL_ENTRY _ZTI7ee46420[];
+extern VTBL_ENTRY _ZTV7ee46420[];
+Class_Descriptor cd_ee46420 = { "ee46420", // class name
+ bases_ee46420, 4,
+ &(vtc_ee46420[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee46420),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46420),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 ee56420 : virtual dd6420 {
+ int e;
+ virtual void bar(); // _ZN7ee564203barEv
+ ~ee56420(); // tgen
+ ee56420(); // tgen
+};
+//SIG(1 ee56420) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v2 Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56420 ::bar(){vfunc_called(this, "_ZN7ee564203barEv");}
+ee56420 ::~ee56420(){ note_dtor("ee56420", this);} // tgen
+ee56420 ::ee56420(){ note_ctor("ee56420", this);} // tgen
+
+static void Test_ee56420()
+{
+ extern Class_Descriptor cd_ee56420;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee56420, buf);
+ ee56420 *dp, &lv = *(dp=new (buf) ee56420());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee56420)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56420)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc420*)(dd6420*), ABISELECT(24,12), "ee56420");
+ check_base_class_offset(lv, (bb20*)(cc420*)(dd6420*), ABISELECT(16,8), "ee56420");
+ check_base_class_offset(lv, (cc420*)(dd6420*), ABISELECT(16,8), "ee56420");
+ check_base_class_offset(lv, (dd6420*), ABISELECT(16,8), "ee56420");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56420.e");
+ test_class_info(&lv, &cd_ee56420);
+ dp->~ee56420();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56420(Test_ee56420, "ee56420", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee56420C1Ev();
+extern void _ZN7ee56420D1Ev();
+Name_Map name_map_ee56420[] = {
+ NSPAIR(_ZN7ee56420C1Ev),
+ NSPAIR(_ZN7ee56420D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc420;
+extern VTBL_ENTRY _ZTI5cc420[];
+extern VTBL_ENTRY _ZTV5cc420[];
+extern Class_Descriptor cd_dd6420;
+extern VTBL_ENTRY _ZTI6dd6420[];
+extern VTBL_ENTRY _ZTV6dd6420[];
+static Base_Class bases_ee56420[] = {
+ // 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_bb20, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc420, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6420, 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 _ZTI7ee56420[];
+extern void _ZN7ee564203barEv();
+extern void _ZN6dd64203fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee564203barEv,_ZTv0_n16_N7ee564203barEv)();
+extern void ABISELECT(_ZThn16_N7ee564203barEv,_ZThn8_N7ee564203barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56420[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56420[0]),
+ (VTBL_ENTRY)&_ZN7ee564203barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56420[0]),
+ (VTBL_ENTRY)&_ZN6dd64203fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee564203barEv,_ZTv0_n16_N7ee564203barEv),
+};
+extern VTBL_ENTRY _ZTV7ee56420[];
+static VTT_ENTRY vtt_ee56420[] = {
+ {&(_ZTV7ee56420[3]), 3,10},
+ {&(_ZTV7ee56420[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee56420[];
+extern VTBL_ENTRY _ZTV7ee56420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56420[];
+static VTBL_ENTRY alt_thunk_names236[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee564203barEv,_ZTv0_n16_N7ee564203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee564203barEv,_ZThn8_N7ee564203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56420 = { "ee56420", // class name
+ bases_ee56420, 4,
+ &(vtc_ee56420[0]), // expected_vtbl_contents
+ &(vtt_ee56420[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee56420),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56420),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56420),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names236,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee66420 : dd6420 {
+ int e;
+ virtual void foo(); // _ZN7ee664203fooEv
+ virtual void bar(); // _ZN7ee664203barEv
+ ~ee66420(); // tgen
+ ee66420(); // tgen
+};
+//SIG(1 ee66420) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v1 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66420 ::foo(){vfunc_called(this, "_ZN7ee664203fooEv");}
+void ee66420 ::bar(){vfunc_called(this, "_ZN7ee664203barEv");}
+ee66420 ::~ee66420(){ note_dtor("ee66420", this);} // tgen
+ee66420 ::ee66420(){ note_ctor("ee66420", this);} // tgen
+
+static void Test_ee66420()
+{
+ extern Class_Descriptor cd_ee66420;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee66420, buf);
+ ee66420 *dp, &lv = *(dp=new (buf) ee66420());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee66420)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66420)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc420*)(dd6420*), ABISELECT(8,4), "ee66420");
+ check_base_class_offset(lv, (bb20*)(cc420*)(dd6420*), 0, "ee66420");
+ check_base_class_offset(lv, (cc420*)(dd6420*), 0, "ee66420");
+ check_base_class_offset(lv, (dd6420*), 0, "ee66420");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee66420.e");
+ test_class_info(&lv, &cd_ee66420);
+ dp->~ee66420();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66420(Test_ee66420, "ee66420", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee66420C1Ev();
+extern void _ZN7ee66420D1Ev();
+Name_Map name_map_ee66420[] = {
+ NSPAIR(_ZN7ee66420C1Ev),
+ NSPAIR(_ZN7ee66420D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc420;
+extern VTBL_ENTRY _ZTI5cc420[];
+extern VTBL_ENTRY _ZTV5cc420[];
+extern Class_Descriptor cd_dd6420;
+extern VTBL_ENTRY _ZTI6dd6420[];
+extern VTBL_ENTRY _ZTV6dd6420[];
+static Base_Class bases_ee66420[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc420, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6420, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee66420[];
+extern void _ZN7ee664203fooEv();
+extern void _ZN7ee664203barEv();
+static VTBL_ENTRY vtc_ee66420[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66420[0]),
+ (VTBL_ENTRY)&_ZN7ee664203fooEv,
+ (VTBL_ENTRY)&_ZN7ee664203barEv,
+};
+extern VTBL_ENTRY _ZTI7ee66420[];
+extern VTBL_ENTRY _ZTV7ee66420[];
+Class_Descriptor cd_ee66420 = { "ee66420", // class name
+ bases_ee66420, 4,
+ &(vtc_ee66420[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee66420),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66420),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 ee76420 : virtual dd6420 {
+ int e;
+ virtual void foo(); // _ZN7ee764203fooEv
+ virtual void bar(); // _ZN7ee764203barEv
+ ~ee76420(); // tgen
+ ee76420(); // tgen
+};
+//SIG(1 ee76420) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v1 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76420 ::foo(){vfunc_called(this, "_ZN7ee764203fooEv");}
+void ee76420 ::bar(){vfunc_called(this, "_ZN7ee764203barEv");}
+ee76420 ::~ee76420(){ note_dtor("ee76420", this);} // tgen
+ee76420 ::ee76420(){ note_ctor("ee76420", this);} // tgen
+
+static void Test_ee76420()
+{
+ extern Class_Descriptor cd_ee76420;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee76420, buf);
+ ee76420 *dp, &lv = *(dp=new (buf) ee76420());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee76420)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76420)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc420*)(dd6420*), ABISELECT(24,12), "ee76420");
+ check_base_class_offset(lv, (bb20*)(cc420*)(dd6420*), ABISELECT(16,8), "ee76420");
+ check_base_class_offset(lv, (cc420*)(dd6420*), ABISELECT(16,8), "ee76420");
+ check_base_class_offset(lv, (dd6420*), ABISELECT(16,8), "ee76420");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76420.e");
+ test_class_info(&lv, &cd_ee76420);
+ dp->~ee76420();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76420(Test_ee76420, "ee76420", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee76420C1Ev();
+extern void _ZN7ee76420D1Ev();
+Name_Map name_map_ee76420[] = {
+ NSPAIR(_ZN7ee76420C1Ev),
+ NSPAIR(_ZN7ee76420D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc420;
+extern VTBL_ENTRY _ZTI5cc420[];
+extern VTBL_ENTRY _ZTV5cc420[];
+extern Class_Descriptor cd_dd6420;
+extern VTBL_ENTRY _ZTI6dd6420[];
+extern VTBL_ENTRY _ZTV6dd6420[];
+static Base_Class bases_ee76420[] = {
+ // 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_bb20, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc420, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6420, 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 _ZTI7ee76420[];
+extern void _ZN7ee764203fooEv();
+extern void _ZN7ee764203barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee764203fooEv,_ZTv0_n12_N7ee764203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee764203fooEv,_ZThn8_N7ee764203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee764203barEv,_ZTv0_n16_N7ee764203barEv)();
+extern void ABISELECT(_ZThn16_N7ee764203barEv,_ZThn8_N7ee764203barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76420[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76420[0]),
+ (VTBL_ENTRY)&_ZN7ee764203fooEv,
+ (VTBL_ENTRY)&_ZN7ee764203barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76420[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee764203fooEv,_ZTv0_n12_N7ee764203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee764203barEv,_ZTv0_n16_N7ee764203barEv),
+};
+extern VTBL_ENTRY _ZTV7ee76420[];
+static VTT_ENTRY vtt_ee76420[] = {
+ {&(_ZTV7ee76420[3]), 3,11},
+ {&(_ZTV7ee76420[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee76420[];
+extern VTBL_ENTRY _ZTV7ee76420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76420[];
+static VTBL_ENTRY alt_thunk_names237[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee764203barEv,_ZTv0_n16_N7ee764203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee764203barEv,_ZThn8_N7ee764203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee764203fooEv,_ZTv0_n12_N7ee764203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee764203fooEv,_ZThn8_N7ee764203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76420 = { "ee76420", // class name
+ bases_ee76420, 4,
+ &(vtc_ee76420[0]), // expected_vtbl_contents
+ &(vtt_ee76420[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee76420),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76420),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76420),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names237,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd7420 : virtual cc420 {
+ int d;
+ virtual void bar(); // _ZN6dd74203barEv
+ virtual void foo(); // _ZN6dd74203fooEv
+ ~dd7420(); // tgen
+ dd7420(); // tgen
+};
+//SIG(-1 dd7420) C1{ VBC2{ BC3{ BC4{ Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void dd7420 ::bar(){vfunc_called(this, "_ZN6dd74203barEv");}
+void dd7420 ::foo(){vfunc_called(this, "_ZN6dd74203fooEv");}
+dd7420 ::~dd7420(){ note_dtor("dd7420", this);} // tgen
+dd7420 ::dd7420(){ note_ctor("dd7420", this);} // tgen
+
+static void Test_dd7420()
+{
+ extern Class_Descriptor cd_dd7420;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd7420, buf);
+ dd7420 *dp, &lv = *(dp=new (buf) dd7420());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd7420)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7420)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc420*), ABISELECT(24,12), "dd7420");
+ check_base_class_offset(lv, (bb20*)(cc420*), ABISELECT(16,8), "dd7420");
+ check_base_class_offset(lv, (cc420*), ABISELECT(16,8), "dd7420");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7420.d");
+ test_class_info(&lv, &cd_dd7420);
+ dp->~dd7420();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7420(Test_dd7420, "dd7420", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd7420C1Ev();
+extern void _ZN6dd7420D1Ev();
+Name_Map name_map_dd7420[] = {
+ NSPAIR(_ZN6dd7420C1Ev),
+ NSPAIR(_ZN6dd7420D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc420;
+extern VTBL_ENTRY _ZTI5cc420[];
+extern VTBL_ENTRY _ZTV5cc420[];
+static Base_Class bases_dd7420[] = {
+ // 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_bb20, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc420, 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 _ZTI6dd7420[];
+extern void _ZN6dd74203barEv();
+extern void _ZN6dd74203fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd74203fooEv,_ZTv0_n12_N6dd74203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74203fooEv,_ZThn8_N6dd74203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74203barEv,_ZTv0_n16_N6dd74203barEv)();
+extern void ABISELECT(_ZThn16_N6dd74203barEv,_ZThn8_N6dd74203barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7420[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7420[0]),
+ (VTBL_ENTRY)&_ZN6dd74203barEv,
+ (VTBL_ENTRY)&_ZN6dd74203fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7420[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74203fooEv,_ZTv0_n12_N6dd74203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74203barEv,_ZTv0_n16_N6dd74203barEv),
+};
+extern VTBL_ENTRY _ZTV6dd7420[];
+static VTT_ENTRY vtt_dd7420[] = {
+ {&(_ZTV6dd7420[3]), 3,11},
+ {&(_ZTV6dd7420[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd7420[];
+extern VTBL_ENTRY _ZTV6dd7420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7420[];
+static VTBL_ENTRY alt_thunk_names238[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74203barEv,_ZTv0_n16_N6dd74203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74203barEv,_ZThn8_N6dd74203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74203fooEv,_ZTv0_n12_N6dd74203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74203fooEv,_ZThn8_N6dd74203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7420 = { "dd7420", // class name
+ bases_dd7420, 3,
+ &(vtc_dd7420[0]), // expected_vtbl_contents
+ &(vtt_dd7420[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd7420),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7420),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7420),2, //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 ee07420 : dd7420 {
+ int e;
+ ~ee07420(); // tgen
+ ee07420(); // tgen
+};
+//SIG(1 ee07420) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v2 Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee07420 ::~ee07420(){ note_dtor("ee07420", this);} // tgen
+ee07420 ::ee07420(){ note_ctor("ee07420", this);} // tgen
+
+static void Test_ee07420()
+{
+ extern Class_Descriptor cd_ee07420;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee07420, buf);
+ ee07420 *dp, &lv = *(dp=new (buf) ee07420());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee07420)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07420)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc420*), ABISELECT(24,16), "ee07420");
+ check_base_class_offset(lv, (bb20*)(cc420*), ABISELECT(16,12), "ee07420");
+ check_base_class_offset(lv, (cc420*)(dd7420*), ABISELECT(16,12), "ee07420");
+ check_base_class_offset(lv, (dd7420*), 0, "ee07420");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07420.e");
+ test_class_info(&lv, &cd_ee07420);
+ dp->~ee07420();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07420(Test_ee07420, "ee07420", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee07420C1Ev();
+extern void _ZN7ee07420D1Ev();
+Name_Map name_map_ee07420[] = {
+ NSPAIR(_ZN7ee07420C1Ev),
+ NSPAIR(_ZN7ee07420D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc420;
+extern VTBL_ENTRY _ZTI5cc420[];
+extern VTBL_ENTRY _ZTV5cc420[];
+extern Class_Descriptor cd_dd7420;
+extern VTBL_ENTRY _ZTI6dd7420[];
+extern VTBL_ENTRY _ZTV6dd7420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7420[];
+static Base_Class bases_ee07420[] = {
+ // 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_bb20, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc420, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7420, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee07420[];
+extern void _ZN6dd74203barEv();
+extern void _ZN6dd74203fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd74203fooEv,_ZTv0_n12_N6dd74203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74203fooEv,_ZThn12_N6dd74203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74203barEv,_ZTv0_n16_N6dd74203barEv)();
+extern void ABISELECT(_ZThn16_N6dd74203barEv,_ZThn12_N6dd74203barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07420[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07420[0]),
+ (VTBL_ENTRY)&_ZN6dd74203barEv,
+ (VTBL_ENTRY)&_ZN6dd74203fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07420[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74203fooEv,_ZTv0_n12_N6dd74203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74203barEv,_ZTv0_n16_N6dd74203barEv),
+};
+extern VTBL_ENTRY _ZTV7ee07420[];
+extern void _ZN6dd74203barEv();
+extern void _ZN6dd74203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7420__7ee07420[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7420[0]),
+ (VTBL_ENTRY)&_ZN6dd74203barEv,
+ (VTBL_ENTRY)&_ZN6dd74203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74203fooEv,_ZTv0_n12_N6dd74203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74203fooEv,_ZThn12_N6dd74203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74203barEv,_ZTv0_n16_N6dd74203barEv)();
+extern void ABISELECT(_ZThn16_N6dd74203barEv,_ZThn12_N6dd74203barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc420__6dd7420__7ee07420[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7420[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74203fooEv,_ZTv0_n12_N6dd74203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74203barEv,_ZTv0_n16_N6dd74203barEv),
+};
+static VTT_ENTRY vtt_ee07420[] = {
+ {&(_ZTV7ee07420[3]), 3,11},
+ {&(_tg__ZTV6dd7420__7ee07420[3]), 3,5},
+ {&(_tg__ZTV5cc420__6dd7420__7ee07420[4]), 4,6},
+ {&(_ZTV7ee07420[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee07420[];
+extern VTBL_ENTRY _ZTV7ee07420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07420[];
+static VTBL_ENTRY alt_thunk_names239[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74203barEv,_ZTv0_n16_N6dd74203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74203barEv,_ZThn12_N6dd74203barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74203barEv,_ZThn12_N6dd74203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74203fooEv,_ZTv0_n12_N6dd74203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74203fooEv,_ZThn12_N6dd74203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74203fooEv,_ZThn12_N6dd74203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07420 = { "ee07420", // class name
+ bases_ee07420, 4,
+ &(vtc_ee07420[0]), // expected_vtbl_contents
+ &(vtt_ee07420[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee07420),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07420),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07420),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names239,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee17420 : virtual dd7420 {
+ int e;
+ ~ee17420(); // tgen
+ ee17420(); // tgen
+};
+//SIG(1 ee17420) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v2 Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee17420 ::~ee17420(){ note_dtor("ee17420", this);} // tgen
+ee17420 ::ee17420(){ note_ctor("ee17420", this);} // tgen
+
+static void Test_ee17420()
+{
+ extern Class_Descriptor cd_ee17420;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee17420, buf);
+ ee17420 *dp, &lv = *(dp=new (buf) ee17420());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee17420)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17420)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc420*), ABISELECT(40,20), "ee17420");
+ check_base_class_offset(lv, (bb20*)(cc420*), ABISELECT(32,16), "ee17420");
+ check_base_class_offset(lv, (cc420*)(dd7420*), ABISELECT(32,16), "ee17420");
+ check_base_class_offset(lv, (dd7420*), ABISELECT(16,8), "ee17420");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17420.e");
+ test_class_info(&lv, &cd_ee17420);
+ dp->~ee17420();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17420(Test_ee17420, "ee17420", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee17420C1Ev();
+extern void _ZN7ee17420D1Ev();
+Name_Map name_map_ee17420[] = {
+ NSPAIR(_ZN7ee17420C1Ev),
+ NSPAIR(_ZN7ee17420D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc420;
+extern VTBL_ENTRY _ZTI5cc420[];
+extern VTBL_ENTRY _ZTV5cc420[];
+extern Class_Descriptor cd_dd7420;
+extern VTBL_ENTRY _ZTI6dd7420[];
+extern VTBL_ENTRY _ZTV6dd7420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7420[];
+static Base_Class bases_ee17420[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc420, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7420, 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 _ZTI7ee17420[];
+extern void _ZN6dd74203barEv();
+extern void _ZN6dd74203fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd74203fooEv,_ZTv0_n12_N6dd74203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74203fooEv,_ZThn8_N6dd74203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74203barEv,_ZTv0_n16_N6dd74203barEv)();
+extern void ABISELECT(_ZThn16_N6dd74203barEv,_ZThn8_N6dd74203barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17420[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17420[0]),
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17420[0]),
+ (VTBL_ENTRY)&_ZN6dd74203barEv,
+ (VTBL_ENTRY)&_ZN6dd74203fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17420[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74203fooEv,_ZTv0_n12_N6dd74203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74203barEv,_ZTv0_n16_N6dd74203barEv),
+};
+extern VTBL_ENTRY _ZTV7ee17420[];
+extern void _ZN6dd74203barEv();
+extern void _ZN6dd74203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7420__7ee17420[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7420[0]),
+ (VTBL_ENTRY)&_ZN6dd74203barEv,
+ (VTBL_ENTRY)&_ZN6dd74203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74203fooEv,_ZTv0_n12_N6dd74203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74203fooEv,_ZThn8_N6dd74203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74203barEv,_ZTv0_n16_N6dd74203barEv)();
+extern void ABISELECT(_ZThn16_N6dd74203barEv,_ZThn8_N6dd74203barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc420__6dd7420__7ee17420[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7420[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74203fooEv,_ZTv0_n12_N6dd74203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74203barEv,_ZTv0_n16_N6dd74203barEv),
+};
+static VTT_ENTRY vtt_ee17420[] = {
+ {&(_ZTV7ee17420[4]), 4,17},
+ {&(_ZTV7ee17420[9]), 9,17},
+ {&(_ZTV7ee17420[15]), 15,17},
+ {&(_tg__ZTV6dd7420__7ee17420[3]), 3,5},
+ {&(_tg__ZTV5cc420__6dd7420__7ee17420[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee17420[];
+extern VTBL_ENTRY _ZTV7ee17420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17420[];
+static VTBL_ENTRY alt_thunk_names240[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74203barEv,_ZTv0_n16_N6dd74203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74203barEv,_ZThn8_N6dd74203barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74203barEv,_ZThn8_N6dd74203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74203fooEv,_ZTv0_n12_N6dd74203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74203fooEv,_ZThn8_N6dd74203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74203fooEv,_ZThn8_N6dd74203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17420 = { "ee17420", // class name
+ bases_ee17420, 4,
+ &(vtc_ee17420[0]), // expected_vtbl_contents
+ &(vtt_ee17420[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee17420),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17420),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17420),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names240,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee27420 : dd7420 {
+ int e;
+ virtual void foo(); // _ZN7ee274203fooEv
+ ~ee27420(); // tgen
+ ee27420(); // tgen
+};
+//SIG(1 ee27420) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v1 Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27420 ::foo(){vfunc_called(this, "_ZN7ee274203fooEv");}
+ee27420 ::~ee27420(){ note_dtor("ee27420", this);} // tgen
+ee27420 ::ee27420(){ note_ctor("ee27420", this);} // tgen
+
+static void Test_ee27420()
+{
+ extern Class_Descriptor cd_ee27420;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee27420, buf);
+ ee27420 *dp, &lv = *(dp=new (buf) ee27420());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee27420)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27420)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc420*), ABISELECT(24,16), "ee27420");
+ check_base_class_offset(lv, (bb20*)(cc420*), ABISELECT(16,12), "ee27420");
+ check_base_class_offset(lv, (cc420*)(dd7420*), ABISELECT(16,12), "ee27420");
+ check_base_class_offset(lv, (dd7420*), 0, "ee27420");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27420.e");
+ test_class_info(&lv, &cd_ee27420);
+ dp->~ee27420();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27420(Test_ee27420, "ee27420", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee27420C1Ev();
+extern void _ZN7ee27420D1Ev();
+Name_Map name_map_ee27420[] = {
+ NSPAIR(_ZN7ee27420C1Ev),
+ NSPAIR(_ZN7ee27420D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc420;
+extern VTBL_ENTRY _ZTI5cc420[];
+extern VTBL_ENTRY _ZTV5cc420[];
+extern Class_Descriptor cd_dd7420;
+extern VTBL_ENTRY _ZTI6dd7420[];
+extern VTBL_ENTRY _ZTV6dd7420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7420[];
+static Base_Class bases_ee27420[] = {
+ // 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_bb20, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc420, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7420, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee27420[];
+extern void _ZN6dd74203barEv();
+extern void _ZN7ee274203fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee274203fooEv,_ZTv0_n12_N7ee274203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee274203fooEv,_ZThn12_N7ee274203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74203barEv,_ZTv0_n16_N6dd74203barEv)();
+extern void ABISELECT(_ZThn16_N6dd74203barEv,_ZThn12_N6dd74203barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27420[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27420[0]),
+ (VTBL_ENTRY)&_ZN6dd74203barEv,
+ (VTBL_ENTRY)&_ZN7ee274203fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27420[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee274203fooEv,_ZTv0_n12_N7ee274203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74203barEv,_ZTv0_n16_N6dd74203barEv),
+};
+extern VTBL_ENTRY _ZTV7ee27420[];
+extern void _ZN6dd74203barEv();
+extern void _ZN6dd74203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7420__7ee27420[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7420[0]),
+ (VTBL_ENTRY)&_ZN6dd74203barEv,
+ (VTBL_ENTRY)&_ZN6dd74203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74203fooEv,_ZTv0_n12_N6dd74203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74203fooEv,_ZThn12_N6dd74203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74203barEv,_ZTv0_n16_N6dd74203barEv)();
+extern void ABISELECT(_ZThn16_N6dd74203barEv,_ZThn12_N6dd74203barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc420__6dd7420__7ee27420[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7420[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74203fooEv,_ZTv0_n12_N6dd74203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74203barEv,_ZTv0_n16_N6dd74203barEv),
+};
+static VTT_ENTRY vtt_ee27420[] = {
+ {&(_ZTV7ee27420[3]), 3,11},
+ {&(_tg__ZTV6dd7420__7ee27420[3]), 3,5},
+ {&(_tg__ZTV5cc420__6dd7420__7ee27420[4]), 4,6},
+ {&(_ZTV7ee27420[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee27420[];
+extern VTBL_ENTRY _ZTV7ee27420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27420[];
+static VTBL_ENTRY alt_thunk_names241[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74203fooEv,_ZTv0_n12_N6dd74203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74203fooEv,_ZThn12_N6dd74203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74203barEv,_ZTv0_n16_N6dd74203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74203barEv,_ZThn12_N6dd74203barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74203barEv,_ZThn12_N6dd74203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee274203fooEv,_ZTv0_n12_N7ee274203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee274203fooEv,_ZThn12_N7ee274203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27420 = { "ee27420", // class name
+ bases_ee27420, 4,
+ &(vtc_ee27420[0]), // expected_vtbl_contents
+ &(vtt_ee27420[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee27420),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27420),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27420),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names241,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee37420 : virtual dd7420 {
+ int e;
+ virtual void foo(); // _ZN7ee374203fooEv
+ ~ee37420(); // tgen
+ ee37420(); // tgen
+};
+//SIG(1 ee37420) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v1 Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37420 ::foo(){vfunc_called(this, "_ZN7ee374203fooEv");}
+ee37420 ::~ee37420(){ note_dtor("ee37420", this);} // tgen
+ee37420 ::ee37420(){ note_ctor("ee37420", this);} // tgen
+
+static void Test_ee37420()
+{
+ extern Class_Descriptor cd_ee37420;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee37420, buf);
+ ee37420 *dp, &lv = *(dp=new (buf) ee37420());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee37420)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37420)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc420*), ABISELECT(40,20), "ee37420");
+ check_base_class_offset(lv, (bb20*)(cc420*), ABISELECT(32,16), "ee37420");
+ check_base_class_offset(lv, (cc420*)(dd7420*), ABISELECT(32,16), "ee37420");
+ check_base_class_offset(lv, (dd7420*), ABISELECT(16,8), "ee37420");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37420.e");
+ test_class_info(&lv, &cd_ee37420);
+ dp->~ee37420();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37420(Test_ee37420, "ee37420", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee37420C1Ev();
+extern void _ZN7ee37420D1Ev();
+Name_Map name_map_ee37420[] = {
+ NSPAIR(_ZN7ee37420C1Ev),
+ NSPAIR(_ZN7ee37420D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc420;
+extern VTBL_ENTRY _ZTI5cc420[];
+extern VTBL_ENTRY _ZTV5cc420[];
+extern Class_Descriptor cd_dd7420;
+extern VTBL_ENTRY _ZTI6dd7420[];
+extern VTBL_ENTRY _ZTV6dd7420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7420[];
+static Base_Class bases_ee37420[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc420, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7420, 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 _ZTI7ee37420[];
+extern void _ZN7ee374203fooEv();
+extern void _ZN6dd74203barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee374203fooEv,_ZTv0_n20_N7ee374203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee374203fooEv,_ZThn8_N7ee374203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee374203fooEv,_ZTv0_n12_N7ee374203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee374203fooEv,_ZThn16_N7ee374203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74203barEv,_ZTv0_n16_N6dd74203barEv)();
+extern void ABISELECT(_ZThn16_N6dd74203barEv,_ZThn8_N6dd74203barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37420[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37420[0]),
+ (VTBL_ENTRY)&_ZN7ee374203fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37420[0]),
+ (VTBL_ENTRY)&_ZN6dd74203barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee374203fooEv,_ZTv0_n20_N7ee374203fooEv),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37420[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee374203fooEv,_ZTv0_n12_N7ee374203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74203barEv,_ZTv0_n16_N6dd74203barEv),
+};
+extern VTBL_ENTRY _ZTV7ee37420[];
+extern void _ZN6dd74203barEv();
+extern void _ZN6dd74203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7420__7ee37420[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7420[0]),
+ (VTBL_ENTRY)&_ZN6dd74203barEv,
+ (VTBL_ENTRY)&_ZN6dd74203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74203fooEv,_ZTv0_n12_N6dd74203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74203fooEv,_ZThn8_N6dd74203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74203barEv,_ZTv0_n16_N6dd74203barEv)();
+extern void ABISELECT(_ZThn16_N6dd74203barEv,_ZThn8_N6dd74203barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc420__6dd7420__7ee37420[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7420[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74203fooEv,_ZTv0_n12_N6dd74203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74203barEv,_ZTv0_n16_N6dd74203barEv),
+};
+static VTT_ENTRY vtt_ee37420[] = {
+ {&(_ZTV7ee37420[4]), 4,18},
+ {&(_ZTV7ee37420[10]), 10,18},
+ {&(_ZTV7ee37420[16]), 16,18},
+ {&(_tg__ZTV6dd7420__7ee37420[3]), 3,5},
+ {&(_tg__ZTV5cc420__6dd7420__7ee37420[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee37420[];
+extern VTBL_ENTRY _ZTV7ee37420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37420[];
+static VTBL_ENTRY alt_thunk_names242[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74203fooEv,_ZTv0_n12_N6dd74203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74203fooEv,_ZThn8_N6dd74203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74203barEv,_ZTv0_n16_N6dd74203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74203barEv,_ZThn8_N6dd74203barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74203barEv,_ZThn8_N6dd74203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee374203fooEv,_ZTv0_n12_N7ee374203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee374203fooEv,_ZThn16_N7ee374203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee374203fooEv,_ZTv0_n20_N7ee374203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee374203fooEv,_ZThn8_N7ee374203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37420 = { "ee37420", // class name
+ bases_ee37420, 4,
+ &(vtc_ee37420[0]), // expected_vtbl_contents
+ &(vtt_ee37420[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee37420),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37420),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37420),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names242,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee47420 : dd7420 {
+ int e;
+ virtual void bar(); // _ZN7ee474203barEv
+ ~ee47420(); // tgen
+ ee47420(); // tgen
+};
+//SIG(1 ee47420) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v2 Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47420 ::bar(){vfunc_called(this, "_ZN7ee474203barEv");}
+ee47420 ::~ee47420(){ note_dtor("ee47420", this);} // tgen
+ee47420 ::ee47420(){ note_ctor("ee47420", this);} // tgen
+
+static void Test_ee47420()
+{
+ extern Class_Descriptor cd_ee47420;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee47420, buf);
+ ee47420 *dp, &lv = *(dp=new (buf) ee47420());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee47420)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47420)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc420*), ABISELECT(24,16), "ee47420");
+ check_base_class_offset(lv, (bb20*)(cc420*), ABISELECT(16,12), "ee47420");
+ check_base_class_offset(lv, (cc420*)(dd7420*), ABISELECT(16,12), "ee47420");
+ check_base_class_offset(lv, (dd7420*), 0, "ee47420");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47420.e");
+ test_class_info(&lv, &cd_ee47420);
+ dp->~ee47420();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47420(Test_ee47420, "ee47420", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee47420C1Ev();
+extern void _ZN7ee47420D1Ev();
+Name_Map name_map_ee47420[] = {
+ NSPAIR(_ZN7ee47420C1Ev),
+ NSPAIR(_ZN7ee47420D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc420;
+extern VTBL_ENTRY _ZTI5cc420[];
+extern VTBL_ENTRY _ZTV5cc420[];
+extern Class_Descriptor cd_dd7420;
+extern VTBL_ENTRY _ZTI6dd7420[];
+extern VTBL_ENTRY _ZTV6dd7420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7420[];
+static Base_Class bases_ee47420[] = {
+ // 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_bb20, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc420, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7420, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee47420[];
+extern void _ZN7ee474203barEv();
+extern void _ZN6dd74203fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd74203fooEv,_ZTv0_n12_N6dd74203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74203fooEv,_ZThn12_N6dd74203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee474203barEv,_ZTv0_n16_N7ee474203barEv)();
+extern void ABISELECT(_ZThn16_N7ee474203barEv,_ZThn12_N7ee474203barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47420[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47420[0]),
+ (VTBL_ENTRY)&_ZN7ee474203barEv,
+ (VTBL_ENTRY)&_ZN6dd74203fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47420[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74203fooEv,_ZTv0_n12_N6dd74203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee474203barEv,_ZTv0_n16_N7ee474203barEv),
+};
+extern VTBL_ENTRY _ZTV7ee47420[];
+extern void _ZN6dd74203barEv();
+extern void _ZN6dd74203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7420__7ee47420[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7420[0]),
+ (VTBL_ENTRY)&_ZN6dd74203barEv,
+ (VTBL_ENTRY)&_ZN6dd74203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74203fooEv,_ZTv0_n12_N6dd74203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74203fooEv,_ZThn12_N6dd74203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74203barEv,_ZTv0_n16_N6dd74203barEv)();
+extern void ABISELECT(_ZThn16_N6dd74203barEv,_ZThn12_N6dd74203barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc420__6dd7420__7ee47420[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7420[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74203fooEv,_ZTv0_n12_N6dd74203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74203barEv,_ZTv0_n16_N6dd74203barEv),
+};
+static VTT_ENTRY vtt_ee47420[] = {
+ {&(_ZTV7ee47420[3]), 3,11},
+ {&(_tg__ZTV6dd7420__7ee47420[3]), 3,5},
+ {&(_tg__ZTV5cc420__6dd7420__7ee47420[4]), 4,6},
+ {&(_ZTV7ee47420[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee47420[];
+extern VTBL_ENTRY _ZTV7ee47420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47420[];
+static VTBL_ENTRY alt_thunk_names243[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74203barEv,_ZTv0_n16_N6dd74203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74203barEv,_ZThn12_N6dd74203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee474203barEv,_ZTv0_n16_N7ee474203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee474203barEv,_ZThn12_N7ee474203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74203fooEv,_ZTv0_n12_N6dd74203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74203fooEv,_ZThn12_N6dd74203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74203fooEv,_ZThn12_N6dd74203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47420 = { "ee47420", // class name
+ bases_ee47420, 4,
+ &(vtc_ee47420[0]), // expected_vtbl_contents
+ &(vtt_ee47420[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee47420),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47420),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47420),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names243,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee57420 : virtual dd7420 {
+ int e;
+ virtual void bar(); // _ZN7ee574203barEv
+ ~ee57420(); // tgen
+ ee57420(); // tgen
+};
+//SIG(1 ee57420) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v2 Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57420 ::bar(){vfunc_called(this, "_ZN7ee574203barEv");}
+ee57420 ::~ee57420(){ note_dtor("ee57420", this);} // tgen
+ee57420 ::ee57420(){ note_ctor("ee57420", this);} // tgen
+
+static void Test_ee57420()
+{
+ extern Class_Descriptor cd_ee57420;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee57420, buf);
+ ee57420 *dp, &lv = *(dp=new (buf) ee57420());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee57420)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57420)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc420*), ABISELECT(40,20), "ee57420");
+ check_base_class_offset(lv, (bb20*)(cc420*), ABISELECT(32,16), "ee57420");
+ check_base_class_offset(lv, (cc420*)(dd7420*), ABISELECT(32,16), "ee57420");
+ check_base_class_offset(lv, (dd7420*), ABISELECT(16,8), "ee57420");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57420.e");
+ test_class_info(&lv, &cd_ee57420);
+ dp->~ee57420();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57420(Test_ee57420, "ee57420", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee57420C1Ev();
+extern void _ZN7ee57420D1Ev();
+Name_Map name_map_ee57420[] = {
+ NSPAIR(_ZN7ee57420C1Ev),
+ NSPAIR(_ZN7ee57420D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc420;
+extern VTBL_ENTRY _ZTI5cc420[];
+extern VTBL_ENTRY _ZTV5cc420[];
+extern Class_Descriptor cd_dd7420;
+extern VTBL_ENTRY _ZTI6dd7420[];
+extern VTBL_ENTRY _ZTV6dd7420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7420[];
+static Base_Class bases_ee57420[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc420, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7420, 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 _ZTI7ee57420[];
+extern void _ZN7ee574203barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee574203barEv,_ZTv0_n16_N7ee574203barEv)();
+extern void ABISELECT(_ZThn16_N7ee574203barEv,_ZThn8_N7ee574203barEv)() __attribute__((weak));
+extern void _ZN6dd74203fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd74203fooEv,_ZTv0_n12_N6dd74203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74203fooEv,_ZThn8_N6dd74203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee574203barEv,_ZTv0_n16_N7ee574203barEv)();
+extern void ABISELECT(_ZThn32_N7ee574203barEv,_ZThn16_N7ee574203barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57420[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57420[0]),
+ (VTBL_ENTRY)&_ZN7ee574203barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57420[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee574203barEv,_ZTv0_n16_N7ee574203barEv),
+ (VTBL_ENTRY)&_ZN6dd74203fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57420[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74203fooEv,_ZTv0_n12_N6dd74203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee574203barEv,_ZTv0_n16_N7ee574203barEv),
+};
+extern VTBL_ENTRY _ZTV7ee57420[];
+extern void _ZN6dd74203barEv();
+extern void _ZN6dd74203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7420__7ee57420[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7420[0]),
+ (VTBL_ENTRY)&_ZN6dd74203barEv,
+ (VTBL_ENTRY)&_ZN6dd74203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74203fooEv,_ZTv0_n12_N6dd74203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74203fooEv,_ZThn8_N6dd74203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74203barEv,_ZTv0_n16_N6dd74203barEv)();
+extern void ABISELECT(_ZThn16_N6dd74203barEv,_ZThn8_N6dd74203barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc420__6dd7420__7ee57420[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7420[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74203fooEv,_ZTv0_n12_N6dd74203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74203barEv,_ZTv0_n16_N6dd74203barEv),
+};
+static VTT_ENTRY vtt_ee57420[] = {
+ {&(_ZTV7ee57420[4]), 4,18},
+ {&(_ZTV7ee57420[10]), 10,18},
+ {&(_ZTV7ee57420[16]), 16,18},
+ {&(_tg__ZTV6dd7420__7ee57420[3]), 3,5},
+ {&(_tg__ZTV5cc420__6dd7420__7ee57420[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee57420[];
+extern VTBL_ENTRY _ZTV7ee57420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57420[];
+static VTBL_ENTRY alt_thunk_names244[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74203barEv,_ZTv0_n16_N6dd74203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74203barEv,_ZThn8_N6dd74203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74203fooEv,_ZTv0_n12_N6dd74203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74203fooEv,_ZThn8_N6dd74203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74203fooEv,_ZThn8_N6dd74203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee574203barEv,_ZTv0_n16_N7ee574203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee574203barEv,_ZThn16_N7ee574203barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee574203barEv,_ZThn8_N7ee574203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57420 = { "ee57420", // class name
+ bases_ee57420, 4,
+ &(vtc_ee57420[0]), // expected_vtbl_contents
+ &(vtt_ee57420[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee57420),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57420),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57420),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names244,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee67420 : dd7420 {
+ int e;
+ virtual void foo(); // _ZN7ee674203fooEv
+ virtual void bar(); // _ZN7ee674203barEv
+ ~ee67420(); // tgen
+ ee67420(); // tgen
+};
+//SIG(1 ee67420) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v1 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67420 ::foo(){vfunc_called(this, "_ZN7ee674203fooEv");}
+void ee67420 ::bar(){vfunc_called(this, "_ZN7ee674203barEv");}
+ee67420 ::~ee67420(){ note_dtor("ee67420", this);} // tgen
+ee67420 ::ee67420(){ note_ctor("ee67420", this);} // tgen
+
+static void Test_ee67420()
+{
+ extern Class_Descriptor cd_ee67420;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee67420, buf);
+ ee67420 *dp, &lv = *(dp=new (buf) ee67420());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee67420)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67420)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc420*), ABISELECT(24,16), "ee67420");
+ check_base_class_offset(lv, (bb20*)(cc420*), ABISELECT(16,12), "ee67420");
+ check_base_class_offset(lv, (cc420*)(dd7420*), ABISELECT(16,12), "ee67420");
+ check_base_class_offset(lv, (dd7420*), 0, "ee67420");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67420.e");
+ test_class_info(&lv, &cd_ee67420);
+ dp->~ee67420();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67420(Test_ee67420, "ee67420", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee67420C1Ev();
+extern void _ZN7ee67420D1Ev();
+Name_Map name_map_ee67420[] = {
+ NSPAIR(_ZN7ee67420C1Ev),
+ NSPAIR(_ZN7ee67420D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc420;
+extern VTBL_ENTRY _ZTI5cc420[];
+extern VTBL_ENTRY _ZTV5cc420[];
+extern Class_Descriptor cd_dd7420;
+extern VTBL_ENTRY _ZTI6dd7420[];
+extern VTBL_ENTRY _ZTV6dd7420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7420[];
+static Base_Class bases_ee67420[] = {
+ // 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_bb20, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc420, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7420, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee67420[];
+extern void _ZN7ee674203barEv();
+extern void _ZN7ee674203fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee674203fooEv,_ZTv0_n12_N7ee674203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee674203fooEv,_ZThn12_N7ee674203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee674203barEv,_ZTv0_n16_N7ee674203barEv)();
+extern void ABISELECT(_ZThn16_N7ee674203barEv,_ZThn12_N7ee674203barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67420[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67420[0]),
+ (VTBL_ENTRY)&_ZN7ee674203barEv,
+ (VTBL_ENTRY)&_ZN7ee674203fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67420[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee674203fooEv,_ZTv0_n12_N7ee674203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee674203barEv,_ZTv0_n16_N7ee674203barEv),
+};
+extern VTBL_ENTRY _ZTV7ee67420[];
+extern void _ZN6dd74203barEv();
+extern void _ZN6dd74203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7420__7ee67420[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7420[0]),
+ (VTBL_ENTRY)&_ZN6dd74203barEv,
+ (VTBL_ENTRY)&_ZN6dd74203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74203fooEv,_ZTv0_n12_N6dd74203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74203fooEv,_ZThn12_N6dd74203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74203barEv,_ZTv0_n16_N6dd74203barEv)();
+extern void ABISELECT(_ZThn16_N6dd74203barEv,_ZThn12_N6dd74203barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc420__6dd7420__7ee67420[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7420[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74203fooEv,_ZTv0_n12_N6dd74203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74203barEv,_ZTv0_n16_N6dd74203barEv),
+};
+static VTT_ENTRY vtt_ee67420[] = {
+ {&(_ZTV7ee67420[3]), 3,11},
+ {&(_tg__ZTV6dd7420__7ee67420[3]), 3,5},
+ {&(_tg__ZTV5cc420__6dd7420__7ee67420[4]), 4,6},
+ {&(_ZTV7ee67420[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee67420[];
+extern VTBL_ENTRY _ZTV7ee67420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67420[];
+static VTBL_ENTRY alt_thunk_names245[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74203barEv,_ZTv0_n16_N6dd74203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74203barEv,_ZThn12_N6dd74203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74203fooEv,_ZTv0_n12_N6dd74203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74203fooEv,_ZThn12_N6dd74203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee674203barEv,_ZTv0_n16_N7ee674203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee674203barEv,_ZThn12_N7ee674203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee674203fooEv,_ZTv0_n12_N7ee674203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee674203fooEv,_ZThn12_N7ee674203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67420 = { "ee67420", // class name
+ bases_ee67420, 4,
+ &(vtc_ee67420[0]), // expected_vtbl_contents
+ &(vtt_ee67420[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee67420),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67420),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67420),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names245,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee77420 : virtual dd7420 {
+ int e;
+ virtual void foo(); // _ZN7ee774203fooEv
+ virtual void bar(); // _ZN7ee774203barEv
+ ~ee77420(); // tgen
+ ee77420(); // tgen
+};
+//SIG(1 ee77420) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v1 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77420 ::foo(){vfunc_called(this, "_ZN7ee774203fooEv");}
+void ee77420 ::bar(){vfunc_called(this, "_ZN7ee774203barEv");}
+ee77420 ::~ee77420(){ note_dtor("ee77420", this);} // tgen
+ee77420 ::ee77420(){ note_ctor("ee77420", this);} // tgen
+
+static void Test_ee77420()
+{
+ extern Class_Descriptor cd_ee77420;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee77420, buf);
+ ee77420 *dp, &lv = *(dp=new (buf) ee77420());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee77420)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77420)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc420*), ABISELECT(40,20), "ee77420");
+ check_base_class_offset(lv, (bb20*)(cc420*), ABISELECT(32,16), "ee77420");
+ check_base_class_offset(lv, (cc420*)(dd7420*), ABISELECT(32,16), "ee77420");
+ check_base_class_offset(lv, (dd7420*), ABISELECT(16,8), "ee77420");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77420.e");
+ test_class_info(&lv, &cd_ee77420);
+ dp->~ee77420();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77420(Test_ee77420, "ee77420", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee77420C1Ev();
+extern void _ZN7ee77420D1Ev();
+Name_Map name_map_ee77420[] = {
+ NSPAIR(_ZN7ee77420C1Ev),
+ NSPAIR(_ZN7ee77420D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc420;
+extern VTBL_ENTRY _ZTI5cc420[];
+extern VTBL_ENTRY _ZTV5cc420[];
+extern Class_Descriptor cd_dd7420;
+extern VTBL_ENTRY _ZTI6dd7420[];
+extern VTBL_ENTRY _ZTV6dd7420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7420[];
+static Base_Class bases_ee77420[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc420, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7420, ABISELECT(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 _ZTI7ee77420[];
+extern void _ZN7ee774203fooEv();
+extern void _ZN7ee774203barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee774203barEv,_ZTv0_n16_N7ee774203barEv)();
+extern void ABISELECT(_ZThn16_N7ee774203barEv,_ZThn8_N7ee774203barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee774203fooEv,_ZTv0_n20_N7ee774203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee774203fooEv,_ZThn8_N7ee774203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee774203fooEv,_ZTv0_n12_N7ee774203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee774203fooEv,_ZThn16_N7ee774203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee774203barEv,_ZTv0_n16_N7ee774203barEv)();
+extern void ABISELECT(_ZThn32_N7ee774203barEv,_ZThn16_N7ee774203barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77420[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77420[0]),
+ (VTBL_ENTRY)&_ZN7ee774203fooEv,
+ (VTBL_ENTRY)&_ZN7ee774203barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77420[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee774203barEv,_ZTv0_n16_N7ee774203barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee774203fooEv,_ZTv0_n20_N7ee774203fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77420[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee774203fooEv,_ZTv0_n12_N7ee774203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee774203barEv,_ZTv0_n16_N7ee774203barEv),
+};
+extern VTBL_ENTRY _ZTV7ee77420[];
+extern void _ZN6dd74203barEv();
+extern void _ZN6dd74203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7420__7ee77420[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7420[0]),
+ (VTBL_ENTRY)&_ZN6dd74203barEv,
+ (VTBL_ENTRY)&_ZN6dd74203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74203fooEv,_ZTv0_n12_N6dd74203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74203fooEv,_ZThn8_N6dd74203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74203barEv,_ZTv0_n16_N6dd74203barEv)();
+extern void ABISELECT(_ZThn16_N6dd74203barEv,_ZThn8_N6dd74203barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc420__6dd7420__7ee77420[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7420[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74203fooEv,_ZTv0_n12_N6dd74203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74203barEv,_ZTv0_n16_N6dd74203barEv),
+};
+static VTT_ENTRY vtt_ee77420[] = {
+ {&(_ZTV7ee77420[4]), 4,19},
+ {&(_ZTV7ee77420[11]), 11,19},
+ {&(_ZTV7ee77420[17]), 17,19},
+ {&(_tg__ZTV6dd7420__7ee77420[3]), 3,5},
+ {&(_tg__ZTV5cc420__6dd7420__7ee77420[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee77420[];
+extern VTBL_ENTRY _ZTV7ee77420[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77420[];
+static VTBL_ENTRY alt_thunk_names246[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74203barEv,_ZTv0_n16_N6dd74203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74203barEv,_ZThn8_N6dd74203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74203fooEv,_ZTv0_n12_N6dd74203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74203fooEv,_ZThn8_N6dd74203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee774203fooEv,_ZTv0_n12_N7ee774203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee774203fooEv,_ZThn16_N7ee774203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee774203fooEv,_ZTv0_n20_N7ee774203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee774203fooEv,_ZThn8_N7ee774203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee774203barEv,_ZTv0_n16_N7ee774203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee774203barEv,_ZThn16_N7ee774203barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee774203barEv,_ZThn8_N7ee774203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77420 = { "ee77420", // class name
+ bases_ee77420, 4,
+ &(vtc_ee77420[0]), // expected_vtbl_contents
+ &(vtt_ee77420[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee77420),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77420),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77420),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names246,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc520 : virtual bb20 {
+ int c;
+ virtual void bar(); // _ZN5cc5203barEv
+ ~cc520(); // tgen
+ cc520(); // tgen
+};
+//SIG(-1 cc520) C1{ VBC2{ BC3{ Fi} v2 Fi} v1 Fi}
+
+
+void cc520 ::bar(){vfunc_called(this, "_ZN5cc5203barEv");}
+cc520 ::~cc520(){ note_dtor("cc520", this);} // tgen
+cc520 ::cc520(){ note_ctor("cc520", this);} // tgen
+
+static void Test_cc520()
+{
+ extern Class_Descriptor cd_cc520;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_cc520, buf);
+ cc520 *dp, &lv = *(dp=new (buf) cc520());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(cc520)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc520)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(24,12), "cc520");
+ check_base_class_offset(lv, (bb20*), ABISELECT(16,8), "cc520");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc520.c");
+ test_class_info(&lv, &cd_cc520);
+ dp->~cc520();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc520(Test_cc520, "cc520", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN5cc520C1Ev();
+extern void _ZN5cc520D1Ev();
+Name_Map name_map_cc520[] = {
+ NSPAIR(_ZN5cc520C1Ev),
+ NSPAIR(_ZN5cc520D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+static Base_Class bases_cc520[] = {
+ // 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_bb20, 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 _ZTI5cc520[];
+extern void _ZN5cc5203barEv();
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY vtc_cc520[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern VTBL_ENTRY _ZTV5cc520[];
+static VTT_ENTRY vtt_cc520[] = {
+ {&(_ZTV5cc520[3]), 3,8},
+ {&(_ZTV5cc520[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI5cc520[];
+extern VTBL_ENTRY _ZTV5cc520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc520[];
+Class_Descriptor cd_cc520 = { "cc520", // class name
+ bases_cc520, 2,
+ &(vtc_cc520[0]), // expected_vtbl_contents
+ &(vtt_cc520[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI5cc520),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV5cc520),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5cc520),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 dd0520 : cc520 {
+ int d;
+ ~dd0520(); // tgen
+ dd0520(); // tgen
+};
+//SIG(-1 dd0520) C1{ BC2{ VBC3{ BC4{ Fi} v2 Fi} v1 Fi} Fi}
+
+
+dd0520 ::~dd0520(){ note_dtor("dd0520", this);} // tgen
+dd0520 ::dd0520(){ note_ctor("dd0520", this);} // tgen
+
+static void Test_dd0520()
+{
+ extern Class_Descriptor cd_dd0520;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd0520, buf);
+ dd0520 *dp, &lv = *(dp=new (buf) dd0520());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd0520)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0520)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(24,16), "dd0520");
+ check_base_class_offset(lv, (bb20*)(cc520*), ABISELECT(16,12), "dd0520");
+ check_base_class_offset(lv, (cc520*), 0, "dd0520");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd0520.d");
+ test_class_info(&lv, &cd_dd0520);
+ dp->~dd0520();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0520(Test_dd0520, "dd0520", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd0520C1Ev();
+extern void _ZN6dd0520D1Ev();
+Name_Map name_map_dd0520[] = {
+ NSPAIR(_ZN6dd0520C1Ev),
+ NSPAIR(_ZN6dd0520D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc520;
+extern VTBL_ENTRY _ZTI5cc520[];
+extern VTBL_ENTRY _ZTV5cc520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc520[];
+static Base_Class bases_dd0520[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc520, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd0520[];
+extern void _ZN5cc5203barEv();
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY vtc_dd0520[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd0520[];
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc520__6dd0520[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc520__6dd0520[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_dd0520[] = {
+ {&(_ZTV6dd0520[3]), 3,8},
+ {&(_tg__ZTV5cc520__6dd0520[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc520__6dd0520[3]), 3,4},
+ {&(_ZTV6dd0520[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI6dd0520[];
+extern VTBL_ENTRY _ZTV6dd0520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0520[];
+Class_Descriptor cd_dd0520 = { "dd0520", // class name
+ bases_dd0520, 3,
+ &(vtc_dd0520[0]), // expected_vtbl_contents
+ &(vtt_dd0520[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd0520),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0520),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd0520),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 ee00520 : dd0520 {
+ int e;
+ ~ee00520(); // tgen
+ ee00520(); // tgen
+};
+//SIG(1 ee00520) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v2 Fi} v1 Fi} Fi} Fi}
+
+
+ee00520 ::~ee00520(){ note_dtor("ee00520", this);} // tgen
+ee00520 ::ee00520(){ note_ctor("ee00520", this);} // tgen
+
+static void Test_ee00520()
+{
+ extern Class_Descriptor cd_ee00520;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee00520, buf);
+ ee00520 *dp, &lv = *(dp=new (buf) ee00520());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee00520)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00520)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(32,20), "ee00520");
+ check_base_class_offset(lv, (bb20*)(cc520*)(dd0520*), ABISELECT(24,16), "ee00520");
+ check_base_class_offset(lv, (cc520*)(dd0520*), 0, "ee00520");
+ check_base_class_offset(lv, (dd0520*), 0, "ee00520");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee00520.e");
+ test_class_info(&lv, &cd_ee00520);
+ dp->~ee00520();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00520(Test_ee00520, "ee00520", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee00520C1Ev();
+extern void _ZN7ee00520D1Ev();
+Name_Map name_map_ee00520[] = {
+ NSPAIR(_ZN7ee00520C1Ev),
+ NSPAIR(_ZN7ee00520D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc520;
+extern VTBL_ENTRY _ZTI5cc520[];
+extern VTBL_ENTRY _ZTV5cc520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc520[];
+extern Class_Descriptor cd_dd0520;
+extern VTBL_ENTRY _ZTI6dd0520[];
+extern VTBL_ENTRY _ZTV6dd0520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0520[];
+static Base_Class bases_ee00520[] = {
+ // 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_bb20, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc520, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0520, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee00520[];
+extern void _ZN5cc5203barEv();
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY vtc_ee00520[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee00520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee00520[];
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV6dd0520__7ee00520[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc5206dd0520__7ee00520[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc5206dd0520__7ee00520[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__6dd0520__7ee00520[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee00520[] = {
+ {&(_ZTV7ee00520[3]), 3,8},
+ {&(_tg__ZTV6dd0520__7ee00520[3]), 3,4},
+ {&(_tg__ZTV5cc5206dd0520__7ee00520[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc5206dd0520__7ee00520[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd0520__7ee00520[3]), 3,4},
+ {&(_ZTV7ee00520[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee00520[];
+extern VTBL_ENTRY _ZTV7ee00520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee00520[];
+Class_Descriptor cd_ee00520 = { "ee00520", // class name
+ bases_ee00520, 4,
+ &(vtc_ee00520[0]), // expected_vtbl_contents
+ &(vtt_ee00520[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee00520),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00520),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee00520),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee10520 : virtual dd0520 {
+ int e;
+ ~ee10520(); // tgen
+ ee10520(); // tgen
+};
+//SIG(1 ee10520) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v2 Fi} v1 Fi} Fi} Fi}
+
+
+ee10520 ::~ee10520(){ note_dtor("ee10520", this);} // tgen
+ee10520 ::ee10520(){ note_ctor("ee10520", this);} // tgen
+
+static void Test_ee10520()
+{
+ extern Class_Descriptor cd_ee10520;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee10520, buf);
+ ee10520 *dp, &lv = *(dp=new (buf) ee10520());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee10520)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10520)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee10520");
+ check_base_class_offset(lv, (bb20*)(cc520*)(dd0520*), ABISELECT(32,20), "ee10520");
+ check_base_class_offset(lv, (cc520*)(dd0520*), ABISELECT(16,8), "ee10520");
+ check_base_class_offset(lv, (dd0520*), ABISELECT(16,8), "ee10520");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10520.e");
+ test_class_info(&lv, &cd_ee10520);
+ dp->~ee10520();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10520(Test_ee10520, "ee10520", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee10520C1Ev();
+extern void _ZN7ee10520D1Ev();
+Name_Map name_map_ee10520[] = {
+ NSPAIR(_ZN7ee10520C1Ev),
+ NSPAIR(_ZN7ee10520D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc520;
+extern VTBL_ENTRY _ZTI5cc520[];
+extern VTBL_ENTRY _ZTV5cc520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc520[];
+extern Class_Descriptor cd_dd0520;
+extern VTBL_ENTRY _ZTI6dd0520[];
+extern VTBL_ENTRY _ZTV6dd0520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0520[];
+static Base_Class bases_ee10520[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc520, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0520, 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 _ZTI7ee10520[];
+extern void _ZN5cc5203barEv();
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY vtc_ee10520[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10520[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee10520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee10520[];
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV6dd0520__7ee10520[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc5206dd0520__7ee10520[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc5206dd0520__7ee10520[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__6dd0520__7ee10520[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee10520[] = {
+ {&(_ZTV7ee10520[4]), 4,13},
+ {&(_ZTV7ee10520[8]), 8,13},
+ {&(_ZTV7ee10520[12]), 12,13},
+ {&(_tg__ZTV6dd0520__7ee10520[3]), 3,4},
+ {&(_tg__ZTV5cc5206dd0520__7ee10520[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc5206dd0520__7ee10520[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd0520__7ee10520[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee10520[];
+extern VTBL_ENTRY _ZTV7ee10520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10520[];
+Class_Descriptor cd_ee10520 = { "ee10520", // class name
+ bases_ee10520, 4,
+ &(vtc_ee10520[0]), // expected_vtbl_contents
+ &(vtt_ee10520[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee10520),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10520),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10520),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee20520 : dd0520 {
+ int e;
+ virtual void foo(); // _ZN7ee205203fooEv
+ ~ee20520(); // tgen
+ ee20520(); // tgen
+};
+//SIG(1 ee20520) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v1 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee20520 ::foo(){vfunc_called(this, "_ZN7ee205203fooEv");}
+ee20520 ::~ee20520(){ note_dtor("ee20520", this);} // tgen
+ee20520 ::ee20520(){ note_ctor("ee20520", this);} // tgen
+
+static void Test_ee20520()
+{
+ extern Class_Descriptor cd_ee20520;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee20520, buf);
+ ee20520 *dp, &lv = *(dp=new (buf) ee20520());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee20520)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20520)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(32,20), "ee20520");
+ check_base_class_offset(lv, (bb20*)(cc520*)(dd0520*), ABISELECT(24,16), "ee20520");
+ check_base_class_offset(lv, (cc520*)(dd0520*), 0, "ee20520");
+ check_base_class_offset(lv, (dd0520*), 0, "ee20520");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee20520.e");
+ test_class_info(&lv, &cd_ee20520);
+ dp->~ee20520();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20520(Test_ee20520, "ee20520", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee20520C1Ev();
+extern void _ZN7ee20520D1Ev();
+Name_Map name_map_ee20520[] = {
+ NSPAIR(_ZN7ee20520C1Ev),
+ NSPAIR(_ZN7ee20520D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc520;
+extern VTBL_ENTRY _ZTI5cc520[];
+extern VTBL_ENTRY _ZTV5cc520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc520[];
+extern Class_Descriptor cd_dd0520;
+extern VTBL_ENTRY _ZTI6dd0520[];
+extern VTBL_ENTRY _ZTV6dd0520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0520[];
+static Base_Class bases_ee20520[] = {
+ // 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_bb20, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc520, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0520, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee20520[];
+extern void _ZN5cc5203barEv();
+extern void _ZN7ee205203fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee205203fooEv,_ZTv0_n12_N7ee205203fooEv)();
+extern void ABISELECT(_ZThn24_N7ee205203fooEv,_ZThn16_N7ee205203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee20520[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+ (VTBL_ENTRY)&_ZN7ee205203fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee20520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee205203fooEv,_ZTv0_n12_N7ee205203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee20520[];
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV6dd0520__7ee20520[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc5206dd0520__7ee20520[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc5206dd0520__7ee20520[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__6dd0520__7ee20520[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee20520[] = {
+ {&(_ZTV7ee20520[3]), 3,9},
+ {&(_tg__ZTV6dd0520__7ee20520[3]), 3,4},
+ {&(_tg__ZTV5cc5206dd0520__7ee20520[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc5206dd0520__7ee20520[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd0520__7ee20520[3]), 3,4},
+ {&(_ZTV7ee20520[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee20520[];
+extern VTBL_ENTRY _ZTV7ee20520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee20520[];
+static VTBL_ENTRY alt_thunk_names247[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee205203fooEv,_ZTv0_n12_N7ee205203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee205203fooEv,_ZThn16_N7ee205203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee20520 = { "ee20520", // class name
+ bases_ee20520, 4,
+ &(vtc_ee20520[0]), // expected_vtbl_contents
+ &(vtt_ee20520[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee20520),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20520),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee20520),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names247,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee30520 : virtual dd0520 {
+ int e;
+ virtual void foo(); // _ZN7ee305203fooEv
+ ~ee30520(); // tgen
+ ee30520(); // tgen
+};
+//SIG(1 ee30520) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v1 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee30520 ::foo(){vfunc_called(this, "_ZN7ee305203fooEv");}
+ee30520 ::~ee30520(){ note_dtor("ee30520", this);} // tgen
+ee30520 ::ee30520(){ note_ctor("ee30520", this);} // tgen
+
+static void Test_ee30520()
+{
+ extern Class_Descriptor cd_ee30520;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee30520, buf);
+ ee30520 *dp, &lv = *(dp=new (buf) ee30520());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee30520)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30520)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee30520");
+ check_base_class_offset(lv, (bb20*)(cc520*)(dd0520*), ABISELECT(32,20), "ee30520");
+ check_base_class_offset(lv, (cc520*)(dd0520*), ABISELECT(16,8), "ee30520");
+ check_base_class_offset(lv, (dd0520*), ABISELECT(16,8), "ee30520");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30520.e");
+ test_class_info(&lv, &cd_ee30520);
+ dp->~ee30520();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30520(Test_ee30520, "ee30520", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee30520C1Ev();
+extern void _ZN7ee30520D1Ev();
+Name_Map name_map_ee30520[] = {
+ NSPAIR(_ZN7ee30520C1Ev),
+ NSPAIR(_ZN7ee30520D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc520;
+extern VTBL_ENTRY _ZTI5cc520[];
+extern VTBL_ENTRY _ZTV5cc520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc520[];
+extern Class_Descriptor cd_dd0520;
+extern VTBL_ENTRY _ZTI6dd0520[];
+extern VTBL_ENTRY _ZTV6dd0520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0520[];
+static Base_Class bases_ee30520[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc520, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0520, 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 _ZTI7ee30520[];
+extern void _ZN7ee305203fooEv();
+extern void _ZN5cc5203barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee305203fooEv,_ZTv0_n12_N7ee305203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee305203fooEv,_ZThn20_N7ee305203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee30520[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30520[0]),
+ (VTBL_ENTRY)&_ZN7ee305203fooEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee30520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee305203fooEv,_ZTv0_n12_N7ee305203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee30520[];
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV6dd0520__7ee30520[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc5206dd0520__7ee30520[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc5206dd0520__7ee30520[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__6dd0520__7ee30520[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee30520[] = {
+ {&(_ZTV7ee30520[4]), 4,14},
+ {&(_ZTV7ee30520[9]), 9,14},
+ {&(_ZTV7ee30520[13]), 13,14},
+ {&(_tg__ZTV6dd0520__7ee30520[3]), 3,4},
+ {&(_tg__ZTV5cc5206dd0520__7ee30520[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc5206dd0520__7ee30520[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd0520__7ee30520[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee30520[];
+extern VTBL_ENTRY _ZTV7ee30520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30520[];
+static VTBL_ENTRY alt_thunk_names248[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee305203fooEv,_ZTv0_n12_N7ee305203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee305203fooEv,_ZThn20_N7ee305203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30520 = { "ee30520", // class name
+ bases_ee30520, 4,
+ &(vtc_ee30520[0]), // expected_vtbl_contents
+ &(vtt_ee30520[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee30520),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30520),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30520),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names248,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee40520 : dd0520 {
+ int e;
+ virtual void bar(); // _ZN7ee405203barEv
+ ~ee40520(); // tgen
+ ee40520(); // tgen
+};
+//SIG(1 ee40520) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v2 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee40520 ::bar(){vfunc_called(this, "_ZN7ee405203barEv");}
+ee40520 ::~ee40520(){ note_dtor("ee40520", this);} // tgen
+ee40520 ::ee40520(){ note_ctor("ee40520", this);} // tgen
+
+static void Test_ee40520()
+{
+ extern Class_Descriptor cd_ee40520;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee40520, buf);
+ ee40520 *dp, &lv = *(dp=new (buf) ee40520());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee40520)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40520)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(32,20), "ee40520");
+ check_base_class_offset(lv, (bb20*)(cc520*)(dd0520*), ABISELECT(24,16), "ee40520");
+ check_base_class_offset(lv, (cc520*)(dd0520*), 0, "ee40520");
+ check_base_class_offset(lv, (dd0520*), 0, "ee40520");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee40520.e");
+ test_class_info(&lv, &cd_ee40520);
+ dp->~ee40520();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40520(Test_ee40520, "ee40520", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee40520C1Ev();
+extern void _ZN7ee40520D1Ev();
+Name_Map name_map_ee40520[] = {
+ NSPAIR(_ZN7ee40520C1Ev),
+ NSPAIR(_ZN7ee40520D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc520;
+extern VTBL_ENTRY _ZTI5cc520[];
+extern VTBL_ENTRY _ZTV5cc520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc520[];
+extern Class_Descriptor cd_dd0520;
+extern VTBL_ENTRY _ZTI6dd0520[];
+extern VTBL_ENTRY _ZTV6dd0520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0520[];
+static Base_Class bases_ee40520[] = {
+ // 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_bb20, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc520, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0520, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee40520[];
+extern void _ZN7ee405203barEv();
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY vtc_ee40520[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40520[0]),
+ (VTBL_ENTRY)&_ZN7ee405203barEv,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee40520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee40520[];
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV6dd0520__7ee40520[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc5206dd0520__7ee40520[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc5206dd0520__7ee40520[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__6dd0520__7ee40520[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee40520[] = {
+ {&(_ZTV7ee40520[3]), 3,8},
+ {&(_tg__ZTV6dd0520__7ee40520[3]), 3,4},
+ {&(_tg__ZTV5cc5206dd0520__7ee40520[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc5206dd0520__7ee40520[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd0520__7ee40520[3]), 3,4},
+ {&(_ZTV7ee40520[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee40520[];
+extern VTBL_ENTRY _ZTV7ee40520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee40520[];
+Class_Descriptor cd_ee40520 = { "ee40520", // class name
+ bases_ee40520, 4,
+ &(vtc_ee40520[0]), // expected_vtbl_contents
+ &(vtt_ee40520[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee40520),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40520),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee40520),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee50520 : virtual dd0520 {
+ int e;
+ virtual void bar(); // _ZN7ee505203barEv
+ ~ee50520(); // tgen
+ ee50520(); // tgen
+};
+//SIG(1 ee50520) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v2 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee50520 ::bar(){vfunc_called(this, "_ZN7ee505203barEv");}
+ee50520 ::~ee50520(){ note_dtor("ee50520", this);} // tgen
+ee50520 ::ee50520(){ note_ctor("ee50520", this);} // tgen
+
+static void Test_ee50520()
+{
+ extern Class_Descriptor cd_ee50520;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee50520, buf);
+ ee50520 *dp, &lv = *(dp=new (buf) ee50520());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee50520)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50520)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee50520");
+ check_base_class_offset(lv, (bb20*)(cc520*)(dd0520*), ABISELECT(32,20), "ee50520");
+ check_base_class_offset(lv, (cc520*)(dd0520*), ABISELECT(16,8), "ee50520");
+ check_base_class_offset(lv, (dd0520*), ABISELECT(16,8), "ee50520");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50520.e");
+ test_class_info(&lv, &cd_ee50520);
+ dp->~ee50520();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50520(Test_ee50520, "ee50520", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee50520C1Ev();
+extern void _ZN7ee50520D1Ev();
+Name_Map name_map_ee50520[] = {
+ NSPAIR(_ZN7ee50520C1Ev),
+ NSPAIR(_ZN7ee50520D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc520;
+extern VTBL_ENTRY _ZTI5cc520[];
+extern VTBL_ENTRY _ZTV5cc520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc520[];
+extern Class_Descriptor cd_dd0520;
+extern VTBL_ENTRY _ZTI6dd0520[];
+extern VTBL_ENTRY _ZTV6dd0520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0520[];
+static Base_Class bases_ee50520[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc520, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0520, 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 _ZTI7ee50520[];
+extern void _ZN7ee505203barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee505203barEv,_ZTv0_n16_N7ee505203barEv)();
+extern void ABISELECT(_ZThn16_N7ee505203barEv,_ZThn8_N7ee505203barEv)() __attribute__((weak));
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY vtc_ee50520[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50520[0]),
+ (VTBL_ENTRY)&_ZN7ee505203barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee505203barEv,_ZTv0_n16_N7ee505203barEv),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee50520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee50520[];
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV6dd0520__7ee50520[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc5206dd0520__7ee50520[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc5206dd0520__7ee50520[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__6dd0520__7ee50520[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee50520[] = {
+ {&(_ZTV7ee50520[4]), 4,14},
+ {&(_ZTV7ee50520[9]), 9,14},
+ {&(_ZTV7ee50520[13]), 13,14},
+ {&(_tg__ZTV6dd0520__7ee50520[3]), 3,4},
+ {&(_tg__ZTV5cc5206dd0520__7ee50520[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc5206dd0520__7ee50520[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd0520__7ee50520[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee50520[];
+extern VTBL_ENTRY _ZTV7ee50520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50520[];
+static VTBL_ENTRY alt_thunk_names249[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee505203barEv,_ZTv0_n16_N7ee505203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee505203barEv,_ZThn8_N7ee505203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50520 = { "ee50520", // class name
+ bases_ee50520, 4,
+ &(vtc_ee50520[0]), // expected_vtbl_contents
+ &(vtt_ee50520[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee50520),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50520),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50520),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names249,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee60520 : dd0520 {
+ int e;
+ virtual void foo(); // _ZN7ee605203fooEv
+ virtual void bar(); // _ZN7ee605203barEv
+ ~ee60520(); // tgen
+ ee60520(); // tgen
+};
+//SIG(1 ee60520) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v1 Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee60520 ::foo(){vfunc_called(this, "_ZN7ee605203fooEv");}
+void ee60520 ::bar(){vfunc_called(this, "_ZN7ee605203barEv");}
+ee60520 ::~ee60520(){ note_dtor("ee60520", this);} // tgen
+ee60520 ::ee60520(){ note_ctor("ee60520", this);} // tgen
+
+static void Test_ee60520()
+{
+ extern Class_Descriptor cd_ee60520;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee60520, buf);
+ ee60520 *dp, &lv = *(dp=new (buf) ee60520());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee60520)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60520)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(32,20), "ee60520");
+ check_base_class_offset(lv, (bb20*)(cc520*)(dd0520*), ABISELECT(24,16), "ee60520");
+ check_base_class_offset(lv, (cc520*)(dd0520*), 0, "ee60520");
+ check_base_class_offset(lv, (dd0520*), 0, "ee60520");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee60520.e");
+ test_class_info(&lv, &cd_ee60520);
+ dp->~ee60520();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60520(Test_ee60520, "ee60520", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee60520C1Ev();
+extern void _ZN7ee60520D1Ev();
+Name_Map name_map_ee60520[] = {
+ NSPAIR(_ZN7ee60520C1Ev),
+ NSPAIR(_ZN7ee60520D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc520;
+extern VTBL_ENTRY _ZTI5cc520[];
+extern VTBL_ENTRY _ZTV5cc520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc520[];
+extern Class_Descriptor cd_dd0520;
+extern VTBL_ENTRY _ZTI6dd0520[];
+extern VTBL_ENTRY _ZTV6dd0520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0520[];
+static Base_Class bases_ee60520[] = {
+ // 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_bb20, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc520, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0520, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee60520[];
+extern void _ZN7ee605203barEv();
+extern void _ZN7ee605203fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee605203fooEv,_ZTv0_n12_N7ee605203fooEv)();
+extern void ABISELECT(_ZThn24_N7ee605203fooEv,_ZThn16_N7ee605203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee60520[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60520[0]),
+ (VTBL_ENTRY)&_ZN7ee605203barEv,
+ (VTBL_ENTRY)&_ZN7ee605203fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee60520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee605203fooEv,_ZTv0_n12_N7ee605203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee60520[];
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV6dd0520__7ee60520[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc5206dd0520__7ee60520[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc5206dd0520__7ee60520[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__6dd0520__7ee60520[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee60520[] = {
+ {&(_ZTV7ee60520[3]), 3,9},
+ {&(_tg__ZTV6dd0520__7ee60520[3]), 3,4},
+ {&(_tg__ZTV5cc5206dd0520__7ee60520[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc5206dd0520__7ee60520[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd0520__7ee60520[3]), 3,4},
+ {&(_ZTV7ee60520[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee60520[];
+extern VTBL_ENTRY _ZTV7ee60520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee60520[];
+static VTBL_ENTRY alt_thunk_names250[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee605203fooEv,_ZTv0_n12_N7ee605203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee605203fooEv,_ZThn16_N7ee605203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee60520 = { "ee60520", // class name
+ bases_ee60520, 4,
+ &(vtc_ee60520[0]), // expected_vtbl_contents
+ &(vtt_ee60520[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee60520),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60520),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee60520),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names250,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee70520 : virtual dd0520 {
+ int e;
+ virtual void foo(); // _ZN7ee705203fooEv
+ virtual void bar(); // _ZN7ee705203barEv
+ ~ee70520(); // tgen
+ ee70520(); // tgen
+};
+//SIG(1 ee70520) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v1 Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee70520 ::foo(){vfunc_called(this, "_ZN7ee705203fooEv");}
+void ee70520 ::bar(){vfunc_called(this, "_ZN7ee705203barEv");}
+ee70520 ::~ee70520(){ note_dtor("ee70520", this);} // tgen
+ee70520 ::ee70520(){ note_ctor("ee70520", this);} // tgen
+
+static void Test_ee70520()
+{
+ extern Class_Descriptor cd_ee70520;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee70520, buf);
+ ee70520 *dp, &lv = *(dp=new (buf) ee70520());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee70520)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70520)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee70520");
+ check_base_class_offset(lv, (bb20*)(cc520*)(dd0520*), ABISELECT(32,20), "ee70520");
+ check_base_class_offset(lv, (cc520*)(dd0520*), ABISELECT(16,8), "ee70520");
+ check_base_class_offset(lv, (dd0520*), ABISELECT(16,8), "ee70520");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70520.e");
+ test_class_info(&lv, &cd_ee70520);
+ dp->~ee70520();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70520(Test_ee70520, "ee70520", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee70520C1Ev();
+extern void _ZN7ee70520D1Ev();
+Name_Map name_map_ee70520[] = {
+ NSPAIR(_ZN7ee70520C1Ev),
+ NSPAIR(_ZN7ee70520D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc520;
+extern VTBL_ENTRY _ZTI5cc520[];
+extern VTBL_ENTRY _ZTV5cc520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc520[];
+extern Class_Descriptor cd_dd0520;
+extern VTBL_ENTRY _ZTI6dd0520[];
+extern VTBL_ENTRY _ZTV6dd0520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0520[];
+static Base_Class bases_ee70520[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc520, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0520, 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 _ZTI7ee70520[];
+extern void _ZN7ee705203fooEv();
+extern void _ZN7ee705203barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee705203barEv,_ZTv0_n16_N7ee705203barEv)();
+extern void ABISELECT(_ZThn16_N7ee705203barEv,_ZThn8_N7ee705203barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee705203fooEv,_ZTv0_n12_N7ee705203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee705203fooEv,_ZThn20_N7ee705203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70520[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70520[0]),
+ (VTBL_ENTRY)&_ZN7ee705203fooEv,
+ (VTBL_ENTRY)&_ZN7ee705203barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee705203barEv,_ZTv0_n16_N7ee705203barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee70520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee705203fooEv,_ZTv0_n12_N7ee705203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee70520[];
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV6dd0520__7ee70520[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc5206dd0520__7ee70520[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc5206dd0520__7ee70520[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__6dd0520__7ee70520[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee70520[] = {
+ {&(_ZTV7ee70520[4]), 4,15},
+ {&(_ZTV7ee70520[10]), 10,15},
+ {&(_ZTV7ee70520[14]), 14,15},
+ {&(_tg__ZTV6dd0520__7ee70520[3]), 3,4},
+ {&(_tg__ZTV5cc5206dd0520__7ee70520[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc5206dd0520__7ee70520[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd0520__7ee70520[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee70520[];
+extern VTBL_ENTRY _ZTV7ee70520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70520[];
+static VTBL_ENTRY alt_thunk_names251[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee705203fooEv,_ZTv0_n12_N7ee705203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee705203fooEv,_ZThn20_N7ee705203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee705203barEv,_ZTv0_n16_N7ee705203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee705203barEv,_ZThn8_N7ee705203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70520 = { "ee70520", // class name
+ bases_ee70520, 4,
+ &(vtc_ee70520[0]), // expected_vtbl_contents
+ &(vtt_ee70520[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee70520),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70520),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70520),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names251,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd1520 : virtual cc520 {
+ int d;
+ ~dd1520(); // tgen
+ dd1520(); // tgen
+};
+//SIG(-1 dd1520) C1{ VBC2{ VBC3{ BC4{ Fi} v2 Fi} v1 Fi} Fi}
+
+
+dd1520 ::~dd1520(){ note_dtor("dd1520", this);} // tgen
+dd1520 ::dd1520(){ note_ctor("dd1520", this);} // tgen
+
+static void Test_dd1520()
+{
+ extern Class_Descriptor cd_dd1520;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd1520, buf);
+ dd1520 *dp, &lv = *(dp=new (buf) dd1520());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd1520)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1520)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,20), "dd1520");
+ check_base_class_offset(lv, (bb20*)(cc520*), ABISELECT(32,16), "dd1520");
+ check_base_class_offset(lv, (cc520*), ABISELECT(16,8), "dd1520");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1520.d");
+ test_class_info(&lv, &cd_dd1520);
+ dp->~dd1520();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1520(Test_dd1520, "dd1520", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd1520C1Ev();
+extern void _ZN6dd1520D1Ev();
+Name_Map name_map_dd1520[] = {
+ NSPAIR(_ZN6dd1520C1Ev),
+ NSPAIR(_ZN6dd1520D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc520;
+extern VTBL_ENTRY _ZTI5cc520[];
+extern VTBL_ENTRY _ZTV5cc520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc520[];
+static Base_Class bases_dd1520[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc520, 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 _ZTI6dd1520[];
+extern void _ZN5cc5203barEv();
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY vtc_dd1520[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1520[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd1520[];
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc520__6dd1520[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc520__6dd1520[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_dd1520[] = {
+ {&(_ZTV6dd1520[4]), 4,13},
+ {&(_ZTV6dd1520[8]), 8,13},
+ {&(_ZTV6dd1520[12]), 12,13},
+ {&(_tg__ZTV5cc520__6dd1520[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc520__6dd1520[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd1520[];
+extern VTBL_ENTRY _ZTV6dd1520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1520[];
+Class_Descriptor cd_dd1520 = { "dd1520", // class name
+ bases_dd1520, 3,
+ &(vtc_dd1520[0]), // expected_vtbl_contents
+ &(vtt_dd1520[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd1520),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1520),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1520),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 ee01520 : dd1520 {
+ int e;
+ ~ee01520(); // tgen
+ ee01520(); // tgen
+};
+//SIG(1 ee01520) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v2 Fi} v1 Fi} Fi} Fi}
+
+
+ee01520 ::~ee01520(){ note_dtor("ee01520", this);} // tgen
+ee01520 ::ee01520(){ note_ctor("ee01520", this);} // tgen
+
+static void Test_ee01520()
+{
+ extern Class_Descriptor cd_ee01520;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee01520, buf);
+ ee01520 *dp, &lv = *(dp=new (buf) ee01520());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee01520)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01520)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee01520");
+ check_base_class_offset(lv, (bb20*)(cc520*), ABISELECT(32,20), "ee01520");
+ check_base_class_offset(lv, (cc520*)(dd1520*), ABISELECT(16,12), "ee01520");
+ check_base_class_offset(lv, (dd1520*), 0, "ee01520");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01520.e");
+ test_class_info(&lv, &cd_ee01520);
+ dp->~ee01520();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01520(Test_ee01520, "ee01520", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee01520C1Ev();
+extern void _ZN7ee01520D1Ev();
+Name_Map name_map_ee01520[] = {
+ NSPAIR(_ZN7ee01520C1Ev),
+ NSPAIR(_ZN7ee01520D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc520;
+extern VTBL_ENTRY _ZTI5cc520[];
+extern VTBL_ENTRY _ZTV5cc520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc520[];
+extern Class_Descriptor cd_dd1520;
+extern VTBL_ENTRY _ZTI6dd1520[];
+extern VTBL_ENTRY _ZTV6dd1520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1520[];
+static Base_Class bases_ee01520[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc520, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1520, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01520[];
+extern void _ZN5cc5203barEv();
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY vtc_ee01520[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01520[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee01520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee01520[];
+static VTBL_ENTRY _tg__ZTV6dd1520__7ee01520[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1520[0]),
+};
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc520__6dd1520__7ee01520[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__6dd1520__7ee01520[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc520__7ee01520[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc520__7ee01520[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee01520[] = {
+ {&(_ZTV7ee01520[4]), 4,13},
+ {&(_tg__ZTV6dd1520__7ee01520[4]), 4,4},
+ {&(_tg__ZTV5cc520__6dd1520__7ee01520[4]), 4,5},
+ {&(_tg__ZTV4bb20__6dd1520__7ee01520[3]), 3,4},
+ {&(_ZTV7ee01520[8]), 8,13},
+ {&(_ZTV7ee01520[12]), 12,13},
+ {&(_tg__ZTV5cc520__7ee01520[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc520__7ee01520[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee01520[];
+extern VTBL_ENTRY _ZTV7ee01520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01520[];
+Class_Descriptor cd_ee01520 = { "ee01520", // class name
+ bases_ee01520, 4,
+ &(vtc_ee01520[0]), // expected_vtbl_contents
+ &(vtt_ee01520[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee01520),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01520),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01520),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee11520 : virtual dd1520 {
+ int e;
+ ~ee11520(); // tgen
+ ee11520(); // tgen
+};
+//SIG(1 ee11520) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v2 Fi} v1 Fi} Fi} Fi}
+
+
+ee11520 ::~ee11520(){ note_dtor("ee11520", this);} // tgen
+ee11520 ::ee11520(){ note_ctor("ee11520", this);} // tgen
+
+static void Test_ee11520()
+{
+ extern Class_Descriptor cd_ee11520;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee11520, buf);
+ ee11520 *dp, &lv = *(dp=new (buf) ee11520());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee11520)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11520)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(56,28), "ee11520");
+ check_base_class_offset(lv, (bb20*)(cc520*), ABISELECT(48,24), "ee11520");
+ check_base_class_offset(lv, (cc520*)(dd1520*), ABISELECT(32,16), "ee11520");
+ check_base_class_offset(lv, (dd1520*), ABISELECT(16,8), "ee11520");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11520.e");
+ test_class_info(&lv, &cd_ee11520);
+ dp->~ee11520();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11520(Test_ee11520, "ee11520", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee11520C1Ev();
+extern void _ZN7ee11520D1Ev();
+Name_Map name_map_ee11520[] = {
+ NSPAIR(_ZN7ee11520C1Ev),
+ NSPAIR(_ZN7ee11520D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc520;
+extern VTBL_ENTRY _ZTI5cc520[];
+extern VTBL_ENTRY _ZTV5cc520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc520[];
+extern Class_Descriptor cd_dd1520;
+extern VTBL_ENTRY _ZTI6dd1520[];
+extern VTBL_ENTRY _ZTV6dd1520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1520[];
+static Base_Class bases_ee11520[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(56,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(48,24), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc520, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1520, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee11520[];
+extern void _ZN5cc5203barEv();
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY vtc_ee11520[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11520[0]),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11520[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee11520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee11520[];
+static VTBL_ENTRY _tg__ZTV6dd1520__7ee11520[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1520[0]),
+};
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc520__6dd1520__7ee11520[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__6dd1520__7ee11520[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc520__7ee11520[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc520__7ee11520[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee11520[] = {
+ {&(_ZTV7ee11520[5]), 5,18},
+ {&(_ZTV7ee11520[9]), 9,18},
+ {&(_ZTV7ee11520[13]), 13,18},
+ {&(_ZTV7ee11520[17]), 17,18},
+ {&(_tg__ZTV6dd1520__7ee11520[4]), 4,4},
+ {&(_tg__ZTV5cc520__6dd1520__7ee11520[4]), 4,5},
+ {&(_tg__ZTV4bb20__6dd1520__7ee11520[3]), 3,4},
+ {&(_tg__ZTV5cc520__7ee11520[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc520__7ee11520[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee11520[];
+extern VTBL_ENTRY _ZTV7ee11520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11520[];
+Class_Descriptor cd_ee11520 = { "ee11520", // class name
+ bases_ee11520, 4,
+ &(vtc_ee11520[0]), // expected_vtbl_contents
+ &(vtt_ee11520[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee11520),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11520),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11520),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee21520 : dd1520 {
+ int e;
+ virtual void foo(); // _ZN7ee215203fooEv
+ ~ee21520(); // tgen
+ ee21520(); // tgen
+};
+//SIG(1 ee21520) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v1 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee21520 ::foo(){vfunc_called(this, "_ZN7ee215203fooEv");}
+ee21520 ::~ee21520(){ note_dtor("ee21520", this);} // tgen
+ee21520 ::ee21520(){ note_ctor("ee21520", this);} // tgen
+
+static void Test_ee21520()
+{
+ extern Class_Descriptor cd_ee21520;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee21520, buf);
+ ee21520 *dp, &lv = *(dp=new (buf) ee21520());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee21520)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21520)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee21520");
+ check_base_class_offset(lv, (bb20*)(cc520*), ABISELECT(32,20), "ee21520");
+ check_base_class_offset(lv, (cc520*)(dd1520*), ABISELECT(16,12), "ee21520");
+ check_base_class_offset(lv, (dd1520*), 0, "ee21520");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21520.e");
+ test_class_info(&lv, &cd_ee21520);
+ dp->~ee21520();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21520(Test_ee21520, "ee21520", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee21520C1Ev();
+extern void _ZN7ee21520D1Ev();
+Name_Map name_map_ee21520[] = {
+ NSPAIR(_ZN7ee21520C1Ev),
+ NSPAIR(_ZN7ee21520D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc520;
+extern VTBL_ENTRY _ZTI5cc520[];
+extern VTBL_ENTRY _ZTV5cc520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc520[];
+extern Class_Descriptor cd_dd1520;
+extern VTBL_ENTRY _ZTI6dd1520[];
+extern VTBL_ENTRY _ZTV6dd1520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1520[];
+static Base_Class bases_ee21520[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc520, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1520, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21520[];
+extern void _ZN7ee215203fooEv();
+extern void _ZN5cc5203barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee215203fooEv,_ZTv0_n12_N7ee215203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee215203fooEv,_ZThn20_N7ee215203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee21520[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21520[0]),
+ (VTBL_ENTRY)&_ZN7ee215203fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee21520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee215203fooEv,_ZTv0_n12_N7ee215203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee21520[];
+static VTBL_ENTRY _tg__ZTV6dd1520__7ee21520[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1520[0]),
+};
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc520__6dd1520__7ee21520[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__6dd1520__7ee21520[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc520__7ee21520[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc520__7ee21520[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee21520[] = {
+ {&(_ZTV7ee21520[4]), 4,14},
+ {&(_tg__ZTV6dd1520__7ee21520[4]), 4,4},
+ {&(_tg__ZTV5cc520__6dd1520__7ee21520[4]), 4,5},
+ {&(_tg__ZTV4bb20__6dd1520__7ee21520[3]), 3,4},
+ {&(_ZTV7ee21520[9]), 9,14},
+ {&(_ZTV7ee21520[13]), 13,14},
+ {&(_tg__ZTV5cc520__7ee21520[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc520__7ee21520[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee21520[];
+extern VTBL_ENTRY _ZTV7ee21520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21520[];
+static VTBL_ENTRY alt_thunk_names252[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee215203fooEv,_ZTv0_n12_N7ee215203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee215203fooEv,_ZThn20_N7ee215203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21520 = { "ee21520", // class name
+ bases_ee21520, 4,
+ &(vtc_ee21520[0]), // expected_vtbl_contents
+ &(vtt_ee21520[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee21520),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21520),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21520),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names252,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee31520 : virtual dd1520 {
+ int e;
+ virtual void foo(); // _ZN7ee315203fooEv
+ ~ee31520(); // tgen
+ ee31520(); // tgen
+};
+//SIG(1 ee31520) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v1 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee31520 ::foo(){vfunc_called(this, "_ZN7ee315203fooEv");}
+ee31520 ::~ee31520(){ note_dtor("ee31520", this);} // tgen
+ee31520 ::ee31520(){ note_ctor("ee31520", this);} // tgen
+
+static void Test_ee31520()
+{
+ extern Class_Descriptor cd_ee31520;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee31520, buf);
+ ee31520 *dp, &lv = *(dp=new (buf) ee31520());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee31520)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31520)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(56,28), "ee31520");
+ check_base_class_offset(lv, (bb20*)(cc520*), ABISELECT(48,24), "ee31520");
+ check_base_class_offset(lv, (cc520*)(dd1520*), ABISELECT(32,16), "ee31520");
+ check_base_class_offset(lv, (dd1520*), ABISELECT(16,8), "ee31520");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31520.e");
+ test_class_info(&lv, &cd_ee31520);
+ dp->~ee31520();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31520(Test_ee31520, "ee31520", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee31520C1Ev();
+extern void _ZN7ee31520D1Ev();
+Name_Map name_map_ee31520[] = {
+ NSPAIR(_ZN7ee31520C1Ev),
+ NSPAIR(_ZN7ee31520D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc520;
+extern VTBL_ENTRY _ZTI5cc520[];
+extern VTBL_ENTRY _ZTV5cc520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc520[];
+extern Class_Descriptor cd_dd1520;
+extern VTBL_ENTRY _ZTI6dd1520[];
+extern VTBL_ENTRY _ZTV6dd1520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1520[];
+static Base_Class bases_ee31520[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(56,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(48,24), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc520, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1520, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee31520[];
+extern void _ZN7ee315203fooEv();
+extern void _ZN5cc5203barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee315203fooEv,_ZTv0_n12_N7ee315203fooEv)();
+extern void ABISELECT(_ZThn48_N7ee315203fooEv,_ZThn24_N7ee315203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee31520[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31520[0]),
+ (VTBL_ENTRY)&_ZN7ee315203fooEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31520[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee31520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee315203fooEv,_ZTv0_n12_N7ee315203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee31520[];
+static VTBL_ENTRY _tg__ZTV6dd1520__7ee31520[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1520[0]),
+};
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc520__6dd1520__7ee31520[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__6dd1520__7ee31520[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc520__7ee31520[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc520__7ee31520[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee31520[] = {
+ {&(_ZTV7ee31520[5]), 5,19},
+ {&(_ZTV7ee31520[10]), 10,19},
+ {&(_ZTV7ee31520[14]), 14,19},
+ {&(_ZTV7ee31520[18]), 18,19},
+ {&(_tg__ZTV6dd1520__7ee31520[4]), 4,4},
+ {&(_tg__ZTV5cc520__6dd1520__7ee31520[4]), 4,5},
+ {&(_tg__ZTV4bb20__6dd1520__7ee31520[3]), 3,4},
+ {&(_tg__ZTV5cc520__7ee31520[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc520__7ee31520[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee31520[];
+extern VTBL_ENTRY _ZTV7ee31520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31520[];
+static VTBL_ENTRY alt_thunk_names253[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee315203fooEv,_ZTv0_n12_N7ee315203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee315203fooEv,_ZThn24_N7ee315203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31520 = { "ee31520", // class name
+ bases_ee31520, 4,
+ &(vtc_ee31520[0]), // expected_vtbl_contents
+ &(vtt_ee31520[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee31520),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31520),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31520),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names253,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee41520 : dd1520 {
+ int e;
+ virtual void bar(); // _ZN7ee415203barEv
+ ~ee41520(); // tgen
+ ee41520(); // tgen
+};
+//SIG(1 ee41520) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v2 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee41520 ::bar(){vfunc_called(this, "_ZN7ee415203barEv");}
+ee41520 ::~ee41520(){ note_dtor("ee41520", this);} // tgen
+ee41520 ::ee41520(){ note_ctor("ee41520", this);} // tgen
+
+static void Test_ee41520()
+{
+ extern Class_Descriptor cd_ee41520;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee41520, buf);
+ ee41520 *dp, &lv = *(dp=new (buf) ee41520());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee41520)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41520)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee41520");
+ check_base_class_offset(lv, (bb20*)(cc520*), ABISELECT(32,20), "ee41520");
+ check_base_class_offset(lv, (cc520*)(dd1520*), ABISELECT(16,12), "ee41520");
+ check_base_class_offset(lv, (dd1520*), 0, "ee41520");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41520.e");
+ test_class_info(&lv, &cd_ee41520);
+ dp->~ee41520();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41520(Test_ee41520, "ee41520", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee41520C1Ev();
+extern void _ZN7ee41520D1Ev();
+Name_Map name_map_ee41520[] = {
+ NSPAIR(_ZN7ee41520C1Ev),
+ NSPAIR(_ZN7ee41520D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc520;
+extern VTBL_ENTRY _ZTI5cc520[];
+extern VTBL_ENTRY _ZTV5cc520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc520[];
+extern Class_Descriptor cd_dd1520;
+extern VTBL_ENTRY _ZTI6dd1520[];
+extern VTBL_ENTRY _ZTV6dd1520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1520[];
+static Base_Class bases_ee41520[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc520, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1520, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41520[];
+extern void _ZN7ee415203barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee415203barEv,_ZTv0_n16_N7ee415203barEv)();
+extern void ABISELECT(_ZThn16_N7ee415203barEv,_ZThn12_N7ee415203barEv)() __attribute__((weak));
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY vtc_ee41520[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41520[0]),
+ (VTBL_ENTRY)&_ZN7ee415203barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee415203barEv,_ZTv0_n16_N7ee415203barEv),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee41520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee41520[];
+static VTBL_ENTRY _tg__ZTV6dd1520__7ee41520[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1520[0]),
+};
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc520__6dd1520__7ee41520[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__6dd1520__7ee41520[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc520__7ee41520[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc520__7ee41520[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee41520[] = {
+ {&(_ZTV7ee41520[4]), 4,14},
+ {&(_tg__ZTV6dd1520__7ee41520[4]), 4,4},
+ {&(_tg__ZTV5cc520__6dd1520__7ee41520[4]), 4,5},
+ {&(_tg__ZTV4bb20__6dd1520__7ee41520[3]), 3,4},
+ {&(_ZTV7ee41520[9]), 9,14},
+ {&(_ZTV7ee41520[13]), 13,14},
+ {&(_tg__ZTV5cc520__7ee41520[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc520__7ee41520[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee41520[];
+extern VTBL_ENTRY _ZTV7ee41520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41520[];
+static VTBL_ENTRY alt_thunk_names254[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee415203barEv,_ZTv0_n16_N7ee415203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee415203barEv,_ZThn12_N7ee415203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41520 = { "ee41520", // class name
+ bases_ee41520, 4,
+ &(vtc_ee41520[0]), // expected_vtbl_contents
+ &(vtt_ee41520[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee41520),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41520),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41520),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names254,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee51520 : virtual dd1520 {
+ int e;
+ virtual void bar(); // _ZN7ee515203barEv
+ ~ee51520(); // tgen
+ ee51520(); // tgen
+};
+//SIG(1 ee51520) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v2 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee51520 ::bar(){vfunc_called(this, "_ZN7ee515203barEv");}
+ee51520 ::~ee51520(){ note_dtor("ee51520", this);} // tgen
+ee51520 ::ee51520(){ note_ctor("ee51520", this);} // tgen
+
+static void Test_ee51520()
+{
+ extern Class_Descriptor cd_ee51520;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee51520, buf);
+ ee51520 *dp, &lv = *(dp=new (buf) ee51520());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee51520)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51520)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(56,28), "ee51520");
+ check_base_class_offset(lv, (bb20*)(cc520*), ABISELECT(48,24), "ee51520");
+ check_base_class_offset(lv, (cc520*)(dd1520*), ABISELECT(32,16), "ee51520");
+ check_base_class_offset(lv, (dd1520*), ABISELECT(16,8), "ee51520");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51520.e");
+ test_class_info(&lv, &cd_ee51520);
+ dp->~ee51520();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51520(Test_ee51520, "ee51520", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee51520C1Ev();
+extern void _ZN7ee51520D1Ev();
+Name_Map name_map_ee51520[] = {
+ NSPAIR(_ZN7ee51520C1Ev),
+ NSPAIR(_ZN7ee51520D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc520;
+extern VTBL_ENTRY _ZTI5cc520[];
+extern VTBL_ENTRY _ZTV5cc520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc520[];
+extern Class_Descriptor cd_dd1520;
+extern VTBL_ENTRY _ZTI6dd1520[];
+extern VTBL_ENTRY _ZTV6dd1520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1520[];
+static Base_Class bases_ee51520[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(56,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(48,24), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc520, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1520, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee51520[];
+extern void _ZN7ee515203barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee515203barEv,_ZTv0_n16_N7ee515203barEv)();
+extern void ABISELECT(_ZThn32_N7ee515203barEv,_ZThn16_N7ee515203barEv)() __attribute__((weak));
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY vtc_ee51520[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51520[0]),
+ (VTBL_ENTRY)&_ZN7ee515203barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51520[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee515203barEv,_ZTv0_n16_N7ee515203barEv),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee51520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee51520[];
+static VTBL_ENTRY _tg__ZTV6dd1520__7ee51520[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1520[0]),
+};
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc520__6dd1520__7ee51520[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__6dd1520__7ee51520[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc520__7ee51520[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc520__7ee51520[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee51520[] = {
+ {&(_ZTV7ee51520[5]), 5,19},
+ {&(_ZTV7ee51520[10]), 10,19},
+ {&(_ZTV7ee51520[14]), 14,19},
+ {&(_ZTV7ee51520[18]), 18,19},
+ {&(_tg__ZTV6dd1520__7ee51520[4]), 4,4},
+ {&(_tg__ZTV5cc520__6dd1520__7ee51520[4]), 4,5},
+ {&(_tg__ZTV4bb20__6dd1520__7ee51520[3]), 3,4},
+ {&(_tg__ZTV5cc520__7ee51520[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc520__7ee51520[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee51520[];
+extern VTBL_ENTRY _ZTV7ee51520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51520[];
+static VTBL_ENTRY alt_thunk_names255[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee515203barEv,_ZTv0_n16_N7ee515203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee515203barEv,_ZThn16_N7ee515203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51520 = { "ee51520", // class name
+ bases_ee51520, 4,
+ &(vtc_ee51520[0]), // expected_vtbl_contents
+ &(vtt_ee51520[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee51520),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51520),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51520),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names255,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee61520 : dd1520 {
+ int e;
+ virtual void foo(); // _ZN7ee615203fooEv
+ virtual void bar(); // _ZN7ee615203barEv
+ ~ee61520(); // tgen
+ ee61520(); // tgen
+};
+//SIG(1 ee61520) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v1 Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee61520 ::foo(){vfunc_called(this, "_ZN7ee615203fooEv");}
+void ee61520 ::bar(){vfunc_called(this, "_ZN7ee615203barEv");}
+ee61520 ::~ee61520(){ note_dtor("ee61520", this);} // tgen
+ee61520 ::ee61520(){ note_ctor("ee61520", this);} // tgen
+
+static void Test_ee61520()
+{
+ extern Class_Descriptor cd_ee61520;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee61520, buf);
+ ee61520 *dp, &lv = *(dp=new (buf) ee61520());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee61520)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61520)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee61520");
+ check_base_class_offset(lv, (bb20*)(cc520*), ABISELECT(32,20), "ee61520");
+ check_base_class_offset(lv, (cc520*)(dd1520*), ABISELECT(16,12), "ee61520");
+ check_base_class_offset(lv, (dd1520*), 0, "ee61520");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61520.e");
+ test_class_info(&lv, &cd_ee61520);
+ dp->~ee61520();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61520(Test_ee61520, "ee61520", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee61520C1Ev();
+extern void _ZN7ee61520D1Ev();
+Name_Map name_map_ee61520[] = {
+ NSPAIR(_ZN7ee61520C1Ev),
+ NSPAIR(_ZN7ee61520D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc520;
+extern VTBL_ENTRY _ZTI5cc520[];
+extern VTBL_ENTRY _ZTV5cc520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc520[];
+extern Class_Descriptor cd_dd1520;
+extern VTBL_ENTRY _ZTI6dd1520[];
+extern VTBL_ENTRY _ZTV6dd1520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1520[];
+static Base_Class bases_ee61520[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc520, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1520, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61520[];
+extern void _ZN7ee615203fooEv();
+extern void _ZN7ee615203barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee615203barEv,_ZTv0_n16_N7ee615203barEv)();
+extern void ABISELECT(_ZThn16_N7ee615203barEv,_ZThn12_N7ee615203barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee615203fooEv,_ZTv0_n12_N7ee615203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee615203fooEv,_ZThn20_N7ee615203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61520[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61520[0]),
+ (VTBL_ENTRY)&_ZN7ee615203fooEv,
+ (VTBL_ENTRY)&_ZN7ee615203barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee615203barEv,_ZTv0_n16_N7ee615203barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee61520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee615203fooEv,_ZTv0_n12_N7ee615203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee61520[];
+static VTBL_ENTRY _tg__ZTV6dd1520__7ee61520[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1520[0]),
+};
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc520__6dd1520__7ee61520[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__6dd1520__7ee61520[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc520__7ee61520[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc520__7ee61520[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee61520[] = {
+ {&(_ZTV7ee61520[4]), 4,15},
+ {&(_tg__ZTV6dd1520__7ee61520[4]), 4,4},
+ {&(_tg__ZTV5cc520__6dd1520__7ee61520[4]), 4,5},
+ {&(_tg__ZTV4bb20__6dd1520__7ee61520[3]), 3,4},
+ {&(_ZTV7ee61520[10]), 10,15},
+ {&(_ZTV7ee61520[14]), 14,15},
+ {&(_tg__ZTV5cc520__7ee61520[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc520__7ee61520[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee61520[];
+extern VTBL_ENTRY _ZTV7ee61520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61520[];
+static VTBL_ENTRY alt_thunk_names256[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee615203fooEv,_ZTv0_n12_N7ee615203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee615203fooEv,_ZThn20_N7ee615203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee615203barEv,_ZTv0_n16_N7ee615203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee615203barEv,_ZThn12_N7ee615203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61520 = { "ee61520", // class name
+ bases_ee61520, 4,
+ &(vtc_ee61520[0]), // expected_vtbl_contents
+ &(vtt_ee61520[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee61520),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61520),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61520),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names256,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee71520 : virtual dd1520 {
+ int e;
+ virtual void foo(); // _ZN7ee715203fooEv
+ virtual void bar(); // _ZN7ee715203barEv
+ ~ee71520(); // tgen
+ ee71520(); // tgen
+};
+//SIG(1 ee71520) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v1 Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee71520 ::foo(){vfunc_called(this, "_ZN7ee715203fooEv");}
+void ee71520 ::bar(){vfunc_called(this, "_ZN7ee715203barEv");}
+ee71520 ::~ee71520(){ note_dtor("ee71520", this);} // tgen
+ee71520 ::ee71520(){ note_ctor("ee71520", this);} // tgen
+
+static void Test_ee71520()
+{
+ extern Class_Descriptor cd_ee71520;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee71520, buf);
+ ee71520 *dp, &lv = *(dp=new (buf) ee71520());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee71520)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71520)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(56,28), "ee71520");
+ check_base_class_offset(lv, (bb20*)(cc520*), ABISELECT(48,24), "ee71520");
+ check_base_class_offset(lv, (cc520*)(dd1520*), ABISELECT(32,16), "ee71520");
+ check_base_class_offset(lv, (dd1520*), ABISELECT(16,8), "ee71520");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71520.e");
+ test_class_info(&lv, &cd_ee71520);
+ dp->~ee71520();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71520(Test_ee71520, "ee71520", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee71520C1Ev();
+extern void _ZN7ee71520D1Ev();
+Name_Map name_map_ee71520[] = {
+ NSPAIR(_ZN7ee71520C1Ev),
+ NSPAIR(_ZN7ee71520D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc520;
+extern VTBL_ENTRY _ZTI5cc520[];
+extern VTBL_ENTRY _ZTV5cc520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc520[];
+extern Class_Descriptor cd_dd1520;
+extern VTBL_ENTRY _ZTI6dd1520[];
+extern VTBL_ENTRY _ZTV6dd1520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1520[];
+static Base_Class bases_ee71520[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(56,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(48,24), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc520, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1520, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee71520[];
+extern void _ZN7ee715203fooEv();
+extern void _ZN7ee715203barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee715203barEv,_ZTv0_n16_N7ee715203barEv)();
+extern void ABISELECT(_ZThn32_N7ee715203barEv,_ZThn16_N7ee715203barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee715203fooEv,_ZTv0_n12_N7ee715203fooEv)();
+extern void ABISELECT(_ZThn48_N7ee715203fooEv,_ZThn24_N7ee715203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71520[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71520[0]),
+ (VTBL_ENTRY)&_ZN7ee715203fooEv,
+ (VTBL_ENTRY)&_ZN7ee715203barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71520[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee715203barEv,_ZTv0_n16_N7ee715203barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee71520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee715203fooEv,_ZTv0_n12_N7ee715203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee71520[];
+static VTBL_ENTRY _tg__ZTV6dd1520__7ee71520[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1520[0]),
+};
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc520__6dd1520__7ee71520[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__6dd1520__7ee71520[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc520__7ee71520[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc520__7ee71520[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee71520[] = {
+ {&(_ZTV7ee71520[5]), 5,20},
+ {&(_ZTV7ee71520[11]), 11,20},
+ {&(_ZTV7ee71520[15]), 15,20},
+ {&(_ZTV7ee71520[19]), 19,20},
+ {&(_tg__ZTV6dd1520__7ee71520[4]), 4,4},
+ {&(_tg__ZTV5cc520__6dd1520__7ee71520[4]), 4,5},
+ {&(_tg__ZTV4bb20__6dd1520__7ee71520[3]), 3,4},
+ {&(_tg__ZTV5cc520__7ee71520[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc520__7ee71520[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee71520[];
+extern VTBL_ENTRY _ZTV7ee71520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71520[];
+static VTBL_ENTRY alt_thunk_names257[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee715203fooEv,_ZTv0_n12_N7ee715203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee715203fooEv,_ZThn24_N7ee715203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee715203barEv,_ZTv0_n16_N7ee715203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee715203barEv,_ZThn16_N7ee715203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71520 = { "ee71520", // class name
+ bases_ee71520, 4,
+ &(vtc_ee71520[0]), // expected_vtbl_contents
+ &(vtt_ee71520[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee71520),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71520),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71520),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names257,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd2520 : cc520 {
+ int d;
+ virtual void foo(); // _ZN6dd25203fooEv
+ ~dd2520(); // tgen
+ dd2520(); // tgen
+};
+//SIG(-1 dd2520) C1{ BC2{ VBC3{ BC4{ Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void dd2520 ::foo(){vfunc_called(this, "_ZN6dd25203fooEv");}
+dd2520 ::~dd2520(){ note_dtor("dd2520", this);} // tgen
+dd2520 ::dd2520(){ note_ctor("dd2520", this);} // tgen
+
+static void Test_dd2520()
+{
+ extern Class_Descriptor cd_dd2520;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd2520, buf);
+ dd2520 *dp, &lv = *(dp=new (buf) dd2520());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd2520)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2520)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(24,16), "dd2520");
+ check_base_class_offset(lv, (bb20*)(cc520*), ABISELECT(16,12), "dd2520");
+ check_base_class_offset(lv, (cc520*), 0, "dd2520");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd2520.d");
+ test_class_info(&lv, &cd_dd2520);
+ dp->~dd2520();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2520(Test_dd2520, "dd2520", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd2520C1Ev();
+extern void _ZN6dd2520D1Ev();
+Name_Map name_map_dd2520[] = {
+ NSPAIR(_ZN6dd2520C1Ev),
+ NSPAIR(_ZN6dd2520D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc520;
+extern VTBL_ENTRY _ZTI5cc520[];
+extern VTBL_ENTRY _ZTV5cc520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc520[];
+static Base_Class bases_dd2520[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc520, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd2520[];
+extern void _ZN5cc5203barEv();
+extern void _ZN6dd25203fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd25203fooEv,_ZTv0_n12_N6dd25203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd25203fooEv,_ZThn12_N6dd25203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd2520[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+ (VTBL_ENTRY)&_ZN6dd25203fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25203fooEv,_ZTv0_n12_N6dd25203fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd2520[];
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc520__6dd2520[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc520__6dd2520[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_dd2520[] = {
+ {&(_ZTV6dd2520[3]), 3,9},
+ {&(_tg__ZTV5cc520__6dd2520[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc520__6dd2520[3]), 3,4},
+ {&(_ZTV6dd2520[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI6dd2520[];
+extern VTBL_ENTRY _ZTV6dd2520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2520[];
+static VTBL_ENTRY alt_thunk_names258[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25203fooEv,_ZTv0_n12_N6dd25203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd25203fooEv,_ZThn12_N6dd25203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd2520 = { "dd2520", // class name
+ bases_dd2520, 3,
+ &(vtc_dd2520[0]), // expected_vtbl_contents
+ &(vtt_dd2520[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd2520),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2520),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd2520),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names258,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee02520 : dd2520 {
+ int e;
+ ~ee02520(); // tgen
+ ee02520(); // tgen
+};
+//SIG(1 ee02520) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v1 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee02520 ::~ee02520(){ note_dtor("ee02520", this);} // tgen
+ee02520 ::ee02520(){ note_ctor("ee02520", this);} // tgen
+
+static void Test_ee02520()
+{
+ extern Class_Descriptor cd_ee02520;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee02520, buf);
+ ee02520 *dp, &lv = *(dp=new (buf) ee02520());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee02520)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02520)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(32,20), "ee02520");
+ check_base_class_offset(lv, (bb20*)(cc520*)(dd2520*), ABISELECT(24,16), "ee02520");
+ check_base_class_offset(lv, (cc520*)(dd2520*), 0, "ee02520");
+ check_base_class_offset(lv, (dd2520*), 0, "ee02520");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee02520.e");
+ test_class_info(&lv, &cd_ee02520);
+ dp->~ee02520();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02520(Test_ee02520, "ee02520", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee02520C1Ev();
+extern void _ZN7ee02520D1Ev();
+Name_Map name_map_ee02520[] = {
+ NSPAIR(_ZN7ee02520C1Ev),
+ NSPAIR(_ZN7ee02520D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc520;
+extern VTBL_ENTRY _ZTI5cc520[];
+extern VTBL_ENTRY _ZTV5cc520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc520[];
+extern Class_Descriptor cd_dd2520;
+extern VTBL_ENTRY _ZTI6dd2520[];
+extern VTBL_ENTRY _ZTV6dd2520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2520[];
+static Base_Class bases_ee02520[] = {
+ // 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_bb20, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc520, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2520, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee02520[];
+extern void _ZN5cc5203barEv();
+extern void _ZN6dd25203fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd25203fooEv,_ZTv0_n12_N6dd25203fooEv)();
+extern void ABISELECT(_ZThn24_N6dd25203fooEv,_ZThn16_N6dd25203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee02520[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+ (VTBL_ENTRY)&_ZN6dd25203fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee02520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25203fooEv,_ZTv0_n12_N6dd25203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee02520[];
+extern void _ZN5cc5203barEv();
+extern void _ZN6dd25203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2520__7ee02520[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+ (VTBL_ENTRY)&_ZN6dd25203fooEv,
+};
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc5206dd2520__7ee02520[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc5206dd2520__7ee02520[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd25203fooEv,_ZTv0_n12_N6dd25203fooEv)();
+extern void ABISELECT(_ZThn24_N6dd25203fooEv,_ZThn16_N6dd25203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd2520__7ee02520[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25203fooEv,_ZTv0_n12_N6dd25203fooEv),
+};
+static VTT_ENTRY vtt_ee02520[] = {
+ {&(_ZTV7ee02520[3]), 3,9},
+ {&(_tg__ZTV6dd2520__7ee02520[3]), 3,5},
+ {&(_tg__ZTV5cc5206dd2520__7ee02520[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc5206dd2520__7ee02520[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd2520__7ee02520[3]), 3,4},
+ {&(_ZTV7ee02520[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee02520[];
+extern VTBL_ENTRY _ZTV7ee02520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee02520[];
+static VTBL_ENTRY alt_thunk_names259[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25203fooEv,_ZTv0_n12_N6dd25203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd25203fooEv,_ZThn16_N6dd25203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd25203fooEv,_ZThn16_N6dd25203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee02520 = { "ee02520", // class name
+ bases_ee02520, 4,
+ &(vtc_ee02520[0]), // expected_vtbl_contents
+ &(vtt_ee02520[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee02520),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02520),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee02520),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names259,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee12520 : virtual dd2520 {
+ int e;
+ ~ee12520(); // tgen
+ ee12520(); // tgen
+};
+//SIG(1 ee12520) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v1 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee12520 ::~ee12520(){ note_dtor("ee12520", this);} // tgen
+ee12520 ::ee12520(){ note_ctor("ee12520", this);} // tgen
+
+static void Test_ee12520()
+{
+ extern Class_Descriptor cd_ee12520;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee12520, buf);
+ ee12520 *dp, &lv = *(dp=new (buf) ee12520());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee12520)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12520)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee12520");
+ check_base_class_offset(lv, (bb20*)(cc520*)(dd2520*), ABISELECT(32,20), "ee12520");
+ check_base_class_offset(lv, (cc520*)(dd2520*), ABISELECT(16,8), "ee12520");
+ check_base_class_offset(lv, (dd2520*), ABISELECT(16,8), "ee12520");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12520.e");
+ test_class_info(&lv, &cd_ee12520);
+ dp->~ee12520();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12520(Test_ee12520, "ee12520", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee12520C1Ev();
+extern void _ZN7ee12520D1Ev();
+Name_Map name_map_ee12520[] = {
+ NSPAIR(_ZN7ee12520C1Ev),
+ NSPAIR(_ZN7ee12520D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc520;
+extern VTBL_ENTRY _ZTI5cc520[];
+extern VTBL_ENTRY _ZTV5cc520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc520[];
+extern Class_Descriptor cd_dd2520;
+extern VTBL_ENTRY _ZTI6dd2520[];
+extern VTBL_ENTRY _ZTV6dd2520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2520[];
+static Base_Class bases_ee12520[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc520, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2520, 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 _ZTI7ee12520[];
+extern void _ZN5cc5203barEv();
+extern void _ZN6dd25203fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd25203fooEv,_ZTv0_n12_N6dd25203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd25203fooEv,_ZThn12_N6dd25203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee12520[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12520[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+ (VTBL_ENTRY)&_ZN6dd25203fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee12520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25203fooEv,_ZTv0_n12_N6dd25203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee12520[];
+extern void _ZN5cc5203barEv();
+extern void _ZN6dd25203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2520__7ee12520[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+ (VTBL_ENTRY)&_ZN6dd25203fooEv,
+};
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc5206dd2520__7ee12520[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc5206dd2520__7ee12520[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd25203fooEv,_ZTv0_n12_N6dd25203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd25203fooEv,_ZThn12_N6dd25203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd2520__7ee12520[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25203fooEv,_ZTv0_n12_N6dd25203fooEv),
+};
+static VTT_ENTRY vtt_ee12520[] = {
+ {&(_ZTV7ee12520[4]), 4,15},
+ {&(_ZTV7ee12520[9]), 9,15},
+ {&(_ZTV7ee12520[14]), 14,15},
+ {&(_tg__ZTV6dd2520__7ee12520[3]), 3,5},
+ {&(_tg__ZTV5cc5206dd2520__7ee12520[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc5206dd2520__7ee12520[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd2520__7ee12520[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee12520[];
+extern VTBL_ENTRY _ZTV7ee12520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12520[];
+static VTBL_ENTRY alt_thunk_names260[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25203fooEv,_ZTv0_n12_N6dd25203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd25203fooEv,_ZThn12_N6dd25203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd25203fooEv,_ZThn12_N6dd25203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee12520 = { "ee12520", // class name
+ bases_ee12520, 4,
+ &(vtc_ee12520[0]), // expected_vtbl_contents
+ &(vtt_ee12520[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee12520),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12520),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12520),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names260,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee22520 : dd2520 {
+ int e;
+ virtual void foo(); // _ZN7ee225203fooEv
+ ~ee22520(); // tgen
+ ee22520(); // tgen
+};
+//SIG(1 ee22520) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v1 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee22520 ::foo(){vfunc_called(this, "_ZN7ee225203fooEv");}
+ee22520 ::~ee22520(){ note_dtor("ee22520", this);} // tgen
+ee22520 ::ee22520(){ note_ctor("ee22520", this);} // tgen
+
+static void Test_ee22520()
+{
+ extern Class_Descriptor cd_ee22520;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee22520, buf);
+ ee22520 *dp, &lv = *(dp=new (buf) ee22520());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee22520)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22520)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(32,20), "ee22520");
+ check_base_class_offset(lv, (bb20*)(cc520*)(dd2520*), ABISELECT(24,16), "ee22520");
+ check_base_class_offset(lv, (cc520*)(dd2520*), 0, "ee22520");
+ check_base_class_offset(lv, (dd2520*), 0, "ee22520");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee22520.e");
+ test_class_info(&lv, &cd_ee22520);
+ dp->~ee22520();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22520(Test_ee22520, "ee22520", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee22520C1Ev();
+extern void _ZN7ee22520D1Ev();
+Name_Map name_map_ee22520[] = {
+ NSPAIR(_ZN7ee22520C1Ev),
+ NSPAIR(_ZN7ee22520D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc520;
+extern VTBL_ENTRY _ZTI5cc520[];
+extern VTBL_ENTRY _ZTV5cc520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc520[];
+extern Class_Descriptor cd_dd2520;
+extern VTBL_ENTRY _ZTI6dd2520[];
+extern VTBL_ENTRY _ZTV6dd2520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2520[];
+static Base_Class bases_ee22520[] = {
+ // 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_bb20, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc520, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2520, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee22520[];
+extern void _ZN5cc5203barEv();
+extern void _ZN7ee225203fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee225203fooEv,_ZTv0_n12_N7ee225203fooEv)();
+extern void ABISELECT(_ZThn24_N7ee225203fooEv,_ZThn16_N7ee225203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee22520[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+ (VTBL_ENTRY)&_ZN7ee225203fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee22520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee225203fooEv,_ZTv0_n12_N7ee225203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee22520[];
+extern void _ZN5cc5203barEv();
+extern void _ZN6dd25203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2520__7ee22520[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+ (VTBL_ENTRY)&_ZN6dd25203fooEv,
+};
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc5206dd2520__7ee22520[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc5206dd2520__7ee22520[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd25203fooEv,_ZTv0_n12_N6dd25203fooEv)();
+extern void ABISELECT(_ZThn24_N6dd25203fooEv,_ZThn16_N6dd25203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd2520__7ee22520[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25203fooEv,_ZTv0_n12_N6dd25203fooEv),
+};
+static VTT_ENTRY vtt_ee22520[] = {
+ {&(_ZTV7ee22520[3]), 3,9},
+ {&(_tg__ZTV6dd2520__7ee22520[3]), 3,5},
+ {&(_tg__ZTV5cc5206dd2520__7ee22520[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc5206dd2520__7ee22520[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd2520__7ee22520[3]), 3,4},
+ {&(_ZTV7ee22520[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee22520[];
+extern VTBL_ENTRY _ZTV7ee22520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee22520[];
+static VTBL_ENTRY alt_thunk_names261[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25203fooEv,_ZTv0_n12_N6dd25203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd25203fooEv,_ZThn16_N6dd25203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee225203fooEv,_ZTv0_n12_N7ee225203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee225203fooEv,_ZThn16_N7ee225203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee22520 = { "ee22520", // class name
+ bases_ee22520, 4,
+ &(vtc_ee22520[0]), // expected_vtbl_contents
+ &(vtt_ee22520[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee22520),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22520),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee22520),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names261,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee32520 : virtual dd2520 {
+ int e;
+ virtual void foo(); // _ZN7ee325203fooEv
+ ~ee32520(); // tgen
+ ee32520(); // tgen
+};
+//SIG(1 ee32520) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v1 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee32520 ::foo(){vfunc_called(this, "_ZN7ee325203fooEv");}
+ee32520 ::~ee32520(){ note_dtor("ee32520", this);} // tgen
+ee32520 ::ee32520(){ note_ctor("ee32520", this);} // tgen
+
+static void Test_ee32520()
+{
+ extern Class_Descriptor cd_ee32520;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee32520, buf);
+ ee32520 *dp, &lv = *(dp=new (buf) ee32520());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee32520)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32520)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee32520");
+ check_base_class_offset(lv, (bb20*)(cc520*)(dd2520*), ABISELECT(32,20), "ee32520");
+ check_base_class_offset(lv, (cc520*)(dd2520*), ABISELECT(16,8), "ee32520");
+ check_base_class_offset(lv, (dd2520*), ABISELECT(16,8), "ee32520");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32520.e");
+ test_class_info(&lv, &cd_ee32520);
+ dp->~ee32520();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32520(Test_ee32520, "ee32520", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee32520C1Ev();
+extern void _ZN7ee32520D1Ev();
+Name_Map name_map_ee32520[] = {
+ NSPAIR(_ZN7ee32520C1Ev),
+ NSPAIR(_ZN7ee32520D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc520;
+extern VTBL_ENTRY _ZTI5cc520[];
+extern VTBL_ENTRY _ZTV5cc520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc520[];
+extern Class_Descriptor cd_dd2520;
+extern VTBL_ENTRY _ZTI6dd2520[];
+extern VTBL_ENTRY _ZTV6dd2520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2520[];
+static Base_Class bases_ee32520[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc520, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2520, 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 _ZTI7ee32520[];
+extern void _ZN7ee325203fooEv();
+extern void _ZN5cc5203barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee325203fooEv,_ZTv0_n20_N7ee325203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee325203fooEv,_ZThn8_N7ee325203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee325203fooEv,_ZTv0_n12_N7ee325203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee325203fooEv,_ZThn20_N7ee325203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee32520[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32520[0]),
+ (VTBL_ENTRY)&_ZN7ee325203fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee325203fooEv,_ZTv0_n20_N7ee325203fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee32520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee325203fooEv,_ZTv0_n12_N7ee325203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee32520[];
+extern void _ZN5cc5203barEv();
+extern void _ZN6dd25203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2520__7ee32520[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+ (VTBL_ENTRY)&_ZN6dd25203fooEv,
+};
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc5206dd2520__7ee32520[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc5206dd2520__7ee32520[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd25203fooEv,_ZTv0_n12_N6dd25203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd25203fooEv,_ZThn12_N6dd25203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd2520__7ee32520[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25203fooEv,_ZTv0_n12_N6dd25203fooEv),
+};
+static VTT_ENTRY vtt_ee32520[] = {
+ {&(_ZTV7ee32520[4]), 4,16},
+ {&(_ZTV7ee32520[10]), 10,16},
+ {&(_ZTV7ee32520[15]), 15,16},
+ {&(_tg__ZTV6dd2520__7ee32520[3]), 3,5},
+ {&(_tg__ZTV5cc5206dd2520__7ee32520[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc5206dd2520__7ee32520[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd2520__7ee32520[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee32520[];
+extern VTBL_ENTRY _ZTV7ee32520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32520[];
+static VTBL_ENTRY alt_thunk_names262[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25203fooEv,_ZTv0_n12_N6dd25203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd25203fooEv,_ZThn12_N6dd25203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee325203fooEv,_ZTv0_n12_N7ee325203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee325203fooEv,_ZThn20_N7ee325203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee325203fooEv,_ZTv0_n20_N7ee325203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee325203fooEv,_ZThn8_N7ee325203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32520 = { "ee32520", // class name
+ bases_ee32520, 4,
+ &(vtc_ee32520[0]), // expected_vtbl_contents
+ &(vtt_ee32520[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee32520),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32520),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32520),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names262,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee42520 : dd2520 {
+ int e;
+ virtual void bar(); // _ZN7ee425203barEv
+ ~ee42520(); // tgen
+ ee42520(); // tgen
+};
+//SIG(1 ee42520) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v2 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee42520 ::bar(){vfunc_called(this, "_ZN7ee425203barEv");}
+ee42520 ::~ee42520(){ note_dtor("ee42520", this);} // tgen
+ee42520 ::ee42520(){ note_ctor("ee42520", this);} // tgen
+
+static void Test_ee42520()
+{
+ extern Class_Descriptor cd_ee42520;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee42520, buf);
+ ee42520 *dp, &lv = *(dp=new (buf) ee42520());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee42520)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42520)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(32,20), "ee42520");
+ check_base_class_offset(lv, (bb20*)(cc520*)(dd2520*), ABISELECT(24,16), "ee42520");
+ check_base_class_offset(lv, (cc520*)(dd2520*), 0, "ee42520");
+ check_base_class_offset(lv, (dd2520*), 0, "ee42520");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee42520.e");
+ test_class_info(&lv, &cd_ee42520);
+ dp->~ee42520();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42520(Test_ee42520, "ee42520", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee42520C1Ev();
+extern void _ZN7ee42520D1Ev();
+Name_Map name_map_ee42520[] = {
+ NSPAIR(_ZN7ee42520C1Ev),
+ NSPAIR(_ZN7ee42520D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc520;
+extern VTBL_ENTRY _ZTI5cc520[];
+extern VTBL_ENTRY _ZTV5cc520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc520[];
+extern Class_Descriptor cd_dd2520;
+extern VTBL_ENTRY _ZTI6dd2520[];
+extern VTBL_ENTRY _ZTV6dd2520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2520[];
+static Base_Class bases_ee42520[] = {
+ // 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_bb20, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc520, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2520, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee42520[];
+extern void _ZN7ee425203barEv();
+extern void _ZN6dd25203fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd25203fooEv,_ZTv0_n12_N6dd25203fooEv)();
+extern void ABISELECT(_ZThn24_N6dd25203fooEv,_ZThn16_N6dd25203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee42520[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42520[0]),
+ (VTBL_ENTRY)&_ZN7ee425203barEv,
+ (VTBL_ENTRY)&_ZN6dd25203fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee42520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25203fooEv,_ZTv0_n12_N6dd25203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee42520[];
+extern void _ZN5cc5203barEv();
+extern void _ZN6dd25203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2520__7ee42520[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+ (VTBL_ENTRY)&_ZN6dd25203fooEv,
+};
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc5206dd2520__7ee42520[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc5206dd2520__7ee42520[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd25203fooEv,_ZTv0_n12_N6dd25203fooEv)();
+extern void ABISELECT(_ZThn24_N6dd25203fooEv,_ZThn16_N6dd25203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd2520__7ee42520[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25203fooEv,_ZTv0_n12_N6dd25203fooEv),
+};
+static VTT_ENTRY vtt_ee42520[] = {
+ {&(_ZTV7ee42520[3]), 3,9},
+ {&(_tg__ZTV6dd2520__7ee42520[3]), 3,5},
+ {&(_tg__ZTV5cc5206dd2520__7ee42520[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc5206dd2520__7ee42520[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd2520__7ee42520[3]), 3,4},
+ {&(_ZTV7ee42520[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee42520[];
+extern VTBL_ENTRY _ZTV7ee42520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee42520[];
+static VTBL_ENTRY alt_thunk_names263[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25203fooEv,_ZTv0_n12_N6dd25203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd25203fooEv,_ZThn16_N6dd25203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd25203fooEv,_ZThn16_N6dd25203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee42520 = { "ee42520", // class name
+ bases_ee42520, 4,
+ &(vtc_ee42520[0]), // expected_vtbl_contents
+ &(vtt_ee42520[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee42520),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42520),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee42520),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names263,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee52520 : virtual dd2520 {
+ int e;
+ virtual void bar(); // _ZN7ee525203barEv
+ ~ee52520(); // tgen
+ ee52520(); // tgen
+};
+//SIG(1 ee52520) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v2 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee52520 ::bar(){vfunc_called(this, "_ZN7ee525203barEv");}
+ee52520 ::~ee52520(){ note_dtor("ee52520", this);} // tgen
+ee52520 ::ee52520(){ note_ctor("ee52520", this);} // tgen
+
+static void Test_ee52520()
+{
+ extern Class_Descriptor cd_ee52520;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee52520, buf);
+ ee52520 *dp, &lv = *(dp=new (buf) ee52520());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee52520)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52520)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee52520");
+ check_base_class_offset(lv, (bb20*)(cc520*)(dd2520*), ABISELECT(32,20), "ee52520");
+ check_base_class_offset(lv, (cc520*)(dd2520*), ABISELECT(16,8), "ee52520");
+ check_base_class_offset(lv, (dd2520*), ABISELECT(16,8), "ee52520");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52520.e");
+ test_class_info(&lv, &cd_ee52520);
+ dp->~ee52520();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52520(Test_ee52520, "ee52520", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee52520C1Ev();
+extern void _ZN7ee52520D1Ev();
+Name_Map name_map_ee52520[] = {
+ NSPAIR(_ZN7ee52520C1Ev),
+ NSPAIR(_ZN7ee52520D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc520;
+extern VTBL_ENTRY _ZTI5cc520[];
+extern VTBL_ENTRY _ZTV5cc520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc520[];
+extern Class_Descriptor cd_dd2520;
+extern VTBL_ENTRY _ZTI6dd2520[];
+extern VTBL_ENTRY _ZTV6dd2520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2520[];
+static Base_Class bases_ee52520[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc520, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2520, 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 _ZTI7ee52520[];
+extern void _ZN7ee525203barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee525203barEv,_ZTv0_n16_N7ee525203barEv)();
+extern void ABISELECT(_ZThn16_N7ee525203barEv,_ZThn8_N7ee525203barEv)() __attribute__((weak));
+extern void _ZN6dd25203fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd25203fooEv,_ZTv0_n12_N6dd25203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd25203fooEv,_ZThn12_N6dd25203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee52520[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52520[0]),
+ (VTBL_ENTRY)&_ZN7ee525203barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee525203barEv,_ZTv0_n16_N7ee525203barEv),
+ (VTBL_ENTRY)&_ZN6dd25203fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee52520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25203fooEv,_ZTv0_n12_N6dd25203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee52520[];
+extern void _ZN5cc5203barEv();
+extern void _ZN6dd25203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2520__7ee52520[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+ (VTBL_ENTRY)&_ZN6dd25203fooEv,
+};
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc5206dd2520__7ee52520[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc5206dd2520__7ee52520[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd25203fooEv,_ZTv0_n12_N6dd25203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd25203fooEv,_ZThn12_N6dd25203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd2520__7ee52520[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25203fooEv,_ZTv0_n12_N6dd25203fooEv),
+};
+static VTT_ENTRY vtt_ee52520[] = {
+ {&(_ZTV7ee52520[4]), 4,16},
+ {&(_ZTV7ee52520[10]), 10,16},
+ {&(_ZTV7ee52520[15]), 15,16},
+ {&(_tg__ZTV6dd2520__7ee52520[3]), 3,5},
+ {&(_tg__ZTV5cc5206dd2520__7ee52520[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc5206dd2520__7ee52520[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd2520__7ee52520[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee52520[];
+extern VTBL_ENTRY _ZTV7ee52520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52520[];
+static VTBL_ENTRY alt_thunk_names264[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25203fooEv,_ZTv0_n12_N6dd25203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd25203fooEv,_ZThn12_N6dd25203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd25203fooEv,_ZThn12_N6dd25203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee525203barEv,_ZTv0_n16_N7ee525203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee525203barEv,_ZThn8_N7ee525203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52520 = { "ee52520", // class name
+ bases_ee52520, 4,
+ &(vtc_ee52520[0]), // expected_vtbl_contents
+ &(vtt_ee52520[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee52520),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52520),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52520),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names264,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee62520 : dd2520 {
+ int e;
+ virtual void foo(); // _ZN7ee625203fooEv
+ virtual void bar(); // _ZN7ee625203barEv
+ ~ee62520(); // tgen
+ ee62520(); // tgen
+};
+//SIG(1 ee62520) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v1 Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62520 ::foo(){vfunc_called(this, "_ZN7ee625203fooEv");}
+void ee62520 ::bar(){vfunc_called(this, "_ZN7ee625203barEv");}
+ee62520 ::~ee62520(){ note_dtor("ee62520", this);} // tgen
+ee62520 ::ee62520(){ note_ctor("ee62520", this);} // tgen
+
+static void Test_ee62520()
+{
+ extern Class_Descriptor cd_ee62520;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee62520, buf);
+ ee62520 *dp, &lv = *(dp=new (buf) ee62520());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee62520)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62520)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(32,20), "ee62520");
+ check_base_class_offset(lv, (bb20*)(cc520*)(dd2520*), ABISELECT(24,16), "ee62520");
+ check_base_class_offset(lv, (cc520*)(dd2520*), 0, "ee62520");
+ check_base_class_offset(lv, (dd2520*), 0, "ee62520");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee62520.e");
+ test_class_info(&lv, &cd_ee62520);
+ dp->~ee62520();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62520(Test_ee62520, "ee62520", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee62520C1Ev();
+extern void _ZN7ee62520D1Ev();
+Name_Map name_map_ee62520[] = {
+ NSPAIR(_ZN7ee62520C1Ev),
+ NSPAIR(_ZN7ee62520D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc520;
+extern VTBL_ENTRY _ZTI5cc520[];
+extern VTBL_ENTRY _ZTV5cc520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc520[];
+extern Class_Descriptor cd_dd2520;
+extern VTBL_ENTRY _ZTI6dd2520[];
+extern VTBL_ENTRY _ZTV6dd2520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2520[];
+static Base_Class bases_ee62520[] = {
+ // 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_bb20, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc520, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2520, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee62520[];
+extern void _ZN7ee625203barEv();
+extern void _ZN7ee625203fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee625203fooEv,_ZTv0_n12_N7ee625203fooEv)();
+extern void ABISELECT(_ZThn24_N7ee625203fooEv,_ZThn16_N7ee625203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee62520[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62520[0]),
+ (VTBL_ENTRY)&_ZN7ee625203barEv,
+ (VTBL_ENTRY)&_ZN7ee625203fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee62520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee625203fooEv,_ZTv0_n12_N7ee625203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee62520[];
+extern void _ZN5cc5203barEv();
+extern void _ZN6dd25203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2520__7ee62520[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+ (VTBL_ENTRY)&_ZN6dd25203fooEv,
+};
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc5206dd2520__7ee62520[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc5206dd2520__7ee62520[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd25203fooEv,_ZTv0_n12_N6dd25203fooEv)();
+extern void ABISELECT(_ZThn24_N6dd25203fooEv,_ZThn16_N6dd25203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd2520__7ee62520[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25203fooEv,_ZTv0_n12_N6dd25203fooEv),
+};
+static VTT_ENTRY vtt_ee62520[] = {
+ {&(_ZTV7ee62520[3]), 3,9},
+ {&(_tg__ZTV6dd2520__7ee62520[3]), 3,5},
+ {&(_tg__ZTV5cc5206dd2520__7ee62520[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc5206dd2520__7ee62520[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd2520__7ee62520[3]), 3,4},
+ {&(_ZTV7ee62520[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee62520[];
+extern VTBL_ENTRY _ZTV7ee62520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee62520[];
+static VTBL_ENTRY alt_thunk_names265[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25203fooEv,_ZTv0_n12_N6dd25203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd25203fooEv,_ZThn16_N6dd25203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee625203fooEv,_ZTv0_n12_N7ee625203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee625203fooEv,_ZThn16_N7ee625203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee62520 = { "ee62520", // class name
+ bases_ee62520, 4,
+ &(vtc_ee62520[0]), // expected_vtbl_contents
+ &(vtt_ee62520[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee62520),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62520),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee62520),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names265,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee72520 : virtual dd2520 {
+ int e;
+ virtual void foo(); // _ZN7ee725203fooEv
+ virtual void bar(); // _ZN7ee725203barEv
+ ~ee72520(); // tgen
+ ee72520(); // tgen
+};
+//SIG(1 ee72520) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v1 Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72520 ::foo(){vfunc_called(this, "_ZN7ee725203fooEv");}
+void ee72520 ::bar(){vfunc_called(this, "_ZN7ee725203barEv");}
+ee72520 ::~ee72520(){ note_dtor("ee72520", this);} // tgen
+ee72520 ::ee72520(){ note_ctor("ee72520", this);} // tgen
+
+static void Test_ee72520()
+{
+ extern Class_Descriptor cd_ee72520;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee72520, buf);
+ ee72520 *dp, &lv = *(dp=new (buf) ee72520());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee72520)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72520)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee72520");
+ check_base_class_offset(lv, (bb20*)(cc520*)(dd2520*), ABISELECT(32,20), "ee72520");
+ check_base_class_offset(lv, (cc520*)(dd2520*), ABISELECT(16,8), "ee72520");
+ check_base_class_offset(lv, (dd2520*), ABISELECT(16,8), "ee72520");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72520.e");
+ test_class_info(&lv, &cd_ee72520);
+ dp->~ee72520();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72520(Test_ee72520, "ee72520", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee72520C1Ev();
+extern void _ZN7ee72520D1Ev();
+Name_Map name_map_ee72520[] = {
+ NSPAIR(_ZN7ee72520C1Ev),
+ NSPAIR(_ZN7ee72520D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc520;
+extern VTBL_ENTRY _ZTI5cc520[];
+extern VTBL_ENTRY _ZTV5cc520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc520[];
+extern Class_Descriptor cd_dd2520;
+extern VTBL_ENTRY _ZTI6dd2520[];
+extern VTBL_ENTRY _ZTV6dd2520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2520[];
+static Base_Class bases_ee72520[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc520, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2520, ABISELECT(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 _ZTI7ee72520[];
+extern void _ZN7ee725203fooEv();
+extern void _ZN7ee725203barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee725203barEv,_ZTv0_n16_N7ee725203barEv)();
+extern void ABISELECT(_ZThn16_N7ee725203barEv,_ZThn8_N7ee725203barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee725203fooEv,_ZTv0_n20_N7ee725203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee725203fooEv,_ZThn8_N7ee725203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee725203fooEv,_ZTv0_n12_N7ee725203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee725203fooEv,_ZThn20_N7ee725203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72520[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72520[0]),
+ (VTBL_ENTRY)&_ZN7ee725203fooEv,
+ (VTBL_ENTRY)&_ZN7ee725203barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee725203barEv,_ZTv0_n16_N7ee725203barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee725203fooEv,_ZTv0_n20_N7ee725203fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee72520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee725203fooEv,_ZTv0_n12_N7ee725203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee72520[];
+extern void _ZN5cc5203barEv();
+extern void _ZN6dd25203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2520__7ee72520[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+ (VTBL_ENTRY)&_ZN6dd25203fooEv,
+};
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc5206dd2520__7ee72520[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc5206dd2520__7ee72520[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd25203fooEv,_ZTv0_n12_N6dd25203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd25203fooEv,_ZThn12_N6dd25203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd2520__7ee72520[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25203fooEv,_ZTv0_n12_N6dd25203fooEv),
+};
+static VTT_ENTRY vtt_ee72520[] = {
+ {&(_ZTV7ee72520[4]), 4,17},
+ {&(_ZTV7ee72520[11]), 11,17},
+ {&(_ZTV7ee72520[16]), 16,17},
+ {&(_tg__ZTV6dd2520__7ee72520[3]), 3,5},
+ {&(_tg__ZTV5cc5206dd2520__7ee72520[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc5206dd2520__7ee72520[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd2520__7ee72520[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee72520[];
+extern VTBL_ENTRY _ZTV7ee72520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72520[];
+static VTBL_ENTRY alt_thunk_names266[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25203fooEv,_ZTv0_n12_N6dd25203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd25203fooEv,_ZThn12_N6dd25203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee725203fooEv,_ZTv0_n12_N7ee725203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee725203fooEv,_ZThn20_N7ee725203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee725203fooEv,_ZTv0_n20_N7ee725203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee725203fooEv,_ZThn8_N7ee725203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee725203barEv,_ZTv0_n16_N7ee725203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee725203barEv,_ZThn8_N7ee725203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72520 = { "ee72520", // class name
+ bases_ee72520, 4,
+ &(vtc_ee72520[0]), // expected_vtbl_contents
+ &(vtt_ee72520[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee72520),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72520),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72520),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names266,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd3520 : virtual cc520 {
+ int d;
+ virtual void foo(); // _ZN6dd35203fooEv
+ ~dd3520(); // tgen
+ dd3520(); // tgen
+};
+//SIG(-1 dd3520) C1{ VBC2{ VBC3{ BC4{ Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void dd3520 ::foo(){vfunc_called(this, "_ZN6dd35203fooEv");}
+dd3520 ::~dd3520(){ note_dtor("dd3520", this);} // tgen
+dd3520 ::dd3520(){ note_ctor("dd3520", this);} // tgen
+
+static void Test_dd3520()
+{
+ extern Class_Descriptor cd_dd3520;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd3520, buf);
+ dd3520 *dp, &lv = *(dp=new (buf) dd3520());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd3520)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3520)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,20), "dd3520");
+ check_base_class_offset(lv, (bb20*)(cc520*), ABISELECT(32,16), "dd3520");
+ check_base_class_offset(lv, (cc520*), ABISELECT(16,8), "dd3520");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3520.d");
+ test_class_info(&lv, &cd_dd3520);
+ dp->~dd3520();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3520(Test_dd3520, "dd3520", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd3520C1Ev();
+extern void _ZN6dd3520D1Ev();
+Name_Map name_map_dd3520[] = {
+ NSPAIR(_ZN6dd3520C1Ev),
+ NSPAIR(_ZN6dd3520D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc520;
+extern VTBL_ENTRY _ZTI5cc520[];
+extern VTBL_ENTRY _ZTV5cc520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc520[];
+static Base_Class bases_dd3520[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc520, 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 _ZTI6dd3520[];
+extern void _ZN6dd35203fooEv();
+extern void _ZN5cc5203barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd35203fooEv,_ZTv0_n12_N6dd35203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35203fooEv,_ZThn16_N6dd35203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd3520[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3520[0]),
+ (VTBL_ENTRY)&_ZN6dd35203fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35203fooEv,_ZTv0_n12_N6dd35203fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd3520[];
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc520__6dd3520[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc520__6dd3520[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_dd3520[] = {
+ {&(_ZTV6dd3520[4]), 4,14},
+ {&(_ZTV6dd3520[9]), 9,14},
+ {&(_ZTV6dd3520[13]), 13,14},
+ {&(_tg__ZTV5cc520__6dd3520[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc520__6dd3520[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd3520[];
+extern VTBL_ENTRY _ZTV6dd3520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3520[];
+static VTBL_ENTRY alt_thunk_names267[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35203fooEv,_ZTv0_n12_N6dd35203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35203fooEv,_ZThn16_N6dd35203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3520 = { "dd3520", // class name
+ bases_dd3520, 3,
+ &(vtc_dd3520[0]), // expected_vtbl_contents
+ &(vtt_dd3520[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd3520),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3520),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3520),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names267,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03520 : dd3520 {
+ int e;
+ ~ee03520(); // tgen
+ ee03520(); // tgen
+};
+//SIG(1 ee03520) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v1 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee03520 ::~ee03520(){ note_dtor("ee03520", this);} // tgen
+ee03520 ::ee03520(){ note_ctor("ee03520", this);} // tgen
+
+static void Test_ee03520()
+{
+ extern Class_Descriptor cd_ee03520;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee03520, buf);
+ ee03520 *dp, &lv = *(dp=new (buf) ee03520());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee03520)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03520)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee03520");
+ check_base_class_offset(lv, (bb20*)(cc520*), ABISELECT(32,20), "ee03520");
+ check_base_class_offset(lv, (cc520*)(dd3520*), ABISELECT(16,12), "ee03520");
+ check_base_class_offset(lv, (dd3520*), 0, "ee03520");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03520.e");
+ test_class_info(&lv, &cd_ee03520);
+ dp->~ee03520();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03520(Test_ee03520, "ee03520", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee03520C1Ev();
+extern void _ZN7ee03520D1Ev();
+Name_Map name_map_ee03520[] = {
+ NSPAIR(_ZN7ee03520C1Ev),
+ NSPAIR(_ZN7ee03520D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc520;
+extern VTBL_ENTRY _ZTI5cc520[];
+extern VTBL_ENTRY _ZTV5cc520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc520[];
+extern Class_Descriptor cd_dd3520;
+extern VTBL_ENTRY _ZTI6dd3520[];
+extern VTBL_ENTRY _ZTV6dd3520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3520[];
+static Base_Class bases_ee03520[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc520, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3520, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03520[];
+extern void _ZN6dd35203fooEv();
+extern void _ZN5cc5203barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd35203fooEv,_ZTv0_n12_N6dd35203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35203fooEv,_ZThn20_N6dd35203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee03520[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03520[0]),
+ (VTBL_ENTRY)&_ZN6dd35203fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee03520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35203fooEv,_ZTv0_n12_N6dd35203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee03520[];
+extern void _ZN6dd35203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3520__7ee03520[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3520[0]),
+ (VTBL_ENTRY)&_ZN6dd35203fooEv,
+};
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc520__6dd3520__7ee03520[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd35203fooEv,_ZTv0_n12_N6dd35203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35203fooEv,_ZThn20_N6dd35203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd3520__7ee03520[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35203fooEv,_ZTv0_n12_N6dd35203fooEv),
+};
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc520__7ee03520[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc520__7ee03520[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee03520[] = {
+ {&(_ZTV7ee03520[4]), 4,14},
+ {&(_tg__ZTV6dd3520__7ee03520[4]), 4,5},
+ {&(_tg__ZTV5cc520__6dd3520__7ee03520[4]), 4,5},
+ {&(_tg__ZTV4bb20__6dd3520__7ee03520[3]), 3,4},
+ {&(_ZTV7ee03520[9]), 9,14},
+ {&(_ZTV7ee03520[13]), 13,14},
+ {&(_tg__ZTV5cc520__7ee03520[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc520__7ee03520[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee03520[];
+extern VTBL_ENTRY _ZTV7ee03520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03520[];
+static VTBL_ENTRY alt_thunk_names268[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35203fooEv,_ZTv0_n12_N6dd35203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35203fooEv,_ZThn20_N6dd35203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35203fooEv,_ZThn20_N6dd35203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03520 = { "ee03520", // class name
+ bases_ee03520, 4,
+ &(vtc_ee03520[0]), // expected_vtbl_contents
+ &(vtt_ee03520[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee03520),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03520),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03520),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names268,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee13520 : virtual dd3520 {
+ int e;
+ ~ee13520(); // tgen
+ ee13520(); // tgen
+};
+//SIG(1 ee13520) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v1 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee13520 ::~ee13520(){ note_dtor("ee13520", this);} // tgen
+ee13520 ::ee13520(){ note_ctor("ee13520", this);} // tgen
+
+static void Test_ee13520()
+{
+ extern Class_Descriptor cd_ee13520;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee13520, buf);
+ ee13520 *dp, &lv = *(dp=new (buf) ee13520());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee13520)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13520)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(56,28), "ee13520");
+ check_base_class_offset(lv, (bb20*)(cc520*), ABISELECT(48,24), "ee13520");
+ check_base_class_offset(lv, (cc520*)(dd3520*), ABISELECT(32,16), "ee13520");
+ check_base_class_offset(lv, (dd3520*), ABISELECT(16,8), "ee13520");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13520.e");
+ test_class_info(&lv, &cd_ee13520);
+ dp->~ee13520();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13520(Test_ee13520, "ee13520", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee13520C1Ev();
+extern void _ZN7ee13520D1Ev();
+Name_Map name_map_ee13520[] = {
+ NSPAIR(_ZN7ee13520C1Ev),
+ NSPAIR(_ZN7ee13520D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc520;
+extern VTBL_ENTRY _ZTI5cc520[];
+extern VTBL_ENTRY _ZTV5cc520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc520[];
+extern Class_Descriptor cd_dd3520;
+extern VTBL_ENTRY _ZTI6dd3520[];
+extern VTBL_ENTRY _ZTV6dd3520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3520[];
+static Base_Class bases_ee13520[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(56,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(48,24), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc520, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3520, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee13520[];
+extern void _ZN6dd35203fooEv();
+extern void _ZN5cc5203barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd35203fooEv,_ZTv0_n12_N6dd35203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35203fooEv,_ZThn16_N6dd35203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee13520[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13520[0]),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13520[0]),
+ (VTBL_ENTRY)&_ZN6dd35203fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee13520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35203fooEv,_ZTv0_n12_N6dd35203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee13520[];
+extern void _ZN6dd35203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3520__7ee13520[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3520[0]),
+ (VTBL_ENTRY)&_ZN6dd35203fooEv,
+};
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc520__6dd3520__7ee13520[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd35203fooEv,_ZTv0_n12_N6dd35203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35203fooEv,_ZThn16_N6dd35203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd3520__7ee13520[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35203fooEv,_ZTv0_n12_N6dd35203fooEv),
+};
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc520__7ee13520[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc520__7ee13520[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee13520[] = {
+ {&(_ZTV7ee13520[5]), 5,20},
+ {&(_ZTV7ee13520[10]), 10,20},
+ {&(_ZTV7ee13520[15]), 15,20},
+ {&(_ZTV7ee13520[19]), 19,20},
+ {&(_tg__ZTV6dd3520__7ee13520[4]), 4,5},
+ {&(_tg__ZTV5cc520__6dd3520__7ee13520[4]), 4,5},
+ {&(_tg__ZTV4bb20__6dd3520__7ee13520[3]), 3,4},
+ {&(_tg__ZTV5cc520__7ee13520[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc520__7ee13520[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee13520[];
+extern VTBL_ENTRY _ZTV7ee13520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13520[];
+static VTBL_ENTRY alt_thunk_names269[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35203fooEv,_ZTv0_n12_N6dd35203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35203fooEv,_ZThn16_N6dd35203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35203fooEv,_ZThn16_N6dd35203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13520 = { "ee13520", // class name
+ bases_ee13520, 4,
+ &(vtc_ee13520[0]), // expected_vtbl_contents
+ &(vtt_ee13520[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee13520),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13520),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13520),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names269,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee23520 : dd3520 {
+ int e;
+ virtual void foo(); // _ZN7ee235203fooEv
+ ~ee23520(); // tgen
+ ee23520(); // tgen
+};
+//SIG(1 ee23520) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v1 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee23520 ::foo(){vfunc_called(this, "_ZN7ee235203fooEv");}
+ee23520 ::~ee23520(){ note_dtor("ee23520", this);} // tgen
+ee23520 ::ee23520(){ note_ctor("ee23520", this);} // tgen
+
+static void Test_ee23520()
+{
+ extern Class_Descriptor cd_ee23520;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee23520, buf);
+ ee23520 *dp, &lv = *(dp=new (buf) ee23520());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee23520)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23520)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee23520");
+ check_base_class_offset(lv, (bb20*)(cc520*), ABISELECT(32,20), "ee23520");
+ check_base_class_offset(lv, (cc520*)(dd3520*), ABISELECT(16,12), "ee23520");
+ check_base_class_offset(lv, (dd3520*), 0, "ee23520");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23520.e");
+ test_class_info(&lv, &cd_ee23520);
+ dp->~ee23520();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23520(Test_ee23520, "ee23520", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee23520C1Ev();
+extern void _ZN7ee23520D1Ev();
+Name_Map name_map_ee23520[] = {
+ NSPAIR(_ZN7ee23520C1Ev),
+ NSPAIR(_ZN7ee23520D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc520;
+extern VTBL_ENTRY _ZTI5cc520[];
+extern VTBL_ENTRY _ZTV5cc520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc520[];
+extern Class_Descriptor cd_dd3520;
+extern VTBL_ENTRY _ZTI6dd3520[];
+extern VTBL_ENTRY _ZTV6dd3520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3520[];
+static Base_Class bases_ee23520[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc520, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3520, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23520[];
+extern void _ZN7ee235203fooEv();
+extern void _ZN5cc5203barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee235203fooEv,_ZTv0_n12_N7ee235203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee235203fooEv,_ZThn20_N7ee235203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee23520[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23520[0]),
+ (VTBL_ENTRY)&_ZN7ee235203fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee23520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee235203fooEv,_ZTv0_n12_N7ee235203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee23520[];
+extern void _ZN6dd35203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3520__7ee23520[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3520[0]),
+ (VTBL_ENTRY)&_ZN6dd35203fooEv,
+};
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc520__6dd3520__7ee23520[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd35203fooEv,_ZTv0_n12_N6dd35203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35203fooEv,_ZThn20_N6dd35203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd3520__7ee23520[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35203fooEv,_ZTv0_n12_N6dd35203fooEv),
+};
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc520__7ee23520[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc520__7ee23520[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee23520[] = {
+ {&(_ZTV7ee23520[4]), 4,14},
+ {&(_tg__ZTV6dd3520__7ee23520[4]), 4,5},
+ {&(_tg__ZTV5cc520__6dd3520__7ee23520[4]), 4,5},
+ {&(_tg__ZTV4bb20__6dd3520__7ee23520[3]), 3,4},
+ {&(_ZTV7ee23520[9]), 9,14},
+ {&(_ZTV7ee23520[13]), 13,14},
+ {&(_tg__ZTV5cc520__7ee23520[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc520__7ee23520[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee23520[];
+extern VTBL_ENTRY _ZTV7ee23520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23520[];
+static VTBL_ENTRY alt_thunk_names270[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35203fooEv,_ZTv0_n12_N6dd35203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35203fooEv,_ZThn20_N6dd35203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee235203fooEv,_ZTv0_n12_N7ee235203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee235203fooEv,_ZThn20_N7ee235203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23520 = { "ee23520", // class name
+ bases_ee23520, 4,
+ &(vtc_ee23520[0]), // expected_vtbl_contents
+ &(vtt_ee23520[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee23520),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23520),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23520),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names270,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee33520 : virtual dd3520 {
+ int e;
+ virtual void foo(); // _ZN7ee335203fooEv
+ ~ee33520(); // tgen
+ ee33520(); // tgen
+};
+//SIG(1 ee33520) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v1 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee33520 ::foo(){vfunc_called(this, "_ZN7ee335203fooEv");}
+ee33520 ::~ee33520(){ note_dtor("ee33520", this);} // tgen
+ee33520 ::ee33520(){ note_ctor("ee33520", this);} // tgen
+
+static void Test_ee33520()
+{
+ extern Class_Descriptor cd_ee33520;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee33520, buf);
+ ee33520 *dp, &lv = *(dp=new (buf) ee33520());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee33520)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33520)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(56,28), "ee33520");
+ check_base_class_offset(lv, (bb20*)(cc520*), ABISELECT(48,24), "ee33520");
+ check_base_class_offset(lv, (cc520*)(dd3520*), ABISELECT(32,16), "ee33520");
+ check_base_class_offset(lv, (dd3520*), ABISELECT(16,8), "ee33520");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33520.e");
+ test_class_info(&lv, &cd_ee33520);
+ dp->~ee33520();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33520(Test_ee33520, "ee33520", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee33520C1Ev();
+extern void _ZN7ee33520D1Ev();
+Name_Map name_map_ee33520[] = {
+ NSPAIR(_ZN7ee33520C1Ev),
+ NSPAIR(_ZN7ee33520D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc520;
+extern VTBL_ENTRY _ZTI5cc520[];
+extern VTBL_ENTRY _ZTV5cc520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc520[];
+extern Class_Descriptor cd_dd3520;
+extern VTBL_ENTRY _ZTI6dd3520[];
+extern VTBL_ENTRY _ZTV6dd3520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3520[];
+static Base_Class bases_ee33520[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(56,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc520, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3520, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee33520[];
+extern void _ZN7ee335203fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee335203fooEv,_ZTv0_n20_N7ee335203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee335203fooEv,_ZThn8_N7ee335203fooEv)() __attribute__((weak));
+extern void _ZN5cc5203barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee335203fooEv,_ZTv0_n12_N7ee335203fooEv)();
+extern void ABISELECT(_ZThn48_N7ee335203fooEv,_ZThn24_N7ee335203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee33520[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33520[0]),
+ (VTBL_ENTRY)&_ZN7ee335203fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee335203fooEv,_ZTv0_n20_N7ee335203fooEv),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee33520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee335203fooEv,_ZTv0_n12_N7ee335203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee33520[];
+extern void _ZN6dd35203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3520__7ee33520[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3520[0]),
+ (VTBL_ENTRY)&_ZN6dd35203fooEv,
+};
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc520__6dd3520__7ee33520[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd35203fooEv,_ZTv0_n12_N6dd35203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35203fooEv,_ZThn16_N6dd35203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd3520__7ee33520[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35203fooEv,_ZTv0_n12_N6dd35203fooEv),
+};
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc520__7ee33520[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc520__7ee33520[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee33520[] = {
+ {&(_ZTV7ee33520[5]), 5,21},
+ {&(_ZTV7ee33520[11]), 11,21},
+ {&(_ZTV7ee33520[16]), 16,21},
+ {&(_ZTV7ee33520[20]), 20,21},
+ {&(_tg__ZTV6dd3520__7ee33520[4]), 4,5},
+ {&(_tg__ZTV5cc520__6dd3520__7ee33520[4]), 4,5},
+ {&(_tg__ZTV4bb20__6dd3520__7ee33520[3]), 3,4},
+ {&(_tg__ZTV5cc520__7ee33520[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc520__7ee33520[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee33520[];
+extern VTBL_ENTRY _ZTV7ee33520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33520[];
+static VTBL_ENTRY alt_thunk_names271[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35203fooEv,_ZTv0_n12_N6dd35203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35203fooEv,_ZThn16_N6dd35203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee335203fooEv,_ZTv0_n12_N7ee335203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee335203fooEv,_ZThn24_N7ee335203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee335203fooEv,_ZTv0_n20_N7ee335203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee335203fooEv,_ZThn8_N7ee335203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33520 = { "ee33520", // class name
+ bases_ee33520, 4,
+ &(vtc_ee33520[0]), // expected_vtbl_contents
+ &(vtt_ee33520[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee33520),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33520),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33520),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names271,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee43520 : dd3520 {
+ int e;
+ virtual void bar(); // _ZN7ee435203barEv
+ ~ee43520(); // tgen
+ ee43520(); // tgen
+};
+//SIG(1 ee43520) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v2 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee43520 ::bar(){vfunc_called(this, "_ZN7ee435203barEv");}
+ee43520 ::~ee43520(){ note_dtor("ee43520", this);} // tgen
+ee43520 ::ee43520(){ note_ctor("ee43520", this);} // tgen
+
+static void Test_ee43520()
+{
+ extern Class_Descriptor cd_ee43520;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee43520, buf);
+ ee43520 *dp, &lv = *(dp=new (buf) ee43520());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee43520)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43520)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee43520");
+ check_base_class_offset(lv, (bb20*)(cc520*), ABISELECT(32,20), "ee43520");
+ check_base_class_offset(lv, (cc520*)(dd3520*), ABISELECT(16,12), "ee43520");
+ check_base_class_offset(lv, (dd3520*), 0, "ee43520");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43520.e");
+ test_class_info(&lv, &cd_ee43520);
+ dp->~ee43520();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43520(Test_ee43520, "ee43520", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee43520C1Ev();
+extern void _ZN7ee43520D1Ev();
+Name_Map name_map_ee43520[] = {
+ NSPAIR(_ZN7ee43520C1Ev),
+ NSPAIR(_ZN7ee43520D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc520;
+extern VTBL_ENTRY _ZTI5cc520[];
+extern VTBL_ENTRY _ZTV5cc520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc520[];
+extern Class_Descriptor cd_dd3520;
+extern VTBL_ENTRY _ZTI6dd3520[];
+extern VTBL_ENTRY _ZTV6dd3520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3520[];
+static Base_Class bases_ee43520[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc520, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3520, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43520[];
+extern void _ZN6dd35203fooEv();
+extern void _ZN7ee435203barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee435203barEv,_ZTv0_n16_N7ee435203barEv)();
+extern void ABISELECT(_ZThn16_N7ee435203barEv,_ZThn12_N7ee435203barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd35203fooEv,_ZTv0_n12_N6dd35203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35203fooEv,_ZThn20_N6dd35203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43520[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43520[0]),
+ (VTBL_ENTRY)&_ZN6dd35203fooEv,
+ (VTBL_ENTRY)&_ZN7ee435203barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee435203barEv,_ZTv0_n16_N7ee435203barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee43520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35203fooEv,_ZTv0_n12_N6dd35203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee43520[];
+extern void _ZN6dd35203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3520__7ee43520[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3520[0]),
+ (VTBL_ENTRY)&_ZN6dd35203fooEv,
+};
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc520__6dd3520__7ee43520[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd35203fooEv,_ZTv0_n12_N6dd35203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35203fooEv,_ZThn20_N6dd35203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd3520__7ee43520[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35203fooEv,_ZTv0_n12_N6dd35203fooEv),
+};
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc520__7ee43520[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc520__7ee43520[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee43520[] = {
+ {&(_ZTV7ee43520[4]), 4,15},
+ {&(_tg__ZTV6dd3520__7ee43520[4]), 4,5},
+ {&(_tg__ZTV5cc520__6dd3520__7ee43520[4]), 4,5},
+ {&(_tg__ZTV4bb20__6dd3520__7ee43520[3]), 3,4},
+ {&(_ZTV7ee43520[10]), 10,15},
+ {&(_ZTV7ee43520[14]), 14,15},
+ {&(_tg__ZTV5cc520__7ee43520[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc520__7ee43520[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee43520[];
+extern VTBL_ENTRY _ZTV7ee43520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43520[];
+static VTBL_ENTRY alt_thunk_names272[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35203fooEv,_ZTv0_n12_N6dd35203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35203fooEv,_ZThn20_N6dd35203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35203fooEv,_ZThn20_N6dd35203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee435203barEv,_ZTv0_n16_N7ee435203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee435203barEv,_ZThn12_N7ee435203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43520 = { "ee43520", // class name
+ bases_ee43520, 4,
+ &(vtc_ee43520[0]), // expected_vtbl_contents
+ &(vtt_ee43520[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee43520),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43520),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43520),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names272,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee53520 : virtual dd3520 {
+ int e;
+ virtual void bar(); // _ZN7ee535203barEv
+ ~ee53520(); // tgen
+ ee53520(); // tgen
+};
+//SIG(1 ee53520) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v2 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee53520 ::bar(){vfunc_called(this, "_ZN7ee535203barEv");}
+ee53520 ::~ee53520(){ note_dtor("ee53520", this);} // tgen
+ee53520 ::ee53520(){ note_ctor("ee53520", this);} // tgen
+
+static void Test_ee53520()
+{
+ extern Class_Descriptor cd_ee53520;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee53520, buf);
+ ee53520 *dp, &lv = *(dp=new (buf) ee53520());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee53520)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53520)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(56,28), "ee53520");
+ check_base_class_offset(lv, (bb20*)(cc520*), ABISELECT(48,24), "ee53520");
+ check_base_class_offset(lv, (cc520*)(dd3520*), ABISELECT(32,16), "ee53520");
+ check_base_class_offset(lv, (dd3520*), ABISELECT(16,8), "ee53520");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53520.e");
+ test_class_info(&lv, &cd_ee53520);
+ dp->~ee53520();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53520(Test_ee53520, "ee53520", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee53520C1Ev();
+extern void _ZN7ee53520D1Ev();
+Name_Map name_map_ee53520[] = {
+ NSPAIR(_ZN7ee53520C1Ev),
+ NSPAIR(_ZN7ee53520D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc520;
+extern VTBL_ENTRY _ZTI5cc520[];
+extern VTBL_ENTRY _ZTV5cc520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc520[];
+extern Class_Descriptor cd_dd3520;
+extern VTBL_ENTRY _ZTI6dd3520[];
+extern VTBL_ENTRY _ZTV6dd3520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3520[];
+static Base_Class bases_ee53520[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(56,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc520, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3520, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee53520[];
+extern void _ZN7ee535203barEv();
+extern void _ZN6dd35203fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee535203barEv,_ZTv0_n16_N7ee535203barEv)();
+extern void ABISELECT(_ZThn32_N7ee535203barEv,_ZThn16_N7ee535203barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd35203fooEv,_ZTv0_n12_N6dd35203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35203fooEv,_ZThn16_N6dd35203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53520[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53520[0]),
+ (VTBL_ENTRY)&_ZN7ee535203barEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53520[0]),
+ (VTBL_ENTRY)&_ZN6dd35203fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee535203barEv,_ZTv0_n16_N7ee535203barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee53520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35203fooEv,_ZTv0_n12_N6dd35203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee53520[];
+extern void _ZN6dd35203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3520__7ee53520[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3520[0]),
+ (VTBL_ENTRY)&_ZN6dd35203fooEv,
+};
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc520__6dd3520__7ee53520[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd35203fooEv,_ZTv0_n12_N6dd35203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35203fooEv,_ZThn16_N6dd35203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd3520__7ee53520[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35203fooEv,_ZTv0_n12_N6dd35203fooEv),
+};
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc520__7ee53520[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc520__7ee53520[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee53520[] = {
+ {&(_ZTV7ee53520[5]), 5,21},
+ {&(_ZTV7ee53520[11]), 11,21},
+ {&(_ZTV7ee53520[16]), 16,21},
+ {&(_ZTV7ee53520[20]), 20,21},
+ {&(_tg__ZTV6dd3520__7ee53520[4]), 4,5},
+ {&(_tg__ZTV5cc520__6dd3520__7ee53520[4]), 4,5},
+ {&(_tg__ZTV4bb20__6dd3520__7ee53520[3]), 3,4},
+ {&(_tg__ZTV5cc520__7ee53520[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc520__7ee53520[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee53520[];
+extern VTBL_ENTRY _ZTV7ee53520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53520[];
+static VTBL_ENTRY alt_thunk_names273[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35203fooEv,_ZTv0_n12_N6dd35203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35203fooEv,_ZThn16_N6dd35203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35203fooEv,_ZThn16_N6dd35203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee535203barEv,_ZTv0_n16_N7ee535203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee535203barEv,_ZThn16_N7ee535203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53520 = { "ee53520", // class name
+ bases_ee53520, 4,
+ &(vtc_ee53520[0]), // expected_vtbl_contents
+ &(vtt_ee53520[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee53520),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53520),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53520),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names273,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee63520 : dd3520 {
+ int e;
+ virtual void foo(); // _ZN7ee635203fooEv
+ virtual void bar(); // _ZN7ee635203barEv
+ ~ee63520(); // tgen
+ ee63520(); // tgen
+};
+//SIG(1 ee63520) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v1 Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63520 ::foo(){vfunc_called(this, "_ZN7ee635203fooEv");}
+void ee63520 ::bar(){vfunc_called(this, "_ZN7ee635203barEv");}
+ee63520 ::~ee63520(){ note_dtor("ee63520", this);} // tgen
+ee63520 ::ee63520(){ note_ctor("ee63520", this);} // tgen
+
+static void Test_ee63520()
+{
+ extern Class_Descriptor cd_ee63520;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee63520, buf);
+ ee63520 *dp, &lv = *(dp=new (buf) ee63520());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee63520)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63520)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee63520");
+ check_base_class_offset(lv, (bb20*)(cc520*), ABISELECT(32,20), "ee63520");
+ check_base_class_offset(lv, (cc520*)(dd3520*), ABISELECT(16,12), "ee63520");
+ check_base_class_offset(lv, (dd3520*), 0, "ee63520");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63520.e");
+ test_class_info(&lv, &cd_ee63520);
+ dp->~ee63520();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63520(Test_ee63520, "ee63520", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee63520C1Ev();
+extern void _ZN7ee63520D1Ev();
+Name_Map name_map_ee63520[] = {
+ NSPAIR(_ZN7ee63520C1Ev),
+ NSPAIR(_ZN7ee63520D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc520;
+extern VTBL_ENTRY _ZTI5cc520[];
+extern VTBL_ENTRY _ZTV5cc520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc520[];
+extern Class_Descriptor cd_dd3520;
+extern VTBL_ENTRY _ZTI6dd3520[];
+extern VTBL_ENTRY _ZTV6dd3520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3520[];
+static Base_Class bases_ee63520[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc520, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3520, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63520[];
+extern void _ZN7ee635203fooEv();
+extern void _ZN7ee635203barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee635203barEv,_ZTv0_n16_N7ee635203barEv)();
+extern void ABISELECT(_ZThn16_N7ee635203barEv,_ZThn12_N7ee635203barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee635203fooEv,_ZTv0_n12_N7ee635203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee635203fooEv,_ZThn20_N7ee635203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63520[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63520[0]),
+ (VTBL_ENTRY)&_ZN7ee635203fooEv,
+ (VTBL_ENTRY)&_ZN7ee635203barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee635203barEv,_ZTv0_n16_N7ee635203barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee63520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee635203fooEv,_ZTv0_n12_N7ee635203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee63520[];
+extern void _ZN6dd35203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3520__7ee63520[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3520[0]),
+ (VTBL_ENTRY)&_ZN6dd35203fooEv,
+};
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc520__6dd3520__7ee63520[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd35203fooEv,_ZTv0_n12_N6dd35203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35203fooEv,_ZThn20_N6dd35203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd3520__7ee63520[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35203fooEv,_ZTv0_n12_N6dd35203fooEv),
+};
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc520__7ee63520[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc520__7ee63520[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee63520[] = {
+ {&(_ZTV7ee63520[4]), 4,15},
+ {&(_tg__ZTV6dd3520__7ee63520[4]), 4,5},
+ {&(_tg__ZTV5cc520__6dd3520__7ee63520[4]), 4,5},
+ {&(_tg__ZTV4bb20__6dd3520__7ee63520[3]), 3,4},
+ {&(_ZTV7ee63520[10]), 10,15},
+ {&(_ZTV7ee63520[14]), 14,15},
+ {&(_tg__ZTV5cc520__7ee63520[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc520__7ee63520[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee63520[];
+extern VTBL_ENTRY _ZTV7ee63520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63520[];
+static VTBL_ENTRY alt_thunk_names274[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35203fooEv,_ZTv0_n12_N6dd35203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35203fooEv,_ZThn20_N6dd35203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee635203fooEv,_ZTv0_n12_N7ee635203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee635203fooEv,_ZThn20_N7ee635203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee635203barEv,_ZTv0_n16_N7ee635203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee635203barEv,_ZThn12_N7ee635203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63520 = { "ee63520", // class name
+ bases_ee63520, 4,
+ &(vtc_ee63520[0]), // expected_vtbl_contents
+ &(vtt_ee63520[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee63520),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63520),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63520),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names274,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee73520 : virtual dd3520 {
+ int e;
+ virtual void foo(); // _ZN7ee735203fooEv
+ virtual void bar(); // _ZN7ee735203barEv
+ ~ee73520(); // tgen
+ ee73520(); // tgen
+};
+//SIG(1 ee73520) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v1 Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73520 ::foo(){vfunc_called(this, "_ZN7ee735203fooEv");}
+void ee73520 ::bar(){vfunc_called(this, "_ZN7ee735203barEv");}
+ee73520 ::~ee73520(){ note_dtor("ee73520", this);} // tgen
+ee73520 ::ee73520(){ note_ctor("ee73520", this);} // tgen
+
+static void Test_ee73520()
+{
+ extern Class_Descriptor cd_ee73520;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee73520, buf);
+ ee73520 *dp, &lv = *(dp=new (buf) ee73520());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee73520)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73520)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(56,28), "ee73520");
+ check_base_class_offset(lv, (bb20*)(cc520*), ABISELECT(48,24), "ee73520");
+ check_base_class_offset(lv, (cc520*)(dd3520*), ABISELECT(32,16), "ee73520");
+ check_base_class_offset(lv, (dd3520*), ABISELECT(16,8), "ee73520");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73520.e");
+ test_class_info(&lv, &cd_ee73520);
+ dp->~ee73520();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73520(Test_ee73520, "ee73520", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee73520C1Ev();
+extern void _ZN7ee73520D1Ev();
+Name_Map name_map_ee73520[] = {
+ NSPAIR(_ZN7ee73520C1Ev),
+ NSPAIR(_ZN7ee73520D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc520;
+extern VTBL_ENTRY _ZTI5cc520[];
+extern VTBL_ENTRY _ZTV5cc520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc520[];
+extern Class_Descriptor cd_dd3520;
+extern VTBL_ENTRY _ZTI6dd3520[];
+extern VTBL_ENTRY _ZTV6dd3520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3520[];
+static Base_Class bases_ee73520[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(56,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc520, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3520, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee73520[];
+extern void _ZN7ee735203fooEv();
+extern void _ZN7ee735203barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee735203fooEv,_ZTv0_n20_N7ee735203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee735203fooEv,_ZThn8_N7ee735203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee735203barEv,_ZTv0_n16_N7ee735203barEv)();
+extern void ABISELECT(_ZThn32_N7ee735203barEv,_ZThn16_N7ee735203barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee735203fooEv,_ZTv0_n12_N7ee735203fooEv)();
+extern void ABISELECT(_ZThn48_N7ee735203fooEv,_ZThn24_N7ee735203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73520[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73520[0]),
+ (VTBL_ENTRY)&_ZN7ee735203fooEv,
+ (VTBL_ENTRY)&_ZN7ee735203barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee735203fooEv,_ZTv0_n20_N7ee735203fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee735203barEv,_ZTv0_n16_N7ee735203barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee73520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee735203fooEv,_ZTv0_n12_N7ee735203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee73520[];
+extern void _ZN6dd35203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3520__7ee73520[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3520[0]),
+ (VTBL_ENTRY)&_ZN6dd35203fooEv,
+};
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc520__6dd3520__7ee73520[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd35203fooEv,_ZTv0_n12_N6dd35203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35203fooEv,_ZThn16_N6dd35203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd3520__7ee73520[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35203fooEv,_ZTv0_n12_N6dd35203fooEv),
+};
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc520__7ee73520[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc520__7ee73520[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee73520[] = {
+ {&(_ZTV7ee73520[5]), 5,22},
+ {&(_ZTV7ee73520[12]), 12,22},
+ {&(_ZTV7ee73520[17]), 17,22},
+ {&(_ZTV7ee73520[21]), 21,22},
+ {&(_tg__ZTV6dd3520__7ee73520[4]), 4,5},
+ {&(_tg__ZTV5cc520__6dd3520__7ee73520[4]), 4,5},
+ {&(_tg__ZTV4bb20__6dd3520__7ee73520[3]), 3,4},
+ {&(_tg__ZTV5cc520__7ee73520[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc520__7ee73520[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee73520[];
+extern VTBL_ENTRY _ZTV7ee73520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73520[];
+static VTBL_ENTRY alt_thunk_names275[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35203fooEv,_ZTv0_n12_N6dd35203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35203fooEv,_ZThn16_N6dd35203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee735203fooEv,_ZTv0_n12_N7ee735203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee735203fooEv,_ZThn24_N7ee735203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee735203barEv,_ZTv0_n16_N7ee735203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee735203barEv,_ZThn16_N7ee735203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee735203fooEv,_ZTv0_n20_N7ee735203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee735203fooEv,_ZThn8_N7ee735203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73520 = { "ee73520", // class name
+ bases_ee73520, 4,
+ &(vtc_ee73520[0]), // expected_vtbl_contents
+ &(vtt_ee73520[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee73520),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73520),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73520),9, //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 dd4520 : cc520 {
+ int d;
+ virtual void bar(); // _ZN6dd45203barEv
+ ~dd4520(); // tgen
+ dd4520(); // tgen
+};
+//SIG(-1 dd4520) C1{ BC2{ VBC3{ BC4{ Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void dd4520 ::bar(){vfunc_called(this, "_ZN6dd45203barEv");}
+dd4520 ::~dd4520(){ note_dtor("dd4520", this);} // tgen
+dd4520 ::dd4520(){ note_ctor("dd4520", this);} // tgen
+
+static void Test_dd4520()
+{
+ extern Class_Descriptor cd_dd4520;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd4520, buf);
+ dd4520 *dp, &lv = *(dp=new (buf) dd4520());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd4520)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4520)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(24,16), "dd4520");
+ check_base_class_offset(lv, (bb20*)(cc520*), ABISELECT(16,12), "dd4520");
+ check_base_class_offset(lv, (cc520*), 0, "dd4520");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd4520.d");
+ test_class_info(&lv, &cd_dd4520);
+ dp->~dd4520();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4520(Test_dd4520, "dd4520", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd4520C1Ev();
+extern void _ZN6dd4520D1Ev();
+Name_Map name_map_dd4520[] = {
+ NSPAIR(_ZN6dd4520C1Ev),
+ NSPAIR(_ZN6dd4520D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc520;
+extern VTBL_ENTRY _ZTI5cc520[];
+extern VTBL_ENTRY _ZTV5cc520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc520[];
+static Base_Class bases_dd4520[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc520, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd4520[];
+extern void _ZN6dd45203barEv();
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY vtc_dd4520[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4520[0]),
+ (VTBL_ENTRY)&_ZN6dd45203barEv,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd4520[];
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc520__6dd4520[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc520__6dd4520[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_dd4520[] = {
+ {&(_ZTV6dd4520[3]), 3,8},
+ {&(_tg__ZTV5cc520__6dd4520[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc520__6dd4520[3]), 3,4},
+ {&(_ZTV6dd4520[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI6dd4520[];
+extern VTBL_ENTRY _ZTV6dd4520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4520[];
+Class_Descriptor cd_dd4520 = { "dd4520", // class name
+ bases_dd4520, 3,
+ &(vtc_dd4520[0]), // expected_vtbl_contents
+ &(vtt_dd4520[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd4520),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4520),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd4520),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 ee04520 : dd4520 {
+ int e;
+ ~ee04520(); // tgen
+ ee04520(); // tgen
+};
+//SIG(1 ee04520) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v2 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee04520 ::~ee04520(){ note_dtor("ee04520", this);} // tgen
+ee04520 ::ee04520(){ note_ctor("ee04520", this);} // tgen
+
+static void Test_ee04520()
+{
+ extern Class_Descriptor cd_ee04520;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee04520, buf);
+ ee04520 *dp, &lv = *(dp=new (buf) ee04520());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee04520)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04520)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(32,20), "ee04520");
+ check_base_class_offset(lv, (bb20*)(cc520*)(dd4520*), ABISELECT(24,16), "ee04520");
+ check_base_class_offset(lv, (cc520*)(dd4520*), 0, "ee04520");
+ check_base_class_offset(lv, (dd4520*), 0, "ee04520");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee04520.e");
+ test_class_info(&lv, &cd_ee04520);
+ dp->~ee04520();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04520(Test_ee04520, "ee04520", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee04520C1Ev();
+extern void _ZN7ee04520D1Ev();
+Name_Map name_map_ee04520[] = {
+ NSPAIR(_ZN7ee04520C1Ev),
+ NSPAIR(_ZN7ee04520D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc520;
+extern VTBL_ENTRY _ZTI5cc520[];
+extern VTBL_ENTRY _ZTV5cc520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc520[];
+extern Class_Descriptor cd_dd4520;
+extern VTBL_ENTRY _ZTI6dd4520[];
+extern VTBL_ENTRY _ZTV6dd4520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4520[];
+static Base_Class bases_ee04520[] = {
+ // 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_bb20, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc520, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4520, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee04520[];
+extern void _ZN6dd45203barEv();
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY vtc_ee04520[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04520[0]),
+ (VTBL_ENTRY)&_ZN6dd45203barEv,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee04520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee04520[];
+extern void _ZN6dd45203barEv();
+static VTBL_ENTRY _tg__ZTV6dd4520__7ee04520[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4520[0]),
+ (VTBL_ENTRY)&_ZN6dd45203barEv,
+};
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc5206dd4520__7ee04520[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc5206dd4520__7ee04520[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__6dd4520__7ee04520[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee04520[] = {
+ {&(_ZTV7ee04520[3]), 3,8},
+ {&(_tg__ZTV6dd4520__7ee04520[3]), 3,4},
+ {&(_tg__ZTV5cc5206dd4520__7ee04520[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc5206dd4520__7ee04520[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd4520__7ee04520[3]), 3,4},
+ {&(_ZTV7ee04520[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee04520[];
+extern VTBL_ENTRY _ZTV7ee04520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee04520[];
+Class_Descriptor cd_ee04520 = { "ee04520", // class name
+ bases_ee04520, 4,
+ &(vtc_ee04520[0]), // expected_vtbl_contents
+ &(vtt_ee04520[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee04520),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04520),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee04520),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee14520 : virtual dd4520 {
+ int e;
+ ~ee14520(); // tgen
+ ee14520(); // tgen
+};
+//SIG(1 ee14520) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v2 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee14520 ::~ee14520(){ note_dtor("ee14520", this);} // tgen
+ee14520 ::ee14520(){ note_ctor("ee14520", this);} // tgen
+
+static void Test_ee14520()
+{
+ extern Class_Descriptor cd_ee14520;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee14520, buf);
+ ee14520 *dp, &lv = *(dp=new (buf) ee14520());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee14520)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14520)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee14520");
+ check_base_class_offset(lv, (bb20*)(cc520*)(dd4520*), ABISELECT(32,20), "ee14520");
+ check_base_class_offset(lv, (cc520*)(dd4520*), ABISELECT(16,8), "ee14520");
+ check_base_class_offset(lv, (dd4520*), ABISELECT(16,8), "ee14520");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14520.e");
+ test_class_info(&lv, &cd_ee14520);
+ dp->~ee14520();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14520(Test_ee14520, "ee14520", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee14520C1Ev();
+extern void _ZN7ee14520D1Ev();
+Name_Map name_map_ee14520[] = {
+ NSPAIR(_ZN7ee14520C1Ev),
+ NSPAIR(_ZN7ee14520D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc520;
+extern VTBL_ENTRY _ZTI5cc520[];
+extern VTBL_ENTRY _ZTV5cc520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc520[];
+extern Class_Descriptor cd_dd4520;
+extern VTBL_ENTRY _ZTI6dd4520[];
+extern VTBL_ENTRY _ZTV6dd4520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4520[];
+static Base_Class bases_ee14520[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc520, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4520, 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 _ZTI7ee14520[];
+extern void _ZN6dd45203barEv();
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY vtc_ee14520[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14520[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14520[0]),
+ (VTBL_ENTRY)&_ZN6dd45203barEv,
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee14520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee14520[];
+extern void _ZN6dd45203barEv();
+static VTBL_ENTRY _tg__ZTV6dd4520__7ee14520[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4520[0]),
+ (VTBL_ENTRY)&_ZN6dd45203barEv,
+};
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc5206dd4520__7ee14520[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc5206dd4520__7ee14520[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__6dd4520__7ee14520[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee14520[] = {
+ {&(_ZTV7ee14520[4]), 4,13},
+ {&(_ZTV7ee14520[8]), 8,13},
+ {&(_ZTV7ee14520[12]), 12,13},
+ {&(_tg__ZTV6dd4520__7ee14520[3]), 3,4},
+ {&(_tg__ZTV5cc5206dd4520__7ee14520[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc5206dd4520__7ee14520[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd4520__7ee14520[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee14520[];
+extern VTBL_ENTRY _ZTV7ee14520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14520[];
+Class_Descriptor cd_ee14520 = { "ee14520", // class name
+ bases_ee14520, 4,
+ &(vtc_ee14520[0]), // expected_vtbl_contents
+ &(vtt_ee14520[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee14520),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14520),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14520),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee24520 : dd4520 {
+ int e;
+ virtual void foo(); // _ZN7ee245203fooEv
+ ~ee24520(); // tgen
+ ee24520(); // tgen
+};
+//SIG(1 ee24520) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v1 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee24520 ::foo(){vfunc_called(this, "_ZN7ee245203fooEv");}
+ee24520 ::~ee24520(){ note_dtor("ee24520", this);} // tgen
+ee24520 ::ee24520(){ note_ctor("ee24520", this);} // tgen
+
+static void Test_ee24520()
+{
+ extern Class_Descriptor cd_ee24520;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee24520, buf);
+ ee24520 *dp, &lv = *(dp=new (buf) ee24520());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee24520)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24520)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(32,20), "ee24520");
+ check_base_class_offset(lv, (bb20*)(cc520*)(dd4520*), ABISELECT(24,16), "ee24520");
+ check_base_class_offset(lv, (cc520*)(dd4520*), 0, "ee24520");
+ check_base_class_offset(lv, (dd4520*), 0, "ee24520");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee24520.e");
+ test_class_info(&lv, &cd_ee24520);
+ dp->~ee24520();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24520(Test_ee24520, "ee24520", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee24520C1Ev();
+extern void _ZN7ee24520D1Ev();
+Name_Map name_map_ee24520[] = {
+ NSPAIR(_ZN7ee24520C1Ev),
+ NSPAIR(_ZN7ee24520D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc520;
+extern VTBL_ENTRY _ZTI5cc520[];
+extern VTBL_ENTRY _ZTV5cc520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc520[];
+extern Class_Descriptor cd_dd4520;
+extern VTBL_ENTRY _ZTI6dd4520[];
+extern VTBL_ENTRY _ZTV6dd4520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4520[];
+static Base_Class bases_ee24520[] = {
+ // 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_bb20, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc520, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4520, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee24520[];
+extern void _ZN6dd45203barEv();
+extern void _ZN7ee245203fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee245203fooEv,_ZTv0_n12_N7ee245203fooEv)();
+extern void ABISELECT(_ZThn24_N7ee245203fooEv,_ZThn16_N7ee245203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee24520[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24520[0]),
+ (VTBL_ENTRY)&_ZN6dd45203barEv,
+ (VTBL_ENTRY)&_ZN7ee245203fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee24520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee245203fooEv,_ZTv0_n12_N7ee245203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee24520[];
+extern void _ZN6dd45203barEv();
+static VTBL_ENTRY _tg__ZTV6dd4520__7ee24520[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4520[0]),
+ (VTBL_ENTRY)&_ZN6dd45203barEv,
+};
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc5206dd4520__7ee24520[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc5206dd4520__7ee24520[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__6dd4520__7ee24520[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee24520[] = {
+ {&(_ZTV7ee24520[3]), 3,9},
+ {&(_tg__ZTV6dd4520__7ee24520[3]), 3,4},
+ {&(_tg__ZTV5cc5206dd4520__7ee24520[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc5206dd4520__7ee24520[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd4520__7ee24520[3]), 3,4},
+ {&(_ZTV7ee24520[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee24520[];
+extern VTBL_ENTRY _ZTV7ee24520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee24520[];
+static VTBL_ENTRY alt_thunk_names276[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee245203fooEv,_ZTv0_n12_N7ee245203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee245203fooEv,_ZThn16_N7ee245203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee24520 = { "ee24520", // class name
+ bases_ee24520, 4,
+ &(vtc_ee24520[0]), // expected_vtbl_contents
+ &(vtt_ee24520[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee24520),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24520),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee24520),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names276,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee34520 : virtual dd4520 {
+ int e;
+ virtual void foo(); // _ZN7ee345203fooEv
+ ~ee34520(); // tgen
+ ee34520(); // tgen
+};
+//SIG(1 ee34520) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v1 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee34520 ::foo(){vfunc_called(this, "_ZN7ee345203fooEv");}
+ee34520 ::~ee34520(){ note_dtor("ee34520", this);} // tgen
+ee34520 ::ee34520(){ note_ctor("ee34520", this);} // tgen
+
+static void Test_ee34520()
+{
+ extern Class_Descriptor cd_ee34520;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee34520, buf);
+ ee34520 *dp, &lv = *(dp=new (buf) ee34520());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee34520)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34520)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee34520");
+ check_base_class_offset(lv, (bb20*)(cc520*)(dd4520*), ABISELECT(32,20), "ee34520");
+ check_base_class_offset(lv, (cc520*)(dd4520*), ABISELECT(16,8), "ee34520");
+ check_base_class_offset(lv, (dd4520*), ABISELECT(16,8), "ee34520");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34520.e");
+ test_class_info(&lv, &cd_ee34520);
+ dp->~ee34520();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34520(Test_ee34520, "ee34520", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee34520C1Ev();
+extern void _ZN7ee34520D1Ev();
+Name_Map name_map_ee34520[] = {
+ NSPAIR(_ZN7ee34520C1Ev),
+ NSPAIR(_ZN7ee34520D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc520;
+extern VTBL_ENTRY _ZTI5cc520[];
+extern VTBL_ENTRY _ZTV5cc520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc520[];
+extern Class_Descriptor cd_dd4520;
+extern VTBL_ENTRY _ZTI6dd4520[];
+extern VTBL_ENTRY _ZTV6dd4520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4520[];
+static Base_Class bases_ee34520[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc520, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4520, 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 _ZTI7ee34520[];
+extern void _ZN7ee345203fooEv();
+extern void _ZN6dd45203barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee345203fooEv,_ZTv0_n12_N7ee345203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee345203fooEv,_ZThn20_N7ee345203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee34520[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34520[0]),
+ (VTBL_ENTRY)&_ZN7ee345203fooEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34520[0]),
+ (VTBL_ENTRY)&_ZN6dd45203barEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee34520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee345203fooEv,_ZTv0_n12_N7ee345203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee34520[];
+extern void _ZN6dd45203barEv();
+static VTBL_ENTRY _tg__ZTV6dd4520__7ee34520[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4520[0]),
+ (VTBL_ENTRY)&_ZN6dd45203barEv,
+};
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc5206dd4520__7ee34520[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc5206dd4520__7ee34520[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__6dd4520__7ee34520[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee34520[] = {
+ {&(_ZTV7ee34520[4]), 4,14},
+ {&(_ZTV7ee34520[9]), 9,14},
+ {&(_ZTV7ee34520[13]), 13,14},
+ {&(_tg__ZTV6dd4520__7ee34520[3]), 3,4},
+ {&(_tg__ZTV5cc5206dd4520__7ee34520[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc5206dd4520__7ee34520[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd4520__7ee34520[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee34520[];
+extern VTBL_ENTRY _ZTV7ee34520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34520[];
+static VTBL_ENTRY alt_thunk_names277[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee345203fooEv,_ZTv0_n12_N7ee345203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee345203fooEv,_ZThn20_N7ee345203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34520 = { "ee34520", // class name
+ bases_ee34520, 4,
+ &(vtc_ee34520[0]), // expected_vtbl_contents
+ &(vtt_ee34520[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee34520),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34520),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34520),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names277,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee44520 : dd4520 {
+ int e;
+ virtual void bar(); // _ZN7ee445203barEv
+ ~ee44520(); // tgen
+ ee44520(); // tgen
+};
+//SIG(1 ee44520) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v2 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee44520 ::bar(){vfunc_called(this, "_ZN7ee445203barEv");}
+ee44520 ::~ee44520(){ note_dtor("ee44520", this);} // tgen
+ee44520 ::ee44520(){ note_ctor("ee44520", this);} // tgen
+
+static void Test_ee44520()
+{
+ extern Class_Descriptor cd_ee44520;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee44520, buf);
+ ee44520 *dp, &lv = *(dp=new (buf) ee44520());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee44520)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44520)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(32,20), "ee44520");
+ check_base_class_offset(lv, (bb20*)(cc520*)(dd4520*), ABISELECT(24,16), "ee44520");
+ check_base_class_offset(lv, (cc520*)(dd4520*), 0, "ee44520");
+ check_base_class_offset(lv, (dd4520*), 0, "ee44520");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee44520.e");
+ test_class_info(&lv, &cd_ee44520);
+ dp->~ee44520();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44520(Test_ee44520, "ee44520", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee44520C1Ev();
+extern void _ZN7ee44520D1Ev();
+Name_Map name_map_ee44520[] = {
+ NSPAIR(_ZN7ee44520C1Ev),
+ NSPAIR(_ZN7ee44520D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc520;
+extern VTBL_ENTRY _ZTI5cc520[];
+extern VTBL_ENTRY _ZTV5cc520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc520[];
+extern Class_Descriptor cd_dd4520;
+extern VTBL_ENTRY _ZTI6dd4520[];
+extern VTBL_ENTRY _ZTV6dd4520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4520[];
+static Base_Class bases_ee44520[] = {
+ // 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_bb20, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc520, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4520, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee44520[];
+extern void _ZN7ee445203barEv();
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY vtc_ee44520[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44520[0]),
+ (VTBL_ENTRY)&_ZN7ee445203barEv,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee44520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee44520[];
+extern void _ZN6dd45203barEv();
+static VTBL_ENTRY _tg__ZTV6dd4520__7ee44520[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4520[0]),
+ (VTBL_ENTRY)&_ZN6dd45203barEv,
+};
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc5206dd4520__7ee44520[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc5206dd4520__7ee44520[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__6dd4520__7ee44520[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee44520[] = {
+ {&(_ZTV7ee44520[3]), 3,8},
+ {&(_tg__ZTV6dd4520__7ee44520[3]), 3,4},
+ {&(_tg__ZTV5cc5206dd4520__7ee44520[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc5206dd4520__7ee44520[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd4520__7ee44520[3]), 3,4},
+ {&(_ZTV7ee44520[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee44520[];
+extern VTBL_ENTRY _ZTV7ee44520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee44520[];
+Class_Descriptor cd_ee44520 = { "ee44520", // class name
+ bases_ee44520, 4,
+ &(vtc_ee44520[0]), // expected_vtbl_contents
+ &(vtt_ee44520[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee44520),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44520),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee44520),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee54520 : virtual dd4520 {
+ int e;
+ virtual void bar(); // _ZN7ee545203barEv
+ ~ee54520(); // tgen
+ ee54520(); // tgen
+};
+//SIG(1 ee54520) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v2 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee54520 ::bar(){vfunc_called(this, "_ZN7ee545203barEv");}
+ee54520 ::~ee54520(){ note_dtor("ee54520", this);} // tgen
+ee54520 ::ee54520(){ note_ctor("ee54520", this);} // tgen
+
+static void Test_ee54520()
+{
+ extern Class_Descriptor cd_ee54520;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee54520, buf);
+ ee54520 *dp, &lv = *(dp=new (buf) ee54520());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee54520)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54520)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee54520");
+ check_base_class_offset(lv, (bb20*)(cc520*)(dd4520*), ABISELECT(32,20), "ee54520");
+ check_base_class_offset(lv, (cc520*)(dd4520*), ABISELECT(16,8), "ee54520");
+ check_base_class_offset(lv, (dd4520*), ABISELECT(16,8), "ee54520");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54520.e");
+ test_class_info(&lv, &cd_ee54520);
+ dp->~ee54520();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54520(Test_ee54520, "ee54520", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee54520C1Ev();
+extern void _ZN7ee54520D1Ev();
+Name_Map name_map_ee54520[] = {
+ NSPAIR(_ZN7ee54520C1Ev),
+ NSPAIR(_ZN7ee54520D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc520;
+extern VTBL_ENTRY _ZTI5cc520[];
+extern VTBL_ENTRY _ZTV5cc520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc520[];
+extern Class_Descriptor cd_dd4520;
+extern VTBL_ENTRY _ZTI6dd4520[];
+extern VTBL_ENTRY _ZTV6dd4520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4520[];
+static Base_Class bases_ee54520[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc520, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4520, 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 _ZTI7ee54520[];
+extern void _ZN7ee545203barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee545203barEv,_ZTv0_n16_N7ee545203barEv)();
+extern void ABISELECT(_ZThn16_N7ee545203barEv,_ZThn8_N7ee545203barEv)() __attribute__((weak));
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY vtc_ee54520[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54520[0]),
+ (VTBL_ENTRY)&_ZN7ee545203barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee545203barEv,_ZTv0_n16_N7ee545203barEv),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee54520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee54520[];
+extern void _ZN6dd45203barEv();
+static VTBL_ENTRY _tg__ZTV6dd4520__7ee54520[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4520[0]),
+ (VTBL_ENTRY)&_ZN6dd45203barEv,
+};
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc5206dd4520__7ee54520[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc5206dd4520__7ee54520[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__6dd4520__7ee54520[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee54520[] = {
+ {&(_ZTV7ee54520[4]), 4,14},
+ {&(_ZTV7ee54520[9]), 9,14},
+ {&(_ZTV7ee54520[13]), 13,14},
+ {&(_tg__ZTV6dd4520__7ee54520[3]), 3,4},
+ {&(_tg__ZTV5cc5206dd4520__7ee54520[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc5206dd4520__7ee54520[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd4520__7ee54520[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee54520[];
+extern VTBL_ENTRY _ZTV7ee54520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54520[];
+static VTBL_ENTRY alt_thunk_names278[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee545203barEv,_ZTv0_n16_N7ee545203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee545203barEv,_ZThn8_N7ee545203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54520 = { "ee54520", // class name
+ bases_ee54520, 4,
+ &(vtc_ee54520[0]), // expected_vtbl_contents
+ &(vtt_ee54520[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee54520),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54520),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54520),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names278,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee64520 : dd4520 {
+ int e;
+ virtual void foo(); // _ZN7ee645203fooEv
+ virtual void bar(); // _ZN7ee645203barEv
+ ~ee64520(); // tgen
+ ee64520(); // tgen
+};
+//SIG(1 ee64520) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v1 Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64520 ::foo(){vfunc_called(this, "_ZN7ee645203fooEv");}
+void ee64520 ::bar(){vfunc_called(this, "_ZN7ee645203barEv");}
+ee64520 ::~ee64520(){ note_dtor("ee64520", this);} // tgen
+ee64520 ::ee64520(){ note_ctor("ee64520", this);} // tgen
+
+static void Test_ee64520()
+{
+ extern Class_Descriptor cd_ee64520;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee64520, buf);
+ ee64520 *dp, &lv = *(dp=new (buf) ee64520());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee64520)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64520)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(32,20), "ee64520");
+ check_base_class_offset(lv, (bb20*)(cc520*)(dd4520*), ABISELECT(24,16), "ee64520");
+ check_base_class_offset(lv, (cc520*)(dd4520*), 0, "ee64520");
+ check_base_class_offset(lv, (dd4520*), 0, "ee64520");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee64520.e");
+ test_class_info(&lv, &cd_ee64520);
+ dp->~ee64520();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64520(Test_ee64520, "ee64520", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee64520C1Ev();
+extern void _ZN7ee64520D1Ev();
+Name_Map name_map_ee64520[] = {
+ NSPAIR(_ZN7ee64520C1Ev),
+ NSPAIR(_ZN7ee64520D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc520;
+extern VTBL_ENTRY _ZTI5cc520[];
+extern VTBL_ENTRY _ZTV5cc520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc520[];
+extern Class_Descriptor cd_dd4520;
+extern VTBL_ENTRY _ZTI6dd4520[];
+extern VTBL_ENTRY _ZTV6dd4520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4520[];
+static Base_Class bases_ee64520[] = {
+ // 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_bb20, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc520, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4520, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee64520[];
+extern void _ZN7ee645203barEv();
+extern void _ZN7ee645203fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee645203fooEv,_ZTv0_n12_N7ee645203fooEv)();
+extern void ABISELECT(_ZThn24_N7ee645203fooEv,_ZThn16_N7ee645203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee64520[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64520[0]),
+ (VTBL_ENTRY)&_ZN7ee645203barEv,
+ (VTBL_ENTRY)&_ZN7ee645203fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee64520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee645203fooEv,_ZTv0_n12_N7ee645203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee64520[];
+extern void _ZN6dd45203barEv();
+static VTBL_ENTRY _tg__ZTV6dd4520__7ee64520[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4520[0]),
+ (VTBL_ENTRY)&_ZN6dd45203barEv,
+};
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc5206dd4520__7ee64520[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc5206dd4520__7ee64520[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__6dd4520__7ee64520[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee64520[] = {
+ {&(_ZTV7ee64520[3]), 3,9},
+ {&(_tg__ZTV6dd4520__7ee64520[3]), 3,4},
+ {&(_tg__ZTV5cc5206dd4520__7ee64520[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc5206dd4520__7ee64520[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd4520__7ee64520[3]), 3,4},
+ {&(_ZTV7ee64520[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee64520[];
+extern VTBL_ENTRY _ZTV7ee64520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee64520[];
+static VTBL_ENTRY alt_thunk_names279[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee645203fooEv,_ZTv0_n12_N7ee645203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee645203fooEv,_ZThn16_N7ee645203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee64520 = { "ee64520", // class name
+ bases_ee64520, 4,
+ &(vtc_ee64520[0]), // expected_vtbl_contents
+ &(vtt_ee64520[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee64520),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64520),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee64520),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names279,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee74520 : virtual dd4520 {
+ int e;
+ virtual void foo(); // _ZN7ee745203fooEv
+ virtual void bar(); // _ZN7ee745203barEv
+ ~ee74520(); // tgen
+ ee74520(); // tgen
+};
+//SIG(1 ee74520) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v1 Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74520 ::foo(){vfunc_called(this, "_ZN7ee745203fooEv");}
+void ee74520 ::bar(){vfunc_called(this, "_ZN7ee745203barEv");}
+ee74520 ::~ee74520(){ note_dtor("ee74520", this);} // tgen
+ee74520 ::ee74520(){ note_ctor("ee74520", this);} // tgen
+
+static void Test_ee74520()
+{
+ extern Class_Descriptor cd_ee74520;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee74520, buf);
+ ee74520 *dp, &lv = *(dp=new (buf) ee74520());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee74520)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74520)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee74520");
+ check_base_class_offset(lv, (bb20*)(cc520*)(dd4520*), ABISELECT(32,20), "ee74520");
+ check_base_class_offset(lv, (cc520*)(dd4520*), ABISELECT(16,8), "ee74520");
+ check_base_class_offset(lv, (dd4520*), ABISELECT(16,8), "ee74520");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74520.e");
+ test_class_info(&lv, &cd_ee74520);
+ dp->~ee74520();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74520(Test_ee74520, "ee74520", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee74520C1Ev();
+extern void _ZN7ee74520D1Ev();
+Name_Map name_map_ee74520[] = {
+ NSPAIR(_ZN7ee74520C1Ev),
+ NSPAIR(_ZN7ee74520D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc520;
+extern VTBL_ENTRY _ZTI5cc520[];
+extern VTBL_ENTRY _ZTV5cc520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc520[];
+extern Class_Descriptor cd_dd4520;
+extern VTBL_ENTRY _ZTI6dd4520[];
+extern VTBL_ENTRY _ZTV6dd4520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4520[];
+static Base_Class bases_ee74520[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc520, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4520, 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 _ZTI7ee74520[];
+extern void _ZN7ee745203fooEv();
+extern void _ZN7ee745203barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee745203barEv,_ZTv0_n16_N7ee745203barEv)();
+extern void ABISELECT(_ZThn16_N7ee745203barEv,_ZThn8_N7ee745203barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee745203fooEv,_ZTv0_n12_N7ee745203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee745203fooEv,_ZThn20_N7ee745203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74520[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74520[0]),
+ (VTBL_ENTRY)&_ZN7ee745203fooEv,
+ (VTBL_ENTRY)&_ZN7ee745203barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee745203barEv,_ZTv0_n16_N7ee745203barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee74520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee745203fooEv,_ZTv0_n12_N7ee745203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee74520[];
+extern void _ZN6dd45203barEv();
+static VTBL_ENTRY _tg__ZTV6dd4520__7ee74520[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4520[0]),
+ (VTBL_ENTRY)&_ZN6dd45203barEv,
+};
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc5206dd4520__7ee74520[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc5206dd4520__7ee74520[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__6dd4520__7ee74520[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee74520[] = {
+ {&(_ZTV7ee74520[4]), 4,15},
+ {&(_ZTV7ee74520[10]), 10,15},
+ {&(_ZTV7ee74520[14]), 14,15},
+ {&(_tg__ZTV6dd4520__7ee74520[3]), 3,4},
+ {&(_tg__ZTV5cc5206dd4520__7ee74520[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc5206dd4520__7ee74520[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd4520__7ee74520[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee74520[];
+extern VTBL_ENTRY _ZTV7ee74520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74520[];
+static VTBL_ENTRY alt_thunk_names280[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee745203fooEv,_ZTv0_n12_N7ee745203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee745203fooEv,_ZThn20_N7ee745203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee745203barEv,_ZTv0_n16_N7ee745203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee745203barEv,_ZThn8_N7ee745203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74520 = { "ee74520", // class name
+ bases_ee74520, 4,
+ &(vtc_ee74520[0]), // expected_vtbl_contents
+ &(vtt_ee74520[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee74520),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74520),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74520),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names280,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd5520 : virtual cc520 {
+ int d;
+ virtual void bar(); // _ZN6dd55203barEv
+ ~dd5520(); // tgen
+ dd5520(); // tgen
+};
+//SIG(-1 dd5520) C1{ VBC2{ VBC3{ BC4{ Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void dd5520 ::bar(){vfunc_called(this, "_ZN6dd55203barEv");}
+dd5520 ::~dd5520(){ note_dtor("dd5520", this);} // tgen
+dd5520 ::dd5520(){ note_ctor("dd5520", this);} // tgen
+
+static void Test_dd5520()
+{
+ extern Class_Descriptor cd_dd5520;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd5520, buf);
+ dd5520 *dp, &lv = *(dp=new (buf) dd5520());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd5520)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5520)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,20), "dd5520");
+ check_base_class_offset(lv, (bb20*)(cc520*), ABISELECT(32,16), "dd5520");
+ check_base_class_offset(lv, (cc520*), ABISELECT(16,8), "dd5520");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5520.d");
+ test_class_info(&lv, &cd_dd5520);
+ dp->~dd5520();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5520(Test_dd5520, "dd5520", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd5520C1Ev();
+extern void _ZN6dd5520D1Ev();
+Name_Map name_map_dd5520[] = {
+ NSPAIR(_ZN6dd5520C1Ev),
+ NSPAIR(_ZN6dd5520D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc520;
+extern VTBL_ENTRY _ZTI5cc520[];
+extern VTBL_ENTRY _ZTV5cc520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc520[];
+static Base_Class bases_dd5520[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc520, 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 _ZTI6dd5520[];
+extern void _ZN6dd55203barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55203barEv,_ZTv0_n16_N6dd55203barEv)();
+extern void ABISELECT(_ZThn16_N6dd55203barEv,_ZThn8_N6dd55203barEv)() __attribute__((weak));
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY vtc_dd5520[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5520[0]),
+ (VTBL_ENTRY)&_ZN6dd55203barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55203barEv,_ZTv0_n16_N6dd55203barEv),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd5520[];
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc520__6dd5520[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc520__6dd5520[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_dd5520[] = {
+ {&(_ZTV6dd5520[4]), 4,14},
+ {&(_ZTV6dd5520[9]), 9,14},
+ {&(_ZTV6dd5520[13]), 13,14},
+ {&(_tg__ZTV5cc520__6dd5520[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc520__6dd5520[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd5520[];
+extern VTBL_ENTRY _ZTV6dd5520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5520[];
+static VTBL_ENTRY alt_thunk_names281[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55203barEv,_ZTv0_n16_N6dd55203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55203barEv,_ZThn8_N6dd55203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5520 = { "dd5520", // class name
+ bases_dd5520, 3,
+ &(vtc_dd5520[0]), // expected_vtbl_contents
+ &(vtt_dd5520[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd5520),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5520),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5520),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names281,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05520 : dd5520 {
+ int e;
+ ~ee05520(); // tgen
+ ee05520(); // tgen
+};
+//SIG(1 ee05520) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v2 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee05520 ::~ee05520(){ note_dtor("ee05520", this);} // tgen
+ee05520 ::ee05520(){ note_ctor("ee05520", this);} // tgen
+
+static void Test_ee05520()
+{
+ extern Class_Descriptor cd_ee05520;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee05520, buf);
+ ee05520 *dp, &lv = *(dp=new (buf) ee05520());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee05520)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05520)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee05520");
+ check_base_class_offset(lv, (bb20*)(cc520*), ABISELECT(32,20), "ee05520");
+ check_base_class_offset(lv, (cc520*)(dd5520*), ABISELECT(16,12), "ee05520");
+ check_base_class_offset(lv, (dd5520*), 0, "ee05520");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05520.e");
+ test_class_info(&lv, &cd_ee05520);
+ dp->~ee05520();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05520(Test_ee05520, "ee05520", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee05520C1Ev();
+extern void _ZN7ee05520D1Ev();
+Name_Map name_map_ee05520[] = {
+ NSPAIR(_ZN7ee05520C1Ev),
+ NSPAIR(_ZN7ee05520D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc520;
+extern VTBL_ENTRY _ZTI5cc520[];
+extern VTBL_ENTRY _ZTV5cc520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc520[];
+extern Class_Descriptor cd_dd5520;
+extern VTBL_ENTRY _ZTI6dd5520[];
+extern VTBL_ENTRY _ZTV6dd5520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5520[];
+static Base_Class bases_ee05520[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc520, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5520, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05520[];
+extern void _ZN6dd55203barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55203barEv,_ZTv0_n16_N6dd55203barEv)();
+extern void ABISELECT(_ZThn16_N6dd55203barEv,_ZThn12_N6dd55203barEv)() __attribute__((weak));
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY vtc_ee05520[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05520[0]),
+ (VTBL_ENTRY)&_ZN6dd55203barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55203barEv,_ZTv0_n16_N6dd55203barEv),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee05520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee05520[];
+extern void _ZN6dd55203barEv();
+static VTBL_ENTRY _tg__ZTV6dd5520__7ee05520[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5520[0]),
+ (VTBL_ENTRY)&_ZN6dd55203barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55203barEv,_ZTv0_n16_N6dd55203barEv)();
+extern void ABISELECT(_ZThn16_N6dd55203barEv,_ZThn12_N6dd55203barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc520__6dd5520__7ee05520[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55203barEv,_ZTv0_n16_N6dd55203barEv),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__6dd5520__7ee05520[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc520__7ee05520[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc520__7ee05520[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee05520[] = {
+ {&(_ZTV7ee05520[4]), 4,14},
+ {&(_tg__ZTV6dd5520__7ee05520[4]), 4,5},
+ {&(_tg__ZTV5cc520__6dd5520__7ee05520[4]), 4,5},
+ {&(_tg__ZTV4bb20__6dd5520__7ee05520[3]), 3,4},
+ {&(_ZTV7ee05520[9]), 9,14},
+ {&(_ZTV7ee05520[13]), 13,14},
+ {&(_tg__ZTV5cc520__7ee05520[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc520__7ee05520[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee05520[];
+extern VTBL_ENTRY _ZTV7ee05520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05520[];
+static VTBL_ENTRY alt_thunk_names282[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55203barEv,_ZTv0_n16_N6dd55203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55203barEv,_ZThn12_N6dd55203barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55203barEv,_ZThn12_N6dd55203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05520 = { "ee05520", // class name
+ bases_ee05520, 4,
+ &(vtc_ee05520[0]), // expected_vtbl_contents
+ &(vtt_ee05520[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee05520),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05520),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05520),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names282,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee15520 : virtual dd5520 {
+ int e;
+ ~ee15520(); // tgen
+ ee15520(); // tgen
+};
+//SIG(1 ee15520) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v2 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee15520 ::~ee15520(){ note_dtor("ee15520", this);} // tgen
+ee15520 ::ee15520(){ note_ctor("ee15520", this);} // tgen
+
+static void Test_ee15520()
+{
+ extern Class_Descriptor cd_ee15520;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee15520, buf);
+ ee15520 *dp, &lv = *(dp=new (buf) ee15520());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee15520)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15520)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(56,28), "ee15520");
+ check_base_class_offset(lv, (bb20*)(cc520*), ABISELECT(48,24), "ee15520");
+ check_base_class_offset(lv, (cc520*)(dd5520*), ABISELECT(32,16), "ee15520");
+ check_base_class_offset(lv, (dd5520*), ABISELECT(16,8), "ee15520");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15520.e");
+ test_class_info(&lv, &cd_ee15520);
+ dp->~ee15520();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15520(Test_ee15520, "ee15520", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee15520C1Ev();
+extern void _ZN7ee15520D1Ev();
+Name_Map name_map_ee15520[] = {
+ NSPAIR(_ZN7ee15520C1Ev),
+ NSPAIR(_ZN7ee15520D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc520;
+extern VTBL_ENTRY _ZTI5cc520[];
+extern VTBL_ENTRY _ZTV5cc520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc520[];
+extern Class_Descriptor cd_dd5520;
+extern VTBL_ENTRY _ZTI6dd5520[];
+extern VTBL_ENTRY _ZTV6dd5520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5520[];
+static Base_Class bases_ee15520[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(56,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(48,24), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc520, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5520, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee15520[];
+extern void _ZN6dd55203barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55203barEv,_ZTv0_n16_N6dd55203barEv)();
+extern void ABISELECT(_ZThn16_N6dd55203barEv,_ZThn8_N6dd55203barEv)() __attribute__((weak));
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY vtc_ee15520[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15520[0]),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15520[0]),
+ (VTBL_ENTRY)&_ZN6dd55203barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55203barEv,_ZTv0_n16_N6dd55203barEv),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee15520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee15520[];
+extern void _ZN6dd55203barEv();
+static VTBL_ENTRY _tg__ZTV6dd5520__7ee15520[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5520[0]),
+ (VTBL_ENTRY)&_ZN6dd55203barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55203barEv,_ZTv0_n16_N6dd55203barEv)();
+extern void ABISELECT(_ZThn16_N6dd55203barEv,_ZThn8_N6dd55203barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc520__6dd5520__7ee15520[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55203barEv,_ZTv0_n16_N6dd55203barEv),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__6dd5520__7ee15520[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc520__7ee15520[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc520__7ee15520[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee15520[] = {
+ {&(_ZTV7ee15520[5]), 5,20},
+ {&(_ZTV7ee15520[10]), 10,20},
+ {&(_ZTV7ee15520[15]), 15,20},
+ {&(_ZTV7ee15520[19]), 19,20},
+ {&(_tg__ZTV6dd5520__7ee15520[4]), 4,5},
+ {&(_tg__ZTV5cc520__6dd5520__7ee15520[4]), 4,5},
+ {&(_tg__ZTV4bb20__6dd5520__7ee15520[3]), 3,4},
+ {&(_tg__ZTV5cc520__7ee15520[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc520__7ee15520[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee15520[];
+extern VTBL_ENTRY _ZTV7ee15520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15520[];
+static VTBL_ENTRY alt_thunk_names283[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55203barEv,_ZTv0_n16_N6dd55203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55203barEv,_ZThn8_N6dd55203barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55203barEv,_ZThn8_N6dd55203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15520 = { "ee15520", // class name
+ bases_ee15520, 4,
+ &(vtc_ee15520[0]), // expected_vtbl_contents
+ &(vtt_ee15520[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee15520),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15520),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15520),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names283,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee25520 : dd5520 {
+ int e;
+ virtual void foo(); // _ZN7ee255203fooEv
+ ~ee25520(); // tgen
+ ee25520(); // tgen
+};
+//SIG(1 ee25520) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v1 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee25520 ::foo(){vfunc_called(this, "_ZN7ee255203fooEv");}
+ee25520 ::~ee25520(){ note_dtor("ee25520", this);} // tgen
+ee25520 ::ee25520(){ note_ctor("ee25520", this);} // tgen
+
+static void Test_ee25520()
+{
+ extern Class_Descriptor cd_ee25520;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee25520, buf);
+ ee25520 *dp, &lv = *(dp=new (buf) ee25520());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee25520)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25520)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee25520");
+ check_base_class_offset(lv, (bb20*)(cc520*), ABISELECT(32,20), "ee25520");
+ check_base_class_offset(lv, (cc520*)(dd5520*), ABISELECT(16,12), "ee25520");
+ check_base_class_offset(lv, (dd5520*), 0, "ee25520");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25520.e");
+ test_class_info(&lv, &cd_ee25520);
+ dp->~ee25520();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25520(Test_ee25520, "ee25520", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee25520C1Ev();
+extern void _ZN7ee25520D1Ev();
+Name_Map name_map_ee25520[] = {
+ NSPAIR(_ZN7ee25520C1Ev),
+ NSPAIR(_ZN7ee25520D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc520;
+extern VTBL_ENTRY _ZTI5cc520[];
+extern VTBL_ENTRY _ZTV5cc520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc520[];
+extern Class_Descriptor cd_dd5520;
+extern VTBL_ENTRY _ZTI6dd5520[];
+extern VTBL_ENTRY _ZTV6dd5520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5520[];
+static Base_Class bases_ee25520[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc520, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5520, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25520[];
+extern void _ZN6dd55203barEv();
+extern void _ZN7ee255203fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55203barEv,_ZTv0_n16_N6dd55203barEv)();
+extern void ABISELECT(_ZThn16_N6dd55203barEv,_ZThn12_N6dd55203barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee255203fooEv,_ZTv0_n12_N7ee255203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee255203fooEv,_ZThn20_N7ee255203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25520[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25520[0]),
+ (VTBL_ENTRY)&_ZN6dd55203barEv,
+ (VTBL_ENTRY)&_ZN7ee255203fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55203barEv,_ZTv0_n16_N6dd55203barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee25520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee255203fooEv,_ZTv0_n12_N7ee255203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee25520[];
+extern void _ZN6dd55203barEv();
+static VTBL_ENTRY _tg__ZTV6dd5520__7ee25520[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5520[0]),
+ (VTBL_ENTRY)&_ZN6dd55203barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55203barEv,_ZTv0_n16_N6dd55203barEv)();
+extern void ABISELECT(_ZThn16_N6dd55203barEv,_ZThn12_N6dd55203barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc520__6dd5520__7ee25520[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55203barEv,_ZTv0_n16_N6dd55203barEv),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__6dd5520__7ee25520[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc520__7ee25520[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc520__7ee25520[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee25520[] = {
+ {&(_ZTV7ee25520[4]), 4,15},
+ {&(_tg__ZTV6dd5520__7ee25520[4]), 4,5},
+ {&(_tg__ZTV5cc520__6dd5520__7ee25520[4]), 4,5},
+ {&(_tg__ZTV4bb20__6dd5520__7ee25520[3]), 3,4},
+ {&(_ZTV7ee25520[10]), 10,15},
+ {&(_ZTV7ee25520[14]), 14,15},
+ {&(_tg__ZTV5cc520__7ee25520[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc520__7ee25520[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee25520[];
+extern VTBL_ENTRY _ZTV7ee25520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25520[];
+static VTBL_ENTRY alt_thunk_names284[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee255203fooEv,_ZTv0_n12_N7ee255203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee255203fooEv,_ZThn20_N7ee255203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55203barEv,_ZTv0_n16_N6dd55203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55203barEv,_ZThn12_N6dd55203barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55203barEv,_ZThn12_N6dd55203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25520 = { "ee25520", // class name
+ bases_ee25520, 4,
+ &(vtc_ee25520[0]), // expected_vtbl_contents
+ &(vtt_ee25520[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee25520),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25520),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25520),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names284,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee35520 : virtual dd5520 {
+ int e;
+ virtual void foo(); // _ZN7ee355203fooEv
+ ~ee35520(); // tgen
+ ee35520(); // tgen
+};
+//SIG(1 ee35520) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v1 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee35520 ::foo(){vfunc_called(this, "_ZN7ee355203fooEv");}
+ee35520 ::~ee35520(){ note_dtor("ee35520", this);} // tgen
+ee35520 ::ee35520(){ note_ctor("ee35520", this);} // tgen
+
+static void Test_ee35520()
+{
+ extern Class_Descriptor cd_ee35520;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee35520, buf);
+ ee35520 *dp, &lv = *(dp=new (buf) ee35520());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee35520)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35520)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(56,28), "ee35520");
+ check_base_class_offset(lv, (bb20*)(cc520*), ABISELECT(48,24), "ee35520");
+ check_base_class_offset(lv, (cc520*)(dd5520*), ABISELECT(32,16), "ee35520");
+ check_base_class_offset(lv, (dd5520*), ABISELECT(16,8), "ee35520");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35520.e");
+ test_class_info(&lv, &cd_ee35520);
+ dp->~ee35520();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35520(Test_ee35520, "ee35520", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee35520C1Ev();
+extern void _ZN7ee35520D1Ev();
+Name_Map name_map_ee35520[] = {
+ NSPAIR(_ZN7ee35520C1Ev),
+ NSPAIR(_ZN7ee35520D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc520;
+extern VTBL_ENTRY _ZTI5cc520[];
+extern VTBL_ENTRY _ZTV5cc520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc520[];
+extern Class_Descriptor cd_dd5520;
+extern VTBL_ENTRY _ZTI6dd5520[];
+extern VTBL_ENTRY _ZTV6dd5520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5520[];
+static Base_Class bases_ee35520[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(56,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc520, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5520, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee35520[];
+extern void _ZN7ee355203fooEv();
+extern void _ZN6dd55203barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55203barEv,_ZTv0_n16_N6dd55203barEv)();
+extern void ABISELECT(_ZThn16_N6dd55203barEv,_ZThn8_N6dd55203barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee355203fooEv,_ZTv0_n12_N7ee355203fooEv)();
+extern void ABISELECT(_ZThn48_N7ee355203fooEv,_ZThn24_N7ee355203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35520[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35520[0]),
+ (VTBL_ENTRY)&_ZN7ee355203fooEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35520[0]),
+ (VTBL_ENTRY)&_ZN6dd55203barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55203barEv,_ZTv0_n16_N6dd55203barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee35520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee355203fooEv,_ZTv0_n12_N7ee355203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee35520[];
+extern void _ZN6dd55203barEv();
+static VTBL_ENTRY _tg__ZTV6dd5520__7ee35520[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5520[0]),
+ (VTBL_ENTRY)&_ZN6dd55203barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55203barEv,_ZTv0_n16_N6dd55203barEv)();
+extern void ABISELECT(_ZThn16_N6dd55203barEv,_ZThn8_N6dd55203barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc520__6dd5520__7ee35520[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55203barEv,_ZTv0_n16_N6dd55203barEv),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__6dd5520__7ee35520[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc520__7ee35520[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc520__7ee35520[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee35520[] = {
+ {&(_ZTV7ee35520[5]), 5,21},
+ {&(_ZTV7ee35520[11]), 11,21},
+ {&(_ZTV7ee35520[16]), 16,21},
+ {&(_ZTV7ee35520[20]), 20,21},
+ {&(_tg__ZTV6dd5520__7ee35520[4]), 4,5},
+ {&(_tg__ZTV5cc520__6dd5520__7ee35520[4]), 4,5},
+ {&(_tg__ZTV4bb20__6dd5520__7ee35520[3]), 3,4},
+ {&(_tg__ZTV5cc520__7ee35520[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc520__7ee35520[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee35520[];
+extern VTBL_ENTRY _ZTV7ee35520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35520[];
+static VTBL_ENTRY alt_thunk_names285[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee355203fooEv,_ZTv0_n12_N7ee355203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee355203fooEv,_ZThn24_N7ee355203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55203barEv,_ZTv0_n16_N6dd55203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55203barEv,_ZThn8_N6dd55203barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55203barEv,_ZThn8_N6dd55203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35520 = { "ee35520", // class name
+ bases_ee35520, 4,
+ &(vtc_ee35520[0]), // expected_vtbl_contents
+ &(vtt_ee35520[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee35520),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35520),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35520),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names285,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee45520 : dd5520 {
+ int e;
+ virtual void bar(); // _ZN7ee455203barEv
+ ~ee45520(); // tgen
+ ee45520(); // tgen
+};
+//SIG(1 ee45520) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v2 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee45520 ::bar(){vfunc_called(this, "_ZN7ee455203barEv");}
+ee45520 ::~ee45520(){ note_dtor("ee45520", this);} // tgen
+ee45520 ::ee45520(){ note_ctor("ee45520", this);} // tgen
+
+static void Test_ee45520()
+{
+ extern Class_Descriptor cd_ee45520;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee45520, buf);
+ ee45520 *dp, &lv = *(dp=new (buf) ee45520());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee45520)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45520)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee45520");
+ check_base_class_offset(lv, (bb20*)(cc520*), ABISELECT(32,20), "ee45520");
+ check_base_class_offset(lv, (cc520*)(dd5520*), ABISELECT(16,12), "ee45520");
+ check_base_class_offset(lv, (dd5520*), 0, "ee45520");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45520.e");
+ test_class_info(&lv, &cd_ee45520);
+ dp->~ee45520();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45520(Test_ee45520, "ee45520", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee45520C1Ev();
+extern void _ZN7ee45520D1Ev();
+Name_Map name_map_ee45520[] = {
+ NSPAIR(_ZN7ee45520C1Ev),
+ NSPAIR(_ZN7ee45520D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc520;
+extern VTBL_ENTRY _ZTI5cc520[];
+extern VTBL_ENTRY _ZTV5cc520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc520[];
+extern Class_Descriptor cd_dd5520;
+extern VTBL_ENTRY _ZTI6dd5520[];
+extern VTBL_ENTRY _ZTV6dd5520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5520[];
+static Base_Class bases_ee45520[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc520, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5520, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45520[];
+extern void _ZN7ee455203barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee455203barEv,_ZTv0_n16_N7ee455203barEv)();
+extern void ABISELECT(_ZThn16_N7ee455203barEv,_ZThn12_N7ee455203barEv)() __attribute__((weak));
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY vtc_ee45520[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45520[0]),
+ (VTBL_ENTRY)&_ZN7ee455203barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee455203barEv,_ZTv0_n16_N7ee455203barEv),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee45520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee45520[];
+extern void _ZN6dd55203barEv();
+static VTBL_ENTRY _tg__ZTV6dd5520__7ee45520[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5520[0]),
+ (VTBL_ENTRY)&_ZN6dd55203barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55203barEv,_ZTv0_n16_N6dd55203barEv)();
+extern void ABISELECT(_ZThn16_N6dd55203barEv,_ZThn12_N6dd55203barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc520__6dd5520__7ee45520[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55203barEv,_ZTv0_n16_N6dd55203barEv),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__6dd5520__7ee45520[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc520__7ee45520[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc520__7ee45520[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee45520[] = {
+ {&(_ZTV7ee45520[4]), 4,14},
+ {&(_tg__ZTV6dd5520__7ee45520[4]), 4,5},
+ {&(_tg__ZTV5cc520__6dd5520__7ee45520[4]), 4,5},
+ {&(_tg__ZTV4bb20__6dd5520__7ee45520[3]), 3,4},
+ {&(_ZTV7ee45520[9]), 9,14},
+ {&(_ZTV7ee45520[13]), 13,14},
+ {&(_tg__ZTV5cc520__7ee45520[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc520__7ee45520[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee45520[];
+extern VTBL_ENTRY _ZTV7ee45520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45520[];
+static VTBL_ENTRY alt_thunk_names286[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55203barEv,_ZTv0_n16_N6dd55203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55203barEv,_ZThn12_N6dd55203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee455203barEv,_ZTv0_n16_N7ee455203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee455203barEv,_ZThn12_N7ee455203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45520 = { "ee45520", // class name
+ bases_ee45520, 4,
+ &(vtc_ee45520[0]), // expected_vtbl_contents
+ &(vtt_ee45520[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee45520),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45520),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45520),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names286,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee55520 : virtual dd5520 {
+ int e;
+ virtual void bar(); // _ZN7ee555203barEv
+ ~ee55520(); // tgen
+ ee55520(); // tgen
+};
+//SIG(1 ee55520) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v2 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee55520 ::bar(){vfunc_called(this, "_ZN7ee555203barEv");}
+ee55520 ::~ee55520(){ note_dtor("ee55520", this);} // tgen
+ee55520 ::ee55520(){ note_ctor("ee55520", this);} // tgen
+
+static void Test_ee55520()
+{
+ extern Class_Descriptor cd_ee55520;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee55520, buf);
+ ee55520 *dp, &lv = *(dp=new (buf) ee55520());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee55520)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55520)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(56,28), "ee55520");
+ check_base_class_offset(lv, (bb20*)(cc520*), ABISELECT(48,24), "ee55520");
+ check_base_class_offset(lv, (cc520*)(dd5520*), ABISELECT(32,16), "ee55520");
+ check_base_class_offset(lv, (dd5520*), ABISELECT(16,8), "ee55520");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55520.e");
+ test_class_info(&lv, &cd_ee55520);
+ dp->~ee55520();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55520(Test_ee55520, "ee55520", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee55520C1Ev();
+extern void _ZN7ee55520D1Ev();
+Name_Map name_map_ee55520[] = {
+ NSPAIR(_ZN7ee55520C1Ev),
+ NSPAIR(_ZN7ee55520D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc520;
+extern VTBL_ENTRY _ZTI5cc520[];
+extern VTBL_ENTRY _ZTV5cc520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc520[];
+extern Class_Descriptor cd_dd5520;
+extern VTBL_ENTRY _ZTI6dd5520[];
+extern VTBL_ENTRY _ZTV6dd5520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5520[];
+static Base_Class bases_ee55520[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(56,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc520, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5520, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee55520[];
+extern void _ZN7ee555203barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee555203barEv,_ZTv0_n20_N7ee555203barEv)();
+extern void ABISELECT(_ZThn16_N7ee555203barEv,_ZThn8_N7ee555203barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee555203barEv,_ZTv0_n16_N7ee555203barEv)();
+extern void ABISELECT(_ZThn32_N7ee555203barEv,_ZThn16_N7ee555203barEv)() __attribute__((weak));
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY vtc_ee55520[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55520[0]),
+ (VTBL_ENTRY)&_ZN7ee555203barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee555203barEv,_ZTv0_n20_N7ee555203barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee555203barEv,_ZTv0_n16_N7ee555203barEv),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee55520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee55520[];
+extern void _ZN6dd55203barEv();
+static VTBL_ENTRY _tg__ZTV6dd5520__7ee55520[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5520[0]),
+ (VTBL_ENTRY)&_ZN6dd55203barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55203barEv,_ZTv0_n16_N6dd55203barEv)();
+extern void ABISELECT(_ZThn16_N6dd55203barEv,_ZThn8_N6dd55203barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc520__6dd5520__7ee55520[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55203barEv,_ZTv0_n16_N6dd55203barEv),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__6dd5520__7ee55520[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc520__7ee55520[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc520__7ee55520[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee55520[] = {
+ {&(_ZTV7ee55520[5]), 5,21},
+ {&(_ZTV7ee55520[11]), 11,21},
+ {&(_ZTV7ee55520[16]), 16,21},
+ {&(_ZTV7ee55520[20]), 20,21},
+ {&(_tg__ZTV6dd5520__7ee55520[4]), 4,5},
+ {&(_tg__ZTV5cc520__6dd5520__7ee55520[4]), 4,5},
+ {&(_tg__ZTV4bb20__6dd5520__7ee55520[3]), 3,4},
+ {&(_tg__ZTV5cc520__7ee55520[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc520__7ee55520[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee55520[];
+extern VTBL_ENTRY _ZTV7ee55520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55520[];
+static VTBL_ENTRY alt_thunk_names287[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55203barEv,_ZTv0_n16_N6dd55203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55203barEv,_ZThn8_N6dd55203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee555203barEv,_ZTv0_n16_N7ee555203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee555203barEv,_ZThn16_N7ee555203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee555203barEv,_ZTv0_n20_N7ee555203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee555203barEv,_ZThn8_N7ee555203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55520 = { "ee55520", // class name
+ bases_ee55520, 4,
+ &(vtc_ee55520[0]), // expected_vtbl_contents
+ &(vtt_ee55520[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee55520),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55520),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55520),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names287,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee65520 : dd5520 {
+ int e;
+ virtual void foo(); // _ZN7ee655203fooEv
+ virtual void bar(); // _ZN7ee655203barEv
+ ~ee65520(); // tgen
+ ee65520(); // tgen
+};
+//SIG(1 ee65520) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v1 Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65520 ::foo(){vfunc_called(this, "_ZN7ee655203fooEv");}
+void ee65520 ::bar(){vfunc_called(this, "_ZN7ee655203barEv");}
+ee65520 ::~ee65520(){ note_dtor("ee65520", this);} // tgen
+ee65520 ::ee65520(){ note_ctor("ee65520", this);} // tgen
+
+static void Test_ee65520()
+{
+ extern Class_Descriptor cd_ee65520;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee65520, buf);
+ ee65520 *dp, &lv = *(dp=new (buf) ee65520());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee65520)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65520)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee65520");
+ check_base_class_offset(lv, (bb20*)(cc520*), ABISELECT(32,20), "ee65520");
+ check_base_class_offset(lv, (cc520*)(dd5520*), ABISELECT(16,12), "ee65520");
+ check_base_class_offset(lv, (dd5520*), 0, "ee65520");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65520.e");
+ test_class_info(&lv, &cd_ee65520);
+ dp->~ee65520();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65520(Test_ee65520, "ee65520", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee65520C1Ev();
+extern void _ZN7ee65520D1Ev();
+Name_Map name_map_ee65520[] = {
+ NSPAIR(_ZN7ee65520C1Ev),
+ NSPAIR(_ZN7ee65520D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc520;
+extern VTBL_ENTRY _ZTI5cc520[];
+extern VTBL_ENTRY _ZTV5cc520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc520[];
+extern Class_Descriptor cd_dd5520;
+extern VTBL_ENTRY _ZTI6dd5520[];
+extern VTBL_ENTRY _ZTV6dd5520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5520[];
+static Base_Class bases_ee65520[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc520, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5520, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65520[];
+extern void _ZN7ee655203barEv();
+extern void _ZN7ee655203fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee655203barEv,_ZTv0_n16_N7ee655203barEv)();
+extern void ABISELECT(_ZThn16_N7ee655203barEv,_ZThn12_N7ee655203barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee655203fooEv,_ZTv0_n12_N7ee655203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee655203fooEv,_ZThn20_N7ee655203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65520[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65520[0]),
+ (VTBL_ENTRY)&_ZN7ee655203barEv,
+ (VTBL_ENTRY)&_ZN7ee655203fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee655203barEv,_ZTv0_n16_N7ee655203barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee65520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee655203fooEv,_ZTv0_n12_N7ee655203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee65520[];
+extern void _ZN6dd55203barEv();
+static VTBL_ENTRY _tg__ZTV6dd5520__7ee65520[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5520[0]),
+ (VTBL_ENTRY)&_ZN6dd55203barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55203barEv,_ZTv0_n16_N6dd55203barEv)();
+extern void ABISELECT(_ZThn16_N6dd55203barEv,_ZThn12_N6dd55203barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc520__6dd5520__7ee65520[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55203barEv,_ZTv0_n16_N6dd55203barEv),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__6dd5520__7ee65520[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc520__7ee65520[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc520__7ee65520[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee65520[] = {
+ {&(_ZTV7ee65520[4]), 4,15},
+ {&(_tg__ZTV6dd5520__7ee65520[4]), 4,5},
+ {&(_tg__ZTV5cc520__6dd5520__7ee65520[4]), 4,5},
+ {&(_tg__ZTV4bb20__6dd5520__7ee65520[3]), 3,4},
+ {&(_ZTV7ee65520[10]), 10,15},
+ {&(_ZTV7ee65520[14]), 14,15},
+ {&(_tg__ZTV5cc520__7ee65520[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc520__7ee65520[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee65520[];
+extern VTBL_ENTRY _ZTV7ee65520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65520[];
+static VTBL_ENTRY alt_thunk_names288[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55203barEv,_ZTv0_n16_N6dd55203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55203barEv,_ZThn12_N6dd55203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee655203fooEv,_ZTv0_n12_N7ee655203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee655203fooEv,_ZThn20_N7ee655203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee655203barEv,_ZTv0_n16_N7ee655203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee655203barEv,_ZThn12_N7ee655203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65520 = { "ee65520", // class name
+ bases_ee65520, 4,
+ &(vtc_ee65520[0]), // expected_vtbl_contents
+ &(vtt_ee65520[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee65520),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65520),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65520),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names288,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee75520 : virtual dd5520 {
+ int e;
+ virtual void foo(); // _ZN7ee755203fooEv
+ virtual void bar(); // _ZN7ee755203barEv
+ ~ee75520(); // tgen
+ ee75520(); // tgen
+};
+//SIG(1 ee75520) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v1 Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75520 ::foo(){vfunc_called(this, "_ZN7ee755203fooEv");}
+void ee75520 ::bar(){vfunc_called(this, "_ZN7ee755203barEv");}
+ee75520 ::~ee75520(){ note_dtor("ee75520", this);} // tgen
+ee75520 ::ee75520(){ note_ctor("ee75520", this);} // tgen
+
+static void Test_ee75520()
+{
+ extern Class_Descriptor cd_ee75520;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee75520, buf);
+ ee75520 *dp, &lv = *(dp=new (buf) ee75520());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee75520)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75520)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(56,28), "ee75520");
+ check_base_class_offset(lv, (bb20*)(cc520*), ABISELECT(48,24), "ee75520");
+ check_base_class_offset(lv, (cc520*)(dd5520*), ABISELECT(32,16), "ee75520");
+ check_base_class_offset(lv, (dd5520*), ABISELECT(16,8), "ee75520");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75520.e");
+ test_class_info(&lv, &cd_ee75520);
+ dp->~ee75520();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75520(Test_ee75520, "ee75520", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee75520C1Ev();
+extern void _ZN7ee75520D1Ev();
+Name_Map name_map_ee75520[] = {
+ NSPAIR(_ZN7ee75520C1Ev),
+ NSPAIR(_ZN7ee75520D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc520;
+extern VTBL_ENTRY _ZTI5cc520[];
+extern VTBL_ENTRY _ZTV5cc520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc520[];
+extern Class_Descriptor cd_dd5520;
+extern VTBL_ENTRY _ZTI6dd5520[];
+extern VTBL_ENTRY _ZTV6dd5520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5520[];
+static Base_Class bases_ee75520[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(56,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc520, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5520, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee75520[];
+extern void _ZN7ee755203fooEv();
+extern void _ZN7ee755203barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee755203barEv,_ZTv0_n20_N7ee755203barEv)();
+extern void ABISELECT(_ZThn16_N7ee755203barEv,_ZThn8_N7ee755203barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee755203barEv,_ZTv0_n16_N7ee755203barEv)();
+extern void ABISELECT(_ZThn32_N7ee755203barEv,_ZThn16_N7ee755203barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee755203fooEv,_ZTv0_n12_N7ee755203fooEv)();
+extern void ABISELECT(_ZThn48_N7ee755203fooEv,_ZThn24_N7ee755203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75520[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75520[0]),
+ (VTBL_ENTRY)&_ZN7ee755203fooEv,
+ (VTBL_ENTRY)&_ZN7ee755203barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee755203barEv,_ZTv0_n20_N7ee755203barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee755203barEv,_ZTv0_n16_N7ee755203barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee75520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee755203fooEv,_ZTv0_n12_N7ee755203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee75520[];
+extern void _ZN6dd55203barEv();
+static VTBL_ENTRY _tg__ZTV6dd5520__7ee75520[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5520[0]),
+ (VTBL_ENTRY)&_ZN6dd55203barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55203barEv,_ZTv0_n16_N6dd55203barEv)();
+extern void ABISELECT(_ZThn16_N6dd55203barEv,_ZThn8_N6dd55203barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc520__6dd5520__7ee75520[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55203barEv,_ZTv0_n16_N6dd55203barEv),
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__6dd5520__7ee75520[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc520__7ee75520[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc520__7ee75520[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee75520[] = {
+ {&(_ZTV7ee75520[5]), 5,22},
+ {&(_ZTV7ee75520[12]), 12,22},
+ {&(_ZTV7ee75520[17]), 17,22},
+ {&(_ZTV7ee75520[21]), 21,22},
+ {&(_tg__ZTV6dd5520__7ee75520[4]), 4,5},
+ {&(_tg__ZTV5cc520__6dd5520__7ee75520[4]), 4,5},
+ {&(_tg__ZTV4bb20__6dd5520__7ee75520[3]), 3,4},
+ {&(_tg__ZTV5cc520__7ee75520[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc520__7ee75520[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee75520[];
+extern VTBL_ENTRY _ZTV7ee75520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75520[];
+static VTBL_ENTRY alt_thunk_names289[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55203barEv,_ZTv0_n16_N6dd55203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55203barEv,_ZThn8_N6dd55203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee755203fooEv,_ZTv0_n12_N7ee755203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee755203fooEv,_ZThn24_N7ee755203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee755203barEv,_ZTv0_n16_N7ee755203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee755203barEv,_ZThn16_N7ee755203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee755203barEv,_ZTv0_n20_N7ee755203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee755203barEv,_ZThn8_N7ee755203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75520 = { "ee75520", // class name
+ bases_ee75520, 4,
+ &(vtc_ee75520[0]), // expected_vtbl_contents
+ &(vtt_ee75520[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee75520),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75520),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75520),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names289,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd6520 : cc520 {
+ int d;
+ virtual void bar(); // _ZN6dd65203barEv
+ virtual void foo(); // _ZN6dd65203fooEv
+ ~dd6520(); // tgen
+ dd6520(); // tgen
+};
+//SIG(-1 dd6520) C1{ BC2{ VBC3{ BC4{ Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void dd6520 ::bar(){vfunc_called(this, "_ZN6dd65203barEv");}
+void dd6520 ::foo(){vfunc_called(this, "_ZN6dd65203fooEv");}
+dd6520 ::~dd6520(){ note_dtor("dd6520", this);} // tgen
+dd6520 ::dd6520(){ note_ctor("dd6520", this);} // tgen
+
+static void Test_dd6520()
+{
+ extern Class_Descriptor cd_dd6520;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd6520, buf);
+ dd6520 *dp, &lv = *(dp=new (buf) dd6520());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd6520)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6520)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(24,16), "dd6520");
+ check_base_class_offset(lv, (bb20*)(cc520*), ABISELECT(16,12), "dd6520");
+ check_base_class_offset(lv, (cc520*), 0, "dd6520");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd6520.d");
+ test_class_info(&lv, &cd_dd6520);
+ dp->~dd6520();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6520(Test_dd6520, "dd6520", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd6520C1Ev();
+extern void _ZN6dd6520D1Ev();
+Name_Map name_map_dd6520[] = {
+ NSPAIR(_ZN6dd6520C1Ev),
+ NSPAIR(_ZN6dd6520D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc520;
+extern VTBL_ENTRY _ZTI5cc520[];
+extern VTBL_ENTRY _ZTV5cc520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc520[];
+static Base_Class bases_dd6520[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc520, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd6520[];
+extern void _ZN6dd65203barEv();
+extern void _ZN6dd65203fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd65203fooEv,_ZTv0_n12_N6dd65203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd65203fooEv,_ZThn12_N6dd65203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd6520[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6520[0]),
+ (VTBL_ENTRY)&_ZN6dd65203barEv,
+ (VTBL_ENTRY)&_ZN6dd65203fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65203fooEv,_ZTv0_n12_N6dd65203fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd6520[];
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc520__6dd6520[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc520__6dd6520[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_dd6520[] = {
+ {&(_ZTV6dd6520[3]), 3,9},
+ {&(_tg__ZTV5cc520__6dd6520[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc520__6dd6520[3]), 3,4},
+ {&(_ZTV6dd6520[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI6dd6520[];
+extern VTBL_ENTRY _ZTV6dd6520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6520[];
+static VTBL_ENTRY alt_thunk_names290[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65203fooEv,_ZTv0_n12_N6dd65203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65203fooEv,_ZThn12_N6dd65203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd6520 = { "dd6520", // class name
+ bases_dd6520, 3,
+ &(vtc_dd6520[0]), // expected_vtbl_contents
+ &(vtt_dd6520[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd6520),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6520),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd6520),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names290,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee06520 : dd6520 {
+ int e;
+ ~ee06520(); // tgen
+ ee06520(); // tgen
+};
+//SIG(1 ee06520) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v2 Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee06520 ::~ee06520(){ note_dtor("ee06520", this);} // tgen
+ee06520 ::ee06520(){ note_ctor("ee06520", this);} // tgen
+
+static void Test_ee06520()
+{
+ extern Class_Descriptor cd_ee06520;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee06520, buf);
+ ee06520 *dp, &lv = *(dp=new (buf) ee06520());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee06520)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06520)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(32,20), "ee06520");
+ check_base_class_offset(lv, (bb20*)(cc520*)(dd6520*), ABISELECT(24,16), "ee06520");
+ check_base_class_offset(lv, (cc520*)(dd6520*), 0, "ee06520");
+ check_base_class_offset(lv, (dd6520*), 0, "ee06520");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee06520.e");
+ test_class_info(&lv, &cd_ee06520);
+ dp->~ee06520();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06520(Test_ee06520, "ee06520", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee06520C1Ev();
+extern void _ZN7ee06520D1Ev();
+Name_Map name_map_ee06520[] = {
+ NSPAIR(_ZN7ee06520C1Ev),
+ NSPAIR(_ZN7ee06520D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc520;
+extern VTBL_ENTRY _ZTI5cc520[];
+extern VTBL_ENTRY _ZTV5cc520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc520[];
+extern Class_Descriptor cd_dd6520;
+extern VTBL_ENTRY _ZTI6dd6520[];
+extern VTBL_ENTRY _ZTV6dd6520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6520[];
+static Base_Class bases_ee06520[] = {
+ // 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_bb20, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc520, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6520, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee06520[];
+extern void _ZN6dd65203barEv();
+extern void _ZN6dd65203fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd65203fooEv,_ZTv0_n12_N6dd65203fooEv)();
+extern void ABISELECT(_ZThn24_N6dd65203fooEv,_ZThn16_N6dd65203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee06520[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06520[0]),
+ (VTBL_ENTRY)&_ZN6dd65203barEv,
+ (VTBL_ENTRY)&_ZN6dd65203fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee06520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65203fooEv,_ZTv0_n12_N6dd65203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee06520[];
+extern void _ZN6dd65203barEv();
+extern void _ZN6dd65203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6520__7ee06520[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6520[0]),
+ (VTBL_ENTRY)&_ZN6dd65203barEv,
+ (VTBL_ENTRY)&_ZN6dd65203fooEv,
+};
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc5206dd6520__7ee06520[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc5206dd6520__7ee06520[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd65203fooEv,_ZTv0_n12_N6dd65203fooEv)();
+extern void ABISELECT(_ZThn24_N6dd65203fooEv,_ZThn16_N6dd65203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd6520__7ee06520[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65203fooEv,_ZTv0_n12_N6dd65203fooEv),
+};
+static VTT_ENTRY vtt_ee06520[] = {
+ {&(_ZTV7ee06520[3]), 3,9},
+ {&(_tg__ZTV6dd6520__7ee06520[3]), 3,5},
+ {&(_tg__ZTV5cc5206dd6520__7ee06520[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc5206dd6520__7ee06520[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd6520__7ee06520[3]), 3,4},
+ {&(_ZTV7ee06520[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee06520[];
+extern VTBL_ENTRY _ZTV7ee06520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee06520[];
+static VTBL_ENTRY alt_thunk_names291[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65203fooEv,_ZTv0_n12_N6dd65203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65203fooEv,_ZThn16_N6dd65203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65203fooEv,_ZThn16_N6dd65203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee06520 = { "ee06520", // class name
+ bases_ee06520, 4,
+ &(vtc_ee06520[0]), // expected_vtbl_contents
+ &(vtt_ee06520[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee06520),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06520),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee06520),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names291,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee16520 : virtual dd6520 {
+ int e;
+ ~ee16520(); // tgen
+ ee16520(); // tgen
+};
+//SIG(1 ee16520) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v2 Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee16520 ::~ee16520(){ note_dtor("ee16520", this);} // tgen
+ee16520 ::ee16520(){ note_ctor("ee16520", this);} // tgen
+
+static void Test_ee16520()
+{
+ extern Class_Descriptor cd_ee16520;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee16520, buf);
+ ee16520 *dp, &lv = *(dp=new (buf) ee16520());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee16520)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16520)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee16520");
+ check_base_class_offset(lv, (bb20*)(cc520*)(dd6520*), ABISELECT(32,20), "ee16520");
+ check_base_class_offset(lv, (cc520*)(dd6520*), ABISELECT(16,8), "ee16520");
+ check_base_class_offset(lv, (dd6520*), ABISELECT(16,8), "ee16520");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16520.e");
+ test_class_info(&lv, &cd_ee16520);
+ dp->~ee16520();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16520(Test_ee16520, "ee16520", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee16520C1Ev();
+extern void _ZN7ee16520D1Ev();
+Name_Map name_map_ee16520[] = {
+ NSPAIR(_ZN7ee16520C1Ev),
+ NSPAIR(_ZN7ee16520D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc520;
+extern VTBL_ENTRY _ZTI5cc520[];
+extern VTBL_ENTRY _ZTV5cc520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc520[];
+extern Class_Descriptor cd_dd6520;
+extern VTBL_ENTRY _ZTI6dd6520[];
+extern VTBL_ENTRY _ZTV6dd6520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6520[];
+static Base_Class bases_ee16520[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc520, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6520, 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 _ZTI7ee16520[];
+extern void _ZN6dd65203barEv();
+extern void _ZN6dd65203fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd65203fooEv,_ZTv0_n12_N6dd65203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd65203fooEv,_ZThn12_N6dd65203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee16520[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16520[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16520[0]),
+ (VTBL_ENTRY)&_ZN6dd65203barEv,
+ (VTBL_ENTRY)&_ZN6dd65203fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee16520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65203fooEv,_ZTv0_n12_N6dd65203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee16520[];
+extern void _ZN6dd65203barEv();
+extern void _ZN6dd65203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6520__7ee16520[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6520[0]),
+ (VTBL_ENTRY)&_ZN6dd65203barEv,
+ (VTBL_ENTRY)&_ZN6dd65203fooEv,
+};
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc5206dd6520__7ee16520[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc5206dd6520__7ee16520[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd65203fooEv,_ZTv0_n12_N6dd65203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd65203fooEv,_ZThn12_N6dd65203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd6520__7ee16520[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65203fooEv,_ZTv0_n12_N6dd65203fooEv),
+};
+static VTT_ENTRY vtt_ee16520[] = {
+ {&(_ZTV7ee16520[4]), 4,15},
+ {&(_ZTV7ee16520[9]), 9,15},
+ {&(_ZTV7ee16520[14]), 14,15},
+ {&(_tg__ZTV6dd6520__7ee16520[3]), 3,5},
+ {&(_tg__ZTV5cc5206dd6520__7ee16520[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc5206dd6520__7ee16520[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd6520__7ee16520[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee16520[];
+extern VTBL_ENTRY _ZTV7ee16520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16520[];
+static VTBL_ENTRY alt_thunk_names292[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65203fooEv,_ZTv0_n12_N6dd65203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65203fooEv,_ZThn12_N6dd65203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65203fooEv,_ZThn12_N6dd65203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee16520 = { "ee16520", // class name
+ bases_ee16520, 4,
+ &(vtc_ee16520[0]), // expected_vtbl_contents
+ &(vtt_ee16520[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee16520),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16520),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16520),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names292,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee26520 : dd6520 {
+ int e;
+ virtual void foo(); // _ZN7ee265203fooEv
+ ~ee26520(); // tgen
+ ee26520(); // tgen
+};
+//SIG(1 ee26520) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v1 Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26520 ::foo(){vfunc_called(this, "_ZN7ee265203fooEv");}
+ee26520 ::~ee26520(){ note_dtor("ee26520", this);} // tgen
+ee26520 ::ee26520(){ note_ctor("ee26520", this);} // tgen
+
+static void Test_ee26520()
+{
+ extern Class_Descriptor cd_ee26520;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee26520, buf);
+ ee26520 *dp, &lv = *(dp=new (buf) ee26520());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee26520)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26520)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(32,20), "ee26520");
+ check_base_class_offset(lv, (bb20*)(cc520*)(dd6520*), ABISELECT(24,16), "ee26520");
+ check_base_class_offset(lv, (cc520*)(dd6520*), 0, "ee26520");
+ check_base_class_offset(lv, (dd6520*), 0, "ee26520");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee26520.e");
+ test_class_info(&lv, &cd_ee26520);
+ dp->~ee26520();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26520(Test_ee26520, "ee26520", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee26520C1Ev();
+extern void _ZN7ee26520D1Ev();
+Name_Map name_map_ee26520[] = {
+ NSPAIR(_ZN7ee26520C1Ev),
+ NSPAIR(_ZN7ee26520D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc520;
+extern VTBL_ENTRY _ZTI5cc520[];
+extern VTBL_ENTRY _ZTV5cc520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc520[];
+extern Class_Descriptor cd_dd6520;
+extern VTBL_ENTRY _ZTI6dd6520[];
+extern VTBL_ENTRY _ZTV6dd6520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6520[];
+static Base_Class bases_ee26520[] = {
+ // 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_bb20, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc520, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6520, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee26520[];
+extern void _ZN6dd65203barEv();
+extern void _ZN7ee265203fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee265203fooEv,_ZTv0_n12_N7ee265203fooEv)();
+extern void ABISELECT(_ZThn24_N7ee265203fooEv,_ZThn16_N7ee265203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee26520[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26520[0]),
+ (VTBL_ENTRY)&_ZN6dd65203barEv,
+ (VTBL_ENTRY)&_ZN7ee265203fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee26520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee265203fooEv,_ZTv0_n12_N7ee265203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee26520[];
+extern void _ZN6dd65203barEv();
+extern void _ZN6dd65203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6520__7ee26520[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6520[0]),
+ (VTBL_ENTRY)&_ZN6dd65203barEv,
+ (VTBL_ENTRY)&_ZN6dd65203fooEv,
+};
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc5206dd6520__7ee26520[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc5206dd6520__7ee26520[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd65203fooEv,_ZTv0_n12_N6dd65203fooEv)();
+extern void ABISELECT(_ZThn24_N6dd65203fooEv,_ZThn16_N6dd65203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd6520__7ee26520[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65203fooEv,_ZTv0_n12_N6dd65203fooEv),
+};
+static VTT_ENTRY vtt_ee26520[] = {
+ {&(_ZTV7ee26520[3]), 3,9},
+ {&(_tg__ZTV6dd6520__7ee26520[3]), 3,5},
+ {&(_tg__ZTV5cc5206dd6520__7ee26520[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc5206dd6520__7ee26520[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd6520__7ee26520[3]), 3,4},
+ {&(_ZTV7ee26520[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee26520[];
+extern VTBL_ENTRY _ZTV7ee26520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee26520[];
+static VTBL_ENTRY alt_thunk_names293[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65203fooEv,_ZTv0_n12_N6dd65203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65203fooEv,_ZThn16_N6dd65203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee265203fooEv,_ZTv0_n12_N7ee265203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee265203fooEv,_ZThn16_N7ee265203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee26520 = { "ee26520", // class name
+ bases_ee26520, 4,
+ &(vtc_ee26520[0]), // expected_vtbl_contents
+ &(vtt_ee26520[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee26520),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26520),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee26520),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names293,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee36520 : virtual dd6520 {
+ int e;
+ virtual void foo(); // _ZN7ee365203fooEv
+ ~ee36520(); // tgen
+ ee36520(); // tgen
+};
+//SIG(1 ee36520) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v1 Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36520 ::foo(){vfunc_called(this, "_ZN7ee365203fooEv");}
+ee36520 ::~ee36520(){ note_dtor("ee36520", this);} // tgen
+ee36520 ::ee36520(){ note_ctor("ee36520", this);} // tgen
+
+static void Test_ee36520()
+{
+ extern Class_Descriptor cd_ee36520;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee36520, buf);
+ ee36520 *dp, &lv = *(dp=new (buf) ee36520());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee36520)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36520)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee36520");
+ check_base_class_offset(lv, (bb20*)(cc520*)(dd6520*), ABISELECT(32,20), "ee36520");
+ check_base_class_offset(lv, (cc520*)(dd6520*), ABISELECT(16,8), "ee36520");
+ check_base_class_offset(lv, (dd6520*), ABISELECT(16,8), "ee36520");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36520.e");
+ test_class_info(&lv, &cd_ee36520);
+ dp->~ee36520();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36520(Test_ee36520, "ee36520", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee36520C1Ev();
+extern void _ZN7ee36520D1Ev();
+Name_Map name_map_ee36520[] = {
+ NSPAIR(_ZN7ee36520C1Ev),
+ NSPAIR(_ZN7ee36520D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc520;
+extern VTBL_ENTRY _ZTI5cc520[];
+extern VTBL_ENTRY _ZTV5cc520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc520[];
+extern Class_Descriptor cd_dd6520;
+extern VTBL_ENTRY _ZTI6dd6520[];
+extern VTBL_ENTRY _ZTV6dd6520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6520[];
+static Base_Class bases_ee36520[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc520, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6520, 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 _ZTI7ee36520[];
+extern void _ZN7ee365203fooEv();
+extern void _ZN6dd65203barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee365203fooEv,_ZTv0_n20_N7ee365203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee365203fooEv,_ZThn8_N7ee365203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee365203fooEv,_ZTv0_n12_N7ee365203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee365203fooEv,_ZThn20_N7ee365203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee36520[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36520[0]),
+ (VTBL_ENTRY)&_ZN7ee365203fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36520[0]),
+ (VTBL_ENTRY)&_ZN6dd65203barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee365203fooEv,_ZTv0_n20_N7ee365203fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee36520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee365203fooEv,_ZTv0_n12_N7ee365203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee36520[];
+extern void _ZN6dd65203barEv();
+extern void _ZN6dd65203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6520__7ee36520[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6520[0]),
+ (VTBL_ENTRY)&_ZN6dd65203barEv,
+ (VTBL_ENTRY)&_ZN6dd65203fooEv,
+};
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc5206dd6520__7ee36520[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc5206dd6520__7ee36520[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd65203fooEv,_ZTv0_n12_N6dd65203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd65203fooEv,_ZThn12_N6dd65203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd6520__7ee36520[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65203fooEv,_ZTv0_n12_N6dd65203fooEv),
+};
+static VTT_ENTRY vtt_ee36520[] = {
+ {&(_ZTV7ee36520[4]), 4,16},
+ {&(_ZTV7ee36520[10]), 10,16},
+ {&(_ZTV7ee36520[15]), 15,16},
+ {&(_tg__ZTV6dd6520__7ee36520[3]), 3,5},
+ {&(_tg__ZTV5cc5206dd6520__7ee36520[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc5206dd6520__7ee36520[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd6520__7ee36520[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee36520[];
+extern VTBL_ENTRY _ZTV7ee36520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36520[];
+static VTBL_ENTRY alt_thunk_names294[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65203fooEv,_ZTv0_n12_N6dd65203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65203fooEv,_ZThn12_N6dd65203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee365203fooEv,_ZTv0_n12_N7ee365203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee365203fooEv,_ZThn20_N7ee365203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee365203fooEv,_ZTv0_n20_N7ee365203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee365203fooEv,_ZThn8_N7ee365203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36520 = { "ee36520", // class name
+ bases_ee36520, 4,
+ &(vtc_ee36520[0]), // expected_vtbl_contents
+ &(vtt_ee36520[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee36520),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36520),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36520),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names294,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee46520 : dd6520 {
+ int e;
+ virtual void bar(); // _ZN7ee465203barEv
+ ~ee46520(); // tgen
+ ee46520(); // tgen
+};
+//SIG(1 ee46520) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v2 Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46520 ::bar(){vfunc_called(this, "_ZN7ee465203barEv");}
+ee46520 ::~ee46520(){ note_dtor("ee46520", this);} // tgen
+ee46520 ::ee46520(){ note_ctor("ee46520", this);} // tgen
+
+static void Test_ee46520()
+{
+ extern Class_Descriptor cd_ee46520;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee46520, buf);
+ ee46520 *dp, &lv = *(dp=new (buf) ee46520());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee46520)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46520)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(32,20), "ee46520");
+ check_base_class_offset(lv, (bb20*)(cc520*)(dd6520*), ABISELECT(24,16), "ee46520");
+ check_base_class_offset(lv, (cc520*)(dd6520*), 0, "ee46520");
+ check_base_class_offset(lv, (dd6520*), 0, "ee46520");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee46520.e");
+ test_class_info(&lv, &cd_ee46520);
+ dp->~ee46520();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46520(Test_ee46520, "ee46520", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee46520C1Ev();
+extern void _ZN7ee46520D1Ev();
+Name_Map name_map_ee46520[] = {
+ NSPAIR(_ZN7ee46520C1Ev),
+ NSPAIR(_ZN7ee46520D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc520;
+extern VTBL_ENTRY _ZTI5cc520[];
+extern VTBL_ENTRY _ZTV5cc520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc520[];
+extern Class_Descriptor cd_dd6520;
+extern VTBL_ENTRY _ZTI6dd6520[];
+extern VTBL_ENTRY _ZTV6dd6520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6520[];
+static Base_Class bases_ee46520[] = {
+ // 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_bb20, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc520, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6520, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee46520[];
+extern void _ZN7ee465203barEv();
+extern void _ZN6dd65203fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd65203fooEv,_ZTv0_n12_N6dd65203fooEv)();
+extern void ABISELECT(_ZThn24_N6dd65203fooEv,_ZThn16_N6dd65203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee46520[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46520[0]),
+ (VTBL_ENTRY)&_ZN7ee465203barEv,
+ (VTBL_ENTRY)&_ZN6dd65203fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee46520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65203fooEv,_ZTv0_n12_N6dd65203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee46520[];
+extern void _ZN6dd65203barEv();
+extern void _ZN6dd65203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6520__7ee46520[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6520[0]),
+ (VTBL_ENTRY)&_ZN6dd65203barEv,
+ (VTBL_ENTRY)&_ZN6dd65203fooEv,
+};
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc5206dd6520__7ee46520[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc5206dd6520__7ee46520[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd65203fooEv,_ZTv0_n12_N6dd65203fooEv)();
+extern void ABISELECT(_ZThn24_N6dd65203fooEv,_ZThn16_N6dd65203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd6520__7ee46520[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65203fooEv,_ZTv0_n12_N6dd65203fooEv),
+};
+static VTT_ENTRY vtt_ee46520[] = {
+ {&(_ZTV7ee46520[3]), 3,9},
+ {&(_tg__ZTV6dd6520__7ee46520[3]), 3,5},
+ {&(_tg__ZTV5cc5206dd6520__7ee46520[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc5206dd6520__7ee46520[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd6520__7ee46520[3]), 3,4},
+ {&(_ZTV7ee46520[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee46520[];
+extern VTBL_ENTRY _ZTV7ee46520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee46520[];
+static VTBL_ENTRY alt_thunk_names295[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65203fooEv,_ZTv0_n12_N6dd65203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65203fooEv,_ZThn16_N6dd65203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65203fooEv,_ZThn16_N6dd65203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee46520 = { "ee46520", // class name
+ bases_ee46520, 4,
+ &(vtc_ee46520[0]), // expected_vtbl_contents
+ &(vtt_ee46520[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee46520),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46520),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee46520),6, //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 ee56520 : virtual dd6520 {
+ int e;
+ virtual void bar(); // _ZN7ee565203barEv
+ ~ee56520(); // tgen
+ ee56520(); // tgen
+};
+//SIG(1 ee56520) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v2 Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56520 ::bar(){vfunc_called(this, "_ZN7ee565203barEv");}
+ee56520 ::~ee56520(){ note_dtor("ee56520", this);} // tgen
+ee56520 ::ee56520(){ note_ctor("ee56520", this);} // tgen
+
+static void Test_ee56520()
+{
+ extern Class_Descriptor cd_ee56520;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee56520, buf);
+ ee56520 *dp, &lv = *(dp=new (buf) ee56520());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee56520)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56520)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee56520");
+ check_base_class_offset(lv, (bb20*)(cc520*)(dd6520*), ABISELECT(32,20), "ee56520");
+ check_base_class_offset(lv, (cc520*)(dd6520*), ABISELECT(16,8), "ee56520");
+ check_base_class_offset(lv, (dd6520*), ABISELECT(16,8), "ee56520");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56520.e");
+ test_class_info(&lv, &cd_ee56520);
+ dp->~ee56520();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56520(Test_ee56520, "ee56520", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee56520C1Ev();
+extern void _ZN7ee56520D1Ev();
+Name_Map name_map_ee56520[] = {
+ NSPAIR(_ZN7ee56520C1Ev),
+ NSPAIR(_ZN7ee56520D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc520;
+extern VTBL_ENTRY _ZTI5cc520[];
+extern VTBL_ENTRY _ZTV5cc520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc520[];
+extern Class_Descriptor cd_dd6520;
+extern VTBL_ENTRY _ZTI6dd6520[];
+extern VTBL_ENTRY _ZTV6dd6520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6520[];
+static Base_Class bases_ee56520[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc520, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6520, 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 _ZTI7ee56520[];
+extern void _ZN7ee565203barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee565203barEv,_ZTv0_n16_N7ee565203barEv)();
+extern void ABISELECT(_ZThn16_N7ee565203barEv,_ZThn8_N7ee565203barEv)() __attribute__((weak));
+extern void _ZN6dd65203fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd65203fooEv,_ZTv0_n12_N6dd65203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd65203fooEv,_ZThn12_N6dd65203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56520[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56520[0]),
+ (VTBL_ENTRY)&_ZN7ee565203barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee565203barEv,_ZTv0_n16_N7ee565203barEv),
+ (VTBL_ENTRY)&_ZN6dd65203fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee56520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65203fooEv,_ZTv0_n12_N6dd65203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee56520[];
+extern void _ZN6dd65203barEv();
+extern void _ZN6dd65203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6520__7ee56520[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6520[0]),
+ (VTBL_ENTRY)&_ZN6dd65203barEv,
+ (VTBL_ENTRY)&_ZN6dd65203fooEv,
+};
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc5206dd6520__7ee56520[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc5206dd6520__7ee56520[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd65203fooEv,_ZTv0_n12_N6dd65203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd65203fooEv,_ZThn12_N6dd65203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd6520__7ee56520[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65203fooEv,_ZTv0_n12_N6dd65203fooEv),
+};
+static VTT_ENTRY vtt_ee56520[] = {
+ {&(_ZTV7ee56520[4]), 4,16},
+ {&(_ZTV7ee56520[10]), 10,16},
+ {&(_ZTV7ee56520[15]), 15,16},
+ {&(_tg__ZTV6dd6520__7ee56520[3]), 3,5},
+ {&(_tg__ZTV5cc5206dd6520__7ee56520[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc5206dd6520__7ee56520[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd6520__7ee56520[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee56520[];
+extern VTBL_ENTRY _ZTV7ee56520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56520[];
+static VTBL_ENTRY alt_thunk_names296[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65203fooEv,_ZTv0_n12_N6dd65203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65203fooEv,_ZThn12_N6dd65203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65203fooEv,_ZThn12_N6dd65203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee565203barEv,_ZTv0_n16_N7ee565203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee565203barEv,_ZThn8_N7ee565203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56520 = { "ee56520", // class name
+ bases_ee56520, 4,
+ &(vtc_ee56520[0]), // expected_vtbl_contents
+ &(vtt_ee56520[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee56520),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56520),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56520),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names296,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee66520 : dd6520 {
+ int e;
+ virtual void foo(); // _ZN7ee665203fooEv
+ virtual void bar(); // _ZN7ee665203barEv
+ ~ee66520(); // tgen
+ ee66520(); // tgen
+};
+//SIG(1 ee66520) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v1 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66520 ::foo(){vfunc_called(this, "_ZN7ee665203fooEv");}
+void ee66520 ::bar(){vfunc_called(this, "_ZN7ee665203barEv");}
+ee66520 ::~ee66520(){ note_dtor("ee66520", this);} // tgen
+ee66520 ::ee66520(){ note_ctor("ee66520", this);} // tgen
+
+static void Test_ee66520()
+{
+ extern Class_Descriptor cd_ee66520;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee66520, buf);
+ ee66520 *dp, &lv = *(dp=new (buf) ee66520());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee66520)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66520)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(32,20), "ee66520");
+ check_base_class_offset(lv, (bb20*)(cc520*)(dd6520*), ABISELECT(24,16), "ee66520");
+ check_base_class_offset(lv, (cc520*)(dd6520*), 0, "ee66520");
+ check_base_class_offset(lv, (dd6520*), 0, "ee66520");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee66520.e");
+ test_class_info(&lv, &cd_ee66520);
+ dp->~ee66520();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66520(Test_ee66520, "ee66520", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee66520C1Ev();
+extern void _ZN7ee66520D1Ev();
+Name_Map name_map_ee66520[] = {
+ NSPAIR(_ZN7ee66520C1Ev),
+ NSPAIR(_ZN7ee66520D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc520;
+extern VTBL_ENTRY _ZTI5cc520[];
+extern VTBL_ENTRY _ZTV5cc520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc520[];
+extern Class_Descriptor cd_dd6520;
+extern VTBL_ENTRY _ZTI6dd6520[];
+extern VTBL_ENTRY _ZTV6dd6520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6520[];
+static Base_Class bases_ee66520[] = {
+ // 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_bb20, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc520, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6520, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee66520[];
+extern void _ZN7ee665203barEv();
+extern void _ZN7ee665203fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee665203fooEv,_ZTv0_n12_N7ee665203fooEv)();
+extern void ABISELECT(_ZThn24_N7ee665203fooEv,_ZThn16_N7ee665203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee66520[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66520[0]),
+ (VTBL_ENTRY)&_ZN7ee665203barEv,
+ (VTBL_ENTRY)&_ZN7ee665203fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee66520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee665203fooEv,_ZTv0_n12_N7ee665203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee66520[];
+extern void _ZN6dd65203barEv();
+extern void _ZN6dd65203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6520__7ee66520[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6520[0]),
+ (VTBL_ENTRY)&_ZN6dd65203barEv,
+ (VTBL_ENTRY)&_ZN6dd65203fooEv,
+};
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc5206dd6520__7ee66520[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc5206dd6520__7ee66520[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd65203fooEv,_ZTv0_n12_N6dd65203fooEv)();
+extern void ABISELECT(_ZThn24_N6dd65203fooEv,_ZThn16_N6dd65203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd6520__7ee66520[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65203fooEv,_ZTv0_n12_N6dd65203fooEv),
+};
+static VTT_ENTRY vtt_ee66520[] = {
+ {&(_ZTV7ee66520[3]), 3,9},
+ {&(_tg__ZTV6dd6520__7ee66520[3]), 3,5},
+ {&(_tg__ZTV5cc5206dd6520__7ee66520[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc5206dd6520__7ee66520[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd6520__7ee66520[3]), 3,4},
+ {&(_ZTV7ee66520[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee66520[];
+extern VTBL_ENTRY _ZTV7ee66520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee66520[];
+static VTBL_ENTRY alt_thunk_names297[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65203fooEv,_ZTv0_n12_N6dd65203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65203fooEv,_ZThn16_N6dd65203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee665203fooEv,_ZTv0_n12_N7ee665203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee665203fooEv,_ZThn16_N7ee665203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee66520 = { "ee66520", // class name
+ bases_ee66520, 4,
+ &(vtc_ee66520[0]), // expected_vtbl_contents
+ &(vtt_ee66520[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee66520),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66520),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee66520),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names297,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee76520 : virtual dd6520 {
+ int e;
+ virtual void foo(); // _ZN7ee765203fooEv
+ virtual void bar(); // _ZN7ee765203barEv
+ ~ee76520(); // tgen
+ ee76520(); // tgen
+};
+//SIG(1 ee76520) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v1 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76520 ::foo(){vfunc_called(this, "_ZN7ee765203fooEv");}
+void ee76520 ::bar(){vfunc_called(this, "_ZN7ee765203barEv");}
+ee76520 ::~ee76520(){ note_dtor("ee76520", this);} // tgen
+ee76520 ::ee76520(){ note_ctor("ee76520", this);} // tgen
+
+static void Test_ee76520()
+{
+ extern Class_Descriptor cd_ee76520;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee76520, buf);
+ ee76520 *dp, &lv = *(dp=new (buf) ee76520());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee76520)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76520)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee76520");
+ check_base_class_offset(lv, (bb20*)(cc520*)(dd6520*), ABISELECT(32,20), "ee76520");
+ check_base_class_offset(lv, (cc520*)(dd6520*), ABISELECT(16,8), "ee76520");
+ check_base_class_offset(lv, (dd6520*), ABISELECT(16,8), "ee76520");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76520.e");
+ test_class_info(&lv, &cd_ee76520);
+ dp->~ee76520();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76520(Test_ee76520, "ee76520", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee76520C1Ev();
+extern void _ZN7ee76520D1Ev();
+Name_Map name_map_ee76520[] = {
+ NSPAIR(_ZN7ee76520C1Ev),
+ NSPAIR(_ZN7ee76520D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc520;
+extern VTBL_ENTRY _ZTI5cc520[];
+extern VTBL_ENTRY _ZTV5cc520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc520[];
+extern Class_Descriptor cd_dd6520;
+extern VTBL_ENTRY _ZTI6dd6520[];
+extern VTBL_ENTRY _ZTV6dd6520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6520[];
+static Base_Class bases_ee76520[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc520, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6520, ABISELECT(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 _ZTI7ee76520[];
+extern void _ZN7ee765203fooEv();
+extern void _ZN7ee765203barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee765203barEv,_ZTv0_n16_N7ee765203barEv)();
+extern void ABISELECT(_ZThn16_N7ee765203barEv,_ZThn8_N7ee765203barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee765203fooEv,_ZTv0_n20_N7ee765203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee765203fooEv,_ZThn8_N7ee765203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee765203fooEv,_ZTv0_n12_N7ee765203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee765203fooEv,_ZThn20_N7ee765203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76520[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76520[0]),
+ (VTBL_ENTRY)&_ZN7ee765203fooEv,
+ (VTBL_ENTRY)&_ZN7ee765203barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee765203barEv,_ZTv0_n16_N7ee765203barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee765203fooEv,_ZTv0_n20_N7ee765203fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee76520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee765203fooEv,_ZTv0_n12_N7ee765203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee76520[];
+extern void _ZN6dd65203barEv();
+extern void _ZN6dd65203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6520__7ee76520[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6520[0]),
+ (VTBL_ENTRY)&_ZN6dd65203barEv,
+ (VTBL_ENTRY)&_ZN6dd65203fooEv,
+};
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc5206dd6520__7ee76520[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc5206dd6520__7ee76520[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd65203fooEv,_ZTv0_n12_N6dd65203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd65203fooEv,_ZThn12_N6dd65203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd6520__7ee76520[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65203fooEv,_ZTv0_n12_N6dd65203fooEv),
+};
+static VTT_ENTRY vtt_ee76520[] = {
+ {&(_ZTV7ee76520[4]), 4,17},
+ {&(_ZTV7ee76520[11]), 11,17},
+ {&(_ZTV7ee76520[16]), 16,17},
+ {&(_tg__ZTV6dd6520__7ee76520[3]), 3,5},
+ {&(_tg__ZTV5cc5206dd6520__7ee76520[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc5206dd6520__7ee76520[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd6520__7ee76520[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee76520[];
+extern VTBL_ENTRY _ZTV7ee76520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76520[];
+static VTBL_ENTRY alt_thunk_names298[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65203fooEv,_ZTv0_n12_N6dd65203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65203fooEv,_ZThn12_N6dd65203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee765203fooEv,_ZTv0_n12_N7ee765203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee765203fooEv,_ZThn20_N7ee765203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee765203fooEv,_ZTv0_n20_N7ee765203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee765203fooEv,_ZThn8_N7ee765203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee765203barEv,_ZTv0_n16_N7ee765203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee765203barEv,_ZThn8_N7ee765203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76520 = { "ee76520", // class name
+ bases_ee76520, 4,
+ &(vtc_ee76520[0]), // expected_vtbl_contents
+ &(vtt_ee76520[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee76520),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76520),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76520),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names298,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd7520 : virtual cc520 {
+ int d;
+ virtual void bar(); // _ZN6dd75203barEv
+ virtual void foo(); // _ZN6dd75203fooEv
+ ~dd7520(); // tgen
+ dd7520(); // tgen
+};
+//SIG(-1 dd7520) C1{ VBC2{ VBC3{ BC4{ Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void dd7520 ::bar(){vfunc_called(this, "_ZN6dd75203barEv");}
+void dd7520 ::foo(){vfunc_called(this, "_ZN6dd75203fooEv");}
+dd7520 ::~dd7520(){ note_dtor("dd7520", this);} // tgen
+dd7520 ::dd7520(){ note_ctor("dd7520", this);} // tgen
+
+static void Test_dd7520()
+{
+ extern Class_Descriptor cd_dd7520;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd7520, buf);
+ dd7520 *dp, &lv = *(dp=new (buf) dd7520());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd7520)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7520)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,20), "dd7520");
+ check_base_class_offset(lv, (bb20*)(cc520*), ABISELECT(32,16), "dd7520");
+ check_base_class_offset(lv, (cc520*), ABISELECT(16,8), "dd7520");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7520.d");
+ test_class_info(&lv, &cd_dd7520);
+ dp->~dd7520();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7520(Test_dd7520, "dd7520", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd7520C1Ev();
+extern void _ZN6dd7520D1Ev();
+Name_Map name_map_dd7520[] = {
+ NSPAIR(_ZN6dd7520C1Ev),
+ NSPAIR(_ZN6dd7520D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc520;
+extern VTBL_ENTRY _ZTI5cc520[];
+extern VTBL_ENTRY _ZTV5cc520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc520[];
+static Base_Class bases_dd7520[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc520, 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 _ZTI6dd7520[];
+extern void _ZN6dd75203barEv();
+extern void _ZN6dd75203fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd75203barEv,_ZTv0_n16_N6dd75203barEv)();
+extern void ABISELECT(_ZThn16_N6dd75203barEv,_ZThn8_N6dd75203barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd75203fooEv,_ZTv0_n12_N6dd75203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75203fooEv,_ZThn16_N6dd75203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7520[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7520[0]),
+ (VTBL_ENTRY)&_ZN6dd75203barEv,
+ (VTBL_ENTRY)&_ZN6dd75203fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75203barEv,_ZTv0_n16_N6dd75203barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75203fooEv,_ZTv0_n12_N6dd75203fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd7520[];
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc520__6dd7520[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc520__6dd7520[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_dd7520[] = {
+ {&(_ZTV6dd7520[4]), 4,15},
+ {&(_ZTV6dd7520[10]), 10,15},
+ {&(_ZTV6dd7520[14]), 14,15},
+ {&(_tg__ZTV5cc520__6dd7520[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc520__6dd7520[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd7520[];
+extern VTBL_ENTRY _ZTV6dd7520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7520[];
+static VTBL_ENTRY alt_thunk_names299[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75203fooEv,_ZTv0_n12_N6dd75203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75203fooEv,_ZThn16_N6dd75203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75203barEv,_ZTv0_n16_N6dd75203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75203barEv,_ZThn8_N6dd75203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7520 = { "dd7520", // class name
+ bases_dd7520, 3,
+ &(vtc_dd7520[0]), // expected_vtbl_contents
+ &(vtt_dd7520[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd7520),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7520),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7520),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names299,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07520 : dd7520 {
+ int e;
+ ~ee07520(); // tgen
+ ee07520(); // tgen
+};
+//SIG(1 ee07520) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v2 Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee07520 ::~ee07520(){ note_dtor("ee07520", this);} // tgen
+ee07520 ::ee07520(){ note_ctor("ee07520", this);} // tgen
+
+static void Test_ee07520()
+{
+ extern Class_Descriptor cd_ee07520;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee07520, buf);
+ ee07520 *dp, &lv = *(dp=new (buf) ee07520());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee07520)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07520)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee07520");
+ check_base_class_offset(lv, (bb20*)(cc520*), ABISELECT(32,20), "ee07520");
+ check_base_class_offset(lv, (cc520*)(dd7520*), ABISELECT(16,12), "ee07520");
+ check_base_class_offset(lv, (dd7520*), 0, "ee07520");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07520.e");
+ test_class_info(&lv, &cd_ee07520);
+ dp->~ee07520();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07520(Test_ee07520, "ee07520", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee07520C1Ev();
+extern void _ZN7ee07520D1Ev();
+Name_Map name_map_ee07520[] = {
+ NSPAIR(_ZN7ee07520C1Ev),
+ NSPAIR(_ZN7ee07520D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc520;
+extern VTBL_ENTRY _ZTI5cc520[];
+extern VTBL_ENTRY _ZTV5cc520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc520[];
+extern Class_Descriptor cd_dd7520;
+extern VTBL_ENTRY _ZTI6dd7520[];
+extern VTBL_ENTRY _ZTV6dd7520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7520[];
+static Base_Class bases_ee07520[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc520, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7520, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07520[];
+extern void _ZN6dd75203barEv();
+extern void _ZN6dd75203fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd75203barEv,_ZTv0_n16_N6dd75203barEv)();
+extern void ABISELECT(_ZThn16_N6dd75203barEv,_ZThn12_N6dd75203barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd75203fooEv,_ZTv0_n12_N6dd75203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75203fooEv,_ZThn20_N6dd75203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07520[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07520[0]),
+ (VTBL_ENTRY)&_ZN6dd75203barEv,
+ (VTBL_ENTRY)&_ZN6dd75203fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75203barEv,_ZTv0_n16_N6dd75203barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee07520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75203fooEv,_ZTv0_n12_N6dd75203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee07520[];
+extern void _ZN6dd75203barEv();
+extern void _ZN6dd75203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7520__7ee07520[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7520[0]),
+ (VTBL_ENTRY)&_ZN6dd75203barEv,
+ (VTBL_ENTRY)&_ZN6dd75203fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75203barEv,_ZTv0_n16_N6dd75203barEv)();
+extern void ABISELECT(_ZThn16_N6dd75203barEv,_ZThn12_N6dd75203barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc520__6dd7520__7ee07520[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75203barEv,_ZTv0_n16_N6dd75203barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd75203fooEv,_ZTv0_n12_N6dd75203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75203fooEv,_ZThn20_N6dd75203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd7520__7ee07520[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75203fooEv,_ZTv0_n12_N6dd75203fooEv),
+};
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc520__7ee07520[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc520__7ee07520[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee07520[] = {
+ {&(_ZTV7ee07520[4]), 4,15},
+ {&(_tg__ZTV6dd7520__7ee07520[4]), 4,6},
+ {&(_tg__ZTV5cc520__6dd7520__7ee07520[4]), 4,5},
+ {&(_tg__ZTV4bb20__6dd7520__7ee07520[3]), 3,4},
+ {&(_ZTV7ee07520[10]), 10,15},
+ {&(_ZTV7ee07520[14]), 14,15},
+ {&(_tg__ZTV5cc520__7ee07520[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc520__7ee07520[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee07520[];
+extern VTBL_ENTRY _ZTV7ee07520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07520[];
+static VTBL_ENTRY alt_thunk_names300[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75203fooEv,_ZTv0_n12_N6dd75203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75203fooEv,_ZThn20_N6dd75203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75203fooEv,_ZThn20_N6dd75203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75203barEv,_ZTv0_n16_N6dd75203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75203barEv,_ZThn12_N6dd75203barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75203barEv,_ZThn12_N6dd75203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07520 = { "ee07520", // class name
+ bases_ee07520, 4,
+ &(vtc_ee07520[0]), // expected_vtbl_contents
+ &(vtt_ee07520[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee07520),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07520),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07520),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names300,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee17520 : virtual dd7520 {
+ int e;
+ ~ee17520(); // tgen
+ ee17520(); // tgen
+};
+//SIG(1 ee17520) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v2 Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee17520 ::~ee17520(){ note_dtor("ee17520", this);} // tgen
+ee17520 ::ee17520(){ note_ctor("ee17520", this);} // tgen
+
+static void Test_ee17520()
+{
+ extern Class_Descriptor cd_ee17520;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee17520, buf);
+ ee17520 *dp, &lv = *(dp=new (buf) ee17520());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee17520)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17520)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(56,28), "ee17520");
+ check_base_class_offset(lv, (bb20*)(cc520*), ABISELECT(48,24), "ee17520");
+ check_base_class_offset(lv, (cc520*)(dd7520*), ABISELECT(32,16), "ee17520");
+ check_base_class_offset(lv, (dd7520*), ABISELECT(16,8), "ee17520");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17520.e");
+ test_class_info(&lv, &cd_ee17520);
+ dp->~ee17520();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17520(Test_ee17520, "ee17520", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee17520C1Ev();
+extern void _ZN7ee17520D1Ev();
+Name_Map name_map_ee17520[] = {
+ NSPAIR(_ZN7ee17520C1Ev),
+ NSPAIR(_ZN7ee17520D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc520;
+extern VTBL_ENTRY _ZTI5cc520[];
+extern VTBL_ENTRY _ZTV5cc520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc520[];
+extern Class_Descriptor cd_dd7520;
+extern VTBL_ENTRY _ZTI6dd7520[];
+extern VTBL_ENTRY _ZTV6dd7520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7520[];
+static Base_Class bases_ee17520[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(56,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc520, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7520, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee17520[];
+extern void _ZN6dd75203barEv();
+extern void _ZN6dd75203fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd75203barEv,_ZTv0_n16_N6dd75203barEv)();
+extern void ABISELECT(_ZThn16_N6dd75203barEv,_ZThn8_N6dd75203barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd75203fooEv,_ZTv0_n12_N6dd75203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75203fooEv,_ZThn16_N6dd75203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17520[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17520[0]),
+ 0,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17520[0]),
+ (VTBL_ENTRY)&_ZN6dd75203barEv,
+ (VTBL_ENTRY)&_ZN6dd75203fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75203barEv,_ZTv0_n16_N6dd75203barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee17520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75203fooEv,_ZTv0_n12_N6dd75203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee17520[];
+extern void _ZN6dd75203barEv();
+extern void _ZN6dd75203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7520__7ee17520[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7520[0]),
+ (VTBL_ENTRY)&_ZN6dd75203barEv,
+ (VTBL_ENTRY)&_ZN6dd75203fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75203barEv,_ZTv0_n16_N6dd75203barEv)();
+extern void ABISELECT(_ZThn16_N6dd75203barEv,_ZThn8_N6dd75203barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc520__6dd7520__7ee17520[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75203barEv,_ZTv0_n16_N6dd75203barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd75203fooEv,_ZTv0_n12_N6dd75203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75203fooEv,_ZThn16_N6dd75203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd7520__7ee17520[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75203fooEv,_ZTv0_n12_N6dd75203fooEv),
+};
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc520__7ee17520[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc520__7ee17520[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee17520[] = {
+ {&(_ZTV7ee17520[5]), 5,22},
+ {&(_ZTV7ee17520[11]), 11,22},
+ {&(_ZTV7ee17520[17]), 17,22},
+ {&(_ZTV7ee17520[21]), 21,22},
+ {&(_tg__ZTV6dd7520__7ee17520[4]), 4,6},
+ {&(_tg__ZTV5cc520__6dd7520__7ee17520[4]), 4,5},
+ {&(_tg__ZTV4bb20__6dd7520__7ee17520[3]), 3,4},
+ {&(_tg__ZTV5cc520__7ee17520[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc520__7ee17520[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee17520[];
+extern VTBL_ENTRY _ZTV7ee17520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17520[];
+static VTBL_ENTRY alt_thunk_names301[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75203fooEv,_ZTv0_n12_N6dd75203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75203fooEv,_ZThn16_N6dd75203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75203fooEv,_ZThn16_N6dd75203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75203barEv,_ZTv0_n16_N6dd75203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75203barEv,_ZThn8_N6dd75203barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75203barEv,_ZThn8_N6dd75203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17520 = { "ee17520", // class name
+ bases_ee17520, 4,
+ &(vtc_ee17520[0]), // expected_vtbl_contents
+ &(vtt_ee17520[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee17520),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17520),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17520),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names301,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee27520 : dd7520 {
+ int e;
+ virtual void foo(); // _ZN7ee275203fooEv
+ ~ee27520(); // tgen
+ ee27520(); // tgen
+};
+//SIG(1 ee27520) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v1 Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27520 ::foo(){vfunc_called(this, "_ZN7ee275203fooEv");}
+ee27520 ::~ee27520(){ note_dtor("ee27520", this);} // tgen
+ee27520 ::ee27520(){ note_ctor("ee27520", this);} // tgen
+
+static void Test_ee27520()
+{
+ extern Class_Descriptor cd_ee27520;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee27520, buf);
+ ee27520 *dp, &lv = *(dp=new (buf) ee27520());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee27520)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27520)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee27520");
+ check_base_class_offset(lv, (bb20*)(cc520*), ABISELECT(32,20), "ee27520");
+ check_base_class_offset(lv, (cc520*)(dd7520*), ABISELECT(16,12), "ee27520");
+ check_base_class_offset(lv, (dd7520*), 0, "ee27520");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27520.e");
+ test_class_info(&lv, &cd_ee27520);
+ dp->~ee27520();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27520(Test_ee27520, "ee27520", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee27520C1Ev();
+extern void _ZN7ee27520D1Ev();
+Name_Map name_map_ee27520[] = {
+ NSPAIR(_ZN7ee27520C1Ev),
+ NSPAIR(_ZN7ee27520D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc520;
+extern VTBL_ENTRY _ZTI5cc520[];
+extern VTBL_ENTRY _ZTV5cc520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc520[];
+extern Class_Descriptor cd_dd7520;
+extern VTBL_ENTRY _ZTI6dd7520[];
+extern VTBL_ENTRY _ZTV6dd7520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7520[];
+static Base_Class bases_ee27520[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc520, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7520, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27520[];
+extern void _ZN6dd75203barEv();
+extern void _ZN7ee275203fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd75203barEv,_ZTv0_n16_N6dd75203barEv)();
+extern void ABISELECT(_ZThn16_N6dd75203barEv,_ZThn12_N6dd75203barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee275203fooEv,_ZTv0_n12_N7ee275203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee275203fooEv,_ZThn20_N7ee275203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27520[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27520[0]),
+ (VTBL_ENTRY)&_ZN6dd75203barEv,
+ (VTBL_ENTRY)&_ZN7ee275203fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75203barEv,_ZTv0_n16_N6dd75203barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee27520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee275203fooEv,_ZTv0_n12_N7ee275203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee27520[];
+extern void _ZN6dd75203barEv();
+extern void _ZN6dd75203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7520__7ee27520[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7520[0]),
+ (VTBL_ENTRY)&_ZN6dd75203barEv,
+ (VTBL_ENTRY)&_ZN6dd75203fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75203barEv,_ZTv0_n16_N6dd75203barEv)();
+extern void ABISELECT(_ZThn16_N6dd75203barEv,_ZThn12_N6dd75203barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc520__6dd7520__7ee27520[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75203barEv,_ZTv0_n16_N6dd75203barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd75203fooEv,_ZTv0_n12_N6dd75203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75203fooEv,_ZThn20_N6dd75203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd7520__7ee27520[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75203fooEv,_ZTv0_n12_N6dd75203fooEv),
+};
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc520__7ee27520[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc520__7ee27520[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee27520[] = {
+ {&(_ZTV7ee27520[4]), 4,15},
+ {&(_tg__ZTV6dd7520__7ee27520[4]), 4,6},
+ {&(_tg__ZTV5cc520__6dd7520__7ee27520[4]), 4,5},
+ {&(_tg__ZTV4bb20__6dd7520__7ee27520[3]), 3,4},
+ {&(_ZTV7ee27520[10]), 10,15},
+ {&(_ZTV7ee27520[14]), 14,15},
+ {&(_tg__ZTV5cc520__7ee27520[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc520__7ee27520[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee27520[];
+extern VTBL_ENTRY _ZTV7ee27520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27520[];
+static VTBL_ENTRY alt_thunk_names302[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75203fooEv,_ZTv0_n12_N6dd75203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75203fooEv,_ZThn20_N6dd75203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee275203fooEv,_ZTv0_n12_N7ee275203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee275203fooEv,_ZThn20_N7ee275203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75203barEv,_ZTv0_n16_N6dd75203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75203barEv,_ZThn12_N6dd75203barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75203barEv,_ZThn12_N6dd75203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27520 = { "ee27520", // class name
+ bases_ee27520, 4,
+ &(vtc_ee27520[0]), // expected_vtbl_contents
+ &(vtt_ee27520[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee27520),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27520),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27520),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names302,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee37520 : virtual dd7520 {
+ int e;
+ virtual void foo(); // _ZN7ee375203fooEv
+ ~ee37520(); // tgen
+ ee37520(); // tgen
+};
+//SIG(1 ee37520) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v1 Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37520 ::foo(){vfunc_called(this, "_ZN7ee375203fooEv");}
+ee37520 ::~ee37520(){ note_dtor("ee37520", this);} // tgen
+ee37520 ::ee37520(){ note_ctor("ee37520", this);} // tgen
+
+static void Test_ee37520()
+{
+ extern Class_Descriptor cd_ee37520;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee37520, buf);
+ ee37520 *dp, &lv = *(dp=new (buf) ee37520());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee37520)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37520)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(56,28), "ee37520");
+ check_base_class_offset(lv, (bb20*)(cc520*), ABISELECT(48,24), "ee37520");
+ check_base_class_offset(lv, (cc520*)(dd7520*), ABISELECT(32,16), "ee37520");
+ check_base_class_offset(lv, (dd7520*), ABISELECT(16,8), "ee37520");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37520.e");
+ test_class_info(&lv, &cd_ee37520);
+ dp->~ee37520();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37520(Test_ee37520, "ee37520", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee37520C1Ev();
+extern void _ZN7ee37520D1Ev();
+Name_Map name_map_ee37520[] = {
+ NSPAIR(_ZN7ee37520C1Ev),
+ NSPAIR(_ZN7ee37520D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc520;
+extern VTBL_ENTRY _ZTI5cc520[];
+extern VTBL_ENTRY _ZTV5cc520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc520[];
+extern Class_Descriptor cd_dd7520;
+extern VTBL_ENTRY _ZTI6dd7520[];
+extern VTBL_ENTRY _ZTV6dd7520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7520[];
+static Base_Class bases_ee37520[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(56,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc520, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7520, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee37520[];
+extern void _ZN7ee375203fooEv();
+extern void _ZN6dd75203barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee375203fooEv,_ZTv0_n24_N7ee375203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee375203fooEv,_ZThn8_N7ee375203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75203barEv,_ZTv0_n16_N6dd75203barEv)();
+extern void ABISELECT(_ZThn16_N6dd75203barEv,_ZThn8_N6dd75203barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee375203fooEv,_ZTv0_n12_N7ee375203fooEv)();
+extern void ABISELECT(_ZThn48_N7ee375203fooEv,_ZThn24_N7ee375203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37520[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37520[0]),
+ (VTBL_ENTRY)&_ZN7ee375203fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37520[0]),
+ (VTBL_ENTRY)&_ZN6dd75203barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee375203fooEv,_ZTv0_n24_N7ee375203fooEv),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75203barEv,_ZTv0_n16_N6dd75203barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee37520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee375203fooEv,_ZTv0_n12_N7ee375203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee37520[];
+extern void _ZN6dd75203barEv();
+extern void _ZN6dd75203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7520__7ee37520[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7520[0]),
+ (VTBL_ENTRY)&_ZN6dd75203barEv,
+ (VTBL_ENTRY)&_ZN6dd75203fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75203barEv,_ZTv0_n16_N6dd75203barEv)();
+extern void ABISELECT(_ZThn16_N6dd75203barEv,_ZThn8_N6dd75203barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc520__6dd7520__7ee37520[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75203barEv,_ZTv0_n16_N6dd75203barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd75203fooEv,_ZTv0_n12_N6dd75203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75203fooEv,_ZThn16_N6dd75203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd7520__7ee37520[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75203fooEv,_ZTv0_n12_N6dd75203fooEv),
+};
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc520__7ee37520[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc520__7ee37520[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee37520[] = {
+ {&(_ZTV7ee37520[5]), 5,23},
+ {&(_ZTV7ee37520[12]), 12,23},
+ {&(_ZTV7ee37520[18]), 18,23},
+ {&(_ZTV7ee37520[22]), 22,23},
+ {&(_tg__ZTV6dd7520__7ee37520[4]), 4,6},
+ {&(_tg__ZTV5cc520__6dd7520__7ee37520[4]), 4,5},
+ {&(_tg__ZTV4bb20__6dd7520__7ee37520[3]), 3,4},
+ {&(_tg__ZTV5cc520__7ee37520[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc520__7ee37520[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee37520[];
+extern VTBL_ENTRY _ZTV7ee37520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37520[];
+static VTBL_ENTRY alt_thunk_names303[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75203fooEv,_ZTv0_n12_N6dd75203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75203fooEv,_ZThn16_N6dd75203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee375203fooEv,_ZTv0_n12_N7ee375203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee375203fooEv,_ZThn24_N7ee375203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75203barEv,_ZTv0_n16_N6dd75203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75203barEv,_ZThn8_N6dd75203barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75203barEv,_ZThn8_N6dd75203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee375203fooEv,_ZTv0_n24_N7ee375203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee375203fooEv,_ZThn8_N7ee375203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37520 = { "ee37520", // class name
+ bases_ee37520, 4,
+ &(vtc_ee37520[0]), // expected_vtbl_contents
+ &(vtt_ee37520[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee37520),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37520),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37520),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names303,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee47520 : dd7520 {
+ int e;
+ virtual void bar(); // _ZN7ee475203barEv
+ ~ee47520(); // tgen
+ ee47520(); // tgen
+};
+//SIG(1 ee47520) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v2 Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47520 ::bar(){vfunc_called(this, "_ZN7ee475203barEv");}
+ee47520 ::~ee47520(){ note_dtor("ee47520", this);} // tgen
+ee47520 ::ee47520(){ note_ctor("ee47520", this);} // tgen
+
+static void Test_ee47520()
+{
+ extern Class_Descriptor cd_ee47520;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee47520, buf);
+ ee47520 *dp, &lv = *(dp=new (buf) ee47520());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee47520)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47520)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee47520");
+ check_base_class_offset(lv, (bb20*)(cc520*), ABISELECT(32,20), "ee47520");
+ check_base_class_offset(lv, (cc520*)(dd7520*), ABISELECT(16,12), "ee47520");
+ check_base_class_offset(lv, (dd7520*), 0, "ee47520");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47520.e");
+ test_class_info(&lv, &cd_ee47520);
+ dp->~ee47520();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47520(Test_ee47520, "ee47520", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee47520C1Ev();
+extern void _ZN7ee47520D1Ev();
+Name_Map name_map_ee47520[] = {
+ NSPAIR(_ZN7ee47520C1Ev),
+ NSPAIR(_ZN7ee47520D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc520;
+extern VTBL_ENTRY _ZTI5cc520[];
+extern VTBL_ENTRY _ZTV5cc520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc520[];
+extern Class_Descriptor cd_dd7520;
+extern VTBL_ENTRY _ZTI6dd7520[];
+extern VTBL_ENTRY _ZTV6dd7520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7520[];
+static Base_Class bases_ee47520[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc520, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7520, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47520[];
+extern void _ZN7ee475203barEv();
+extern void _ZN6dd75203fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee475203barEv,_ZTv0_n16_N7ee475203barEv)();
+extern void ABISELECT(_ZThn16_N7ee475203barEv,_ZThn12_N7ee475203barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd75203fooEv,_ZTv0_n12_N6dd75203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75203fooEv,_ZThn20_N6dd75203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47520[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47520[0]),
+ (VTBL_ENTRY)&_ZN7ee475203barEv,
+ (VTBL_ENTRY)&_ZN6dd75203fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee475203barEv,_ZTv0_n16_N7ee475203barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee47520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75203fooEv,_ZTv0_n12_N6dd75203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee47520[];
+extern void _ZN6dd75203barEv();
+extern void _ZN6dd75203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7520__7ee47520[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7520[0]),
+ (VTBL_ENTRY)&_ZN6dd75203barEv,
+ (VTBL_ENTRY)&_ZN6dd75203fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75203barEv,_ZTv0_n16_N6dd75203barEv)();
+extern void ABISELECT(_ZThn16_N6dd75203barEv,_ZThn12_N6dd75203barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc520__6dd7520__7ee47520[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75203barEv,_ZTv0_n16_N6dd75203barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd75203fooEv,_ZTv0_n12_N6dd75203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75203fooEv,_ZThn20_N6dd75203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd7520__7ee47520[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75203fooEv,_ZTv0_n12_N6dd75203fooEv),
+};
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc520__7ee47520[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc520__7ee47520[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee47520[] = {
+ {&(_ZTV7ee47520[4]), 4,15},
+ {&(_tg__ZTV6dd7520__7ee47520[4]), 4,6},
+ {&(_tg__ZTV5cc520__6dd7520__7ee47520[4]), 4,5},
+ {&(_tg__ZTV4bb20__6dd7520__7ee47520[3]), 3,4},
+ {&(_ZTV7ee47520[10]), 10,15},
+ {&(_ZTV7ee47520[14]), 14,15},
+ {&(_tg__ZTV5cc520__7ee47520[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc520__7ee47520[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee47520[];
+extern VTBL_ENTRY _ZTV7ee47520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47520[];
+static VTBL_ENTRY alt_thunk_names304[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75203barEv,_ZTv0_n16_N6dd75203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75203barEv,_ZThn12_N6dd75203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75203fooEv,_ZTv0_n12_N6dd75203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75203fooEv,_ZThn20_N6dd75203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75203fooEv,_ZThn20_N6dd75203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee475203barEv,_ZTv0_n16_N7ee475203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee475203barEv,_ZThn12_N7ee475203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47520 = { "ee47520", // class name
+ bases_ee47520, 4,
+ &(vtc_ee47520[0]), // expected_vtbl_contents
+ &(vtt_ee47520[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee47520),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47520),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47520),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names304,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee57520 : virtual dd7520 {
+ int e;
+ virtual void bar(); // _ZN7ee575203barEv
+ ~ee57520(); // tgen
+ ee57520(); // tgen
+};
+//SIG(1 ee57520) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v2 Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57520 ::bar(){vfunc_called(this, "_ZN7ee575203barEv");}
+ee57520 ::~ee57520(){ note_dtor("ee57520", this);} // tgen
+ee57520 ::ee57520(){ note_ctor("ee57520", this);} // tgen
+
+static void Test_ee57520()
+{
+ extern Class_Descriptor cd_ee57520;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee57520, buf);
+ ee57520 *dp, &lv = *(dp=new (buf) ee57520());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee57520)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57520)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(56,28), "ee57520");
+ check_base_class_offset(lv, (bb20*)(cc520*), ABISELECT(48,24), "ee57520");
+ check_base_class_offset(lv, (cc520*)(dd7520*), ABISELECT(32,16), "ee57520");
+ check_base_class_offset(lv, (dd7520*), ABISELECT(16,8), "ee57520");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57520.e");
+ test_class_info(&lv, &cd_ee57520);
+ dp->~ee57520();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57520(Test_ee57520, "ee57520", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee57520C1Ev();
+extern void _ZN7ee57520D1Ev();
+Name_Map name_map_ee57520[] = {
+ NSPAIR(_ZN7ee57520C1Ev),
+ NSPAIR(_ZN7ee57520D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc520;
+extern VTBL_ENTRY _ZTI5cc520[];
+extern VTBL_ENTRY _ZTV5cc520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc520[];
+extern Class_Descriptor cd_dd7520;
+extern VTBL_ENTRY _ZTI6dd7520[];
+extern VTBL_ENTRY _ZTV6dd7520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7520[];
+static Base_Class bases_ee57520[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(56,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc520, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7520, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee57520[];
+extern void _ZN7ee575203barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee575203barEv,_ZTv0_n20_N7ee575203barEv)();
+extern void ABISELECT(_ZThn16_N7ee575203barEv,_ZThn8_N7ee575203barEv)() __attribute__((weak));
+extern void _ZN6dd75203fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee575203barEv,_ZTv0_n16_N7ee575203barEv)();
+extern void ABISELECT(_ZThn32_N7ee575203barEv,_ZThn16_N7ee575203barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd75203fooEv,_ZTv0_n12_N6dd75203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75203fooEv,_ZThn16_N6dd75203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57520[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57520[0]),
+ (VTBL_ENTRY)&_ZN7ee575203barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee575203barEv,_ZTv0_n20_N7ee575203barEv),
+ (VTBL_ENTRY)&_ZN6dd75203fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee575203barEv,_ZTv0_n16_N7ee575203barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee57520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75203fooEv,_ZTv0_n12_N6dd75203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee57520[];
+extern void _ZN6dd75203barEv();
+extern void _ZN6dd75203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7520__7ee57520[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7520[0]),
+ (VTBL_ENTRY)&_ZN6dd75203barEv,
+ (VTBL_ENTRY)&_ZN6dd75203fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75203barEv,_ZTv0_n16_N6dd75203barEv)();
+extern void ABISELECT(_ZThn16_N6dd75203barEv,_ZThn8_N6dd75203barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc520__6dd7520__7ee57520[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75203barEv,_ZTv0_n16_N6dd75203barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd75203fooEv,_ZTv0_n12_N6dd75203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75203fooEv,_ZThn16_N6dd75203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd7520__7ee57520[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75203fooEv,_ZTv0_n12_N6dd75203fooEv),
+};
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc520__7ee57520[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc520__7ee57520[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee57520[] = {
+ {&(_ZTV7ee57520[5]), 5,23},
+ {&(_ZTV7ee57520[12]), 12,23},
+ {&(_ZTV7ee57520[18]), 18,23},
+ {&(_ZTV7ee57520[22]), 22,23},
+ {&(_tg__ZTV6dd7520__7ee57520[4]), 4,6},
+ {&(_tg__ZTV5cc520__6dd7520__7ee57520[4]), 4,5},
+ {&(_tg__ZTV4bb20__6dd7520__7ee57520[3]), 3,4},
+ {&(_tg__ZTV5cc520__7ee57520[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc520__7ee57520[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee57520[];
+extern VTBL_ENTRY _ZTV7ee57520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57520[];
+static VTBL_ENTRY alt_thunk_names305[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75203barEv,_ZTv0_n16_N6dd75203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75203barEv,_ZThn8_N6dd75203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75203fooEv,_ZTv0_n12_N6dd75203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75203fooEv,_ZThn16_N6dd75203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75203fooEv,_ZThn16_N6dd75203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee575203barEv,_ZTv0_n16_N7ee575203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee575203barEv,_ZThn16_N7ee575203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee575203barEv,_ZTv0_n20_N7ee575203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee575203barEv,_ZThn8_N7ee575203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57520 = { "ee57520", // class name
+ bases_ee57520, 4,
+ &(vtc_ee57520[0]), // expected_vtbl_contents
+ &(vtt_ee57520[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee57520),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57520),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57520),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names305,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee67520 : dd7520 {
+ int e;
+ virtual void foo(); // _ZN7ee675203fooEv
+ virtual void bar(); // _ZN7ee675203barEv
+ ~ee67520(); // tgen
+ ee67520(); // tgen
+};
+//SIG(1 ee67520) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v1 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67520 ::foo(){vfunc_called(this, "_ZN7ee675203fooEv");}
+void ee67520 ::bar(){vfunc_called(this, "_ZN7ee675203barEv");}
+ee67520 ::~ee67520(){ note_dtor("ee67520", this);} // tgen
+ee67520 ::ee67520(){ note_ctor("ee67520", this);} // tgen
+
+static void Test_ee67520()
+{
+ extern Class_Descriptor cd_ee67520;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee67520, buf);
+ ee67520 *dp, &lv = *(dp=new (buf) ee67520());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee67520)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67520)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee67520");
+ check_base_class_offset(lv, (bb20*)(cc520*), ABISELECT(32,20), "ee67520");
+ check_base_class_offset(lv, (cc520*)(dd7520*), ABISELECT(16,12), "ee67520");
+ check_base_class_offset(lv, (dd7520*), 0, "ee67520");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67520.e");
+ test_class_info(&lv, &cd_ee67520);
+ dp->~ee67520();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67520(Test_ee67520, "ee67520", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee67520C1Ev();
+extern void _ZN7ee67520D1Ev();
+Name_Map name_map_ee67520[] = {
+ NSPAIR(_ZN7ee67520C1Ev),
+ NSPAIR(_ZN7ee67520D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc520;
+extern VTBL_ENTRY _ZTI5cc520[];
+extern VTBL_ENTRY _ZTV5cc520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc520[];
+extern Class_Descriptor cd_dd7520;
+extern VTBL_ENTRY _ZTI6dd7520[];
+extern VTBL_ENTRY _ZTV6dd7520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7520[];
+static Base_Class bases_ee67520[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc520, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7520, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67520[];
+extern void _ZN7ee675203barEv();
+extern void _ZN7ee675203fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee675203barEv,_ZTv0_n16_N7ee675203barEv)();
+extern void ABISELECT(_ZThn16_N7ee675203barEv,_ZThn12_N7ee675203barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee675203fooEv,_ZTv0_n12_N7ee675203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee675203fooEv,_ZThn20_N7ee675203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67520[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67520[0]),
+ (VTBL_ENTRY)&_ZN7ee675203barEv,
+ (VTBL_ENTRY)&_ZN7ee675203fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee675203barEv,_ZTv0_n16_N7ee675203barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee67520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee675203fooEv,_ZTv0_n12_N7ee675203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee67520[];
+extern void _ZN6dd75203barEv();
+extern void _ZN6dd75203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7520__7ee67520[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7520[0]),
+ (VTBL_ENTRY)&_ZN6dd75203barEv,
+ (VTBL_ENTRY)&_ZN6dd75203fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75203barEv,_ZTv0_n16_N6dd75203barEv)();
+extern void ABISELECT(_ZThn16_N6dd75203barEv,_ZThn12_N6dd75203barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc520__6dd7520__7ee67520[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75203barEv,_ZTv0_n16_N6dd75203barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd75203fooEv,_ZTv0_n12_N6dd75203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75203fooEv,_ZThn20_N6dd75203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd7520__7ee67520[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75203fooEv,_ZTv0_n12_N6dd75203fooEv),
+};
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc520__7ee67520[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc520__7ee67520[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee67520[] = {
+ {&(_ZTV7ee67520[4]), 4,15},
+ {&(_tg__ZTV6dd7520__7ee67520[4]), 4,6},
+ {&(_tg__ZTV5cc520__6dd7520__7ee67520[4]), 4,5},
+ {&(_tg__ZTV4bb20__6dd7520__7ee67520[3]), 3,4},
+ {&(_ZTV7ee67520[10]), 10,15},
+ {&(_ZTV7ee67520[14]), 14,15},
+ {&(_tg__ZTV5cc520__7ee67520[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc520__7ee67520[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee67520[];
+extern VTBL_ENTRY _ZTV7ee67520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67520[];
+static VTBL_ENTRY alt_thunk_names306[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75203fooEv,_ZTv0_n12_N6dd75203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75203fooEv,_ZThn20_N6dd75203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75203barEv,_ZTv0_n16_N6dd75203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75203barEv,_ZThn12_N6dd75203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee675203fooEv,_ZTv0_n12_N7ee675203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee675203fooEv,_ZThn20_N7ee675203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee675203barEv,_ZTv0_n16_N7ee675203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee675203barEv,_ZThn12_N7ee675203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67520 = { "ee67520", // class name
+ bases_ee67520, 4,
+ &(vtc_ee67520[0]), // expected_vtbl_contents
+ &(vtt_ee67520[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee67520),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67520),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67520),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names306,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee77520 : virtual dd7520 {
+ int e;
+ virtual void foo(); // _ZN7ee775203fooEv
+ virtual void bar(); // _ZN7ee775203barEv
+ ~ee77520(); // tgen
+ ee77520(); // tgen
+};
+//SIG(1 ee77520) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v1 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77520 ::foo(){vfunc_called(this, "_ZN7ee775203fooEv");}
+void ee77520 ::bar(){vfunc_called(this, "_ZN7ee775203barEv");}
+ee77520 ::~ee77520(){ note_dtor("ee77520", this);} // tgen
+ee77520 ::ee77520(){ note_ctor("ee77520", this);} // tgen
+
+static void Test_ee77520()
+{
+ extern Class_Descriptor cd_ee77520;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee77520, buf);
+ ee77520 *dp, &lv = *(dp=new (buf) ee77520());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee77520)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77520)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(56,28), "ee77520");
+ check_base_class_offset(lv, (bb20*)(cc520*), ABISELECT(48,24), "ee77520");
+ check_base_class_offset(lv, (cc520*)(dd7520*), ABISELECT(32,16), "ee77520");
+ check_base_class_offset(lv, (dd7520*), ABISELECT(16,8), "ee77520");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77520.e");
+ test_class_info(&lv, &cd_ee77520);
+ dp->~ee77520();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77520(Test_ee77520, "ee77520", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee77520C1Ev();
+extern void _ZN7ee77520D1Ev();
+Name_Map name_map_ee77520[] = {
+ NSPAIR(_ZN7ee77520C1Ev),
+ NSPAIR(_ZN7ee77520D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc520;
+extern VTBL_ENTRY _ZTI5cc520[];
+extern VTBL_ENTRY _ZTV5cc520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc520[];
+extern Class_Descriptor cd_dd7520;
+extern VTBL_ENTRY _ZTI6dd7520[];
+extern VTBL_ENTRY _ZTV6dd7520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7520[];
+static Base_Class bases_ee77520[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(56,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc520, ABISELECT(32,16), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7520, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee77520[];
+extern void _ZN7ee775203fooEv();
+extern void _ZN7ee775203barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee775203barEv,_ZTv0_n20_N7ee775203barEv)();
+extern void ABISELECT(_ZThn16_N7ee775203barEv,_ZThn8_N7ee775203barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee775203fooEv,_ZTv0_n24_N7ee775203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee775203fooEv,_ZThn8_N7ee775203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee775203barEv,_ZTv0_n16_N7ee775203barEv)();
+extern void ABISELECT(_ZThn32_N7ee775203barEv,_ZThn16_N7ee775203barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee775203fooEv,_ZTv0_n12_N7ee775203fooEv)();
+extern void ABISELECT(_ZThn48_N7ee775203fooEv,_ZThn24_N7ee775203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77520[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77520[0]),
+ (VTBL_ENTRY)&_ZN7ee775203fooEv,
+ (VTBL_ENTRY)&_ZN7ee775203barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee775203barEv,_ZTv0_n20_N7ee775203barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee775203fooEv,_ZTv0_n24_N7ee775203fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee775203barEv,_ZTv0_n16_N7ee775203barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee77520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee775203fooEv,_ZTv0_n12_N7ee775203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee77520[];
+extern void _ZN6dd75203barEv();
+extern void _ZN6dd75203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7520__7ee77520[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7520[0]),
+ (VTBL_ENTRY)&_ZN6dd75203barEv,
+ (VTBL_ENTRY)&_ZN6dd75203fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75203barEv,_ZTv0_n16_N6dd75203barEv)();
+extern void ABISELECT(_ZThn16_N6dd75203barEv,_ZThn8_N6dd75203barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc520__6dd7520__7ee77520[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75203barEv,_ZTv0_n16_N6dd75203barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd75203fooEv,_ZTv0_n12_N6dd75203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75203fooEv,_ZThn16_N6dd75203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd7520__7ee77520[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7520[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75203fooEv,_ZTv0_n12_N6dd75203fooEv),
+};
+extern void _ZN5cc5203barEv();
+static VTBL_ENTRY _tg__ZTV5cc520__7ee77520[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN5cc5203barEv,
+};
+extern void _ZN4bb203fooEv();
+static VTBL_ENTRY _tg__ZTV4bb20__5cc520__7ee77520[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc520[0]),
+ (VTBL_ENTRY)&_ZN4bb203fooEv,
+};
+static VTT_ENTRY vtt_ee77520[] = {
+ {&(_ZTV7ee77520[5]), 5,24},
+ {&(_ZTV7ee77520[13]), 13,24},
+ {&(_ZTV7ee77520[19]), 19,24},
+ {&(_ZTV7ee77520[23]), 23,24},
+ {&(_tg__ZTV6dd7520__7ee77520[4]), 4,6},
+ {&(_tg__ZTV5cc520__6dd7520__7ee77520[4]), 4,5},
+ {&(_tg__ZTV4bb20__6dd7520__7ee77520[3]), 3,4},
+ {&(_tg__ZTV5cc520__7ee77520[3]), 3,4},
+ {&(_tg__ZTV4bb20__5cc520__7ee77520[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee77520[];
+extern VTBL_ENTRY _ZTV7ee77520[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77520[];
+static VTBL_ENTRY alt_thunk_names307[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75203fooEv,_ZTv0_n12_N6dd75203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75203fooEv,_ZThn16_N6dd75203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75203barEv,_ZTv0_n16_N6dd75203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75203barEv,_ZThn8_N6dd75203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee775203fooEv,_ZTv0_n12_N7ee775203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee775203fooEv,_ZThn24_N7ee775203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee775203barEv,_ZTv0_n16_N7ee775203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee775203barEv,_ZThn16_N7ee775203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee775203fooEv,_ZTv0_n24_N7ee775203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee775203fooEv,_ZThn8_N7ee775203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee775203barEv,_ZTv0_n20_N7ee775203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee775203barEv,_ZThn8_N7ee775203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77520 = { "ee77520", // class name
+ bases_ee77520, 4,
+ &(vtc_ee77520[0]), // expected_vtbl_contents
+ &(vtt_ee77520[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee77520),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77520),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77520),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names307,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc620 : bb20 {
+ int c;
+ virtual void foo(); // _ZN5cc6203fooEv
+ virtual void bar(); // _ZN5cc6203barEv
+ ~cc620(); // tgen
+ cc620(); // tgen
+};
+//SIG(-1 cc620) C1{ BC2{ BC3{ Fi} v1 Fi} v1 v2 Fi}
+
+
+void cc620 ::foo(){vfunc_called(this, "_ZN5cc6203fooEv");}
+void cc620 ::bar(){vfunc_called(this, "_ZN5cc6203barEv");}
+cc620 ::~cc620(){ note_dtor("cc620", this);} // tgen
+cc620 ::cc620(){ note_ctor("cc620", this);} // tgen
+
+static void Test_cc620()
+{
+ extern Class_Descriptor cd_cc620;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,5)];
+ init_test(&cd_cc620, buf);
+ cc620 *dp, &lv = *(dp=new (buf) cc620());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,16), "sizeof(cc620)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc620)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(8,4), "cc620");
+ check_base_class_offset(lv, (bb20*), 0, "cc620");
+ check_field_offset(lv, c, ABISELECT(16,12), "cc620.c");
+ test_class_info(&lv, &cd_cc620);
+ dp->~cc620();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc620(Test_cc620, "cc620", ABISELECT(24,16));
+
+#else // __cplusplus
+
+extern void _ZN5cc620C1Ev();
+extern void _ZN5cc620D1Ev();
+Name_Map name_map_cc620[] = {
+ NSPAIR(_ZN5cc620C1Ev),
+ NSPAIR(_ZN5cc620D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+static Base_Class bases_cc620[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(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 _ZTI5cc620[];
+extern void _ZN5cc6203fooEv();
+extern void _ZN5cc6203barEv();
+static VTBL_ENTRY vtc_cc620[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc620[0]),
+ (VTBL_ENTRY)&_ZN5cc6203fooEv,
+ (VTBL_ENTRY)&_ZN5cc6203barEv,
+};
+extern VTBL_ENTRY _ZTI5cc620[];
+extern VTBL_ENTRY _ZTV5cc620[];
+Class_Descriptor cd_cc620 = { "cc620", // class name
+ bases_cc620, 2,
+ &(vtc_cc620[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,16), // object size
+ NSPAIRA(_ZTI5cc620),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV5cc620),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 dd0620 : cc620 {
+ int d;
+ ~dd0620(); // tgen
+ dd0620(); // tgen
+};
+//SIG(-1 dd0620) C1{ BC2{ BC3{ BC4{ Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+dd0620 ::~dd0620(){ note_dtor("dd0620", this);} // tgen
+dd0620 ::dd0620(){ note_ctor("dd0620", this);} // tgen
+
+static void Test_dd0620()
+{
+ extern Class_Descriptor cd_dd0620;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd0620, buf);
+ dd0620 *dp, &lv = *(dp=new (buf) dd0620());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd0620)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0620)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc620*), ABISELECT(8,4), "dd0620");
+ check_base_class_offset(lv, (bb20*)(cc620*), 0, "dd0620");
+ check_base_class_offset(lv, (cc620*), 0, "dd0620");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd0620.d");
+ test_class_info(&lv, &cd_dd0620);
+ dp->~dd0620();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0620(Test_dd0620, "dd0620", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd0620C1Ev();
+extern void _ZN6dd0620D1Ev();
+Name_Map name_map_dd0620[] = {
+ NSPAIR(_ZN6dd0620C1Ev),
+ NSPAIR(_ZN6dd0620D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc620;
+extern VTBL_ENTRY _ZTI5cc620[];
+extern VTBL_ENTRY _ZTV5cc620[];
+static Base_Class bases_dd0620[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc620, 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 _ZTI6dd0620[];
+extern void _ZN5cc6203fooEv();
+extern void _ZN5cc6203barEv();
+static VTBL_ENTRY vtc_dd0620[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0620[0]),
+ (VTBL_ENTRY)&_ZN5cc6203fooEv,
+ (VTBL_ENTRY)&_ZN5cc6203barEv,
+};
+extern VTBL_ENTRY _ZTI6dd0620[];
+extern VTBL_ENTRY _ZTV6dd0620[];
+Class_Descriptor cd_dd0620 = { "dd0620", // class name
+ bases_dd0620, 3,
+ &(vtc_dd0620[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd0620),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0620),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 ee00620 : dd0620 {
+ int e;
+ ~ee00620(); // tgen
+ ee00620(); // tgen
+};
+//SIG(1 ee00620) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v1 Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee00620 ::~ee00620(){ note_dtor("ee00620", this);} // tgen
+ee00620 ::ee00620(){ note_ctor("ee00620", this);} // tgen
+
+static void Test_ee00620()
+{
+ extern Class_Descriptor cd_ee00620;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee00620, buf);
+ ee00620 *dp, &lv = *(dp=new (buf) ee00620());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee00620)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00620)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc620*)(dd0620*), ABISELECT(8,4), "ee00620");
+ check_base_class_offset(lv, (bb20*)(cc620*)(dd0620*), 0, "ee00620");
+ check_base_class_offset(lv, (cc620*)(dd0620*), 0, "ee00620");
+ check_base_class_offset(lv, (dd0620*), 0, "ee00620");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee00620.e");
+ test_class_info(&lv, &cd_ee00620);
+ dp->~ee00620();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00620(Test_ee00620, "ee00620", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee00620C1Ev();
+extern void _ZN7ee00620D1Ev();
+Name_Map name_map_ee00620[] = {
+ NSPAIR(_ZN7ee00620C1Ev),
+ NSPAIR(_ZN7ee00620D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc620;
+extern VTBL_ENTRY _ZTI5cc620[];
+extern VTBL_ENTRY _ZTV5cc620[];
+extern Class_Descriptor cd_dd0620;
+extern VTBL_ENTRY _ZTI6dd0620[];
+extern VTBL_ENTRY _ZTV6dd0620[];
+static Base_Class bases_ee00620[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc620, 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
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0620, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee00620[];
+extern void _ZN5cc6203fooEv();
+extern void _ZN5cc6203barEv();
+static VTBL_ENTRY vtc_ee00620[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00620[0]),
+ (VTBL_ENTRY)&_ZN5cc6203fooEv,
+ (VTBL_ENTRY)&_ZN5cc6203barEv,
+};
+extern VTBL_ENTRY _ZTI7ee00620[];
+extern VTBL_ENTRY _ZTV7ee00620[];
+Class_Descriptor cd_ee00620 = { "ee00620", // class name
+ bases_ee00620, 4,
+ &(vtc_ee00620[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee00620),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00620),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 ee10620 : virtual dd0620 {
+ int e;
+ ~ee10620(); // tgen
+ ee10620(); // tgen
+};
+//SIG(1 ee10620) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v1 Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee10620 ::~ee10620(){ note_dtor("ee10620", this);} // tgen
+ee10620 ::ee10620(){ note_ctor("ee10620", this);} // tgen
+
+static void Test_ee10620()
+{
+ extern Class_Descriptor cd_ee10620;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee10620, buf);
+ ee10620 *dp, &lv = *(dp=new (buf) ee10620());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee10620)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10620)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc620*)(dd0620*), ABISELECT(24,12), "ee10620");
+ check_base_class_offset(lv, (bb20*)(cc620*)(dd0620*), ABISELECT(16,8), "ee10620");
+ check_base_class_offset(lv, (cc620*)(dd0620*), ABISELECT(16,8), "ee10620");
+ check_base_class_offset(lv, (dd0620*), ABISELECT(16,8), "ee10620");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10620.e");
+ test_class_info(&lv, &cd_ee10620);
+ dp->~ee10620();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10620(Test_ee10620, "ee10620", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee10620C1Ev();
+extern void _ZN7ee10620D1Ev();
+Name_Map name_map_ee10620[] = {
+ NSPAIR(_ZN7ee10620C1Ev),
+ NSPAIR(_ZN7ee10620D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc620;
+extern VTBL_ENTRY _ZTI5cc620[];
+extern VTBL_ENTRY _ZTV5cc620[];
+extern Class_Descriptor cd_dd0620;
+extern VTBL_ENTRY _ZTI6dd0620[];
+extern VTBL_ENTRY _ZTV6dd0620[];
+static Base_Class bases_ee10620[] = {
+ // 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_bb20, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc620, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0620, 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 _ZTI7ee10620[];
+extern void _ZN5cc6203fooEv();
+extern void _ZN5cc6203barEv();
+static VTBL_ENTRY vtc_ee10620[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10620[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10620[0]),
+ (VTBL_ENTRY)&_ZN5cc6203fooEv,
+ (VTBL_ENTRY)&_ZN5cc6203barEv,
+};
+extern VTBL_ENTRY _ZTV7ee10620[];
+static VTT_ENTRY vtt_ee10620[] = {
+ {&(_ZTV7ee10620[3]), 3,9},
+ {&(_ZTV7ee10620[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee10620[];
+extern VTBL_ENTRY _ZTV7ee10620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10620[];
+Class_Descriptor cd_ee10620 = { "ee10620", // class name
+ bases_ee10620, 4,
+ &(vtc_ee10620[0]), // expected_vtbl_contents
+ &(vtt_ee10620[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee10620),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10620),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10620),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 ee20620 : dd0620 {
+ int e;
+ virtual void foo(); // _ZN7ee206203fooEv
+ ~ee20620(); // tgen
+ ee20620(); // tgen
+};
+//SIG(1 ee20620) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v1 Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee20620 ::foo(){vfunc_called(this, "_ZN7ee206203fooEv");}
+ee20620 ::~ee20620(){ note_dtor("ee20620", this);} // tgen
+ee20620 ::ee20620(){ note_ctor("ee20620", this);} // tgen
+
+static void Test_ee20620()
+{
+ extern Class_Descriptor cd_ee20620;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee20620, buf);
+ ee20620 *dp, &lv = *(dp=new (buf) ee20620());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee20620)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20620)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc620*)(dd0620*), ABISELECT(8,4), "ee20620");
+ check_base_class_offset(lv, (bb20*)(cc620*)(dd0620*), 0, "ee20620");
+ check_base_class_offset(lv, (cc620*)(dd0620*), 0, "ee20620");
+ check_base_class_offset(lv, (dd0620*), 0, "ee20620");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee20620.e");
+ test_class_info(&lv, &cd_ee20620);
+ dp->~ee20620();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20620(Test_ee20620, "ee20620", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee20620C1Ev();
+extern void _ZN7ee20620D1Ev();
+Name_Map name_map_ee20620[] = {
+ NSPAIR(_ZN7ee20620C1Ev),
+ NSPAIR(_ZN7ee20620D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc620;
+extern VTBL_ENTRY _ZTI5cc620[];
+extern VTBL_ENTRY _ZTV5cc620[];
+extern Class_Descriptor cd_dd0620;
+extern VTBL_ENTRY _ZTI6dd0620[];
+extern VTBL_ENTRY _ZTV6dd0620[];
+static Base_Class bases_ee20620[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc620, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0620, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee20620[];
+extern void _ZN7ee206203fooEv();
+extern void _ZN5cc6203barEv();
+static VTBL_ENTRY vtc_ee20620[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20620[0]),
+ (VTBL_ENTRY)&_ZN7ee206203fooEv,
+ (VTBL_ENTRY)&_ZN5cc6203barEv,
+};
+extern VTBL_ENTRY _ZTI7ee20620[];
+extern VTBL_ENTRY _ZTV7ee20620[];
+Class_Descriptor cd_ee20620 = { "ee20620", // class name
+ bases_ee20620, 4,
+ &(vtc_ee20620[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee20620),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20620),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 ee30620 : virtual dd0620 {
+ int e;
+ virtual void foo(); // _ZN7ee306203fooEv
+ ~ee30620(); // tgen
+ ee30620(); // tgen
+};
+//SIG(1 ee30620) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v1 Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee30620 ::foo(){vfunc_called(this, "_ZN7ee306203fooEv");}
+ee30620 ::~ee30620(){ note_dtor("ee30620", this);} // tgen
+ee30620 ::ee30620(){ note_ctor("ee30620", this);} // tgen
+
+static void Test_ee30620()
+{
+ extern Class_Descriptor cd_ee30620;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee30620, buf);
+ ee30620 *dp, &lv = *(dp=new (buf) ee30620());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee30620)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30620)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc620*)(dd0620*), ABISELECT(24,12), "ee30620");
+ check_base_class_offset(lv, (bb20*)(cc620*)(dd0620*), ABISELECT(16,8), "ee30620");
+ check_base_class_offset(lv, (cc620*)(dd0620*), ABISELECT(16,8), "ee30620");
+ check_base_class_offset(lv, (dd0620*), ABISELECT(16,8), "ee30620");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30620.e");
+ test_class_info(&lv, &cd_ee30620);
+ dp->~ee30620();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30620(Test_ee30620, "ee30620", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee30620C1Ev();
+extern void _ZN7ee30620D1Ev();
+Name_Map name_map_ee30620[] = {
+ NSPAIR(_ZN7ee30620C1Ev),
+ NSPAIR(_ZN7ee30620D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc620;
+extern VTBL_ENTRY _ZTI5cc620[];
+extern VTBL_ENTRY _ZTV5cc620[];
+extern Class_Descriptor cd_dd0620;
+extern VTBL_ENTRY _ZTI6dd0620[];
+extern VTBL_ENTRY _ZTV6dd0620[];
+static Base_Class bases_ee30620[] = {
+ // 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_bb20, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc620, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0620, 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 _ZTI7ee30620[];
+extern void _ZN7ee306203fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee306203fooEv,_ZTv0_n12_N7ee306203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee306203fooEv,_ZThn8_N7ee306203fooEv)() __attribute__((weak));
+extern void _ZN5cc6203barEv();
+static VTBL_ENTRY vtc_ee30620[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30620[0]),
+ (VTBL_ENTRY)&_ZN7ee306203fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30620[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee306203fooEv,_ZTv0_n12_N7ee306203fooEv),
+ (VTBL_ENTRY)&_ZN5cc6203barEv,
+};
+extern VTBL_ENTRY _ZTV7ee30620[];
+static VTT_ENTRY vtt_ee30620[] = {
+ {&(_ZTV7ee30620[3]), 3,10},
+ {&(_ZTV7ee30620[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee30620[];
+extern VTBL_ENTRY _ZTV7ee30620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30620[];
+static VTBL_ENTRY alt_thunk_names308[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee306203fooEv,_ZTv0_n12_N7ee306203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee306203fooEv,_ZThn8_N7ee306203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30620 = { "ee30620", // class name
+ bases_ee30620, 4,
+ &(vtc_ee30620[0]), // expected_vtbl_contents
+ &(vtt_ee30620[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee30620),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30620),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30620),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names308,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee40620 : dd0620 {
+ int e;
+ virtual void bar(); // _ZN7ee406203barEv
+ ~ee40620(); // tgen
+ ee40620(); // tgen
+};
+//SIG(1 ee40620) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v2 Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee40620 ::bar(){vfunc_called(this, "_ZN7ee406203barEv");}
+ee40620 ::~ee40620(){ note_dtor("ee40620", this);} // tgen
+ee40620 ::ee40620(){ note_ctor("ee40620", this);} // tgen
+
+static void Test_ee40620()
+{
+ extern Class_Descriptor cd_ee40620;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee40620, buf);
+ ee40620 *dp, &lv = *(dp=new (buf) ee40620());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee40620)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40620)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc620*)(dd0620*), ABISELECT(8,4), "ee40620");
+ check_base_class_offset(lv, (bb20*)(cc620*)(dd0620*), 0, "ee40620");
+ check_base_class_offset(lv, (cc620*)(dd0620*), 0, "ee40620");
+ check_base_class_offset(lv, (dd0620*), 0, "ee40620");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee40620.e");
+ test_class_info(&lv, &cd_ee40620);
+ dp->~ee40620();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40620(Test_ee40620, "ee40620", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee40620C1Ev();
+extern void _ZN7ee40620D1Ev();
+Name_Map name_map_ee40620[] = {
+ NSPAIR(_ZN7ee40620C1Ev),
+ NSPAIR(_ZN7ee40620D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc620;
+extern VTBL_ENTRY _ZTI5cc620[];
+extern VTBL_ENTRY _ZTV5cc620[];
+extern Class_Descriptor cd_dd0620;
+extern VTBL_ENTRY _ZTI6dd0620[];
+extern VTBL_ENTRY _ZTV6dd0620[];
+static Base_Class bases_ee40620[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc620, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0620, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee40620[];
+extern void _ZN5cc6203fooEv();
+extern void _ZN7ee406203barEv();
+static VTBL_ENTRY vtc_ee40620[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40620[0]),
+ (VTBL_ENTRY)&_ZN5cc6203fooEv,
+ (VTBL_ENTRY)&_ZN7ee406203barEv,
+};
+extern VTBL_ENTRY _ZTI7ee40620[];
+extern VTBL_ENTRY _ZTV7ee40620[];
+Class_Descriptor cd_ee40620 = { "ee40620", // class name
+ bases_ee40620, 4,
+ &(vtc_ee40620[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee40620),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40620),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 ee50620 : virtual dd0620 {
+ int e;
+ virtual void bar(); // _ZN7ee506203barEv
+ ~ee50620(); // tgen
+ ee50620(); // tgen
+};
+//SIG(1 ee50620) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v2 Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee50620 ::bar(){vfunc_called(this, "_ZN7ee506203barEv");}
+ee50620 ::~ee50620(){ note_dtor("ee50620", this);} // tgen
+ee50620 ::ee50620(){ note_ctor("ee50620", this);} // tgen
+
+static void Test_ee50620()
+{
+ extern Class_Descriptor cd_ee50620;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee50620, buf);
+ ee50620 *dp, &lv = *(dp=new (buf) ee50620());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee50620)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50620)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc620*)(dd0620*), ABISELECT(24,12), "ee50620");
+ check_base_class_offset(lv, (bb20*)(cc620*)(dd0620*), ABISELECT(16,8), "ee50620");
+ check_base_class_offset(lv, (cc620*)(dd0620*), ABISELECT(16,8), "ee50620");
+ check_base_class_offset(lv, (dd0620*), ABISELECT(16,8), "ee50620");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50620.e");
+ test_class_info(&lv, &cd_ee50620);
+ dp->~ee50620();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50620(Test_ee50620, "ee50620", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee50620C1Ev();
+extern void _ZN7ee50620D1Ev();
+Name_Map name_map_ee50620[] = {
+ NSPAIR(_ZN7ee50620C1Ev),
+ NSPAIR(_ZN7ee50620D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc620;
+extern VTBL_ENTRY _ZTI5cc620[];
+extern VTBL_ENTRY _ZTV5cc620[];
+extern Class_Descriptor cd_dd0620;
+extern VTBL_ENTRY _ZTI6dd0620[];
+extern VTBL_ENTRY _ZTV6dd0620[];
+static Base_Class bases_ee50620[] = {
+ // 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_bb20, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc620, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0620, 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 _ZTI7ee50620[];
+extern void _ZN7ee506203barEv();
+extern void _ZN5cc6203fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee506203barEv,_ZTv0_n16_N7ee506203barEv)();
+extern void ABISELECT(_ZThn16_N7ee506203barEv,_ZThn8_N7ee506203barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee50620[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50620[0]),
+ (VTBL_ENTRY)&_ZN7ee506203barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50620[0]),
+ (VTBL_ENTRY)&_ZN5cc6203fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee506203barEv,_ZTv0_n16_N7ee506203barEv),
+};
+extern VTBL_ENTRY _ZTV7ee50620[];
+static VTT_ENTRY vtt_ee50620[] = {
+ {&(_ZTV7ee50620[3]), 3,10},
+ {&(_ZTV7ee50620[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee50620[];
+extern VTBL_ENTRY _ZTV7ee50620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50620[];
+static VTBL_ENTRY alt_thunk_names309[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee506203barEv,_ZTv0_n16_N7ee506203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee506203barEv,_ZThn8_N7ee506203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50620 = { "ee50620", // class name
+ bases_ee50620, 4,
+ &(vtc_ee50620[0]), // expected_vtbl_contents
+ &(vtt_ee50620[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee50620),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50620),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50620),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names309,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee60620 : dd0620 {
+ int e;
+ virtual void foo(); // _ZN7ee606203fooEv
+ virtual void bar(); // _ZN7ee606203barEv
+ ~ee60620(); // tgen
+ ee60620(); // tgen
+};
+//SIG(1 ee60620) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v1 Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee60620 ::foo(){vfunc_called(this, "_ZN7ee606203fooEv");}
+void ee60620 ::bar(){vfunc_called(this, "_ZN7ee606203barEv");}
+ee60620 ::~ee60620(){ note_dtor("ee60620", this);} // tgen
+ee60620 ::ee60620(){ note_ctor("ee60620", this);} // tgen
+
+static void Test_ee60620()
+{
+ extern Class_Descriptor cd_ee60620;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee60620, buf);
+ ee60620 *dp, &lv = *(dp=new (buf) ee60620());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee60620)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60620)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc620*)(dd0620*), ABISELECT(8,4), "ee60620");
+ check_base_class_offset(lv, (bb20*)(cc620*)(dd0620*), 0, "ee60620");
+ check_base_class_offset(lv, (cc620*)(dd0620*), 0, "ee60620");
+ check_base_class_offset(lv, (dd0620*), 0, "ee60620");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee60620.e");
+ test_class_info(&lv, &cd_ee60620);
+ dp->~ee60620();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60620(Test_ee60620, "ee60620", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee60620C1Ev();
+extern void _ZN7ee60620D1Ev();
+Name_Map name_map_ee60620[] = {
+ NSPAIR(_ZN7ee60620C1Ev),
+ NSPAIR(_ZN7ee60620D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc620;
+extern VTBL_ENTRY _ZTI5cc620[];
+extern VTBL_ENTRY _ZTV5cc620[];
+extern Class_Descriptor cd_dd0620;
+extern VTBL_ENTRY _ZTI6dd0620[];
+extern VTBL_ENTRY _ZTV6dd0620[];
+static Base_Class bases_ee60620[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc620, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0620, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee60620[];
+extern void _ZN7ee606203fooEv();
+extern void _ZN7ee606203barEv();
+static VTBL_ENTRY vtc_ee60620[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60620[0]),
+ (VTBL_ENTRY)&_ZN7ee606203fooEv,
+ (VTBL_ENTRY)&_ZN7ee606203barEv,
+};
+extern VTBL_ENTRY _ZTI7ee60620[];
+extern VTBL_ENTRY _ZTV7ee60620[];
+Class_Descriptor cd_ee60620 = { "ee60620", // class name
+ bases_ee60620, 4,
+ &(vtc_ee60620[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee60620),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60620),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 ee70620 : virtual dd0620 {
+ int e;
+ virtual void foo(); // _ZN7ee706203fooEv
+ virtual void bar(); // _ZN7ee706203barEv
+ ~ee70620(); // tgen
+ ee70620(); // tgen
+};
+//SIG(1 ee70620) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v1 Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee70620 ::foo(){vfunc_called(this, "_ZN7ee706203fooEv");}
+void ee70620 ::bar(){vfunc_called(this, "_ZN7ee706203barEv");}
+ee70620 ::~ee70620(){ note_dtor("ee70620", this);} // tgen
+ee70620 ::ee70620(){ note_ctor("ee70620", this);} // tgen
+
+static void Test_ee70620()
+{
+ extern Class_Descriptor cd_ee70620;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee70620, buf);
+ ee70620 *dp, &lv = *(dp=new (buf) ee70620());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee70620)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70620)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc620*)(dd0620*), ABISELECT(24,12), "ee70620");
+ check_base_class_offset(lv, (bb20*)(cc620*)(dd0620*), ABISELECT(16,8), "ee70620");
+ check_base_class_offset(lv, (cc620*)(dd0620*), ABISELECT(16,8), "ee70620");
+ check_base_class_offset(lv, (dd0620*), ABISELECT(16,8), "ee70620");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70620.e");
+ test_class_info(&lv, &cd_ee70620);
+ dp->~ee70620();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70620(Test_ee70620, "ee70620", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee70620C1Ev();
+extern void _ZN7ee70620D1Ev();
+Name_Map name_map_ee70620[] = {
+ NSPAIR(_ZN7ee70620C1Ev),
+ NSPAIR(_ZN7ee70620D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc620;
+extern VTBL_ENTRY _ZTI5cc620[];
+extern VTBL_ENTRY _ZTV5cc620[];
+extern Class_Descriptor cd_dd0620;
+extern VTBL_ENTRY _ZTI6dd0620[];
+extern VTBL_ENTRY _ZTV6dd0620[];
+static Base_Class bases_ee70620[] = {
+ // 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_bb20, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc620, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0620, 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 _ZTI7ee70620[];
+extern void _ZN7ee706203fooEv();
+extern void _ZN7ee706203barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee706203fooEv,_ZTv0_n12_N7ee706203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee706203fooEv,_ZThn8_N7ee706203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee706203barEv,_ZTv0_n16_N7ee706203barEv)();
+extern void ABISELECT(_ZThn16_N7ee706203barEv,_ZThn8_N7ee706203barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70620[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70620[0]),
+ (VTBL_ENTRY)&_ZN7ee706203fooEv,
+ (VTBL_ENTRY)&_ZN7ee706203barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70620[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee706203fooEv,_ZTv0_n12_N7ee706203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee706203barEv,_ZTv0_n16_N7ee706203barEv),
+};
+extern VTBL_ENTRY _ZTV7ee70620[];
+static VTT_ENTRY vtt_ee70620[] = {
+ {&(_ZTV7ee70620[3]), 3,11},
+ {&(_ZTV7ee70620[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee70620[];
+extern VTBL_ENTRY _ZTV7ee70620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70620[];
+static VTBL_ENTRY alt_thunk_names310[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee706203barEv,_ZTv0_n16_N7ee706203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee706203barEv,_ZThn8_N7ee706203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee706203fooEv,_ZTv0_n12_N7ee706203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee706203fooEv,_ZThn8_N7ee706203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70620 = { "ee70620", // class name
+ bases_ee70620, 4,
+ &(vtc_ee70620[0]), // expected_vtbl_contents
+ &(vtt_ee70620[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee70620),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70620),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70620),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names310,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd1620 : virtual cc620 {
+ int d;
+ ~dd1620(); // tgen
+ dd1620(); // tgen
+};
+//SIG(-1 dd1620) C1{ VBC2{ BC3{ BC4{ Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+dd1620 ::~dd1620(){ note_dtor("dd1620", this);} // tgen
+dd1620 ::dd1620(){ note_ctor("dd1620", this);} // tgen
+
+static void Test_dd1620()
+{
+ extern Class_Descriptor cd_dd1620;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd1620, buf);
+ dd1620 *dp, &lv = *(dp=new (buf) dd1620());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd1620)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1620)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc620*), ABISELECT(24,12), "dd1620");
+ check_base_class_offset(lv, (bb20*)(cc620*), ABISELECT(16,8), "dd1620");
+ check_base_class_offset(lv, (cc620*), ABISELECT(16,8), "dd1620");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1620.d");
+ test_class_info(&lv, &cd_dd1620);
+ dp->~dd1620();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1620(Test_dd1620, "dd1620", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd1620C1Ev();
+extern void _ZN6dd1620D1Ev();
+Name_Map name_map_dd1620[] = {
+ NSPAIR(_ZN6dd1620C1Ev),
+ NSPAIR(_ZN6dd1620D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc620;
+extern VTBL_ENTRY _ZTI5cc620[];
+extern VTBL_ENTRY _ZTV5cc620[];
+static Base_Class bases_dd1620[] = {
+ // 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_bb20, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc620, 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 _ZTI6dd1620[];
+extern void _ZN5cc6203fooEv();
+extern void _ZN5cc6203barEv();
+static VTBL_ENTRY vtc_dd1620[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1620[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1620[0]),
+ (VTBL_ENTRY)&_ZN5cc6203fooEv,
+ (VTBL_ENTRY)&_ZN5cc6203barEv,
+};
+extern VTBL_ENTRY _ZTV6dd1620[];
+static VTT_ENTRY vtt_dd1620[] = {
+ {&(_ZTV6dd1620[3]), 3,9},
+ {&(_ZTV6dd1620[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI6dd1620[];
+extern VTBL_ENTRY _ZTV6dd1620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1620[];
+Class_Descriptor cd_dd1620 = { "dd1620", // class name
+ bases_dd1620, 3,
+ &(vtc_dd1620[0]), // expected_vtbl_contents
+ &(vtt_dd1620[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd1620),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1620),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1620),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 ee01620 : dd1620 {
+ int e;
+ ~ee01620(); // tgen
+ ee01620(); // tgen
+};
+//SIG(1 ee01620) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v1 Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee01620 ::~ee01620(){ note_dtor("ee01620", this);} // tgen
+ee01620 ::ee01620(){ note_ctor("ee01620", this);} // tgen
+
+static void Test_ee01620()
+{
+ extern Class_Descriptor cd_ee01620;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee01620, buf);
+ ee01620 *dp, &lv = *(dp=new (buf) ee01620());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee01620)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01620)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc620*), ABISELECT(24,16), "ee01620");
+ check_base_class_offset(lv, (bb20*)(cc620*), ABISELECT(16,12), "ee01620");
+ check_base_class_offset(lv, (cc620*)(dd1620*), ABISELECT(16,12), "ee01620");
+ check_base_class_offset(lv, (dd1620*), 0, "ee01620");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01620.e");
+ test_class_info(&lv, &cd_ee01620);
+ dp->~ee01620();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01620(Test_ee01620, "ee01620", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee01620C1Ev();
+extern void _ZN7ee01620D1Ev();
+Name_Map name_map_ee01620[] = {
+ NSPAIR(_ZN7ee01620C1Ev),
+ NSPAIR(_ZN7ee01620D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc620;
+extern VTBL_ENTRY _ZTI5cc620[];
+extern VTBL_ENTRY _ZTV5cc620[];
+extern Class_Descriptor cd_dd1620;
+extern VTBL_ENTRY _ZTI6dd1620[];
+extern VTBL_ENTRY _ZTV6dd1620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1620[];
+static Base_Class bases_ee01620[] = {
+ // 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_bb20, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc620, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1620, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee01620[];
+extern void _ZN5cc6203fooEv();
+extern void _ZN5cc6203barEv();
+static VTBL_ENTRY vtc_ee01620[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01620[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01620[0]),
+ (VTBL_ENTRY)&_ZN5cc6203fooEv,
+ (VTBL_ENTRY)&_ZN5cc6203barEv,
+};
+extern VTBL_ENTRY _ZTV7ee01620[];
+static VTBL_ENTRY _tg__ZTV6dd1620__7ee01620[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1620[0]),
+};
+extern void _ZN5cc6203fooEv();
+extern void _ZN5cc6203barEv();
+static VTBL_ENTRY _tg__ZTV5cc620__6dd1620__7ee01620[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1620[0]),
+ (VTBL_ENTRY)&_ZN5cc6203fooEv,
+ (VTBL_ENTRY)&_ZN5cc6203barEv,
+};
+static VTT_ENTRY vtt_ee01620[] = {
+ {&(_ZTV7ee01620[3]), 3,9},
+ {&(_tg__ZTV6dd1620__7ee01620[3]), 3,3},
+ {&(_tg__ZTV5cc620__6dd1620__7ee01620[4]), 4,6},
+ {&(_ZTV7ee01620[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee01620[];
+extern VTBL_ENTRY _ZTV7ee01620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01620[];
+Class_Descriptor cd_ee01620 = { "ee01620", // class name
+ bases_ee01620, 4,
+ &(vtc_ee01620[0]), // expected_vtbl_contents
+ &(vtt_ee01620[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee01620),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01620),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01620),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 ee11620 : virtual dd1620 {
+ int e;
+ ~ee11620(); // tgen
+ ee11620(); // tgen
+};
+//SIG(1 ee11620) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v1 Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee11620 ::~ee11620(){ note_dtor("ee11620", this);} // tgen
+ee11620 ::ee11620(){ note_ctor("ee11620", this);} // tgen
+
+static void Test_ee11620()
+{
+ extern Class_Descriptor cd_ee11620;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee11620, buf);
+ ee11620 *dp, &lv = *(dp=new (buf) ee11620());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee11620)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11620)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc620*), ABISELECT(40,20), "ee11620");
+ check_base_class_offset(lv, (bb20*)(cc620*), ABISELECT(32,16), "ee11620");
+ check_base_class_offset(lv, (cc620*)(dd1620*), ABISELECT(32,16), "ee11620");
+ check_base_class_offset(lv, (dd1620*), ABISELECT(16,8), "ee11620");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11620.e");
+ test_class_info(&lv, &cd_ee11620);
+ dp->~ee11620();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11620(Test_ee11620, "ee11620", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee11620C1Ev();
+extern void _ZN7ee11620D1Ev();
+Name_Map name_map_ee11620[] = {
+ NSPAIR(_ZN7ee11620C1Ev),
+ NSPAIR(_ZN7ee11620D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc620;
+extern VTBL_ENTRY _ZTI5cc620[];
+extern VTBL_ENTRY _ZTV5cc620[];
+extern Class_Descriptor cd_dd1620;
+extern VTBL_ENTRY _ZTI6dd1620[];
+extern VTBL_ENTRY _ZTV6dd1620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1620[];
+static Base_Class bases_ee11620[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc620, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1620, 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 _ZTI7ee11620[];
+extern void _ZN5cc6203fooEv();
+extern void _ZN5cc6203barEv();
+static VTBL_ENTRY vtc_ee11620[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11620[0]),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11620[0]),
+ 0,
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11620[0]),
+ (VTBL_ENTRY)&_ZN5cc6203fooEv,
+ (VTBL_ENTRY)&_ZN5cc6203barEv,
+};
+extern VTBL_ENTRY _ZTV7ee11620[];
+static VTBL_ENTRY _tg__ZTV6dd1620__7ee11620[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1620[0]),
+};
+extern void _ZN5cc6203fooEv();
+extern void _ZN5cc6203barEv();
+static VTBL_ENTRY _tg__ZTV5cc620__6dd1620__7ee11620[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1620[0]),
+ (VTBL_ENTRY)&_ZN5cc6203fooEv,
+ (VTBL_ENTRY)&_ZN5cc6203barEv,
+};
+static VTT_ENTRY vtt_ee11620[] = {
+ {&(_ZTV7ee11620[4]), 4,13},
+ {&(_ZTV7ee11620[7]), 7,13},
+ {&(_ZTV7ee11620[11]), 11,13},
+ {&(_tg__ZTV6dd1620__7ee11620[3]), 3,3},
+ {&(_tg__ZTV5cc620__6dd1620__7ee11620[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee11620[];
+extern VTBL_ENTRY _ZTV7ee11620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11620[];
+Class_Descriptor cd_ee11620 = { "ee11620", // class name
+ bases_ee11620, 4,
+ &(vtc_ee11620[0]), // expected_vtbl_contents
+ &(vtt_ee11620[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee11620),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11620),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11620),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 ee21620 : dd1620 {
+ int e;
+ virtual void foo(); // _ZN7ee216203fooEv
+ ~ee21620(); // tgen
+ ee21620(); // tgen
+};
+//SIG(1 ee21620) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v1 Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee21620 ::foo(){vfunc_called(this, "_ZN7ee216203fooEv");}
+ee21620 ::~ee21620(){ note_dtor("ee21620", this);} // tgen
+ee21620 ::ee21620(){ note_ctor("ee21620", this);} // tgen
+
+static void Test_ee21620()
+{
+ extern Class_Descriptor cd_ee21620;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee21620, buf);
+ ee21620 *dp, &lv = *(dp=new (buf) ee21620());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee21620)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21620)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc620*), ABISELECT(24,16), "ee21620");
+ check_base_class_offset(lv, (bb20*)(cc620*), ABISELECT(16,12), "ee21620");
+ check_base_class_offset(lv, (cc620*)(dd1620*), ABISELECT(16,12), "ee21620");
+ check_base_class_offset(lv, (dd1620*), 0, "ee21620");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21620.e");
+ test_class_info(&lv, &cd_ee21620);
+ dp->~ee21620();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21620(Test_ee21620, "ee21620", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee21620C1Ev();
+extern void _ZN7ee21620D1Ev();
+Name_Map name_map_ee21620[] = {
+ NSPAIR(_ZN7ee21620C1Ev),
+ NSPAIR(_ZN7ee21620D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc620;
+extern VTBL_ENTRY _ZTI5cc620[];
+extern VTBL_ENTRY _ZTV5cc620[];
+extern Class_Descriptor cd_dd1620;
+extern VTBL_ENTRY _ZTI6dd1620[];
+extern VTBL_ENTRY _ZTV6dd1620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1620[];
+static Base_Class bases_ee21620[] = {
+ // 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_bb20, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc620, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1620, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee21620[];
+extern void _ZN7ee216203fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee216203fooEv,_ZTv0_n12_N7ee216203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee216203fooEv,_ZThn12_N7ee216203fooEv)() __attribute__((weak));
+extern void _ZN5cc6203barEv();
+static VTBL_ENTRY vtc_ee21620[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21620[0]),
+ (VTBL_ENTRY)&_ZN7ee216203fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21620[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee216203fooEv,_ZTv0_n12_N7ee216203fooEv),
+ (VTBL_ENTRY)&_ZN5cc6203barEv,
+};
+extern VTBL_ENTRY _ZTV7ee21620[];
+static VTBL_ENTRY _tg__ZTV6dd1620__7ee21620[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1620[0]),
+};
+extern void _ZN5cc6203fooEv();
+extern void _ZN5cc6203barEv();
+static VTBL_ENTRY _tg__ZTV5cc620__6dd1620__7ee21620[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1620[0]),
+ (VTBL_ENTRY)&_ZN5cc6203fooEv,
+ (VTBL_ENTRY)&_ZN5cc6203barEv,
+};
+static VTT_ENTRY vtt_ee21620[] = {
+ {&(_ZTV7ee21620[3]), 3,10},
+ {&(_tg__ZTV6dd1620__7ee21620[3]), 3,3},
+ {&(_tg__ZTV5cc620__6dd1620__7ee21620[4]), 4,6},
+ {&(_ZTV7ee21620[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee21620[];
+extern VTBL_ENTRY _ZTV7ee21620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21620[];
+static VTBL_ENTRY alt_thunk_names311[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee216203fooEv,_ZTv0_n12_N7ee216203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee216203fooEv,_ZThn12_N7ee216203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21620 = { "ee21620", // class name
+ bases_ee21620, 4,
+ &(vtc_ee21620[0]), // expected_vtbl_contents
+ &(vtt_ee21620[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee21620),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21620),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21620),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names311,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee31620 : virtual dd1620 {
+ int e;
+ virtual void foo(); // _ZN7ee316203fooEv
+ ~ee31620(); // tgen
+ ee31620(); // tgen
+};
+//SIG(1 ee31620) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v1 Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee31620 ::foo(){vfunc_called(this, "_ZN7ee316203fooEv");}
+ee31620 ::~ee31620(){ note_dtor("ee31620", this);} // tgen
+ee31620 ::ee31620(){ note_ctor("ee31620", this);} // tgen
+
+static void Test_ee31620()
+{
+ extern Class_Descriptor cd_ee31620;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee31620, buf);
+ ee31620 *dp, &lv = *(dp=new (buf) ee31620());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee31620)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31620)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc620*), ABISELECT(40,20), "ee31620");
+ check_base_class_offset(lv, (bb20*)(cc620*), ABISELECT(32,16), "ee31620");
+ check_base_class_offset(lv, (cc620*)(dd1620*), ABISELECT(32,16), "ee31620");
+ check_base_class_offset(lv, (dd1620*), ABISELECT(16,8), "ee31620");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31620.e");
+ test_class_info(&lv, &cd_ee31620);
+ dp->~ee31620();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31620(Test_ee31620, "ee31620", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee31620C1Ev();
+extern void _ZN7ee31620D1Ev();
+Name_Map name_map_ee31620[] = {
+ NSPAIR(_ZN7ee31620C1Ev),
+ NSPAIR(_ZN7ee31620D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc620;
+extern VTBL_ENTRY _ZTI5cc620[];
+extern VTBL_ENTRY _ZTV5cc620[];
+extern Class_Descriptor cd_dd1620;
+extern VTBL_ENTRY _ZTI6dd1620[];
+extern VTBL_ENTRY _ZTV6dd1620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1620[];
+static Base_Class bases_ee31620[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc620, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1620, 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 _ZTI7ee31620[];
+extern void _ZN7ee316203fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee316203fooEv,_ZTv0_n12_N7ee316203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee316203fooEv,_ZThn16_N7ee316203fooEv)() __attribute__((weak));
+extern void _ZN5cc6203barEv();
+static VTBL_ENTRY vtc_ee31620[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31620[0]),
+ (VTBL_ENTRY)&_ZN7ee316203fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31620[0]),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31620[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee316203fooEv,_ZTv0_n12_N7ee316203fooEv),
+ (VTBL_ENTRY)&_ZN5cc6203barEv,
+};
+extern VTBL_ENTRY _ZTV7ee31620[];
+static VTBL_ENTRY _tg__ZTV6dd1620__7ee31620[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1620[0]),
+};
+extern void _ZN5cc6203fooEv();
+extern void _ZN5cc6203barEv();
+static VTBL_ENTRY _tg__ZTV5cc620__6dd1620__7ee31620[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1620[0]),
+ (VTBL_ENTRY)&_ZN5cc6203fooEv,
+ (VTBL_ENTRY)&_ZN5cc6203barEv,
+};
+static VTT_ENTRY vtt_ee31620[] = {
+ {&(_ZTV7ee31620[4]), 4,14},
+ {&(_ZTV7ee31620[8]), 8,14},
+ {&(_ZTV7ee31620[12]), 12,14},
+ {&(_tg__ZTV6dd1620__7ee31620[3]), 3,3},
+ {&(_tg__ZTV5cc620__6dd1620__7ee31620[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee31620[];
+extern VTBL_ENTRY _ZTV7ee31620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31620[];
+static VTBL_ENTRY alt_thunk_names312[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee316203fooEv,_ZTv0_n12_N7ee316203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee316203fooEv,_ZThn16_N7ee316203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31620 = { "ee31620", // class name
+ bases_ee31620, 4,
+ &(vtc_ee31620[0]), // expected_vtbl_contents
+ &(vtt_ee31620[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee31620),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31620),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31620),5, //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 ee41620 : dd1620 {
+ int e;
+ virtual void bar(); // _ZN7ee416203barEv
+ ~ee41620(); // tgen
+ ee41620(); // tgen
+};
+//SIG(1 ee41620) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v2 Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee41620 ::bar(){vfunc_called(this, "_ZN7ee416203barEv");}
+ee41620 ::~ee41620(){ note_dtor("ee41620", this);} // tgen
+ee41620 ::ee41620(){ note_ctor("ee41620", this);} // tgen
+
+static void Test_ee41620()
+{
+ extern Class_Descriptor cd_ee41620;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee41620, buf);
+ ee41620 *dp, &lv = *(dp=new (buf) ee41620());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee41620)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41620)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc620*), ABISELECT(24,16), "ee41620");
+ check_base_class_offset(lv, (bb20*)(cc620*), ABISELECT(16,12), "ee41620");
+ check_base_class_offset(lv, (cc620*)(dd1620*), ABISELECT(16,12), "ee41620");
+ check_base_class_offset(lv, (dd1620*), 0, "ee41620");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41620.e");
+ test_class_info(&lv, &cd_ee41620);
+ dp->~ee41620();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41620(Test_ee41620, "ee41620", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee41620C1Ev();
+extern void _ZN7ee41620D1Ev();
+Name_Map name_map_ee41620[] = {
+ NSPAIR(_ZN7ee41620C1Ev),
+ NSPAIR(_ZN7ee41620D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc620;
+extern VTBL_ENTRY _ZTI5cc620[];
+extern VTBL_ENTRY _ZTV5cc620[];
+extern Class_Descriptor cd_dd1620;
+extern VTBL_ENTRY _ZTI6dd1620[];
+extern VTBL_ENTRY _ZTV6dd1620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1620[];
+static Base_Class bases_ee41620[] = {
+ // 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_bb20, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc620, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1620, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee41620[];
+extern void _ZN7ee416203barEv();
+extern void _ZN5cc6203fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee416203barEv,_ZTv0_n16_N7ee416203barEv)();
+extern void ABISELECT(_ZThn16_N7ee416203barEv,_ZThn12_N7ee416203barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee41620[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41620[0]),
+ (VTBL_ENTRY)&_ZN7ee416203barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41620[0]),
+ (VTBL_ENTRY)&_ZN5cc6203fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee416203barEv,_ZTv0_n16_N7ee416203barEv),
+};
+extern VTBL_ENTRY _ZTV7ee41620[];
+static VTBL_ENTRY _tg__ZTV6dd1620__7ee41620[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1620[0]),
+};
+extern void _ZN5cc6203fooEv();
+extern void _ZN5cc6203barEv();
+static VTBL_ENTRY _tg__ZTV5cc620__6dd1620__7ee41620[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1620[0]),
+ (VTBL_ENTRY)&_ZN5cc6203fooEv,
+ (VTBL_ENTRY)&_ZN5cc6203barEv,
+};
+static VTT_ENTRY vtt_ee41620[] = {
+ {&(_ZTV7ee41620[3]), 3,10},
+ {&(_tg__ZTV6dd1620__7ee41620[3]), 3,3},
+ {&(_tg__ZTV5cc620__6dd1620__7ee41620[4]), 4,6},
+ {&(_ZTV7ee41620[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee41620[];
+extern VTBL_ENTRY _ZTV7ee41620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41620[];
+static VTBL_ENTRY alt_thunk_names313[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee416203barEv,_ZTv0_n16_N7ee416203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee416203barEv,_ZThn12_N7ee416203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41620 = { "ee41620", // class name
+ bases_ee41620, 4,
+ &(vtc_ee41620[0]), // expected_vtbl_contents
+ &(vtt_ee41620[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee41620),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41620),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41620),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names313,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee51620 : virtual dd1620 {
+ int e;
+ virtual void bar(); // _ZN7ee516203barEv
+ ~ee51620(); // tgen
+ ee51620(); // tgen
+};
+//SIG(1 ee51620) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v2 Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee51620 ::bar(){vfunc_called(this, "_ZN7ee516203barEv");}
+ee51620 ::~ee51620(){ note_dtor("ee51620", this);} // tgen
+ee51620 ::ee51620(){ note_ctor("ee51620", this);} // tgen
+
+static void Test_ee51620()
+{
+ extern Class_Descriptor cd_ee51620;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee51620, buf);
+ ee51620 *dp, &lv = *(dp=new (buf) ee51620());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee51620)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51620)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc620*), ABISELECT(40,20), "ee51620");
+ check_base_class_offset(lv, (bb20*)(cc620*), ABISELECT(32,16), "ee51620");
+ check_base_class_offset(lv, (cc620*)(dd1620*), ABISELECT(32,16), "ee51620");
+ check_base_class_offset(lv, (dd1620*), ABISELECT(16,8), "ee51620");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51620.e");
+ test_class_info(&lv, &cd_ee51620);
+ dp->~ee51620();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51620(Test_ee51620, "ee51620", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee51620C1Ev();
+extern void _ZN7ee51620D1Ev();
+Name_Map name_map_ee51620[] = {
+ NSPAIR(_ZN7ee51620C1Ev),
+ NSPAIR(_ZN7ee51620D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc620;
+extern VTBL_ENTRY _ZTI5cc620[];
+extern VTBL_ENTRY _ZTV5cc620[];
+extern Class_Descriptor cd_dd1620;
+extern VTBL_ENTRY _ZTI6dd1620[];
+extern VTBL_ENTRY _ZTV6dd1620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1620[];
+static Base_Class bases_ee51620[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc620, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1620, 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 _ZTI7ee51620[];
+extern void _ZN7ee516203barEv();
+extern void _ZN5cc6203fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee516203barEv,_ZTv0_n16_N7ee516203barEv)();
+extern void ABISELECT(_ZThn32_N7ee516203barEv,_ZThn16_N7ee516203barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee51620[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51620[0]),
+ (VTBL_ENTRY)&_ZN7ee516203barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51620[0]),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51620[0]),
+ (VTBL_ENTRY)&_ZN5cc6203fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee516203barEv,_ZTv0_n16_N7ee516203barEv),
+};
+extern VTBL_ENTRY _ZTV7ee51620[];
+static VTBL_ENTRY _tg__ZTV6dd1620__7ee51620[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1620[0]),
+};
+extern void _ZN5cc6203fooEv();
+extern void _ZN5cc6203barEv();
+static VTBL_ENTRY _tg__ZTV5cc620__6dd1620__7ee51620[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1620[0]),
+ (VTBL_ENTRY)&_ZN5cc6203fooEv,
+ (VTBL_ENTRY)&_ZN5cc6203barEv,
+};
+static VTT_ENTRY vtt_ee51620[] = {
+ {&(_ZTV7ee51620[4]), 4,14},
+ {&(_ZTV7ee51620[8]), 8,14},
+ {&(_ZTV7ee51620[12]), 12,14},
+ {&(_tg__ZTV6dd1620__7ee51620[3]), 3,3},
+ {&(_tg__ZTV5cc620__6dd1620__7ee51620[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee51620[];
+extern VTBL_ENTRY _ZTV7ee51620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51620[];
+static VTBL_ENTRY alt_thunk_names314[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee516203barEv,_ZTv0_n16_N7ee516203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee516203barEv,_ZThn16_N7ee516203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51620 = { "ee51620", // class name
+ bases_ee51620, 4,
+ &(vtc_ee51620[0]), // expected_vtbl_contents
+ &(vtt_ee51620[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee51620),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51620),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51620),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names314,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee61620 : dd1620 {
+ int e;
+ virtual void foo(); // _ZN7ee616203fooEv
+ virtual void bar(); // _ZN7ee616203barEv
+ ~ee61620(); // tgen
+ ee61620(); // tgen
+};
+//SIG(1 ee61620) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v1 Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee61620 ::foo(){vfunc_called(this, "_ZN7ee616203fooEv");}
+void ee61620 ::bar(){vfunc_called(this, "_ZN7ee616203barEv");}
+ee61620 ::~ee61620(){ note_dtor("ee61620", this);} // tgen
+ee61620 ::ee61620(){ note_ctor("ee61620", this);} // tgen
+
+static void Test_ee61620()
+{
+ extern Class_Descriptor cd_ee61620;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee61620, buf);
+ ee61620 *dp, &lv = *(dp=new (buf) ee61620());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee61620)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61620)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc620*), ABISELECT(24,16), "ee61620");
+ check_base_class_offset(lv, (bb20*)(cc620*), ABISELECT(16,12), "ee61620");
+ check_base_class_offset(lv, (cc620*)(dd1620*), ABISELECT(16,12), "ee61620");
+ check_base_class_offset(lv, (dd1620*), 0, "ee61620");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61620.e");
+ test_class_info(&lv, &cd_ee61620);
+ dp->~ee61620();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61620(Test_ee61620, "ee61620", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee61620C1Ev();
+extern void _ZN7ee61620D1Ev();
+Name_Map name_map_ee61620[] = {
+ NSPAIR(_ZN7ee61620C1Ev),
+ NSPAIR(_ZN7ee61620D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc620;
+extern VTBL_ENTRY _ZTI5cc620[];
+extern VTBL_ENTRY _ZTV5cc620[];
+extern Class_Descriptor cd_dd1620;
+extern VTBL_ENTRY _ZTI6dd1620[];
+extern VTBL_ENTRY _ZTV6dd1620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1620[];
+static Base_Class bases_ee61620[] = {
+ // 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_bb20, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc620, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1620, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee61620[];
+extern void _ZN7ee616203fooEv();
+extern void _ZN7ee616203barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee616203fooEv,_ZTv0_n12_N7ee616203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee616203fooEv,_ZThn12_N7ee616203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee616203barEv,_ZTv0_n16_N7ee616203barEv)();
+extern void ABISELECT(_ZThn16_N7ee616203barEv,_ZThn12_N7ee616203barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61620[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61620[0]),
+ (VTBL_ENTRY)&_ZN7ee616203fooEv,
+ (VTBL_ENTRY)&_ZN7ee616203barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61620[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee616203fooEv,_ZTv0_n12_N7ee616203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee616203barEv,_ZTv0_n16_N7ee616203barEv),
+};
+extern VTBL_ENTRY _ZTV7ee61620[];
+static VTBL_ENTRY _tg__ZTV6dd1620__7ee61620[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1620[0]),
+};
+extern void _ZN5cc6203fooEv();
+extern void _ZN5cc6203barEv();
+static VTBL_ENTRY _tg__ZTV5cc620__6dd1620__7ee61620[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1620[0]),
+ (VTBL_ENTRY)&_ZN5cc6203fooEv,
+ (VTBL_ENTRY)&_ZN5cc6203barEv,
+};
+static VTT_ENTRY vtt_ee61620[] = {
+ {&(_ZTV7ee61620[3]), 3,11},
+ {&(_tg__ZTV6dd1620__7ee61620[3]), 3,3},
+ {&(_tg__ZTV5cc620__6dd1620__7ee61620[4]), 4,6},
+ {&(_ZTV7ee61620[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee61620[];
+extern VTBL_ENTRY _ZTV7ee61620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61620[];
+static VTBL_ENTRY alt_thunk_names315[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee616203barEv,_ZTv0_n16_N7ee616203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee616203barEv,_ZThn12_N7ee616203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee616203fooEv,_ZTv0_n12_N7ee616203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee616203fooEv,_ZThn12_N7ee616203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61620 = { "ee61620", // class name
+ bases_ee61620, 4,
+ &(vtc_ee61620[0]), // expected_vtbl_contents
+ &(vtt_ee61620[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee61620),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61620),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61620),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names315,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee71620 : virtual dd1620 {
+ int e;
+ virtual void foo(); // _ZN7ee716203fooEv
+ virtual void bar(); // _ZN7ee716203barEv
+ ~ee71620(); // tgen
+ ee71620(); // tgen
+};
+//SIG(1 ee71620) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v1 Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee71620 ::foo(){vfunc_called(this, "_ZN7ee716203fooEv");}
+void ee71620 ::bar(){vfunc_called(this, "_ZN7ee716203barEv");}
+ee71620 ::~ee71620(){ note_dtor("ee71620", this);} // tgen
+ee71620 ::ee71620(){ note_ctor("ee71620", this);} // tgen
+
+static void Test_ee71620()
+{
+ extern Class_Descriptor cd_ee71620;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee71620, buf);
+ ee71620 *dp, &lv = *(dp=new (buf) ee71620());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee71620)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71620)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc620*), ABISELECT(40,20), "ee71620");
+ check_base_class_offset(lv, (bb20*)(cc620*), ABISELECT(32,16), "ee71620");
+ check_base_class_offset(lv, (cc620*)(dd1620*), ABISELECT(32,16), "ee71620");
+ check_base_class_offset(lv, (dd1620*), ABISELECT(16,8), "ee71620");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71620.e");
+ test_class_info(&lv, &cd_ee71620);
+ dp->~ee71620();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71620(Test_ee71620, "ee71620", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee71620C1Ev();
+extern void _ZN7ee71620D1Ev();
+Name_Map name_map_ee71620[] = {
+ NSPAIR(_ZN7ee71620C1Ev),
+ NSPAIR(_ZN7ee71620D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc620;
+extern VTBL_ENTRY _ZTI5cc620[];
+extern VTBL_ENTRY _ZTV5cc620[];
+extern Class_Descriptor cd_dd1620;
+extern VTBL_ENTRY _ZTI6dd1620[];
+extern VTBL_ENTRY _ZTV6dd1620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1620[];
+static Base_Class bases_ee71620[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc620, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1620, 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 _ZTI7ee71620[];
+extern void _ZN7ee716203fooEv();
+extern void _ZN7ee716203barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee716203fooEv,_ZTv0_n12_N7ee716203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee716203fooEv,_ZThn16_N7ee716203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee716203barEv,_ZTv0_n16_N7ee716203barEv)();
+extern void ABISELECT(_ZThn32_N7ee716203barEv,_ZThn16_N7ee716203barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71620[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71620[0]),
+ (VTBL_ENTRY)&_ZN7ee716203fooEv,
+ (VTBL_ENTRY)&_ZN7ee716203barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71620[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71620[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee716203fooEv,_ZTv0_n12_N7ee716203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee716203barEv,_ZTv0_n16_N7ee716203barEv),
+};
+extern VTBL_ENTRY _ZTV7ee71620[];
+static VTBL_ENTRY _tg__ZTV6dd1620__7ee71620[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1620[0]),
+};
+extern void _ZN5cc6203fooEv();
+extern void _ZN5cc6203barEv();
+static VTBL_ENTRY _tg__ZTV5cc620__6dd1620__7ee71620[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1620[0]),
+ (VTBL_ENTRY)&_ZN5cc6203fooEv,
+ (VTBL_ENTRY)&_ZN5cc6203barEv,
+};
+static VTT_ENTRY vtt_ee71620[] = {
+ {&(_ZTV7ee71620[4]), 4,15},
+ {&(_ZTV7ee71620[9]), 9,15},
+ {&(_ZTV7ee71620[13]), 13,15},
+ {&(_tg__ZTV6dd1620__7ee71620[3]), 3,3},
+ {&(_tg__ZTV5cc620__6dd1620__7ee71620[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee71620[];
+extern VTBL_ENTRY _ZTV7ee71620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71620[];
+static VTBL_ENTRY alt_thunk_names316[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee716203barEv,_ZTv0_n16_N7ee716203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee716203barEv,_ZThn16_N7ee716203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee716203fooEv,_ZTv0_n12_N7ee716203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee716203fooEv,_ZThn16_N7ee716203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71620 = { "ee71620", // class name
+ bases_ee71620, 4,
+ &(vtc_ee71620[0]), // expected_vtbl_contents
+ &(vtt_ee71620[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee71620),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71620),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71620),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names316,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd2620 : cc620 {
+ int d;
+ virtual void foo(); // _ZN6dd26203fooEv
+ ~dd2620(); // tgen
+ dd2620(); // tgen
+};
+//SIG(-1 dd2620) C1{ BC2{ BC3{ BC4{ Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void dd2620 ::foo(){vfunc_called(this, "_ZN6dd26203fooEv");}
+dd2620 ::~dd2620(){ note_dtor("dd2620", this);} // tgen
+dd2620 ::dd2620(){ note_ctor("dd2620", this);} // tgen
+
+static void Test_dd2620()
+{
+ extern Class_Descriptor cd_dd2620;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd2620, buf);
+ dd2620 *dp, &lv = *(dp=new (buf) dd2620());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd2620)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2620)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc620*), ABISELECT(8,4), "dd2620");
+ check_base_class_offset(lv, (bb20*)(cc620*), 0, "dd2620");
+ check_base_class_offset(lv, (cc620*), 0, "dd2620");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd2620.d");
+ test_class_info(&lv, &cd_dd2620);
+ dp->~dd2620();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2620(Test_dd2620, "dd2620", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd2620C1Ev();
+extern void _ZN6dd2620D1Ev();
+Name_Map name_map_dd2620[] = {
+ NSPAIR(_ZN6dd2620C1Ev),
+ NSPAIR(_ZN6dd2620D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc620;
+extern VTBL_ENTRY _ZTI5cc620[];
+extern VTBL_ENTRY _ZTV5cc620[];
+static Base_Class bases_dd2620[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc620, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI6dd2620[];
+extern void _ZN6dd26203fooEv();
+extern void _ZN5cc6203barEv();
+static VTBL_ENTRY vtc_dd2620[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2620[0]),
+ (VTBL_ENTRY)&_ZN6dd26203fooEv,
+ (VTBL_ENTRY)&_ZN5cc6203barEv,
+};
+extern VTBL_ENTRY _ZTI6dd2620[];
+extern VTBL_ENTRY _ZTV6dd2620[];
+Class_Descriptor cd_dd2620 = { "dd2620", // class name
+ bases_dd2620, 3,
+ &(vtc_dd2620[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd2620),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2620),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 ee02620 : dd2620 {
+ int e;
+ ~ee02620(); // tgen
+ ee02620(); // tgen
+};
+//SIG(1 ee02620) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v1 Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee02620 ::~ee02620(){ note_dtor("ee02620", this);} // tgen
+ee02620 ::ee02620(){ note_ctor("ee02620", this);} // tgen
+
+static void Test_ee02620()
+{
+ extern Class_Descriptor cd_ee02620;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee02620, buf);
+ ee02620 *dp, &lv = *(dp=new (buf) ee02620());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee02620)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02620)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc620*)(dd2620*), ABISELECT(8,4), "ee02620");
+ check_base_class_offset(lv, (bb20*)(cc620*)(dd2620*), 0, "ee02620");
+ check_base_class_offset(lv, (cc620*)(dd2620*), 0, "ee02620");
+ check_base_class_offset(lv, (dd2620*), 0, "ee02620");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee02620.e");
+ test_class_info(&lv, &cd_ee02620);
+ dp->~ee02620();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02620(Test_ee02620, "ee02620", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee02620C1Ev();
+extern void _ZN7ee02620D1Ev();
+Name_Map name_map_ee02620[] = {
+ NSPAIR(_ZN7ee02620C1Ev),
+ NSPAIR(_ZN7ee02620D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc620;
+extern VTBL_ENTRY _ZTI5cc620[];
+extern VTBL_ENTRY _ZTV5cc620[];
+extern Class_Descriptor cd_dd2620;
+extern VTBL_ENTRY _ZTI6dd2620[];
+extern VTBL_ENTRY _ZTV6dd2620[];
+static Base_Class bases_ee02620[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc620, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2620, 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 _ZTI7ee02620[];
+extern void _ZN6dd26203fooEv();
+extern void _ZN5cc6203barEv();
+static VTBL_ENTRY vtc_ee02620[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02620[0]),
+ (VTBL_ENTRY)&_ZN6dd26203fooEv,
+ (VTBL_ENTRY)&_ZN5cc6203barEv,
+};
+extern VTBL_ENTRY _ZTI7ee02620[];
+extern VTBL_ENTRY _ZTV7ee02620[];
+Class_Descriptor cd_ee02620 = { "ee02620", // class name
+ bases_ee02620, 4,
+ &(vtc_ee02620[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee02620),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02620),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 ee12620 : virtual dd2620 {
+ int e;
+ ~ee12620(); // tgen
+ ee12620(); // tgen
+};
+//SIG(1 ee12620) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v1 Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee12620 ::~ee12620(){ note_dtor("ee12620", this);} // tgen
+ee12620 ::ee12620(){ note_ctor("ee12620", this);} // tgen
+
+static void Test_ee12620()
+{
+ extern Class_Descriptor cd_ee12620;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee12620, buf);
+ ee12620 *dp, &lv = *(dp=new (buf) ee12620());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee12620)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12620)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc620*)(dd2620*), ABISELECT(24,12), "ee12620");
+ check_base_class_offset(lv, (bb20*)(cc620*)(dd2620*), ABISELECT(16,8), "ee12620");
+ check_base_class_offset(lv, (cc620*)(dd2620*), ABISELECT(16,8), "ee12620");
+ check_base_class_offset(lv, (dd2620*), ABISELECT(16,8), "ee12620");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12620.e");
+ test_class_info(&lv, &cd_ee12620);
+ dp->~ee12620();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12620(Test_ee12620, "ee12620", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee12620C1Ev();
+extern void _ZN7ee12620D1Ev();
+Name_Map name_map_ee12620[] = {
+ NSPAIR(_ZN7ee12620C1Ev),
+ NSPAIR(_ZN7ee12620D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc620;
+extern VTBL_ENTRY _ZTI5cc620[];
+extern VTBL_ENTRY _ZTV5cc620[];
+extern Class_Descriptor cd_dd2620;
+extern VTBL_ENTRY _ZTI6dd2620[];
+extern VTBL_ENTRY _ZTV6dd2620[];
+static Base_Class bases_ee12620[] = {
+ // 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_bb20, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc620, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2620, 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 _ZTI7ee12620[];
+extern void _ZN6dd26203fooEv();
+extern void _ZN5cc6203barEv();
+static VTBL_ENTRY vtc_ee12620[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12620[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12620[0]),
+ (VTBL_ENTRY)&_ZN6dd26203fooEv,
+ (VTBL_ENTRY)&_ZN5cc6203barEv,
+};
+extern VTBL_ENTRY _ZTV7ee12620[];
+static VTT_ENTRY vtt_ee12620[] = {
+ {&(_ZTV7ee12620[3]), 3,9},
+ {&(_ZTV7ee12620[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee12620[];
+extern VTBL_ENTRY _ZTV7ee12620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12620[];
+Class_Descriptor cd_ee12620 = { "ee12620", // class name
+ bases_ee12620, 4,
+ &(vtc_ee12620[0]), // expected_vtbl_contents
+ &(vtt_ee12620[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee12620),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12620),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12620),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 ee22620 : dd2620 {
+ int e;
+ virtual void foo(); // _ZN7ee226203fooEv
+ ~ee22620(); // tgen
+ ee22620(); // tgen
+};
+//SIG(1 ee22620) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v1 Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee22620 ::foo(){vfunc_called(this, "_ZN7ee226203fooEv");}
+ee22620 ::~ee22620(){ note_dtor("ee22620", this);} // tgen
+ee22620 ::ee22620(){ note_ctor("ee22620", this);} // tgen
+
+static void Test_ee22620()
+{
+ extern Class_Descriptor cd_ee22620;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee22620, buf);
+ ee22620 *dp, &lv = *(dp=new (buf) ee22620());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee22620)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22620)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc620*)(dd2620*), ABISELECT(8,4), "ee22620");
+ check_base_class_offset(lv, (bb20*)(cc620*)(dd2620*), 0, "ee22620");
+ check_base_class_offset(lv, (cc620*)(dd2620*), 0, "ee22620");
+ check_base_class_offset(lv, (dd2620*), 0, "ee22620");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee22620.e");
+ test_class_info(&lv, &cd_ee22620);
+ dp->~ee22620();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22620(Test_ee22620, "ee22620", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee22620C1Ev();
+extern void _ZN7ee22620D1Ev();
+Name_Map name_map_ee22620[] = {
+ NSPAIR(_ZN7ee22620C1Ev),
+ NSPAIR(_ZN7ee22620D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc620;
+extern VTBL_ENTRY _ZTI5cc620[];
+extern VTBL_ENTRY _ZTV5cc620[];
+extern Class_Descriptor cd_dd2620;
+extern VTBL_ENTRY _ZTI6dd2620[];
+extern VTBL_ENTRY _ZTV6dd2620[];
+static Base_Class bases_ee22620[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc620, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2620, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee22620[];
+extern void _ZN7ee226203fooEv();
+extern void _ZN5cc6203barEv();
+static VTBL_ENTRY vtc_ee22620[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22620[0]),
+ (VTBL_ENTRY)&_ZN7ee226203fooEv,
+ (VTBL_ENTRY)&_ZN5cc6203barEv,
+};
+extern VTBL_ENTRY _ZTI7ee22620[];
+extern VTBL_ENTRY _ZTV7ee22620[];
+Class_Descriptor cd_ee22620 = { "ee22620", // class name
+ bases_ee22620, 4,
+ &(vtc_ee22620[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee22620),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22620),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 ee32620 : virtual dd2620 {
+ int e;
+ virtual void foo(); // _ZN7ee326203fooEv
+ ~ee32620(); // tgen
+ ee32620(); // tgen
+};
+//SIG(1 ee32620) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v1 Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee32620 ::foo(){vfunc_called(this, "_ZN7ee326203fooEv");}
+ee32620 ::~ee32620(){ note_dtor("ee32620", this);} // tgen
+ee32620 ::ee32620(){ note_ctor("ee32620", this);} // tgen
+
+static void Test_ee32620()
+{
+ extern Class_Descriptor cd_ee32620;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee32620, buf);
+ ee32620 *dp, &lv = *(dp=new (buf) ee32620());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee32620)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32620)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc620*)(dd2620*), ABISELECT(24,12), "ee32620");
+ check_base_class_offset(lv, (bb20*)(cc620*)(dd2620*), ABISELECT(16,8), "ee32620");
+ check_base_class_offset(lv, (cc620*)(dd2620*), ABISELECT(16,8), "ee32620");
+ check_base_class_offset(lv, (dd2620*), ABISELECT(16,8), "ee32620");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32620.e");
+ test_class_info(&lv, &cd_ee32620);
+ dp->~ee32620();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32620(Test_ee32620, "ee32620", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee32620C1Ev();
+extern void _ZN7ee32620D1Ev();
+Name_Map name_map_ee32620[] = {
+ NSPAIR(_ZN7ee32620C1Ev),
+ NSPAIR(_ZN7ee32620D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc620;
+extern VTBL_ENTRY _ZTI5cc620[];
+extern VTBL_ENTRY _ZTV5cc620[];
+extern Class_Descriptor cd_dd2620;
+extern VTBL_ENTRY _ZTI6dd2620[];
+extern VTBL_ENTRY _ZTV6dd2620[];
+static Base_Class bases_ee32620[] = {
+ // 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_bb20, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc620, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2620, 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 _ZTI7ee32620[];
+extern void _ZN7ee326203fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee326203fooEv,_ZTv0_n12_N7ee326203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee326203fooEv,_ZThn8_N7ee326203fooEv)() __attribute__((weak));
+extern void _ZN5cc6203barEv();
+static VTBL_ENTRY vtc_ee32620[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32620[0]),
+ (VTBL_ENTRY)&_ZN7ee326203fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32620[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee326203fooEv,_ZTv0_n12_N7ee326203fooEv),
+ (VTBL_ENTRY)&_ZN5cc6203barEv,
+};
+extern VTBL_ENTRY _ZTV7ee32620[];
+static VTT_ENTRY vtt_ee32620[] = {
+ {&(_ZTV7ee32620[3]), 3,10},
+ {&(_ZTV7ee32620[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee32620[];
+extern VTBL_ENTRY _ZTV7ee32620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32620[];
+static VTBL_ENTRY alt_thunk_names317[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee326203fooEv,_ZTv0_n12_N7ee326203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee326203fooEv,_ZThn8_N7ee326203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32620 = { "ee32620", // class name
+ bases_ee32620, 4,
+ &(vtc_ee32620[0]), // expected_vtbl_contents
+ &(vtt_ee32620[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee32620),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32620),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32620),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names317,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee42620 : dd2620 {
+ int e;
+ virtual void bar(); // _ZN7ee426203barEv
+ ~ee42620(); // tgen
+ ee42620(); // tgen
+};
+//SIG(1 ee42620) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v2 Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee42620 ::bar(){vfunc_called(this, "_ZN7ee426203barEv");}
+ee42620 ::~ee42620(){ note_dtor("ee42620", this);} // tgen
+ee42620 ::ee42620(){ note_ctor("ee42620", this);} // tgen
+
+static void Test_ee42620()
+{
+ extern Class_Descriptor cd_ee42620;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee42620, buf);
+ ee42620 *dp, &lv = *(dp=new (buf) ee42620());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee42620)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42620)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc620*)(dd2620*), ABISELECT(8,4), "ee42620");
+ check_base_class_offset(lv, (bb20*)(cc620*)(dd2620*), 0, "ee42620");
+ check_base_class_offset(lv, (cc620*)(dd2620*), 0, "ee42620");
+ check_base_class_offset(lv, (dd2620*), 0, "ee42620");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee42620.e");
+ test_class_info(&lv, &cd_ee42620);
+ dp->~ee42620();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42620(Test_ee42620, "ee42620", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee42620C1Ev();
+extern void _ZN7ee42620D1Ev();
+Name_Map name_map_ee42620[] = {
+ NSPAIR(_ZN7ee42620C1Ev),
+ NSPAIR(_ZN7ee42620D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc620;
+extern VTBL_ENTRY _ZTI5cc620[];
+extern VTBL_ENTRY _ZTV5cc620[];
+extern Class_Descriptor cd_dd2620;
+extern VTBL_ENTRY _ZTI6dd2620[];
+extern VTBL_ENTRY _ZTV6dd2620[];
+static Base_Class bases_ee42620[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc620, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2620, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee42620[];
+extern void _ZN6dd26203fooEv();
+extern void _ZN7ee426203barEv();
+static VTBL_ENTRY vtc_ee42620[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42620[0]),
+ (VTBL_ENTRY)&_ZN6dd26203fooEv,
+ (VTBL_ENTRY)&_ZN7ee426203barEv,
+};
+extern VTBL_ENTRY _ZTI7ee42620[];
+extern VTBL_ENTRY _ZTV7ee42620[];
+Class_Descriptor cd_ee42620 = { "ee42620", // class name
+ bases_ee42620, 4,
+ &(vtc_ee42620[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee42620),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42620),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 ee52620 : virtual dd2620 {
+ int e;
+ virtual void bar(); // _ZN7ee526203barEv
+ ~ee52620(); // tgen
+ ee52620(); // tgen
+};
+//SIG(1 ee52620) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v2 Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee52620 ::bar(){vfunc_called(this, "_ZN7ee526203barEv");}
+ee52620 ::~ee52620(){ note_dtor("ee52620", this);} // tgen
+ee52620 ::ee52620(){ note_ctor("ee52620", this);} // tgen
+
+static void Test_ee52620()
+{
+ extern Class_Descriptor cd_ee52620;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee52620, buf);
+ ee52620 *dp, &lv = *(dp=new (buf) ee52620());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee52620)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52620)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc620*)(dd2620*), ABISELECT(24,12), "ee52620");
+ check_base_class_offset(lv, (bb20*)(cc620*)(dd2620*), ABISELECT(16,8), "ee52620");
+ check_base_class_offset(lv, (cc620*)(dd2620*), ABISELECT(16,8), "ee52620");
+ check_base_class_offset(lv, (dd2620*), ABISELECT(16,8), "ee52620");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52620.e");
+ test_class_info(&lv, &cd_ee52620);
+ dp->~ee52620();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52620(Test_ee52620, "ee52620", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee52620C1Ev();
+extern void _ZN7ee52620D1Ev();
+Name_Map name_map_ee52620[] = {
+ NSPAIR(_ZN7ee52620C1Ev),
+ NSPAIR(_ZN7ee52620D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc620;
+extern VTBL_ENTRY _ZTI5cc620[];
+extern VTBL_ENTRY _ZTV5cc620[];
+extern Class_Descriptor cd_dd2620;
+extern VTBL_ENTRY _ZTI6dd2620[];
+extern VTBL_ENTRY _ZTV6dd2620[];
+static Base_Class bases_ee52620[] = {
+ // 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_bb20, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc620, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2620, 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 _ZTI7ee52620[];
+extern void _ZN7ee526203barEv();
+extern void _ZN6dd26203fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee526203barEv,_ZTv0_n16_N7ee526203barEv)();
+extern void ABISELECT(_ZThn16_N7ee526203barEv,_ZThn8_N7ee526203barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee52620[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52620[0]),
+ (VTBL_ENTRY)&_ZN7ee526203barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52620[0]),
+ (VTBL_ENTRY)&_ZN6dd26203fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee526203barEv,_ZTv0_n16_N7ee526203barEv),
+};
+extern VTBL_ENTRY _ZTV7ee52620[];
+static VTT_ENTRY vtt_ee52620[] = {
+ {&(_ZTV7ee52620[3]), 3,10},
+ {&(_ZTV7ee52620[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee52620[];
+extern VTBL_ENTRY _ZTV7ee52620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52620[];
+static VTBL_ENTRY alt_thunk_names318[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee526203barEv,_ZTv0_n16_N7ee526203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee526203barEv,_ZThn8_N7ee526203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52620 = { "ee52620", // class name
+ bases_ee52620, 4,
+ &(vtc_ee52620[0]), // expected_vtbl_contents
+ &(vtt_ee52620[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee52620),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52620),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52620),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names318,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee62620 : dd2620 {
+ int e;
+ virtual void foo(); // _ZN7ee626203fooEv
+ virtual void bar(); // _ZN7ee626203barEv
+ ~ee62620(); // tgen
+ ee62620(); // tgen
+};
+//SIG(1 ee62620) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v1 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62620 ::foo(){vfunc_called(this, "_ZN7ee626203fooEv");}
+void ee62620 ::bar(){vfunc_called(this, "_ZN7ee626203barEv");}
+ee62620 ::~ee62620(){ note_dtor("ee62620", this);} // tgen
+ee62620 ::ee62620(){ note_ctor("ee62620", this);} // tgen
+
+static void Test_ee62620()
+{
+ extern Class_Descriptor cd_ee62620;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee62620, buf);
+ ee62620 *dp, &lv = *(dp=new (buf) ee62620());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee62620)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62620)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc620*)(dd2620*), ABISELECT(8,4), "ee62620");
+ check_base_class_offset(lv, (bb20*)(cc620*)(dd2620*), 0, "ee62620");
+ check_base_class_offset(lv, (cc620*)(dd2620*), 0, "ee62620");
+ check_base_class_offset(lv, (dd2620*), 0, "ee62620");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee62620.e");
+ test_class_info(&lv, &cd_ee62620);
+ dp->~ee62620();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62620(Test_ee62620, "ee62620", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee62620C1Ev();
+extern void _ZN7ee62620D1Ev();
+Name_Map name_map_ee62620[] = {
+ NSPAIR(_ZN7ee62620C1Ev),
+ NSPAIR(_ZN7ee62620D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc620;
+extern VTBL_ENTRY _ZTI5cc620[];
+extern VTBL_ENTRY _ZTV5cc620[];
+extern Class_Descriptor cd_dd2620;
+extern VTBL_ENTRY _ZTI6dd2620[];
+extern VTBL_ENTRY _ZTV6dd2620[];
+static Base_Class bases_ee62620[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc620, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2620, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee62620[];
+extern void _ZN7ee626203fooEv();
+extern void _ZN7ee626203barEv();
+static VTBL_ENTRY vtc_ee62620[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62620[0]),
+ (VTBL_ENTRY)&_ZN7ee626203fooEv,
+ (VTBL_ENTRY)&_ZN7ee626203barEv,
+};
+extern VTBL_ENTRY _ZTI7ee62620[];
+extern VTBL_ENTRY _ZTV7ee62620[];
+Class_Descriptor cd_ee62620 = { "ee62620", // class name
+ bases_ee62620, 4,
+ &(vtc_ee62620[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee62620),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62620),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 ee72620 : virtual dd2620 {
+ int e;
+ virtual void foo(); // _ZN7ee726203fooEv
+ virtual void bar(); // _ZN7ee726203barEv
+ ~ee72620(); // tgen
+ ee72620(); // tgen
+};
+//SIG(1 ee72620) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v1 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72620 ::foo(){vfunc_called(this, "_ZN7ee726203fooEv");}
+void ee72620 ::bar(){vfunc_called(this, "_ZN7ee726203barEv");}
+ee72620 ::~ee72620(){ note_dtor("ee72620", this);} // tgen
+ee72620 ::ee72620(){ note_ctor("ee72620", this);} // tgen
+
+static void Test_ee72620()
+{
+ extern Class_Descriptor cd_ee72620;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee72620, buf);
+ ee72620 *dp, &lv = *(dp=new (buf) ee72620());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee72620)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72620)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc620*)(dd2620*), ABISELECT(24,12), "ee72620");
+ check_base_class_offset(lv, (bb20*)(cc620*)(dd2620*), ABISELECT(16,8), "ee72620");
+ check_base_class_offset(lv, (cc620*)(dd2620*), ABISELECT(16,8), "ee72620");
+ check_base_class_offset(lv, (dd2620*), ABISELECT(16,8), "ee72620");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72620.e");
+ test_class_info(&lv, &cd_ee72620);
+ dp->~ee72620();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72620(Test_ee72620, "ee72620", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee72620C1Ev();
+extern void _ZN7ee72620D1Ev();
+Name_Map name_map_ee72620[] = {
+ NSPAIR(_ZN7ee72620C1Ev),
+ NSPAIR(_ZN7ee72620D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc620;
+extern VTBL_ENTRY _ZTI5cc620[];
+extern VTBL_ENTRY _ZTV5cc620[];
+extern Class_Descriptor cd_dd2620;
+extern VTBL_ENTRY _ZTI6dd2620[];
+extern VTBL_ENTRY _ZTV6dd2620[];
+static Base_Class bases_ee72620[] = {
+ // 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_bb20, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc620, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2620, 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 _ZTI7ee72620[];
+extern void _ZN7ee726203fooEv();
+extern void _ZN7ee726203barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee726203fooEv,_ZTv0_n12_N7ee726203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee726203fooEv,_ZThn8_N7ee726203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee726203barEv,_ZTv0_n16_N7ee726203barEv)();
+extern void ABISELECT(_ZThn16_N7ee726203barEv,_ZThn8_N7ee726203barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72620[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72620[0]),
+ (VTBL_ENTRY)&_ZN7ee726203fooEv,
+ (VTBL_ENTRY)&_ZN7ee726203barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72620[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee726203fooEv,_ZTv0_n12_N7ee726203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee726203barEv,_ZTv0_n16_N7ee726203barEv),
+};
+extern VTBL_ENTRY _ZTV7ee72620[];
+static VTT_ENTRY vtt_ee72620[] = {
+ {&(_ZTV7ee72620[3]), 3,11},
+ {&(_ZTV7ee72620[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee72620[];
+extern VTBL_ENTRY _ZTV7ee72620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72620[];
+static VTBL_ENTRY alt_thunk_names319[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee726203barEv,_ZTv0_n16_N7ee726203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee726203barEv,_ZThn8_N7ee726203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee726203fooEv,_ZTv0_n12_N7ee726203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee726203fooEv,_ZThn8_N7ee726203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72620 = { "ee72620", // class name
+ bases_ee72620, 4,
+ &(vtc_ee72620[0]), // expected_vtbl_contents
+ &(vtt_ee72620[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee72620),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72620),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72620),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names319,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd3620 : virtual cc620 {
+ int d;
+ virtual void foo(); // _ZN6dd36203fooEv
+ ~dd3620(); // tgen
+ dd3620(); // tgen
+};
+//SIG(-1 dd3620) C1{ VBC2{ BC3{ BC4{ Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void dd3620 ::foo(){vfunc_called(this, "_ZN6dd36203fooEv");}
+dd3620 ::~dd3620(){ note_dtor("dd3620", this);} // tgen
+dd3620 ::dd3620(){ note_ctor("dd3620", this);} // tgen
+
+static void Test_dd3620()
+{
+ extern Class_Descriptor cd_dd3620;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd3620, buf);
+ dd3620 *dp, &lv = *(dp=new (buf) dd3620());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd3620)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3620)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc620*), ABISELECT(24,12), "dd3620");
+ check_base_class_offset(lv, (bb20*)(cc620*), ABISELECT(16,8), "dd3620");
+ check_base_class_offset(lv, (cc620*), ABISELECT(16,8), "dd3620");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3620.d");
+ test_class_info(&lv, &cd_dd3620);
+ dp->~dd3620();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3620(Test_dd3620, "dd3620", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd3620C1Ev();
+extern void _ZN6dd3620D1Ev();
+Name_Map name_map_dd3620[] = {
+ NSPAIR(_ZN6dd3620C1Ev),
+ NSPAIR(_ZN6dd3620D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc620;
+extern VTBL_ENTRY _ZTI5cc620[];
+extern VTBL_ENTRY _ZTV5cc620[];
+static Base_Class bases_dd3620[] = {
+ // 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_bb20, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc620, 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 _ZTI6dd3620[];
+extern void _ZN6dd36203fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd36203fooEv,_ZTv0_n12_N6dd36203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36203fooEv,_ZThn8_N6dd36203fooEv)() __attribute__((weak));
+extern void _ZN5cc6203barEv();
+static VTBL_ENTRY vtc_dd3620[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3620[0]),
+ (VTBL_ENTRY)&_ZN6dd36203fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3620[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36203fooEv,_ZTv0_n12_N6dd36203fooEv),
+ (VTBL_ENTRY)&_ZN5cc6203barEv,
+};
+extern VTBL_ENTRY _ZTV6dd3620[];
+static VTT_ENTRY vtt_dd3620[] = {
+ {&(_ZTV6dd3620[3]), 3,10},
+ {&(_ZTV6dd3620[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd3620[];
+extern VTBL_ENTRY _ZTV6dd3620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3620[];
+static VTBL_ENTRY alt_thunk_names320[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36203fooEv,_ZTv0_n12_N6dd36203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36203fooEv,_ZThn8_N6dd36203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3620 = { "dd3620", // class name
+ bases_dd3620, 3,
+ &(vtc_dd3620[0]), // expected_vtbl_contents
+ &(vtt_dd3620[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd3620),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3620),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3620),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names320,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03620 : dd3620 {
+ int e;
+ ~ee03620(); // tgen
+ ee03620(); // tgen
+};
+//SIG(1 ee03620) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v1 Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee03620 ::~ee03620(){ note_dtor("ee03620", this);} // tgen
+ee03620 ::ee03620(){ note_ctor("ee03620", this);} // tgen
+
+static void Test_ee03620()
+{
+ extern Class_Descriptor cd_ee03620;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee03620, buf);
+ ee03620 *dp, &lv = *(dp=new (buf) ee03620());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee03620)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03620)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc620*), ABISELECT(24,16), "ee03620");
+ check_base_class_offset(lv, (bb20*)(cc620*), ABISELECT(16,12), "ee03620");
+ check_base_class_offset(lv, (cc620*)(dd3620*), ABISELECT(16,12), "ee03620");
+ check_base_class_offset(lv, (dd3620*), 0, "ee03620");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03620.e");
+ test_class_info(&lv, &cd_ee03620);
+ dp->~ee03620();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03620(Test_ee03620, "ee03620", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee03620C1Ev();
+extern void _ZN7ee03620D1Ev();
+Name_Map name_map_ee03620[] = {
+ NSPAIR(_ZN7ee03620C1Ev),
+ NSPAIR(_ZN7ee03620D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc620;
+extern VTBL_ENTRY _ZTI5cc620[];
+extern VTBL_ENTRY _ZTV5cc620[];
+extern Class_Descriptor cd_dd3620;
+extern VTBL_ENTRY _ZTI6dd3620[];
+extern VTBL_ENTRY _ZTV6dd3620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3620[];
+static Base_Class bases_ee03620[] = {
+ // 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_bb20, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc620, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3620, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee03620[];
+extern void _ZN6dd36203fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd36203fooEv,_ZTv0_n12_N6dd36203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36203fooEv,_ZThn12_N6dd36203fooEv)() __attribute__((weak));
+extern void _ZN5cc6203barEv();
+static VTBL_ENTRY vtc_ee03620[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03620[0]),
+ (VTBL_ENTRY)&_ZN6dd36203fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03620[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36203fooEv,_ZTv0_n12_N6dd36203fooEv),
+ (VTBL_ENTRY)&_ZN5cc6203barEv,
+};
+extern VTBL_ENTRY _ZTV7ee03620[];
+extern void _ZN6dd36203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3620__7ee03620[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3620[0]),
+ (VTBL_ENTRY)&_ZN6dd36203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd36203fooEv,_ZTv0_n12_N6dd36203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36203fooEv,_ZThn12_N6dd36203fooEv)() __attribute__((weak));
+extern void _ZN5cc6203barEv();
+static VTBL_ENTRY _tg__ZTV5cc620__6dd3620__7ee03620[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3620[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36203fooEv,_ZTv0_n12_N6dd36203fooEv),
+ (VTBL_ENTRY)&_ZN5cc6203barEv,
+};
+static VTT_ENTRY vtt_ee03620[] = {
+ {&(_ZTV7ee03620[3]), 3,10},
+ {&(_tg__ZTV6dd3620__7ee03620[3]), 3,4},
+ {&(_tg__ZTV5cc620__6dd3620__7ee03620[4]), 4,6},
+ {&(_ZTV7ee03620[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee03620[];
+extern VTBL_ENTRY _ZTV7ee03620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03620[];
+static VTBL_ENTRY alt_thunk_names321[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36203fooEv,_ZTv0_n12_N6dd36203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36203fooEv,_ZThn12_N6dd36203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36203fooEv,_ZThn12_N6dd36203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03620 = { "ee03620", // class name
+ bases_ee03620, 4,
+ &(vtc_ee03620[0]), // expected_vtbl_contents
+ &(vtt_ee03620[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee03620),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03620),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03620),4, //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 ee13620 : virtual dd3620 {
+ int e;
+ ~ee13620(); // tgen
+ ee13620(); // tgen
+};
+//SIG(1 ee13620) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v1 Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee13620 ::~ee13620(){ note_dtor("ee13620", this);} // tgen
+ee13620 ::ee13620(){ note_ctor("ee13620", this);} // tgen
+
+static void Test_ee13620()
+{
+ extern Class_Descriptor cd_ee13620;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee13620, buf);
+ ee13620 *dp, &lv = *(dp=new (buf) ee13620());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee13620)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13620)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc620*), ABISELECT(40,20), "ee13620");
+ check_base_class_offset(lv, (bb20*)(cc620*), ABISELECT(32,16), "ee13620");
+ check_base_class_offset(lv, (cc620*)(dd3620*), ABISELECT(32,16), "ee13620");
+ check_base_class_offset(lv, (dd3620*), ABISELECT(16,8), "ee13620");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13620.e");
+ test_class_info(&lv, &cd_ee13620);
+ dp->~ee13620();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13620(Test_ee13620, "ee13620", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee13620C1Ev();
+extern void _ZN7ee13620D1Ev();
+Name_Map name_map_ee13620[] = {
+ NSPAIR(_ZN7ee13620C1Ev),
+ NSPAIR(_ZN7ee13620D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc620;
+extern VTBL_ENTRY _ZTI5cc620[];
+extern VTBL_ENTRY _ZTV5cc620[];
+extern Class_Descriptor cd_dd3620;
+extern VTBL_ENTRY _ZTI6dd3620[];
+extern VTBL_ENTRY _ZTV6dd3620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3620[];
+static Base_Class bases_ee13620[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc620, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3620, 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 _ZTI7ee13620[];
+extern void _ZN6dd36203fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd36203fooEv,_ZTv0_n12_N6dd36203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36203fooEv,_ZThn8_N6dd36203fooEv)() __attribute__((weak));
+extern void _ZN5cc6203barEv();
+static VTBL_ENTRY vtc_ee13620[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13620[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13620[0]),
+ (VTBL_ENTRY)&_ZN6dd36203fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13620[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36203fooEv,_ZTv0_n12_N6dd36203fooEv),
+ (VTBL_ENTRY)&_ZN5cc6203barEv,
+};
+extern VTBL_ENTRY _ZTV7ee13620[];
+extern void _ZN6dd36203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3620__7ee13620[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3620[0]),
+ (VTBL_ENTRY)&_ZN6dd36203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd36203fooEv,_ZTv0_n12_N6dd36203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36203fooEv,_ZThn8_N6dd36203fooEv)() __attribute__((weak));
+extern void _ZN5cc6203barEv();
+static VTBL_ENTRY _tg__ZTV5cc620__6dd3620__7ee13620[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3620[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36203fooEv,_ZTv0_n12_N6dd36203fooEv),
+ (VTBL_ENTRY)&_ZN5cc6203barEv,
+};
+static VTT_ENTRY vtt_ee13620[] = {
+ {&(_ZTV7ee13620[4]), 4,15},
+ {&(_ZTV7ee13620[8]), 8,15},
+ {&(_ZTV7ee13620[13]), 13,15},
+ {&(_tg__ZTV6dd3620__7ee13620[3]), 3,4},
+ {&(_tg__ZTV5cc620__6dd3620__7ee13620[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee13620[];
+extern VTBL_ENTRY _ZTV7ee13620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13620[];
+static VTBL_ENTRY alt_thunk_names322[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36203fooEv,_ZTv0_n12_N6dd36203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36203fooEv,_ZThn8_N6dd36203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36203fooEv,_ZThn8_N6dd36203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13620 = { "ee13620", // class name
+ bases_ee13620, 4,
+ &(vtc_ee13620[0]), // expected_vtbl_contents
+ &(vtt_ee13620[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee13620),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13620),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13620),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names322,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee23620 : dd3620 {
+ int e;
+ virtual void foo(); // _ZN7ee236203fooEv
+ ~ee23620(); // tgen
+ ee23620(); // tgen
+};
+//SIG(1 ee23620) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v1 Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee23620 ::foo(){vfunc_called(this, "_ZN7ee236203fooEv");}
+ee23620 ::~ee23620(){ note_dtor("ee23620", this);} // tgen
+ee23620 ::ee23620(){ note_ctor("ee23620", this);} // tgen
+
+static void Test_ee23620()
+{
+ extern Class_Descriptor cd_ee23620;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee23620, buf);
+ ee23620 *dp, &lv = *(dp=new (buf) ee23620());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee23620)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23620)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc620*), ABISELECT(24,16), "ee23620");
+ check_base_class_offset(lv, (bb20*)(cc620*), ABISELECT(16,12), "ee23620");
+ check_base_class_offset(lv, (cc620*)(dd3620*), ABISELECT(16,12), "ee23620");
+ check_base_class_offset(lv, (dd3620*), 0, "ee23620");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23620.e");
+ test_class_info(&lv, &cd_ee23620);
+ dp->~ee23620();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23620(Test_ee23620, "ee23620", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee23620C1Ev();
+extern void _ZN7ee23620D1Ev();
+Name_Map name_map_ee23620[] = {
+ NSPAIR(_ZN7ee23620C1Ev),
+ NSPAIR(_ZN7ee23620D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc620;
+extern VTBL_ENTRY _ZTI5cc620[];
+extern VTBL_ENTRY _ZTV5cc620[];
+extern Class_Descriptor cd_dd3620;
+extern VTBL_ENTRY _ZTI6dd3620[];
+extern VTBL_ENTRY _ZTV6dd3620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3620[];
+static Base_Class bases_ee23620[] = {
+ // 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_bb20, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc620, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3620, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee23620[];
+extern void _ZN7ee236203fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee236203fooEv,_ZTv0_n12_N7ee236203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee236203fooEv,_ZThn12_N7ee236203fooEv)() __attribute__((weak));
+extern void _ZN5cc6203barEv();
+static VTBL_ENTRY vtc_ee23620[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23620[0]),
+ (VTBL_ENTRY)&_ZN7ee236203fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23620[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee236203fooEv,_ZTv0_n12_N7ee236203fooEv),
+ (VTBL_ENTRY)&_ZN5cc6203barEv,
+};
+extern VTBL_ENTRY _ZTV7ee23620[];
+extern void _ZN6dd36203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3620__7ee23620[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3620[0]),
+ (VTBL_ENTRY)&_ZN6dd36203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd36203fooEv,_ZTv0_n12_N6dd36203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36203fooEv,_ZThn12_N6dd36203fooEv)() __attribute__((weak));
+extern void _ZN5cc6203barEv();
+static VTBL_ENTRY _tg__ZTV5cc620__6dd3620__7ee23620[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3620[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36203fooEv,_ZTv0_n12_N6dd36203fooEv),
+ (VTBL_ENTRY)&_ZN5cc6203barEv,
+};
+static VTT_ENTRY vtt_ee23620[] = {
+ {&(_ZTV7ee23620[3]), 3,10},
+ {&(_tg__ZTV6dd3620__7ee23620[3]), 3,4},
+ {&(_tg__ZTV5cc620__6dd3620__7ee23620[4]), 4,6},
+ {&(_ZTV7ee23620[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee23620[];
+extern VTBL_ENTRY _ZTV7ee23620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23620[];
+static VTBL_ENTRY alt_thunk_names323[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36203fooEv,_ZTv0_n12_N6dd36203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36203fooEv,_ZThn12_N6dd36203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee236203fooEv,_ZTv0_n12_N7ee236203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee236203fooEv,_ZThn12_N7ee236203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23620 = { "ee23620", // class name
+ bases_ee23620, 4,
+ &(vtc_ee23620[0]), // expected_vtbl_contents
+ &(vtt_ee23620[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee23620),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23620),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23620),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names323,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee33620 : virtual dd3620 {
+ int e;
+ virtual void foo(); // _ZN7ee336203fooEv
+ ~ee33620(); // tgen
+ ee33620(); // tgen
+};
+//SIG(1 ee33620) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v1 Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee33620 ::foo(){vfunc_called(this, "_ZN7ee336203fooEv");}
+ee33620 ::~ee33620(){ note_dtor("ee33620", this);} // tgen
+ee33620 ::ee33620(){ note_ctor("ee33620", this);} // tgen
+
+static void Test_ee33620()
+{
+ extern Class_Descriptor cd_ee33620;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee33620, buf);
+ ee33620 *dp, &lv = *(dp=new (buf) ee33620());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee33620)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33620)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc620*), ABISELECT(40,20), "ee33620");
+ check_base_class_offset(lv, (bb20*)(cc620*), ABISELECT(32,16), "ee33620");
+ check_base_class_offset(lv, (cc620*)(dd3620*), ABISELECT(32,16), "ee33620");
+ check_base_class_offset(lv, (dd3620*), ABISELECT(16,8), "ee33620");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33620.e");
+ test_class_info(&lv, &cd_ee33620);
+ dp->~ee33620();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33620(Test_ee33620, "ee33620", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee33620C1Ev();
+extern void _ZN7ee33620D1Ev();
+Name_Map name_map_ee33620[] = {
+ NSPAIR(_ZN7ee33620C1Ev),
+ NSPAIR(_ZN7ee33620D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc620;
+extern VTBL_ENTRY _ZTI5cc620[];
+extern VTBL_ENTRY _ZTV5cc620[];
+extern Class_Descriptor cd_dd3620;
+extern VTBL_ENTRY _ZTI6dd3620[];
+extern VTBL_ENTRY _ZTV6dd3620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3620[];
+static Base_Class bases_ee33620[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc620, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3620, 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 _ZTI7ee33620[];
+extern void _ZN7ee336203fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee336203fooEv,_ZTv0_n16_N7ee336203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee336203fooEv,_ZThn8_N7ee336203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee336203fooEv,_ZTv0_n12_N7ee336203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee336203fooEv,_ZThn16_N7ee336203fooEv)() __attribute__((weak));
+extern void _ZN5cc6203barEv();
+static VTBL_ENTRY vtc_ee33620[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33620[0]),
+ (VTBL_ENTRY)&_ZN7ee336203fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33620[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee336203fooEv,_ZTv0_n16_N7ee336203fooEv),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33620[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee336203fooEv,_ZTv0_n12_N7ee336203fooEv),
+ (VTBL_ENTRY)&_ZN5cc6203barEv,
+};
+extern VTBL_ENTRY _ZTV7ee33620[];
+extern void _ZN6dd36203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3620__7ee33620[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3620[0]),
+ (VTBL_ENTRY)&_ZN6dd36203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd36203fooEv,_ZTv0_n12_N6dd36203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36203fooEv,_ZThn8_N6dd36203fooEv)() __attribute__((weak));
+extern void _ZN5cc6203barEv();
+static VTBL_ENTRY _tg__ZTV5cc620__6dd3620__7ee33620[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3620[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36203fooEv,_ZTv0_n12_N6dd36203fooEv),
+ (VTBL_ENTRY)&_ZN5cc6203barEv,
+};
+static VTT_ENTRY vtt_ee33620[] = {
+ {&(_ZTV7ee33620[4]), 4,16},
+ {&(_ZTV7ee33620[9]), 9,16},
+ {&(_ZTV7ee33620[14]), 14,16},
+ {&(_tg__ZTV6dd3620__7ee33620[3]), 3,4},
+ {&(_tg__ZTV5cc620__6dd3620__7ee33620[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee33620[];
+extern VTBL_ENTRY _ZTV7ee33620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33620[];
+static VTBL_ENTRY alt_thunk_names324[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36203fooEv,_ZTv0_n12_N6dd36203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36203fooEv,_ZThn8_N6dd36203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee336203fooEv,_ZTv0_n12_N7ee336203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee336203fooEv,_ZThn16_N7ee336203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee336203fooEv,_ZTv0_n16_N7ee336203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee336203fooEv,_ZThn8_N7ee336203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33620 = { "ee33620", // class name
+ bases_ee33620, 4,
+ &(vtc_ee33620[0]), // expected_vtbl_contents
+ &(vtt_ee33620[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee33620),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33620),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33620),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names324,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee43620 : dd3620 {
+ int e;
+ virtual void bar(); // _ZN7ee436203barEv
+ ~ee43620(); // tgen
+ ee43620(); // tgen
+};
+//SIG(1 ee43620) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v2 Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee43620 ::bar(){vfunc_called(this, "_ZN7ee436203barEv");}
+ee43620 ::~ee43620(){ note_dtor("ee43620", this);} // tgen
+ee43620 ::ee43620(){ note_ctor("ee43620", this);} // tgen
+
+static void Test_ee43620()
+{
+ extern Class_Descriptor cd_ee43620;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee43620, buf);
+ ee43620 *dp, &lv = *(dp=new (buf) ee43620());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee43620)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43620)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc620*), ABISELECT(24,16), "ee43620");
+ check_base_class_offset(lv, (bb20*)(cc620*), ABISELECT(16,12), "ee43620");
+ check_base_class_offset(lv, (cc620*)(dd3620*), ABISELECT(16,12), "ee43620");
+ check_base_class_offset(lv, (dd3620*), 0, "ee43620");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43620.e");
+ test_class_info(&lv, &cd_ee43620);
+ dp->~ee43620();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43620(Test_ee43620, "ee43620", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee43620C1Ev();
+extern void _ZN7ee43620D1Ev();
+Name_Map name_map_ee43620[] = {
+ NSPAIR(_ZN7ee43620C1Ev),
+ NSPAIR(_ZN7ee43620D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc620;
+extern VTBL_ENTRY _ZTI5cc620[];
+extern VTBL_ENTRY _ZTV5cc620[];
+extern Class_Descriptor cd_dd3620;
+extern VTBL_ENTRY _ZTI6dd3620[];
+extern VTBL_ENTRY _ZTV6dd3620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3620[];
+static Base_Class bases_ee43620[] = {
+ // 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_bb20, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc620, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3620, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee43620[];
+extern void _ZN6dd36203fooEv();
+extern void _ZN7ee436203barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd36203fooEv,_ZTv0_n12_N6dd36203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36203fooEv,_ZThn12_N6dd36203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee436203barEv,_ZTv0_n16_N7ee436203barEv)();
+extern void ABISELECT(_ZThn16_N7ee436203barEv,_ZThn12_N7ee436203barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43620[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43620[0]),
+ (VTBL_ENTRY)&_ZN6dd36203fooEv,
+ (VTBL_ENTRY)&_ZN7ee436203barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43620[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36203fooEv,_ZTv0_n12_N6dd36203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee436203barEv,_ZTv0_n16_N7ee436203barEv),
+};
+extern VTBL_ENTRY _ZTV7ee43620[];
+extern void _ZN6dd36203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3620__7ee43620[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3620[0]),
+ (VTBL_ENTRY)&_ZN6dd36203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd36203fooEv,_ZTv0_n12_N6dd36203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36203fooEv,_ZThn12_N6dd36203fooEv)() __attribute__((weak));
+extern void _ZN5cc6203barEv();
+static VTBL_ENTRY _tg__ZTV5cc620__6dd3620__7ee43620[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3620[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36203fooEv,_ZTv0_n12_N6dd36203fooEv),
+ (VTBL_ENTRY)&_ZN5cc6203barEv,
+};
+static VTT_ENTRY vtt_ee43620[] = {
+ {&(_ZTV7ee43620[3]), 3,11},
+ {&(_tg__ZTV6dd3620__7ee43620[3]), 3,4},
+ {&(_tg__ZTV5cc620__6dd3620__7ee43620[4]), 4,6},
+ {&(_ZTV7ee43620[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee43620[];
+extern VTBL_ENTRY _ZTV7ee43620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43620[];
+static VTBL_ENTRY alt_thunk_names325[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee436203barEv,_ZTv0_n16_N7ee436203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee436203barEv,_ZThn12_N7ee436203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36203fooEv,_ZTv0_n12_N6dd36203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36203fooEv,_ZThn12_N6dd36203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36203fooEv,_ZThn12_N6dd36203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43620 = { "ee43620", // class name
+ bases_ee43620, 4,
+ &(vtc_ee43620[0]), // expected_vtbl_contents
+ &(vtt_ee43620[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee43620),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43620),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43620),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names325,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee53620 : virtual dd3620 {
+ int e;
+ virtual void bar(); // _ZN7ee536203barEv
+ ~ee53620(); // tgen
+ ee53620(); // tgen
+};
+//SIG(1 ee53620) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v2 Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee53620 ::bar(){vfunc_called(this, "_ZN7ee536203barEv");}
+ee53620 ::~ee53620(){ note_dtor("ee53620", this);} // tgen
+ee53620 ::ee53620(){ note_ctor("ee53620", this);} // tgen
+
+static void Test_ee53620()
+{
+ extern Class_Descriptor cd_ee53620;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee53620, buf);
+ ee53620 *dp, &lv = *(dp=new (buf) ee53620());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee53620)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53620)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc620*), ABISELECT(40,20), "ee53620");
+ check_base_class_offset(lv, (bb20*)(cc620*), ABISELECT(32,16), "ee53620");
+ check_base_class_offset(lv, (cc620*)(dd3620*), ABISELECT(32,16), "ee53620");
+ check_base_class_offset(lv, (dd3620*), ABISELECT(16,8), "ee53620");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53620.e");
+ test_class_info(&lv, &cd_ee53620);
+ dp->~ee53620();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53620(Test_ee53620, "ee53620", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee53620C1Ev();
+extern void _ZN7ee53620D1Ev();
+Name_Map name_map_ee53620[] = {
+ NSPAIR(_ZN7ee53620C1Ev),
+ NSPAIR(_ZN7ee53620D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc620;
+extern VTBL_ENTRY _ZTI5cc620[];
+extern VTBL_ENTRY _ZTV5cc620[];
+extern Class_Descriptor cd_dd3620;
+extern VTBL_ENTRY _ZTI6dd3620[];
+extern VTBL_ENTRY _ZTV6dd3620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3620[];
+static Base_Class bases_ee53620[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc620, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3620, 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 _ZTI7ee53620[];
+extern void _ZN7ee536203barEv();
+extern void _ZN6dd36203fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd36203fooEv,_ZTv0_n12_N6dd36203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36203fooEv,_ZThn8_N6dd36203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee536203barEv,_ZTv0_n16_N7ee536203barEv)();
+extern void ABISELECT(_ZThn32_N7ee536203barEv,_ZThn16_N7ee536203barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53620[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53620[0]),
+ (VTBL_ENTRY)&_ZN7ee536203barEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53620[0]),
+ (VTBL_ENTRY)&_ZN6dd36203fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53620[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36203fooEv,_ZTv0_n12_N6dd36203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee536203barEv,_ZTv0_n16_N7ee536203barEv),
+};
+extern VTBL_ENTRY _ZTV7ee53620[];
+extern void _ZN6dd36203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3620__7ee53620[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3620[0]),
+ (VTBL_ENTRY)&_ZN6dd36203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd36203fooEv,_ZTv0_n12_N6dd36203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36203fooEv,_ZThn8_N6dd36203fooEv)() __attribute__((weak));
+extern void _ZN5cc6203barEv();
+static VTBL_ENTRY _tg__ZTV5cc620__6dd3620__7ee53620[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3620[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36203fooEv,_ZTv0_n12_N6dd36203fooEv),
+ (VTBL_ENTRY)&_ZN5cc6203barEv,
+};
+static VTT_ENTRY vtt_ee53620[] = {
+ {&(_ZTV7ee53620[4]), 4,16},
+ {&(_ZTV7ee53620[9]), 9,16},
+ {&(_ZTV7ee53620[14]), 14,16},
+ {&(_tg__ZTV6dd3620__7ee53620[3]), 3,4},
+ {&(_tg__ZTV5cc620__6dd3620__7ee53620[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee53620[];
+extern VTBL_ENTRY _ZTV7ee53620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53620[];
+static VTBL_ENTRY alt_thunk_names326[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee536203barEv,_ZTv0_n16_N7ee536203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee536203barEv,_ZThn16_N7ee536203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36203fooEv,_ZTv0_n12_N6dd36203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36203fooEv,_ZThn8_N6dd36203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36203fooEv,_ZThn8_N6dd36203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53620 = { "ee53620", // class name
+ bases_ee53620, 4,
+ &(vtc_ee53620[0]), // expected_vtbl_contents
+ &(vtt_ee53620[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee53620),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53620),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53620),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names326,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee63620 : dd3620 {
+ int e;
+ virtual void foo(); // _ZN7ee636203fooEv
+ virtual void bar(); // _ZN7ee636203barEv
+ ~ee63620(); // tgen
+ ee63620(); // tgen
+};
+//SIG(1 ee63620) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v1 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63620 ::foo(){vfunc_called(this, "_ZN7ee636203fooEv");}
+void ee63620 ::bar(){vfunc_called(this, "_ZN7ee636203barEv");}
+ee63620 ::~ee63620(){ note_dtor("ee63620", this);} // tgen
+ee63620 ::ee63620(){ note_ctor("ee63620", this);} // tgen
+
+static void Test_ee63620()
+{
+ extern Class_Descriptor cd_ee63620;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee63620, buf);
+ ee63620 *dp, &lv = *(dp=new (buf) ee63620());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee63620)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63620)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc620*), ABISELECT(24,16), "ee63620");
+ check_base_class_offset(lv, (bb20*)(cc620*), ABISELECT(16,12), "ee63620");
+ check_base_class_offset(lv, (cc620*)(dd3620*), ABISELECT(16,12), "ee63620");
+ check_base_class_offset(lv, (dd3620*), 0, "ee63620");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63620.e");
+ test_class_info(&lv, &cd_ee63620);
+ dp->~ee63620();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63620(Test_ee63620, "ee63620", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee63620C1Ev();
+extern void _ZN7ee63620D1Ev();
+Name_Map name_map_ee63620[] = {
+ NSPAIR(_ZN7ee63620C1Ev),
+ NSPAIR(_ZN7ee63620D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc620;
+extern VTBL_ENTRY _ZTI5cc620[];
+extern VTBL_ENTRY _ZTV5cc620[];
+extern Class_Descriptor cd_dd3620;
+extern VTBL_ENTRY _ZTI6dd3620[];
+extern VTBL_ENTRY _ZTV6dd3620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3620[];
+static Base_Class bases_ee63620[] = {
+ // 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_bb20, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc620, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3620, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee63620[];
+extern void _ZN7ee636203fooEv();
+extern void _ZN7ee636203barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee636203fooEv,_ZTv0_n12_N7ee636203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee636203fooEv,_ZThn12_N7ee636203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee636203barEv,_ZTv0_n16_N7ee636203barEv)();
+extern void ABISELECT(_ZThn16_N7ee636203barEv,_ZThn12_N7ee636203barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63620[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63620[0]),
+ (VTBL_ENTRY)&_ZN7ee636203fooEv,
+ (VTBL_ENTRY)&_ZN7ee636203barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63620[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee636203fooEv,_ZTv0_n12_N7ee636203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee636203barEv,_ZTv0_n16_N7ee636203barEv),
+};
+extern VTBL_ENTRY _ZTV7ee63620[];
+extern void _ZN6dd36203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3620__7ee63620[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3620[0]),
+ (VTBL_ENTRY)&_ZN6dd36203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd36203fooEv,_ZTv0_n12_N6dd36203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36203fooEv,_ZThn12_N6dd36203fooEv)() __attribute__((weak));
+extern void _ZN5cc6203barEv();
+static VTBL_ENTRY _tg__ZTV5cc620__6dd3620__7ee63620[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3620[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36203fooEv,_ZTv0_n12_N6dd36203fooEv),
+ (VTBL_ENTRY)&_ZN5cc6203barEv,
+};
+static VTT_ENTRY vtt_ee63620[] = {
+ {&(_ZTV7ee63620[3]), 3,11},
+ {&(_tg__ZTV6dd3620__7ee63620[3]), 3,4},
+ {&(_tg__ZTV5cc620__6dd3620__7ee63620[4]), 4,6},
+ {&(_ZTV7ee63620[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee63620[];
+extern VTBL_ENTRY _ZTV7ee63620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63620[];
+static VTBL_ENTRY alt_thunk_names327[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36203fooEv,_ZTv0_n12_N6dd36203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36203fooEv,_ZThn12_N6dd36203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee636203barEv,_ZTv0_n16_N7ee636203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee636203barEv,_ZThn12_N7ee636203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee636203fooEv,_ZTv0_n12_N7ee636203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee636203fooEv,_ZThn12_N7ee636203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63620 = { "ee63620", // class name
+ bases_ee63620, 4,
+ &(vtc_ee63620[0]), // expected_vtbl_contents
+ &(vtt_ee63620[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee63620),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63620),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63620),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names327,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee73620 : virtual dd3620 {
+ int e;
+ virtual void foo(); // _ZN7ee736203fooEv
+ virtual void bar(); // _ZN7ee736203barEv
+ ~ee73620(); // tgen
+ ee73620(); // tgen
+};
+//SIG(1 ee73620) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v1 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73620 ::foo(){vfunc_called(this, "_ZN7ee736203fooEv");}
+void ee73620 ::bar(){vfunc_called(this, "_ZN7ee736203barEv");}
+ee73620 ::~ee73620(){ note_dtor("ee73620", this);} // tgen
+ee73620 ::ee73620(){ note_ctor("ee73620", this);} // tgen
+
+static void Test_ee73620()
+{
+ extern Class_Descriptor cd_ee73620;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee73620, buf);
+ ee73620 *dp, &lv = *(dp=new (buf) ee73620());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee73620)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73620)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc620*), ABISELECT(40,20), "ee73620");
+ check_base_class_offset(lv, (bb20*)(cc620*), ABISELECT(32,16), "ee73620");
+ check_base_class_offset(lv, (cc620*)(dd3620*), ABISELECT(32,16), "ee73620");
+ check_base_class_offset(lv, (dd3620*), ABISELECT(16,8), "ee73620");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73620.e");
+ test_class_info(&lv, &cd_ee73620);
+ dp->~ee73620();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73620(Test_ee73620, "ee73620", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee73620C1Ev();
+extern void _ZN7ee73620D1Ev();
+Name_Map name_map_ee73620[] = {
+ NSPAIR(_ZN7ee73620C1Ev),
+ NSPAIR(_ZN7ee73620D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc620;
+extern VTBL_ENTRY _ZTI5cc620[];
+extern VTBL_ENTRY _ZTV5cc620[];
+extern Class_Descriptor cd_dd3620;
+extern VTBL_ENTRY _ZTI6dd3620[];
+extern VTBL_ENTRY _ZTV6dd3620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3620[];
+static Base_Class bases_ee73620[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc620, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3620, 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 _ZTI7ee73620[];
+extern void _ZN7ee736203fooEv();
+extern void _ZN7ee736203barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee736203fooEv,_ZTv0_n16_N7ee736203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee736203fooEv,_ZThn8_N7ee736203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee736203fooEv,_ZTv0_n12_N7ee736203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee736203fooEv,_ZThn16_N7ee736203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee736203barEv,_ZTv0_n16_N7ee736203barEv)();
+extern void ABISELECT(_ZThn32_N7ee736203barEv,_ZThn16_N7ee736203barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73620[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73620[0]),
+ (VTBL_ENTRY)&_ZN7ee736203fooEv,
+ (VTBL_ENTRY)&_ZN7ee736203barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73620[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee736203fooEv,_ZTv0_n16_N7ee736203fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73620[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee736203fooEv,_ZTv0_n12_N7ee736203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee736203barEv,_ZTv0_n16_N7ee736203barEv),
+};
+extern VTBL_ENTRY _ZTV7ee73620[];
+extern void _ZN6dd36203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3620__7ee73620[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3620[0]),
+ (VTBL_ENTRY)&_ZN6dd36203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd36203fooEv,_ZTv0_n12_N6dd36203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36203fooEv,_ZThn8_N6dd36203fooEv)() __attribute__((weak));
+extern void _ZN5cc6203barEv();
+static VTBL_ENTRY _tg__ZTV5cc620__6dd3620__7ee73620[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3620[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36203fooEv,_ZTv0_n12_N6dd36203fooEv),
+ (VTBL_ENTRY)&_ZN5cc6203barEv,
+};
+static VTT_ENTRY vtt_ee73620[] = {
+ {&(_ZTV7ee73620[4]), 4,17},
+ {&(_ZTV7ee73620[10]), 10,17},
+ {&(_ZTV7ee73620[15]), 15,17},
+ {&(_tg__ZTV6dd3620__7ee73620[3]), 3,4},
+ {&(_tg__ZTV5cc620__6dd3620__7ee73620[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee73620[];
+extern VTBL_ENTRY _ZTV7ee73620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73620[];
+static VTBL_ENTRY alt_thunk_names328[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36203fooEv,_ZTv0_n12_N6dd36203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36203fooEv,_ZThn8_N6dd36203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee736203barEv,_ZTv0_n16_N7ee736203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee736203barEv,_ZThn16_N7ee736203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee736203fooEv,_ZTv0_n12_N7ee736203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee736203fooEv,_ZThn16_N7ee736203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee736203fooEv,_ZTv0_n16_N7ee736203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee736203fooEv,_ZThn8_N7ee736203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73620 = { "ee73620", // class name
+ bases_ee73620, 4,
+ &(vtc_ee73620[0]), // expected_vtbl_contents
+ &(vtt_ee73620[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee73620),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73620),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73620),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names328,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd4620 : cc620 {
+ int d;
+ virtual void bar(); // _ZN6dd46203barEv
+ ~dd4620(); // tgen
+ dd4620(); // tgen
+};
+//SIG(-1 dd4620) C1{ BC2{ BC3{ BC4{ Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void dd4620 ::bar(){vfunc_called(this, "_ZN6dd46203barEv");}
+dd4620 ::~dd4620(){ note_dtor("dd4620", this);} // tgen
+dd4620 ::dd4620(){ note_ctor("dd4620", this);} // tgen
+
+static void Test_dd4620()
+{
+ extern Class_Descriptor cd_dd4620;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd4620, buf);
+ dd4620 *dp, &lv = *(dp=new (buf) dd4620());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd4620)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4620)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc620*), ABISELECT(8,4), "dd4620");
+ check_base_class_offset(lv, (bb20*)(cc620*), 0, "dd4620");
+ check_base_class_offset(lv, (cc620*), 0, "dd4620");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd4620.d");
+ test_class_info(&lv, &cd_dd4620);
+ dp->~dd4620();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4620(Test_dd4620, "dd4620", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd4620C1Ev();
+extern void _ZN6dd4620D1Ev();
+Name_Map name_map_dd4620[] = {
+ NSPAIR(_ZN6dd4620C1Ev),
+ NSPAIR(_ZN6dd4620D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc620;
+extern VTBL_ENTRY _ZTI5cc620[];
+extern VTBL_ENTRY _ZTV5cc620[];
+static Base_Class bases_dd4620[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc620, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI6dd4620[];
+extern void _ZN5cc6203fooEv();
+extern void _ZN6dd46203barEv();
+static VTBL_ENTRY vtc_dd4620[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4620[0]),
+ (VTBL_ENTRY)&_ZN5cc6203fooEv,
+ (VTBL_ENTRY)&_ZN6dd46203barEv,
+};
+extern VTBL_ENTRY _ZTI6dd4620[];
+extern VTBL_ENTRY _ZTV6dd4620[];
+Class_Descriptor cd_dd4620 = { "dd4620", // class name
+ bases_dd4620, 3,
+ &(vtc_dd4620[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd4620),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4620),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 ee04620 : dd4620 {
+ int e;
+ ~ee04620(); // tgen
+ ee04620(); // tgen
+};
+//SIG(1 ee04620) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v2 Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee04620 ::~ee04620(){ note_dtor("ee04620", this);} // tgen
+ee04620 ::ee04620(){ note_ctor("ee04620", this);} // tgen
+
+static void Test_ee04620()
+{
+ extern Class_Descriptor cd_ee04620;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee04620, buf);
+ ee04620 *dp, &lv = *(dp=new (buf) ee04620());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee04620)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04620)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc620*)(dd4620*), ABISELECT(8,4), "ee04620");
+ check_base_class_offset(lv, (bb20*)(cc620*)(dd4620*), 0, "ee04620");
+ check_base_class_offset(lv, (cc620*)(dd4620*), 0, "ee04620");
+ check_base_class_offset(lv, (dd4620*), 0, "ee04620");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee04620.e");
+ test_class_info(&lv, &cd_ee04620);
+ dp->~ee04620();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04620(Test_ee04620, "ee04620", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee04620C1Ev();
+extern void _ZN7ee04620D1Ev();
+Name_Map name_map_ee04620[] = {
+ NSPAIR(_ZN7ee04620C1Ev),
+ NSPAIR(_ZN7ee04620D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc620;
+extern VTBL_ENTRY _ZTI5cc620[];
+extern VTBL_ENTRY _ZTV5cc620[];
+extern Class_Descriptor cd_dd4620;
+extern VTBL_ENTRY _ZTI6dd4620[];
+extern VTBL_ENTRY _ZTV6dd4620[];
+static Base_Class bases_ee04620[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc620, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4620, 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 _ZTI7ee04620[];
+extern void _ZN5cc6203fooEv();
+extern void _ZN6dd46203barEv();
+static VTBL_ENTRY vtc_ee04620[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04620[0]),
+ (VTBL_ENTRY)&_ZN5cc6203fooEv,
+ (VTBL_ENTRY)&_ZN6dd46203barEv,
+};
+extern VTBL_ENTRY _ZTI7ee04620[];
+extern VTBL_ENTRY _ZTV7ee04620[];
+Class_Descriptor cd_ee04620 = { "ee04620", // class name
+ bases_ee04620, 4,
+ &(vtc_ee04620[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee04620),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04620),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 ee14620 : virtual dd4620 {
+ int e;
+ ~ee14620(); // tgen
+ ee14620(); // tgen
+};
+//SIG(1 ee14620) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v2 Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee14620 ::~ee14620(){ note_dtor("ee14620", this);} // tgen
+ee14620 ::ee14620(){ note_ctor("ee14620", this);} // tgen
+
+static void Test_ee14620()
+{
+ extern Class_Descriptor cd_ee14620;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee14620, buf);
+ ee14620 *dp, &lv = *(dp=new (buf) ee14620());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee14620)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14620)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc620*)(dd4620*), ABISELECT(24,12), "ee14620");
+ check_base_class_offset(lv, (bb20*)(cc620*)(dd4620*), ABISELECT(16,8), "ee14620");
+ check_base_class_offset(lv, (cc620*)(dd4620*), ABISELECT(16,8), "ee14620");
+ check_base_class_offset(lv, (dd4620*), ABISELECT(16,8), "ee14620");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14620.e");
+ test_class_info(&lv, &cd_ee14620);
+ dp->~ee14620();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14620(Test_ee14620, "ee14620", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee14620C1Ev();
+extern void _ZN7ee14620D1Ev();
+Name_Map name_map_ee14620[] = {
+ NSPAIR(_ZN7ee14620C1Ev),
+ NSPAIR(_ZN7ee14620D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc620;
+extern VTBL_ENTRY _ZTI5cc620[];
+extern VTBL_ENTRY _ZTV5cc620[];
+extern Class_Descriptor cd_dd4620;
+extern VTBL_ENTRY _ZTI6dd4620[];
+extern VTBL_ENTRY _ZTV6dd4620[];
+static Base_Class bases_ee14620[] = {
+ // 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_bb20, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc620, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4620, 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 _ZTI7ee14620[];
+extern void _ZN5cc6203fooEv();
+extern void _ZN6dd46203barEv();
+static VTBL_ENTRY vtc_ee14620[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14620[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14620[0]),
+ (VTBL_ENTRY)&_ZN5cc6203fooEv,
+ (VTBL_ENTRY)&_ZN6dd46203barEv,
+};
+extern VTBL_ENTRY _ZTV7ee14620[];
+static VTT_ENTRY vtt_ee14620[] = {
+ {&(_ZTV7ee14620[3]), 3,9},
+ {&(_ZTV7ee14620[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee14620[];
+extern VTBL_ENTRY _ZTV7ee14620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14620[];
+Class_Descriptor cd_ee14620 = { "ee14620", // class name
+ bases_ee14620, 4,
+ &(vtc_ee14620[0]), // expected_vtbl_contents
+ &(vtt_ee14620[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee14620),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14620),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14620),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 ee24620 : dd4620 {
+ int e;
+ virtual void foo(); // _ZN7ee246203fooEv
+ ~ee24620(); // tgen
+ ee24620(); // tgen
+};
+//SIG(1 ee24620) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v1 Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee24620 ::foo(){vfunc_called(this, "_ZN7ee246203fooEv");}
+ee24620 ::~ee24620(){ note_dtor("ee24620", this);} // tgen
+ee24620 ::ee24620(){ note_ctor("ee24620", this);} // tgen
+
+static void Test_ee24620()
+{
+ extern Class_Descriptor cd_ee24620;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee24620, buf);
+ ee24620 *dp, &lv = *(dp=new (buf) ee24620());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee24620)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24620)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc620*)(dd4620*), ABISELECT(8,4), "ee24620");
+ check_base_class_offset(lv, (bb20*)(cc620*)(dd4620*), 0, "ee24620");
+ check_base_class_offset(lv, (cc620*)(dd4620*), 0, "ee24620");
+ check_base_class_offset(lv, (dd4620*), 0, "ee24620");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee24620.e");
+ test_class_info(&lv, &cd_ee24620);
+ dp->~ee24620();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24620(Test_ee24620, "ee24620", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee24620C1Ev();
+extern void _ZN7ee24620D1Ev();
+Name_Map name_map_ee24620[] = {
+ NSPAIR(_ZN7ee24620C1Ev),
+ NSPAIR(_ZN7ee24620D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc620;
+extern VTBL_ENTRY _ZTI5cc620[];
+extern VTBL_ENTRY _ZTV5cc620[];
+extern Class_Descriptor cd_dd4620;
+extern VTBL_ENTRY _ZTI6dd4620[];
+extern VTBL_ENTRY _ZTV6dd4620[];
+static Base_Class bases_ee24620[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc620, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4620, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee24620[];
+extern void _ZN7ee246203fooEv();
+extern void _ZN6dd46203barEv();
+static VTBL_ENTRY vtc_ee24620[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24620[0]),
+ (VTBL_ENTRY)&_ZN7ee246203fooEv,
+ (VTBL_ENTRY)&_ZN6dd46203barEv,
+};
+extern VTBL_ENTRY _ZTI7ee24620[];
+extern VTBL_ENTRY _ZTV7ee24620[];
+Class_Descriptor cd_ee24620 = { "ee24620", // class name
+ bases_ee24620, 4,
+ &(vtc_ee24620[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee24620),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24620),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 ee34620 : virtual dd4620 {
+ int e;
+ virtual void foo(); // _ZN7ee346203fooEv
+ ~ee34620(); // tgen
+ ee34620(); // tgen
+};
+//SIG(1 ee34620) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v1 Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee34620 ::foo(){vfunc_called(this, "_ZN7ee346203fooEv");}
+ee34620 ::~ee34620(){ note_dtor("ee34620", this);} // tgen
+ee34620 ::ee34620(){ note_ctor("ee34620", this);} // tgen
+
+static void Test_ee34620()
+{
+ extern Class_Descriptor cd_ee34620;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee34620, buf);
+ ee34620 *dp, &lv = *(dp=new (buf) ee34620());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee34620)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34620)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc620*)(dd4620*), ABISELECT(24,12), "ee34620");
+ check_base_class_offset(lv, (bb20*)(cc620*)(dd4620*), ABISELECT(16,8), "ee34620");
+ check_base_class_offset(lv, (cc620*)(dd4620*), ABISELECT(16,8), "ee34620");
+ check_base_class_offset(lv, (dd4620*), ABISELECT(16,8), "ee34620");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34620.e");
+ test_class_info(&lv, &cd_ee34620);
+ dp->~ee34620();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34620(Test_ee34620, "ee34620", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee34620C1Ev();
+extern void _ZN7ee34620D1Ev();
+Name_Map name_map_ee34620[] = {
+ NSPAIR(_ZN7ee34620C1Ev),
+ NSPAIR(_ZN7ee34620D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc620;
+extern VTBL_ENTRY _ZTI5cc620[];
+extern VTBL_ENTRY _ZTV5cc620[];
+extern Class_Descriptor cd_dd4620;
+extern VTBL_ENTRY _ZTI6dd4620[];
+extern VTBL_ENTRY _ZTV6dd4620[];
+static Base_Class bases_ee34620[] = {
+ // 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_bb20, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc620, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4620, 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 _ZTI7ee34620[];
+extern void _ZN7ee346203fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee346203fooEv,_ZTv0_n12_N7ee346203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee346203fooEv,_ZThn8_N7ee346203fooEv)() __attribute__((weak));
+extern void _ZN6dd46203barEv();
+static VTBL_ENTRY vtc_ee34620[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34620[0]),
+ (VTBL_ENTRY)&_ZN7ee346203fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34620[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee346203fooEv,_ZTv0_n12_N7ee346203fooEv),
+ (VTBL_ENTRY)&_ZN6dd46203barEv,
+};
+extern VTBL_ENTRY _ZTV7ee34620[];
+static VTT_ENTRY vtt_ee34620[] = {
+ {&(_ZTV7ee34620[3]), 3,10},
+ {&(_ZTV7ee34620[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee34620[];
+extern VTBL_ENTRY _ZTV7ee34620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34620[];
+static VTBL_ENTRY alt_thunk_names329[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee346203fooEv,_ZTv0_n12_N7ee346203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee346203fooEv,_ZThn8_N7ee346203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34620 = { "ee34620", // class name
+ bases_ee34620, 4,
+ &(vtc_ee34620[0]), // expected_vtbl_contents
+ &(vtt_ee34620[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee34620),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34620),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34620),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names329,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee44620 : dd4620 {
+ int e;
+ virtual void bar(); // _ZN7ee446203barEv
+ ~ee44620(); // tgen
+ ee44620(); // tgen
+};
+//SIG(1 ee44620) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v2 Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee44620 ::bar(){vfunc_called(this, "_ZN7ee446203barEv");}
+ee44620 ::~ee44620(){ note_dtor("ee44620", this);} // tgen
+ee44620 ::ee44620(){ note_ctor("ee44620", this);} // tgen
+
+static void Test_ee44620()
+{
+ extern Class_Descriptor cd_ee44620;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee44620, buf);
+ ee44620 *dp, &lv = *(dp=new (buf) ee44620());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee44620)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44620)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc620*)(dd4620*), ABISELECT(8,4), "ee44620");
+ check_base_class_offset(lv, (bb20*)(cc620*)(dd4620*), 0, "ee44620");
+ check_base_class_offset(lv, (cc620*)(dd4620*), 0, "ee44620");
+ check_base_class_offset(lv, (dd4620*), 0, "ee44620");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee44620.e");
+ test_class_info(&lv, &cd_ee44620);
+ dp->~ee44620();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44620(Test_ee44620, "ee44620", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee44620C1Ev();
+extern void _ZN7ee44620D1Ev();
+Name_Map name_map_ee44620[] = {
+ NSPAIR(_ZN7ee44620C1Ev),
+ NSPAIR(_ZN7ee44620D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc620;
+extern VTBL_ENTRY _ZTI5cc620[];
+extern VTBL_ENTRY _ZTV5cc620[];
+extern Class_Descriptor cd_dd4620;
+extern VTBL_ENTRY _ZTI6dd4620[];
+extern VTBL_ENTRY _ZTV6dd4620[];
+static Base_Class bases_ee44620[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc620, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4620, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee44620[];
+extern void _ZN5cc6203fooEv();
+extern void _ZN7ee446203barEv();
+static VTBL_ENTRY vtc_ee44620[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44620[0]),
+ (VTBL_ENTRY)&_ZN5cc6203fooEv,
+ (VTBL_ENTRY)&_ZN7ee446203barEv,
+};
+extern VTBL_ENTRY _ZTI7ee44620[];
+extern VTBL_ENTRY _ZTV7ee44620[];
+Class_Descriptor cd_ee44620 = { "ee44620", // class name
+ bases_ee44620, 4,
+ &(vtc_ee44620[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee44620),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44620),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 ee54620 : virtual dd4620 {
+ int e;
+ virtual void bar(); // _ZN7ee546203barEv
+ ~ee54620(); // tgen
+ ee54620(); // tgen
+};
+//SIG(1 ee54620) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v2 Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee54620 ::bar(){vfunc_called(this, "_ZN7ee546203barEv");}
+ee54620 ::~ee54620(){ note_dtor("ee54620", this);} // tgen
+ee54620 ::ee54620(){ note_ctor("ee54620", this);} // tgen
+
+static void Test_ee54620()
+{
+ extern Class_Descriptor cd_ee54620;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee54620, buf);
+ ee54620 *dp, &lv = *(dp=new (buf) ee54620());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee54620)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54620)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc620*)(dd4620*), ABISELECT(24,12), "ee54620");
+ check_base_class_offset(lv, (bb20*)(cc620*)(dd4620*), ABISELECT(16,8), "ee54620");
+ check_base_class_offset(lv, (cc620*)(dd4620*), ABISELECT(16,8), "ee54620");
+ check_base_class_offset(lv, (dd4620*), ABISELECT(16,8), "ee54620");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54620.e");
+ test_class_info(&lv, &cd_ee54620);
+ dp->~ee54620();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54620(Test_ee54620, "ee54620", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee54620C1Ev();
+extern void _ZN7ee54620D1Ev();
+Name_Map name_map_ee54620[] = {
+ NSPAIR(_ZN7ee54620C1Ev),
+ NSPAIR(_ZN7ee54620D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc620;
+extern VTBL_ENTRY _ZTI5cc620[];
+extern VTBL_ENTRY _ZTV5cc620[];
+extern Class_Descriptor cd_dd4620;
+extern VTBL_ENTRY _ZTI6dd4620[];
+extern VTBL_ENTRY _ZTV6dd4620[];
+static Base_Class bases_ee54620[] = {
+ // 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_bb20, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc620, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4620, 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 _ZTI7ee54620[];
+extern void _ZN7ee546203barEv();
+extern void _ZN5cc6203fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee546203barEv,_ZTv0_n16_N7ee546203barEv)();
+extern void ABISELECT(_ZThn16_N7ee546203barEv,_ZThn8_N7ee546203barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54620[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54620[0]),
+ (VTBL_ENTRY)&_ZN7ee546203barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54620[0]),
+ (VTBL_ENTRY)&_ZN5cc6203fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee546203barEv,_ZTv0_n16_N7ee546203barEv),
+};
+extern VTBL_ENTRY _ZTV7ee54620[];
+static VTT_ENTRY vtt_ee54620[] = {
+ {&(_ZTV7ee54620[3]), 3,10},
+ {&(_ZTV7ee54620[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee54620[];
+extern VTBL_ENTRY _ZTV7ee54620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54620[];
+static VTBL_ENTRY alt_thunk_names330[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee546203barEv,_ZTv0_n16_N7ee546203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee546203barEv,_ZThn8_N7ee546203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54620 = { "ee54620", // class name
+ bases_ee54620, 4,
+ &(vtc_ee54620[0]), // expected_vtbl_contents
+ &(vtt_ee54620[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee54620),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54620),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54620),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names330,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee64620 : dd4620 {
+ int e;
+ virtual void foo(); // _ZN7ee646203fooEv
+ virtual void bar(); // _ZN7ee646203barEv
+ ~ee64620(); // tgen
+ ee64620(); // tgen
+};
+//SIG(1 ee64620) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v1 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64620 ::foo(){vfunc_called(this, "_ZN7ee646203fooEv");}
+void ee64620 ::bar(){vfunc_called(this, "_ZN7ee646203barEv");}
+ee64620 ::~ee64620(){ note_dtor("ee64620", this);} // tgen
+ee64620 ::ee64620(){ note_ctor("ee64620", this);} // tgen
+
+static void Test_ee64620()
+{
+ extern Class_Descriptor cd_ee64620;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee64620, buf);
+ ee64620 *dp, &lv = *(dp=new (buf) ee64620());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee64620)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64620)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc620*)(dd4620*), ABISELECT(8,4), "ee64620");
+ check_base_class_offset(lv, (bb20*)(cc620*)(dd4620*), 0, "ee64620");
+ check_base_class_offset(lv, (cc620*)(dd4620*), 0, "ee64620");
+ check_base_class_offset(lv, (dd4620*), 0, "ee64620");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee64620.e");
+ test_class_info(&lv, &cd_ee64620);
+ dp->~ee64620();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64620(Test_ee64620, "ee64620", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee64620C1Ev();
+extern void _ZN7ee64620D1Ev();
+Name_Map name_map_ee64620[] = {
+ NSPAIR(_ZN7ee64620C1Ev),
+ NSPAIR(_ZN7ee64620D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc620;
+extern VTBL_ENTRY _ZTI5cc620[];
+extern VTBL_ENTRY _ZTV5cc620[];
+extern Class_Descriptor cd_dd4620;
+extern VTBL_ENTRY _ZTI6dd4620[];
+extern VTBL_ENTRY _ZTV6dd4620[];
+static Base_Class bases_ee64620[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc620, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4620, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee64620[];
+extern void _ZN7ee646203fooEv();
+extern void _ZN7ee646203barEv();
+static VTBL_ENTRY vtc_ee64620[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64620[0]),
+ (VTBL_ENTRY)&_ZN7ee646203fooEv,
+ (VTBL_ENTRY)&_ZN7ee646203barEv,
+};
+extern VTBL_ENTRY _ZTI7ee64620[];
+extern VTBL_ENTRY _ZTV7ee64620[];
+Class_Descriptor cd_ee64620 = { "ee64620", // class name
+ bases_ee64620, 4,
+ &(vtc_ee64620[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee64620),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64620),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 ee74620 : virtual dd4620 {
+ int e;
+ virtual void foo(); // _ZN7ee746203fooEv
+ virtual void bar(); // _ZN7ee746203barEv
+ ~ee74620(); // tgen
+ ee74620(); // tgen
+};
+//SIG(1 ee74620) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v1 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74620 ::foo(){vfunc_called(this, "_ZN7ee746203fooEv");}
+void ee74620 ::bar(){vfunc_called(this, "_ZN7ee746203barEv");}
+ee74620 ::~ee74620(){ note_dtor("ee74620", this);} // tgen
+ee74620 ::ee74620(){ note_ctor("ee74620", this);} // tgen
+
+static void Test_ee74620()
+{
+ extern Class_Descriptor cd_ee74620;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee74620, buf);
+ ee74620 *dp, &lv = *(dp=new (buf) ee74620());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee74620)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74620)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc620*)(dd4620*), ABISELECT(24,12), "ee74620");
+ check_base_class_offset(lv, (bb20*)(cc620*)(dd4620*), ABISELECT(16,8), "ee74620");
+ check_base_class_offset(lv, (cc620*)(dd4620*), ABISELECT(16,8), "ee74620");
+ check_base_class_offset(lv, (dd4620*), ABISELECT(16,8), "ee74620");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74620.e");
+ test_class_info(&lv, &cd_ee74620);
+ dp->~ee74620();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74620(Test_ee74620, "ee74620", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee74620C1Ev();
+extern void _ZN7ee74620D1Ev();
+Name_Map name_map_ee74620[] = {
+ NSPAIR(_ZN7ee74620C1Ev),
+ NSPAIR(_ZN7ee74620D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc620;
+extern VTBL_ENTRY _ZTI5cc620[];
+extern VTBL_ENTRY _ZTV5cc620[];
+extern Class_Descriptor cd_dd4620;
+extern VTBL_ENTRY _ZTI6dd4620[];
+extern VTBL_ENTRY _ZTV6dd4620[];
+static Base_Class bases_ee74620[] = {
+ // 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_bb20, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc620, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4620, 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 _ZTI7ee74620[];
+extern void _ZN7ee746203fooEv();
+extern void _ZN7ee746203barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee746203fooEv,_ZTv0_n12_N7ee746203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee746203fooEv,_ZThn8_N7ee746203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee746203barEv,_ZTv0_n16_N7ee746203barEv)();
+extern void ABISELECT(_ZThn16_N7ee746203barEv,_ZThn8_N7ee746203barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74620[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74620[0]),
+ (VTBL_ENTRY)&_ZN7ee746203fooEv,
+ (VTBL_ENTRY)&_ZN7ee746203barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74620[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee746203fooEv,_ZTv0_n12_N7ee746203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee746203barEv,_ZTv0_n16_N7ee746203barEv),
+};
+extern VTBL_ENTRY _ZTV7ee74620[];
+static VTT_ENTRY vtt_ee74620[] = {
+ {&(_ZTV7ee74620[3]), 3,11},
+ {&(_ZTV7ee74620[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee74620[];
+extern VTBL_ENTRY _ZTV7ee74620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74620[];
+static VTBL_ENTRY alt_thunk_names331[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee746203barEv,_ZTv0_n16_N7ee746203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee746203barEv,_ZThn8_N7ee746203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee746203fooEv,_ZTv0_n12_N7ee746203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee746203fooEv,_ZThn8_N7ee746203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74620 = { "ee74620", // class name
+ bases_ee74620, 4,
+ &(vtc_ee74620[0]), // expected_vtbl_contents
+ &(vtt_ee74620[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee74620),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74620),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74620),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names331,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd5620 : virtual cc620 {
+ int d;
+ virtual void bar(); // _ZN6dd56203barEv
+ ~dd5620(); // tgen
+ dd5620(); // tgen
+};
+//SIG(-1 dd5620) C1{ VBC2{ BC3{ BC4{ Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void dd5620 ::bar(){vfunc_called(this, "_ZN6dd56203barEv");}
+dd5620 ::~dd5620(){ note_dtor("dd5620", this);} // tgen
+dd5620 ::dd5620(){ note_ctor("dd5620", this);} // tgen
+
+static void Test_dd5620()
+{
+ extern Class_Descriptor cd_dd5620;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd5620, buf);
+ dd5620 *dp, &lv = *(dp=new (buf) dd5620());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd5620)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5620)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc620*), ABISELECT(24,12), "dd5620");
+ check_base_class_offset(lv, (bb20*)(cc620*), ABISELECT(16,8), "dd5620");
+ check_base_class_offset(lv, (cc620*), ABISELECT(16,8), "dd5620");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5620.d");
+ test_class_info(&lv, &cd_dd5620);
+ dp->~dd5620();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5620(Test_dd5620, "dd5620", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd5620C1Ev();
+extern void _ZN6dd5620D1Ev();
+Name_Map name_map_dd5620[] = {
+ NSPAIR(_ZN6dd5620C1Ev),
+ NSPAIR(_ZN6dd5620D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc620;
+extern VTBL_ENTRY _ZTI5cc620[];
+extern VTBL_ENTRY _ZTV5cc620[];
+static Base_Class bases_dd5620[] = {
+ // 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_bb20, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc620, 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 _ZTI6dd5620[];
+extern void _ZN6dd56203barEv();
+extern void _ZN5cc6203fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56203barEv,_ZTv0_n16_N6dd56203barEv)();
+extern void ABISELECT(_ZThn16_N6dd56203barEv,_ZThn8_N6dd56203barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd5620[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5620[0]),
+ (VTBL_ENTRY)&_ZN6dd56203barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5620[0]),
+ (VTBL_ENTRY)&_ZN5cc6203fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56203barEv,_ZTv0_n16_N6dd56203barEv),
+};
+extern VTBL_ENTRY _ZTV6dd5620[];
+static VTT_ENTRY vtt_dd5620[] = {
+ {&(_ZTV6dd5620[3]), 3,10},
+ {&(_ZTV6dd5620[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd5620[];
+extern VTBL_ENTRY _ZTV6dd5620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5620[];
+static VTBL_ENTRY alt_thunk_names332[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56203barEv,_ZTv0_n16_N6dd56203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56203barEv,_ZThn8_N6dd56203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5620 = { "dd5620", // class name
+ bases_dd5620, 3,
+ &(vtc_dd5620[0]), // expected_vtbl_contents
+ &(vtt_dd5620[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd5620),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5620),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5620),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names332,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05620 : dd5620 {
+ int e;
+ ~ee05620(); // tgen
+ ee05620(); // tgen
+};
+//SIG(1 ee05620) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v2 Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee05620 ::~ee05620(){ note_dtor("ee05620", this);} // tgen
+ee05620 ::ee05620(){ note_ctor("ee05620", this);} // tgen
+
+static void Test_ee05620()
+{
+ extern Class_Descriptor cd_ee05620;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee05620, buf);
+ ee05620 *dp, &lv = *(dp=new (buf) ee05620());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee05620)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05620)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc620*), ABISELECT(24,16), "ee05620");
+ check_base_class_offset(lv, (bb20*)(cc620*), ABISELECT(16,12), "ee05620");
+ check_base_class_offset(lv, (cc620*)(dd5620*), ABISELECT(16,12), "ee05620");
+ check_base_class_offset(lv, (dd5620*), 0, "ee05620");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05620.e");
+ test_class_info(&lv, &cd_ee05620);
+ dp->~ee05620();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05620(Test_ee05620, "ee05620", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee05620C1Ev();
+extern void _ZN7ee05620D1Ev();
+Name_Map name_map_ee05620[] = {
+ NSPAIR(_ZN7ee05620C1Ev),
+ NSPAIR(_ZN7ee05620D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc620;
+extern VTBL_ENTRY _ZTI5cc620[];
+extern VTBL_ENTRY _ZTV5cc620[];
+extern Class_Descriptor cd_dd5620;
+extern VTBL_ENTRY _ZTI6dd5620[];
+extern VTBL_ENTRY _ZTV6dd5620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5620[];
+static Base_Class bases_ee05620[] = {
+ // 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_bb20, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc620, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5620, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee05620[];
+extern void _ZN6dd56203barEv();
+extern void _ZN5cc6203fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56203barEv,_ZTv0_n16_N6dd56203barEv)();
+extern void ABISELECT(_ZThn16_N6dd56203barEv,_ZThn12_N6dd56203barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee05620[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05620[0]),
+ (VTBL_ENTRY)&_ZN6dd56203barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05620[0]),
+ (VTBL_ENTRY)&_ZN5cc6203fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56203barEv,_ZTv0_n16_N6dd56203barEv),
+};
+extern VTBL_ENTRY _ZTV7ee05620[];
+extern void _ZN6dd56203barEv();
+static VTBL_ENTRY _tg__ZTV6dd5620__7ee05620[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5620[0]),
+ (VTBL_ENTRY)&_ZN6dd56203barEv,
+};
+extern void _ZN5cc6203fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56203barEv,_ZTv0_n16_N6dd56203barEv)();
+extern void ABISELECT(_ZThn16_N6dd56203barEv,_ZThn12_N6dd56203barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc620__6dd5620__7ee05620[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5620[0]),
+ (VTBL_ENTRY)&_ZN5cc6203fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56203barEv,_ZTv0_n16_N6dd56203barEv),
+};
+static VTT_ENTRY vtt_ee05620[] = {
+ {&(_ZTV7ee05620[3]), 3,10},
+ {&(_tg__ZTV6dd5620__7ee05620[3]), 3,4},
+ {&(_tg__ZTV5cc620__6dd5620__7ee05620[4]), 4,6},
+ {&(_ZTV7ee05620[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee05620[];
+extern VTBL_ENTRY _ZTV7ee05620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05620[];
+static VTBL_ENTRY alt_thunk_names333[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56203barEv,_ZTv0_n16_N6dd56203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56203barEv,_ZThn12_N6dd56203barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56203barEv,_ZThn12_N6dd56203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05620 = { "ee05620", // class name
+ bases_ee05620, 4,
+ &(vtc_ee05620[0]), // expected_vtbl_contents
+ &(vtt_ee05620[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee05620),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05620),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05620),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names333,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee15620 : virtual dd5620 {
+ int e;
+ ~ee15620(); // tgen
+ ee15620(); // tgen
+};
+//SIG(1 ee15620) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v2 Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee15620 ::~ee15620(){ note_dtor("ee15620", this);} // tgen
+ee15620 ::ee15620(){ note_ctor("ee15620", this);} // tgen
+
+static void Test_ee15620()
+{
+ extern Class_Descriptor cd_ee15620;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee15620, buf);
+ ee15620 *dp, &lv = *(dp=new (buf) ee15620());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee15620)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15620)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc620*), ABISELECT(40,20), "ee15620");
+ check_base_class_offset(lv, (bb20*)(cc620*), ABISELECT(32,16), "ee15620");
+ check_base_class_offset(lv, (cc620*)(dd5620*), ABISELECT(32,16), "ee15620");
+ check_base_class_offset(lv, (dd5620*), ABISELECT(16,8), "ee15620");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15620.e");
+ test_class_info(&lv, &cd_ee15620);
+ dp->~ee15620();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15620(Test_ee15620, "ee15620", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee15620C1Ev();
+extern void _ZN7ee15620D1Ev();
+Name_Map name_map_ee15620[] = {
+ NSPAIR(_ZN7ee15620C1Ev),
+ NSPAIR(_ZN7ee15620D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc620;
+extern VTBL_ENTRY _ZTI5cc620[];
+extern VTBL_ENTRY _ZTV5cc620[];
+extern Class_Descriptor cd_dd5620;
+extern VTBL_ENTRY _ZTI6dd5620[];
+extern VTBL_ENTRY _ZTV6dd5620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5620[];
+static Base_Class bases_ee15620[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc620, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5620, 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 _ZTI7ee15620[];
+extern void _ZN6dd56203barEv();
+extern void _ZN5cc6203fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56203barEv,_ZTv0_n16_N6dd56203barEv)();
+extern void ABISELECT(_ZThn16_N6dd56203barEv,_ZThn8_N6dd56203barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee15620[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15620[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15620[0]),
+ (VTBL_ENTRY)&_ZN6dd56203barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15620[0]),
+ (VTBL_ENTRY)&_ZN5cc6203fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56203barEv,_ZTv0_n16_N6dd56203barEv),
+};
+extern VTBL_ENTRY _ZTV7ee15620[];
+extern void _ZN6dd56203barEv();
+static VTBL_ENTRY _tg__ZTV6dd5620__7ee15620[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5620[0]),
+ (VTBL_ENTRY)&_ZN6dd56203barEv,
+};
+extern void _ZN5cc6203fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56203barEv,_ZTv0_n16_N6dd56203barEv)();
+extern void ABISELECT(_ZThn16_N6dd56203barEv,_ZThn8_N6dd56203barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc620__6dd5620__7ee15620[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5620[0]),
+ (VTBL_ENTRY)&_ZN5cc6203fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56203barEv,_ZTv0_n16_N6dd56203barEv),
+};
+static VTT_ENTRY vtt_ee15620[] = {
+ {&(_ZTV7ee15620[4]), 4,15},
+ {&(_ZTV7ee15620[8]), 8,15},
+ {&(_ZTV7ee15620[13]), 13,15},
+ {&(_tg__ZTV6dd5620__7ee15620[3]), 3,4},
+ {&(_tg__ZTV5cc620__6dd5620__7ee15620[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee15620[];
+extern VTBL_ENTRY _ZTV7ee15620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15620[];
+static VTBL_ENTRY alt_thunk_names334[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56203barEv,_ZTv0_n16_N6dd56203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56203barEv,_ZThn8_N6dd56203barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56203barEv,_ZThn8_N6dd56203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15620 = { "ee15620", // class name
+ bases_ee15620, 4,
+ &(vtc_ee15620[0]), // expected_vtbl_contents
+ &(vtt_ee15620[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee15620),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15620),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15620),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names334,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee25620 : dd5620 {
+ int e;
+ virtual void foo(); // _ZN7ee256203fooEv
+ ~ee25620(); // tgen
+ ee25620(); // tgen
+};
+//SIG(1 ee25620) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v1 Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee25620 ::foo(){vfunc_called(this, "_ZN7ee256203fooEv");}
+ee25620 ::~ee25620(){ note_dtor("ee25620", this);} // tgen
+ee25620 ::ee25620(){ note_ctor("ee25620", this);} // tgen
+
+static void Test_ee25620()
+{
+ extern Class_Descriptor cd_ee25620;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee25620, buf);
+ ee25620 *dp, &lv = *(dp=new (buf) ee25620());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee25620)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25620)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc620*), ABISELECT(24,16), "ee25620");
+ check_base_class_offset(lv, (bb20*)(cc620*), ABISELECT(16,12), "ee25620");
+ check_base_class_offset(lv, (cc620*)(dd5620*), ABISELECT(16,12), "ee25620");
+ check_base_class_offset(lv, (dd5620*), 0, "ee25620");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25620.e");
+ test_class_info(&lv, &cd_ee25620);
+ dp->~ee25620();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25620(Test_ee25620, "ee25620", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee25620C1Ev();
+extern void _ZN7ee25620D1Ev();
+Name_Map name_map_ee25620[] = {
+ NSPAIR(_ZN7ee25620C1Ev),
+ NSPAIR(_ZN7ee25620D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc620;
+extern VTBL_ENTRY _ZTI5cc620[];
+extern VTBL_ENTRY _ZTV5cc620[];
+extern Class_Descriptor cd_dd5620;
+extern VTBL_ENTRY _ZTI6dd5620[];
+extern VTBL_ENTRY _ZTV6dd5620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5620[];
+static Base_Class bases_ee25620[] = {
+ // 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_bb20, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc620, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5620, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee25620[];
+extern void _ZN6dd56203barEv();
+extern void _ZN7ee256203fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee256203fooEv,_ZTv0_n12_N7ee256203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee256203fooEv,_ZThn12_N7ee256203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd56203barEv,_ZTv0_n16_N6dd56203barEv)();
+extern void ABISELECT(_ZThn16_N6dd56203barEv,_ZThn12_N6dd56203barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25620[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25620[0]),
+ (VTBL_ENTRY)&_ZN6dd56203barEv,
+ (VTBL_ENTRY)&_ZN7ee256203fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25620[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee256203fooEv,_ZTv0_n12_N7ee256203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56203barEv,_ZTv0_n16_N6dd56203barEv),
+};
+extern VTBL_ENTRY _ZTV7ee25620[];
+extern void _ZN6dd56203barEv();
+static VTBL_ENTRY _tg__ZTV6dd5620__7ee25620[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5620[0]),
+ (VTBL_ENTRY)&_ZN6dd56203barEv,
+};
+extern void _ZN5cc6203fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56203barEv,_ZTv0_n16_N6dd56203barEv)();
+extern void ABISELECT(_ZThn16_N6dd56203barEv,_ZThn12_N6dd56203barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc620__6dd5620__7ee25620[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5620[0]),
+ (VTBL_ENTRY)&_ZN5cc6203fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56203barEv,_ZTv0_n16_N6dd56203barEv),
+};
+static VTT_ENTRY vtt_ee25620[] = {
+ {&(_ZTV7ee25620[3]), 3,11},
+ {&(_tg__ZTV6dd5620__7ee25620[3]), 3,4},
+ {&(_tg__ZTV5cc620__6dd5620__7ee25620[4]), 4,6},
+ {&(_ZTV7ee25620[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee25620[];
+extern VTBL_ENTRY _ZTV7ee25620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25620[];
+static VTBL_ENTRY alt_thunk_names335[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56203barEv,_ZTv0_n16_N6dd56203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56203barEv,_ZThn12_N6dd56203barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56203barEv,_ZThn12_N6dd56203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee256203fooEv,_ZTv0_n12_N7ee256203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee256203fooEv,_ZThn12_N7ee256203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25620 = { "ee25620", // class name
+ bases_ee25620, 4,
+ &(vtc_ee25620[0]), // expected_vtbl_contents
+ &(vtt_ee25620[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee25620),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25620),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25620),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names335,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee35620 : virtual dd5620 {
+ int e;
+ virtual void foo(); // _ZN7ee356203fooEv
+ ~ee35620(); // tgen
+ ee35620(); // tgen
+};
+//SIG(1 ee35620) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v1 Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee35620 ::foo(){vfunc_called(this, "_ZN7ee356203fooEv");}
+ee35620 ::~ee35620(){ note_dtor("ee35620", this);} // tgen
+ee35620 ::ee35620(){ note_ctor("ee35620", this);} // tgen
+
+static void Test_ee35620()
+{
+ extern Class_Descriptor cd_ee35620;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee35620, buf);
+ ee35620 *dp, &lv = *(dp=new (buf) ee35620());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee35620)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35620)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc620*), ABISELECT(40,20), "ee35620");
+ check_base_class_offset(lv, (bb20*)(cc620*), ABISELECT(32,16), "ee35620");
+ check_base_class_offset(lv, (cc620*)(dd5620*), ABISELECT(32,16), "ee35620");
+ check_base_class_offset(lv, (dd5620*), ABISELECT(16,8), "ee35620");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35620.e");
+ test_class_info(&lv, &cd_ee35620);
+ dp->~ee35620();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35620(Test_ee35620, "ee35620", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee35620C1Ev();
+extern void _ZN7ee35620D1Ev();
+Name_Map name_map_ee35620[] = {
+ NSPAIR(_ZN7ee35620C1Ev),
+ NSPAIR(_ZN7ee35620D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc620;
+extern VTBL_ENTRY _ZTI5cc620[];
+extern VTBL_ENTRY _ZTV5cc620[];
+extern Class_Descriptor cd_dd5620;
+extern VTBL_ENTRY _ZTI6dd5620[];
+extern VTBL_ENTRY _ZTV6dd5620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5620[];
+static Base_Class bases_ee35620[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc620, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5620, 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 _ZTI7ee35620[];
+extern void _ZN7ee356203fooEv();
+extern void _ZN6dd56203barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee356203fooEv,_ZTv0_n12_N7ee356203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee356203fooEv,_ZThn16_N7ee356203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd56203barEv,_ZTv0_n16_N6dd56203barEv)();
+extern void ABISELECT(_ZThn16_N6dd56203barEv,_ZThn8_N6dd56203barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35620[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35620[0]),
+ (VTBL_ENTRY)&_ZN7ee356203fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35620[0]),
+ (VTBL_ENTRY)&_ZN6dd56203barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35620[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee356203fooEv,_ZTv0_n12_N7ee356203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56203barEv,_ZTv0_n16_N6dd56203barEv),
+};
+extern VTBL_ENTRY _ZTV7ee35620[];
+extern void _ZN6dd56203barEv();
+static VTBL_ENTRY _tg__ZTV6dd5620__7ee35620[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5620[0]),
+ (VTBL_ENTRY)&_ZN6dd56203barEv,
+};
+extern void _ZN5cc6203fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56203barEv,_ZTv0_n16_N6dd56203barEv)();
+extern void ABISELECT(_ZThn16_N6dd56203barEv,_ZThn8_N6dd56203barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc620__6dd5620__7ee35620[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5620[0]),
+ (VTBL_ENTRY)&_ZN5cc6203fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56203barEv,_ZTv0_n16_N6dd56203barEv),
+};
+static VTT_ENTRY vtt_ee35620[] = {
+ {&(_ZTV7ee35620[4]), 4,16},
+ {&(_ZTV7ee35620[9]), 9,16},
+ {&(_ZTV7ee35620[14]), 14,16},
+ {&(_tg__ZTV6dd5620__7ee35620[3]), 3,4},
+ {&(_tg__ZTV5cc620__6dd5620__7ee35620[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee35620[];
+extern VTBL_ENTRY _ZTV7ee35620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35620[];
+static VTBL_ENTRY alt_thunk_names336[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56203barEv,_ZTv0_n16_N6dd56203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56203barEv,_ZThn8_N6dd56203barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56203barEv,_ZThn8_N6dd56203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee356203fooEv,_ZTv0_n12_N7ee356203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee356203fooEv,_ZThn16_N7ee356203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35620 = { "ee35620", // class name
+ bases_ee35620, 4,
+ &(vtc_ee35620[0]), // expected_vtbl_contents
+ &(vtt_ee35620[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee35620),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35620),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35620),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names336,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee45620 : dd5620 {
+ int e;
+ virtual void bar(); // _ZN7ee456203barEv
+ ~ee45620(); // tgen
+ ee45620(); // tgen
+};
+//SIG(1 ee45620) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v2 Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee45620 ::bar(){vfunc_called(this, "_ZN7ee456203barEv");}
+ee45620 ::~ee45620(){ note_dtor("ee45620", this);} // tgen
+ee45620 ::ee45620(){ note_ctor("ee45620", this);} // tgen
+
+static void Test_ee45620()
+{
+ extern Class_Descriptor cd_ee45620;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee45620, buf);
+ ee45620 *dp, &lv = *(dp=new (buf) ee45620());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee45620)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45620)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc620*), ABISELECT(24,16), "ee45620");
+ check_base_class_offset(lv, (bb20*)(cc620*), ABISELECT(16,12), "ee45620");
+ check_base_class_offset(lv, (cc620*)(dd5620*), ABISELECT(16,12), "ee45620");
+ check_base_class_offset(lv, (dd5620*), 0, "ee45620");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45620.e");
+ test_class_info(&lv, &cd_ee45620);
+ dp->~ee45620();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45620(Test_ee45620, "ee45620", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee45620C1Ev();
+extern void _ZN7ee45620D1Ev();
+Name_Map name_map_ee45620[] = {
+ NSPAIR(_ZN7ee45620C1Ev),
+ NSPAIR(_ZN7ee45620D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc620;
+extern VTBL_ENTRY _ZTI5cc620[];
+extern VTBL_ENTRY _ZTV5cc620[];
+extern Class_Descriptor cd_dd5620;
+extern VTBL_ENTRY _ZTI6dd5620[];
+extern VTBL_ENTRY _ZTV6dd5620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5620[];
+static Base_Class bases_ee45620[] = {
+ // 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_bb20, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc620, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5620, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee45620[];
+extern void _ZN7ee456203barEv();
+extern void _ZN5cc6203fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee456203barEv,_ZTv0_n16_N7ee456203barEv)();
+extern void ABISELECT(_ZThn16_N7ee456203barEv,_ZThn12_N7ee456203barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee45620[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45620[0]),
+ (VTBL_ENTRY)&_ZN7ee456203barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45620[0]),
+ (VTBL_ENTRY)&_ZN5cc6203fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee456203barEv,_ZTv0_n16_N7ee456203barEv),
+};
+extern VTBL_ENTRY _ZTV7ee45620[];
+extern void _ZN6dd56203barEv();
+static VTBL_ENTRY _tg__ZTV6dd5620__7ee45620[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5620[0]),
+ (VTBL_ENTRY)&_ZN6dd56203barEv,
+};
+extern void _ZN5cc6203fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56203barEv,_ZTv0_n16_N6dd56203barEv)();
+extern void ABISELECT(_ZThn16_N6dd56203barEv,_ZThn12_N6dd56203barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc620__6dd5620__7ee45620[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5620[0]),
+ (VTBL_ENTRY)&_ZN5cc6203fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56203barEv,_ZTv0_n16_N6dd56203barEv),
+};
+static VTT_ENTRY vtt_ee45620[] = {
+ {&(_ZTV7ee45620[3]), 3,10},
+ {&(_tg__ZTV6dd5620__7ee45620[3]), 3,4},
+ {&(_tg__ZTV5cc620__6dd5620__7ee45620[4]), 4,6},
+ {&(_ZTV7ee45620[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee45620[];
+extern VTBL_ENTRY _ZTV7ee45620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45620[];
+static VTBL_ENTRY alt_thunk_names337[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56203barEv,_ZTv0_n16_N6dd56203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56203barEv,_ZThn12_N6dd56203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee456203barEv,_ZTv0_n16_N7ee456203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee456203barEv,_ZThn12_N7ee456203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45620 = { "ee45620", // class name
+ bases_ee45620, 4,
+ &(vtc_ee45620[0]), // expected_vtbl_contents
+ &(vtt_ee45620[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee45620),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45620),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45620),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names337,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee55620 : virtual dd5620 {
+ int e;
+ virtual void bar(); // _ZN7ee556203barEv
+ ~ee55620(); // tgen
+ ee55620(); // tgen
+};
+//SIG(1 ee55620) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v2 Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee55620 ::bar(){vfunc_called(this, "_ZN7ee556203barEv");}
+ee55620 ::~ee55620(){ note_dtor("ee55620", this);} // tgen
+ee55620 ::ee55620(){ note_ctor("ee55620", this);} // tgen
+
+static void Test_ee55620()
+{
+ extern Class_Descriptor cd_ee55620;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee55620, buf);
+ ee55620 *dp, &lv = *(dp=new (buf) ee55620());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee55620)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55620)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc620*), ABISELECT(40,20), "ee55620");
+ check_base_class_offset(lv, (bb20*)(cc620*), ABISELECT(32,16), "ee55620");
+ check_base_class_offset(lv, (cc620*)(dd5620*), ABISELECT(32,16), "ee55620");
+ check_base_class_offset(lv, (dd5620*), ABISELECT(16,8), "ee55620");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55620.e");
+ test_class_info(&lv, &cd_ee55620);
+ dp->~ee55620();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55620(Test_ee55620, "ee55620", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee55620C1Ev();
+extern void _ZN7ee55620D1Ev();
+Name_Map name_map_ee55620[] = {
+ NSPAIR(_ZN7ee55620C1Ev),
+ NSPAIR(_ZN7ee55620D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc620;
+extern VTBL_ENTRY _ZTI5cc620[];
+extern VTBL_ENTRY _ZTV5cc620[];
+extern Class_Descriptor cd_dd5620;
+extern VTBL_ENTRY _ZTI6dd5620[];
+extern VTBL_ENTRY _ZTV6dd5620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5620[];
+static Base_Class bases_ee55620[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc620, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5620, 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 _ZTI7ee55620[];
+extern void _ZN7ee556203barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee556203barEv,_ZTv0_n16_N7ee556203barEv)();
+extern void ABISELECT(_ZThn16_N7ee556203barEv,_ZThn8_N7ee556203barEv)() __attribute__((weak));
+extern void _ZN5cc6203fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee556203barEv,_ZTv0_n16_N7ee556203barEv)();
+extern void ABISELECT(_ZThn32_N7ee556203barEv,_ZThn16_N7ee556203barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee55620[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55620[0]),
+ (VTBL_ENTRY)&_ZN7ee556203barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55620[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee556203barEv,_ZTv0_n16_N7ee556203barEv),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55620[0]),
+ (VTBL_ENTRY)&_ZN5cc6203fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee556203barEv,_ZTv0_n16_N7ee556203barEv),
+};
+extern VTBL_ENTRY _ZTV7ee55620[];
+extern void _ZN6dd56203barEv();
+static VTBL_ENTRY _tg__ZTV6dd5620__7ee55620[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5620[0]),
+ (VTBL_ENTRY)&_ZN6dd56203barEv,
+};
+extern void _ZN5cc6203fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56203barEv,_ZTv0_n16_N6dd56203barEv)();
+extern void ABISELECT(_ZThn16_N6dd56203barEv,_ZThn8_N6dd56203barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc620__6dd5620__7ee55620[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5620[0]),
+ (VTBL_ENTRY)&_ZN5cc6203fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56203barEv,_ZTv0_n16_N6dd56203barEv),
+};
+static VTT_ENTRY vtt_ee55620[] = {
+ {&(_ZTV7ee55620[4]), 4,16},
+ {&(_ZTV7ee55620[9]), 9,16},
+ {&(_ZTV7ee55620[14]), 14,16},
+ {&(_tg__ZTV6dd5620__7ee55620[3]), 3,4},
+ {&(_tg__ZTV5cc620__6dd5620__7ee55620[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee55620[];
+extern VTBL_ENTRY _ZTV7ee55620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55620[];
+static VTBL_ENTRY alt_thunk_names338[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56203barEv,_ZTv0_n16_N6dd56203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56203barEv,_ZThn8_N6dd56203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee556203barEv,_ZTv0_n16_N7ee556203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee556203barEv,_ZThn16_N7ee556203barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee556203barEv,_ZThn8_N7ee556203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55620 = { "ee55620", // class name
+ bases_ee55620, 4,
+ &(vtc_ee55620[0]), // expected_vtbl_contents
+ &(vtt_ee55620[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee55620),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55620),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55620),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names338,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee65620 : dd5620 {
+ int e;
+ virtual void foo(); // _ZN7ee656203fooEv
+ virtual void bar(); // _ZN7ee656203barEv
+ ~ee65620(); // tgen
+ ee65620(); // tgen
+};
+//SIG(1 ee65620) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v1 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65620 ::foo(){vfunc_called(this, "_ZN7ee656203fooEv");}
+void ee65620 ::bar(){vfunc_called(this, "_ZN7ee656203barEv");}
+ee65620 ::~ee65620(){ note_dtor("ee65620", this);} // tgen
+ee65620 ::ee65620(){ note_ctor("ee65620", this);} // tgen
+
+static void Test_ee65620()
+{
+ extern Class_Descriptor cd_ee65620;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee65620, buf);
+ ee65620 *dp, &lv = *(dp=new (buf) ee65620());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee65620)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65620)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc620*), ABISELECT(24,16), "ee65620");
+ check_base_class_offset(lv, (bb20*)(cc620*), ABISELECT(16,12), "ee65620");
+ check_base_class_offset(lv, (cc620*)(dd5620*), ABISELECT(16,12), "ee65620");
+ check_base_class_offset(lv, (dd5620*), 0, "ee65620");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65620.e");
+ test_class_info(&lv, &cd_ee65620);
+ dp->~ee65620();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65620(Test_ee65620, "ee65620", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee65620C1Ev();
+extern void _ZN7ee65620D1Ev();
+Name_Map name_map_ee65620[] = {
+ NSPAIR(_ZN7ee65620C1Ev),
+ NSPAIR(_ZN7ee65620D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc620;
+extern VTBL_ENTRY _ZTI5cc620[];
+extern VTBL_ENTRY _ZTV5cc620[];
+extern Class_Descriptor cd_dd5620;
+extern VTBL_ENTRY _ZTI6dd5620[];
+extern VTBL_ENTRY _ZTV6dd5620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5620[];
+static Base_Class bases_ee65620[] = {
+ // 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_bb20, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc620, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5620, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee65620[];
+extern void _ZN7ee656203barEv();
+extern void _ZN7ee656203fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee656203fooEv,_ZTv0_n12_N7ee656203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee656203fooEv,_ZThn12_N7ee656203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee656203barEv,_ZTv0_n16_N7ee656203barEv)();
+extern void ABISELECT(_ZThn16_N7ee656203barEv,_ZThn12_N7ee656203barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65620[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65620[0]),
+ (VTBL_ENTRY)&_ZN7ee656203barEv,
+ (VTBL_ENTRY)&_ZN7ee656203fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65620[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee656203fooEv,_ZTv0_n12_N7ee656203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee656203barEv,_ZTv0_n16_N7ee656203barEv),
+};
+extern VTBL_ENTRY _ZTV7ee65620[];
+extern void _ZN6dd56203barEv();
+static VTBL_ENTRY _tg__ZTV6dd5620__7ee65620[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5620[0]),
+ (VTBL_ENTRY)&_ZN6dd56203barEv,
+};
+extern void _ZN5cc6203fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56203barEv,_ZTv0_n16_N6dd56203barEv)();
+extern void ABISELECT(_ZThn16_N6dd56203barEv,_ZThn12_N6dd56203barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc620__6dd5620__7ee65620[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5620[0]),
+ (VTBL_ENTRY)&_ZN5cc6203fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56203barEv,_ZTv0_n16_N6dd56203barEv),
+};
+static VTT_ENTRY vtt_ee65620[] = {
+ {&(_ZTV7ee65620[3]), 3,11},
+ {&(_tg__ZTV6dd5620__7ee65620[3]), 3,4},
+ {&(_tg__ZTV5cc620__6dd5620__7ee65620[4]), 4,6},
+ {&(_ZTV7ee65620[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee65620[];
+extern VTBL_ENTRY _ZTV7ee65620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65620[];
+static VTBL_ENTRY alt_thunk_names339[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56203barEv,_ZTv0_n16_N6dd56203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56203barEv,_ZThn12_N6dd56203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee656203barEv,_ZTv0_n16_N7ee656203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee656203barEv,_ZThn12_N7ee656203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee656203fooEv,_ZTv0_n12_N7ee656203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee656203fooEv,_ZThn12_N7ee656203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65620 = { "ee65620", // class name
+ bases_ee65620, 4,
+ &(vtc_ee65620[0]), // expected_vtbl_contents
+ &(vtt_ee65620[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee65620),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65620),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65620),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names339,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee75620 : virtual dd5620 {
+ int e;
+ virtual void foo(); // _ZN7ee756203fooEv
+ virtual void bar(); // _ZN7ee756203barEv
+ ~ee75620(); // tgen
+ ee75620(); // tgen
+};
+//SIG(1 ee75620) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v1 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75620 ::foo(){vfunc_called(this, "_ZN7ee756203fooEv");}
+void ee75620 ::bar(){vfunc_called(this, "_ZN7ee756203barEv");}
+ee75620 ::~ee75620(){ note_dtor("ee75620", this);} // tgen
+ee75620 ::ee75620(){ note_ctor("ee75620", this);} // tgen
+
+static void Test_ee75620()
+{
+ extern Class_Descriptor cd_ee75620;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee75620, buf);
+ ee75620 *dp, &lv = *(dp=new (buf) ee75620());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee75620)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75620)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc620*), ABISELECT(40,20), "ee75620");
+ check_base_class_offset(lv, (bb20*)(cc620*), ABISELECT(32,16), "ee75620");
+ check_base_class_offset(lv, (cc620*)(dd5620*), ABISELECT(32,16), "ee75620");
+ check_base_class_offset(lv, (dd5620*), ABISELECT(16,8), "ee75620");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75620.e");
+ test_class_info(&lv, &cd_ee75620);
+ dp->~ee75620();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75620(Test_ee75620, "ee75620", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee75620C1Ev();
+extern void _ZN7ee75620D1Ev();
+Name_Map name_map_ee75620[] = {
+ NSPAIR(_ZN7ee75620C1Ev),
+ NSPAIR(_ZN7ee75620D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc620;
+extern VTBL_ENTRY _ZTI5cc620[];
+extern VTBL_ENTRY _ZTV5cc620[];
+extern Class_Descriptor cd_dd5620;
+extern VTBL_ENTRY _ZTI6dd5620[];
+extern VTBL_ENTRY _ZTV6dd5620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5620[];
+static Base_Class bases_ee75620[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc620, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5620, 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 _ZTI7ee75620[];
+extern void _ZN7ee756203fooEv();
+extern void _ZN7ee756203barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee756203barEv,_ZTv0_n16_N7ee756203barEv)();
+extern void ABISELECT(_ZThn16_N7ee756203barEv,_ZThn8_N7ee756203barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee756203fooEv,_ZTv0_n12_N7ee756203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee756203fooEv,_ZThn16_N7ee756203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee756203barEv,_ZTv0_n16_N7ee756203barEv)();
+extern void ABISELECT(_ZThn32_N7ee756203barEv,_ZThn16_N7ee756203barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75620[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75620[0]),
+ (VTBL_ENTRY)&_ZN7ee756203fooEv,
+ (VTBL_ENTRY)&_ZN7ee756203barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75620[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee756203barEv,_ZTv0_n16_N7ee756203barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75620[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee756203fooEv,_ZTv0_n12_N7ee756203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee756203barEv,_ZTv0_n16_N7ee756203barEv),
+};
+extern VTBL_ENTRY _ZTV7ee75620[];
+extern void _ZN6dd56203barEv();
+static VTBL_ENTRY _tg__ZTV6dd5620__7ee75620[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5620[0]),
+ (VTBL_ENTRY)&_ZN6dd56203barEv,
+};
+extern void _ZN5cc6203fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56203barEv,_ZTv0_n16_N6dd56203barEv)();
+extern void ABISELECT(_ZThn16_N6dd56203barEv,_ZThn8_N6dd56203barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc620__6dd5620__7ee75620[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5620[0]),
+ (VTBL_ENTRY)&_ZN5cc6203fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56203barEv,_ZTv0_n16_N6dd56203barEv),
+};
+static VTT_ENTRY vtt_ee75620[] = {
+ {&(_ZTV7ee75620[4]), 4,17},
+ {&(_ZTV7ee75620[10]), 10,17},
+ {&(_ZTV7ee75620[15]), 15,17},
+ {&(_tg__ZTV6dd5620__7ee75620[3]), 3,4},
+ {&(_tg__ZTV5cc620__6dd5620__7ee75620[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee75620[];
+extern VTBL_ENTRY _ZTV7ee75620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75620[];
+static VTBL_ENTRY alt_thunk_names340[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56203barEv,_ZTv0_n16_N6dd56203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56203barEv,_ZThn8_N6dd56203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee756203fooEv,_ZTv0_n12_N7ee756203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee756203fooEv,_ZThn16_N7ee756203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee756203barEv,_ZTv0_n16_N7ee756203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee756203barEv,_ZThn16_N7ee756203barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee756203barEv,_ZThn8_N7ee756203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75620 = { "ee75620", // class name
+ bases_ee75620, 4,
+ &(vtc_ee75620[0]), // expected_vtbl_contents
+ &(vtt_ee75620[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee75620),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75620),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75620),5, //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 dd6620 : cc620 {
+ int d;
+ virtual void bar(); // _ZN6dd66203barEv
+ virtual void foo(); // _ZN6dd66203fooEv
+ ~dd6620(); // tgen
+ dd6620(); // tgen
+};
+//SIG(-1 dd6620) C1{ BC2{ BC3{ BC4{ Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void dd6620 ::bar(){vfunc_called(this, "_ZN6dd66203barEv");}
+void dd6620 ::foo(){vfunc_called(this, "_ZN6dd66203fooEv");}
+dd6620 ::~dd6620(){ note_dtor("dd6620", this);} // tgen
+dd6620 ::dd6620(){ note_ctor("dd6620", this);} // tgen
+
+static void Test_dd6620()
+{
+ extern Class_Descriptor cd_dd6620;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd6620, buf);
+ dd6620 *dp, &lv = *(dp=new (buf) dd6620());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd6620)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6620)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc620*), ABISELECT(8,4), "dd6620");
+ check_base_class_offset(lv, (bb20*)(cc620*), 0, "dd6620");
+ check_base_class_offset(lv, (cc620*), 0, "dd6620");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd6620.d");
+ test_class_info(&lv, &cd_dd6620);
+ dp->~dd6620();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6620(Test_dd6620, "dd6620", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd6620C1Ev();
+extern void _ZN6dd6620D1Ev();
+Name_Map name_map_dd6620[] = {
+ NSPAIR(_ZN6dd6620C1Ev),
+ NSPAIR(_ZN6dd6620D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc620;
+extern VTBL_ENTRY _ZTI5cc620[];
+extern VTBL_ENTRY _ZTV5cc620[];
+static Base_Class bases_dd6620[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc620, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI6dd6620[];
+extern void _ZN6dd66203fooEv();
+extern void _ZN6dd66203barEv();
+static VTBL_ENTRY vtc_dd6620[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6620[0]),
+ (VTBL_ENTRY)&_ZN6dd66203fooEv,
+ (VTBL_ENTRY)&_ZN6dd66203barEv,
+};
+extern VTBL_ENTRY _ZTI6dd6620[];
+extern VTBL_ENTRY _ZTV6dd6620[];
+Class_Descriptor cd_dd6620 = { "dd6620", // class name
+ bases_dd6620, 3,
+ &(vtc_dd6620[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd6620),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6620),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 ee06620 : dd6620 {
+ int e;
+ ~ee06620(); // tgen
+ ee06620(); // tgen
+};
+//SIG(1 ee06620) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee06620 ::~ee06620(){ note_dtor("ee06620", this);} // tgen
+ee06620 ::ee06620(){ note_ctor("ee06620", this);} // tgen
+
+static void Test_ee06620()
+{
+ extern Class_Descriptor cd_ee06620;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee06620, buf);
+ ee06620 *dp, &lv = *(dp=new (buf) ee06620());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee06620)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06620)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc620*)(dd6620*), ABISELECT(8,4), "ee06620");
+ check_base_class_offset(lv, (bb20*)(cc620*)(dd6620*), 0, "ee06620");
+ check_base_class_offset(lv, (cc620*)(dd6620*), 0, "ee06620");
+ check_base_class_offset(lv, (dd6620*), 0, "ee06620");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee06620.e");
+ test_class_info(&lv, &cd_ee06620);
+ dp->~ee06620();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06620(Test_ee06620, "ee06620", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee06620C1Ev();
+extern void _ZN7ee06620D1Ev();
+Name_Map name_map_ee06620[] = {
+ NSPAIR(_ZN7ee06620C1Ev),
+ NSPAIR(_ZN7ee06620D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc620;
+extern VTBL_ENTRY _ZTI5cc620[];
+extern VTBL_ENTRY _ZTV5cc620[];
+extern Class_Descriptor cd_dd6620;
+extern VTBL_ENTRY _ZTI6dd6620[];
+extern VTBL_ENTRY _ZTV6dd6620[];
+static Base_Class bases_ee06620[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc620, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6620, 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 _ZTI7ee06620[];
+extern void _ZN6dd66203fooEv();
+extern void _ZN6dd66203barEv();
+static VTBL_ENTRY vtc_ee06620[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06620[0]),
+ (VTBL_ENTRY)&_ZN6dd66203fooEv,
+ (VTBL_ENTRY)&_ZN6dd66203barEv,
+};
+extern VTBL_ENTRY _ZTI7ee06620[];
+extern VTBL_ENTRY _ZTV7ee06620[];
+Class_Descriptor cd_ee06620 = { "ee06620", // class name
+ bases_ee06620, 4,
+ &(vtc_ee06620[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee06620),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06620),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 ee16620 : virtual dd6620 {
+ int e;
+ ~ee16620(); // tgen
+ ee16620(); // tgen
+};
+//SIG(1 ee16620) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee16620 ::~ee16620(){ note_dtor("ee16620", this);} // tgen
+ee16620 ::ee16620(){ note_ctor("ee16620", this);} // tgen
+
+static void Test_ee16620()
+{
+ extern Class_Descriptor cd_ee16620;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee16620, buf);
+ ee16620 *dp, &lv = *(dp=new (buf) ee16620());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee16620)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16620)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc620*)(dd6620*), ABISELECT(24,12), "ee16620");
+ check_base_class_offset(lv, (bb20*)(cc620*)(dd6620*), ABISELECT(16,8), "ee16620");
+ check_base_class_offset(lv, (cc620*)(dd6620*), ABISELECT(16,8), "ee16620");
+ check_base_class_offset(lv, (dd6620*), ABISELECT(16,8), "ee16620");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16620.e");
+ test_class_info(&lv, &cd_ee16620);
+ dp->~ee16620();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16620(Test_ee16620, "ee16620", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee16620C1Ev();
+extern void _ZN7ee16620D1Ev();
+Name_Map name_map_ee16620[] = {
+ NSPAIR(_ZN7ee16620C1Ev),
+ NSPAIR(_ZN7ee16620D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc620;
+extern VTBL_ENTRY _ZTI5cc620[];
+extern VTBL_ENTRY _ZTV5cc620[];
+extern Class_Descriptor cd_dd6620;
+extern VTBL_ENTRY _ZTI6dd6620[];
+extern VTBL_ENTRY _ZTV6dd6620[];
+static Base_Class bases_ee16620[] = {
+ // 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_bb20, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc620, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6620, 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 _ZTI7ee16620[];
+extern void _ZN6dd66203fooEv();
+extern void _ZN6dd66203barEv();
+static VTBL_ENTRY vtc_ee16620[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16620[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16620[0]),
+ (VTBL_ENTRY)&_ZN6dd66203fooEv,
+ (VTBL_ENTRY)&_ZN6dd66203barEv,
+};
+extern VTBL_ENTRY _ZTV7ee16620[];
+static VTT_ENTRY vtt_ee16620[] = {
+ {&(_ZTV7ee16620[3]), 3,9},
+ {&(_ZTV7ee16620[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee16620[];
+extern VTBL_ENTRY _ZTV7ee16620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16620[];
+Class_Descriptor cd_ee16620 = { "ee16620", // class name
+ bases_ee16620, 4,
+ &(vtc_ee16620[0]), // expected_vtbl_contents
+ &(vtt_ee16620[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee16620),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16620),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16620),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 ee26620 : dd6620 {
+ int e;
+ virtual void foo(); // _ZN7ee266203fooEv
+ ~ee26620(); // tgen
+ ee26620(); // tgen
+};
+//SIG(1 ee26620) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26620 ::foo(){vfunc_called(this, "_ZN7ee266203fooEv");}
+ee26620 ::~ee26620(){ note_dtor("ee26620", this);} // tgen
+ee26620 ::ee26620(){ note_ctor("ee26620", this);} // tgen
+
+static void Test_ee26620()
+{
+ extern Class_Descriptor cd_ee26620;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee26620, buf);
+ ee26620 *dp, &lv = *(dp=new (buf) ee26620());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee26620)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26620)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc620*)(dd6620*), ABISELECT(8,4), "ee26620");
+ check_base_class_offset(lv, (bb20*)(cc620*)(dd6620*), 0, "ee26620");
+ check_base_class_offset(lv, (cc620*)(dd6620*), 0, "ee26620");
+ check_base_class_offset(lv, (dd6620*), 0, "ee26620");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee26620.e");
+ test_class_info(&lv, &cd_ee26620);
+ dp->~ee26620();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26620(Test_ee26620, "ee26620", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee26620C1Ev();
+extern void _ZN7ee26620D1Ev();
+Name_Map name_map_ee26620[] = {
+ NSPAIR(_ZN7ee26620C1Ev),
+ NSPAIR(_ZN7ee26620D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc620;
+extern VTBL_ENTRY _ZTI5cc620[];
+extern VTBL_ENTRY _ZTV5cc620[];
+extern Class_Descriptor cd_dd6620;
+extern VTBL_ENTRY _ZTI6dd6620[];
+extern VTBL_ENTRY _ZTV6dd6620[];
+static Base_Class bases_ee26620[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc620, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6620, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee26620[];
+extern void _ZN7ee266203fooEv();
+extern void _ZN6dd66203barEv();
+static VTBL_ENTRY vtc_ee26620[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26620[0]),
+ (VTBL_ENTRY)&_ZN7ee266203fooEv,
+ (VTBL_ENTRY)&_ZN6dd66203barEv,
+};
+extern VTBL_ENTRY _ZTI7ee26620[];
+extern VTBL_ENTRY _ZTV7ee26620[];
+Class_Descriptor cd_ee26620 = { "ee26620", // class name
+ bases_ee26620, 4,
+ &(vtc_ee26620[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee26620),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26620),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 ee36620 : virtual dd6620 {
+ int e;
+ virtual void foo(); // _ZN7ee366203fooEv
+ ~ee36620(); // tgen
+ ee36620(); // tgen
+};
+//SIG(1 ee36620) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36620 ::foo(){vfunc_called(this, "_ZN7ee366203fooEv");}
+ee36620 ::~ee36620(){ note_dtor("ee36620", this);} // tgen
+ee36620 ::ee36620(){ note_ctor("ee36620", this);} // tgen
+
+static void Test_ee36620()
+{
+ extern Class_Descriptor cd_ee36620;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee36620, buf);
+ ee36620 *dp, &lv = *(dp=new (buf) ee36620());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee36620)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36620)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc620*)(dd6620*), ABISELECT(24,12), "ee36620");
+ check_base_class_offset(lv, (bb20*)(cc620*)(dd6620*), ABISELECT(16,8), "ee36620");
+ check_base_class_offset(lv, (cc620*)(dd6620*), ABISELECT(16,8), "ee36620");
+ check_base_class_offset(lv, (dd6620*), ABISELECT(16,8), "ee36620");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36620.e");
+ test_class_info(&lv, &cd_ee36620);
+ dp->~ee36620();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36620(Test_ee36620, "ee36620", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee36620C1Ev();
+extern void _ZN7ee36620D1Ev();
+Name_Map name_map_ee36620[] = {
+ NSPAIR(_ZN7ee36620C1Ev),
+ NSPAIR(_ZN7ee36620D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc620;
+extern VTBL_ENTRY _ZTI5cc620[];
+extern VTBL_ENTRY _ZTV5cc620[];
+extern Class_Descriptor cd_dd6620;
+extern VTBL_ENTRY _ZTI6dd6620[];
+extern VTBL_ENTRY _ZTV6dd6620[];
+static Base_Class bases_ee36620[] = {
+ // 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_bb20, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc620, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6620, 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 _ZTI7ee36620[];
+extern void _ZN7ee366203fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee366203fooEv,_ZTv0_n12_N7ee366203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee366203fooEv,_ZThn8_N7ee366203fooEv)() __attribute__((weak));
+extern void _ZN6dd66203barEv();
+static VTBL_ENTRY vtc_ee36620[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36620[0]),
+ (VTBL_ENTRY)&_ZN7ee366203fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36620[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee366203fooEv,_ZTv0_n12_N7ee366203fooEv),
+ (VTBL_ENTRY)&_ZN6dd66203barEv,
+};
+extern VTBL_ENTRY _ZTV7ee36620[];
+static VTT_ENTRY vtt_ee36620[] = {
+ {&(_ZTV7ee36620[3]), 3,10},
+ {&(_ZTV7ee36620[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee36620[];
+extern VTBL_ENTRY _ZTV7ee36620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36620[];
+static VTBL_ENTRY alt_thunk_names341[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee366203fooEv,_ZTv0_n12_N7ee366203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee366203fooEv,_ZThn8_N7ee366203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36620 = { "ee36620", // class name
+ bases_ee36620, 4,
+ &(vtc_ee36620[0]), // expected_vtbl_contents
+ &(vtt_ee36620[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee36620),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36620),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36620),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names341,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee46620 : dd6620 {
+ int e;
+ virtual void bar(); // _ZN7ee466203barEv
+ ~ee46620(); // tgen
+ ee46620(); // tgen
+};
+//SIG(1 ee46620) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46620 ::bar(){vfunc_called(this, "_ZN7ee466203barEv");}
+ee46620 ::~ee46620(){ note_dtor("ee46620", this);} // tgen
+ee46620 ::ee46620(){ note_ctor("ee46620", this);} // tgen
+
+static void Test_ee46620()
+{
+ extern Class_Descriptor cd_ee46620;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee46620, buf);
+ ee46620 *dp, &lv = *(dp=new (buf) ee46620());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee46620)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46620)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc620*)(dd6620*), ABISELECT(8,4), "ee46620");
+ check_base_class_offset(lv, (bb20*)(cc620*)(dd6620*), 0, "ee46620");
+ check_base_class_offset(lv, (cc620*)(dd6620*), 0, "ee46620");
+ check_base_class_offset(lv, (dd6620*), 0, "ee46620");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee46620.e");
+ test_class_info(&lv, &cd_ee46620);
+ dp->~ee46620();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46620(Test_ee46620, "ee46620", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee46620C1Ev();
+extern void _ZN7ee46620D1Ev();
+Name_Map name_map_ee46620[] = {
+ NSPAIR(_ZN7ee46620C1Ev),
+ NSPAIR(_ZN7ee46620D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc620;
+extern VTBL_ENTRY _ZTI5cc620[];
+extern VTBL_ENTRY _ZTV5cc620[];
+extern Class_Descriptor cd_dd6620;
+extern VTBL_ENTRY _ZTI6dd6620[];
+extern VTBL_ENTRY _ZTV6dd6620[];
+static Base_Class bases_ee46620[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc620, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6620, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee46620[];
+extern void _ZN6dd66203fooEv();
+extern void _ZN7ee466203barEv();
+static VTBL_ENTRY vtc_ee46620[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46620[0]),
+ (VTBL_ENTRY)&_ZN6dd66203fooEv,
+ (VTBL_ENTRY)&_ZN7ee466203barEv,
+};
+extern VTBL_ENTRY _ZTI7ee46620[];
+extern VTBL_ENTRY _ZTV7ee46620[];
+Class_Descriptor cd_ee46620 = { "ee46620", // class name
+ bases_ee46620, 4,
+ &(vtc_ee46620[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee46620),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46620),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 ee56620 : virtual dd6620 {
+ int e;
+ virtual void bar(); // _ZN7ee566203barEv
+ ~ee56620(); // tgen
+ ee56620(); // tgen
+};
+//SIG(1 ee56620) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56620 ::bar(){vfunc_called(this, "_ZN7ee566203barEv");}
+ee56620 ::~ee56620(){ note_dtor("ee56620", this);} // tgen
+ee56620 ::ee56620(){ note_ctor("ee56620", this);} // tgen
+
+static void Test_ee56620()
+{
+ extern Class_Descriptor cd_ee56620;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee56620, buf);
+ ee56620 *dp, &lv = *(dp=new (buf) ee56620());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee56620)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56620)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc620*)(dd6620*), ABISELECT(24,12), "ee56620");
+ check_base_class_offset(lv, (bb20*)(cc620*)(dd6620*), ABISELECT(16,8), "ee56620");
+ check_base_class_offset(lv, (cc620*)(dd6620*), ABISELECT(16,8), "ee56620");
+ check_base_class_offset(lv, (dd6620*), ABISELECT(16,8), "ee56620");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56620.e");
+ test_class_info(&lv, &cd_ee56620);
+ dp->~ee56620();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56620(Test_ee56620, "ee56620", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee56620C1Ev();
+extern void _ZN7ee56620D1Ev();
+Name_Map name_map_ee56620[] = {
+ NSPAIR(_ZN7ee56620C1Ev),
+ NSPAIR(_ZN7ee56620D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc620;
+extern VTBL_ENTRY _ZTI5cc620[];
+extern VTBL_ENTRY _ZTV5cc620[];
+extern Class_Descriptor cd_dd6620;
+extern VTBL_ENTRY _ZTI6dd6620[];
+extern VTBL_ENTRY _ZTV6dd6620[];
+static Base_Class bases_ee56620[] = {
+ // 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_bb20, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc620, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6620, 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 _ZTI7ee56620[];
+extern void _ZN7ee566203barEv();
+extern void _ZN6dd66203fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee566203barEv,_ZTv0_n16_N7ee566203barEv)();
+extern void ABISELECT(_ZThn16_N7ee566203barEv,_ZThn8_N7ee566203barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56620[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56620[0]),
+ (VTBL_ENTRY)&_ZN7ee566203barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56620[0]),
+ (VTBL_ENTRY)&_ZN6dd66203fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee566203barEv,_ZTv0_n16_N7ee566203barEv),
+};
+extern VTBL_ENTRY _ZTV7ee56620[];
+static VTT_ENTRY vtt_ee56620[] = {
+ {&(_ZTV7ee56620[3]), 3,10},
+ {&(_ZTV7ee56620[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee56620[];
+extern VTBL_ENTRY _ZTV7ee56620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56620[];
+static VTBL_ENTRY alt_thunk_names342[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee566203barEv,_ZTv0_n16_N7ee566203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee566203barEv,_ZThn8_N7ee566203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56620 = { "ee56620", // class name
+ bases_ee56620, 4,
+ &(vtc_ee56620[0]), // expected_vtbl_contents
+ &(vtt_ee56620[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee56620),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56620),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56620),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names342,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee66620 : dd6620 {
+ int e;
+ virtual void foo(); // _ZN7ee666203fooEv
+ virtual void bar(); // _ZN7ee666203barEv
+ ~ee66620(); // tgen
+ ee66620(); // tgen
+};
+//SIG(1 ee66620) C1{ BC2{ BC3{ BC4{ BC5{ Fi} v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66620 ::foo(){vfunc_called(this, "_ZN7ee666203fooEv");}
+void ee66620 ::bar(){vfunc_called(this, "_ZN7ee666203barEv");}
+ee66620 ::~ee66620(){ note_dtor("ee66620", this);} // tgen
+ee66620 ::ee66620(){ note_ctor("ee66620", this);} // tgen
+
+static void Test_ee66620()
+{
+ extern Class_Descriptor cd_ee66620;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee66620, buf);
+ ee66620 *dp, &lv = *(dp=new (buf) ee66620());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee66620)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66620)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc620*)(dd6620*), ABISELECT(8,4), "ee66620");
+ check_base_class_offset(lv, (bb20*)(cc620*)(dd6620*), 0, "ee66620");
+ check_base_class_offset(lv, (cc620*)(dd6620*), 0, "ee66620");
+ check_base_class_offset(lv, (dd6620*), 0, "ee66620");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee66620.e");
+ test_class_info(&lv, &cd_ee66620);
+ dp->~ee66620();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66620(Test_ee66620, "ee66620", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee66620C1Ev();
+extern void _ZN7ee66620D1Ev();
+Name_Map name_map_ee66620[] = {
+ NSPAIR(_ZN7ee66620C1Ev),
+ NSPAIR(_ZN7ee66620D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc620;
+extern VTBL_ENTRY _ZTI5cc620[];
+extern VTBL_ENTRY _ZTV5cc620[];
+extern Class_Descriptor cd_dd6620;
+extern VTBL_ENTRY _ZTI6dd6620[];
+extern VTBL_ENTRY _ZTV6dd6620[];
+static Base_Class bases_ee66620[] = {
+ // 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_bb20, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc620, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6620, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI7ee66620[];
+extern void _ZN7ee666203fooEv();
+extern void _ZN7ee666203barEv();
+static VTBL_ENTRY vtc_ee66620[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66620[0]),
+ (VTBL_ENTRY)&_ZN7ee666203fooEv,
+ (VTBL_ENTRY)&_ZN7ee666203barEv,
+};
+extern VTBL_ENTRY _ZTI7ee66620[];
+extern VTBL_ENTRY _ZTV7ee66620[];
+Class_Descriptor cd_ee66620 = { "ee66620", // class name
+ bases_ee66620, 4,
+ &(vtc_ee66620[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee66620),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66620),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 ee76620 : virtual dd6620 {
+ int e;
+ virtual void foo(); // _ZN7ee766203fooEv
+ virtual void bar(); // _ZN7ee766203barEv
+ ~ee76620(); // tgen
+ ee76620(); // tgen
+};
+//SIG(1 ee76620) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76620 ::foo(){vfunc_called(this, "_ZN7ee766203fooEv");}
+void ee76620 ::bar(){vfunc_called(this, "_ZN7ee766203barEv");}
+ee76620 ::~ee76620(){ note_dtor("ee76620", this);} // tgen
+ee76620 ::ee76620(){ note_ctor("ee76620", this);} // tgen
+
+static void Test_ee76620()
+{
+ extern Class_Descriptor cd_ee76620;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee76620, buf);
+ ee76620 *dp, &lv = *(dp=new (buf) ee76620());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee76620)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76620)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc620*)(dd6620*), ABISELECT(24,12), "ee76620");
+ check_base_class_offset(lv, (bb20*)(cc620*)(dd6620*), ABISELECT(16,8), "ee76620");
+ check_base_class_offset(lv, (cc620*)(dd6620*), ABISELECT(16,8), "ee76620");
+ check_base_class_offset(lv, (dd6620*), ABISELECT(16,8), "ee76620");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76620.e");
+ test_class_info(&lv, &cd_ee76620);
+ dp->~ee76620();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76620(Test_ee76620, "ee76620", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee76620C1Ev();
+extern void _ZN7ee76620D1Ev();
+Name_Map name_map_ee76620[] = {
+ NSPAIR(_ZN7ee76620C1Ev),
+ NSPAIR(_ZN7ee76620D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc620;
+extern VTBL_ENTRY _ZTI5cc620[];
+extern VTBL_ENTRY _ZTV5cc620[];
+extern Class_Descriptor cd_dd6620;
+extern VTBL_ENTRY _ZTI6dd6620[];
+extern VTBL_ENTRY _ZTV6dd6620[];
+static Base_Class bases_ee76620[] = {
+ // 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_bb20, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc620, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6620, 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 _ZTI7ee76620[];
+extern void _ZN7ee766203fooEv();
+extern void _ZN7ee766203barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee766203fooEv,_ZTv0_n12_N7ee766203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee766203fooEv,_ZThn8_N7ee766203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee766203barEv,_ZTv0_n16_N7ee766203barEv)();
+extern void ABISELECT(_ZThn16_N7ee766203barEv,_ZThn8_N7ee766203barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76620[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76620[0]),
+ (VTBL_ENTRY)&_ZN7ee766203fooEv,
+ (VTBL_ENTRY)&_ZN7ee766203barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76620[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee766203fooEv,_ZTv0_n12_N7ee766203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee766203barEv,_ZTv0_n16_N7ee766203barEv),
+};
+extern VTBL_ENTRY _ZTV7ee76620[];
+static VTT_ENTRY vtt_ee76620[] = {
+ {&(_ZTV7ee76620[3]), 3,11},
+ {&(_ZTV7ee76620[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee76620[];
+extern VTBL_ENTRY _ZTV7ee76620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76620[];
+static VTBL_ENTRY alt_thunk_names343[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee766203barEv,_ZTv0_n16_N7ee766203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee766203barEv,_ZThn8_N7ee766203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee766203fooEv,_ZTv0_n12_N7ee766203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee766203fooEv,_ZThn8_N7ee766203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76620 = { "ee76620", // class name
+ bases_ee76620, 4,
+ &(vtc_ee76620[0]), // expected_vtbl_contents
+ &(vtt_ee76620[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee76620),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76620),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76620),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names343,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd7620 : virtual cc620 {
+ int d;
+ virtual void bar(); // _ZN6dd76203barEv
+ virtual void foo(); // _ZN6dd76203fooEv
+ ~dd7620(); // tgen
+ dd7620(); // tgen
+};
+//SIG(-1 dd7620) C1{ VBC2{ BC3{ BC4{ Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void dd7620 ::bar(){vfunc_called(this, "_ZN6dd76203barEv");}
+void dd7620 ::foo(){vfunc_called(this, "_ZN6dd76203fooEv");}
+dd7620 ::~dd7620(){ note_dtor("dd7620", this);} // tgen
+dd7620 ::dd7620(){ note_ctor("dd7620", this);} // tgen
+
+static void Test_dd7620()
+{
+ extern Class_Descriptor cd_dd7620;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd7620, buf);
+ dd7620 *dp, &lv = *(dp=new (buf) dd7620());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd7620)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7620)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc620*), ABISELECT(24,12), "dd7620");
+ check_base_class_offset(lv, (bb20*)(cc620*), ABISELECT(16,8), "dd7620");
+ check_base_class_offset(lv, (cc620*), ABISELECT(16,8), "dd7620");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7620.d");
+ test_class_info(&lv, &cd_dd7620);
+ dp->~dd7620();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7620(Test_dd7620, "dd7620", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd7620C1Ev();
+extern void _ZN6dd7620D1Ev();
+Name_Map name_map_dd7620[] = {
+ NSPAIR(_ZN6dd7620C1Ev),
+ NSPAIR(_ZN6dd7620D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc620;
+extern VTBL_ENTRY _ZTI5cc620[];
+extern VTBL_ENTRY _ZTV5cc620[];
+static Base_Class bases_dd7620[] = {
+ // 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_bb20, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc620, 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 _ZTI6dd7620[];
+extern void _ZN6dd76203barEv();
+extern void _ZN6dd76203fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd76203fooEv,_ZTv0_n12_N6dd76203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76203fooEv,_ZThn8_N6dd76203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76203barEv,_ZTv0_n16_N6dd76203barEv)();
+extern void ABISELECT(_ZThn16_N6dd76203barEv,_ZThn8_N6dd76203barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7620[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7620[0]),
+ (VTBL_ENTRY)&_ZN6dd76203barEv,
+ (VTBL_ENTRY)&_ZN6dd76203fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7620[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76203fooEv,_ZTv0_n12_N6dd76203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76203barEv,_ZTv0_n16_N6dd76203barEv),
+};
+extern VTBL_ENTRY _ZTV6dd7620[];
+static VTT_ENTRY vtt_dd7620[] = {
+ {&(_ZTV6dd7620[3]), 3,11},
+ {&(_ZTV6dd7620[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd7620[];
+extern VTBL_ENTRY _ZTV6dd7620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7620[];
+static VTBL_ENTRY alt_thunk_names344[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76203barEv,_ZTv0_n16_N6dd76203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76203barEv,_ZThn8_N6dd76203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76203fooEv,_ZTv0_n12_N6dd76203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76203fooEv,_ZThn8_N6dd76203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7620 = { "dd7620", // class name
+ bases_dd7620, 3,
+ &(vtc_dd7620[0]), // expected_vtbl_contents
+ &(vtt_dd7620[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd7620),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7620),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7620),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names344,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07620 : dd7620 {
+ int e;
+ ~ee07620(); // tgen
+ ee07620(); // tgen
+};
+//SIG(1 ee07620) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee07620 ::~ee07620(){ note_dtor("ee07620", this);} // tgen
+ee07620 ::ee07620(){ note_ctor("ee07620", this);} // tgen
+
+static void Test_ee07620()
+{
+ extern Class_Descriptor cd_ee07620;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee07620, buf);
+ ee07620 *dp, &lv = *(dp=new (buf) ee07620());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee07620)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07620)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc620*), ABISELECT(24,16), "ee07620");
+ check_base_class_offset(lv, (bb20*)(cc620*), ABISELECT(16,12), "ee07620");
+ check_base_class_offset(lv, (cc620*)(dd7620*), ABISELECT(16,12), "ee07620");
+ check_base_class_offset(lv, (dd7620*), 0, "ee07620");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07620.e");
+ test_class_info(&lv, &cd_ee07620);
+ dp->~ee07620();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07620(Test_ee07620, "ee07620", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee07620C1Ev();
+extern void _ZN7ee07620D1Ev();
+Name_Map name_map_ee07620[] = {
+ NSPAIR(_ZN7ee07620C1Ev),
+ NSPAIR(_ZN7ee07620D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc620;
+extern VTBL_ENTRY _ZTI5cc620[];
+extern VTBL_ENTRY _ZTV5cc620[];
+extern Class_Descriptor cd_dd7620;
+extern VTBL_ENTRY _ZTI6dd7620[];
+extern VTBL_ENTRY _ZTV6dd7620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7620[];
+static Base_Class bases_ee07620[] = {
+ // 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_bb20, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc620, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7620, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee07620[];
+extern void _ZN6dd76203barEv();
+extern void _ZN6dd76203fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd76203fooEv,_ZTv0_n12_N6dd76203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76203fooEv,_ZThn12_N6dd76203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76203barEv,_ZTv0_n16_N6dd76203barEv)();
+extern void ABISELECT(_ZThn16_N6dd76203barEv,_ZThn12_N6dd76203barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07620[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07620[0]),
+ (VTBL_ENTRY)&_ZN6dd76203barEv,
+ (VTBL_ENTRY)&_ZN6dd76203fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07620[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76203fooEv,_ZTv0_n12_N6dd76203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76203barEv,_ZTv0_n16_N6dd76203barEv),
+};
+extern VTBL_ENTRY _ZTV7ee07620[];
+extern void _ZN6dd76203barEv();
+extern void _ZN6dd76203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7620__7ee07620[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7620[0]),
+ (VTBL_ENTRY)&_ZN6dd76203barEv,
+ (VTBL_ENTRY)&_ZN6dd76203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76203fooEv,_ZTv0_n12_N6dd76203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76203fooEv,_ZThn12_N6dd76203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76203barEv,_ZTv0_n16_N6dd76203barEv)();
+extern void ABISELECT(_ZThn16_N6dd76203barEv,_ZThn12_N6dd76203barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc620__6dd7620__7ee07620[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7620[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76203fooEv,_ZTv0_n12_N6dd76203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76203barEv,_ZTv0_n16_N6dd76203barEv),
+};
+static VTT_ENTRY vtt_ee07620[] = {
+ {&(_ZTV7ee07620[3]), 3,11},
+ {&(_tg__ZTV6dd7620__7ee07620[3]), 3,5},
+ {&(_tg__ZTV5cc620__6dd7620__7ee07620[4]), 4,6},
+ {&(_ZTV7ee07620[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee07620[];
+extern VTBL_ENTRY _ZTV7ee07620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07620[];
+static VTBL_ENTRY alt_thunk_names345[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76203barEv,_ZTv0_n16_N6dd76203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76203barEv,_ZThn12_N6dd76203barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76203barEv,_ZThn12_N6dd76203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76203fooEv,_ZTv0_n12_N6dd76203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76203fooEv,_ZThn12_N6dd76203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76203fooEv,_ZThn12_N6dd76203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07620 = { "ee07620", // class name
+ bases_ee07620, 4,
+ &(vtc_ee07620[0]), // expected_vtbl_contents
+ &(vtt_ee07620[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee07620),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07620),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07620),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names345,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee17620 : virtual dd7620 {
+ int e;
+ ~ee17620(); // tgen
+ ee17620(); // tgen
+};
+//SIG(1 ee17620) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee17620 ::~ee17620(){ note_dtor("ee17620", this);} // tgen
+ee17620 ::ee17620(){ note_ctor("ee17620", this);} // tgen
+
+static void Test_ee17620()
+{
+ extern Class_Descriptor cd_ee17620;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee17620, buf);
+ ee17620 *dp, &lv = *(dp=new (buf) ee17620());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee17620)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17620)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc620*), ABISELECT(40,20), "ee17620");
+ check_base_class_offset(lv, (bb20*)(cc620*), ABISELECT(32,16), "ee17620");
+ check_base_class_offset(lv, (cc620*)(dd7620*), ABISELECT(32,16), "ee17620");
+ check_base_class_offset(lv, (dd7620*), ABISELECT(16,8), "ee17620");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17620.e");
+ test_class_info(&lv, &cd_ee17620);
+ dp->~ee17620();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17620(Test_ee17620, "ee17620", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee17620C1Ev();
+extern void _ZN7ee17620D1Ev();
+Name_Map name_map_ee17620[] = {
+ NSPAIR(_ZN7ee17620C1Ev),
+ NSPAIR(_ZN7ee17620D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc620;
+extern VTBL_ENTRY _ZTI5cc620[];
+extern VTBL_ENTRY _ZTV5cc620[];
+extern Class_Descriptor cd_dd7620;
+extern VTBL_ENTRY _ZTI6dd7620[];
+extern VTBL_ENTRY _ZTV6dd7620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7620[];
+static Base_Class bases_ee17620[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc620, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7620, 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 _ZTI7ee17620[];
+extern void _ZN6dd76203barEv();
+extern void _ZN6dd76203fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd76203fooEv,_ZTv0_n12_N6dd76203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76203fooEv,_ZThn8_N6dd76203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76203barEv,_ZTv0_n16_N6dd76203barEv)();
+extern void ABISELECT(_ZThn16_N6dd76203barEv,_ZThn8_N6dd76203barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17620[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17620[0]),
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17620[0]),
+ (VTBL_ENTRY)&_ZN6dd76203barEv,
+ (VTBL_ENTRY)&_ZN6dd76203fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17620[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76203fooEv,_ZTv0_n12_N6dd76203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76203barEv,_ZTv0_n16_N6dd76203barEv),
+};
+extern VTBL_ENTRY _ZTV7ee17620[];
+extern void _ZN6dd76203barEv();
+extern void _ZN6dd76203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7620__7ee17620[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7620[0]),
+ (VTBL_ENTRY)&_ZN6dd76203barEv,
+ (VTBL_ENTRY)&_ZN6dd76203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76203fooEv,_ZTv0_n12_N6dd76203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76203fooEv,_ZThn8_N6dd76203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76203barEv,_ZTv0_n16_N6dd76203barEv)();
+extern void ABISELECT(_ZThn16_N6dd76203barEv,_ZThn8_N6dd76203barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc620__6dd7620__7ee17620[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7620[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76203fooEv,_ZTv0_n12_N6dd76203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76203barEv,_ZTv0_n16_N6dd76203barEv),
+};
+static VTT_ENTRY vtt_ee17620[] = {
+ {&(_ZTV7ee17620[4]), 4,17},
+ {&(_ZTV7ee17620[9]), 9,17},
+ {&(_ZTV7ee17620[15]), 15,17},
+ {&(_tg__ZTV6dd7620__7ee17620[3]), 3,5},
+ {&(_tg__ZTV5cc620__6dd7620__7ee17620[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee17620[];
+extern VTBL_ENTRY _ZTV7ee17620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17620[];
+static VTBL_ENTRY alt_thunk_names346[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76203barEv,_ZTv0_n16_N6dd76203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76203barEv,_ZThn8_N6dd76203barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76203barEv,_ZThn8_N6dd76203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76203fooEv,_ZTv0_n12_N6dd76203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76203fooEv,_ZThn8_N6dd76203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76203fooEv,_ZThn8_N6dd76203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17620 = { "ee17620", // class name
+ bases_ee17620, 4,
+ &(vtc_ee17620[0]), // expected_vtbl_contents
+ &(vtt_ee17620[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee17620),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17620),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17620),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names346,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee27620 : dd7620 {
+ int e;
+ virtual void foo(); // _ZN7ee276203fooEv
+ ~ee27620(); // tgen
+ ee27620(); // tgen
+};
+//SIG(1 ee27620) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27620 ::foo(){vfunc_called(this, "_ZN7ee276203fooEv");}
+ee27620 ::~ee27620(){ note_dtor("ee27620", this);} // tgen
+ee27620 ::ee27620(){ note_ctor("ee27620", this);} // tgen
+
+static void Test_ee27620()
+{
+ extern Class_Descriptor cd_ee27620;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee27620, buf);
+ ee27620 *dp, &lv = *(dp=new (buf) ee27620());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee27620)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27620)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc620*), ABISELECT(24,16), "ee27620");
+ check_base_class_offset(lv, (bb20*)(cc620*), ABISELECT(16,12), "ee27620");
+ check_base_class_offset(lv, (cc620*)(dd7620*), ABISELECT(16,12), "ee27620");
+ check_base_class_offset(lv, (dd7620*), 0, "ee27620");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27620.e");
+ test_class_info(&lv, &cd_ee27620);
+ dp->~ee27620();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27620(Test_ee27620, "ee27620", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee27620C1Ev();
+extern void _ZN7ee27620D1Ev();
+Name_Map name_map_ee27620[] = {
+ NSPAIR(_ZN7ee27620C1Ev),
+ NSPAIR(_ZN7ee27620D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc620;
+extern VTBL_ENTRY _ZTI5cc620[];
+extern VTBL_ENTRY _ZTV5cc620[];
+extern Class_Descriptor cd_dd7620;
+extern VTBL_ENTRY _ZTI6dd7620[];
+extern VTBL_ENTRY _ZTV6dd7620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7620[];
+static Base_Class bases_ee27620[] = {
+ // 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_bb20, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc620, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7620, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee27620[];
+extern void _ZN6dd76203barEv();
+extern void _ZN7ee276203fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee276203fooEv,_ZTv0_n12_N7ee276203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee276203fooEv,_ZThn12_N7ee276203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76203barEv,_ZTv0_n16_N6dd76203barEv)();
+extern void ABISELECT(_ZThn16_N6dd76203barEv,_ZThn12_N6dd76203barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27620[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27620[0]),
+ (VTBL_ENTRY)&_ZN6dd76203barEv,
+ (VTBL_ENTRY)&_ZN7ee276203fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27620[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee276203fooEv,_ZTv0_n12_N7ee276203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76203barEv,_ZTv0_n16_N6dd76203barEv),
+};
+extern VTBL_ENTRY _ZTV7ee27620[];
+extern void _ZN6dd76203barEv();
+extern void _ZN6dd76203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7620__7ee27620[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7620[0]),
+ (VTBL_ENTRY)&_ZN6dd76203barEv,
+ (VTBL_ENTRY)&_ZN6dd76203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76203fooEv,_ZTv0_n12_N6dd76203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76203fooEv,_ZThn12_N6dd76203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76203barEv,_ZTv0_n16_N6dd76203barEv)();
+extern void ABISELECT(_ZThn16_N6dd76203barEv,_ZThn12_N6dd76203barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc620__6dd7620__7ee27620[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7620[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76203fooEv,_ZTv0_n12_N6dd76203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76203barEv,_ZTv0_n16_N6dd76203barEv),
+};
+static VTT_ENTRY vtt_ee27620[] = {
+ {&(_ZTV7ee27620[3]), 3,11},
+ {&(_tg__ZTV6dd7620__7ee27620[3]), 3,5},
+ {&(_tg__ZTV5cc620__6dd7620__7ee27620[4]), 4,6},
+ {&(_ZTV7ee27620[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee27620[];
+extern VTBL_ENTRY _ZTV7ee27620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27620[];
+static VTBL_ENTRY alt_thunk_names347[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76203fooEv,_ZTv0_n12_N6dd76203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76203fooEv,_ZThn12_N6dd76203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76203barEv,_ZTv0_n16_N6dd76203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76203barEv,_ZThn12_N6dd76203barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76203barEv,_ZThn12_N6dd76203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee276203fooEv,_ZTv0_n12_N7ee276203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee276203fooEv,_ZThn12_N7ee276203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27620 = { "ee27620", // class name
+ bases_ee27620, 4,
+ &(vtc_ee27620[0]), // expected_vtbl_contents
+ &(vtt_ee27620[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee27620),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27620),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27620),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names347,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee37620 : virtual dd7620 {
+ int e;
+ virtual void foo(); // _ZN7ee376203fooEv
+ ~ee37620(); // tgen
+ ee37620(); // tgen
+};
+//SIG(1 ee37620) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37620 ::foo(){vfunc_called(this, "_ZN7ee376203fooEv");}
+ee37620 ::~ee37620(){ note_dtor("ee37620", this);} // tgen
+ee37620 ::ee37620(){ note_ctor("ee37620", this);} // tgen
+
+static void Test_ee37620()
+{
+ extern Class_Descriptor cd_ee37620;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee37620, buf);
+ ee37620 *dp, &lv = *(dp=new (buf) ee37620());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee37620)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37620)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc620*), ABISELECT(40,20), "ee37620");
+ check_base_class_offset(lv, (bb20*)(cc620*), ABISELECT(32,16), "ee37620");
+ check_base_class_offset(lv, (cc620*)(dd7620*), ABISELECT(32,16), "ee37620");
+ check_base_class_offset(lv, (dd7620*), ABISELECT(16,8), "ee37620");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37620.e");
+ test_class_info(&lv, &cd_ee37620);
+ dp->~ee37620();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37620(Test_ee37620, "ee37620", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee37620C1Ev();
+extern void _ZN7ee37620D1Ev();
+Name_Map name_map_ee37620[] = {
+ NSPAIR(_ZN7ee37620C1Ev),
+ NSPAIR(_ZN7ee37620D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc620;
+extern VTBL_ENTRY _ZTI5cc620[];
+extern VTBL_ENTRY _ZTV5cc620[];
+extern Class_Descriptor cd_dd7620;
+extern VTBL_ENTRY _ZTI6dd7620[];
+extern VTBL_ENTRY _ZTV6dd7620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7620[];
+static Base_Class bases_ee37620[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc620, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7620, 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 _ZTI7ee37620[];
+extern void _ZN7ee376203fooEv();
+extern void _ZN6dd76203barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee376203fooEv,_ZTv0_n20_N7ee376203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee376203fooEv,_ZThn8_N7ee376203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee376203fooEv,_ZTv0_n12_N7ee376203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee376203fooEv,_ZThn16_N7ee376203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76203barEv,_ZTv0_n16_N6dd76203barEv)();
+extern void ABISELECT(_ZThn16_N6dd76203barEv,_ZThn8_N6dd76203barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37620[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37620[0]),
+ (VTBL_ENTRY)&_ZN7ee376203fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37620[0]),
+ (VTBL_ENTRY)&_ZN6dd76203barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee376203fooEv,_ZTv0_n20_N7ee376203fooEv),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37620[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee376203fooEv,_ZTv0_n12_N7ee376203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76203barEv,_ZTv0_n16_N6dd76203barEv),
+};
+extern VTBL_ENTRY _ZTV7ee37620[];
+extern void _ZN6dd76203barEv();
+extern void _ZN6dd76203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7620__7ee37620[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7620[0]),
+ (VTBL_ENTRY)&_ZN6dd76203barEv,
+ (VTBL_ENTRY)&_ZN6dd76203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76203fooEv,_ZTv0_n12_N6dd76203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76203fooEv,_ZThn8_N6dd76203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76203barEv,_ZTv0_n16_N6dd76203barEv)();
+extern void ABISELECT(_ZThn16_N6dd76203barEv,_ZThn8_N6dd76203barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc620__6dd7620__7ee37620[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7620[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76203fooEv,_ZTv0_n12_N6dd76203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76203barEv,_ZTv0_n16_N6dd76203barEv),
+};
+static VTT_ENTRY vtt_ee37620[] = {
+ {&(_ZTV7ee37620[4]), 4,18},
+ {&(_ZTV7ee37620[10]), 10,18},
+ {&(_ZTV7ee37620[16]), 16,18},
+ {&(_tg__ZTV6dd7620__7ee37620[3]), 3,5},
+ {&(_tg__ZTV5cc620__6dd7620__7ee37620[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee37620[];
+extern VTBL_ENTRY _ZTV7ee37620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37620[];
+static VTBL_ENTRY alt_thunk_names348[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76203fooEv,_ZTv0_n12_N6dd76203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76203fooEv,_ZThn8_N6dd76203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76203barEv,_ZTv0_n16_N6dd76203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76203barEv,_ZThn8_N6dd76203barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76203barEv,_ZThn8_N6dd76203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee376203fooEv,_ZTv0_n12_N7ee376203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee376203fooEv,_ZThn16_N7ee376203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee376203fooEv,_ZTv0_n20_N7ee376203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee376203fooEv,_ZThn8_N7ee376203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37620 = { "ee37620", // class name
+ bases_ee37620, 4,
+ &(vtc_ee37620[0]), // expected_vtbl_contents
+ &(vtt_ee37620[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee37620),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37620),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37620),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names348,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee47620 : dd7620 {
+ int e;
+ virtual void bar(); // _ZN7ee476203barEv
+ ~ee47620(); // tgen
+ ee47620(); // tgen
+};
+//SIG(1 ee47620) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47620 ::bar(){vfunc_called(this, "_ZN7ee476203barEv");}
+ee47620 ::~ee47620(){ note_dtor("ee47620", this);} // tgen
+ee47620 ::ee47620(){ note_ctor("ee47620", this);} // tgen
+
+static void Test_ee47620()
+{
+ extern Class_Descriptor cd_ee47620;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee47620, buf);
+ ee47620 *dp, &lv = *(dp=new (buf) ee47620());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee47620)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47620)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc620*), ABISELECT(24,16), "ee47620");
+ check_base_class_offset(lv, (bb20*)(cc620*), ABISELECT(16,12), "ee47620");
+ check_base_class_offset(lv, (cc620*)(dd7620*), ABISELECT(16,12), "ee47620");
+ check_base_class_offset(lv, (dd7620*), 0, "ee47620");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47620.e");
+ test_class_info(&lv, &cd_ee47620);
+ dp->~ee47620();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47620(Test_ee47620, "ee47620", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee47620C1Ev();
+extern void _ZN7ee47620D1Ev();
+Name_Map name_map_ee47620[] = {
+ NSPAIR(_ZN7ee47620C1Ev),
+ NSPAIR(_ZN7ee47620D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc620;
+extern VTBL_ENTRY _ZTI5cc620[];
+extern VTBL_ENTRY _ZTV5cc620[];
+extern Class_Descriptor cd_dd7620;
+extern VTBL_ENTRY _ZTI6dd7620[];
+extern VTBL_ENTRY _ZTV6dd7620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7620[];
+static Base_Class bases_ee47620[] = {
+ // 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_bb20, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc620, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7620, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee47620[];
+extern void _ZN7ee476203barEv();
+extern void _ZN6dd76203fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd76203fooEv,_ZTv0_n12_N6dd76203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76203fooEv,_ZThn12_N6dd76203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee476203barEv,_ZTv0_n16_N7ee476203barEv)();
+extern void ABISELECT(_ZThn16_N7ee476203barEv,_ZThn12_N7ee476203barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47620[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47620[0]),
+ (VTBL_ENTRY)&_ZN7ee476203barEv,
+ (VTBL_ENTRY)&_ZN6dd76203fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47620[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76203fooEv,_ZTv0_n12_N6dd76203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee476203barEv,_ZTv0_n16_N7ee476203barEv),
+};
+extern VTBL_ENTRY _ZTV7ee47620[];
+extern void _ZN6dd76203barEv();
+extern void _ZN6dd76203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7620__7ee47620[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7620[0]),
+ (VTBL_ENTRY)&_ZN6dd76203barEv,
+ (VTBL_ENTRY)&_ZN6dd76203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76203fooEv,_ZTv0_n12_N6dd76203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76203fooEv,_ZThn12_N6dd76203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76203barEv,_ZTv0_n16_N6dd76203barEv)();
+extern void ABISELECT(_ZThn16_N6dd76203barEv,_ZThn12_N6dd76203barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc620__6dd7620__7ee47620[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7620[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76203fooEv,_ZTv0_n12_N6dd76203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76203barEv,_ZTv0_n16_N6dd76203barEv),
+};
+static VTT_ENTRY vtt_ee47620[] = {
+ {&(_ZTV7ee47620[3]), 3,11},
+ {&(_tg__ZTV6dd7620__7ee47620[3]), 3,5},
+ {&(_tg__ZTV5cc620__6dd7620__7ee47620[4]), 4,6},
+ {&(_ZTV7ee47620[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee47620[];
+extern VTBL_ENTRY _ZTV7ee47620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47620[];
+static VTBL_ENTRY alt_thunk_names349[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76203barEv,_ZTv0_n16_N6dd76203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76203barEv,_ZThn12_N6dd76203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee476203barEv,_ZTv0_n16_N7ee476203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee476203barEv,_ZThn12_N7ee476203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76203fooEv,_ZTv0_n12_N6dd76203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76203fooEv,_ZThn12_N6dd76203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76203fooEv,_ZThn12_N6dd76203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47620 = { "ee47620", // class name
+ bases_ee47620, 4,
+ &(vtc_ee47620[0]), // expected_vtbl_contents
+ &(vtt_ee47620[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee47620),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47620),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47620),4, //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 ee57620 : virtual dd7620 {
+ int e;
+ virtual void bar(); // _ZN7ee576203barEv
+ ~ee57620(); // tgen
+ ee57620(); // tgen
+};
+//SIG(1 ee57620) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57620 ::bar(){vfunc_called(this, "_ZN7ee576203barEv");}
+ee57620 ::~ee57620(){ note_dtor("ee57620", this);} // tgen
+ee57620 ::ee57620(){ note_ctor("ee57620", this);} // tgen
+
+static void Test_ee57620()
+{
+ extern Class_Descriptor cd_ee57620;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee57620, buf);
+ ee57620 *dp, &lv = *(dp=new (buf) ee57620());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee57620)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57620)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc620*), ABISELECT(40,20), "ee57620");
+ check_base_class_offset(lv, (bb20*)(cc620*), ABISELECT(32,16), "ee57620");
+ check_base_class_offset(lv, (cc620*)(dd7620*), ABISELECT(32,16), "ee57620");
+ check_base_class_offset(lv, (dd7620*), ABISELECT(16,8), "ee57620");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57620.e");
+ test_class_info(&lv, &cd_ee57620);
+ dp->~ee57620();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57620(Test_ee57620, "ee57620", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee57620C1Ev();
+extern void _ZN7ee57620D1Ev();
+Name_Map name_map_ee57620[] = {
+ NSPAIR(_ZN7ee57620C1Ev),
+ NSPAIR(_ZN7ee57620D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc620;
+extern VTBL_ENTRY _ZTI5cc620[];
+extern VTBL_ENTRY _ZTV5cc620[];
+extern Class_Descriptor cd_dd7620;
+extern VTBL_ENTRY _ZTI6dd7620[];
+extern VTBL_ENTRY _ZTV6dd7620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7620[];
+static Base_Class bases_ee57620[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc620, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7620, 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 _ZTI7ee57620[];
+extern void _ZN7ee576203barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee576203barEv,_ZTv0_n16_N7ee576203barEv)();
+extern void ABISELECT(_ZThn16_N7ee576203barEv,_ZThn8_N7ee576203barEv)() __attribute__((weak));
+extern void _ZN6dd76203fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd76203fooEv,_ZTv0_n12_N6dd76203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76203fooEv,_ZThn8_N6dd76203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee576203barEv,_ZTv0_n16_N7ee576203barEv)();
+extern void ABISELECT(_ZThn32_N7ee576203barEv,_ZThn16_N7ee576203barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57620[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57620[0]),
+ (VTBL_ENTRY)&_ZN7ee576203barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57620[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee576203barEv,_ZTv0_n16_N7ee576203barEv),
+ (VTBL_ENTRY)&_ZN6dd76203fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57620[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76203fooEv,_ZTv0_n12_N6dd76203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee576203barEv,_ZTv0_n16_N7ee576203barEv),
+};
+extern VTBL_ENTRY _ZTV7ee57620[];
+extern void _ZN6dd76203barEv();
+extern void _ZN6dd76203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7620__7ee57620[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7620[0]),
+ (VTBL_ENTRY)&_ZN6dd76203barEv,
+ (VTBL_ENTRY)&_ZN6dd76203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76203fooEv,_ZTv0_n12_N6dd76203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76203fooEv,_ZThn8_N6dd76203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76203barEv,_ZTv0_n16_N6dd76203barEv)();
+extern void ABISELECT(_ZThn16_N6dd76203barEv,_ZThn8_N6dd76203barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc620__6dd7620__7ee57620[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7620[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76203fooEv,_ZTv0_n12_N6dd76203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76203barEv,_ZTv0_n16_N6dd76203barEv),
+};
+static VTT_ENTRY vtt_ee57620[] = {
+ {&(_ZTV7ee57620[4]), 4,18},
+ {&(_ZTV7ee57620[10]), 10,18},
+ {&(_ZTV7ee57620[16]), 16,18},
+ {&(_tg__ZTV6dd7620__7ee57620[3]), 3,5},
+ {&(_tg__ZTV5cc620__6dd7620__7ee57620[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee57620[];
+extern VTBL_ENTRY _ZTV7ee57620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57620[];
+static VTBL_ENTRY alt_thunk_names350[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76203barEv,_ZTv0_n16_N6dd76203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76203barEv,_ZThn8_N6dd76203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76203fooEv,_ZTv0_n12_N6dd76203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76203fooEv,_ZThn8_N6dd76203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76203fooEv,_ZThn8_N6dd76203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee576203barEv,_ZTv0_n16_N7ee576203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee576203barEv,_ZThn16_N7ee576203barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee576203barEv,_ZThn8_N7ee576203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57620 = { "ee57620", // class name
+ bases_ee57620, 4,
+ &(vtc_ee57620[0]), // expected_vtbl_contents
+ &(vtt_ee57620[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee57620),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57620),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57620),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names350,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee67620 : dd7620 {
+ int e;
+ virtual void foo(); // _ZN7ee676203fooEv
+ virtual void bar(); // _ZN7ee676203barEv
+ ~ee67620(); // tgen
+ ee67620(); // tgen
+};
+//SIG(1 ee67620) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67620 ::foo(){vfunc_called(this, "_ZN7ee676203fooEv");}
+void ee67620 ::bar(){vfunc_called(this, "_ZN7ee676203barEv");}
+ee67620 ::~ee67620(){ note_dtor("ee67620", this);} // tgen
+ee67620 ::ee67620(){ note_ctor("ee67620", this);} // tgen
+
+static void Test_ee67620()
+{
+ extern Class_Descriptor cd_ee67620;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee67620, buf);
+ ee67620 *dp, &lv = *(dp=new (buf) ee67620());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee67620)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67620)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc620*), ABISELECT(24,16), "ee67620");
+ check_base_class_offset(lv, (bb20*)(cc620*), ABISELECT(16,12), "ee67620");
+ check_base_class_offset(lv, (cc620*)(dd7620*), ABISELECT(16,12), "ee67620");
+ check_base_class_offset(lv, (dd7620*), 0, "ee67620");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67620.e");
+ test_class_info(&lv, &cd_ee67620);
+ dp->~ee67620();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67620(Test_ee67620, "ee67620", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee67620C1Ev();
+extern void _ZN7ee67620D1Ev();
+Name_Map name_map_ee67620[] = {
+ NSPAIR(_ZN7ee67620C1Ev),
+ NSPAIR(_ZN7ee67620D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc620;
+extern VTBL_ENTRY _ZTI5cc620[];
+extern VTBL_ENTRY _ZTV5cc620[];
+extern Class_Descriptor cd_dd7620;
+extern VTBL_ENTRY _ZTI6dd7620[];
+extern VTBL_ENTRY _ZTV6dd7620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7620[];
+static Base_Class bases_ee67620[] = {
+ // 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_bb20, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc620, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7620, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee67620[];
+extern void _ZN7ee676203barEv();
+extern void _ZN7ee676203fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee676203fooEv,_ZTv0_n12_N7ee676203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee676203fooEv,_ZThn12_N7ee676203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee676203barEv,_ZTv0_n16_N7ee676203barEv)();
+extern void ABISELECT(_ZThn16_N7ee676203barEv,_ZThn12_N7ee676203barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67620[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67620[0]),
+ (VTBL_ENTRY)&_ZN7ee676203barEv,
+ (VTBL_ENTRY)&_ZN7ee676203fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67620[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee676203fooEv,_ZTv0_n12_N7ee676203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee676203barEv,_ZTv0_n16_N7ee676203barEv),
+};
+extern VTBL_ENTRY _ZTV7ee67620[];
+extern void _ZN6dd76203barEv();
+extern void _ZN6dd76203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7620__7ee67620[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7620[0]),
+ (VTBL_ENTRY)&_ZN6dd76203barEv,
+ (VTBL_ENTRY)&_ZN6dd76203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76203fooEv,_ZTv0_n12_N6dd76203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76203fooEv,_ZThn12_N6dd76203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76203barEv,_ZTv0_n16_N6dd76203barEv)();
+extern void ABISELECT(_ZThn16_N6dd76203barEv,_ZThn12_N6dd76203barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc620__6dd7620__7ee67620[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7620[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76203fooEv,_ZTv0_n12_N6dd76203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76203barEv,_ZTv0_n16_N6dd76203barEv),
+};
+static VTT_ENTRY vtt_ee67620[] = {
+ {&(_ZTV7ee67620[3]), 3,11},
+ {&(_tg__ZTV6dd7620__7ee67620[3]), 3,5},
+ {&(_tg__ZTV5cc620__6dd7620__7ee67620[4]), 4,6},
+ {&(_ZTV7ee67620[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee67620[];
+extern VTBL_ENTRY _ZTV7ee67620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67620[];
+static VTBL_ENTRY alt_thunk_names351[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76203barEv,_ZTv0_n16_N6dd76203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76203barEv,_ZThn12_N6dd76203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76203fooEv,_ZTv0_n12_N6dd76203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76203fooEv,_ZThn12_N6dd76203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee676203barEv,_ZTv0_n16_N7ee676203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee676203barEv,_ZThn12_N7ee676203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee676203fooEv,_ZTv0_n12_N7ee676203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee676203fooEv,_ZThn12_N7ee676203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67620 = { "ee67620", // class name
+ bases_ee67620, 4,
+ &(vtc_ee67620[0]), // expected_vtbl_contents
+ &(vtt_ee67620[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee67620),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67620),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67620),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names351,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee77620 : virtual dd7620 {
+ int e;
+ virtual void foo(); // _ZN7ee776203fooEv
+ virtual void bar(); // _ZN7ee776203barEv
+ ~ee77620(); // tgen
+ ee77620(); // tgen
+};
+//SIG(1 ee77620) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77620 ::foo(){vfunc_called(this, "_ZN7ee776203fooEv");}
+void ee77620 ::bar(){vfunc_called(this, "_ZN7ee776203barEv");}
+ee77620 ::~ee77620(){ note_dtor("ee77620", this);} // tgen
+ee77620 ::ee77620(){ note_ctor("ee77620", this);} // tgen
+
+static void Test_ee77620()
+{
+ extern Class_Descriptor cd_ee77620;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee77620, buf);
+ ee77620 *dp, &lv = *(dp=new (buf) ee77620());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee77620)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77620)");
+ check_base_class_offset(lv, (aa0*)(bb20*)(cc620*), ABISELECT(40,20), "ee77620");
+ check_base_class_offset(lv, (bb20*)(cc620*), ABISELECT(32,16), "ee77620");
+ check_base_class_offset(lv, (cc620*)(dd7620*), ABISELECT(32,16), "ee77620");
+ check_base_class_offset(lv, (dd7620*), ABISELECT(16,8), "ee77620");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77620.e");
+ test_class_info(&lv, &cd_ee77620);
+ dp->~ee77620();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77620(Test_ee77620, "ee77620", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee77620C1Ev();
+extern void _ZN7ee77620D1Ev();
+Name_Map name_map_ee77620[] = {
+ NSPAIR(_ZN7ee77620C1Ev),
+ NSPAIR(_ZN7ee77620D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc620;
+extern VTBL_ENTRY _ZTI5cc620[];
+extern VTBL_ENTRY _ZTV5cc620[];
+extern Class_Descriptor cd_dd7620;
+extern VTBL_ENTRY _ZTI6dd7620[];
+extern VTBL_ENTRY _ZTV6dd7620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7620[];
+static Base_Class bases_ee77620[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc620, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7620, ABISELECT(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 _ZTI7ee77620[];
+extern void _ZN7ee776203fooEv();
+extern void _ZN7ee776203barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee776203barEv,_ZTv0_n16_N7ee776203barEv)();
+extern void ABISELECT(_ZThn16_N7ee776203barEv,_ZThn8_N7ee776203barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee776203fooEv,_ZTv0_n20_N7ee776203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee776203fooEv,_ZThn8_N7ee776203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee776203fooEv,_ZTv0_n12_N7ee776203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee776203fooEv,_ZThn16_N7ee776203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee776203barEv,_ZTv0_n16_N7ee776203barEv)();
+extern void ABISELECT(_ZThn32_N7ee776203barEv,_ZThn16_N7ee776203barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77620[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77620[0]),
+ (VTBL_ENTRY)&_ZN7ee776203fooEv,
+ (VTBL_ENTRY)&_ZN7ee776203barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77620[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee776203barEv,_ZTv0_n16_N7ee776203barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee776203fooEv,_ZTv0_n20_N7ee776203fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77620[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee776203fooEv,_ZTv0_n12_N7ee776203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee776203barEv,_ZTv0_n16_N7ee776203barEv),
+};
+extern VTBL_ENTRY _ZTV7ee77620[];
+extern void _ZN6dd76203barEv();
+extern void _ZN6dd76203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7620__7ee77620[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7620[0]),
+ (VTBL_ENTRY)&_ZN6dd76203barEv,
+ (VTBL_ENTRY)&_ZN6dd76203fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76203fooEv,_ZTv0_n12_N6dd76203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76203fooEv,_ZThn8_N6dd76203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76203barEv,_ZTv0_n16_N6dd76203barEv)();
+extern void ABISELECT(_ZThn16_N6dd76203barEv,_ZThn8_N6dd76203barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc620__6dd7620__7ee77620[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7620[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76203fooEv,_ZTv0_n12_N6dd76203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76203barEv,_ZTv0_n16_N6dd76203barEv),
+};
+static VTT_ENTRY vtt_ee77620[] = {
+ {&(_ZTV7ee77620[4]), 4,19},
+ {&(_ZTV7ee77620[11]), 11,19},
+ {&(_ZTV7ee77620[17]), 17,19},
+ {&(_tg__ZTV6dd7620__7ee77620[3]), 3,5},
+ {&(_tg__ZTV5cc620__6dd7620__7ee77620[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee77620[];
+extern VTBL_ENTRY _ZTV7ee77620[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77620[];
+static VTBL_ENTRY alt_thunk_names352[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76203barEv,_ZTv0_n16_N6dd76203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76203barEv,_ZThn8_N6dd76203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76203fooEv,_ZTv0_n12_N6dd76203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76203fooEv,_ZThn8_N6dd76203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee776203fooEv,_ZTv0_n12_N7ee776203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee776203fooEv,_ZThn16_N7ee776203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee776203fooEv,_ZTv0_n20_N7ee776203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee776203fooEv,_ZThn8_N7ee776203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee776203barEv,_ZTv0_n16_N7ee776203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee776203barEv,_ZThn16_N7ee776203barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee776203barEv,_ZThn8_N7ee776203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77620 = { "ee77620", // class name
+ bases_ee77620, 4,
+ &(vtc_ee77620[0]), // expected_vtbl_contents
+ &(vtt_ee77620[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee77620),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77620),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77620),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names352,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc720 : virtual bb20 {
+ int c;
+ virtual void foo(); // _ZN5cc7203fooEv
+ virtual void bar(); // _ZN5cc7203barEv
+ ~cc720(); // tgen
+ cc720(); // tgen
+};
+//SIG(-1 cc720) C1{ VBC2{ BC3{ Fi} v1 Fi} v1 v2 Fi}
+
+
+void cc720 ::foo(){vfunc_called(this, "_ZN5cc7203fooEv");}
+void cc720 ::bar(){vfunc_called(this, "_ZN5cc7203barEv");}
+cc720 ::~cc720(){ note_dtor("cc720", this);} // tgen
+cc720 ::cc720(){ note_ctor("cc720", this);} // tgen
+
+static void Test_cc720()
+{
+ extern Class_Descriptor cd_cc720;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_cc720, buf);
+ cc720 *dp, &lv = *(dp=new (buf) cc720());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(cc720)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc720)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(24,12), "cc720");
+ check_base_class_offset(lv, (bb20*), ABISELECT(16,8), "cc720");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc720.c");
+ test_class_info(&lv, &cd_cc720);
+ dp->~cc720();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc720(Test_cc720, "cc720", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN5cc720C1Ev();
+extern void _ZN5cc720D1Ev();
+Name_Map name_map_cc720[] = {
+ NSPAIR(_ZN5cc720C1Ev),
+ NSPAIR(_ZN5cc720D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+static Base_Class bases_cc720[] = {
+ // 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_bb20, 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 _ZTI5cc720[];
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_cc720[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+extern VTBL_ENTRY _ZTV5cc720[];
+static VTT_ENTRY vtt_cc720[] = {
+ {&(_ZTV5cc720[3]), 3,9},
+ {&(_ZTV5cc720[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI5cc720[];
+extern VTBL_ENTRY _ZTV5cc720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc720[];
+static VTBL_ENTRY alt_thunk_names353[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_cc720 = { "cc720", // class name
+ bases_cc720, 2,
+ &(vtc_cc720[0]), // expected_vtbl_contents
+ &(vtt_cc720[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI5cc720),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV5cc720),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5cc720),2, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names353,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd0720 : cc720 {
+ int d;
+ ~dd0720(); // tgen
+ dd0720(); // tgen
+};
+//SIG(-1 dd0720) C1{ BC2{ VBC3{ BC4{ Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+dd0720 ::~dd0720(){ note_dtor("dd0720", this);} // tgen
+dd0720 ::dd0720(){ note_ctor("dd0720", this);} // tgen
+
+static void Test_dd0720()
+{
+ extern Class_Descriptor cd_dd0720;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd0720, buf);
+ dd0720 *dp, &lv = *(dp=new (buf) dd0720());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd0720)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0720)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(24,16), "dd0720");
+ check_base_class_offset(lv, (bb20*)(cc720*), ABISELECT(16,12), "dd0720");
+ check_base_class_offset(lv, (cc720*), 0, "dd0720");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd0720.d");
+ test_class_info(&lv, &cd_dd0720);
+ dp->~dd0720();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0720(Test_dd0720, "dd0720", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd0720C1Ev();
+extern void _ZN6dd0720D1Ev();
+Name_Map name_map_dd0720[] = {
+ NSPAIR(_ZN6dd0720C1Ev),
+ NSPAIR(_ZN6dd0720D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc720;
+extern VTBL_ENTRY _ZTI5cc720[];
+extern VTBL_ENTRY _ZTV5cc720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc720[];
+static Base_Class bases_dd0720[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc720, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd0720[];
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn12_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd0720[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd0720[];
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc720__6dd0720[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn12_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc720__6dd0720[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+static VTT_ENTRY vtt_dd0720[] = {
+ {&(_ZTV6dd0720[3]), 3,9},
+ {&(_tg__ZTV5cc720__6dd0720[3]), 3,5},
+ {&(_tg__ZTV4bb20__5cc720__6dd0720[3]), 3,4},
+ {&(_ZTV6dd0720[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI6dd0720[];
+extern VTBL_ENTRY _ZTV6dd0720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0720[];
+static VTBL_ENTRY alt_thunk_names354[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn12_N5cc7203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn12_N5cc7203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd0720 = { "dd0720", // class name
+ bases_dd0720, 3,
+ &(vtc_dd0720[0]), // expected_vtbl_contents
+ &(vtt_dd0720[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd0720),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0720),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd0720),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names354,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee00720 : dd0720 {
+ int e;
+ ~ee00720(); // tgen
+ ee00720(); // tgen
+};
+//SIG(1 ee00720) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v1 Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee00720 ::~ee00720(){ note_dtor("ee00720", this);} // tgen
+ee00720 ::ee00720(){ note_ctor("ee00720", this);} // tgen
+
+static void Test_ee00720()
+{
+ extern Class_Descriptor cd_ee00720;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee00720, buf);
+ ee00720 *dp, &lv = *(dp=new (buf) ee00720());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee00720)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00720)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(32,20), "ee00720");
+ check_base_class_offset(lv, (bb20*)(cc720*)(dd0720*), ABISELECT(24,16), "ee00720");
+ check_base_class_offset(lv, (cc720*)(dd0720*), 0, "ee00720");
+ check_base_class_offset(lv, (dd0720*), 0, "ee00720");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee00720.e");
+ test_class_info(&lv, &cd_ee00720);
+ dp->~ee00720();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00720(Test_ee00720, "ee00720", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee00720C1Ev();
+extern void _ZN7ee00720D1Ev();
+Name_Map name_map_ee00720[] = {
+ NSPAIR(_ZN7ee00720C1Ev),
+ NSPAIR(_ZN7ee00720D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc720;
+extern VTBL_ENTRY _ZTI5cc720[];
+extern VTBL_ENTRY _ZTV5cc720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc720[];
+extern Class_Descriptor cd_dd0720;
+extern VTBL_ENTRY _ZTI6dd0720[];
+extern VTBL_ENTRY _ZTV6dd0720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0720[];
+static Base_Class bases_ee00720[] = {
+ // 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_bb20, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc720, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0720, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee00720[];
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7203fooEv,_ZThn16_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee00720[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee00720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee00720[];
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV6dd0720__7ee00720[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc7206dd0720__7ee00720[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7203fooEv,_ZThn16_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc7206dd0720__7ee00720[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7203fooEv,_ZThn16_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd0720__7ee00720[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+static VTT_ENTRY vtt_ee00720[] = {
+ {&(_ZTV7ee00720[3]), 3,9},
+ {&(_tg__ZTV6dd0720__7ee00720[3]), 3,5},
+ {&(_tg__ZTV5cc7206dd0720__7ee00720[3]), 3,5},
+ {&(_tg__ZTV4bb20__5cc7206dd0720__7ee00720[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd0720__7ee00720[3]), 3,4},
+ {&(_ZTV7ee00720[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee00720[];
+extern VTBL_ENTRY _ZTV7ee00720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee00720[];
+static VTBL_ENTRY alt_thunk_names355[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7203fooEv,_ZThn16_N5cc7203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7203fooEv,_ZThn16_N5cc7203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7203fooEv,_ZThn16_N5cc7203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee00720 = { "ee00720", // class name
+ bases_ee00720, 4,
+ &(vtc_ee00720[0]), // expected_vtbl_contents
+ &(vtt_ee00720[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee00720),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00720),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee00720),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names355,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee10720 : virtual dd0720 {
+ int e;
+ ~ee10720(); // tgen
+ ee10720(); // tgen
+};
+//SIG(1 ee10720) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v1 Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee10720 ::~ee10720(){ note_dtor("ee10720", this);} // tgen
+ee10720 ::ee10720(){ note_ctor("ee10720", this);} // tgen
+
+static void Test_ee10720()
+{
+ extern Class_Descriptor cd_ee10720;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee10720, buf);
+ ee10720 *dp, &lv = *(dp=new (buf) ee10720());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee10720)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10720)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee10720");
+ check_base_class_offset(lv, (bb20*)(cc720*)(dd0720*), ABISELECT(32,20), "ee10720");
+ check_base_class_offset(lv, (cc720*)(dd0720*), ABISELECT(16,8), "ee10720");
+ check_base_class_offset(lv, (dd0720*), ABISELECT(16,8), "ee10720");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10720.e");
+ test_class_info(&lv, &cd_ee10720);
+ dp->~ee10720();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10720(Test_ee10720, "ee10720", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee10720C1Ev();
+extern void _ZN7ee10720D1Ev();
+Name_Map name_map_ee10720[] = {
+ NSPAIR(_ZN7ee10720C1Ev),
+ NSPAIR(_ZN7ee10720D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc720;
+extern VTBL_ENTRY _ZTI5cc720[];
+extern VTBL_ENTRY _ZTV5cc720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc720[];
+extern Class_Descriptor cd_dd0720;
+extern VTBL_ENTRY _ZTI6dd0720[];
+extern VTBL_ENTRY _ZTV6dd0720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0720[];
+static Base_Class bases_ee10720[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc720, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0720, 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 _ZTI7ee10720[];
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn12_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee10720[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10720[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee10720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee10720[];
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV6dd0720__7ee10720[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc7206dd0720__7ee10720[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn12_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc7206dd0720__7ee10720[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn12_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd0720__7ee10720[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+static VTT_ENTRY vtt_ee10720[] = {
+ {&(_ZTV7ee10720[4]), 4,15},
+ {&(_ZTV7ee10720[9]), 9,15},
+ {&(_ZTV7ee10720[14]), 14,15},
+ {&(_tg__ZTV6dd0720__7ee10720[3]), 3,5},
+ {&(_tg__ZTV5cc7206dd0720__7ee10720[3]), 3,5},
+ {&(_tg__ZTV4bb20__5cc7206dd0720__7ee10720[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd0720__7ee10720[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee10720[];
+extern VTBL_ENTRY _ZTV7ee10720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10720[];
+static VTBL_ENTRY alt_thunk_names356[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn12_N5cc7203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn12_N5cc7203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn12_N5cc7203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee10720 = { "ee10720", // class name
+ bases_ee10720, 4,
+ &(vtc_ee10720[0]), // expected_vtbl_contents
+ &(vtt_ee10720[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee10720),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10720),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10720),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names356,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee20720 : dd0720 {
+ int e;
+ virtual void foo(); // _ZN7ee207203fooEv
+ ~ee20720(); // tgen
+ ee20720(); // tgen
+};
+//SIG(1 ee20720) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v1 Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee20720 ::foo(){vfunc_called(this, "_ZN7ee207203fooEv");}
+ee20720 ::~ee20720(){ note_dtor("ee20720", this);} // tgen
+ee20720 ::ee20720(){ note_ctor("ee20720", this);} // tgen
+
+static void Test_ee20720()
+{
+ extern Class_Descriptor cd_ee20720;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee20720, buf);
+ ee20720 *dp, &lv = *(dp=new (buf) ee20720());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee20720)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20720)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(32,20), "ee20720");
+ check_base_class_offset(lv, (bb20*)(cc720*)(dd0720*), ABISELECT(24,16), "ee20720");
+ check_base_class_offset(lv, (cc720*)(dd0720*), 0, "ee20720");
+ check_base_class_offset(lv, (dd0720*), 0, "ee20720");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee20720.e");
+ test_class_info(&lv, &cd_ee20720);
+ dp->~ee20720();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20720(Test_ee20720, "ee20720", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee20720C1Ev();
+extern void _ZN7ee20720D1Ev();
+Name_Map name_map_ee20720[] = {
+ NSPAIR(_ZN7ee20720C1Ev),
+ NSPAIR(_ZN7ee20720D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc720;
+extern VTBL_ENTRY _ZTI5cc720[];
+extern VTBL_ENTRY _ZTV5cc720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc720[];
+extern Class_Descriptor cd_dd0720;
+extern VTBL_ENTRY _ZTI6dd0720[];
+extern VTBL_ENTRY _ZTV6dd0720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0720[];
+static Base_Class bases_ee20720[] = {
+ // 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_bb20, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc720, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0720, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee20720[];
+extern void _ZN7ee207203fooEv();
+extern void _ZN5cc7203barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee207203fooEv,_ZTv0_n12_N7ee207203fooEv)();
+extern void ABISELECT(_ZThn24_N7ee207203fooEv,_ZThn16_N7ee207203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee20720[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20720[0]),
+ (VTBL_ENTRY)&_ZN7ee207203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee20720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee207203fooEv,_ZTv0_n12_N7ee207203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee20720[];
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV6dd0720__7ee20720[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc7206dd0720__7ee20720[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7203fooEv,_ZThn16_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc7206dd0720__7ee20720[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7203fooEv,_ZThn16_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd0720__7ee20720[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+static VTT_ENTRY vtt_ee20720[] = {
+ {&(_ZTV7ee20720[3]), 3,9},
+ {&(_tg__ZTV6dd0720__7ee20720[3]), 3,5},
+ {&(_tg__ZTV5cc7206dd0720__7ee20720[3]), 3,5},
+ {&(_tg__ZTV4bb20__5cc7206dd0720__7ee20720[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd0720__7ee20720[3]), 3,4},
+ {&(_ZTV7ee20720[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee20720[];
+extern VTBL_ENTRY _ZTV7ee20720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee20720[];
+static VTBL_ENTRY alt_thunk_names357[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7203fooEv,_ZThn16_N5cc7203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7203fooEv,_ZThn16_N5cc7203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee207203fooEv,_ZTv0_n12_N7ee207203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee207203fooEv,_ZThn16_N7ee207203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee20720 = { "ee20720", // class name
+ bases_ee20720, 4,
+ &(vtc_ee20720[0]), // expected_vtbl_contents
+ &(vtt_ee20720[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee20720),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20720),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee20720),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names357,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee30720 : virtual dd0720 {
+ int e;
+ virtual void foo(); // _ZN7ee307203fooEv
+ ~ee30720(); // tgen
+ ee30720(); // tgen
+};
+//SIG(1 ee30720) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v1 Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee30720 ::foo(){vfunc_called(this, "_ZN7ee307203fooEv");}
+ee30720 ::~ee30720(){ note_dtor("ee30720", this);} // tgen
+ee30720 ::ee30720(){ note_ctor("ee30720", this);} // tgen
+
+static void Test_ee30720()
+{
+ extern Class_Descriptor cd_ee30720;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee30720, buf);
+ ee30720 *dp, &lv = *(dp=new (buf) ee30720());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee30720)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30720)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee30720");
+ check_base_class_offset(lv, (bb20*)(cc720*)(dd0720*), ABISELECT(32,20), "ee30720");
+ check_base_class_offset(lv, (cc720*)(dd0720*), ABISELECT(16,8), "ee30720");
+ check_base_class_offset(lv, (dd0720*), ABISELECT(16,8), "ee30720");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30720.e");
+ test_class_info(&lv, &cd_ee30720);
+ dp->~ee30720();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30720(Test_ee30720, "ee30720", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee30720C1Ev();
+extern void _ZN7ee30720D1Ev();
+Name_Map name_map_ee30720[] = {
+ NSPAIR(_ZN7ee30720C1Ev),
+ NSPAIR(_ZN7ee30720D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc720;
+extern VTBL_ENTRY _ZTI5cc720[];
+extern VTBL_ENTRY _ZTV5cc720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc720[];
+extern Class_Descriptor cd_dd0720;
+extern VTBL_ENTRY _ZTI6dd0720[];
+extern VTBL_ENTRY _ZTV6dd0720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0720[];
+static Base_Class bases_ee30720[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc720, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0720, 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 _ZTI7ee30720[];
+extern void _ZN7ee307203fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee307203fooEv,_ZTv0_n16_N7ee307203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee307203fooEv,_ZThn8_N7ee307203fooEv)() __attribute__((weak));
+extern void _ZN5cc7203barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee307203fooEv,_ZTv0_n12_N7ee307203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee307203fooEv,_ZThn20_N7ee307203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee30720[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30720[0]),
+ (VTBL_ENTRY)&_ZN7ee307203fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee307203fooEv,_ZTv0_n16_N7ee307203fooEv),
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee30720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee307203fooEv,_ZTv0_n12_N7ee307203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee30720[];
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV6dd0720__7ee30720[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc7206dd0720__7ee30720[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn12_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc7206dd0720__7ee30720[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn12_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd0720__7ee30720[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+static VTT_ENTRY vtt_ee30720[] = {
+ {&(_ZTV7ee30720[4]), 4,16},
+ {&(_ZTV7ee30720[10]), 10,16},
+ {&(_ZTV7ee30720[15]), 15,16},
+ {&(_tg__ZTV6dd0720__7ee30720[3]), 3,5},
+ {&(_tg__ZTV5cc7206dd0720__7ee30720[3]), 3,5},
+ {&(_tg__ZTV4bb20__5cc7206dd0720__7ee30720[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd0720__7ee30720[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee30720[];
+extern VTBL_ENTRY _ZTV7ee30720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30720[];
+static VTBL_ENTRY alt_thunk_names358[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn12_N5cc7203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn12_N5cc7203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee307203fooEv,_ZTv0_n12_N7ee307203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee307203fooEv,_ZThn20_N7ee307203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee307203fooEv,_ZTv0_n16_N7ee307203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee307203fooEv,_ZThn8_N7ee307203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30720 = { "ee30720", // class name
+ bases_ee30720, 4,
+ &(vtc_ee30720[0]), // expected_vtbl_contents
+ &(vtt_ee30720[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee30720),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30720),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30720),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names358,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee40720 : dd0720 {
+ int e;
+ virtual void bar(); // _ZN7ee407203barEv
+ ~ee40720(); // tgen
+ ee40720(); // tgen
+};
+//SIG(1 ee40720) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v2 Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee40720 ::bar(){vfunc_called(this, "_ZN7ee407203barEv");}
+ee40720 ::~ee40720(){ note_dtor("ee40720", this);} // tgen
+ee40720 ::ee40720(){ note_ctor("ee40720", this);} // tgen
+
+static void Test_ee40720()
+{
+ extern Class_Descriptor cd_ee40720;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee40720, buf);
+ ee40720 *dp, &lv = *(dp=new (buf) ee40720());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee40720)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40720)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(32,20), "ee40720");
+ check_base_class_offset(lv, (bb20*)(cc720*)(dd0720*), ABISELECT(24,16), "ee40720");
+ check_base_class_offset(lv, (cc720*)(dd0720*), 0, "ee40720");
+ check_base_class_offset(lv, (dd0720*), 0, "ee40720");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee40720.e");
+ test_class_info(&lv, &cd_ee40720);
+ dp->~ee40720();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40720(Test_ee40720, "ee40720", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee40720C1Ev();
+extern void _ZN7ee40720D1Ev();
+Name_Map name_map_ee40720[] = {
+ NSPAIR(_ZN7ee40720C1Ev),
+ NSPAIR(_ZN7ee40720D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc720;
+extern VTBL_ENTRY _ZTI5cc720[];
+extern VTBL_ENTRY _ZTV5cc720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc720[];
+extern Class_Descriptor cd_dd0720;
+extern VTBL_ENTRY _ZTI6dd0720[];
+extern VTBL_ENTRY _ZTV6dd0720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0720[];
+static Base_Class bases_ee40720[] = {
+ // 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_bb20, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc720, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0720, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee40720[];
+extern void _ZN5cc7203fooEv();
+extern void _ZN7ee407203barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7203fooEv,_ZThn16_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee40720[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN7ee407203barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee40720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee40720[];
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV6dd0720__7ee40720[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc7206dd0720__7ee40720[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7203fooEv,_ZThn16_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc7206dd0720__7ee40720[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7203fooEv,_ZThn16_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd0720__7ee40720[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+static VTT_ENTRY vtt_ee40720[] = {
+ {&(_ZTV7ee40720[3]), 3,9},
+ {&(_tg__ZTV6dd0720__7ee40720[3]), 3,5},
+ {&(_tg__ZTV5cc7206dd0720__7ee40720[3]), 3,5},
+ {&(_tg__ZTV4bb20__5cc7206dd0720__7ee40720[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd0720__7ee40720[3]), 3,4},
+ {&(_ZTV7ee40720[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee40720[];
+extern VTBL_ENTRY _ZTV7ee40720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee40720[];
+static VTBL_ENTRY alt_thunk_names359[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7203fooEv,_ZThn16_N5cc7203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7203fooEv,_ZThn16_N5cc7203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7203fooEv,_ZThn16_N5cc7203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee40720 = { "ee40720", // class name
+ bases_ee40720, 4,
+ &(vtc_ee40720[0]), // expected_vtbl_contents
+ &(vtt_ee40720[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee40720),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40720),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee40720),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names359,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee50720 : virtual dd0720 {
+ int e;
+ virtual void bar(); // _ZN7ee507203barEv
+ ~ee50720(); // tgen
+ ee50720(); // tgen
+};
+//SIG(1 ee50720) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v2 Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee50720 ::bar(){vfunc_called(this, "_ZN7ee507203barEv");}
+ee50720 ::~ee50720(){ note_dtor("ee50720", this);} // tgen
+ee50720 ::ee50720(){ note_ctor("ee50720", this);} // tgen
+
+static void Test_ee50720()
+{
+ extern Class_Descriptor cd_ee50720;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee50720, buf);
+ ee50720 *dp, &lv = *(dp=new (buf) ee50720());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee50720)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50720)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee50720");
+ check_base_class_offset(lv, (bb20*)(cc720*)(dd0720*), ABISELECT(32,20), "ee50720");
+ check_base_class_offset(lv, (cc720*)(dd0720*), ABISELECT(16,8), "ee50720");
+ check_base_class_offset(lv, (dd0720*), ABISELECT(16,8), "ee50720");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50720.e");
+ test_class_info(&lv, &cd_ee50720);
+ dp->~ee50720();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50720(Test_ee50720, "ee50720", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee50720C1Ev();
+extern void _ZN7ee50720D1Ev();
+Name_Map name_map_ee50720[] = {
+ NSPAIR(_ZN7ee50720C1Ev),
+ NSPAIR(_ZN7ee50720D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc720;
+extern VTBL_ENTRY _ZTI5cc720[];
+extern VTBL_ENTRY _ZTV5cc720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc720[];
+extern Class_Descriptor cd_dd0720;
+extern VTBL_ENTRY _ZTI6dd0720[];
+extern VTBL_ENTRY _ZTV6dd0720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0720[];
+static Base_Class bases_ee50720[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc720, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0720, 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 _ZTI7ee50720[];
+extern void _ZN7ee507203barEv();
+extern void _ZN5cc7203fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee507203barEv,_ZTv0_n20_N7ee507203barEv)();
+extern void ABISELECT(_ZThn16_N7ee507203barEv,_ZThn8_N7ee507203barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn12_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee50720[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50720[0]),
+ (VTBL_ENTRY)&_ZN7ee507203barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee507203barEv,_ZTv0_n20_N7ee507203barEv),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee50720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee50720[];
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV6dd0720__7ee50720[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc7206dd0720__7ee50720[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn12_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc7206dd0720__7ee50720[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn12_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd0720__7ee50720[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+static VTT_ENTRY vtt_ee50720[] = {
+ {&(_ZTV7ee50720[4]), 4,16},
+ {&(_ZTV7ee50720[10]), 10,16},
+ {&(_ZTV7ee50720[15]), 15,16},
+ {&(_tg__ZTV6dd0720__7ee50720[3]), 3,5},
+ {&(_tg__ZTV5cc7206dd0720__7ee50720[3]), 3,5},
+ {&(_tg__ZTV4bb20__5cc7206dd0720__7ee50720[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd0720__7ee50720[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee50720[];
+extern VTBL_ENTRY _ZTV7ee50720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50720[];
+static VTBL_ENTRY alt_thunk_names360[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn12_N5cc7203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn12_N5cc7203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn12_N5cc7203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee507203barEv,_ZTv0_n20_N7ee507203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee507203barEv,_ZThn8_N7ee507203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50720 = { "ee50720", // class name
+ bases_ee50720, 4,
+ &(vtc_ee50720[0]), // expected_vtbl_contents
+ &(vtt_ee50720[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee50720),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50720),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50720),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names360,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee60720 : dd0720 {
+ int e;
+ virtual void foo(); // _ZN7ee607203fooEv
+ virtual void bar(); // _ZN7ee607203barEv
+ ~ee60720(); // tgen
+ ee60720(); // tgen
+};
+//SIG(1 ee60720) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v1 Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee60720 ::foo(){vfunc_called(this, "_ZN7ee607203fooEv");}
+void ee60720 ::bar(){vfunc_called(this, "_ZN7ee607203barEv");}
+ee60720 ::~ee60720(){ note_dtor("ee60720", this);} // tgen
+ee60720 ::ee60720(){ note_ctor("ee60720", this);} // tgen
+
+static void Test_ee60720()
+{
+ extern Class_Descriptor cd_ee60720;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee60720, buf);
+ ee60720 *dp, &lv = *(dp=new (buf) ee60720());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee60720)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60720)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(32,20), "ee60720");
+ check_base_class_offset(lv, (bb20*)(cc720*)(dd0720*), ABISELECT(24,16), "ee60720");
+ check_base_class_offset(lv, (cc720*)(dd0720*), 0, "ee60720");
+ check_base_class_offset(lv, (dd0720*), 0, "ee60720");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee60720.e");
+ test_class_info(&lv, &cd_ee60720);
+ dp->~ee60720();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60720(Test_ee60720, "ee60720", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee60720C1Ev();
+extern void _ZN7ee60720D1Ev();
+Name_Map name_map_ee60720[] = {
+ NSPAIR(_ZN7ee60720C1Ev),
+ NSPAIR(_ZN7ee60720D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc720;
+extern VTBL_ENTRY _ZTI5cc720[];
+extern VTBL_ENTRY _ZTV5cc720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc720[];
+extern Class_Descriptor cd_dd0720;
+extern VTBL_ENTRY _ZTI6dd0720[];
+extern VTBL_ENTRY _ZTV6dd0720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0720[];
+static Base_Class bases_ee60720[] = {
+ // 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_bb20, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc720, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0720, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee60720[];
+extern void _ZN7ee607203fooEv();
+extern void _ZN7ee607203barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee607203fooEv,_ZTv0_n12_N7ee607203fooEv)();
+extern void ABISELECT(_ZThn24_N7ee607203fooEv,_ZThn16_N7ee607203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee60720[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60720[0]),
+ (VTBL_ENTRY)&_ZN7ee607203fooEv,
+ (VTBL_ENTRY)&_ZN7ee607203barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee60720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee607203fooEv,_ZTv0_n12_N7ee607203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee60720[];
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV6dd0720__7ee60720[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc7206dd0720__7ee60720[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7203fooEv,_ZThn16_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc7206dd0720__7ee60720[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7203fooEv,_ZThn16_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd0720__7ee60720[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+static VTT_ENTRY vtt_ee60720[] = {
+ {&(_ZTV7ee60720[3]), 3,9},
+ {&(_tg__ZTV6dd0720__7ee60720[3]), 3,5},
+ {&(_tg__ZTV5cc7206dd0720__7ee60720[3]), 3,5},
+ {&(_tg__ZTV4bb20__5cc7206dd0720__7ee60720[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd0720__7ee60720[3]), 3,4},
+ {&(_ZTV7ee60720[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee60720[];
+extern VTBL_ENTRY _ZTV7ee60720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee60720[];
+static VTBL_ENTRY alt_thunk_names361[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7203fooEv,_ZThn16_N5cc7203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7203fooEv,_ZThn16_N5cc7203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee607203fooEv,_ZTv0_n12_N7ee607203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee607203fooEv,_ZThn16_N7ee607203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee60720 = { "ee60720", // class name
+ bases_ee60720, 4,
+ &(vtc_ee60720[0]), // expected_vtbl_contents
+ &(vtt_ee60720[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee60720),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60720),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee60720),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names361,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee70720 : virtual dd0720 {
+ int e;
+ virtual void foo(); // _ZN7ee707203fooEv
+ virtual void bar(); // _ZN7ee707203barEv
+ ~ee70720(); // tgen
+ ee70720(); // tgen
+};
+//SIG(1 ee70720) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v1 Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee70720 ::foo(){vfunc_called(this, "_ZN7ee707203fooEv");}
+void ee70720 ::bar(){vfunc_called(this, "_ZN7ee707203barEv");}
+ee70720 ::~ee70720(){ note_dtor("ee70720", this);} // tgen
+ee70720 ::ee70720(){ note_ctor("ee70720", this);} // tgen
+
+static void Test_ee70720()
+{
+ extern Class_Descriptor cd_ee70720;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee70720, buf);
+ ee70720 *dp, &lv = *(dp=new (buf) ee70720());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee70720)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70720)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee70720");
+ check_base_class_offset(lv, (bb20*)(cc720*)(dd0720*), ABISELECT(32,20), "ee70720");
+ check_base_class_offset(lv, (cc720*)(dd0720*), ABISELECT(16,8), "ee70720");
+ check_base_class_offset(lv, (dd0720*), ABISELECT(16,8), "ee70720");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70720.e");
+ test_class_info(&lv, &cd_ee70720);
+ dp->~ee70720();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70720(Test_ee70720, "ee70720", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee70720C1Ev();
+extern void _ZN7ee70720D1Ev();
+Name_Map name_map_ee70720[] = {
+ NSPAIR(_ZN7ee70720C1Ev),
+ NSPAIR(_ZN7ee70720D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc720;
+extern VTBL_ENTRY _ZTI5cc720[];
+extern VTBL_ENTRY _ZTV5cc720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc720[];
+extern Class_Descriptor cd_dd0720;
+extern VTBL_ENTRY _ZTI6dd0720[];
+extern VTBL_ENTRY _ZTV6dd0720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0720[];
+static Base_Class bases_ee70720[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc720, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0720, ABISELECT(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 _ZTI7ee70720[];
+extern void _ZN7ee707203fooEv();
+extern void _ZN7ee707203barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee707203fooEv,_ZTv0_n16_N7ee707203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee707203fooEv,_ZThn8_N7ee707203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee707203barEv,_ZTv0_n20_N7ee707203barEv)();
+extern void ABISELECT(_ZThn16_N7ee707203barEv,_ZThn8_N7ee707203barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee707203fooEv,_ZTv0_n12_N7ee707203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee707203fooEv,_ZThn20_N7ee707203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70720[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70720[0]),
+ (VTBL_ENTRY)&_ZN7ee707203fooEv,
+ (VTBL_ENTRY)&_ZN7ee707203barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee707203fooEv,_ZTv0_n16_N7ee707203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee707203barEv,_ZTv0_n20_N7ee707203barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee70720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee707203fooEv,_ZTv0_n12_N7ee707203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee70720[];
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV6dd0720__7ee70720[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc7206dd0720__7ee70720[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn12_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc7206dd0720__7ee70720[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn12_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd0720__7ee70720[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+static VTT_ENTRY vtt_ee70720[] = {
+ {&(_ZTV7ee70720[4]), 4,17},
+ {&(_ZTV7ee70720[11]), 11,17},
+ {&(_ZTV7ee70720[16]), 16,17},
+ {&(_tg__ZTV6dd0720__7ee70720[3]), 3,5},
+ {&(_tg__ZTV5cc7206dd0720__7ee70720[3]), 3,5},
+ {&(_tg__ZTV4bb20__5cc7206dd0720__7ee70720[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd0720__7ee70720[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee70720[];
+extern VTBL_ENTRY _ZTV7ee70720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70720[];
+static VTBL_ENTRY alt_thunk_names362[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn12_N5cc7203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn12_N5cc7203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee707203fooEv,_ZTv0_n12_N7ee707203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee707203fooEv,_ZThn20_N7ee707203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee707203barEv,_ZTv0_n20_N7ee707203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee707203barEv,_ZThn8_N7ee707203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee707203fooEv,_ZTv0_n16_N7ee707203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee707203fooEv,_ZThn8_N7ee707203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70720 = { "ee70720", // class name
+ bases_ee70720, 4,
+ &(vtc_ee70720[0]), // expected_vtbl_contents
+ &(vtt_ee70720[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee70720),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70720),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70720),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names362,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd1720 : virtual cc720 {
+ int d;
+ ~dd1720(); // tgen
+ dd1720(); // tgen
+};
+//SIG(-1 dd1720) C1{ VBC2{ VBC3{ BC4{ Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+dd1720 ::~dd1720(){ note_dtor("dd1720", this);} // tgen
+dd1720 ::dd1720(){ note_ctor("dd1720", this);} // tgen
+
+static void Test_dd1720()
+{
+ extern Class_Descriptor cd_dd1720;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd1720, buf);
+ dd1720 *dp, &lv = *(dp=new (buf) dd1720());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd1720)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1720)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,20), "dd1720");
+ check_base_class_offset(lv, (bb20*)(cc720*), ABISELECT(32,16), "dd1720");
+ check_base_class_offset(lv, (cc720*), ABISELECT(16,8), "dd1720");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1720.d");
+ test_class_info(&lv, &cd_dd1720);
+ dp->~dd1720();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1720(Test_dd1720, "dd1720", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd1720C1Ev();
+extern void _ZN6dd1720D1Ev();
+Name_Map name_map_dd1720[] = {
+ NSPAIR(_ZN6dd1720C1Ev),
+ NSPAIR(_ZN6dd1720D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc720;
+extern VTBL_ENTRY _ZTI5cc720[];
+extern VTBL_ENTRY _ZTV5cc720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc720[];
+static Base_Class bases_dd1720[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc720, 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 _ZTI6dd1720[];
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd1720[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1720[0]),
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd1720[];
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc720__6dd1720[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc720__6dd1720[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+static VTT_ENTRY vtt_dd1720[] = {
+ {&(_ZTV6dd1720[4]), 4,15},
+ {&(_ZTV6dd1720[9]), 9,15},
+ {&(_ZTV6dd1720[14]), 14,15},
+ {&(_tg__ZTV5cc720__6dd1720[3]), 3,5},
+ {&(_tg__ZTV4bb20__5cc720__6dd1720[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd1720[];
+extern VTBL_ENTRY _ZTV6dd1720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1720[];
+static VTBL_ENTRY alt_thunk_names363[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd1720 = { "dd1720", // class name
+ bases_dd1720, 3,
+ &(vtc_dd1720[0]), // expected_vtbl_contents
+ &(vtt_dd1720[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd1720),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1720),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1720),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names363,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee01720 : dd1720 {
+ int e;
+ ~ee01720(); // tgen
+ ee01720(); // tgen
+};
+//SIG(1 ee01720) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v1 Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee01720 ::~ee01720(){ note_dtor("ee01720", this);} // tgen
+ee01720 ::ee01720(){ note_ctor("ee01720", this);} // tgen
+
+static void Test_ee01720()
+{
+ extern Class_Descriptor cd_ee01720;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee01720, buf);
+ ee01720 *dp, &lv = *(dp=new (buf) ee01720());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee01720)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01720)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee01720");
+ check_base_class_offset(lv, (bb20*)(cc720*), ABISELECT(32,20), "ee01720");
+ check_base_class_offset(lv, (cc720*)(dd1720*), ABISELECT(16,12), "ee01720");
+ check_base_class_offset(lv, (dd1720*), 0, "ee01720");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01720.e");
+ test_class_info(&lv, &cd_ee01720);
+ dp->~ee01720();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01720(Test_ee01720, "ee01720", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee01720C1Ev();
+extern void _ZN7ee01720D1Ev();
+Name_Map name_map_ee01720[] = {
+ NSPAIR(_ZN7ee01720C1Ev),
+ NSPAIR(_ZN7ee01720D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc720;
+extern VTBL_ENTRY _ZTI5cc720[];
+extern VTBL_ENTRY _ZTV5cc720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc720[];
+extern Class_Descriptor cd_dd1720;
+extern VTBL_ENTRY _ZTI6dd1720[];
+extern VTBL_ENTRY _ZTV6dd1720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1720[];
+static Base_Class bases_ee01720[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc720, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1720, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01720[];
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee01720[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01720[0]),
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee01720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee01720[];
+static VTBL_ENTRY _tg__ZTV6dd1720__7ee01720[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1720[0]),
+};
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc720__6dd1720__7ee01720[] = {
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd1720__7ee01720[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc720__7ee01720[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc720__7ee01720[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+static VTT_ENTRY vtt_ee01720[] = {
+ {&(_ZTV7ee01720[4]), 4,15},
+ {&(_tg__ZTV6dd1720__7ee01720[4]), 4,4},
+ {&(_tg__ZTV5cc720__6dd1720__7ee01720[5]), 5,7},
+ {&(_tg__ZTV4bb20__6dd1720__7ee01720[3]), 3,4},
+ {&(_ZTV7ee01720[9]), 9,15},
+ {&(_ZTV7ee01720[14]), 14,15},
+ {&(_tg__ZTV5cc720__7ee01720[3]), 3,5},
+ {&(_tg__ZTV4bb20__5cc720__7ee01720[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee01720[];
+extern VTBL_ENTRY _ZTV7ee01720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01720[];
+static VTBL_ENTRY alt_thunk_names364[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee01720 = { "ee01720", // class name
+ bases_ee01720, 4,
+ &(vtc_ee01720[0]), // expected_vtbl_contents
+ &(vtt_ee01720[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee01720),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01720),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01720),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names364,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee11720 : virtual dd1720 {
+ int e;
+ ~ee11720(); // tgen
+ ee11720(); // tgen
+};
+//SIG(1 ee11720) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v1 Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee11720 ::~ee11720(){ note_dtor("ee11720", this);} // tgen
+ee11720 ::ee11720(){ note_ctor("ee11720", this);} // tgen
+
+static void Test_ee11720()
+{
+ extern Class_Descriptor cd_ee11720;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee11720, buf);
+ ee11720 *dp, &lv = *(dp=new (buf) ee11720());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee11720)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11720)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(56,28), "ee11720");
+ check_base_class_offset(lv, (bb20*)(cc720*), ABISELECT(48,24), "ee11720");
+ check_base_class_offset(lv, (cc720*)(dd1720*), ABISELECT(32,16), "ee11720");
+ check_base_class_offset(lv, (dd1720*), ABISELECT(16,8), "ee11720");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11720.e");
+ test_class_info(&lv, &cd_ee11720);
+ dp->~ee11720();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11720(Test_ee11720, "ee11720", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee11720C1Ev();
+extern void _ZN7ee11720D1Ev();
+Name_Map name_map_ee11720[] = {
+ NSPAIR(_ZN7ee11720C1Ev),
+ NSPAIR(_ZN7ee11720D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc720;
+extern VTBL_ENTRY _ZTI5cc720[];
+extern VTBL_ENTRY _ZTV5cc720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc720[];
+extern Class_Descriptor cd_dd1720;
+extern VTBL_ENTRY _ZTI6dd1720[];
+extern VTBL_ENTRY _ZTV6dd1720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1720[];
+static Base_Class bases_ee11720[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(56,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(48,24), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc720, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1720, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee11720[];
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee11720[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11720[0]),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11720[0]),
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee11720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee11720[];
+static VTBL_ENTRY _tg__ZTV6dd1720__7ee11720[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1720[0]),
+};
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc720__6dd1720__7ee11720[] = {
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd1720__7ee11720[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc720__7ee11720[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc720__7ee11720[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+static VTT_ENTRY vtt_ee11720[] = {
+ {&(_ZTV7ee11720[5]), 5,20},
+ {&(_ZTV7ee11720[9]), 9,20},
+ {&(_ZTV7ee11720[14]), 14,20},
+ {&(_ZTV7ee11720[19]), 19,20},
+ {&(_tg__ZTV6dd1720__7ee11720[4]), 4,4},
+ {&(_tg__ZTV5cc720__6dd1720__7ee11720[5]), 5,7},
+ {&(_tg__ZTV4bb20__6dd1720__7ee11720[3]), 3,4},
+ {&(_tg__ZTV5cc720__7ee11720[3]), 3,5},
+ {&(_tg__ZTV4bb20__5cc720__7ee11720[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee11720[];
+extern VTBL_ENTRY _ZTV7ee11720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11720[];
+static VTBL_ENTRY alt_thunk_names365[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee11720 = { "ee11720", // class name
+ bases_ee11720, 4,
+ &(vtc_ee11720[0]), // expected_vtbl_contents
+ &(vtt_ee11720[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee11720),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11720),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11720),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names365,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee21720 : dd1720 {
+ int e;
+ virtual void foo(); // _ZN7ee217203fooEv
+ ~ee21720(); // tgen
+ ee21720(); // tgen
+};
+//SIG(1 ee21720) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v1 Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee21720 ::foo(){vfunc_called(this, "_ZN7ee217203fooEv");}
+ee21720 ::~ee21720(){ note_dtor("ee21720", this);} // tgen
+ee21720 ::ee21720(){ note_ctor("ee21720", this);} // tgen
+
+static void Test_ee21720()
+{
+ extern Class_Descriptor cd_ee21720;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee21720, buf);
+ ee21720 *dp, &lv = *(dp=new (buf) ee21720());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee21720)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21720)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee21720");
+ check_base_class_offset(lv, (bb20*)(cc720*), ABISELECT(32,20), "ee21720");
+ check_base_class_offset(lv, (cc720*)(dd1720*), ABISELECT(16,12), "ee21720");
+ check_base_class_offset(lv, (dd1720*), 0, "ee21720");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21720.e");
+ test_class_info(&lv, &cd_ee21720);
+ dp->~ee21720();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21720(Test_ee21720, "ee21720", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee21720C1Ev();
+extern void _ZN7ee21720D1Ev();
+Name_Map name_map_ee21720[] = {
+ NSPAIR(_ZN7ee21720C1Ev),
+ NSPAIR(_ZN7ee21720D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc720;
+extern VTBL_ENTRY _ZTI5cc720[];
+extern VTBL_ENTRY _ZTV5cc720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc720[];
+extern Class_Descriptor cd_dd1720;
+extern VTBL_ENTRY _ZTI6dd1720[];
+extern VTBL_ENTRY _ZTV6dd1720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1720[];
+static Base_Class bases_ee21720[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc720, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1720, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21720[];
+extern void _ZN7ee217203fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee217203fooEv,_ZTv0_n16_N7ee217203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee217203fooEv,_ZThn12_N7ee217203fooEv)() __attribute__((weak));
+extern void _ZN5cc7203barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee217203fooEv,_ZTv0_n12_N7ee217203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee217203fooEv,_ZThn20_N7ee217203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee21720[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21720[0]),
+ (VTBL_ENTRY)&_ZN7ee217203fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee217203fooEv,_ZTv0_n16_N7ee217203fooEv),
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee21720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee217203fooEv,_ZTv0_n12_N7ee217203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee21720[];
+static VTBL_ENTRY _tg__ZTV6dd1720__7ee21720[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1720[0]),
+};
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc720__6dd1720__7ee21720[] = {
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd1720__7ee21720[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc720__7ee21720[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc720__7ee21720[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+static VTT_ENTRY vtt_ee21720[] = {
+ {&(_ZTV7ee21720[4]), 4,16},
+ {&(_tg__ZTV6dd1720__7ee21720[4]), 4,4},
+ {&(_tg__ZTV5cc720__6dd1720__7ee21720[5]), 5,7},
+ {&(_tg__ZTV4bb20__6dd1720__7ee21720[3]), 3,4},
+ {&(_ZTV7ee21720[10]), 10,16},
+ {&(_ZTV7ee21720[15]), 15,16},
+ {&(_tg__ZTV5cc720__7ee21720[3]), 3,5},
+ {&(_tg__ZTV4bb20__5cc720__7ee21720[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee21720[];
+extern VTBL_ENTRY _ZTV7ee21720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21720[];
+static VTBL_ENTRY alt_thunk_names366[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee217203fooEv,_ZTv0_n12_N7ee217203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee217203fooEv,_ZThn20_N7ee217203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee217203fooEv,_ZTv0_n16_N7ee217203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee217203fooEv,_ZThn12_N7ee217203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21720 = { "ee21720", // class name
+ bases_ee21720, 4,
+ &(vtc_ee21720[0]), // expected_vtbl_contents
+ &(vtt_ee21720[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee21720),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21720),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21720),8, //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 ee31720 : virtual dd1720 {
+ int e;
+ virtual void foo(); // _ZN7ee317203fooEv
+ ~ee31720(); // tgen
+ ee31720(); // tgen
+};
+//SIG(1 ee31720) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v1 Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee31720 ::foo(){vfunc_called(this, "_ZN7ee317203fooEv");}
+ee31720 ::~ee31720(){ note_dtor("ee31720", this);} // tgen
+ee31720 ::ee31720(){ note_ctor("ee31720", this);} // tgen
+
+static void Test_ee31720()
+{
+ extern Class_Descriptor cd_ee31720;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee31720, buf);
+ ee31720 *dp, &lv = *(dp=new (buf) ee31720());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee31720)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31720)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(56,28), "ee31720");
+ check_base_class_offset(lv, (bb20*)(cc720*), ABISELECT(48,24), "ee31720");
+ check_base_class_offset(lv, (cc720*)(dd1720*), ABISELECT(32,16), "ee31720");
+ check_base_class_offset(lv, (dd1720*), ABISELECT(16,8), "ee31720");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31720.e");
+ test_class_info(&lv, &cd_ee31720);
+ dp->~ee31720();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31720(Test_ee31720, "ee31720", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee31720C1Ev();
+extern void _ZN7ee31720D1Ev();
+Name_Map name_map_ee31720[] = {
+ NSPAIR(_ZN7ee31720C1Ev),
+ NSPAIR(_ZN7ee31720D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc720;
+extern VTBL_ENTRY _ZTI5cc720[];
+extern VTBL_ENTRY _ZTV5cc720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc720[];
+extern Class_Descriptor cd_dd1720;
+extern VTBL_ENTRY _ZTI6dd1720[];
+extern VTBL_ENTRY _ZTV6dd1720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1720[];
+static Base_Class bases_ee31720[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(56,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc720, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1720, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee31720[];
+extern void _ZN7ee317203fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee317203fooEv,_ZTv0_n16_N7ee317203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee317203fooEv,_ZThn16_N7ee317203fooEv)() __attribute__((weak));
+extern void _ZN5cc7203barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee317203fooEv,_ZTv0_n12_N7ee317203fooEv)();
+extern void ABISELECT(_ZThn48_N7ee317203fooEv,_ZThn24_N7ee317203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee31720[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31720[0]),
+ (VTBL_ENTRY)&_ZN7ee317203fooEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31720[0]),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee317203fooEv,_ZTv0_n16_N7ee317203fooEv),
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee31720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee317203fooEv,_ZTv0_n12_N7ee317203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee31720[];
+static VTBL_ENTRY _tg__ZTV6dd1720__7ee31720[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1720[0]),
+};
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc720__6dd1720__7ee31720[] = {
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd1720__7ee31720[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc720__7ee31720[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc720__7ee31720[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+static VTT_ENTRY vtt_ee31720[] = {
+ {&(_ZTV7ee31720[5]), 5,21},
+ {&(_ZTV7ee31720[10]), 10,21},
+ {&(_ZTV7ee31720[15]), 15,21},
+ {&(_ZTV7ee31720[20]), 20,21},
+ {&(_tg__ZTV6dd1720__7ee31720[4]), 4,4},
+ {&(_tg__ZTV5cc720__6dd1720__7ee31720[5]), 5,7},
+ {&(_tg__ZTV4bb20__6dd1720__7ee31720[3]), 3,4},
+ {&(_tg__ZTV5cc720__7ee31720[3]), 3,5},
+ {&(_tg__ZTV4bb20__5cc720__7ee31720[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee31720[];
+extern VTBL_ENTRY _ZTV7ee31720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31720[];
+static VTBL_ENTRY alt_thunk_names367[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee317203fooEv,_ZTv0_n12_N7ee317203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee317203fooEv,_ZThn24_N7ee317203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee317203fooEv,_ZTv0_n16_N7ee317203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee317203fooEv,_ZThn16_N7ee317203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31720 = { "ee31720", // class name
+ bases_ee31720, 4,
+ &(vtc_ee31720[0]), // expected_vtbl_contents
+ &(vtt_ee31720[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee31720),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31720),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31720),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names367,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee41720 : dd1720 {
+ int e;
+ virtual void bar(); // _ZN7ee417203barEv
+ ~ee41720(); // tgen
+ ee41720(); // tgen
+};
+//SIG(1 ee41720) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v2 Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee41720 ::bar(){vfunc_called(this, "_ZN7ee417203barEv");}
+ee41720 ::~ee41720(){ note_dtor("ee41720", this);} // tgen
+ee41720 ::ee41720(){ note_ctor("ee41720", this);} // tgen
+
+static void Test_ee41720()
+{
+ extern Class_Descriptor cd_ee41720;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee41720, buf);
+ ee41720 *dp, &lv = *(dp=new (buf) ee41720());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee41720)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41720)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee41720");
+ check_base_class_offset(lv, (bb20*)(cc720*), ABISELECT(32,20), "ee41720");
+ check_base_class_offset(lv, (cc720*)(dd1720*), ABISELECT(16,12), "ee41720");
+ check_base_class_offset(lv, (dd1720*), 0, "ee41720");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41720.e");
+ test_class_info(&lv, &cd_ee41720);
+ dp->~ee41720();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41720(Test_ee41720, "ee41720", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee41720C1Ev();
+extern void _ZN7ee41720D1Ev();
+Name_Map name_map_ee41720[] = {
+ NSPAIR(_ZN7ee41720C1Ev),
+ NSPAIR(_ZN7ee41720D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc720;
+extern VTBL_ENTRY _ZTI5cc720[];
+extern VTBL_ENTRY _ZTV5cc720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc720[];
+extern Class_Descriptor cd_dd1720;
+extern VTBL_ENTRY _ZTI6dd1720[];
+extern VTBL_ENTRY _ZTV6dd1720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1720[];
+static Base_Class bases_ee41720[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc720, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1720, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41720[];
+extern void _ZN7ee417203barEv();
+extern void _ZN5cc7203fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee417203barEv,_ZTv0_n20_N7ee417203barEv)();
+extern void ABISELECT(_ZThn16_N7ee417203barEv,_ZThn12_N7ee417203barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee41720[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41720[0]),
+ (VTBL_ENTRY)&_ZN7ee417203barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee417203barEv,_ZTv0_n20_N7ee417203barEv),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee41720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee41720[];
+static VTBL_ENTRY _tg__ZTV6dd1720__7ee41720[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1720[0]),
+};
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc720__6dd1720__7ee41720[] = {
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd1720__7ee41720[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc720__7ee41720[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc720__7ee41720[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+static VTT_ENTRY vtt_ee41720[] = {
+ {&(_ZTV7ee41720[4]), 4,16},
+ {&(_tg__ZTV6dd1720__7ee41720[4]), 4,4},
+ {&(_tg__ZTV5cc720__6dd1720__7ee41720[5]), 5,7},
+ {&(_tg__ZTV4bb20__6dd1720__7ee41720[3]), 3,4},
+ {&(_ZTV7ee41720[10]), 10,16},
+ {&(_ZTV7ee41720[15]), 15,16},
+ {&(_tg__ZTV5cc720__7ee41720[3]), 3,5},
+ {&(_tg__ZTV4bb20__5cc720__7ee41720[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee41720[];
+extern VTBL_ENTRY _ZTV7ee41720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41720[];
+static VTBL_ENTRY alt_thunk_names368[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee417203barEv,_ZTv0_n20_N7ee417203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee417203barEv,_ZThn12_N7ee417203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41720 = { "ee41720", // class name
+ bases_ee41720, 4,
+ &(vtc_ee41720[0]), // expected_vtbl_contents
+ &(vtt_ee41720[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee41720),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41720),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41720),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names368,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee51720 : virtual dd1720 {
+ int e;
+ virtual void bar(); // _ZN7ee517203barEv
+ ~ee51720(); // tgen
+ ee51720(); // tgen
+};
+//SIG(1 ee51720) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v2 Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee51720 ::bar(){vfunc_called(this, "_ZN7ee517203barEv");}
+ee51720 ::~ee51720(){ note_dtor("ee51720", this);} // tgen
+ee51720 ::ee51720(){ note_ctor("ee51720", this);} // tgen
+
+static void Test_ee51720()
+{
+ extern Class_Descriptor cd_ee51720;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee51720, buf);
+ ee51720 *dp, &lv = *(dp=new (buf) ee51720());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee51720)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51720)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(56,28), "ee51720");
+ check_base_class_offset(lv, (bb20*)(cc720*), ABISELECT(48,24), "ee51720");
+ check_base_class_offset(lv, (cc720*)(dd1720*), ABISELECT(32,16), "ee51720");
+ check_base_class_offset(lv, (dd1720*), ABISELECT(16,8), "ee51720");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51720.e");
+ test_class_info(&lv, &cd_ee51720);
+ dp->~ee51720();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51720(Test_ee51720, "ee51720", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee51720C1Ev();
+extern void _ZN7ee51720D1Ev();
+Name_Map name_map_ee51720[] = {
+ NSPAIR(_ZN7ee51720C1Ev),
+ NSPAIR(_ZN7ee51720D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc720;
+extern VTBL_ENTRY _ZTI5cc720[];
+extern VTBL_ENTRY _ZTV5cc720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc720[];
+extern Class_Descriptor cd_dd1720;
+extern VTBL_ENTRY _ZTI6dd1720[];
+extern VTBL_ENTRY _ZTV6dd1720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1720[];
+static Base_Class bases_ee51720[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(56,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc720, 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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1720, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee51720[];
+extern void _ZN7ee517203barEv();
+extern void _ZN5cc7203fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee517203barEv,_ZTv0_n20_N7ee517203barEv)();
+extern void ABISELECT(_ZThn32_N7ee517203barEv,_ZThn16_N7ee517203barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee51720[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51720[0]),
+ (VTBL_ENTRY)&_ZN7ee517203barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51720[0]),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee517203barEv,_ZTv0_n20_N7ee517203barEv),
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee51720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee51720[];
+static VTBL_ENTRY _tg__ZTV6dd1720__7ee51720[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1720[0]),
+};
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc720__6dd1720__7ee51720[] = {
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd1720__7ee51720[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc720__7ee51720[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc720__7ee51720[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+static VTT_ENTRY vtt_ee51720[] = {
+ {&(_ZTV7ee51720[5]), 5,21},
+ {&(_ZTV7ee51720[10]), 10,21},
+ {&(_ZTV7ee51720[15]), 15,21},
+ {&(_ZTV7ee51720[20]), 20,21},
+ {&(_tg__ZTV6dd1720__7ee51720[4]), 4,4},
+ {&(_tg__ZTV5cc720__6dd1720__7ee51720[5]), 5,7},
+ {&(_tg__ZTV4bb20__6dd1720__7ee51720[3]), 3,4},
+ {&(_tg__ZTV5cc720__7ee51720[3]), 3,5},
+ {&(_tg__ZTV4bb20__5cc720__7ee51720[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee51720[];
+extern VTBL_ENTRY _ZTV7ee51720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51720[];
+static VTBL_ENTRY alt_thunk_names369[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee517203barEv,_ZTv0_n20_N7ee517203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee517203barEv,_ZThn16_N7ee517203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51720 = { "ee51720", // class name
+ bases_ee51720, 4,
+ &(vtc_ee51720[0]), // expected_vtbl_contents
+ &(vtt_ee51720[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee51720),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51720),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51720),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names369,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee61720 : dd1720 {
+ int e;
+ virtual void foo(); // _ZN7ee617203fooEv
+ virtual void bar(); // _ZN7ee617203barEv
+ ~ee61720(); // tgen
+ ee61720(); // tgen
+};
+//SIG(1 ee61720) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v1 Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee61720 ::foo(){vfunc_called(this, "_ZN7ee617203fooEv");}
+void ee61720 ::bar(){vfunc_called(this, "_ZN7ee617203barEv");}
+ee61720 ::~ee61720(){ note_dtor("ee61720", this);} // tgen
+ee61720 ::ee61720(){ note_ctor("ee61720", this);} // tgen
+
+static void Test_ee61720()
+{
+ extern Class_Descriptor cd_ee61720;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee61720, buf);
+ ee61720 *dp, &lv = *(dp=new (buf) ee61720());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee61720)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61720)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee61720");
+ check_base_class_offset(lv, (bb20*)(cc720*), ABISELECT(32,20), "ee61720");
+ check_base_class_offset(lv, (cc720*)(dd1720*), ABISELECT(16,12), "ee61720");
+ check_base_class_offset(lv, (dd1720*), 0, "ee61720");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61720.e");
+ test_class_info(&lv, &cd_ee61720);
+ dp->~ee61720();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61720(Test_ee61720, "ee61720", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee61720C1Ev();
+extern void _ZN7ee61720D1Ev();
+Name_Map name_map_ee61720[] = {
+ NSPAIR(_ZN7ee61720C1Ev),
+ NSPAIR(_ZN7ee61720D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc720;
+extern VTBL_ENTRY _ZTI5cc720[];
+extern VTBL_ENTRY _ZTV5cc720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc720[];
+extern Class_Descriptor cd_dd1720;
+extern VTBL_ENTRY _ZTI6dd1720[];
+extern VTBL_ENTRY _ZTV6dd1720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1720[];
+static Base_Class bases_ee61720[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc720, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1720, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61720[];
+extern void _ZN7ee617203fooEv();
+extern void _ZN7ee617203barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee617203fooEv,_ZTv0_n16_N7ee617203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee617203fooEv,_ZThn12_N7ee617203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee617203barEv,_ZTv0_n20_N7ee617203barEv)();
+extern void ABISELECT(_ZThn16_N7ee617203barEv,_ZThn12_N7ee617203barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee617203fooEv,_ZTv0_n12_N7ee617203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee617203fooEv,_ZThn20_N7ee617203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61720[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61720[0]),
+ (VTBL_ENTRY)&_ZN7ee617203fooEv,
+ (VTBL_ENTRY)&_ZN7ee617203barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee617203fooEv,_ZTv0_n16_N7ee617203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee617203barEv,_ZTv0_n20_N7ee617203barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee61720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee617203fooEv,_ZTv0_n12_N7ee617203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee61720[];
+static VTBL_ENTRY _tg__ZTV6dd1720__7ee61720[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1720[0]),
+};
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc720__6dd1720__7ee61720[] = {
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd1720__7ee61720[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc720__7ee61720[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc720__7ee61720[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+static VTT_ENTRY vtt_ee61720[] = {
+ {&(_ZTV7ee61720[4]), 4,17},
+ {&(_tg__ZTV6dd1720__7ee61720[4]), 4,4},
+ {&(_tg__ZTV5cc720__6dd1720__7ee61720[5]), 5,7},
+ {&(_tg__ZTV4bb20__6dd1720__7ee61720[3]), 3,4},
+ {&(_ZTV7ee61720[11]), 11,17},
+ {&(_ZTV7ee61720[16]), 16,17},
+ {&(_tg__ZTV5cc720__7ee61720[3]), 3,5},
+ {&(_tg__ZTV4bb20__5cc720__7ee61720[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee61720[];
+extern VTBL_ENTRY _ZTV7ee61720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61720[];
+static VTBL_ENTRY alt_thunk_names370[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee617203fooEv,_ZTv0_n12_N7ee617203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee617203fooEv,_ZThn20_N7ee617203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee617203barEv,_ZTv0_n20_N7ee617203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee617203barEv,_ZThn12_N7ee617203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee617203fooEv,_ZTv0_n16_N7ee617203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee617203fooEv,_ZThn12_N7ee617203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61720 = { "ee61720", // class name
+ bases_ee61720, 4,
+ &(vtc_ee61720[0]), // expected_vtbl_contents
+ &(vtt_ee61720[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee61720),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61720),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61720),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names370,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee71720 : virtual dd1720 {
+ int e;
+ virtual void foo(); // _ZN7ee717203fooEv
+ virtual void bar(); // _ZN7ee717203barEv
+ ~ee71720(); // tgen
+ ee71720(); // tgen
+};
+//SIG(1 ee71720) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v1 Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee71720 ::foo(){vfunc_called(this, "_ZN7ee717203fooEv");}
+void ee71720 ::bar(){vfunc_called(this, "_ZN7ee717203barEv");}
+ee71720 ::~ee71720(){ note_dtor("ee71720", this);} // tgen
+ee71720 ::ee71720(){ note_ctor("ee71720", this);} // tgen
+
+static void Test_ee71720()
+{
+ extern Class_Descriptor cd_ee71720;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee71720, buf);
+ ee71720 *dp, &lv = *(dp=new (buf) ee71720());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee71720)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71720)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(56,28), "ee71720");
+ check_base_class_offset(lv, (bb20*)(cc720*), ABISELECT(48,24), "ee71720");
+ check_base_class_offset(lv, (cc720*)(dd1720*), ABISELECT(32,16), "ee71720");
+ check_base_class_offset(lv, (dd1720*), ABISELECT(16,8), "ee71720");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71720.e");
+ test_class_info(&lv, &cd_ee71720);
+ dp->~ee71720();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71720(Test_ee71720, "ee71720", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee71720C1Ev();
+extern void _ZN7ee71720D1Ev();
+Name_Map name_map_ee71720[] = {
+ NSPAIR(_ZN7ee71720C1Ev),
+ NSPAIR(_ZN7ee71720D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc720;
+extern VTBL_ENTRY _ZTI5cc720[];
+extern VTBL_ENTRY _ZTV5cc720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc720[];
+extern Class_Descriptor cd_dd1720;
+extern VTBL_ENTRY _ZTI6dd1720[];
+extern VTBL_ENTRY _ZTV6dd1720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1720[];
+static Base_Class bases_ee71720[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(56,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc720, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1720, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee71720[];
+extern void _ZN7ee717203fooEv();
+extern void _ZN7ee717203barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee717203fooEv,_ZTv0_n16_N7ee717203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee717203fooEv,_ZThn16_N7ee717203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee717203barEv,_ZTv0_n20_N7ee717203barEv)();
+extern void ABISELECT(_ZThn32_N7ee717203barEv,_ZThn16_N7ee717203barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee717203fooEv,_ZTv0_n12_N7ee717203fooEv)();
+extern void ABISELECT(_ZThn48_N7ee717203fooEv,_ZThn24_N7ee717203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71720[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71720[0]),
+ (VTBL_ENTRY)&_ZN7ee717203fooEv,
+ (VTBL_ENTRY)&_ZN7ee717203barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71720[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee717203fooEv,_ZTv0_n16_N7ee717203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee717203barEv,_ZTv0_n20_N7ee717203barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee71720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee717203fooEv,_ZTv0_n12_N7ee717203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee71720[];
+static VTBL_ENTRY _tg__ZTV6dd1720__7ee71720[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1720[0]),
+};
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc720__6dd1720__7ee71720[] = {
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd1720__7ee71720[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc720__7ee71720[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc720__7ee71720[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+static VTT_ENTRY vtt_ee71720[] = {
+ {&(_ZTV7ee71720[5]), 5,22},
+ {&(_ZTV7ee71720[11]), 11,22},
+ {&(_ZTV7ee71720[16]), 16,22},
+ {&(_ZTV7ee71720[21]), 21,22},
+ {&(_tg__ZTV6dd1720__7ee71720[4]), 4,4},
+ {&(_tg__ZTV5cc720__6dd1720__7ee71720[5]), 5,7},
+ {&(_tg__ZTV4bb20__6dd1720__7ee71720[3]), 3,4},
+ {&(_tg__ZTV5cc720__7ee71720[3]), 3,5},
+ {&(_tg__ZTV4bb20__5cc720__7ee71720[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee71720[];
+extern VTBL_ENTRY _ZTV7ee71720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71720[];
+static VTBL_ENTRY alt_thunk_names371[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee717203fooEv,_ZTv0_n12_N7ee717203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee717203fooEv,_ZThn24_N7ee717203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee717203barEv,_ZTv0_n20_N7ee717203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee717203barEv,_ZThn16_N7ee717203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee717203fooEv,_ZTv0_n16_N7ee717203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee717203fooEv,_ZThn16_N7ee717203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71720 = { "ee71720", // class name
+ bases_ee71720, 4,
+ &(vtc_ee71720[0]), // expected_vtbl_contents
+ &(vtt_ee71720[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee71720),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71720),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71720),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names371,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd2720 : cc720 {
+ int d;
+ virtual void foo(); // _ZN6dd27203fooEv
+ ~dd2720(); // tgen
+ dd2720(); // tgen
+};
+//SIG(-1 dd2720) C1{ BC2{ VBC3{ BC4{ Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void dd2720 ::foo(){vfunc_called(this, "_ZN6dd27203fooEv");}
+dd2720 ::~dd2720(){ note_dtor("dd2720", this);} // tgen
+dd2720 ::dd2720(){ note_ctor("dd2720", this);} // tgen
+
+static void Test_dd2720()
+{
+ extern Class_Descriptor cd_dd2720;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd2720, buf);
+ dd2720 *dp, &lv = *(dp=new (buf) dd2720());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd2720)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2720)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(24,16), "dd2720");
+ check_base_class_offset(lv, (bb20*)(cc720*), ABISELECT(16,12), "dd2720");
+ check_base_class_offset(lv, (cc720*), 0, "dd2720");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd2720.d");
+ test_class_info(&lv, &cd_dd2720);
+ dp->~dd2720();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2720(Test_dd2720, "dd2720", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd2720C1Ev();
+extern void _ZN6dd2720D1Ev();
+Name_Map name_map_dd2720[] = {
+ NSPAIR(_ZN6dd2720C1Ev),
+ NSPAIR(_ZN6dd2720D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc720;
+extern VTBL_ENTRY _ZTI5cc720[];
+extern VTBL_ENTRY _ZTV5cc720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc720[];
+static Base_Class bases_dd2720[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc720, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd2720[];
+extern void _ZN6dd27203fooEv();
+extern void _ZN5cc7203barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd27203fooEv,_ZTv0_n12_N6dd27203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd27203fooEv,_ZThn12_N6dd27203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd2720[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2720[0]),
+ (VTBL_ENTRY)&_ZN6dd27203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27203fooEv,_ZTv0_n12_N6dd27203fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd2720[];
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc720__6dd2720[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn12_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc720__6dd2720[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+static VTT_ENTRY vtt_dd2720[] = {
+ {&(_ZTV6dd2720[3]), 3,9},
+ {&(_tg__ZTV5cc720__6dd2720[3]), 3,5},
+ {&(_tg__ZTV4bb20__5cc720__6dd2720[3]), 3,4},
+ {&(_ZTV6dd2720[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI6dd2720[];
+extern VTBL_ENTRY _ZTV6dd2720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2720[];
+static VTBL_ENTRY alt_thunk_names372[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn12_N5cc7203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27203fooEv,_ZTv0_n12_N6dd27203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd27203fooEv,_ZThn12_N6dd27203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd2720 = { "dd2720", // class name
+ bases_dd2720, 3,
+ &(vtc_dd2720[0]), // expected_vtbl_contents
+ &(vtt_dd2720[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd2720),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2720),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd2720),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names372,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee02720 : dd2720 {
+ int e;
+ ~ee02720(); // tgen
+ ee02720(); // tgen
+};
+//SIG(1 ee02720) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v1 Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee02720 ::~ee02720(){ note_dtor("ee02720", this);} // tgen
+ee02720 ::ee02720(){ note_ctor("ee02720", this);} // tgen
+
+static void Test_ee02720()
+{
+ extern Class_Descriptor cd_ee02720;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee02720, buf);
+ ee02720 *dp, &lv = *(dp=new (buf) ee02720());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee02720)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02720)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(32,20), "ee02720");
+ check_base_class_offset(lv, (bb20*)(cc720*)(dd2720*), ABISELECT(24,16), "ee02720");
+ check_base_class_offset(lv, (cc720*)(dd2720*), 0, "ee02720");
+ check_base_class_offset(lv, (dd2720*), 0, "ee02720");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee02720.e");
+ test_class_info(&lv, &cd_ee02720);
+ dp->~ee02720();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02720(Test_ee02720, "ee02720", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee02720C1Ev();
+extern void _ZN7ee02720D1Ev();
+Name_Map name_map_ee02720[] = {
+ NSPAIR(_ZN7ee02720C1Ev),
+ NSPAIR(_ZN7ee02720D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc720;
+extern VTBL_ENTRY _ZTI5cc720[];
+extern VTBL_ENTRY _ZTV5cc720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc720[];
+extern Class_Descriptor cd_dd2720;
+extern VTBL_ENTRY _ZTI6dd2720[];
+extern VTBL_ENTRY _ZTV6dd2720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2720[];
+static Base_Class bases_ee02720[] = {
+ // 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_bb20, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc720, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2720, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee02720[];
+extern void _ZN6dd27203fooEv();
+extern void _ZN5cc7203barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd27203fooEv,_ZTv0_n12_N6dd27203fooEv)();
+extern void ABISELECT(_ZThn24_N6dd27203fooEv,_ZThn16_N6dd27203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee02720[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02720[0]),
+ (VTBL_ENTRY)&_ZN6dd27203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee02720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27203fooEv,_ZTv0_n12_N6dd27203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee02720[];
+extern void _ZN6dd27203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV6dd2720__7ee02720[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2720[0]),
+ (VTBL_ENTRY)&_ZN6dd27203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc7206dd2720__7ee02720[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7203fooEv,_ZThn16_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc7206dd2720__7ee02720[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd27203fooEv,_ZTv0_n12_N6dd27203fooEv)();
+extern void ABISELECT(_ZThn24_N6dd27203fooEv,_ZThn16_N6dd27203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd2720__7ee02720[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27203fooEv,_ZTv0_n12_N6dd27203fooEv),
+};
+static VTT_ENTRY vtt_ee02720[] = {
+ {&(_ZTV7ee02720[3]), 3,9},
+ {&(_tg__ZTV6dd2720__7ee02720[3]), 3,5},
+ {&(_tg__ZTV5cc7206dd2720__7ee02720[3]), 3,5},
+ {&(_tg__ZTV4bb20__5cc7206dd2720__7ee02720[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd2720__7ee02720[3]), 3,4},
+ {&(_ZTV7ee02720[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee02720[];
+extern VTBL_ENTRY _ZTV7ee02720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee02720[];
+static VTBL_ENTRY alt_thunk_names373[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7203fooEv,_ZThn16_N5cc7203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27203fooEv,_ZTv0_n12_N6dd27203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd27203fooEv,_ZThn16_N6dd27203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd27203fooEv,_ZThn16_N6dd27203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee02720 = { "ee02720", // class name
+ bases_ee02720, 4,
+ &(vtc_ee02720[0]), // expected_vtbl_contents
+ &(vtt_ee02720[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee02720),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02720),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee02720),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names373,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee12720 : virtual dd2720 {
+ int e;
+ ~ee12720(); // tgen
+ ee12720(); // tgen
+};
+//SIG(1 ee12720) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v1 Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee12720 ::~ee12720(){ note_dtor("ee12720", this);} // tgen
+ee12720 ::ee12720(){ note_ctor("ee12720", this);} // tgen
+
+static void Test_ee12720()
+{
+ extern Class_Descriptor cd_ee12720;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee12720, buf);
+ ee12720 *dp, &lv = *(dp=new (buf) ee12720());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee12720)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12720)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee12720");
+ check_base_class_offset(lv, (bb20*)(cc720*)(dd2720*), ABISELECT(32,20), "ee12720");
+ check_base_class_offset(lv, (cc720*)(dd2720*), ABISELECT(16,8), "ee12720");
+ check_base_class_offset(lv, (dd2720*), ABISELECT(16,8), "ee12720");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12720.e");
+ test_class_info(&lv, &cd_ee12720);
+ dp->~ee12720();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12720(Test_ee12720, "ee12720", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee12720C1Ev();
+extern void _ZN7ee12720D1Ev();
+Name_Map name_map_ee12720[] = {
+ NSPAIR(_ZN7ee12720C1Ev),
+ NSPAIR(_ZN7ee12720D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc720;
+extern VTBL_ENTRY _ZTI5cc720[];
+extern VTBL_ENTRY _ZTV5cc720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc720[];
+extern Class_Descriptor cd_dd2720;
+extern VTBL_ENTRY _ZTI6dd2720[];
+extern VTBL_ENTRY _ZTV6dd2720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2720[];
+static Base_Class bases_ee12720[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc720, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2720, 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 _ZTI7ee12720[];
+extern void _ZN6dd27203fooEv();
+extern void _ZN5cc7203barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd27203fooEv,_ZTv0_n12_N6dd27203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd27203fooEv,_ZThn12_N6dd27203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee12720[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12720[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12720[0]),
+ (VTBL_ENTRY)&_ZN6dd27203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee12720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27203fooEv,_ZTv0_n12_N6dd27203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee12720[];
+extern void _ZN6dd27203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV6dd2720__7ee12720[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2720[0]),
+ (VTBL_ENTRY)&_ZN6dd27203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc7206dd2720__7ee12720[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn12_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc7206dd2720__7ee12720[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd27203fooEv,_ZTv0_n12_N6dd27203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd27203fooEv,_ZThn12_N6dd27203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd2720__7ee12720[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27203fooEv,_ZTv0_n12_N6dd27203fooEv),
+};
+static VTT_ENTRY vtt_ee12720[] = {
+ {&(_ZTV7ee12720[4]), 4,15},
+ {&(_ZTV7ee12720[9]), 9,15},
+ {&(_ZTV7ee12720[14]), 14,15},
+ {&(_tg__ZTV6dd2720__7ee12720[3]), 3,5},
+ {&(_tg__ZTV5cc7206dd2720__7ee12720[3]), 3,5},
+ {&(_tg__ZTV4bb20__5cc7206dd2720__7ee12720[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd2720__7ee12720[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee12720[];
+extern VTBL_ENTRY _ZTV7ee12720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12720[];
+static VTBL_ENTRY alt_thunk_names374[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn12_N5cc7203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27203fooEv,_ZTv0_n12_N6dd27203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd27203fooEv,_ZThn12_N6dd27203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd27203fooEv,_ZThn12_N6dd27203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee12720 = { "ee12720", // class name
+ bases_ee12720, 4,
+ &(vtc_ee12720[0]), // expected_vtbl_contents
+ &(vtt_ee12720[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee12720),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12720),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12720),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names374,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee22720 : dd2720 {
+ int e;
+ virtual void foo(); // _ZN7ee227203fooEv
+ ~ee22720(); // tgen
+ ee22720(); // tgen
+};
+//SIG(1 ee22720) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v1 Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee22720 ::foo(){vfunc_called(this, "_ZN7ee227203fooEv");}
+ee22720 ::~ee22720(){ note_dtor("ee22720", this);} // tgen
+ee22720 ::ee22720(){ note_ctor("ee22720", this);} // tgen
+
+static void Test_ee22720()
+{
+ extern Class_Descriptor cd_ee22720;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee22720, buf);
+ ee22720 *dp, &lv = *(dp=new (buf) ee22720());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee22720)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22720)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(32,20), "ee22720");
+ check_base_class_offset(lv, (bb20*)(cc720*)(dd2720*), ABISELECT(24,16), "ee22720");
+ check_base_class_offset(lv, (cc720*)(dd2720*), 0, "ee22720");
+ check_base_class_offset(lv, (dd2720*), 0, "ee22720");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee22720.e");
+ test_class_info(&lv, &cd_ee22720);
+ dp->~ee22720();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22720(Test_ee22720, "ee22720", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee22720C1Ev();
+extern void _ZN7ee22720D1Ev();
+Name_Map name_map_ee22720[] = {
+ NSPAIR(_ZN7ee22720C1Ev),
+ NSPAIR(_ZN7ee22720D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc720;
+extern VTBL_ENTRY _ZTI5cc720[];
+extern VTBL_ENTRY _ZTV5cc720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc720[];
+extern Class_Descriptor cd_dd2720;
+extern VTBL_ENTRY _ZTI6dd2720[];
+extern VTBL_ENTRY _ZTV6dd2720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2720[];
+static Base_Class bases_ee22720[] = {
+ // 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_bb20, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc720, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2720, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee22720[];
+extern void _ZN7ee227203fooEv();
+extern void _ZN5cc7203barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee227203fooEv,_ZTv0_n12_N7ee227203fooEv)();
+extern void ABISELECT(_ZThn24_N7ee227203fooEv,_ZThn16_N7ee227203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee22720[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22720[0]),
+ (VTBL_ENTRY)&_ZN7ee227203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee22720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee227203fooEv,_ZTv0_n12_N7ee227203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee22720[];
+extern void _ZN6dd27203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV6dd2720__7ee22720[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2720[0]),
+ (VTBL_ENTRY)&_ZN6dd27203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc7206dd2720__7ee22720[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7203fooEv,_ZThn16_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc7206dd2720__7ee22720[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd27203fooEv,_ZTv0_n12_N6dd27203fooEv)();
+extern void ABISELECT(_ZThn24_N6dd27203fooEv,_ZThn16_N6dd27203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd2720__7ee22720[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27203fooEv,_ZTv0_n12_N6dd27203fooEv),
+};
+static VTT_ENTRY vtt_ee22720[] = {
+ {&(_ZTV7ee22720[3]), 3,9},
+ {&(_tg__ZTV6dd2720__7ee22720[3]), 3,5},
+ {&(_tg__ZTV5cc7206dd2720__7ee22720[3]), 3,5},
+ {&(_tg__ZTV4bb20__5cc7206dd2720__7ee22720[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd2720__7ee22720[3]), 3,4},
+ {&(_ZTV7ee22720[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee22720[];
+extern VTBL_ENTRY _ZTV7ee22720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee22720[];
+static VTBL_ENTRY alt_thunk_names375[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27203fooEv,_ZTv0_n12_N6dd27203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd27203fooEv,_ZThn16_N6dd27203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7203fooEv,_ZThn16_N5cc7203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee227203fooEv,_ZTv0_n12_N7ee227203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee227203fooEv,_ZThn16_N7ee227203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee22720 = { "ee22720", // class name
+ bases_ee22720, 4,
+ &(vtc_ee22720[0]), // expected_vtbl_contents
+ &(vtt_ee22720[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee22720),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22720),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee22720),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names375,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee32720 : virtual dd2720 {
+ int e;
+ virtual void foo(); // _ZN7ee327203fooEv
+ ~ee32720(); // tgen
+ ee32720(); // tgen
+};
+//SIG(1 ee32720) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v1 Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee32720 ::foo(){vfunc_called(this, "_ZN7ee327203fooEv");}
+ee32720 ::~ee32720(){ note_dtor("ee32720", this);} // tgen
+ee32720 ::ee32720(){ note_ctor("ee32720", this);} // tgen
+
+static void Test_ee32720()
+{
+ extern Class_Descriptor cd_ee32720;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee32720, buf);
+ ee32720 *dp, &lv = *(dp=new (buf) ee32720());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee32720)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32720)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee32720");
+ check_base_class_offset(lv, (bb20*)(cc720*)(dd2720*), ABISELECT(32,20), "ee32720");
+ check_base_class_offset(lv, (cc720*)(dd2720*), ABISELECT(16,8), "ee32720");
+ check_base_class_offset(lv, (dd2720*), ABISELECT(16,8), "ee32720");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32720.e");
+ test_class_info(&lv, &cd_ee32720);
+ dp->~ee32720();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32720(Test_ee32720, "ee32720", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee32720C1Ev();
+extern void _ZN7ee32720D1Ev();
+Name_Map name_map_ee32720[] = {
+ NSPAIR(_ZN7ee32720C1Ev),
+ NSPAIR(_ZN7ee32720D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc720;
+extern VTBL_ENTRY _ZTI5cc720[];
+extern VTBL_ENTRY _ZTV5cc720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc720[];
+extern Class_Descriptor cd_dd2720;
+extern VTBL_ENTRY _ZTI6dd2720[];
+extern VTBL_ENTRY _ZTV6dd2720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2720[];
+static Base_Class bases_ee32720[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc720, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2720, 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 _ZTI7ee32720[];
+extern void _ZN7ee327203fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee327203fooEv,_ZTv0_n16_N7ee327203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee327203fooEv,_ZThn8_N7ee327203fooEv)() __attribute__((weak));
+extern void _ZN5cc7203barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee327203fooEv,_ZTv0_n12_N7ee327203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee327203fooEv,_ZThn20_N7ee327203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee32720[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32720[0]),
+ (VTBL_ENTRY)&_ZN7ee327203fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee327203fooEv,_ZTv0_n16_N7ee327203fooEv),
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee32720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee327203fooEv,_ZTv0_n12_N7ee327203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee32720[];
+extern void _ZN6dd27203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV6dd2720__7ee32720[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2720[0]),
+ (VTBL_ENTRY)&_ZN6dd27203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc7206dd2720__7ee32720[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn12_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc7206dd2720__7ee32720[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd27203fooEv,_ZTv0_n12_N6dd27203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd27203fooEv,_ZThn12_N6dd27203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd2720__7ee32720[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27203fooEv,_ZTv0_n12_N6dd27203fooEv),
+};
+static VTT_ENTRY vtt_ee32720[] = {
+ {&(_ZTV7ee32720[4]), 4,16},
+ {&(_ZTV7ee32720[10]), 10,16},
+ {&(_ZTV7ee32720[15]), 15,16},
+ {&(_tg__ZTV6dd2720__7ee32720[3]), 3,5},
+ {&(_tg__ZTV5cc7206dd2720__7ee32720[3]), 3,5},
+ {&(_tg__ZTV4bb20__5cc7206dd2720__7ee32720[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd2720__7ee32720[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee32720[];
+extern VTBL_ENTRY _ZTV7ee32720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32720[];
+static VTBL_ENTRY alt_thunk_names376[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27203fooEv,_ZTv0_n12_N6dd27203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd27203fooEv,_ZThn12_N6dd27203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn12_N5cc7203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee327203fooEv,_ZTv0_n12_N7ee327203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee327203fooEv,_ZThn20_N7ee327203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee327203fooEv,_ZTv0_n16_N7ee327203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee327203fooEv,_ZThn8_N7ee327203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32720 = { "ee32720", // class name
+ bases_ee32720, 4,
+ &(vtc_ee32720[0]), // expected_vtbl_contents
+ &(vtt_ee32720[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee32720),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32720),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32720),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names376,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee42720 : dd2720 {
+ int e;
+ virtual void bar(); // _ZN7ee427203barEv
+ ~ee42720(); // tgen
+ ee42720(); // tgen
+};
+//SIG(1 ee42720) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v2 Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee42720 ::bar(){vfunc_called(this, "_ZN7ee427203barEv");}
+ee42720 ::~ee42720(){ note_dtor("ee42720", this);} // tgen
+ee42720 ::ee42720(){ note_ctor("ee42720", this);} // tgen
+
+static void Test_ee42720()
+{
+ extern Class_Descriptor cd_ee42720;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee42720, buf);
+ ee42720 *dp, &lv = *(dp=new (buf) ee42720());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee42720)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42720)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(32,20), "ee42720");
+ check_base_class_offset(lv, (bb20*)(cc720*)(dd2720*), ABISELECT(24,16), "ee42720");
+ check_base_class_offset(lv, (cc720*)(dd2720*), 0, "ee42720");
+ check_base_class_offset(lv, (dd2720*), 0, "ee42720");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee42720.e");
+ test_class_info(&lv, &cd_ee42720);
+ dp->~ee42720();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42720(Test_ee42720, "ee42720", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee42720C1Ev();
+extern void _ZN7ee42720D1Ev();
+Name_Map name_map_ee42720[] = {
+ NSPAIR(_ZN7ee42720C1Ev),
+ NSPAIR(_ZN7ee42720D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc720;
+extern VTBL_ENTRY _ZTI5cc720[];
+extern VTBL_ENTRY _ZTV5cc720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc720[];
+extern Class_Descriptor cd_dd2720;
+extern VTBL_ENTRY _ZTI6dd2720[];
+extern VTBL_ENTRY _ZTV6dd2720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2720[];
+static Base_Class bases_ee42720[] = {
+ // 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_bb20, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc720, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2720, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee42720[];
+extern void _ZN6dd27203fooEv();
+extern void _ZN7ee427203barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd27203fooEv,_ZTv0_n12_N6dd27203fooEv)();
+extern void ABISELECT(_ZThn24_N6dd27203fooEv,_ZThn16_N6dd27203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee42720[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42720[0]),
+ (VTBL_ENTRY)&_ZN6dd27203fooEv,
+ (VTBL_ENTRY)&_ZN7ee427203barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee42720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27203fooEv,_ZTv0_n12_N6dd27203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee42720[];
+extern void _ZN6dd27203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV6dd2720__7ee42720[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2720[0]),
+ (VTBL_ENTRY)&_ZN6dd27203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc7206dd2720__7ee42720[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7203fooEv,_ZThn16_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc7206dd2720__7ee42720[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd27203fooEv,_ZTv0_n12_N6dd27203fooEv)();
+extern void ABISELECT(_ZThn24_N6dd27203fooEv,_ZThn16_N6dd27203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd2720__7ee42720[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27203fooEv,_ZTv0_n12_N6dd27203fooEv),
+};
+static VTT_ENTRY vtt_ee42720[] = {
+ {&(_ZTV7ee42720[3]), 3,9},
+ {&(_tg__ZTV6dd2720__7ee42720[3]), 3,5},
+ {&(_tg__ZTV5cc7206dd2720__7ee42720[3]), 3,5},
+ {&(_tg__ZTV4bb20__5cc7206dd2720__7ee42720[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd2720__7ee42720[3]), 3,4},
+ {&(_ZTV7ee42720[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee42720[];
+extern VTBL_ENTRY _ZTV7ee42720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee42720[];
+static VTBL_ENTRY alt_thunk_names377[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7203fooEv,_ZThn16_N5cc7203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27203fooEv,_ZTv0_n12_N6dd27203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd27203fooEv,_ZThn16_N6dd27203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd27203fooEv,_ZThn16_N6dd27203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee42720 = { "ee42720", // class name
+ bases_ee42720, 4,
+ &(vtc_ee42720[0]), // expected_vtbl_contents
+ &(vtt_ee42720[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee42720),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42720),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee42720),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names377,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee52720 : virtual dd2720 {
+ int e;
+ virtual void bar(); // _ZN7ee527203barEv
+ ~ee52720(); // tgen
+ ee52720(); // tgen
+};
+//SIG(1 ee52720) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v2 Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee52720 ::bar(){vfunc_called(this, "_ZN7ee527203barEv");}
+ee52720 ::~ee52720(){ note_dtor("ee52720", this);} // tgen
+ee52720 ::ee52720(){ note_ctor("ee52720", this);} // tgen
+
+static void Test_ee52720()
+{
+ extern Class_Descriptor cd_ee52720;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee52720, buf);
+ ee52720 *dp, &lv = *(dp=new (buf) ee52720());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee52720)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52720)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee52720");
+ check_base_class_offset(lv, (bb20*)(cc720*)(dd2720*), ABISELECT(32,20), "ee52720");
+ check_base_class_offset(lv, (cc720*)(dd2720*), ABISELECT(16,8), "ee52720");
+ check_base_class_offset(lv, (dd2720*), ABISELECT(16,8), "ee52720");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52720.e");
+ test_class_info(&lv, &cd_ee52720);
+ dp->~ee52720();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52720(Test_ee52720, "ee52720", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee52720C1Ev();
+extern void _ZN7ee52720D1Ev();
+Name_Map name_map_ee52720[] = {
+ NSPAIR(_ZN7ee52720C1Ev),
+ NSPAIR(_ZN7ee52720D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc720;
+extern VTBL_ENTRY _ZTI5cc720[];
+extern VTBL_ENTRY _ZTV5cc720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc720[];
+extern Class_Descriptor cd_dd2720;
+extern VTBL_ENTRY _ZTI6dd2720[];
+extern VTBL_ENTRY _ZTV6dd2720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2720[];
+static Base_Class bases_ee52720[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc720, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2720, 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 _ZTI7ee52720[];
+extern void _ZN7ee527203barEv();
+extern void _ZN6dd27203fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee527203barEv,_ZTv0_n20_N7ee527203barEv)();
+extern void ABISELECT(_ZThn16_N7ee527203barEv,_ZThn8_N7ee527203barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd27203fooEv,_ZTv0_n12_N6dd27203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd27203fooEv,_ZThn12_N6dd27203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee52720[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52720[0]),
+ (VTBL_ENTRY)&_ZN7ee527203barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52720[0]),
+ (VTBL_ENTRY)&_ZN6dd27203fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee527203barEv,_ZTv0_n20_N7ee527203barEv),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee52720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27203fooEv,_ZTv0_n12_N6dd27203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee52720[];
+extern void _ZN6dd27203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV6dd2720__7ee52720[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2720[0]),
+ (VTBL_ENTRY)&_ZN6dd27203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc7206dd2720__7ee52720[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn12_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc7206dd2720__7ee52720[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd27203fooEv,_ZTv0_n12_N6dd27203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd27203fooEv,_ZThn12_N6dd27203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd2720__7ee52720[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27203fooEv,_ZTv0_n12_N6dd27203fooEv),
+};
+static VTT_ENTRY vtt_ee52720[] = {
+ {&(_ZTV7ee52720[4]), 4,16},
+ {&(_ZTV7ee52720[10]), 10,16},
+ {&(_ZTV7ee52720[15]), 15,16},
+ {&(_tg__ZTV6dd2720__7ee52720[3]), 3,5},
+ {&(_tg__ZTV5cc7206dd2720__7ee52720[3]), 3,5},
+ {&(_tg__ZTV4bb20__5cc7206dd2720__7ee52720[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd2720__7ee52720[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee52720[];
+extern VTBL_ENTRY _ZTV7ee52720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52720[];
+static VTBL_ENTRY alt_thunk_names378[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn12_N5cc7203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27203fooEv,_ZTv0_n12_N6dd27203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd27203fooEv,_ZThn12_N6dd27203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd27203fooEv,_ZThn12_N6dd27203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee527203barEv,_ZTv0_n20_N7ee527203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee527203barEv,_ZThn8_N7ee527203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52720 = { "ee52720", // class name
+ bases_ee52720, 4,
+ &(vtc_ee52720[0]), // expected_vtbl_contents
+ &(vtt_ee52720[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee52720),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52720),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52720),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names378,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee62720 : dd2720 {
+ int e;
+ virtual void foo(); // _ZN7ee627203fooEv
+ virtual void bar(); // _ZN7ee627203barEv
+ ~ee62720(); // tgen
+ ee62720(); // tgen
+};
+//SIG(1 ee62720) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v1 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62720 ::foo(){vfunc_called(this, "_ZN7ee627203fooEv");}
+void ee62720 ::bar(){vfunc_called(this, "_ZN7ee627203barEv");}
+ee62720 ::~ee62720(){ note_dtor("ee62720", this);} // tgen
+ee62720 ::ee62720(){ note_ctor("ee62720", this);} // tgen
+
+static void Test_ee62720()
+{
+ extern Class_Descriptor cd_ee62720;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee62720, buf);
+ ee62720 *dp, &lv = *(dp=new (buf) ee62720());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee62720)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62720)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(32,20), "ee62720");
+ check_base_class_offset(lv, (bb20*)(cc720*)(dd2720*), ABISELECT(24,16), "ee62720");
+ check_base_class_offset(lv, (cc720*)(dd2720*), 0, "ee62720");
+ check_base_class_offset(lv, (dd2720*), 0, "ee62720");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee62720.e");
+ test_class_info(&lv, &cd_ee62720);
+ dp->~ee62720();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62720(Test_ee62720, "ee62720", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee62720C1Ev();
+extern void _ZN7ee62720D1Ev();
+Name_Map name_map_ee62720[] = {
+ NSPAIR(_ZN7ee62720C1Ev),
+ NSPAIR(_ZN7ee62720D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc720;
+extern VTBL_ENTRY _ZTI5cc720[];
+extern VTBL_ENTRY _ZTV5cc720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc720[];
+extern Class_Descriptor cd_dd2720;
+extern VTBL_ENTRY _ZTI6dd2720[];
+extern VTBL_ENTRY _ZTV6dd2720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2720[];
+static Base_Class bases_ee62720[] = {
+ // 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_bb20, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc720, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2720, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee62720[];
+extern void _ZN7ee627203fooEv();
+extern void _ZN7ee627203barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee627203fooEv,_ZTv0_n12_N7ee627203fooEv)();
+extern void ABISELECT(_ZThn24_N7ee627203fooEv,_ZThn16_N7ee627203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee62720[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62720[0]),
+ (VTBL_ENTRY)&_ZN7ee627203fooEv,
+ (VTBL_ENTRY)&_ZN7ee627203barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee62720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee627203fooEv,_ZTv0_n12_N7ee627203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee62720[];
+extern void _ZN6dd27203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV6dd2720__7ee62720[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2720[0]),
+ (VTBL_ENTRY)&_ZN6dd27203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc7206dd2720__7ee62720[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7203fooEv,_ZThn16_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc7206dd2720__7ee62720[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd27203fooEv,_ZTv0_n12_N6dd27203fooEv)();
+extern void ABISELECT(_ZThn24_N6dd27203fooEv,_ZThn16_N6dd27203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd2720__7ee62720[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27203fooEv,_ZTv0_n12_N6dd27203fooEv),
+};
+static VTT_ENTRY vtt_ee62720[] = {
+ {&(_ZTV7ee62720[3]), 3,9},
+ {&(_tg__ZTV6dd2720__7ee62720[3]), 3,5},
+ {&(_tg__ZTV5cc7206dd2720__7ee62720[3]), 3,5},
+ {&(_tg__ZTV4bb20__5cc7206dd2720__7ee62720[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd2720__7ee62720[3]), 3,4},
+ {&(_ZTV7ee62720[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee62720[];
+extern VTBL_ENTRY _ZTV7ee62720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee62720[];
+static VTBL_ENTRY alt_thunk_names379[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27203fooEv,_ZTv0_n12_N6dd27203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd27203fooEv,_ZThn16_N6dd27203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7203fooEv,_ZThn16_N5cc7203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee627203fooEv,_ZTv0_n12_N7ee627203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee627203fooEv,_ZThn16_N7ee627203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee62720 = { "ee62720", // class name
+ bases_ee62720, 4,
+ &(vtc_ee62720[0]), // expected_vtbl_contents
+ &(vtt_ee62720[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee62720),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62720),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee62720),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names379,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee72720 : virtual dd2720 {
+ int e;
+ virtual void foo(); // _ZN7ee727203fooEv
+ virtual void bar(); // _ZN7ee727203barEv
+ ~ee72720(); // tgen
+ ee72720(); // tgen
+};
+//SIG(1 ee72720) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v1 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72720 ::foo(){vfunc_called(this, "_ZN7ee727203fooEv");}
+void ee72720 ::bar(){vfunc_called(this, "_ZN7ee727203barEv");}
+ee72720 ::~ee72720(){ note_dtor("ee72720", this);} // tgen
+ee72720 ::ee72720(){ note_ctor("ee72720", this);} // tgen
+
+static void Test_ee72720()
+{
+ extern Class_Descriptor cd_ee72720;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee72720, buf);
+ ee72720 *dp, &lv = *(dp=new (buf) ee72720());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee72720)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72720)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee72720");
+ check_base_class_offset(lv, (bb20*)(cc720*)(dd2720*), ABISELECT(32,20), "ee72720");
+ check_base_class_offset(lv, (cc720*)(dd2720*), ABISELECT(16,8), "ee72720");
+ check_base_class_offset(lv, (dd2720*), ABISELECT(16,8), "ee72720");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72720.e");
+ test_class_info(&lv, &cd_ee72720);
+ dp->~ee72720();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72720(Test_ee72720, "ee72720", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee72720C1Ev();
+extern void _ZN7ee72720D1Ev();
+Name_Map name_map_ee72720[] = {
+ NSPAIR(_ZN7ee72720C1Ev),
+ NSPAIR(_ZN7ee72720D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc720;
+extern VTBL_ENTRY _ZTI5cc720[];
+extern VTBL_ENTRY _ZTV5cc720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc720[];
+extern Class_Descriptor cd_dd2720;
+extern VTBL_ENTRY _ZTI6dd2720[];
+extern VTBL_ENTRY _ZTV6dd2720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2720[];
+static Base_Class bases_ee72720[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc720, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2720, ABISELECT(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 _ZTI7ee72720[];
+extern void _ZN7ee727203fooEv();
+extern void _ZN7ee727203barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee727203fooEv,_ZTv0_n16_N7ee727203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee727203fooEv,_ZThn8_N7ee727203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee727203barEv,_ZTv0_n20_N7ee727203barEv)();
+extern void ABISELECT(_ZThn16_N7ee727203barEv,_ZThn8_N7ee727203barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee727203fooEv,_ZTv0_n12_N7ee727203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee727203fooEv,_ZThn20_N7ee727203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72720[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72720[0]),
+ (VTBL_ENTRY)&_ZN7ee727203fooEv,
+ (VTBL_ENTRY)&_ZN7ee727203barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee727203fooEv,_ZTv0_n16_N7ee727203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee727203barEv,_ZTv0_n20_N7ee727203barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee72720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee727203fooEv,_ZTv0_n12_N7ee727203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee72720[];
+extern void _ZN6dd27203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV6dd2720__7ee72720[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2720[0]),
+ (VTBL_ENTRY)&_ZN6dd27203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc7206dd2720__7ee72720[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn12_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc7206dd2720__7ee72720[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd27203fooEv,_ZTv0_n12_N6dd27203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd27203fooEv,_ZThn12_N6dd27203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd2720__7ee72720[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27203fooEv,_ZTv0_n12_N6dd27203fooEv),
+};
+static VTT_ENTRY vtt_ee72720[] = {
+ {&(_ZTV7ee72720[4]), 4,17},
+ {&(_ZTV7ee72720[11]), 11,17},
+ {&(_ZTV7ee72720[16]), 16,17},
+ {&(_tg__ZTV6dd2720__7ee72720[3]), 3,5},
+ {&(_tg__ZTV5cc7206dd2720__7ee72720[3]), 3,5},
+ {&(_tg__ZTV4bb20__5cc7206dd2720__7ee72720[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd2720__7ee72720[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee72720[];
+extern VTBL_ENTRY _ZTV7ee72720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72720[];
+static VTBL_ENTRY alt_thunk_names380[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27203fooEv,_ZTv0_n12_N6dd27203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd27203fooEv,_ZThn12_N6dd27203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn12_N5cc7203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee727203fooEv,_ZTv0_n12_N7ee727203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee727203fooEv,_ZThn20_N7ee727203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee727203barEv,_ZTv0_n20_N7ee727203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee727203barEv,_ZThn8_N7ee727203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee727203fooEv,_ZTv0_n16_N7ee727203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee727203fooEv,_ZThn8_N7ee727203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72720 = { "ee72720", // class name
+ bases_ee72720, 4,
+ &(vtc_ee72720[0]), // expected_vtbl_contents
+ &(vtt_ee72720[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee72720),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72720),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72720),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names380,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd3720 : virtual cc720 {
+ int d;
+ virtual void foo(); // _ZN6dd37203fooEv
+ ~dd3720(); // tgen
+ dd3720(); // tgen
+};
+//SIG(-1 dd3720) C1{ VBC2{ VBC3{ BC4{ Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void dd3720 ::foo(){vfunc_called(this, "_ZN6dd37203fooEv");}
+dd3720 ::~dd3720(){ note_dtor("dd3720", this);} // tgen
+dd3720 ::dd3720(){ note_ctor("dd3720", this);} // tgen
+
+static void Test_dd3720()
+{
+ extern Class_Descriptor cd_dd3720;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd3720, buf);
+ dd3720 *dp, &lv = *(dp=new (buf) dd3720());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd3720)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3720)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,20), "dd3720");
+ check_base_class_offset(lv, (bb20*)(cc720*), ABISELECT(32,16), "dd3720");
+ check_base_class_offset(lv, (cc720*), ABISELECT(16,8), "dd3720");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3720.d");
+ test_class_info(&lv, &cd_dd3720);
+ dp->~dd3720();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3720(Test_dd3720, "dd3720", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd3720C1Ev();
+extern void _ZN6dd3720D1Ev();
+Name_Map name_map_dd3720[] = {
+ NSPAIR(_ZN6dd3720C1Ev),
+ NSPAIR(_ZN6dd3720D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc720;
+extern VTBL_ENTRY _ZTI5cc720[];
+extern VTBL_ENTRY _ZTV5cc720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc720[];
+static Base_Class bases_dd3720[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc720, 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 _ZTI6dd3720[];
+extern void _ZN6dd37203fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd37203fooEv,_ZTv0_n16_N6dd37203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37203fooEv,_ZThn8_N6dd37203fooEv)() __attribute__((weak));
+extern void _ZN5cc7203barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd37203fooEv,_ZTv0_n12_N6dd37203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37203fooEv,_ZThn16_N6dd37203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd3720[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3720[0]),
+ (VTBL_ENTRY)&_ZN6dd37203fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37203fooEv,_ZTv0_n16_N6dd37203fooEv),
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37203fooEv,_ZTv0_n12_N6dd37203fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd3720[];
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc720__6dd3720[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc720__6dd3720[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+static VTT_ENTRY vtt_dd3720[] = {
+ {&(_ZTV6dd3720[4]), 4,16},
+ {&(_ZTV6dd3720[10]), 10,16},
+ {&(_ZTV6dd3720[15]), 15,16},
+ {&(_tg__ZTV5cc720__6dd3720[3]), 3,5},
+ {&(_tg__ZTV4bb20__5cc720__6dd3720[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd3720[];
+extern VTBL_ENTRY _ZTV6dd3720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3720[];
+static VTBL_ENTRY alt_thunk_names381[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37203fooEv,_ZTv0_n12_N6dd37203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37203fooEv,_ZThn16_N6dd37203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37203fooEv,_ZTv0_n16_N6dd37203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37203fooEv,_ZThn8_N6dd37203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3720 = { "dd3720", // class name
+ bases_dd3720, 3,
+ &(vtc_dd3720[0]), // expected_vtbl_contents
+ &(vtt_dd3720[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd3720),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3720),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3720),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names381,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03720 : dd3720 {
+ int e;
+ ~ee03720(); // tgen
+ ee03720(); // tgen
+};
+//SIG(1 ee03720) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v1 Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee03720 ::~ee03720(){ note_dtor("ee03720", this);} // tgen
+ee03720 ::ee03720(){ note_ctor("ee03720", this);} // tgen
+
+static void Test_ee03720()
+{
+ extern Class_Descriptor cd_ee03720;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee03720, buf);
+ ee03720 *dp, &lv = *(dp=new (buf) ee03720());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee03720)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03720)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee03720");
+ check_base_class_offset(lv, (bb20*)(cc720*), ABISELECT(32,20), "ee03720");
+ check_base_class_offset(lv, (cc720*)(dd3720*), ABISELECT(16,12), "ee03720");
+ check_base_class_offset(lv, (dd3720*), 0, "ee03720");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03720.e");
+ test_class_info(&lv, &cd_ee03720);
+ dp->~ee03720();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03720(Test_ee03720, "ee03720", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee03720C1Ev();
+extern void _ZN7ee03720D1Ev();
+Name_Map name_map_ee03720[] = {
+ NSPAIR(_ZN7ee03720C1Ev),
+ NSPAIR(_ZN7ee03720D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc720;
+extern VTBL_ENTRY _ZTI5cc720[];
+extern VTBL_ENTRY _ZTV5cc720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc720[];
+extern Class_Descriptor cd_dd3720;
+extern VTBL_ENTRY _ZTI6dd3720[];
+extern VTBL_ENTRY _ZTV6dd3720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3720[];
+static Base_Class bases_ee03720[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc720, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3720, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03720[];
+extern void _ZN6dd37203fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd37203fooEv,_ZTv0_n16_N6dd37203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37203fooEv,_ZThn12_N6dd37203fooEv)() __attribute__((weak));
+extern void _ZN5cc7203barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd37203fooEv,_ZTv0_n12_N6dd37203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37203fooEv,_ZThn20_N6dd37203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee03720[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03720[0]),
+ (VTBL_ENTRY)&_ZN6dd37203fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37203fooEv,_ZTv0_n16_N6dd37203fooEv),
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee03720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37203fooEv,_ZTv0_n12_N6dd37203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee03720[];
+extern void _ZN6dd37203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3720__7ee03720[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3720[0]),
+ (VTBL_ENTRY)&_ZN6dd37203fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd37203fooEv,_ZTv0_n16_N6dd37203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37203fooEv,_ZThn12_N6dd37203fooEv)() __attribute__((weak));
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc720__6dd3720__7ee03720[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37203fooEv,_ZTv0_n16_N6dd37203fooEv),
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd37203fooEv,_ZTv0_n12_N6dd37203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37203fooEv,_ZThn20_N6dd37203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd3720__7ee03720[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37203fooEv,_ZTv0_n12_N6dd37203fooEv),
+};
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc720__7ee03720[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc720__7ee03720[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+static VTT_ENTRY vtt_ee03720[] = {
+ {&(_ZTV7ee03720[4]), 4,16},
+ {&(_tg__ZTV6dd3720__7ee03720[4]), 4,5},
+ {&(_tg__ZTV5cc720__6dd3720__7ee03720[5]), 5,7},
+ {&(_tg__ZTV4bb20__6dd3720__7ee03720[3]), 3,4},
+ {&(_ZTV7ee03720[10]), 10,16},
+ {&(_ZTV7ee03720[15]), 15,16},
+ {&(_tg__ZTV5cc720__7ee03720[3]), 3,5},
+ {&(_tg__ZTV4bb20__5cc720__7ee03720[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee03720[];
+extern VTBL_ENTRY _ZTV7ee03720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03720[];
+static VTBL_ENTRY alt_thunk_names382[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37203fooEv,_ZTv0_n12_N6dd37203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37203fooEv,_ZThn20_N6dd37203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37203fooEv,_ZThn20_N6dd37203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37203fooEv,_ZTv0_n16_N6dd37203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37203fooEv,_ZThn12_N6dd37203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37203fooEv,_ZThn12_N6dd37203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03720 = { "ee03720", // class name
+ bases_ee03720, 4,
+ &(vtc_ee03720[0]), // expected_vtbl_contents
+ &(vtt_ee03720[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee03720),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03720),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03720),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names382,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee13720 : virtual dd3720 {
+ int e;
+ ~ee13720(); // tgen
+ ee13720(); // tgen
+};
+//SIG(1 ee13720) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v1 Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee13720 ::~ee13720(){ note_dtor("ee13720", this);} // tgen
+ee13720 ::ee13720(){ note_ctor("ee13720", this);} // tgen
+
+static void Test_ee13720()
+{
+ extern Class_Descriptor cd_ee13720;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee13720, buf);
+ ee13720 *dp, &lv = *(dp=new (buf) ee13720());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee13720)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13720)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(56,28), "ee13720");
+ check_base_class_offset(lv, (bb20*)(cc720*), ABISELECT(48,24), "ee13720");
+ check_base_class_offset(lv, (cc720*)(dd3720*), ABISELECT(32,16), "ee13720");
+ check_base_class_offset(lv, (dd3720*), ABISELECT(16,8), "ee13720");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13720.e");
+ test_class_info(&lv, &cd_ee13720);
+ dp->~ee13720();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13720(Test_ee13720, "ee13720", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee13720C1Ev();
+extern void _ZN7ee13720D1Ev();
+Name_Map name_map_ee13720[] = {
+ NSPAIR(_ZN7ee13720C1Ev),
+ NSPAIR(_ZN7ee13720D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc720;
+extern VTBL_ENTRY _ZTI5cc720[];
+extern VTBL_ENTRY _ZTV5cc720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc720[];
+extern Class_Descriptor cd_dd3720;
+extern VTBL_ENTRY _ZTI6dd3720[];
+extern VTBL_ENTRY _ZTV6dd3720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3720[];
+static Base_Class bases_ee13720[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(56,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc720, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3720, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee13720[];
+extern void _ZN6dd37203fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd37203fooEv,_ZTv0_n16_N6dd37203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37203fooEv,_ZThn8_N6dd37203fooEv)() __attribute__((weak));
+extern void _ZN5cc7203barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd37203fooEv,_ZTv0_n12_N6dd37203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37203fooEv,_ZThn16_N6dd37203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee13720[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13720[0]),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13720[0]),
+ (VTBL_ENTRY)&_ZN6dd37203fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37203fooEv,_ZTv0_n16_N6dd37203fooEv),
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee13720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37203fooEv,_ZTv0_n12_N6dd37203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee13720[];
+extern void _ZN6dd37203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3720__7ee13720[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3720[0]),
+ (VTBL_ENTRY)&_ZN6dd37203fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd37203fooEv,_ZTv0_n16_N6dd37203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37203fooEv,_ZThn8_N6dd37203fooEv)() __attribute__((weak));
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc720__6dd3720__7ee13720[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37203fooEv,_ZTv0_n16_N6dd37203fooEv),
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd37203fooEv,_ZTv0_n12_N6dd37203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37203fooEv,_ZThn16_N6dd37203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd3720__7ee13720[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37203fooEv,_ZTv0_n12_N6dd37203fooEv),
+};
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc720__7ee13720[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc720__7ee13720[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+static VTT_ENTRY vtt_ee13720[] = {
+ {&(_ZTV7ee13720[5]), 5,22},
+ {&(_ZTV7ee13720[10]), 10,22},
+ {&(_ZTV7ee13720[16]), 16,22},
+ {&(_ZTV7ee13720[21]), 21,22},
+ {&(_tg__ZTV6dd3720__7ee13720[4]), 4,5},
+ {&(_tg__ZTV5cc720__6dd3720__7ee13720[5]), 5,7},
+ {&(_tg__ZTV4bb20__6dd3720__7ee13720[3]), 3,4},
+ {&(_tg__ZTV5cc720__7ee13720[3]), 3,5},
+ {&(_tg__ZTV4bb20__5cc720__7ee13720[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee13720[];
+extern VTBL_ENTRY _ZTV7ee13720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13720[];
+static VTBL_ENTRY alt_thunk_names383[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37203fooEv,_ZTv0_n12_N6dd37203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37203fooEv,_ZThn16_N6dd37203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37203fooEv,_ZThn16_N6dd37203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37203fooEv,_ZTv0_n16_N6dd37203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37203fooEv,_ZThn8_N6dd37203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37203fooEv,_ZThn8_N6dd37203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13720 = { "ee13720", // class name
+ bases_ee13720, 4,
+ &(vtc_ee13720[0]), // expected_vtbl_contents
+ &(vtt_ee13720[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee13720),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13720),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13720),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names383,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee23720 : dd3720 {
+ int e;
+ virtual void foo(); // _ZN7ee237203fooEv
+ ~ee23720(); // tgen
+ ee23720(); // tgen
+};
+//SIG(1 ee23720) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v1 Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee23720 ::foo(){vfunc_called(this, "_ZN7ee237203fooEv");}
+ee23720 ::~ee23720(){ note_dtor("ee23720", this);} // tgen
+ee23720 ::ee23720(){ note_ctor("ee23720", this);} // tgen
+
+static void Test_ee23720()
+{
+ extern Class_Descriptor cd_ee23720;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee23720, buf);
+ ee23720 *dp, &lv = *(dp=new (buf) ee23720());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee23720)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23720)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee23720");
+ check_base_class_offset(lv, (bb20*)(cc720*), ABISELECT(32,20), "ee23720");
+ check_base_class_offset(lv, (cc720*)(dd3720*), ABISELECT(16,12), "ee23720");
+ check_base_class_offset(lv, (dd3720*), 0, "ee23720");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23720.e");
+ test_class_info(&lv, &cd_ee23720);
+ dp->~ee23720();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23720(Test_ee23720, "ee23720", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee23720C1Ev();
+extern void _ZN7ee23720D1Ev();
+Name_Map name_map_ee23720[] = {
+ NSPAIR(_ZN7ee23720C1Ev),
+ NSPAIR(_ZN7ee23720D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc720;
+extern VTBL_ENTRY _ZTI5cc720[];
+extern VTBL_ENTRY _ZTV5cc720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc720[];
+extern Class_Descriptor cd_dd3720;
+extern VTBL_ENTRY _ZTI6dd3720[];
+extern VTBL_ENTRY _ZTV6dd3720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3720[];
+static Base_Class bases_ee23720[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc720, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3720, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23720[];
+extern void _ZN7ee237203fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee237203fooEv,_ZTv0_n16_N7ee237203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee237203fooEv,_ZThn12_N7ee237203fooEv)() __attribute__((weak));
+extern void _ZN5cc7203barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee237203fooEv,_ZTv0_n12_N7ee237203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee237203fooEv,_ZThn20_N7ee237203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee23720[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23720[0]),
+ (VTBL_ENTRY)&_ZN7ee237203fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee237203fooEv,_ZTv0_n16_N7ee237203fooEv),
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee23720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee237203fooEv,_ZTv0_n12_N7ee237203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee23720[];
+extern void _ZN6dd37203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3720__7ee23720[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3720[0]),
+ (VTBL_ENTRY)&_ZN6dd37203fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd37203fooEv,_ZTv0_n16_N6dd37203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37203fooEv,_ZThn12_N6dd37203fooEv)() __attribute__((weak));
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc720__6dd3720__7ee23720[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37203fooEv,_ZTv0_n16_N6dd37203fooEv),
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd37203fooEv,_ZTv0_n12_N6dd37203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37203fooEv,_ZThn20_N6dd37203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd3720__7ee23720[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37203fooEv,_ZTv0_n12_N6dd37203fooEv),
+};
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc720__7ee23720[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc720__7ee23720[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+static VTT_ENTRY vtt_ee23720[] = {
+ {&(_ZTV7ee23720[4]), 4,16},
+ {&(_tg__ZTV6dd3720__7ee23720[4]), 4,5},
+ {&(_tg__ZTV5cc720__6dd3720__7ee23720[5]), 5,7},
+ {&(_tg__ZTV4bb20__6dd3720__7ee23720[3]), 3,4},
+ {&(_ZTV7ee23720[10]), 10,16},
+ {&(_ZTV7ee23720[15]), 15,16},
+ {&(_tg__ZTV5cc720__7ee23720[3]), 3,5},
+ {&(_tg__ZTV4bb20__5cc720__7ee23720[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee23720[];
+extern VTBL_ENTRY _ZTV7ee23720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23720[];
+static VTBL_ENTRY alt_thunk_names384[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37203fooEv,_ZTv0_n12_N6dd37203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37203fooEv,_ZThn20_N6dd37203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37203fooEv,_ZTv0_n16_N6dd37203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37203fooEv,_ZThn12_N6dd37203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee237203fooEv,_ZTv0_n12_N7ee237203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee237203fooEv,_ZThn20_N7ee237203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee237203fooEv,_ZTv0_n16_N7ee237203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee237203fooEv,_ZThn12_N7ee237203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23720 = { "ee23720", // class name
+ bases_ee23720, 4,
+ &(vtc_ee23720[0]), // expected_vtbl_contents
+ &(vtt_ee23720[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee23720),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23720),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23720),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names384,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee33720 : virtual dd3720 {
+ int e;
+ virtual void foo(); // _ZN7ee337203fooEv
+ ~ee33720(); // tgen
+ ee33720(); // tgen
+};
+//SIG(1 ee33720) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v1 Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee33720 ::foo(){vfunc_called(this, "_ZN7ee337203fooEv");}
+ee33720 ::~ee33720(){ note_dtor("ee33720", this);} // tgen
+ee33720 ::ee33720(){ note_ctor("ee33720", this);} // tgen
+
+static void Test_ee33720()
+{
+ extern Class_Descriptor cd_ee33720;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee33720, buf);
+ ee33720 *dp, &lv = *(dp=new (buf) ee33720());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee33720)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33720)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(56,28), "ee33720");
+ check_base_class_offset(lv, (bb20*)(cc720*), ABISELECT(48,24), "ee33720");
+ check_base_class_offset(lv, (cc720*)(dd3720*), ABISELECT(32,16), "ee33720");
+ check_base_class_offset(lv, (dd3720*), ABISELECT(16,8), "ee33720");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33720.e");
+ test_class_info(&lv, &cd_ee33720);
+ dp->~ee33720();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33720(Test_ee33720, "ee33720", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee33720C1Ev();
+extern void _ZN7ee33720D1Ev();
+Name_Map name_map_ee33720[] = {
+ NSPAIR(_ZN7ee33720C1Ev),
+ NSPAIR(_ZN7ee33720D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc720;
+extern VTBL_ENTRY _ZTI5cc720[];
+extern VTBL_ENTRY _ZTV5cc720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc720[];
+extern Class_Descriptor cd_dd3720;
+extern VTBL_ENTRY _ZTI6dd3720[];
+extern VTBL_ENTRY _ZTV6dd3720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3720[];
+static Base_Class bases_ee33720[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(56,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc720, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3720, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee33720[];
+extern void _ZN7ee337203fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee337203fooEv,_ZTv0_n20_N7ee337203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee337203fooEv,_ZThn8_N7ee337203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee337203fooEv,_ZTv0_n16_N7ee337203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee337203fooEv,_ZThn16_N7ee337203fooEv)() __attribute__((weak));
+extern void _ZN5cc7203barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee337203fooEv,_ZTv0_n12_N7ee337203fooEv)();
+extern void ABISELECT(_ZThn48_N7ee337203fooEv,_ZThn24_N7ee337203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee33720[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33720[0]),
+ (VTBL_ENTRY)&_ZN7ee337203fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee337203fooEv,_ZTv0_n20_N7ee337203fooEv),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee337203fooEv,_ZTv0_n16_N7ee337203fooEv),
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee33720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee337203fooEv,_ZTv0_n12_N7ee337203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee33720[];
+extern void _ZN6dd37203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3720__7ee33720[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3720[0]),
+ (VTBL_ENTRY)&_ZN6dd37203fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd37203fooEv,_ZTv0_n16_N6dd37203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37203fooEv,_ZThn8_N6dd37203fooEv)() __attribute__((weak));
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc720__6dd3720__7ee33720[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37203fooEv,_ZTv0_n16_N6dd37203fooEv),
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd37203fooEv,_ZTv0_n12_N6dd37203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37203fooEv,_ZThn16_N6dd37203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd3720__7ee33720[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37203fooEv,_ZTv0_n12_N6dd37203fooEv),
+};
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc720__7ee33720[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc720__7ee33720[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+static VTT_ENTRY vtt_ee33720[] = {
+ {&(_ZTV7ee33720[5]), 5,23},
+ {&(_ZTV7ee33720[11]), 11,23},
+ {&(_ZTV7ee33720[17]), 17,23},
+ {&(_ZTV7ee33720[22]), 22,23},
+ {&(_tg__ZTV6dd3720__7ee33720[4]), 4,5},
+ {&(_tg__ZTV5cc720__6dd3720__7ee33720[5]), 5,7},
+ {&(_tg__ZTV4bb20__6dd3720__7ee33720[3]), 3,4},
+ {&(_tg__ZTV5cc720__7ee33720[3]), 3,5},
+ {&(_tg__ZTV4bb20__5cc720__7ee33720[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee33720[];
+extern VTBL_ENTRY _ZTV7ee33720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33720[];
+static VTBL_ENTRY alt_thunk_names385[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37203fooEv,_ZTv0_n12_N6dd37203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37203fooEv,_ZThn16_N6dd37203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37203fooEv,_ZTv0_n16_N6dd37203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37203fooEv,_ZThn8_N6dd37203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee337203fooEv,_ZTv0_n12_N7ee337203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee337203fooEv,_ZThn24_N7ee337203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee337203fooEv,_ZTv0_n16_N7ee337203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee337203fooEv,_ZThn16_N7ee337203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee337203fooEv,_ZTv0_n20_N7ee337203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee337203fooEv,_ZThn8_N7ee337203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33720 = { "ee33720", // class name
+ bases_ee33720, 4,
+ &(vtc_ee33720[0]), // expected_vtbl_contents
+ &(vtt_ee33720[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee33720),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33720),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33720),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names385,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee43720 : dd3720 {
+ int e;
+ virtual void bar(); // _ZN7ee437203barEv
+ ~ee43720(); // tgen
+ ee43720(); // tgen
+};
+//SIG(1 ee43720) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v2 Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee43720 ::bar(){vfunc_called(this, "_ZN7ee437203barEv");}
+ee43720 ::~ee43720(){ note_dtor("ee43720", this);} // tgen
+ee43720 ::ee43720(){ note_ctor("ee43720", this);} // tgen
+
+static void Test_ee43720()
+{
+ extern Class_Descriptor cd_ee43720;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee43720, buf);
+ ee43720 *dp, &lv = *(dp=new (buf) ee43720());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee43720)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43720)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee43720");
+ check_base_class_offset(lv, (bb20*)(cc720*), ABISELECT(32,20), "ee43720");
+ check_base_class_offset(lv, (cc720*)(dd3720*), ABISELECT(16,12), "ee43720");
+ check_base_class_offset(lv, (dd3720*), 0, "ee43720");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43720.e");
+ test_class_info(&lv, &cd_ee43720);
+ dp->~ee43720();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43720(Test_ee43720, "ee43720", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee43720C1Ev();
+extern void _ZN7ee43720D1Ev();
+Name_Map name_map_ee43720[] = {
+ NSPAIR(_ZN7ee43720C1Ev),
+ NSPAIR(_ZN7ee43720D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc720;
+extern VTBL_ENTRY _ZTI5cc720[];
+extern VTBL_ENTRY _ZTV5cc720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc720[];
+extern Class_Descriptor cd_dd3720;
+extern VTBL_ENTRY _ZTI6dd3720[];
+extern VTBL_ENTRY _ZTV6dd3720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3720[];
+static Base_Class bases_ee43720[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc720, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3720, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43720[];
+extern void _ZN6dd37203fooEv();
+extern void _ZN7ee437203barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd37203fooEv,_ZTv0_n16_N6dd37203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37203fooEv,_ZThn12_N6dd37203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee437203barEv,_ZTv0_n20_N7ee437203barEv)();
+extern void ABISELECT(_ZThn16_N7ee437203barEv,_ZThn12_N7ee437203barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd37203fooEv,_ZTv0_n12_N6dd37203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37203fooEv,_ZThn20_N6dd37203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43720[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43720[0]),
+ (VTBL_ENTRY)&_ZN6dd37203fooEv,
+ (VTBL_ENTRY)&_ZN7ee437203barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37203fooEv,_ZTv0_n16_N6dd37203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee437203barEv,_ZTv0_n20_N7ee437203barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee43720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37203fooEv,_ZTv0_n12_N6dd37203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee43720[];
+extern void _ZN6dd37203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3720__7ee43720[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3720[0]),
+ (VTBL_ENTRY)&_ZN6dd37203fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd37203fooEv,_ZTv0_n16_N6dd37203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37203fooEv,_ZThn12_N6dd37203fooEv)() __attribute__((weak));
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc720__6dd3720__7ee43720[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37203fooEv,_ZTv0_n16_N6dd37203fooEv),
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd37203fooEv,_ZTv0_n12_N6dd37203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37203fooEv,_ZThn20_N6dd37203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd3720__7ee43720[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37203fooEv,_ZTv0_n12_N6dd37203fooEv),
+};
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc720__7ee43720[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc720__7ee43720[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+static VTT_ENTRY vtt_ee43720[] = {
+ {&(_ZTV7ee43720[4]), 4,17},
+ {&(_tg__ZTV6dd3720__7ee43720[4]), 4,5},
+ {&(_tg__ZTV5cc720__6dd3720__7ee43720[5]), 5,7},
+ {&(_tg__ZTV4bb20__6dd3720__7ee43720[3]), 3,4},
+ {&(_ZTV7ee43720[11]), 11,17},
+ {&(_ZTV7ee43720[16]), 16,17},
+ {&(_tg__ZTV5cc720__7ee43720[3]), 3,5},
+ {&(_tg__ZTV4bb20__5cc720__7ee43720[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee43720[];
+extern VTBL_ENTRY _ZTV7ee43720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43720[];
+static VTBL_ENTRY alt_thunk_names386[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37203fooEv,_ZTv0_n12_N6dd37203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37203fooEv,_ZThn20_N6dd37203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37203fooEv,_ZThn20_N6dd37203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee437203barEv,_ZTv0_n20_N7ee437203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee437203barEv,_ZThn12_N7ee437203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37203fooEv,_ZTv0_n16_N6dd37203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37203fooEv,_ZThn12_N6dd37203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37203fooEv,_ZThn12_N6dd37203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43720 = { "ee43720", // class name
+ bases_ee43720, 4,
+ &(vtc_ee43720[0]), // expected_vtbl_contents
+ &(vtt_ee43720[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee43720),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43720),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43720),8, //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 ee53720 : virtual dd3720 {
+ int e;
+ virtual void bar(); // _ZN7ee537203barEv
+ ~ee53720(); // tgen
+ ee53720(); // tgen
+};
+//SIG(1 ee53720) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v2 Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee53720 ::bar(){vfunc_called(this, "_ZN7ee537203barEv");}
+ee53720 ::~ee53720(){ note_dtor("ee53720", this);} // tgen
+ee53720 ::ee53720(){ note_ctor("ee53720", this);} // tgen
+
+static void Test_ee53720()
+{
+ extern Class_Descriptor cd_ee53720;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee53720, buf);
+ ee53720 *dp, &lv = *(dp=new (buf) ee53720());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee53720)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53720)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(56,28), "ee53720");
+ check_base_class_offset(lv, (bb20*)(cc720*), ABISELECT(48,24), "ee53720");
+ check_base_class_offset(lv, (cc720*)(dd3720*), ABISELECT(32,16), "ee53720");
+ check_base_class_offset(lv, (dd3720*), ABISELECT(16,8), "ee53720");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53720.e");
+ test_class_info(&lv, &cd_ee53720);
+ dp->~ee53720();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53720(Test_ee53720, "ee53720", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee53720C1Ev();
+extern void _ZN7ee53720D1Ev();
+Name_Map name_map_ee53720[] = {
+ NSPAIR(_ZN7ee53720C1Ev),
+ NSPAIR(_ZN7ee53720D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc720;
+extern VTBL_ENTRY _ZTI5cc720[];
+extern VTBL_ENTRY _ZTV5cc720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc720[];
+extern Class_Descriptor cd_dd3720;
+extern VTBL_ENTRY _ZTI6dd3720[];
+extern VTBL_ENTRY _ZTV6dd3720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3720[];
+static Base_Class bases_ee53720[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(56,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc720, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3720, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee53720[];
+extern void _ZN7ee537203barEv();
+extern void _ZN6dd37203fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd37203fooEv,_ZTv0_n16_N6dd37203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37203fooEv,_ZThn8_N6dd37203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee537203barEv,_ZTv0_n20_N7ee537203barEv)();
+extern void ABISELECT(_ZThn32_N7ee537203barEv,_ZThn16_N7ee537203barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd37203fooEv,_ZTv0_n12_N6dd37203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37203fooEv,_ZThn16_N6dd37203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53720[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53720[0]),
+ (VTBL_ENTRY)&_ZN7ee537203barEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53720[0]),
+ (VTBL_ENTRY)&_ZN6dd37203fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37203fooEv,_ZTv0_n16_N6dd37203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee537203barEv,_ZTv0_n20_N7ee537203barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee53720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37203fooEv,_ZTv0_n12_N6dd37203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee53720[];
+extern void _ZN6dd37203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3720__7ee53720[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3720[0]),
+ (VTBL_ENTRY)&_ZN6dd37203fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd37203fooEv,_ZTv0_n16_N6dd37203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37203fooEv,_ZThn8_N6dd37203fooEv)() __attribute__((weak));
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc720__6dd3720__7ee53720[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37203fooEv,_ZTv0_n16_N6dd37203fooEv),
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd37203fooEv,_ZTv0_n12_N6dd37203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37203fooEv,_ZThn16_N6dd37203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd3720__7ee53720[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37203fooEv,_ZTv0_n12_N6dd37203fooEv),
+};
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc720__7ee53720[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc720__7ee53720[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+static VTT_ENTRY vtt_ee53720[] = {
+ {&(_ZTV7ee53720[5]), 5,23},
+ {&(_ZTV7ee53720[11]), 11,23},
+ {&(_ZTV7ee53720[17]), 17,23},
+ {&(_ZTV7ee53720[22]), 22,23},
+ {&(_tg__ZTV6dd3720__7ee53720[4]), 4,5},
+ {&(_tg__ZTV5cc720__6dd3720__7ee53720[5]), 5,7},
+ {&(_tg__ZTV4bb20__6dd3720__7ee53720[3]), 3,4},
+ {&(_tg__ZTV5cc720__7ee53720[3]), 3,5},
+ {&(_tg__ZTV4bb20__5cc720__7ee53720[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee53720[];
+extern VTBL_ENTRY _ZTV7ee53720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53720[];
+static VTBL_ENTRY alt_thunk_names387[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37203fooEv,_ZTv0_n12_N6dd37203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37203fooEv,_ZThn16_N6dd37203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37203fooEv,_ZThn16_N6dd37203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee537203barEv,_ZTv0_n20_N7ee537203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee537203barEv,_ZThn16_N7ee537203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37203fooEv,_ZTv0_n16_N6dd37203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37203fooEv,_ZThn8_N6dd37203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37203fooEv,_ZThn8_N6dd37203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53720 = { "ee53720", // class name
+ bases_ee53720, 4,
+ &(vtc_ee53720[0]), // expected_vtbl_contents
+ &(vtt_ee53720[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee53720),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53720),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53720),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names387,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee63720 : dd3720 {
+ int e;
+ virtual void foo(); // _ZN7ee637203fooEv
+ virtual void bar(); // _ZN7ee637203barEv
+ ~ee63720(); // tgen
+ ee63720(); // tgen
+};
+//SIG(1 ee63720) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v1 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63720 ::foo(){vfunc_called(this, "_ZN7ee637203fooEv");}
+void ee63720 ::bar(){vfunc_called(this, "_ZN7ee637203barEv");}
+ee63720 ::~ee63720(){ note_dtor("ee63720", this);} // tgen
+ee63720 ::ee63720(){ note_ctor("ee63720", this);} // tgen
+
+static void Test_ee63720()
+{
+ extern Class_Descriptor cd_ee63720;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee63720, buf);
+ ee63720 *dp, &lv = *(dp=new (buf) ee63720());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee63720)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63720)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee63720");
+ check_base_class_offset(lv, (bb20*)(cc720*), ABISELECT(32,20), "ee63720");
+ check_base_class_offset(lv, (cc720*)(dd3720*), ABISELECT(16,12), "ee63720");
+ check_base_class_offset(lv, (dd3720*), 0, "ee63720");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63720.e");
+ test_class_info(&lv, &cd_ee63720);
+ dp->~ee63720();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63720(Test_ee63720, "ee63720", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee63720C1Ev();
+extern void _ZN7ee63720D1Ev();
+Name_Map name_map_ee63720[] = {
+ NSPAIR(_ZN7ee63720C1Ev),
+ NSPAIR(_ZN7ee63720D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc720;
+extern VTBL_ENTRY _ZTI5cc720[];
+extern VTBL_ENTRY _ZTV5cc720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc720[];
+extern Class_Descriptor cd_dd3720;
+extern VTBL_ENTRY _ZTI6dd3720[];
+extern VTBL_ENTRY _ZTV6dd3720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3720[];
+static Base_Class bases_ee63720[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc720, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3720, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63720[];
+extern void _ZN7ee637203fooEv();
+extern void _ZN7ee637203barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee637203fooEv,_ZTv0_n16_N7ee637203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee637203fooEv,_ZThn12_N7ee637203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee637203barEv,_ZTv0_n20_N7ee637203barEv)();
+extern void ABISELECT(_ZThn16_N7ee637203barEv,_ZThn12_N7ee637203barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee637203fooEv,_ZTv0_n12_N7ee637203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee637203fooEv,_ZThn20_N7ee637203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63720[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63720[0]),
+ (VTBL_ENTRY)&_ZN7ee637203fooEv,
+ (VTBL_ENTRY)&_ZN7ee637203barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee637203fooEv,_ZTv0_n16_N7ee637203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee637203barEv,_ZTv0_n20_N7ee637203barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee63720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee637203fooEv,_ZTv0_n12_N7ee637203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee63720[];
+extern void _ZN6dd37203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3720__7ee63720[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3720[0]),
+ (VTBL_ENTRY)&_ZN6dd37203fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd37203fooEv,_ZTv0_n16_N6dd37203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37203fooEv,_ZThn12_N6dd37203fooEv)() __attribute__((weak));
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc720__6dd3720__7ee63720[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37203fooEv,_ZTv0_n16_N6dd37203fooEv),
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd37203fooEv,_ZTv0_n12_N6dd37203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37203fooEv,_ZThn20_N6dd37203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd3720__7ee63720[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37203fooEv,_ZTv0_n12_N6dd37203fooEv),
+};
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc720__7ee63720[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc720__7ee63720[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+static VTT_ENTRY vtt_ee63720[] = {
+ {&(_ZTV7ee63720[4]), 4,17},
+ {&(_tg__ZTV6dd3720__7ee63720[4]), 4,5},
+ {&(_tg__ZTV5cc720__6dd3720__7ee63720[5]), 5,7},
+ {&(_tg__ZTV4bb20__6dd3720__7ee63720[3]), 3,4},
+ {&(_ZTV7ee63720[11]), 11,17},
+ {&(_ZTV7ee63720[16]), 16,17},
+ {&(_tg__ZTV5cc720__7ee63720[3]), 3,5},
+ {&(_tg__ZTV4bb20__5cc720__7ee63720[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee63720[];
+extern VTBL_ENTRY _ZTV7ee63720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63720[];
+static VTBL_ENTRY alt_thunk_names388[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37203fooEv,_ZTv0_n12_N6dd37203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37203fooEv,_ZThn20_N6dd37203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37203fooEv,_ZTv0_n16_N6dd37203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37203fooEv,_ZThn12_N6dd37203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee637203fooEv,_ZTv0_n12_N7ee637203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee637203fooEv,_ZThn20_N7ee637203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee637203barEv,_ZTv0_n20_N7ee637203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee637203barEv,_ZThn12_N7ee637203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee637203fooEv,_ZTv0_n16_N7ee637203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee637203fooEv,_ZThn12_N7ee637203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63720 = { "ee63720", // class name
+ bases_ee63720, 4,
+ &(vtc_ee63720[0]), // expected_vtbl_contents
+ &(vtt_ee63720[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee63720),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63720),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63720),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names388,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee73720 : virtual dd3720 {
+ int e;
+ virtual void foo(); // _ZN7ee737203fooEv
+ virtual void bar(); // _ZN7ee737203barEv
+ ~ee73720(); // tgen
+ ee73720(); // tgen
+};
+//SIG(1 ee73720) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v1 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73720 ::foo(){vfunc_called(this, "_ZN7ee737203fooEv");}
+void ee73720 ::bar(){vfunc_called(this, "_ZN7ee737203barEv");}
+ee73720 ::~ee73720(){ note_dtor("ee73720", this);} // tgen
+ee73720 ::ee73720(){ note_ctor("ee73720", this);} // tgen
+
+static void Test_ee73720()
+{
+ extern Class_Descriptor cd_ee73720;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee73720, buf);
+ ee73720 *dp, &lv = *(dp=new (buf) ee73720());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee73720)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73720)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(56,28), "ee73720");
+ check_base_class_offset(lv, (bb20*)(cc720*), ABISELECT(48,24), "ee73720");
+ check_base_class_offset(lv, (cc720*)(dd3720*), ABISELECT(32,16), "ee73720");
+ check_base_class_offset(lv, (dd3720*), ABISELECT(16,8), "ee73720");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73720.e");
+ test_class_info(&lv, &cd_ee73720);
+ dp->~ee73720();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73720(Test_ee73720, "ee73720", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee73720C1Ev();
+extern void _ZN7ee73720D1Ev();
+Name_Map name_map_ee73720[] = {
+ NSPAIR(_ZN7ee73720C1Ev),
+ NSPAIR(_ZN7ee73720D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc720;
+extern VTBL_ENTRY _ZTI5cc720[];
+extern VTBL_ENTRY _ZTV5cc720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc720[];
+extern Class_Descriptor cd_dd3720;
+extern VTBL_ENTRY _ZTI6dd3720[];
+extern VTBL_ENTRY _ZTV6dd3720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3720[];
+static Base_Class bases_ee73720[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(56,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc720, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3720, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee73720[];
+extern void _ZN7ee737203fooEv();
+extern void _ZN7ee737203barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee737203fooEv,_ZTv0_n20_N7ee737203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee737203fooEv,_ZThn8_N7ee737203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee737203fooEv,_ZTv0_n16_N7ee737203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee737203fooEv,_ZThn16_N7ee737203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee737203barEv,_ZTv0_n20_N7ee737203barEv)();
+extern void ABISELECT(_ZThn32_N7ee737203barEv,_ZThn16_N7ee737203barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee737203fooEv,_ZTv0_n12_N7ee737203fooEv)();
+extern void ABISELECT(_ZThn48_N7ee737203fooEv,_ZThn24_N7ee737203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73720[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73720[0]),
+ (VTBL_ENTRY)&_ZN7ee737203fooEv,
+ (VTBL_ENTRY)&_ZN7ee737203barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee737203fooEv,_ZTv0_n20_N7ee737203fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee737203fooEv,_ZTv0_n16_N7ee737203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee737203barEv,_ZTv0_n20_N7ee737203barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee73720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee737203fooEv,_ZTv0_n12_N7ee737203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee73720[];
+extern void _ZN6dd37203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3720__7ee73720[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3720[0]),
+ (VTBL_ENTRY)&_ZN6dd37203fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd37203fooEv,_ZTv0_n16_N6dd37203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37203fooEv,_ZThn8_N6dd37203fooEv)() __attribute__((weak));
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc720__6dd3720__7ee73720[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37203fooEv,_ZTv0_n16_N6dd37203fooEv),
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd37203fooEv,_ZTv0_n12_N6dd37203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37203fooEv,_ZThn16_N6dd37203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd3720__7ee73720[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37203fooEv,_ZTv0_n12_N6dd37203fooEv),
+};
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc720__7ee73720[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc720__7ee73720[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+static VTT_ENTRY vtt_ee73720[] = {
+ {&(_ZTV7ee73720[5]), 5,24},
+ {&(_ZTV7ee73720[12]), 12,24},
+ {&(_ZTV7ee73720[18]), 18,24},
+ {&(_ZTV7ee73720[23]), 23,24},
+ {&(_tg__ZTV6dd3720__7ee73720[4]), 4,5},
+ {&(_tg__ZTV5cc720__6dd3720__7ee73720[5]), 5,7},
+ {&(_tg__ZTV4bb20__6dd3720__7ee73720[3]), 3,4},
+ {&(_tg__ZTV5cc720__7ee73720[3]), 3,5},
+ {&(_tg__ZTV4bb20__5cc720__7ee73720[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee73720[];
+extern VTBL_ENTRY _ZTV7ee73720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73720[];
+static VTBL_ENTRY alt_thunk_names389[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37203fooEv,_ZTv0_n12_N6dd37203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37203fooEv,_ZThn16_N6dd37203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37203fooEv,_ZTv0_n16_N6dd37203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37203fooEv,_ZThn8_N6dd37203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee737203fooEv,_ZTv0_n12_N7ee737203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee737203fooEv,_ZThn24_N7ee737203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee737203barEv,_ZTv0_n20_N7ee737203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee737203barEv,_ZThn16_N7ee737203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee737203fooEv,_ZTv0_n16_N7ee737203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee737203fooEv,_ZThn16_N7ee737203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee737203fooEv,_ZTv0_n20_N7ee737203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee737203fooEv,_ZThn8_N7ee737203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73720 = { "ee73720", // class name
+ bases_ee73720, 4,
+ &(vtc_ee73720[0]), // expected_vtbl_contents
+ &(vtt_ee73720[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee73720),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73720),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73720),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names389,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd4720 : cc720 {
+ int d;
+ virtual void bar(); // _ZN6dd47203barEv
+ ~dd4720(); // tgen
+ dd4720(); // tgen
+};
+//SIG(-1 dd4720) C1{ BC2{ VBC3{ BC4{ Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void dd4720 ::bar(){vfunc_called(this, "_ZN6dd47203barEv");}
+dd4720 ::~dd4720(){ note_dtor("dd4720", this);} // tgen
+dd4720 ::dd4720(){ note_ctor("dd4720", this);} // tgen
+
+static void Test_dd4720()
+{
+ extern Class_Descriptor cd_dd4720;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd4720, buf);
+ dd4720 *dp, &lv = *(dp=new (buf) dd4720());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd4720)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4720)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(24,16), "dd4720");
+ check_base_class_offset(lv, (bb20*)(cc720*), ABISELECT(16,12), "dd4720");
+ check_base_class_offset(lv, (cc720*), 0, "dd4720");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd4720.d");
+ test_class_info(&lv, &cd_dd4720);
+ dp->~dd4720();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4720(Test_dd4720, "dd4720", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd4720C1Ev();
+extern void _ZN6dd4720D1Ev();
+Name_Map name_map_dd4720[] = {
+ NSPAIR(_ZN6dd4720C1Ev),
+ NSPAIR(_ZN6dd4720D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc720;
+extern VTBL_ENTRY _ZTI5cc720[];
+extern VTBL_ENTRY _ZTV5cc720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc720[];
+static Base_Class bases_dd4720[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc720, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd4720[];
+extern void _ZN5cc7203fooEv();
+extern void _ZN6dd47203barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn12_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd4720[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN6dd47203barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd4720[];
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc720__6dd4720[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn12_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc720__6dd4720[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+static VTT_ENTRY vtt_dd4720[] = {
+ {&(_ZTV6dd4720[3]), 3,9},
+ {&(_tg__ZTV5cc720__6dd4720[3]), 3,5},
+ {&(_tg__ZTV4bb20__5cc720__6dd4720[3]), 3,4},
+ {&(_ZTV6dd4720[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI6dd4720[];
+extern VTBL_ENTRY _ZTV6dd4720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4720[];
+static VTBL_ENTRY alt_thunk_names390[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn12_N5cc7203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn12_N5cc7203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd4720 = { "dd4720", // class name
+ bases_dd4720, 3,
+ &(vtc_dd4720[0]), // expected_vtbl_contents
+ &(vtt_dd4720[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd4720),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4720),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd4720),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names390,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee04720 : dd4720 {
+ int e;
+ ~ee04720(); // tgen
+ ee04720(); // tgen
+};
+//SIG(1 ee04720) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v2 Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee04720 ::~ee04720(){ note_dtor("ee04720", this);} // tgen
+ee04720 ::ee04720(){ note_ctor("ee04720", this);} // tgen
+
+static void Test_ee04720()
+{
+ extern Class_Descriptor cd_ee04720;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee04720, buf);
+ ee04720 *dp, &lv = *(dp=new (buf) ee04720());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee04720)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04720)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(32,20), "ee04720");
+ check_base_class_offset(lv, (bb20*)(cc720*)(dd4720*), ABISELECT(24,16), "ee04720");
+ check_base_class_offset(lv, (cc720*)(dd4720*), 0, "ee04720");
+ check_base_class_offset(lv, (dd4720*), 0, "ee04720");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee04720.e");
+ test_class_info(&lv, &cd_ee04720);
+ dp->~ee04720();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04720(Test_ee04720, "ee04720", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee04720C1Ev();
+extern void _ZN7ee04720D1Ev();
+Name_Map name_map_ee04720[] = {
+ NSPAIR(_ZN7ee04720C1Ev),
+ NSPAIR(_ZN7ee04720D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc720;
+extern VTBL_ENTRY _ZTI5cc720[];
+extern VTBL_ENTRY _ZTV5cc720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc720[];
+extern Class_Descriptor cd_dd4720;
+extern VTBL_ENTRY _ZTI6dd4720[];
+extern VTBL_ENTRY _ZTV6dd4720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4720[];
+static Base_Class bases_ee04720[] = {
+ // 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_bb20, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc720, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4720, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee04720[];
+extern void _ZN5cc7203fooEv();
+extern void _ZN6dd47203barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7203fooEv,_ZThn16_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee04720[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN6dd47203barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee04720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee04720[];
+extern void _ZN5cc7203fooEv();
+extern void _ZN6dd47203barEv();
+static VTBL_ENTRY _tg__ZTV6dd4720__7ee04720[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN6dd47203barEv,
+};
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc7206dd4720__7ee04720[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7203fooEv,_ZThn16_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc7206dd4720__7ee04720[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7203fooEv,_ZThn16_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd4720__7ee04720[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+static VTT_ENTRY vtt_ee04720[] = {
+ {&(_ZTV7ee04720[3]), 3,9},
+ {&(_tg__ZTV6dd4720__7ee04720[3]), 3,5},
+ {&(_tg__ZTV5cc7206dd4720__7ee04720[3]), 3,5},
+ {&(_tg__ZTV4bb20__5cc7206dd4720__7ee04720[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd4720__7ee04720[3]), 3,4},
+ {&(_ZTV7ee04720[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee04720[];
+extern VTBL_ENTRY _ZTV7ee04720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee04720[];
+static VTBL_ENTRY alt_thunk_names391[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7203fooEv,_ZThn16_N5cc7203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7203fooEv,_ZThn16_N5cc7203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7203fooEv,_ZThn16_N5cc7203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee04720 = { "ee04720", // class name
+ bases_ee04720, 4,
+ &(vtc_ee04720[0]), // expected_vtbl_contents
+ &(vtt_ee04720[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee04720),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04720),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee04720),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names391,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee14720 : virtual dd4720 {
+ int e;
+ ~ee14720(); // tgen
+ ee14720(); // tgen
+};
+//SIG(1 ee14720) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v2 Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee14720 ::~ee14720(){ note_dtor("ee14720", this);} // tgen
+ee14720 ::ee14720(){ note_ctor("ee14720", this);} // tgen
+
+static void Test_ee14720()
+{
+ extern Class_Descriptor cd_ee14720;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee14720, buf);
+ ee14720 *dp, &lv = *(dp=new (buf) ee14720());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee14720)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14720)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee14720");
+ check_base_class_offset(lv, (bb20*)(cc720*)(dd4720*), ABISELECT(32,20), "ee14720");
+ check_base_class_offset(lv, (cc720*)(dd4720*), ABISELECT(16,8), "ee14720");
+ check_base_class_offset(lv, (dd4720*), ABISELECT(16,8), "ee14720");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14720.e");
+ test_class_info(&lv, &cd_ee14720);
+ dp->~ee14720();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14720(Test_ee14720, "ee14720", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee14720C1Ev();
+extern void _ZN7ee14720D1Ev();
+Name_Map name_map_ee14720[] = {
+ NSPAIR(_ZN7ee14720C1Ev),
+ NSPAIR(_ZN7ee14720D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc720;
+extern VTBL_ENTRY _ZTI5cc720[];
+extern VTBL_ENTRY _ZTV5cc720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc720[];
+extern Class_Descriptor cd_dd4720;
+extern VTBL_ENTRY _ZTI6dd4720[];
+extern VTBL_ENTRY _ZTV6dd4720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4720[];
+static Base_Class bases_ee14720[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc720, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4720, 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 _ZTI7ee14720[];
+extern void _ZN5cc7203fooEv();
+extern void _ZN6dd47203barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn12_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee14720[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14720[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN6dd47203barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee14720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee14720[];
+extern void _ZN5cc7203fooEv();
+extern void _ZN6dd47203barEv();
+static VTBL_ENTRY _tg__ZTV6dd4720__7ee14720[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN6dd47203barEv,
+};
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc7206dd4720__7ee14720[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn12_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc7206dd4720__7ee14720[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn12_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd4720__7ee14720[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+static VTT_ENTRY vtt_ee14720[] = {
+ {&(_ZTV7ee14720[4]), 4,15},
+ {&(_ZTV7ee14720[9]), 9,15},
+ {&(_ZTV7ee14720[14]), 14,15},
+ {&(_tg__ZTV6dd4720__7ee14720[3]), 3,5},
+ {&(_tg__ZTV5cc7206dd4720__7ee14720[3]), 3,5},
+ {&(_tg__ZTV4bb20__5cc7206dd4720__7ee14720[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd4720__7ee14720[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee14720[];
+extern VTBL_ENTRY _ZTV7ee14720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14720[];
+static VTBL_ENTRY alt_thunk_names392[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn12_N5cc7203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn12_N5cc7203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn12_N5cc7203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee14720 = { "ee14720", // class name
+ bases_ee14720, 4,
+ &(vtc_ee14720[0]), // expected_vtbl_contents
+ &(vtt_ee14720[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee14720),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14720),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14720),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names392,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee24720 : dd4720 {
+ int e;
+ virtual void foo(); // _ZN7ee247203fooEv
+ ~ee24720(); // tgen
+ ee24720(); // tgen
+};
+//SIG(1 ee24720) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v1 Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee24720 ::foo(){vfunc_called(this, "_ZN7ee247203fooEv");}
+ee24720 ::~ee24720(){ note_dtor("ee24720", this);} // tgen
+ee24720 ::ee24720(){ note_ctor("ee24720", this);} // tgen
+
+static void Test_ee24720()
+{
+ extern Class_Descriptor cd_ee24720;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee24720, buf);
+ ee24720 *dp, &lv = *(dp=new (buf) ee24720());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee24720)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24720)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(32,20), "ee24720");
+ check_base_class_offset(lv, (bb20*)(cc720*)(dd4720*), ABISELECT(24,16), "ee24720");
+ check_base_class_offset(lv, (cc720*)(dd4720*), 0, "ee24720");
+ check_base_class_offset(lv, (dd4720*), 0, "ee24720");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee24720.e");
+ test_class_info(&lv, &cd_ee24720);
+ dp->~ee24720();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24720(Test_ee24720, "ee24720", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee24720C1Ev();
+extern void _ZN7ee24720D1Ev();
+Name_Map name_map_ee24720[] = {
+ NSPAIR(_ZN7ee24720C1Ev),
+ NSPAIR(_ZN7ee24720D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc720;
+extern VTBL_ENTRY _ZTI5cc720[];
+extern VTBL_ENTRY _ZTV5cc720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc720[];
+extern Class_Descriptor cd_dd4720;
+extern VTBL_ENTRY _ZTI6dd4720[];
+extern VTBL_ENTRY _ZTV6dd4720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4720[];
+static Base_Class bases_ee24720[] = {
+ // 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_bb20, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc720, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4720, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee24720[];
+extern void _ZN7ee247203fooEv();
+extern void _ZN6dd47203barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee247203fooEv,_ZTv0_n12_N7ee247203fooEv)();
+extern void ABISELECT(_ZThn24_N7ee247203fooEv,_ZThn16_N7ee247203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee24720[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24720[0]),
+ (VTBL_ENTRY)&_ZN7ee247203fooEv,
+ (VTBL_ENTRY)&_ZN6dd47203barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee24720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee247203fooEv,_ZTv0_n12_N7ee247203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee24720[];
+extern void _ZN5cc7203fooEv();
+extern void _ZN6dd47203barEv();
+static VTBL_ENTRY _tg__ZTV6dd4720__7ee24720[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN6dd47203barEv,
+};
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc7206dd4720__7ee24720[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7203fooEv,_ZThn16_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc7206dd4720__7ee24720[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7203fooEv,_ZThn16_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd4720__7ee24720[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+static VTT_ENTRY vtt_ee24720[] = {
+ {&(_ZTV7ee24720[3]), 3,9},
+ {&(_tg__ZTV6dd4720__7ee24720[3]), 3,5},
+ {&(_tg__ZTV5cc7206dd4720__7ee24720[3]), 3,5},
+ {&(_tg__ZTV4bb20__5cc7206dd4720__7ee24720[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd4720__7ee24720[3]), 3,4},
+ {&(_ZTV7ee24720[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee24720[];
+extern VTBL_ENTRY _ZTV7ee24720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee24720[];
+static VTBL_ENTRY alt_thunk_names393[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7203fooEv,_ZThn16_N5cc7203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7203fooEv,_ZThn16_N5cc7203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee247203fooEv,_ZTv0_n12_N7ee247203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee247203fooEv,_ZThn16_N7ee247203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee24720 = { "ee24720", // class name
+ bases_ee24720, 4,
+ &(vtc_ee24720[0]), // expected_vtbl_contents
+ &(vtt_ee24720[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee24720),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24720),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee24720),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names393,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee34720 : virtual dd4720 {
+ int e;
+ virtual void foo(); // _ZN7ee347203fooEv
+ ~ee34720(); // tgen
+ ee34720(); // tgen
+};
+//SIG(1 ee34720) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v1 Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee34720 ::foo(){vfunc_called(this, "_ZN7ee347203fooEv");}
+ee34720 ::~ee34720(){ note_dtor("ee34720", this);} // tgen
+ee34720 ::ee34720(){ note_ctor("ee34720", this);} // tgen
+
+static void Test_ee34720()
+{
+ extern Class_Descriptor cd_ee34720;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee34720, buf);
+ ee34720 *dp, &lv = *(dp=new (buf) ee34720());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee34720)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34720)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee34720");
+ check_base_class_offset(lv, (bb20*)(cc720*)(dd4720*), ABISELECT(32,20), "ee34720");
+ check_base_class_offset(lv, (cc720*)(dd4720*), ABISELECT(16,8), "ee34720");
+ check_base_class_offset(lv, (dd4720*), ABISELECT(16,8), "ee34720");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34720.e");
+ test_class_info(&lv, &cd_ee34720);
+ dp->~ee34720();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34720(Test_ee34720, "ee34720", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee34720C1Ev();
+extern void _ZN7ee34720D1Ev();
+Name_Map name_map_ee34720[] = {
+ NSPAIR(_ZN7ee34720C1Ev),
+ NSPAIR(_ZN7ee34720D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc720;
+extern VTBL_ENTRY _ZTI5cc720[];
+extern VTBL_ENTRY _ZTV5cc720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc720[];
+extern Class_Descriptor cd_dd4720;
+extern VTBL_ENTRY _ZTI6dd4720[];
+extern VTBL_ENTRY _ZTV6dd4720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4720[];
+static Base_Class bases_ee34720[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc720, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4720, 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 _ZTI7ee34720[];
+extern void _ZN7ee347203fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee347203fooEv,_ZTv0_n16_N7ee347203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee347203fooEv,_ZThn8_N7ee347203fooEv)() __attribute__((weak));
+extern void _ZN6dd47203barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee347203fooEv,_ZTv0_n12_N7ee347203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee347203fooEv,_ZThn20_N7ee347203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee34720[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34720[0]),
+ (VTBL_ENTRY)&_ZN7ee347203fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee347203fooEv,_ZTv0_n16_N7ee347203fooEv),
+ (VTBL_ENTRY)&_ZN6dd47203barEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee34720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee347203fooEv,_ZTv0_n12_N7ee347203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee34720[];
+extern void _ZN5cc7203fooEv();
+extern void _ZN6dd47203barEv();
+static VTBL_ENTRY _tg__ZTV6dd4720__7ee34720[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN6dd47203barEv,
+};
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc7206dd4720__7ee34720[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn12_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc7206dd4720__7ee34720[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn12_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd4720__7ee34720[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+static VTT_ENTRY vtt_ee34720[] = {
+ {&(_ZTV7ee34720[4]), 4,16},
+ {&(_ZTV7ee34720[10]), 10,16},
+ {&(_ZTV7ee34720[15]), 15,16},
+ {&(_tg__ZTV6dd4720__7ee34720[3]), 3,5},
+ {&(_tg__ZTV5cc7206dd4720__7ee34720[3]), 3,5},
+ {&(_tg__ZTV4bb20__5cc7206dd4720__7ee34720[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd4720__7ee34720[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee34720[];
+extern VTBL_ENTRY _ZTV7ee34720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34720[];
+static VTBL_ENTRY alt_thunk_names394[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn12_N5cc7203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn12_N5cc7203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee347203fooEv,_ZTv0_n12_N7ee347203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee347203fooEv,_ZThn20_N7ee347203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee347203fooEv,_ZTv0_n16_N7ee347203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee347203fooEv,_ZThn8_N7ee347203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34720 = { "ee34720", // class name
+ bases_ee34720, 4,
+ &(vtc_ee34720[0]), // expected_vtbl_contents
+ &(vtt_ee34720[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee34720),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34720),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34720),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names394,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee44720 : dd4720 {
+ int e;
+ virtual void bar(); // _ZN7ee447203barEv
+ ~ee44720(); // tgen
+ ee44720(); // tgen
+};
+//SIG(1 ee44720) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v2 Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee44720 ::bar(){vfunc_called(this, "_ZN7ee447203barEv");}
+ee44720 ::~ee44720(){ note_dtor("ee44720", this);} // tgen
+ee44720 ::ee44720(){ note_ctor("ee44720", this);} // tgen
+
+static void Test_ee44720()
+{
+ extern Class_Descriptor cd_ee44720;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee44720, buf);
+ ee44720 *dp, &lv = *(dp=new (buf) ee44720());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee44720)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44720)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(32,20), "ee44720");
+ check_base_class_offset(lv, (bb20*)(cc720*)(dd4720*), ABISELECT(24,16), "ee44720");
+ check_base_class_offset(lv, (cc720*)(dd4720*), 0, "ee44720");
+ check_base_class_offset(lv, (dd4720*), 0, "ee44720");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee44720.e");
+ test_class_info(&lv, &cd_ee44720);
+ dp->~ee44720();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44720(Test_ee44720, "ee44720", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee44720C1Ev();
+extern void _ZN7ee44720D1Ev();
+Name_Map name_map_ee44720[] = {
+ NSPAIR(_ZN7ee44720C1Ev),
+ NSPAIR(_ZN7ee44720D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc720;
+extern VTBL_ENTRY _ZTI5cc720[];
+extern VTBL_ENTRY _ZTV5cc720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc720[];
+extern Class_Descriptor cd_dd4720;
+extern VTBL_ENTRY _ZTI6dd4720[];
+extern VTBL_ENTRY _ZTV6dd4720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4720[];
+static Base_Class bases_ee44720[] = {
+ // 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_bb20, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc720, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4720, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee44720[];
+extern void _ZN5cc7203fooEv();
+extern void _ZN7ee447203barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7203fooEv,_ZThn16_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee44720[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN7ee447203barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee44720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee44720[];
+extern void _ZN5cc7203fooEv();
+extern void _ZN6dd47203barEv();
+static VTBL_ENTRY _tg__ZTV6dd4720__7ee44720[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN6dd47203barEv,
+};
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc7206dd4720__7ee44720[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7203fooEv,_ZThn16_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc7206dd4720__7ee44720[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7203fooEv,_ZThn16_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd4720__7ee44720[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+static VTT_ENTRY vtt_ee44720[] = {
+ {&(_ZTV7ee44720[3]), 3,9},
+ {&(_tg__ZTV6dd4720__7ee44720[3]), 3,5},
+ {&(_tg__ZTV5cc7206dd4720__7ee44720[3]), 3,5},
+ {&(_tg__ZTV4bb20__5cc7206dd4720__7ee44720[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd4720__7ee44720[3]), 3,4},
+ {&(_ZTV7ee44720[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee44720[];
+extern VTBL_ENTRY _ZTV7ee44720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee44720[];
+static VTBL_ENTRY alt_thunk_names395[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7203fooEv,_ZThn16_N5cc7203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7203fooEv,_ZThn16_N5cc7203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7203fooEv,_ZThn16_N5cc7203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee44720 = { "ee44720", // class name
+ bases_ee44720, 4,
+ &(vtc_ee44720[0]), // expected_vtbl_contents
+ &(vtt_ee44720[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee44720),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44720),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee44720),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names395,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee54720 : virtual dd4720 {
+ int e;
+ virtual void bar(); // _ZN7ee547203barEv
+ ~ee54720(); // tgen
+ ee54720(); // tgen
+};
+//SIG(1 ee54720) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v2 Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee54720 ::bar(){vfunc_called(this, "_ZN7ee547203barEv");}
+ee54720 ::~ee54720(){ note_dtor("ee54720", this);} // tgen
+ee54720 ::ee54720(){ note_ctor("ee54720", this);} // tgen
+
+static void Test_ee54720()
+{
+ extern Class_Descriptor cd_ee54720;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee54720, buf);
+ ee54720 *dp, &lv = *(dp=new (buf) ee54720());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee54720)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54720)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee54720");
+ check_base_class_offset(lv, (bb20*)(cc720*)(dd4720*), ABISELECT(32,20), "ee54720");
+ check_base_class_offset(lv, (cc720*)(dd4720*), ABISELECT(16,8), "ee54720");
+ check_base_class_offset(lv, (dd4720*), ABISELECT(16,8), "ee54720");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54720.e");
+ test_class_info(&lv, &cd_ee54720);
+ dp->~ee54720();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54720(Test_ee54720, "ee54720", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee54720C1Ev();
+extern void _ZN7ee54720D1Ev();
+Name_Map name_map_ee54720[] = {
+ NSPAIR(_ZN7ee54720C1Ev),
+ NSPAIR(_ZN7ee54720D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc720;
+extern VTBL_ENTRY _ZTI5cc720[];
+extern VTBL_ENTRY _ZTV5cc720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc720[];
+extern Class_Descriptor cd_dd4720;
+extern VTBL_ENTRY _ZTI6dd4720[];
+extern VTBL_ENTRY _ZTV6dd4720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4720[];
+static Base_Class bases_ee54720[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc720, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4720, 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 _ZTI7ee54720[];
+extern void _ZN7ee547203barEv();
+extern void _ZN5cc7203fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee547203barEv,_ZTv0_n20_N7ee547203barEv)();
+extern void ABISELECT(_ZThn16_N7ee547203barEv,_ZThn8_N7ee547203barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn12_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54720[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54720[0]),
+ (VTBL_ENTRY)&_ZN7ee547203barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee547203barEv,_ZTv0_n20_N7ee547203barEv),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee54720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee54720[];
+extern void _ZN5cc7203fooEv();
+extern void _ZN6dd47203barEv();
+static VTBL_ENTRY _tg__ZTV6dd4720__7ee54720[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN6dd47203barEv,
+};
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc7206dd4720__7ee54720[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn12_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc7206dd4720__7ee54720[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn12_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd4720__7ee54720[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+static VTT_ENTRY vtt_ee54720[] = {
+ {&(_ZTV7ee54720[4]), 4,16},
+ {&(_ZTV7ee54720[10]), 10,16},
+ {&(_ZTV7ee54720[15]), 15,16},
+ {&(_tg__ZTV6dd4720__7ee54720[3]), 3,5},
+ {&(_tg__ZTV5cc7206dd4720__7ee54720[3]), 3,5},
+ {&(_tg__ZTV4bb20__5cc7206dd4720__7ee54720[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd4720__7ee54720[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee54720[];
+extern VTBL_ENTRY _ZTV7ee54720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54720[];
+static VTBL_ENTRY alt_thunk_names396[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn12_N5cc7203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn12_N5cc7203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn12_N5cc7203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee547203barEv,_ZTv0_n20_N7ee547203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee547203barEv,_ZThn8_N7ee547203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54720 = { "ee54720", // class name
+ bases_ee54720, 4,
+ &(vtc_ee54720[0]), // expected_vtbl_contents
+ &(vtt_ee54720[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee54720),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54720),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54720),7, //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 ee64720 : dd4720 {
+ int e;
+ virtual void foo(); // _ZN7ee647203fooEv
+ virtual void bar(); // _ZN7ee647203barEv
+ ~ee64720(); // tgen
+ ee64720(); // tgen
+};
+//SIG(1 ee64720) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v1 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64720 ::foo(){vfunc_called(this, "_ZN7ee647203fooEv");}
+void ee64720 ::bar(){vfunc_called(this, "_ZN7ee647203barEv");}
+ee64720 ::~ee64720(){ note_dtor("ee64720", this);} // tgen
+ee64720 ::ee64720(){ note_ctor("ee64720", this);} // tgen
+
+static void Test_ee64720()
+{
+ extern Class_Descriptor cd_ee64720;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee64720, buf);
+ ee64720 *dp, &lv = *(dp=new (buf) ee64720());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee64720)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64720)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(32,20), "ee64720");
+ check_base_class_offset(lv, (bb20*)(cc720*)(dd4720*), ABISELECT(24,16), "ee64720");
+ check_base_class_offset(lv, (cc720*)(dd4720*), 0, "ee64720");
+ check_base_class_offset(lv, (dd4720*), 0, "ee64720");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee64720.e");
+ test_class_info(&lv, &cd_ee64720);
+ dp->~ee64720();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64720(Test_ee64720, "ee64720", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee64720C1Ev();
+extern void _ZN7ee64720D1Ev();
+Name_Map name_map_ee64720[] = {
+ NSPAIR(_ZN7ee64720C1Ev),
+ NSPAIR(_ZN7ee64720D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc720;
+extern VTBL_ENTRY _ZTI5cc720[];
+extern VTBL_ENTRY _ZTV5cc720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc720[];
+extern Class_Descriptor cd_dd4720;
+extern VTBL_ENTRY _ZTI6dd4720[];
+extern VTBL_ENTRY _ZTV6dd4720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4720[];
+static Base_Class bases_ee64720[] = {
+ // 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_bb20, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc720, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4720, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee64720[];
+extern void _ZN7ee647203fooEv();
+extern void _ZN7ee647203barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee647203fooEv,_ZTv0_n12_N7ee647203fooEv)();
+extern void ABISELECT(_ZThn24_N7ee647203fooEv,_ZThn16_N7ee647203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee64720[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64720[0]),
+ (VTBL_ENTRY)&_ZN7ee647203fooEv,
+ (VTBL_ENTRY)&_ZN7ee647203barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee64720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee647203fooEv,_ZTv0_n12_N7ee647203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee64720[];
+extern void _ZN5cc7203fooEv();
+extern void _ZN6dd47203barEv();
+static VTBL_ENTRY _tg__ZTV6dd4720__7ee64720[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN6dd47203barEv,
+};
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc7206dd4720__7ee64720[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7203fooEv,_ZThn16_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc7206dd4720__7ee64720[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7203fooEv,_ZThn16_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd4720__7ee64720[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+static VTT_ENTRY vtt_ee64720[] = {
+ {&(_ZTV7ee64720[3]), 3,9},
+ {&(_tg__ZTV6dd4720__7ee64720[3]), 3,5},
+ {&(_tg__ZTV5cc7206dd4720__7ee64720[3]), 3,5},
+ {&(_tg__ZTV4bb20__5cc7206dd4720__7ee64720[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd4720__7ee64720[3]), 3,4},
+ {&(_ZTV7ee64720[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee64720[];
+extern VTBL_ENTRY _ZTV7ee64720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee64720[];
+static VTBL_ENTRY alt_thunk_names397[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7203fooEv,_ZThn16_N5cc7203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7203fooEv,_ZThn16_N5cc7203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee647203fooEv,_ZTv0_n12_N7ee647203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee647203fooEv,_ZThn16_N7ee647203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee64720 = { "ee64720", // class name
+ bases_ee64720, 4,
+ &(vtc_ee64720[0]), // expected_vtbl_contents
+ &(vtt_ee64720[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee64720),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64720),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee64720),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names397,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee74720 : virtual dd4720 {
+ int e;
+ virtual void foo(); // _ZN7ee747203fooEv
+ virtual void bar(); // _ZN7ee747203barEv
+ ~ee74720(); // tgen
+ ee74720(); // tgen
+};
+//SIG(1 ee74720) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v1 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74720 ::foo(){vfunc_called(this, "_ZN7ee747203fooEv");}
+void ee74720 ::bar(){vfunc_called(this, "_ZN7ee747203barEv");}
+ee74720 ::~ee74720(){ note_dtor("ee74720", this);} // tgen
+ee74720 ::ee74720(){ note_ctor("ee74720", this);} // tgen
+
+static void Test_ee74720()
+{
+ extern Class_Descriptor cd_ee74720;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee74720, buf);
+ ee74720 *dp, &lv = *(dp=new (buf) ee74720());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee74720)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74720)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee74720");
+ check_base_class_offset(lv, (bb20*)(cc720*)(dd4720*), ABISELECT(32,20), "ee74720");
+ check_base_class_offset(lv, (cc720*)(dd4720*), ABISELECT(16,8), "ee74720");
+ check_base_class_offset(lv, (dd4720*), ABISELECT(16,8), "ee74720");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74720.e");
+ test_class_info(&lv, &cd_ee74720);
+ dp->~ee74720();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74720(Test_ee74720, "ee74720", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee74720C1Ev();
+extern void _ZN7ee74720D1Ev();
+Name_Map name_map_ee74720[] = {
+ NSPAIR(_ZN7ee74720C1Ev),
+ NSPAIR(_ZN7ee74720D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc720;
+extern VTBL_ENTRY _ZTI5cc720[];
+extern VTBL_ENTRY _ZTV5cc720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc720[];
+extern Class_Descriptor cd_dd4720;
+extern VTBL_ENTRY _ZTI6dd4720[];
+extern VTBL_ENTRY _ZTV6dd4720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4720[];
+static Base_Class bases_ee74720[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc720, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4720, ABISELECT(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 _ZTI7ee74720[];
+extern void _ZN7ee747203fooEv();
+extern void _ZN7ee747203barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee747203fooEv,_ZTv0_n16_N7ee747203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee747203fooEv,_ZThn8_N7ee747203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee747203barEv,_ZTv0_n20_N7ee747203barEv)();
+extern void ABISELECT(_ZThn16_N7ee747203barEv,_ZThn8_N7ee747203barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee747203fooEv,_ZTv0_n12_N7ee747203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee747203fooEv,_ZThn20_N7ee747203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74720[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74720[0]),
+ (VTBL_ENTRY)&_ZN7ee747203fooEv,
+ (VTBL_ENTRY)&_ZN7ee747203barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee747203fooEv,_ZTv0_n16_N7ee747203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee747203barEv,_ZTv0_n20_N7ee747203barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee74720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee747203fooEv,_ZTv0_n12_N7ee747203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee74720[];
+extern void _ZN5cc7203fooEv();
+extern void _ZN6dd47203barEv();
+static VTBL_ENTRY _tg__ZTV6dd4720__7ee74720[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN6dd47203barEv,
+};
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc7206dd4720__7ee74720[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn12_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc7206dd4720__7ee74720[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn12_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd4720__7ee74720[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+static VTT_ENTRY vtt_ee74720[] = {
+ {&(_ZTV7ee74720[4]), 4,17},
+ {&(_ZTV7ee74720[11]), 11,17},
+ {&(_ZTV7ee74720[16]), 16,17},
+ {&(_tg__ZTV6dd4720__7ee74720[3]), 3,5},
+ {&(_tg__ZTV5cc7206dd4720__7ee74720[3]), 3,5},
+ {&(_tg__ZTV4bb20__5cc7206dd4720__7ee74720[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd4720__7ee74720[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee74720[];
+extern VTBL_ENTRY _ZTV7ee74720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74720[];
+static VTBL_ENTRY alt_thunk_names398[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn12_N5cc7203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn12_N5cc7203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee747203fooEv,_ZTv0_n12_N7ee747203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee747203fooEv,_ZThn20_N7ee747203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee747203barEv,_ZTv0_n20_N7ee747203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee747203barEv,_ZThn8_N7ee747203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee747203fooEv,_ZTv0_n16_N7ee747203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee747203fooEv,_ZThn8_N7ee747203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74720 = { "ee74720", // class name
+ bases_ee74720, 4,
+ &(vtc_ee74720[0]), // expected_vtbl_contents
+ &(vtt_ee74720[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee74720),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74720),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74720),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names398,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd5720 : virtual cc720 {
+ int d;
+ virtual void bar(); // _ZN6dd57203barEv
+ ~dd5720(); // tgen
+ dd5720(); // tgen
+};
+//SIG(-1 dd5720) C1{ VBC2{ VBC3{ BC4{ Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void dd5720 ::bar(){vfunc_called(this, "_ZN6dd57203barEv");}
+dd5720 ::~dd5720(){ note_dtor("dd5720", this);} // tgen
+dd5720 ::dd5720(){ note_ctor("dd5720", this);} // tgen
+
+static void Test_dd5720()
+{
+ extern Class_Descriptor cd_dd5720;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd5720, buf);
+ dd5720 *dp, &lv = *(dp=new (buf) dd5720());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd5720)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5720)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,20), "dd5720");
+ check_base_class_offset(lv, (bb20*)(cc720*), ABISELECT(32,16), "dd5720");
+ check_base_class_offset(lv, (cc720*), ABISELECT(16,8), "dd5720");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5720.d");
+ test_class_info(&lv, &cd_dd5720);
+ dp->~dd5720();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5720(Test_dd5720, "dd5720", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd5720C1Ev();
+extern void _ZN6dd5720D1Ev();
+Name_Map name_map_dd5720[] = {
+ NSPAIR(_ZN6dd5720C1Ev),
+ NSPAIR(_ZN6dd5720D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc720;
+extern VTBL_ENTRY _ZTI5cc720[];
+extern VTBL_ENTRY _ZTV5cc720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc720[];
+static Base_Class bases_dd5720[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc720, 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 _ZTI6dd5720[];
+extern void _ZN6dd57203barEv();
+extern void _ZN5cc7203fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57203barEv,_ZTv0_n20_N6dd57203barEv)();
+extern void ABISELECT(_ZThn16_N6dd57203barEv,_ZThn8_N6dd57203barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd5720[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5720[0]),
+ (VTBL_ENTRY)&_ZN6dd57203barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57203barEv,_ZTv0_n20_N6dd57203barEv),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd5720[];
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc720__6dd5720[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc720__6dd5720[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+static VTT_ENTRY vtt_dd5720[] = {
+ {&(_ZTV6dd5720[4]), 4,16},
+ {&(_ZTV6dd5720[10]), 10,16},
+ {&(_ZTV6dd5720[15]), 15,16},
+ {&(_tg__ZTV5cc720__6dd5720[3]), 3,5},
+ {&(_tg__ZTV4bb20__5cc720__6dd5720[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd5720[];
+extern VTBL_ENTRY _ZTV6dd5720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5720[];
+static VTBL_ENTRY alt_thunk_names399[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57203barEv,_ZTv0_n20_N6dd57203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57203barEv,_ZThn8_N6dd57203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5720 = { "dd5720", // class name
+ bases_dd5720, 3,
+ &(vtc_dd5720[0]), // expected_vtbl_contents
+ &(vtt_dd5720[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd5720),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5720),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5720),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names399,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05720 : dd5720 {
+ int e;
+ ~ee05720(); // tgen
+ ee05720(); // tgen
+};
+//SIG(1 ee05720) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v2 Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee05720 ::~ee05720(){ note_dtor("ee05720", this);} // tgen
+ee05720 ::ee05720(){ note_ctor("ee05720", this);} // tgen
+
+static void Test_ee05720()
+{
+ extern Class_Descriptor cd_ee05720;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee05720, buf);
+ ee05720 *dp, &lv = *(dp=new (buf) ee05720());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee05720)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05720)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee05720");
+ check_base_class_offset(lv, (bb20*)(cc720*), ABISELECT(32,20), "ee05720");
+ check_base_class_offset(lv, (cc720*)(dd5720*), ABISELECT(16,12), "ee05720");
+ check_base_class_offset(lv, (dd5720*), 0, "ee05720");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05720.e");
+ test_class_info(&lv, &cd_ee05720);
+ dp->~ee05720();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05720(Test_ee05720, "ee05720", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee05720C1Ev();
+extern void _ZN7ee05720D1Ev();
+Name_Map name_map_ee05720[] = {
+ NSPAIR(_ZN7ee05720C1Ev),
+ NSPAIR(_ZN7ee05720D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc720;
+extern VTBL_ENTRY _ZTI5cc720[];
+extern VTBL_ENTRY _ZTV5cc720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc720[];
+extern Class_Descriptor cd_dd5720;
+extern VTBL_ENTRY _ZTI6dd5720[];
+extern VTBL_ENTRY _ZTV6dd5720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5720[];
+static Base_Class bases_ee05720[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc720, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5720, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05720[];
+extern void _ZN6dd57203barEv();
+extern void _ZN5cc7203fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57203barEv,_ZTv0_n20_N6dd57203barEv)();
+extern void ABISELECT(_ZThn16_N6dd57203barEv,_ZThn12_N6dd57203barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee05720[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05720[0]),
+ (VTBL_ENTRY)&_ZN6dd57203barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57203barEv,_ZTv0_n20_N6dd57203barEv),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee05720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee05720[];
+extern void _ZN6dd57203barEv();
+static VTBL_ENTRY _tg__ZTV6dd5720__7ee05720[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5720[0]),
+ (VTBL_ENTRY)&_ZN6dd57203barEv,
+};
+extern void _ZN5cc7203fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57203barEv,_ZTv0_n20_N6dd57203barEv)();
+extern void ABISELECT(_ZThn16_N6dd57203barEv,_ZThn12_N6dd57203barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc720__6dd5720__7ee05720[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57203barEv,_ZTv0_n20_N6dd57203barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd5720__7ee05720[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc720__7ee05720[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc720__7ee05720[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+static VTT_ENTRY vtt_ee05720[] = {
+ {&(_ZTV7ee05720[4]), 4,16},
+ {&(_tg__ZTV6dd5720__7ee05720[4]), 4,5},
+ {&(_tg__ZTV5cc720__6dd5720__7ee05720[5]), 5,7},
+ {&(_tg__ZTV4bb20__6dd5720__7ee05720[3]), 3,4},
+ {&(_ZTV7ee05720[10]), 10,16},
+ {&(_ZTV7ee05720[15]), 15,16},
+ {&(_tg__ZTV5cc720__7ee05720[3]), 3,5},
+ {&(_tg__ZTV4bb20__5cc720__7ee05720[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee05720[];
+extern VTBL_ENTRY _ZTV7ee05720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05720[];
+static VTBL_ENTRY alt_thunk_names400[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57203barEv,_ZTv0_n20_N6dd57203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57203barEv,_ZThn12_N6dd57203barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57203barEv,_ZThn12_N6dd57203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05720 = { "ee05720", // class name
+ bases_ee05720, 4,
+ &(vtc_ee05720[0]), // expected_vtbl_contents
+ &(vtt_ee05720[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee05720),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05720),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05720),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names400,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee15720 : virtual dd5720 {
+ int e;
+ ~ee15720(); // tgen
+ ee15720(); // tgen
+};
+//SIG(1 ee15720) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v2 Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee15720 ::~ee15720(){ note_dtor("ee15720", this);} // tgen
+ee15720 ::ee15720(){ note_ctor("ee15720", this);} // tgen
+
+static void Test_ee15720()
+{
+ extern Class_Descriptor cd_ee15720;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee15720, buf);
+ ee15720 *dp, &lv = *(dp=new (buf) ee15720());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee15720)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15720)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(56,28), "ee15720");
+ check_base_class_offset(lv, (bb20*)(cc720*), ABISELECT(48,24), "ee15720");
+ check_base_class_offset(lv, (cc720*)(dd5720*), ABISELECT(32,16), "ee15720");
+ check_base_class_offset(lv, (dd5720*), ABISELECT(16,8), "ee15720");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15720.e");
+ test_class_info(&lv, &cd_ee15720);
+ dp->~ee15720();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15720(Test_ee15720, "ee15720", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee15720C1Ev();
+extern void _ZN7ee15720D1Ev();
+Name_Map name_map_ee15720[] = {
+ NSPAIR(_ZN7ee15720C1Ev),
+ NSPAIR(_ZN7ee15720D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc720;
+extern VTBL_ENTRY _ZTI5cc720[];
+extern VTBL_ENTRY _ZTV5cc720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc720[];
+extern Class_Descriptor cd_dd5720;
+extern VTBL_ENTRY _ZTI6dd5720[];
+extern VTBL_ENTRY _ZTV6dd5720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5720[];
+static Base_Class bases_ee15720[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(56,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc720, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5720, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee15720[];
+extern void _ZN6dd57203barEv();
+extern void _ZN5cc7203fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57203barEv,_ZTv0_n20_N6dd57203barEv)();
+extern void ABISELECT(_ZThn16_N6dd57203barEv,_ZThn8_N6dd57203barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee15720[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15720[0]),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15720[0]),
+ (VTBL_ENTRY)&_ZN6dd57203barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57203barEv,_ZTv0_n20_N6dd57203barEv),
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee15720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee15720[];
+extern void _ZN6dd57203barEv();
+static VTBL_ENTRY _tg__ZTV6dd5720__7ee15720[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5720[0]),
+ (VTBL_ENTRY)&_ZN6dd57203barEv,
+};
+extern void _ZN5cc7203fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57203barEv,_ZTv0_n20_N6dd57203barEv)();
+extern void ABISELECT(_ZThn16_N6dd57203barEv,_ZThn8_N6dd57203barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc720__6dd5720__7ee15720[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57203barEv,_ZTv0_n20_N6dd57203barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd5720__7ee15720[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc720__7ee15720[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc720__7ee15720[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+static VTT_ENTRY vtt_ee15720[] = {
+ {&(_ZTV7ee15720[5]), 5,22},
+ {&(_ZTV7ee15720[10]), 10,22},
+ {&(_ZTV7ee15720[16]), 16,22},
+ {&(_ZTV7ee15720[21]), 21,22},
+ {&(_tg__ZTV6dd5720__7ee15720[4]), 4,5},
+ {&(_tg__ZTV5cc720__6dd5720__7ee15720[5]), 5,7},
+ {&(_tg__ZTV4bb20__6dd5720__7ee15720[3]), 3,4},
+ {&(_tg__ZTV5cc720__7ee15720[3]), 3,5},
+ {&(_tg__ZTV4bb20__5cc720__7ee15720[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee15720[];
+extern VTBL_ENTRY _ZTV7ee15720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15720[];
+static VTBL_ENTRY alt_thunk_names401[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57203barEv,_ZTv0_n20_N6dd57203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57203barEv,_ZThn8_N6dd57203barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57203barEv,_ZThn8_N6dd57203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15720 = { "ee15720", // class name
+ bases_ee15720, 4,
+ &(vtc_ee15720[0]), // expected_vtbl_contents
+ &(vtt_ee15720[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee15720),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15720),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15720),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names401,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee25720 : dd5720 {
+ int e;
+ virtual void foo(); // _ZN7ee257203fooEv
+ ~ee25720(); // tgen
+ ee25720(); // tgen
+};
+//SIG(1 ee25720) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v1 Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee25720 ::foo(){vfunc_called(this, "_ZN7ee257203fooEv");}
+ee25720 ::~ee25720(){ note_dtor("ee25720", this);} // tgen
+ee25720 ::ee25720(){ note_ctor("ee25720", this);} // tgen
+
+static void Test_ee25720()
+{
+ extern Class_Descriptor cd_ee25720;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee25720, buf);
+ ee25720 *dp, &lv = *(dp=new (buf) ee25720());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee25720)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25720)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee25720");
+ check_base_class_offset(lv, (bb20*)(cc720*), ABISELECT(32,20), "ee25720");
+ check_base_class_offset(lv, (cc720*)(dd5720*), ABISELECT(16,12), "ee25720");
+ check_base_class_offset(lv, (dd5720*), 0, "ee25720");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25720.e");
+ test_class_info(&lv, &cd_ee25720);
+ dp->~ee25720();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25720(Test_ee25720, "ee25720", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee25720C1Ev();
+extern void _ZN7ee25720D1Ev();
+Name_Map name_map_ee25720[] = {
+ NSPAIR(_ZN7ee25720C1Ev),
+ NSPAIR(_ZN7ee25720D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc720;
+extern VTBL_ENTRY _ZTI5cc720[];
+extern VTBL_ENTRY _ZTV5cc720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc720[];
+extern Class_Descriptor cd_dd5720;
+extern VTBL_ENTRY _ZTI6dd5720[];
+extern VTBL_ENTRY _ZTV6dd5720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5720[];
+static Base_Class bases_ee25720[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc720, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5720, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25720[];
+extern void _ZN6dd57203barEv();
+extern void _ZN7ee257203fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee257203fooEv,_ZTv0_n16_N7ee257203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee257203fooEv,_ZThn12_N7ee257203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd57203barEv,_ZTv0_n20_N6dd57203barEv)();
+extern void ABISELECT(_ZThn16_N6dd57203barEv,_ZThn12_N6dd57203barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee257203fooEv,_ZTv0_n12_N7ee257203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee257203fooEv,_ZThn20_N7ee257203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25720[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25720[0]),
+ (VTBL_ENTRY)&_ZN6dd57203barEv,
+ (VTBL_ENTRY)&_ZN7ee257203fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee257203fooEv,_ZTv0_n16_N7ee257203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57203barEv,_ZTv0_n20_N6dd57203barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee25720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee257203fooEv,_ZTv0_n12_N7ee257203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee25720[];
+extern void _ZN6dd57203barEv();
+static VTBL_ENTRY _tg__ZTV6dd5720__7ee25720[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5720[0]),
+ (VTBL_ENTRY)&_ZN6dd57203barEv,
+};
+extern void _ZN5cc7203fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57203barEv,_ZTv0_n20_N6dd57203barEv)();
+extern void ABISELECT(_ZThn16_N6dd57203barEv,_ZThn12_N6dd57203barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc720__6dd5720__7ee25720[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57203barEv,_ZTv0_n20_N6dd57203barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd5720__7ee25720[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc720__7ee25720[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc720__7ee25720[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+static VTT_ENTRY vtt_ee25720[] = {
+ {&(_ZTV7ee25720[4]), 4,17},
+ {&(_tg__ZTV6dd5720__7ee25720[4]), 4,5},
+ {&(_tg__ZTV5cc720__6dd5720__7ee25720[5]), 5,7},
+ {&(_tg__ZTV4bb20__6dd5720__7ee25720[3]), 3,4},
+ {&(_ZTV7ee25720[11]), 11,17},
+ {&(_ZTV7ee25720[16]), 16,17},
+ {&(_tg__ZTV5cc720__7ee25720[3]), 3,5},
+ {&(_tg__ZTV4bb20__5cc720__7ee25720[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee25720[];
+extern VTBL_ENTRY _ZTV7ee25720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25720[];
+static VTBL_ENTRY alt_thunk_names402[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee257203fooEv,_ZTv0_n12_N7ee257203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee257203fooEv,_ZThn20_N7ee257203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57203barEv,_ZTv0_n20_N6dd57203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57203barEv,_ZThn12_N6dd57203barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57203barEv,_ZThn12_N6dd57203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee257203fooEv,_ZTv0_n16_N7ee257203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee257203fooEv,_ZThn12_N7ee257203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25720 = { "ee25720", // class name
+ bases_ee25720, 4,
+ &(vtc_ee25720[0]), // expected_vtbl_contents
+ &(vtt_ee25720[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee25720),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25720),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25720),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names402,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee35720 : virtual dd5720 {
+ int e;
+ virtual void foo(); // _ZN7ee357203fooEv
+ ~ee35720(); // tgen
+ ee35720(); // tgen
+};
+//SIG(1 ee35720) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v1 Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee35720 ::foo(){vfunc_called(this, "_ZN7ee357203fooEv");}
+ee35720 ::~ee35720(){ note_dtor("ee35720", this);} // tgen
+ee35720 ::ee35720(){ note_ctor("ee35720", this);} // tgen
+
+static void Test_ee35720()
+{
+ extern Class_Descriptor cd_ee35720;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee35720, buf);
+ ee35720 *dp, &lv = *(dp=new (buf) ee35720());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee35720)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35720)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(56,28), "ee35720");
+ check_base_class_offset(lv, (bb20*)(cc720*), ABISELECT(48,24), "ee35720");
+ check_base_class_offset(lv, (cc720*)(dd5720*), ABISELECT(32,16), "ee35720");
+ check_base_class_offset(lv, (dd5720*), ABISELECT(16,8), "ee35720");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35720.e");
+ test_class_info(&lv, &cd_ee35720);
+ dp->~ee35720();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35720(Test_ee35720, "ee35720", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee35720C1Ev();
+extern void _ZN7ee35720D1Ev();
+Name_Map name_map_ee35720[] = {
+ NSPAIR(_ZN7ee35720C1Ev),
+ NSPAIR(_ZN7ee35720D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc720;
+extern VTBL_ENTRY _ZTI5cc720[];
+extern VTBL_ENTRY _ZTV5cc720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc720[];
+extern Class_Descriptor cd_dd5720;
+extern VTBL_ENTRY _ZTI6dd5720[];
+extern VTBL_ENTRY _ZTV6dd5720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5720[];
+static Base_Class bases_ee35720[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(56,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc720, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5720, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee35720[];
+extern void _ZN7ee357203fooEv();
+extern void _ZN6dd57203barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee357203fooEv,_ZTv0_n16_N7ee357203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee357203fooEv,_ZThn16_N7ee357203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd57203barEv,_ZTv0_n20_N6dd57203barEv)();
+extern void ABISELECT(_ZThn16_N6dd57203barEv,_ZThn8_N6dd57203barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee357203fooEv,_ZTv0_n12_N7ee357203fooEv)();
+extern void ABISELECT(_ZThn48_N7ee357203fooEv,_ZThn24_N7ee357203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35720[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35720[0]),
+ (VTBL_ENTRY)&_ZN7ee357203fooEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35720[0]),
+ (VTBL_ENTRY)&_ZN6dd57203barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee357203fooEv,_ZTv0_n16_N7ee357203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57203barEv,_ZTv0_n20_N6dd57203barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee35720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee357203fooEv,_ZTv0_n12_N7ee357203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee35720[];
+extern void _ZN6dd57203barEv();
+static VTBL_ENTRY _tg__ZTV6dd5720__7ee35720[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5720[0]),
+ (VTBL_ENTRY)&_ZN6dd57203barEv,
+};
+extern void _ZN5cc7203fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57203barEv,_ZTv0_n20_N6dd57203barEv)();
+extern void ABISELECT(_ZThn16_N6dd57203barEv,_ZThn8_N6dd57203barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc720__6dd5720__7ee35720[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57203barEv,_ZTv0_n20_N6dd57203barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd5720__7ee35720[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc720__7ee35720[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc720__7ee35720[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+static VTT_ENTRY vtt_ee35720[] = {
+ {&(_ZTV7ee35720[5]), 5,23},
+ {&(_ZTV7ee35720[11]), 11,23},
+ {&(_ZTV7ee35720[17]), 17,23},
+ {&(_ZTV7ee35720[22]), 22,23},
+ {&(_tg__ZTV6dd5720__7ee35720[4]), 4,5},
+ {&(_tg__ZTV5cc720__6dd5720__7ee35720[5]), 5,7},
+ {&(_tg__ZTV4bb20__6dd5720__7ee35720[3]), 3,4},
+ {&(_tg__ZTV5cc720__7ee35720[3]), 3,5},
+ {&(_tg__ZTV4bb20__5cc720__7ee35720[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee35720[];
+extern VTBL_ENTRY _ZTV7ee35720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35720[];
+static VTBL_ENTRY alt_thunk_names403[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee357203fooEv,_ZTv0_n12_N7ee357203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee357203fooEv,_ZThn24_N7ee357203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57203barEv,_ZTv0_n20_N6dd57203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57203barEv,_ZThn8_N6dd57203barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57203barEv,_ZThn8_N6dd57203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee357203fooEv,_ZTv0_n16_N7ee357203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee357203fooEv,_ZThn16_N7ee357203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35720 = { "ee35720", // class name
+ bases_ee35720, 4,
+ &(vtc_ee35720[0]), // expected_vtbl_contents
+ &(vtt_ee35720[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee35720),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35720),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35720),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names403,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee45720 : dd5720 {
+ int e;
+ virtual void bar(); // _ZN7ee457203barEv
+ ~ee45720(); // tgen
+ ee45720(); // tgen
+};
+//SIG(1 ee45720) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v2 Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee45720 ::bar(){vfunc_called(this, "_ZN7ee457203barEv");}
+ee45720 ::~ee45720(){ note_dtor("ee45720", this);} // tgen
+ee45720 ::ee45720(){ note_ctor("ee45720", this);} // tgen
+
+static void Test_ee45720()
+{
+ extern Class_Descriptor cd_ee45720;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee45720, buf);
+ ee45720 *dp, &lv = *(dp=new (buf) ee45720());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee45720)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45720)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee45720");
+ check_base_class_offset(lv, (bb20*)(cc720*), ABISELECT(32,20), "ee45720");
+ check_base_class_offset(lv, (cc720*)(dd5720*), ABISELECT(16,12), "ee45720");
+ check_base_class_offset(lv, (dd5720*), 0, "ee45720");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45720.e");
+ test_class_info(&lv, &cd_ee45720);
+ dp->~ee45720();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45720(Test_ee45720, "ee45720", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee45720C1Ev();
+extern void _ZN7ee45720D1Ev();
+Name_Map name_map_ee45720[] = {
+ NSPAIR(_ZN7ee45720C1Ev),
+ NSPAIR(_ZN7ee45720D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc720;
+extern VTBL_ENTRY _ZTI5cc720[];
+extern VTBL_ENTRY _ZTV5cc720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc720[];
+extern Class_Descriptor cd_dd5720;
+extern VTBL_ENTRY _ZTI6dd5720[];
+extern VTBL_ENTRY _ZTV6dd5720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5720[];
+static Base_Class bases_ee45720[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc720, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5720, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45720[];
+extern void _ZN7ee457203barEv();
+extern void _ZN5cc7203fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee457203barEv,_ZTv0_n20_N7ee457203barEv)();
+extern void ABISELECT(_ZThn16_N7ee457203barEv,_ZThn12_N7ee457203barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee45720[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45720[0]),
+ (VTBL_ENTRY)&_ZN7ee457203barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee457203barEv,_ZTv0_n20_N7ee457203barEv),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee45720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee45720[];
+extern void _ZN6dd57203barEv();
+static VTBL_ENTRY _tg__ZTV6dd5720__7ee45720[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5720[0]),
+ (VTBL_ENTRY)&_ZN6dd57203barEv,
+};
+extern void _ZN5cc7203fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57203barEv,_ZTv0_n20_N6dd57203barEv)();
+extern void ABISELECT(_ZThn16_N6dd57203barEv,_ZThn12_N6dd57203barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc720__6dd5720__7ee45720[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57203barEv,_ZTv0_n20_N6dd57203barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd5720__7ee45720[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc720__7ee45720[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc720__7ee45720[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+static VTT_ENTRY vtt_ee45720[] = {
+ {&(_ZTV7ee45720[4]), 4,16},
+ {&(_tg__ZTV6dd5720__7ee45720[4]), 4,5},
+ {&(_tg__ZTV5cc720__6dd5720__7ee45720[5]), 5,7},
+ {&(_tg__ZTV4bb20__6dd5720__7ee45720[3]), 3,4},
+ {&(_ZTV7ee45720[10]), 10,16},
+ {&(_ZTV7ee45720[15]), 15,16},
+ {&(_tg__ZTV5cc720__7ee45720[3]), 3,5},
+ {&(_tg__ZTV4bb20__5cc720__7ee45720[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee45720[];
+extern VTBL_ENTRY _ZTV7ee45720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45720[];
+static VTBL_ENTRY alt_thunk_names404[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57203barEv,_ZTv0_n20_N6dd57203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57203barEv,_ZThn12_N6dd57203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee457203barEv,_ZTv0_n20_N7ee457203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee457203barEv,_ZThn12_N7ee457203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45720 = { "ee45720", // class name
+ bases_ee45720, 4,
+ &(vtc_ee45720[0]), // expected_vtbl_contents
+ &(vtt_ee45720[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee45720),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45720),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45720),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names404,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee55720 : virtual dd5720 {
+ int e;
+ virtual void bar(); // _ZN7ee557203barEv
+ ~ee55720(); // tgen
+ ee55720(); // tgen
+};
+//SIG(1 ee55720) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v2 Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee55720 ::bar(){vfunc_called(this, "_ZN7ee557203barEv");}
+ee55720 ::~ee55720(){ note_dtor("ee55720", this);} // tgen
+ee55720 ::ee55720(){ note_ctor("ee55720", this);} // tgen
+
+static void Test_ee55720()
+{
+ extern Class_Descriptor cd_ee55720;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee55720, buf);
+ ee55720 *dp, &lv = *(dp=new (buf) ee55720());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee55720)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55720)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(56,28), "ee55720");
+ check_base_class_offset(lv, (bb20*)(cc720*), ABISELECT(48,24), "ee55720");
+ check_base_class_offset(lv, (cc720*)(dd5720*), ABISELECT(32,16), "ee55720");
+ check_base_class_offset(lv, (dd5720*), ABISELECT(16,8), "ee55720");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55720.e");
+ test_class_info(&lv, &cd_ee55720);
+ dp->~ee55720();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55720(Test_ee55720, "ee55720", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee55720C1Ev();
+extern void _ZN7ee55720D1Ev();
+Name_Map name_map_ee55720[] = {
+ NSPAIR(_ZN7ee55720C1Ev),
+ NSPAIR(_ZN7ee55720D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc720;
+extern VTBL_ENTRY _ZTI5cc720[];
+extern VTBL_ENTRY _ZTV5cc720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc720[];
+extern Class_Descriptor cd_dd5720;
+extern VTBL_ENTRY _ZTI6dd5720[];
+extern VTBL_ENTRY _ZTV6dd5720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5720[];
+static Base_Class bases_ee55720[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(56,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc720, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5720, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee55720[];
+extern void _ZN7ee557203barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee557203barEv,_ZTv0_n20_N7ee557203barEv)();
+extern void ABISELECT(_ZThn16_N7ee557203barEv,_ZThn8_N7ee557203barEv)() __attribute__((weak));
+extern void _ZN5cc7203fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee557203barEv,_ZTv0_n20_N7ee557203barEv)();
+extern void ABISELECT(_ZThn32_N7ee557203barEv,_ZThn16_N7ee557203barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee55720[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55720[0]),
+ (VTBL_ENTRY)&_ZN7ee557203barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee557203barEv,_ZTv0_n20_N7ee557203barEv),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee557203barEv,_ZTv0_n20_N7ee557203barEv),
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee55720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee55720[];
+extern void _ZN6dd57203barEv();
+static VTBL_ENTRY _tg__ZTV6dd5720__7ee55720[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5720[0]),
+ (VTBL_ENTRY)&_ZN6dd57203barEv,
+};
+extern void _ZN5cc7203fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57203barEv,_ZTv0_n20_N6dd57203barEv)();
+extern void ABISELECT(_ZThn16_N6dd57203barEv,_ZThn8_N6dd57203barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc720__6dd5720__7ee55720[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57203barEv,_ZTv0_n20_N6dd57203barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd5720__7ee55720[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc720__7ee55720[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc720__7ee55720[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+static VTT_ENTRY vtt_ee55720[] = {
+ {&(_ZTV7ee55720[5]), 5,23},
+ {&(_ZTV7ee55720[11]), 11,23},
+ {&(_ZTV7ee55720[17]), 17,23},
+ {&(_ZTV7ee55720[22]), 22,23},
+ {&(_tg__ZTV6dd5720__7ee55720[4]), 4,5},
+ {&(_tg__ZTV5cc720__6dd5720__7ee55720[5]), 5,7},
+ {&(_tg__ZTV4bb20__6dd5720__7ee55720[3]), 3,4},
+ {&(_tg__ZTV5cc720__7ee55720[3]), 3,5},
+ {&(_tg__ZTV4bb20__5cc720__7ee55720[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee55720[];
+extern VTBL_ENTRY _ZTV7ee55720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55720[];
+static VTBL_ENTRY alt_thunk_names405[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57203barEv,_ZTv0_n20_N6dd57203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57203barEv,_ZThn8_N6dd57203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee557203barEv,_ZTv0_n20_N7ee557203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee557203barEv,_ZThn16_N7ee557203barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee557203barEv,_ZThn8_N7ee557203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55720 = { "ee55720", // class name
+ bases_ee55720, 4,
+ &(vtc_ee55720[0]), // expected_vtbl_contents
+ &(vtt_ee55720[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee55720),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55720),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55720),9, //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 ee65720 : dd5720 {
+ int e;
+ virtual void foo(); // _ZN7ee657203fooEv
+ virtual void bar(); // _ZN7ee657203barEv
+ ~ee65720(); // tgen
+ ee65720(); // tgen
+};
+//SIG(1 ee65720) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v1 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65720 ::foo(){vfunc_called(this, "_ZN7ee657203fooEv");}
+void ee65720 ::bar(){vfunc_called(this, "_ZN7ee657203barEv");}
+ee65720 ::~ee65720(){ note_dtor("ee65720", this);} // tgen
+ee65720 ::ee65720(){ note_ctor("ee65720", this);} // tgen
+
+static void Test_ee65720()
+{
+ extern Class_Descriptor cd_ee65720;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee65720, buf);
+ ee65720 *dp, &lv = *(dp=new (buf) ee65720());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee65720)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65720)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee65720");
+ check_base_class_offset(lv, (bb20*)(cc720*), ABISELECT(32,20), "ee65720");
+ check_base_class_offset(lv, (cc720*)(dd5720*), ABISELECT(16,12), "ee65720");
+ check_base_class_offset(lv, (dd5720*), 0, "ee65720");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65720.e");
+ test_class_info(&lv, &cd_ee65720);
+ dp->~ee65720();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65720(Test_ee65720, "ee65720", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee65720C1Ev();
+extern void _ZN7ee65720D1Ev();
+Name_Map name_map_ee65720[] = {
+ NSPAIR(_ZN7ee65720C1Ev),
+ NSPAIR(_ZN7ee65720D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc720;
+extern VTBL_ENTRY _ZTI5cc720[];
+extern VTBL_ENTRY _ZTV5cc720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc720[];
+extern Class_Descriptor cd_dd5720;
+extern VTBL_ENTRY _ZTI6dd5720[];
+extern VTBL_ENTRY _ZTV6dd5720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5720[];
+static Base_Class bases_ee65720[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc720, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5720, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65720[];
+extern void _ZN7ee657203barEv();
+extern void _ZN7ee657203fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee657203fooEv,_ZTv0_n16_N7ee657203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee657203fooEv,_ZThn12_N7ee657203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee657203barEv,_ZTv0_n20_N7ee657203barEv)();
+extern void ABISELECT(_ZThn16_N7ee657203barEv,_ZThn12_N7ee657203barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee657203fooEv,_ZTv0_n12_N7ee657203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee657203fooEv,_ZThn20_N7ee657203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65720[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65720[0]),
+ (VTBL_ENTRY)&_ZN7ee657203barEv,
+ (VTBL_ENTRY)&_ZN7ee657203fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee657203fooEv,_ZTv0_n16_N7ee657203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee657203barEv,_ZTv0_n20_N7ee657203barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee65720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee657203fooEv,_ZTv0_n12_N7ee657203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee65720[];
+extern void _ZN6dd57203barEv();
+static VTBL_ENTRY _tg__ZTV6dd5720__7ee65720[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5720[0]),
+ (VTBL_ENTRY)&_ZN6dd57203barEv,
+};
+extern void _ZN5cc7203fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57203barEv,_ZTv0_n20_N6dd57203barEv)();
+extern void ABISELECT(_ZThn16_N6dd57203barEv,_ZThn12_N6dd57203barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc720__6dd5720__7ee65720[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57203barEv,_ZTv0_n20_N6dd57203barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd5720__7ee65720[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc720__7ee65720[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc720__7ee65720[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+static VTT_ENTRY vtt_ee65720[] = {
+ {&(_ZTV7ee65720[4]), 4,17},
+ {&(_tg__ZTV6dd5720__7ee65720[4]), 4,5},
+ {&(_tg__ZTV5cc720__6dd5720__7ee65720[5]), 5,7},
+ {&(_tg__ZTV4bb20__6dd5720__7ee65720[3]), 3,4},
+ {&(_ZTV7ee65720[11]), 11,17},
+ {&(_ZTV7ee65720[16]), 16,17},
+ {&(_tg__ZTV5cc720__7ee65720[3]), 3,5},
+ {&(_tg__ZTV4bb20__5cc720__7ee65720[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee65720[];
+extern VTBL_ENTRY _ZTV7ee65720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65720[];
+static VTBL_ENTRY alt_thunk_names406[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57203barEv,_ZTv0_n20_N6dd57203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57203barEv,_ZThn12_N6dd57203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee657203fooEv,_ZTv0_n12_N7ee657203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee657203fooEv,_ZThn20_N7ee657203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee657203barEv,_ZTv0_n20_N7ee657203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee657203barEv,_ZThn12_N7ee657203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee657203fooEv,_ZTv0_n16_N7ee657203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee657203fooEv,_ZThn12_N7ee657203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65720 = { "ee65720", // class name
+ bases_ee65720, 4,
+ &(vtc_ee65720[0]), // expected_vtbl_contents
+ &(vtt_ee65720[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee65720),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65720),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65720),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names406,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee75720 : virtual dd5720 {
+ int e;
+ virtual void foo(); // _ZN7ee757203fooEv
+ virtual void bar(); // _ZN7ee757203barEv
+ ~ee75720(); // tgen
+ ee75720(); // tgen
+};
+//SIG(1 ee75720) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v1 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75720 ::foo(){vfunc_called(this, "_ZN7ee757203fooEv");}
+void ee75720 ::bar(){vfunc_called(this, "_ZN7ee757203barEv");}
+ee75720 ::~ee75720(){ note_dtor("ee75720", this);} // tgen
+ee75720 ::ee75720(){ note_ctor("ee75720", this);} // tgen
+
+static void Test_ee75720()
+{
+ extern Class_Descriptor cd_ee75720;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee75720, buf);
+ ee75720 *dp, &lv = *(dp=new (buf) ee75720());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee75720)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75720)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(56,28), "ee75720");
+ check_base_class_offset(lv, (bb20*)(cc720*), ABISELECT(48,24), "ee75720");
+ check_base_class_offset(lv, (cc720*)(dd5720*), ABISELECT(32,16), "ee75720");
+ check_base_class_offset(lv, (dd5720*), ABISELECT(16,8), "ee75720");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75720.e");
+ test_class_info(&lv, &cd_ee75720);
+ dp->~ee75720();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75720(Test_ee75720, "ee75720", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee75720C1Ev();
+extern void _ZN7ee75720D1Ev();
+Name_Map name_map_ee75720[] = {
+ NSPAIR(_ZN7ee75720C1Ev),
+ NSPAIR(_ZN7ee75720D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc720;
+extern VTBL_ENTRY _ZTI5cc720[];
+extern VTBL_ENTRY _ZTV5cc720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc720[];
+extern Class_Descriptor cd_dd5720;
+extern VTBL_ENTRY _ZTI6dd5720[];
+extern VTBL_ENTRY _ZTV6dd5720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5720[];
+static Base_Class bases_ee75720[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(56,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc720, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5720, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee75720[];
+extern void _ZN7ee757203fooEv();
+extern void _ZN7ee757203barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee757203barEv,_ZTv0_n20_N7ee757203barEv)();
+extern void ABISELECT(_ZThn16_N7ee757203barEv,_ZThn8_N7ee757203barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee757203fooEv,_ZTv0_n16_N7ee757203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee757203fooEv,_ZThn16_N7ee757203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee757203barEv,_ZTv0_n20_N7ee757203barEv)();
+extern void ABISELECT(_ZThn32_N7ee757203barEv,_ZThn16_N7ee757203barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee757203fooEv,_ZTv0_n12_N7ee757203fooEv)();
+extern void ABISELECT(_ZThn48_N7ee757203fooEv,_ZThn24_N7ee757203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75720[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75720[0]),
+ (VTBL_ENTRY)&_ZN7ee757203fooEv,
+ (VTBL_ENTRY)&_ZN7ee757203barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee757203barEv,_ZTv0_n20_N7ee757203barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee757203fooEv,_ZTv0_n16_N7ee757203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee757203barEv,_ZTv0_n20_N7ee757203barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee75720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee757203fooEv,_ZTv0_n12_N7ee757203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee75720[];
+extern void _ZN6dd57203barEv();
+static VTBL_ENTRY _tg__ZTV6dd5720__7ee75720[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5720[0]),
+ (VTBL_ENTRY)&_ZN6dd57203barEv,
+};
+extern void _ZN5cc7203fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57203barEv,_ZTv0_n20_N6dd57203barEv)();
+extern void ABISELECT(_ZThn16_N6dd57203barEv,_ZThn8_N6dd57203barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc720__6dd5720__7ee75720[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57203barEv,_ZTv0_n20_N6dd57203barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd5720__7ee75720[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc720__7ee75720[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc720__7ee75720[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+static VTT_ENTRY vtt_ee75720[] = {
+ {&(_ZTV7ee75720[5]), 5,24},
+ {&(_ZTV7ee75720[12]), 12,24},
+ {&(_ZTV7ee75720[18]), 18,24},
+ {&(_ZTV7ee75720[23]), 23,24},
+ {&(_tg__ZTV6dd5720__7ee75720[4]), 4,5},
+ {&(_tg__ZTV5cc720__6dd5720__7ee75720[5]), 5,7},
+ {&(_tg__ZTV4bb20__6dd5720__7ee75720[3]), 3,4},
+ {&(_tg__ZTV5cc720__7ee75720[3]), 3,5},
+ {&(_tg__ZTV4bb20__5cc720__7ee75720[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee75720[];
+extern VTBL_ENTRY _ZTV7ee75720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75720[];
+static VTBL_ENTRY alt_thunk_names407[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57203barEv,_ZTv0_n20_N6dd57203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57203barEv,_ZThn8_N6dd57203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee757203fooEv,_ZTv0_n12_N7ee757203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee757203fooEv,_ZThn24_N7ee757203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee757203fooEv,_ZTv0_n16_N7ee757203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee757203fooEv,_ZThn16_N7ee757203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee757203barEv,_ZTv0_n20_N7ee757203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee757203barEv,_ZThn16_N7ee757203barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee757203barEv,_ZThn8_N7ee757203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75720 = { "ee75720", // class name
+ bases_ee75720, 4,
+ &(vtc_ee75720[0]), // expected_vtbl_contents
+ &(vtt_ee75720[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee75720),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75720),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75720),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names407,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd6720 : cc720 {
+ int d;
+ virtual void bar(); // _ZN6dd67203barEv
+ virtual void foo(); // _ZN6dd67203fooEv
+ ~dd6720(); // tgen
+ dd6720(); // tgen
+};
+//SIG(-1 dd6720) C1{ BC2{ VBC3{ BC4{ Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void dd6720 ::bar(){vfunc_called(this, "_ZN6dd67203barEv");}
+void dd6720 ::foo(){vfunc_called(this, "_ZN6dd67203fooEv");}
+dd6720 ::~dd6720(){ note_dtor("dd6720", this);} // tgen
+dd6720 ::dd6720(){ note_ctor("dd6720", this);} // tgen
+
+static void Test_dd6720()
+{
+ extern Class_Descriptor cd_dd6720;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd6720, buf);
+ dd6720 *dp, &lv = *(dp=new (buf) dd6720());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd6720)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6720)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(24,16), "dd6720");
+ check_base_class_offset(lv, (bb20*)(cc720*), ABISELECT(16,12), "dd6720");
+ check_base_class_offset(lv, (cc720*), 0, "dd6720");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd6720.d");
+ test_class_info(&lv, &cd_dd6720);
+ dp->~dd6720();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6720(Test_dd6720, "dd6720", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd6720C1Ev();
+extern void _ZN6dd6720D1Ev();
+Name_Map name_map_dd6720[] = {
+ NSPAIR(_ZN6dd6720C1Ev),
+ NSPAIR(_ZN6dd6720D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc720;
+extern VTBL_ENTRY _ZTI5cc720[];
+extern VTBL_ENTRY _ZTV5cc720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc720[];
+static Base_Class bases_dd6720[] = {
+ // 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_bb20, 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
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc720, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd6720[];
+extern void _ZN6dd67203fooEv();
+extern void _ZN6dd67203barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd67203fooEv,_ZTv0_n12_N6dd67203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd67203fooEv,_ZThn12_N6dd67203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd6720[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6720[0]),
+ (VTBL_ENTRY)&_ZN6dd67203fooEv,
+ (VTBL_ENTRY)&_ZN6dd67203barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67203fooEv,_ZTv0_n12_N6dd67203fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd6720[];
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc720__6dd6720[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn12_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc720__6dd6720[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+static VTT_ENTRY vtt_dd6720[] = {
+ {&(_ZTV6dd6720[3]), 3,9},
+ {&(_tg__ZTV5cc720__6dd6720[3]), 3,5},
+ {&(_tg__ZTV4bb20__5cc720__6dd6720[3]), 3,4},
+ {&(_ZTV6dd6720[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI6dd6720[];
+extern VTBL_ENTRY _ZTV6dd6720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6720[];
+static VTBL_ENTRY alt_thunk_names408[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn12_N5cc7203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67203fooEv,_ZTv0_n12_N6dd67203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67203fooEv,_ZThn12_N6dd67203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd6720 = { "dd6720", // class name
+ bases_dd6720, 3,
+ &(vtc_dd6720[0]), // expected_vtbl_contents
+ &(vtt_dd6720[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd6720),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6720),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd6720),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names408,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee06720 : dd6720 {
+ int e;
+ ~ee06720(); // tgen
+ ee06720(); // tgen
+};
+//SIG(1 ee06720) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee06720 ::~ee06720(){ note_dtor("ee06720", this);} // tgen
+ee06720 ::ee06720(){ note_ctor("ee06720", this);} // tgen
+
+static void Test_ee06720()
+{
+ extern Class_Descriptor cd_ee06720;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee06720, buf);
+ ee06720 *dp, &lv = *(dp=new (buf) ee06720());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee06720)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06720)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(32,20), "ee06720");
+ check_base_class_offset(lv, (bb20*)(cc720*)(dd6720*), ABISELECT(24,16), "ee06720");
+ check_base_class_offset(lv, (cc720*)(dd6720*), 0, "ee06720");
+ check_base_class_offset(lv, (dd6720*), 0, "ee06720");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee06720.e");
+ test_class_info(&lv, &cd_ee06720);
+ dp->~ee06720();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06720(Test_ee06720, "ee06720", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee06720C1Ev();
+extern void _ZN7ee06720D1Ev();
+Name_Map name_map_ee06720[] = {
+ NSPAIR(_ZN7ee06720C1Ev),
+ NSPAIR(_ZN7ee06720D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc720;
+extern VTBL_ENTRY _ZTI5cc720[];
+extern VTBL_ENTRY _ZTV5cc720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc720[];
+extern Class_Descriptor cd_dd6720;
+extern VTBL_ENTRY _ZTI6dd6720[];
+extern VTBL_ENTRY _ZTV6dd6720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6720[];
+static Base_Class bases_ee06720[] = {
+ // 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_bb20, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc720, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6720, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee06720[];
+extern void _ZN6dd67203fooEv();
+extern void _ZN6dd67203barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd67203fooEv,_ZTv0_n12_N6dd67203fooEv)();
+extern void ABISELECT(_ZThn24_N6dd67203fooEv,_ZThn16_N6dd67203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee06720[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06720[0]),
+ (VTBL_ENTRY)&_ZN6dd67203fooEv,
+ (VTBL_ENTRY)&_ZN6dd67203barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee06720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67203fooEv,_ZTv0_n12_N6dd67203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee06720[];
+extern void _ZN6dd67203fooEv();
+extern void _ZN6dd67203barEv();
+static VTBL_ENTRY _tg__ZTV6dd6720__7ee06720[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6720[0]),
+ (VTBL_ENTRY)&_ZN6dd67203fooEv,
+ (VTBL_ENTRY)&_ZN6dd67203barEv,
+};
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc7206dd6720__7ee06720[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7203fooEv,_ZThn16_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc7206dd6720__7ee06720[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd67203fooEv,_ZTv0_n12_N6dd67203fooEv)();
+extern void ABISELECT(_ZThn24_N6dd67203fooEv,_ZThn16_N6dd67203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd6720__7ee06720[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67203fooEv,_ZTv0_n12_N6dd67203fooEv),
+};
+static VTT_ENTRY vtt_ee06720[] = {
+ {&(_ZTV7ee06720[3]), 3,9},
+ {&(_tg__ZTV6dd6720__7ee06720[3]), 3,5},
+ {&(_tg__ZTV5cc7206dd6720__7ee06720[3]), 3,5},
+ {&(_tg__ZTV4bb20__5cc7206dd6720__7ee06720[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd6720__7ee06720[3]), 3,4},
+ {&(_ZTV7ee06720[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee06720[];
+extern VTBL_ENTRY _ZTV7ee06720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee06720[];
+static VTBL_ENTRY alt_thunk_names409[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7203fooEv,_ZThn16_N5cc7203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67203fooEv,_ZTv0_n12_N6dd67203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67203fooEv,_ZThn16_N6dd67203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67203fooEv,_ZThn16_N6dd67203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee06720 = { "ee06720", // class name
+ bases_ee06720, 4,
+ &(vtc_ee06720[0]), // expected_vtbl_contents
+ &(vtt_ee06720[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee06720),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06720),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee06720),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names409,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee16720 : virtual dd6720 {
+ int e;
+ ~ee16720(); // tgen
+ ee16720(); // tgen
+};
+//SIG(1 ee16720) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee16720 ::~ee16720(){ note_dtor("ee16720", this);} // tgen
+ee16720 ::ee16720(){ note_ctor("ee16720", this);} // tgen
+
+static void Test_ee16720()
+{
+ extern Class_Descriptor cd_ee16720;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee16720, buf);
+ ee16720 *dp, &lv = *(dp=new (buf) ee16720());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee16720)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16720)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee16720");
+ check_base_class_offset(lv, (bb20*)(cc720*)(dd6720*), ABISELECT(32,20), "ee16720");
+ check_base_class_offset(lv, (cc720*)(dd6720*), ABISELECT(16,8), "ee16720");
+ check_base_class_offset(lv, (dd6720*), ABISELECT(16,8), "ee16720");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16720.e");
+ test_class_info(&lv, &cd_ee16720);
+ dp->~ee16720();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16720(Test_ee16720, "ee16720", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee16720C1Ev();
+extern void _ZN7ee16720D1Ev();
+Name_Map name_map_ee16720[] = {
+ NSPAIR(_ZN7ee16720C1Ev),
+ NSPAIR(_ZN7ee16720D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc720;
+extern VTBL_ENTRY _ZTI5cc720[];
+extern VTBL_ENTRY _ZTV5cc720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc720[];
+extern Class_Descriptor cd_dd6720;
+extern VTBL_ENTRY _ZTI6dd6720[];
+extern VTBL_ENTRY _ZTV6dd6720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6720[];
+static Base_Class bases_ee16720[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc720, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6720, 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 _ZTI7ee16720[];
+extern void _ZN6dd67203fooEv();
+extern void _ZN6dd67203barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd67203fooEv,_ZTv0_n12_N6dd67203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd67203fooEv,_ZThn12_N6dd67203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee16720[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16720[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16720[0]),
+ (VTBL_ENTRY)&_ZN6dd67203fooEv,
+ (VTBL_ENTRY)&_ZN6dd67203barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee16720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67203fooEv,_ZTv0_n12_N6dd67203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee16720[];
+extern void _ZN6dd67203fooEv();
+extern void _ZN6dd67203barEv();
+static VTBL_ENTRY _tg__ZTV6dd6720__7ee16720[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6720[0]),
+ (VTBL_ENTRY)&_ZN6dd67203fooEv,
+ (VTBL_ENTRY)&_ZN6dd67203barEv,
+};
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc7206dd6720__7ee16720[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn12_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc7206dd6720__7ee16720[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd67203fooEv,_ZTv0_n12_N6dd67203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd67203fooEv,_ZThn12_N6dd67203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd6720__7ee16720[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67203fooEv,_ZTv0_n12_N6dd67203fooEv),
+};
+static VTT_ENTRY vtt_ee16720[] = {
+ {&(_ZTV7ee16720[4]), 4,15},
+ {&(_ZTV7ee16720[9]), 9,15},
+ {&(_ZTV7ee16720[14]), 14,15},
+ {&(_tg__ZTV6dd6720__7ee16720[3]), 3,5},
+ {&(_tg__ZTV5cc7206dd6720__7ee16720[3]), 3,5},
+ {&(_tg__ZTV4bb20__5cc7206dd6720__7ee16720[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd6720__7ee16720[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee16720[];
+extern VTBL_ENTRY _ZTV7ee16720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16720[];
+static VTBL_ENTRY alt_thunk_names410[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn12_N5cc7203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67203fooEv,_ZTv0_n12_N6dd67203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67203fooEv,_ZThn12_N6dd67203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67203fooEv,_ZThn12_N6dd67203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee16720 = { "ee16720", // class name
+ bases_ee16720, 4,
+ &(vtc_ee16720[0]), // expected_vtbl_contents
+ &(vtt_ee16720[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee16720),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16720),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16720),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names410,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee26720 : dd6720 {
+ int e;
+ virtual void foo(); // _ZN7ee267203fooEv
+ ~ee26720(); // tgen
+ ee26720(); // tgen
+};
+//SIG(1 ee26720) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26720 ::foo(){vfunc_called(this, "_ZN7ee267203fooEv");}
+ee26720 ::~ee26720(){ note_dtor("ee26720", this);} // tgen
+ee26720 ::ee26720(){ note_ctor("ee26720", this);} // tgen
+
+static void Test_ee26720()
+{
+ extern Class_Descriptor cd_ee26720;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee26720, buf);
+ ee26720 *dp, &lv = *(dp=new (buf) ee26720());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee26720)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26720)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(32,20), "ee26720");
+ check_base_class_offset(lv, (bb20*)(cc720*)(dd6720*), ABISELECT(24,16), "ee26720");
+ check_base_class_offset(lv, (cc720*)(dd6720*), 0, "ee26720");
+ check_base_class_offset(lv, (dd6720*), 0, "ee26720");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee26720.e");
+ test_class_info(&lv, &cd_ee26720);
+ dp->~ee26720();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26720(Test_ee26720, "ee26720", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee26720C1Ev();
+extern void _ZN7ee26720D1Ev();
+Name_Map name_map_ee26720[] = {
+ NSPAIR(_ZN7ee26720C1Ev),
+ NSPAIR(_ZN7ee26720D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc720;
+extern VTBL_ENTRY _ZTI5cc720[];
+extern VTBL_ENTRY _ZTV5cc720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc720[];
+extern Class_Descriptor cd_dd6720;
+extern VTBL_ENTRY _ZTI6dd6720[];
+extern VTBL_ENTRY _ZTV6dd6720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6720[];
+static Base_Class bases_ee26720[] = {
+ // 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_bb20, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc720, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6720, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee26720[];
+extern void _ZN7ee267203fooEv();
+extern void _ZN6dd67203barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee267203fooEv,_ZTv0_n12_N7ee267203fooEv)();
+extern void ABISELECT(_ZThn24_N7ee267203fooEv,_ZThn16_N7ee267203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee26720[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26720[0]),
+ (VTBL_ENTRY)&_ZN7ee267203fooEv,
+ (VTBL_ENTRY)&_ZN6dd67203barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee26720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee267203fooEv,_ZTv0_n12_N7ee267203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee26720[];
+extern void _ZN6dd67203fooEv();
+extern void _ZN6dd67203barEv();
+static VTBL_ENTRY _tg__ZTV6dd6720__7ee26720[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6720[0]),
+ (VTBL_ENTRY)&_ZN6dd67203fooEv,
+ (VTBL_ENTRY)&_ZN6dd67203barEv,
+};
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc7206dd6720__7ee26720[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7203fooEv,_ZThn16_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc7206dd6720__7ee26720[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd67203fooEv,_ZTv0_n12_N6dd67203fooEv)();
+extern void ABISELECT(_ZThn24_N6dd67203fooEv,_ZThn16_N6dd67203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd6720__7ee26720[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67203fooEv,_ZTv0_n12_N6dd67203fooEv),
+};
+static VTT_ENTRY vtt_ee26720[] = {
+ {&(_ZTV7ee26720[3]), 3,9},
+ {&(_tg__ZTV6dd6720__7ee26720[3]), 3,5},
+ {&(_tg__ZTV5cc7206dd6720__7ee26720[3]), 3,5},
+ {&(_tg__ZTV4bb20__5cc7206dd6720__7ee26720[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd6720__7ee26720[3]), 3,4},
+ {&(_ZTV7ee26720[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee26720[];
+extern VTBL_ENTRY _ZTV7ee26720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee26720[];
+static VTBL_ENTRY alt_thunk_names411[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67203fooEv,_ZTv0_n12_N6dd67203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67203fooEv,_ZThn16_N6dd67203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7203fooEv,_ZThn16_N5cc7203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee267203fooEv,_ZTv0_n12_N7ee267203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee267203fooEv,_ZThn16_N7ee267203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee26720 = { "ee26720", // class name
+ bases_ee26720, 4,
+ &(vtc_ee26720[0]), // expected_vtbl_contents
+ &(vtt_ee26720[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee26720),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26720),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee26720),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names411,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee36720 : virtual dd6720 {
+ int e;
+ virtual void foo(); // _ZN7ee367203fooEv
+ ~ee36720(); // tgen
+ ee36720(); // tgen
+};
+//SIG(1 ee36720) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36720 ::foo(){vfunc_called(this, "_ZN7ee367203fooEv");}
+ee36720 ::~ee36720(){ note_dtor("ee36720", this);} // tgen
+ee36720 ::ee36720(){ note_ctor("ee36720", this);} // tgen
+
+static void Test_ee36720()
+{
+ extern Class_Descriptor cd_ee36720;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee36720, buf);
+ ee36720 *dp, &lv = *(dp=new (buf) ee36720());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee36720)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36720)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee36720");
+ check_base_class_offset(lv, (bb20*)(cc720*)(dd6720*), ABISELECT(32,20), "ee36720");
+ check_base_class_offset(lv, (cc720*)(dd6720*), ABISELECT(16,8), "ee36720");
+ check_base_class_offset(lv, (dd6720*), ABISELECT(16,8), "ee36720");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36720.e");
+ test_class_info(&lv, &cd_ee36720);
+ dp->~ee36720();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36720(Test_ee36720, "ee36720", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee36720C1Ev();
+extern void _ZN7ee36720D1Ev();
+Name_Map name_map_ee36720[] = {
+ NSPAIR(_ZN7ee36720C1Ev),
+ NSPAIR(_ZN7ee36720D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc720;
+extern VTBL_ENTRY _ZTI5cc720[];
+extern VTBL_ENTRY _ZTV5cc720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc720[];
+extern Class_Descriptor cd_dd6720;
+extern VTBL_ENTRY _ZTI6dd6720[];
+extern VTBL_ENTRY _ZTV6dd6720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6720[];
+static Base_Class bases_ee36720[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc720, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6720, 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 _ZTI7ee36720[];
+extern void _ZN7ee367203fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee367203fooEv,_ZTv0_n16_N7ee367203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee367203fooEv,_ZThn8_N7ee367203fooEv)() __attribute__((weak));
+extern void _ZN6dd67203barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee367203fooEv,_ZTv0_n12_N7ee367203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee367203fooEv,_ZThn20_N7ee367203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee36720[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36720[0]),
+ (VTBL_ENTRY)&_ZN7ee367203fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee367203fooEv,_ZTv0_n16_N7ee367203fooEv),
+ (VTBL_ENTRY)&_ZN6dd67203barEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee36720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee367203fooEv,_ZTv0_n12_N7ee367203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee36720[];
+extern void _ZN6dd67203fooEv();
+extern void _ZN6dd67203barEv();
+static VTBL_ENTRY _tg__ZTV6dd6720__7ee36720[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6720[0]),
+ (VTBL_ENTRY)&_ZN6dd67203fooEv,
+ (VTBL_ENTRY)&_ZN6dd67203barEv,
+};
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc7206dd6720__7ee36720[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn12_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc7206dd6720__7ee36720[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd67203fooEv,_ZTv0_n12_N6dd67203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd67203fooEv,_ZThn12_N6dd67203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd6720__7ee36720[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67203fooEv,_ZTv0_n12_N6dd67203fooEv),
+};
+static VTT_ENTRY vtt_ee36720[] = {
+ {&(_ZTV7ee36720[4]), 4,16},
+ {&(_ZTV7ee36720[10]), 10,16},
+ {&(_ZTV7ee36720[15]), 15,16},
+ {&(_tg__ZTV6dd6720__7ee36720[3]), 3,5},
+ {&(_tg__ZTV5cc7206dd6720__7ee36720[3]), 3,5},
+ {&(_tg__ZTV4bb20__5cc7206dd6720__7ee36720[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd6720__7ee36720[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee36720[];
+extern VTBL_ENTRY _ZTV7ee36720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36720[];
+static VTBL_ENTRY alt_thunk_names412[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67203fooEv,_ZTv0_n12_N6dd67203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67203fooEv,_ZThn12_N6dd67203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn12_N5cc7203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee367203fooEv,_ZTv0_n12_N7ee367203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee367203fooEv,_ZThn20_N7ee367203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee367203fooEv,_ZTv0_n16_N7ee367203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee367203fooEv,_ZThn8_N7ee367203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36720 = { "ee36720", // class name
+ bases_ee36720, 4,
+ &(vtc_ee36720[0]), // expected_vtbl_contents
+ &(vtt_ee36720[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee36720),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36720),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36720),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names412,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee46720 : dd6720 {
+ int e;
+ virtual void bar(); // _ZN7ee467203barEv
+ ~ee46720(); // tgen
+ ee46720(); // tgen
+};
+//SIG(1 ee46720) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46720 ::bar(){vfunc_called(this, "_ZN7ee467203barEv");}
+ee46720 ::~ee46720(){ note_dtor("ee46720", this);} // tgen
+ee46720 ::ee46720(){ note_ctor("ee46720", this);} // tgen
+
+static void Test_ee46720()
+{
+ extern Class_Descriptor cd_ee46720;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee46720, buf);
+ ee46720 *dp, &lv = *(dp=new (buf) ee46720());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee46720)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46720)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(32,20), "ee46720");
+ check_base_class_offset(lv, (bb20*)(cc720*)(dd6720*), ABISELECT(24,16), "ee46720");
+ check_base_class_offset(lv, (cc720*)(dd6720*), 0, "ee46720");
+ check_base_class_offset(lv, (dd6720*), 0, "ee46720");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee46720.e");
+ test_class_info(&lv, &cd_ee46720);
+ dp->~ee46720();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46720(Test_ee46720, "ee46720", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee46720C1Ev();
+extern void _ZN7ee46720D1Ev();
+Name_Map name_map_ee46720[] = {
+ NSPAIR(_ZN7ee46720C1Ev),
+ NSPAIR(_ZN7ee46720D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc720;
+extern VTBL_ENTRY _ZTI5cc720[];
+extern VTBL_ENTRY _ZTV5cc720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc720[];
+extern Class_Descriptor cd_dd6720;
+extern VTBL_ENTRY _ZTI6dd6720[];
+extern VTBL_ENTRY _ZTV6dd6720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6720[];
+static Base_Class bases_ee46720[] = {
+ // 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_bb20, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc720, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6720, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee46720[];
+extern void _ZN6dd67203fooEv();
+extern void _ZN7ee467203barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd67203fooEv,_ZTv0_n12_N6dd67203fooEv)();
+extern void ABISELECT(_ZThn24_N6dd67203fooEv,_ZThn16_N6dd67203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee46720[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46720[0]),
+ (VTBL_ENTRY)&_ZN6dd67203fooEv,
+ (VTBL_ENTRY)&_ZN7ee467203barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee46720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67203fooEv,_ZTv0_n12_N6dd67203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee46720[];
+extern void _ZN6dd67203fooEv();
+extern void _ZN6dd67203barEv();
+static VTBL_ENTRY _tg__ZTV6dd6720__7ee46720[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6720[0]),
+ (VTBL_ENTRY)&_ZN6dd67203fooEv,
+ (VTBL_ENTRY)&_ZN6dd67203barEv,
+};
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc7206dd6720__7ee46720[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7203fooEv,_ZThn16_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc7206dd6720__7ee46720[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd67203fooEv,_ZTv0_n12_N6dd67203fooEv)();
+extern void ABISELECT(_ZThn24_N6dd67203fooEv,_ZThn16_N6dd67203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd6720__7ee46720[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67203fooEv,_ZTv0_n12_N6dd67203fooEv),
+};
+static VTT_ENTRY vtt_ee46720[] = {
+ {&(_ZTV7ee46720[3]), 3,9},
+ {&(_tg__ZTV6dd6720__7ee46720[3]), 3,5},
+ {&(_tg__ZTV5cc7206dd6720__7ee46720[3]), 3,5},
+ {&(_tg__ZTV4bb20__5cc7206dd6720__7ee46720[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd6720__7ee46720[3]), 3,4},
+ {&(_ZTV7ee46720[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee46720[];
+extern VTBL_ENTRY _ZTV7ee46720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee46720[];
+static VTBL_ENTRY alt_thunk_names413[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7203fooEv,_ZThn16_N5cc7203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67203fooEv,_ZTv0_n12_N6dd67203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67203fooEv,_ZThn16_N6dd67203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67203fooEv,_ZThn16_N6dd67203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee46720 = { "ee46720", // class name
+ bases_ee46720, 4,
+ &(vtc_ee46720[0]), // expected_vtbl_contents
+ &(vtt_ee46720[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee46720),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46720),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee46720),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names413,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee56720 : virtual dd6720 {
+ int e;
+ virtual void bar(); // _ZN7ee567203barEv
+ ~ee56720(); // tgen
+ ee56720(); // tgen
+};
+//SIG(1 ee56720) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56720 ::bar(){vfunc_called(this, "_ZN7ee567203barEv");}
+ee56720 ::~ee56720(){ note_dtor("ee56720", this);} // tgen
+ee56720 ::ee56720(){ note_ctor("ee56720", this);} // tgen
+
+static void Test_ee56720()
+{
+ extern Class_Descriptor cd_ee56720;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee56720, buf);
+ ee56720 *dp, &lv = *(dp=new (buf) ee56720());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee56720)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56720)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee56720");
+ check_base_class_offset(lv, (bb20*)(cc720*)(dd6720*), ABISELECT(32,20), "ee56720");
+ check_base_class_offset(lv, (cc720*)(dd6720*), ABISELECT(16,8), "ee56720");
+ check_base_class_offset(lv, (dd6720*), ABISELECT(16,8), "ee56720");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56720.e");
+ test_class_info(&lv, &cd_ee56720);
+ dp->~ee56720();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56720(Test_ee56720, "ee56720", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee56720C1Ev();
+extern void _ZN7ee56720D1Ev();
+Name_Map name_map_ee56720[] = {
+ NSPAIR(_ZN7ee56720C1Ev),
+ NSPAIR(_ZN7ee56720D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc720;
+extern VTBL_ENTRY _ZTI5cc720[];
+extern VTBL_ENTRY _ZTV5cc720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc720[];
+extern Class_Descriptor cd_dd6720;
+extern VTBL_ENTRY _ZTI6dd6720[];
+extern VTBL_ENTRY _ZTV6dd6720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6720[];
+static Base_Class bases_ee56720[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc720, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6720, 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 _ZTI7ee56720[];
+extern void _ZN7ee567203barEv();
+extern void _ZN6dd67203fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee567203barEv,_ZTv0_n20_N7ee567203barEv)();
+extern void ABISELECT(_ZThn16_N7ee567203barEv,_ZThn8_N7ee567203barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd67203fooEv,_ZTv0_n12_N6dd67203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd67203fooEv,_ZThn12_N6dd67203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56720[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56720[0]),
+ (VTBL_ENTRY)&_ZN7ee567203barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56720[0]),
+ (VTBL_ENTRY)&_ZN6dd67203fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee567203barEv,_ZTv0_n20_N7ee567203barEv),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee56720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67203fooEv,_ZTv0_n12_N6dd67203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee56720[];
+extern void _ZN6dd67203fooEv();
+extern void _ZN6dd67203barEv();
+static VTBL_ENTRY _tg__ZTV6dd6720__7ee56720[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6720[0]),
+ (VTBL_ENTRY)&_ZN6dd67203fooEv,
+ (VTBL_ENTRY)&_ZN6dd67203barEv,
+};
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc7206dd6720__7ee56720[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn12_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc7206dd6720__7ee56720[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd67203fooEv,_ZTv0_n12_N6dd67203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd67203fooEv,_ZThn12_N6dd67203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd6720__7ee56720[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67203fooEv,_ZTv0_n12_N6dd67203fooEv),
+};
+static VTT_ENTRY vtt_ee56720[] = {
+ {&(_ZTV7ee56720[4]), 4,16},
+ {&(_ZTV7ee56720[10]), 10,16},
+ {&(_ZTV7ee56720[15]), 15,16},
+ {&(_tg__ZTV6dd6720__7ee56720[3]), 3,5},
+ {&(_tg__ZTV5cc7206dd6720__7ee56720[3]), 3,5},
+ {&(_tg__ZTV4bb20__5cc7206dd6720__7ee56720[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd6720__7ee56720[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee56720[];
+extern VTBL_ENTRY _ZTV7ee56720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56720[];
+static VTBL_ENTRY alt_thunk_names414[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn12_N5cc7203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67203fooEv,_ZTv0_n12_N6dd67203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67203fooEv,_ZThn12_N6dd67203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67203fooEv,_ZThn12_N6dd67203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee567203barEv,_ZTv0_n20_N7ee567203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee567203barEv,_ZThn8_N7ee567203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56720 = { "ee56720", // class name
+ bases_ee56720, 4,
+ &(vtc_ee56720[0]), // expected_vtbl_contents
+ &(vtt_ee56720[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee56720),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56720),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56720),7, //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 ee66720 : dd6720 {
+ int e;
+ virtual void foo(); // _ZN7ee667203fooEv
+ virtual void bar(); // _ZN7ee667203barEv
+ ~ee66720(); // tgen
+ ee66720(); // tgen
+};
+//SIG(1 ee66720) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66720 ::foo(){vfunc_called(this, "_ZN7ee667203fooEv");}
+void ee66720 ::bar(){vfunc_called(this, "_ZN7ee667203barEv");}
+ee66720 ::~ee66720(){ note_dtor("ee66720", this);} // tgen
+ee66720 ::ee66720(){ note_ctor("ee66720", this);} // tgen
+
+static void Test_ee66720()
+{
+ extern Class_Descriptor cd_ee66720;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee66720, buf);
+ ee66720 *dp, &lv = *(dp=new (buf) ee66720());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee66720)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66720)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(32,20), "ee66720");
+ check_base_class_offset(lv, (bb20*)(cc720*)(dd6720*), ABISELECT(24,16), "ee66720");
+ check_base_class_offset(lv, (cc720*)(dd6720*), 0, "ee66720");
+ check_base_class_offset(lv, (dd6720*), 0, "ee66720");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee66720.e");
+ test_class_info(&lv, &cd_ee66720);
+ dp->~ee66720();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66720(Test_ee66720, "ee66720", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee66720C1Ev();
+extern void _ZN7ee66720D1Ev();
+Name_Map name_map_ee66720[] = {
+ NSPAIR(_ZN7ee66720C1Ev),
+ NSPAIR(_ZN7ee66720D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc720;
+extern VTBL_ENTRY _ZTI5cc720[];
+extern VTBL_ENTRY _ZTV5cc720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc720[];
+extern Class_Descriptor cd_dd6720;
+extern VTBL_ENTRY _ZTI6dd6720[];
+extern VTBL_ENTRY _ZTV6dd6720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6720[];
+static Base_Class bases_ee66720[] = {
+ // 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_bb20, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc720, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6720, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee66720[];
+extern void _ZN7ee667203fooEv();
+extern void _ZN7ee667203barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee667203fooEv,_ZTv0_n12_N7ee667203fooEv)();
+extern void ABISELECT(_ZThn24_N7ee667203fooEv,_ZThn16_N7ee667203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee66720[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66720[0]),
+ (VTBL_ENTRY)&_ZN7ee667203fooEv,
+ (VTBL_ENTRY)&_ZN7ee667203barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee66720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee667203fooEv,_ZTv0_n12_N7ee667203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee66720[];
+extern void _ZN6dd67203fooEv();
+extern void _ZN6dd67203barEv();
+static VTBL_ENTRY _tg__ZTV6dd6720__7ee66720[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6720[0]),
+ (VTBL_ENTRY)&_ZN6dd67203fooEv,
+ (VTBL_ENTRY)&_ZN6dd67203barEv,
+};
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc7206dd6720__7ee66720[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7203fooEv,_ZThn16_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc7206dd6720__7ee66720[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd67203fooEv,_ZTv0_n12_N6dd67203fooEv)();
+extern void ABISELECT(_ZThn24_N6dd67203fooEv,_ZThn16_N6dd67203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd6720__7ee66720[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67203fooEv,_ZTv0_n12_N6dd67203fooEv),
+};
+static VTT_ENTRY vtt_ee66720[] = {
+ {&(_ZTV7ee66720[3]), 3,9},
+ {&(_tg__ZTV6dd6720__7ee66720[3]), 3,5},
+ {&(_tg__ZTV5cc7206dd6720__7ee66720[3]), 3,5},
+ {&(_tg__ZTV4bb20__5cc7206dd6720__7ee66720[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd6720__7ee66720[3]), 3,4},
+ {&(_ZTV7ee66720[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee66720[];
+extern VTBL_ENTRY _ZTV7ee66720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee66720[];
+static VTBL_ENTRY alt_thunk_names415[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67203fooEv,_ZTv0_n12_N6dd67203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67203fooEv,_ZThn16_N6dd67203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7203fooEv,_ZThn16_N5cc7203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee667203fooEv,_ZTv0_n12_N7ee667203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee667203fooEv,_ZThn16_N7ee667203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee66720 = { "ee66720", // class name
+ bases_ee66720, 4,
+ &(vtc_ee66720[0]), // expected_vtbl_contents
+ &(vtt_ee66720[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee66720),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66720),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee66720),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names415,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee76720 : virtual dd6720 {
+ int e;
+ virtual void foo(); // _ZN7ee767203fooEv
+ virtual void bar(); // _ZN7ee767203barEv
+ ~ee76720(); // tgen
+ ee76720(); // tgen
+};
+//SIG(1 ee76720) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76720 ::foo(){vfunc_called(this, "_ZN7ee767203fooEv");}
+void ee76720 ::bar(){vfunc_called(this, "_ZN7ee767203barEv");}
+ee76720 ::~ee76720(){ note_dtor("ee76720", this);} // tgen
+ee76720 ::ee76720(){ note_ctor("ee76720", this);} // tgen
+
+static void Test_ee76720()
+{
+ extern Class_Descriptor cd_ee76720;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee76720, buf);
+ ee76720 *dp, &lv = *(dp=new (buf) ee76720());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee76720)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76720)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee76720");
+ check_base_class_offset(lv, (bb20*)(cc720*)(dd6720*), ABISELECT(32,20), "ee76720");
+ check_base_class_offset(lv, (cc720*)(dd6720*), ABISELECT(16,8), "ee76720");
+ check_base_class_offset(lv, (dd6720*), ABISELECT(16,8), "ee76720");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76720.e");
+ test_class_info(&lv, &cd_ee76720);
+ dp->~ee76720();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76720(Test_ee76720, "ee76720", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee76720C1Ev();
+extern void _ZN7ee76720D1Ev();
+Name_Map name_map_ee76720[] = {
+ NSPAIR(_ZN7ee76720C1Ev),
+ NSPAIR(_ZN7ee76720D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc720;
+extern VTBL_ENTRY _ZTI5cc720[];
+extern VTBL_ENTRY _ZTV5cc720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc720[];
+extern Class_Descriptor cd_dd6720;
+extern VTBL_ENTRY _ZTI6dd6720[];
+extern VTBL_ENTRY _ZTV6dd6720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6720[];
+static Base_Class bases_ee76720[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc720, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6720, ABISELECT(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 _ZTI7ee76720[];
+extern void _ZN7ee767203fooEv();
+extern void _ZN7ee767203barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee767203fooEv,_ZTv0_n16_N7ee767203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee767203fooEv,_ZThn8_N7ee767203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee767203barEv,_ZTv0_n20_N7ee767203barEv)();
+extern void ABISELECT(_ZThn16_N7ee767203barEv,_ZThn8_N7ee767203barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee767203fooEv,_ZTv0_n12_N7ee767203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee767203fooEv,_ZThn20_N7ee767203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76720[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76720[0]),
+ (VTBL_ENTRY)&_ZN7ee767203fooEv,
+ (VTBL_ENTRY)&_ZN7ee767203barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee767203fooEv,_ZTv0_n16_N7ee767203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee767203barEv,_ZTv0_n20_N7ee767203barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee76720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee767203fooEv,_ZTv0_n12_N7ee767203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee76720[];
+extern void _ZN6dd67203fooEv();
+extern void _ZN6dd67203barEv();
+static VTBL_ENTRY _tg__ZTV6dd6720__7ee76720[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6720[0]),
+ (VTBL_ENTRY)&_ZN6dd67203fooEv,
+ (VTBL_ENTRY)&_ZN6dd67203barEv,
+};
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc7206dd6720__7ee76720[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn12_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc7206dd6720__7ee76720[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd67203fooEv,_ZTv0_n12_N6dd67203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd67203fooEv,_ZThn12_N6dd67203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd6720__7ee76720[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67203fooEv,_ZTv0_n12_N6dd67203fooEv),
+};
+static VTT_ENTRY vtt_ee76720[] = {
+ {&(_ZTV7ee76720[4]), 4,17},
+ {&(_ZTV7ee76720[11]), 11,17},
+ {&(_ZTV7ee76720[16]), 16,17},
+ {&(_tg__ZTV6dd6720__7ee76720[3]), 3,5},
+ {&(_tg__ZTV5cc7206dd6720__7ee76720[3]), 3,5},
+ {&(_tg__ZTV4bb20__5cc7206dd6720__7ee76720[3]), 3,4},
+ {&(_tg__ZTV4bb20__6dd6720__7ee76720[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee76720[];
+extern VTBL_ENTRY _ZTV7ee76720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76720[];
+static VTBL_ENTRY alt_thunk_names416[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67203fooEv,_ZTv0_n12_N6dd67203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67203fooEv,_ZThn12_N6dd67203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn12_N5cc7203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee767203fooEv,_ZTv0_n12_N7ee767203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee767203fooEv,_ZThn20_N7ee767203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee767203barEv,_ZTv0_n20_N7ee767203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee767203barEv,_ZThn8_N7ee767203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee767203fooEv,_ZTv0_n16_N7ee767203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee767203fooEv,_ZThn8_N7ee767203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76720 = { "ee76720", // class name
+ bases_ee76720, 4,
+ &(vtc_ee76720[0]), // expected_vtbl_contents
+ &(vtt_ee76720[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee76720),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76720),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76720),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names416,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd7720 : virtual cc720 {
+ int d;
+ virtual void bar(); // _ZN6dd77203barEv
+ virtual void foo(); // _ZN6dd77203fooEv
+ ~dd7720(); // tgen
+ dd7720(); // tgen
+};
+//SIG(-1 dd7720) C1{ VBC2{ VBC3{ BC4{ Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void dd7720 ::bar(){vfunc_called(this, "_ZN6dd77203barEv");}
+void dd7720 ::foo(){vfunc_called(this, "_ZN6dd77203fooEv");}
+dd7720 ::~dd7720(){ note_dtor("dd7720", this);} // tgen
+dd7720 ::dd7720(){ note_ctor("dd7720", this);} // tgen
+
+static void Test_dd7720()
+{
+ extern Class_Descriptor cd_dd7720;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd7720, buf);
+ dd7720 *dp, &lv = *(dp=new (buf) dd7720());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd7720)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7720)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,20), "dd7720");
+ check_base_class_offset(lv, (bb20*)(cc720*), ABISELECT(32,16), "dd7720");
+ check_base_class_offset(lv, (cc720*), ABISELECT(16,8), "dd7720");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7720.d");
+ test_class_info(&lv, &cd_dd7720);
+ dp->~dd7720();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7720(Test_dd7720, "dd7720", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd7720C1Ev();
+extern void _ZN6dd7720D1Ev();
+Name_Map name_map_dd7720[] = {
+ NSPAIR(_ZN6dd7720C1Ev),
+ NSPAIR(_ZN6dd7720D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc720;
+extern VTBL_ENTRY _ZTI5cc720[];
+extern VTBL_ENTRY _ZTV5cc720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc720[];
+static Base_Class bases_dd7720[] = {
+ // 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_bb20, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc720, ABISELECT(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 _ZTI6dd7720[];
+extern void _ZN6dd77203barEv();
+extern void _ZN6dd77203fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd77203fooEv,_ZTv0_n16_N6dd77203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77203fooEv,_ZThn8_N6dd77203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77203barEv,_ZTv0_n20_N6dd77203barEv)();
+extern void ABISELECT(_ZThn16_N6dd77203barEv,_ZThn8_N6dd77203barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd77203fooEv,_ZTv0_n12_N6dd77203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77203fooEv,_ZThn16_N6dd77203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7720[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7720[0]),
+ (VTBL_ENTRY)&_ZN6dd77203barEv,
+ (VTBL_ENTRY)&_ZN6dd77203fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77203fooEv,_ZTv0_n16_N6dd77203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77203barEv,_ZTv0_n20_N6dd77203barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77203fooEv,_ZTv0_n12_N6dd77203fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd7720[];
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc720__6dd7720[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc720__6dd7720[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+static VTT_ENTRY vtt_dd7720[] = {
+ {&(_ZTV6dd7720[4]), 4,17},
+ {&(_ZTV6dd7720[11]), 11,17},
+ {&(_ZTV6dd7720[16]), 16,17},
+ {&(_tg__ZTV5cc720__6dd7720[3]), 3,5},
+ {&(_tg__ZTV4bb20__5cc720__6dd7720[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd7720[];
+extern VTBL_ENTRY _ZTV6dd7720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7720[];
+static VTBL_ENTRY alt_thunk_names417[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77203fooEv,_ZTv0_n12_N6dd77203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77203fooEv,_ZThn16_N6dd77203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77203barEv,_ZTv0_n20_N6dd77203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77203barEv,_ZThn8_N6dd77203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77203fooEv,_ZTv0_n16_N6dd77203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77203fooEv,_ZThn8_N6dd77203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7720 = { "dd7720", // class name
+ bases_dd7720, 3,
+ &(vtc_dd7720[0]), // expected_vtbl_contents
+ &(vtt_dd7720[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd7720),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7720),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7720),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names417,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07720 : dd7720 {
+ int e;
+ ~ee07720(); // tgen
+ ee07720(); // tgen
+};
+//SIG(1 ee07720) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee07720 ::~ee07720(){ note_dtor("ee07720", this);} // tgen
+ee07720 ::ee07720(){ note_ctor("ee07720", this);} // tgen
+
+static void Test_ee07720()
+{
+ extern Class_Descriptor cd_ee07720;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee07720, buf);
+ ee07720 *dp, &lv = *(dp=new (buf) ee07720());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee07720)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07720)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee07720");
+ check_base_class_offset(lv, (bb20*)(cc720*), ABISELECT(32,20), "ee07720");
+ check_base_class_offset(lv, (cc720*)(dd7720*), ABISELECT(16,12), "ee07720");
+ check_base_class_offset(lv, (dd7720*), 0, "ee07720");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07720.e");
+ test_class_info(&lv, &cd_ee07720);
+ dp->~ee07720();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07720(Test_ee07720, "ee07720", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee07720C1Ev();
+extern void _ZN7ee07720D1Ev();
+Name_Map name_map_ee07720[] = {
+ NSPAIR(_ZN7ee07720C1Ev),
+ NSPAIR(_ZN7ee07720D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc720;
+extern VTBL_ENTRY _ZTI5cc720[];
+extern VTBL_ENTRY _ZTV5cc720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc720[];
+extern Class_Descriptor cd_dd7720;
+extern VTBL_ENTRY _ZTI6dd7720[];
+extern VTBL_ENTRY _ZTV6dd7720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7720[];
+static Base_Class bases_ee07720[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc720, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7720, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07720[];
+extern void _ZN6dd77203barEv();
+extern void _ZN6dd77203fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd77203fooEv,_ZTv0_n16_N6dd77203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77203fooEv,_ZThn12_N6dd77203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77203barEv,_ZTv0_n20_N6dd77203barEv)();
+extern void ABISELECT(_ZThn16_N6dd77203barEv,_ZThn12_N6dd77203barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd77203fooEv,_ZTv0_n12_N6dd77203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77203fooEv,_ZThn20_N6dd77203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07720[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07720[0]),
+ (VTBL_ENTRY)&_ZN6dd77203barEv,
+ (VTBL_ENTRY)&_ZN6dd77203fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77203fooEv,_ZTv0_n16_N6dd77203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77203barEv,_ZTv0_n20_N6dd77203barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee07720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77203fooEv,_ZTv0_n12_N6dd77203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee07720[];
+extern void _ZN6dd77203barEv();
+extern void _ZN6dd77203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7720__7ee07720[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7720[0]),
+ (VTBL_ENTRY)&_ZN6dd77203barEv,
+ (VTBL_ENTRY)&_ZN6dd77203fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77203fooEv,_ZTv0_n16_N6dd77203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77203fooEv,_ZThn12_N6dd77203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77203barEv,_ZTv0_n20_N6dd77203barEv)();
+extern void ABISELECT(_ZThn16_N6dd77203barEv,_ZThn12_N6dd77203barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc720__6dd7720__7ee07720[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77203fooEv,_ZTv0_n16_N6dd77203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77203barEv,_ZTv0_n20_N6dd77203barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd77203fooEv,_ZTv0_n12_N6dd77203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77203fooEv,_ZThn20_N6dd77203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd7720__7ee07720[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77203fooEv,_ZTv0_n12_N6dd77203fooEv),
+};
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc720__7ee07720[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc720__7ee07720[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+static VTT_ENTRY vtt_ee07720[] = {
+ {&(_ZTV7ee07720[4]), 4,17},
+ {&(_tg__ZTV6dd7720__7ee07720[4]), 4,6},
+ {&(_tg__ZTV5cc720__6dd7720__7ee07720[5]), 5,7},
+ {&(_tg__ZTV4bb20__6dd7720__7ee07720[3]), 3,4},
+ {&(_ZTV7ee07720[11]), 11,17},
+ {&(_ZTV7ee07720[16]), 16,17},
+ {&(_tg__ZTV5cc720__7ee07720[3]), 3,5},
+ {&(_tg__ZTV4bb20__5cc720__7ee07720[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee07720[];
+extern VTBL_ENTRY _ZTV7ee07720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07720[];
+static VTBL_ENTRY alt_thunk_names418[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77203fooEv,_ZTv0_n12_N6dd77203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77203fooEv,_ZThn20_N6dd77203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77203fooEv,_ZThn20_N6dd77203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77203barEv,_ZTv0_n20_N6dd77203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77203barEv,_ZThn12_N6dd77203barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77203barEv,_ZThn12_N6dd77203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77203fooEv,_ZTv0_n16_N6dd77203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77203fooEv,_ZThn12_N6dd77203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77203fooEv,_ZThn12_N6dd77203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07720 = { "ee07720", // class name
+ bases_ee07720, 4,
+ &(vtc_ee07720[0]), // expected_vtbl_contents
+ &(vtt_ee07720[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee07720),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07720),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07720),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names418,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee17720 : virtual dd7720 {
+ int e;
+ ~ee17720(); // tgen
+ ee17720(); // tgen
+};
+//SIG(1 ee17720) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee17720 ::~ee17720(){ note_dtor("ee17720", this);} // tgen
+ee17720 ::ee17720(){ note_ctor("ee17720", this);} // tgen
+
+static void Test_ee17720()
+{
+ extern Class_Descriptor cd_ee17720;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee17720, buf);
+ ee17720 *dp, &lv = *(dp=new (buf) ee17720());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee17720)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17720)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(56,28), "ee17720");
+ check_base_class_offset(lv, (bb20*)(cc720*), ABISELECT(48,24), "ee17720");
+ check_base_class_offset(lv, (cc720*)(dd7720*), ABISELECT(32,16), "ee17720");
+ check_base_class_offset(lv, (dd7720*), ABISELECT(16,8), "ee17720");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17720.e");
+ test_class_info(&lv, &cd_ee17720);
+ dp->~ee17720();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17720(Test_ee17720, "ee17720", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee17720C1Ev();
+extern void _ZN7ee17720D1Ev();
+Name_Map name_map_ee17720[] = {
+ NSPAIR(_ZN7ee17720C1Ev),
+ NSPAIR(_ZN7ee17720D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc720;
+extern VTBL_ENTRY _ZTI5cc720[];
+extern VTBL_ENTRY _ZTV5cc720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc720[];
+extern Class_Descriptor cd_dd7720;
+extern VTBL_ENTRY _ZTI6dd7720[];
+extern VTBL_ENTRY _ZTV6dd7720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7720[];
+static Base_Class bases_ee17720[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(56,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc720, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7720, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee17720[];
+extern void _ZN6dd77203barEv();
+extern void _ZN6dd77203fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd77203fooEv,_ZTv0_n16_N6dd77203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77203fooEv,_ZThn8_N6dd77203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77203barEv,_ZTv0_n20_N6dd77203barEv)();
+extern void ABISELECT(_ZThn16_N6dd77203barEv,_ZThn8_N6dd77203barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd77203fooEv,_ZTv0_n12_N6dd77203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77203fooEv,_ZThn16_N6dd77203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17720[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17720[0]),
+ 0,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17720[0]),
+ (VTBL_ENTRY)&_ZN6dd77203barEv,
+ (VTBL_ENTRY)&_ZN6dd77203fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77203fooEv,_ZTv0_n16_N6dd77203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77203barEv,_ZTv0_n20_N6dd77203barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee17720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77203fooEv,_ZTv0_n12_N6dd77203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee17720[];
+extern void _ZN6dd77203barEv();
+extern void _ZN6dd77203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7720__7ee17720[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7720[0]),
+ (VTBL_ENTRY)&_ZN6dd77203barEv,
+ (VTBL_ENTRY)&_ZN6dd77203fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77203fooEv,_ZTv0_n16_N6dd77203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77203fooEv,_ZThn8_N6dd77203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77203barEv,_ZTv0_n20_N6dd77203barEv)();
+extern void ABISELECT(_ZThn16_N6dd77203barEv,_ZThn8_N6dd77203barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc720__6dd7720__7ee17720[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77203fooEv,_ZTv0_n16_N6dd77203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77203barEv,_ZTv0_n20_N6dd77203barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd77203fooEv,_ZTv0_n12_N6dd77203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77203fooEv,_ZThn16_N6dd77203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd7720__7ee17720[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77203fooEv,_ZTv0_n12_N6dd77203fooEv),
+};
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc720__7ee17720[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc720__7ee17720[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+static VTT_ENTRY vtt_ee17720[] = {
+ {&(_ZTV7ee17720[5]), 5,24},
+ {&(_ZTV7ee17720[11]), 11,24},
+ {&(_ZTV7ee17720[18]), 18,24},
+ {&(_ZTV7ee17720[23]), 23,24},
+ {&(_tg__ZTV6dd7720__7ee17720[4]), 4,6},
+ {&(_tg__ZTV5cc720__6dd7720__7ee17720[5]), 5,7},
+ {&(_tg__ZTV4bb20__6dd7720__7ee17720[3]), 3,4},
+ {&(_tg__ZTV5cc720__7ee17720[3]), 3,5},
+ {&(_tg__ZTV4bb20__5cc720__7ee17720[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee17720[];
+extern VTBL_ENTRY _ZTV7ee17720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17720[];
+static VTBL_ENTRY alt_thunk_names419[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77203fooEv,_ZTv0_n12_N6dd77203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77203fooEv,_ZThn16_N6dd77203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77203fooEv,_ZThn16_N6dd77203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77203barEv,_ZTv0_n20_N6dd77203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77203barEv,_ZThn8_N6dd77203barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77203barEv,_ZThn8_N6dd77203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77203fooEv,_ZTv0_n16_N6dd77203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77203fooEv,_ZThn8_N6dd77203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77203fooEv,_ZThn8_N6dd77203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17720 = { "ee17720", // class name
+ bases_ee17720, 4,
+ &(vtc_ee17720[0]), // expected_vtbl_contents
+ &(vtt_ee17720[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee17720),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17720),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17720),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names419,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee27720 : dd7720 {
+ int e;
+ virtual void foo(); // _ZN7ee277203fooEv
+ ~ee27720(); // tgen
+ ee27720(); // tgen
+};
+//SIG(1 ee27720) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27720 ::foo(){vfunc_called(this, "_ZN7ee277203fooEv");}
+ee27720 ::~ee27720(){ note_dtor("ee27720", this);} // tgen
+ee27720 ::ee27720(){ note_ctor("ee27720", this);} // tgen
+
+static void Test_ee27720()
+{
+ extern Class_Descriptor cd_ee27720;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee27720, buf);
+ ee27720 *dp, &lv = *(dp=new (buf) ee27720());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee27720)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27720)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee27720");
+ check_base_class_offset(lv, (bb20*)(cc720*), ABISELECT(32,20), "ee27720");
+ check_base_class_offset(lv, (cc720*)(dd7720*), ABISELECT(16,12), "ee27720");
+ check_base_class_offset(lv, (dd7720*), 0, "ee27720");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27720.e");
+ test_class_info(&lv, &cd_ee27720);
+ dp->~ee27720();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27720(Test_ee27720, "ee27720", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee27720C1Ev();
+extern void _ZN7ee27720D1Ev();
+Name_Map name_map_ee27720[] = {
+ NSPAIR(_ZN7ee27720C1Ev),
+ NSPAIR(_ZN7ee27720D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc720;
+extern VTBL_ENTRY _ZTI5cc720[];
+extern VTBL_ENTRY _ZTV5cc720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc720[];
+extern Class_Descriptor cd_dd7720;
+extern VTBL_ENTRY _ZTI6dd7720[];
+extern VTBL_ENTRY _ZTV6dd7720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7720[];
+static Base_Class bases_ee27720[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc720, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7720, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27720[];
+extern void _ZN6dd77203barEv();
+extern void _ZN7ee277203fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee277203fooEv,_ZTv0_n16_N7ee277203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee277203fooEv,_ZThn12_N7ee277203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77203barEv,_ZTv0_n20_N6dd77203barEv)();
+extern void ABISELECT(_ZThn16_N6dd77203barEv,_ZThn12_N6dd77203barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee277203fooEv,_ZTv0_n12_N7ee277203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee277203fooEv,_ZThn20_N7ee277203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27720[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27720[0]),
+ (VTBL_ENTRY)&_ZN6dd77203barEv,
+ (VTBL_ENTRY)&_ZN7ee277203fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee277203fooEv,_ZTv0_n16_N7ee277203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77203barEv,_ZTv0_n20_N6dd77203barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee27720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee277203fooEv,_ZTv0_n12_N7ee277203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee27720[];
+extern void _ZN6dd77203barEv();
+extern void _ZN6dd77203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7720__7ee27720[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7720[0]),
+ (VTBL_ENTRY)&_ZN6dd77203barEv,
+ (VTBL_ENTRY)&_ZN6dd77203fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77203fooEv,_ZTv0_n16_N6dd77203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77203fooEv,_ZThn12_N6dd77203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77203barEv,_ZTv0_n20_N6dd77203barEv)();
+extern void ABISELECT(_ZThn16_N6dd77203barEv,_ZThn12_N6dd77203barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc720__6dd7720__7ee27720[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77203fooEv,_ZTv0_n16_N6dd77203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77203barEv,_ZTv0_n20_N6dd77203barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd77203fooEv,_ZTv0_n12_N6dd77203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77203fooEv,_ZThn20_N6dd77203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd7720__7ee27720[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77203fooEv,_ZTv0_n12_N6dd77203fooEv),
+};
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc720__7ee27720[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc720__7ee27720[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+static VTT_ENTRY vtt_ee27720[] = {
+ {&(_ZTV7ee27720[4]), 4,17},
+ {&(_tg__ZTV6dd7720__7ee27720[4]), 4,6},
+ {&(_tg__ZTV5cc720__6dd7720__7ee27720[5]), 5,7},
+ {&(_tg__ZTV4bb20__6dd7720__7ee27720[3]), 3,4},
+ {&(_ZTV7ee27720[11]), 11,17},
+ {&(_ZTV7ee27720[16]), 16,17},
+ {&(_tg__ZTV5cc720__7ee27720[3]), 3,5},
+ {&(_tg__ZTV4bb20__5cc720__7ee27720[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee27720[];
+extern VTBL_ENTRY _ZTV7ee27720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27720[];
+static VTBL_ENTRY alt_thunk_names420[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77203fooEv,_ZTv0_n12_N6dd77203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77203fooEv,_ZThn20_N6dd77203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77203fooEv,_ZTv0_n16_N6dd77203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77203fooEv,_ZThn12_N6dd77203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee277203fooEv,_ZTv0_n12_N7ee277203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee277203fooEv,_ZThn20_N7ee277203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77203barEv,_ZTv0_n20_N6dd77203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77203barEv,_ZThn12_N6dd77203barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77203barEv,_ZThn12_N6dd77203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee277203fooEv,_ZTv0_n16_N7ee277203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee277203fooEv,_ZThn12_N7ee277203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27720 = { "ee27720", // class name
+ bases_ee27720, 4,
+ &(vtc_ee27720[0]), // expected_vtbl_contents
+ &(vtt_ee27720[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee27720),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27720),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27720),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names420,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee37720 : virtual dd7720 {
+ int e;
+ virtual void foo(); // _ZN7ee377203fooEv
+ ~ee37720(); // tgen
+ ee37720(); // tgen
+};
+//SIG(1 ee37720) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37720 ::foo(){vfunc_called(this, "_ZN7ee377203fooEv");}
+ee37720 ::~ee37720(){ note_dtor("ee37720", this);} // tgen
+ee37720 ::ee37720(){ note_ctor("ee37720", this);} // tgen
+
+static void Test_ee37720()
+{
+ extern Class_Descriptor cd_ee37720;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee37720, buf);
+ ee37720 *dp, &lv = *(dp=new (buf) ee37720());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee37720)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37720)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(56,28), "ee37720");
+ check_base_class_offset(lv, (bb20*)(cc720*), ABISELECT(48,24), "ee37720");
+ check_base_class_offset(lv, (cc720*)(dd7720*), ABISELECT(32,16), "ee37720");
+ check_base_class_offset(lv, (dd7720*), ABISELECT(16,8), "ee37720");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37720.e");
+ test_class_info(&lv, &cd_ee37720);
+ dp->~ee37720();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37720(Test_ee37720, "ee37720", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee37720C1Ev();
+extern void _ZN7ee37720D1Ev();
+Name_Map name_map_ee37720[] = {
+ NSPAIR(_ZN7ee37720C1Ev),
+ NSPAIR(_ZN7ee37720D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc720;
+extern VTBL_ENTRY _ZTI5cc720[];
+extern VTBL_ENTRY _ZTV5cc720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc720[];
+extern Class_Descriptor cd_dd7720;
+extern VTBL_ENTRY _ZTI6dd7720[];
+extern VTBL_ENTRY _ZTV6dd7720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7720[];
+static Base_Class bases_ee37720[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(56,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc720, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7720, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee37720[];
+extern void _ZN7ee377203fooEv();
+extern void _ZN6dd77203barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee377203fooEv,_ZTv0_n24_N7ee377203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee377203fooEv,_ZThn8_N7ee377203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee377203fooEv,_ZTv0_n16_N7ee377203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee377203fooEv,_ZThn16_N7ee377203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77203barEv,_ZTv0_n20_N6dd77203barEv)();
+extern void ABISELECT(_ZThn16_N6dd77203barEv,_ZThn8_N6dd77203barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee377203fooEv,_ZTv0_n12_N7ee377203fooEv)();
+extern void ABISELECT(_ZThn48_N7ee377203fooEv,_ZThn24_N7ee377203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37720[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37720[0]),
+ (VTBL_ENTRY)&_ZN7ee377203fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37720[0]),
+ (VTBL_ENTRY)&_ZN6dd77203barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee377203fooEv,_ZTv0_n24_N7ee377203fooEv),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee377203fooEv,_ZTv0_n16_N7ee377203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77203barEv,_ZTv0_n20_N6dd77203barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee37720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee377203fooEv,_ZTv0_n12_N7ee377203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee37720[];
+extern void _ZN6dd77203barEv();
+extern void _ZN6dd77203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7720__7ee37720[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7720[0]),
+ (VTBL_ENTRY)&_ZN6dd77203barEv,
+ (VTBL_ENTRY)&_ZN6dd77203fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77203fooEv,_ZTv0_n16_N6dd77203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77203fooEv,_ZThn8_N6dd77203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77203barEv,_ZTv0_n20_N6dd77203barEv)();
+extern void ABISELECT(_ZThn16_N6dd77203barEv,_ZThn8_N6dd77203barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc720__6dd7720__7ee37720[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77203fooEv,_ZTv0_n16_N6dd77203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77203barEv,_ZTv0_n20_N6dd77203barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd77203fooEv,_ZTv0_n12_N6dd77203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77203fooEv,_ZThn16_N6dd77203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd7720__7ee37720[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77203fooEv,_ZTv0_n12_N6dd77203fooEv),
+};
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc720__7ee37720[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc720__7ee37720[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+static VTT_ENTRY vtt_ee37720[] = {
+ {&(_ZTV7ee37720[5]), 5,25},
+ {&(_ZTV7ee37720[12]), 12,25},
+ {&(_ZTV7ee37720[19]), 19,25},
+ {&(_ZTV7ee37720[24]), 24,25},
+ {&(_tg__ZTV6dd7720__7ee37720[4]), 4,6},
+ {&(_tg__ZTV5cc720__6dd7720__7ee37720[5]), 5,7},
+ {&(_tg__ZTV4bb20__6dd7720__7ee37720[3]), 3,4},
+ {&(_tg__ZTV5cc720__7ee37720[3]), 3,5},
+ {&(_tg__ZTV4bb20__5cc720__7ee37720[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee37720[];
+extern VTBL_ENTRY _ZTV7ee37720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37720[];
+static VTBL_ENTRY alt_thunk_names421[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77203fooEv,_ZTv0_n12_N6dd77203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77203fooEv,_ZThn16_N6dd77203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77203fooEv,_ZTv0_n16_N6dd77203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77203fooEv,_ZThn8_N6dd77203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee377203fooEv,_ZTv0_n12_N7ee377203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee377203fooEv,_ZThn24_N7ee377203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77203barEv,_ZTv0_n20_N6dd77203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77203barEv,_ZThn8_N6dd77203barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77203barEv,_ZThn8_N6dd77203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee377203fooEv,_ZTv0_n16_N7ee377203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee377203fooEv,_ZThn16_N7ee377203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee377203fooEv,_ZTv0_n24_N7ee377203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee377203fooEv,_ZThn8_N7ee377203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37720 = { "ee37720", // class name
+ bases_ee37720, 4,
+ &(vtc_ee37720[0]), // expected_vtbl_contents
+ &(vtt_ee37720[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee37720),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37720),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37720),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names421,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee47720 : dd7720 {
+ int e;
+ virtual void bar(); // _ZN7ee477203barEv
+ ~ee47720(); // tgen
+ ee47720(); // tgen
+};
+//SIG(1 ee47720) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47720 ::bar(){vfunc_called(this, "_ZN7ee477203barEv");}
+ee47720 ::~ee47720(){ note_dtor("ee47720", this);} // tgen
+ee47720 ::ee47720(){ note_ctor("ee47720", this);} // tgen
+
+static void Test_ee47720()
+{
+ extern Class_Descriptor cd_ee47720;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee47720, buf);
+ ee47720 *dp, &lv = *(dp=new (buf) ee47720());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee47720)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47720)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee47720");
+ check_base_class_offset(lv, (bb20*)(cc720*), ABISELECT(32,20), "ee47720");
+ check_base_class_offset(lv, (cc720*)(dd7720*), ABISELECT(16,12), "ee47720");
+ check_base_class_offset(lv, (dd7720*), 0, "ee47720");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47720.e");
+ test_class_info(&lv, &cd_ee47720);
+ dp->~ee47720();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47720(Test_ee47720, "ee47720", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee47720C1Ev();
+extern void _ZN7ee47720D1Ev();
+Name_Map name_map_ee47720[] = {
+ NSPAIR(_ZN7ee47720C1Ev),
+ NSPAIR(_ZN7ee47720D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc720;
+extern VTBL_ENTRY _ZTI5cc720[];
+extern VTBL_ENTRY _ZTV5cc720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc720[];
+extern Class_Descriptor cd_dd7720;
+extern VTBL_ENTRY _ZTI6dd7720[];
+extern VTBL_ENTRY _ZTV6dd7720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7720[];
+static Base_Class bases_ee47720[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc720, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7720, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47720[];
+extern void _ZN7ee477203barEv();
+extern void _ZN6dd77203fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd77203fooEv,_ZTv0_n16_N6dd77203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77203fooEv,_ZThn12_N6dd77203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee477203barEv,_ZTv0_n20_N7ee477203barEv)();
+extern void ABISELECT(_ZThn16_N7ee477203barEv,_ZThn12_N7ee477203barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd77203fooEv,_ZTv0_n12_N6dd77203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77203fooEv,_ZThn20_N6dd77203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47720[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47720[0]),
+ (VTBL_ENTRY)&_ZN7ee477203barEv,
+ (VTBL_ENTRY)&_ZN6dd77203fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77203fooEv,_ZTv0_n16_N6dd77203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee477203barEv,_ZTv0_n20_N7ee477203barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee47720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77203fooEv,_ZTv0_n12_N6dd77203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee47720[];
+extern void _ZN6dd77203barEv();
+extern void _ZN6dd77203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7720__7ee47720[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7720[0]),
+ (VTBL_ENTRY)&_ZN6dd77203barEv,
+ (VTBL_ENTRY)&_ZN6dd77203fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77203fooEv,_ZTv0_n16_N6dd77203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77203fooEv,_ZThn12_N6dd77203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77203barEv,_ZTv0_n20_N6dd77203barEv)();
+extern void ABISELECT(_ZThn16_N6dd77203barEv,_ZThn12_N6dd77203barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc720__6dd7720__7ee47720[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77203fooEv,_ZTv0_n16_N6dd77203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77203barEv,_ZTv0_n20_N6dd77203barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd77203fooEv,_ZTv0_n12_N6dd77203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77203fooEv,_ZThn20_N6dd77203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd7720__7ee47720[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77203fooEv,_ZTv0_n12_N6dd77203fooEv),
+};
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc720__7ee47720[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc720__7ee47720[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+static VTT_ENTRY vtt_ee47720[] = {
+ {&(_ZTV7ee47720[4]), 4,17},
+ {&(_tg__ZTV6dd7720__7ee47720[4]), 4,6},
+ {&(_tg__ZTV5cc720__6dd7720__7ee47720[5]), 5,7},
+ {&(_tg__ZTV4bb20__6dd7720__7ee47720[3]), 3,4},
+ {&(_ZTV7ee47720[11]), 11,17},
+ {&(_ZTV7ee47720[16]), 16,17},
+ {&(_tg__ZTV5cc720__7ee47720[3]), 3,5},
+ {&(_tg__ZTV4bb20__5cc720__7ee47720[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee47720[];
+extern VTBL_ENTRY _ZTV7ee47720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47720[];
+static VTBL_ENTRY alt_thunk_names422[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77203barEv,_ZTv0_n20_N6dd77203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77203barEv,_ZThn12_N6dd77203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77203fooEv,_ZTv0_n12_N6dd77203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77203fooEv,_ZThn20_N6dd77203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77203fooEv,_ZThn20_N6dd77203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee477203barEv,_ZTv0_n20_N7ee477203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee477203barEv,_ZThn12_N7ee477203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77203fooEv,_ZTv0_n16_N6dd77203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77203fooEv,_ZThn12_N6dd77203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77203fooEv,_ZThn12_N6dd77203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47720 = { "ee47720", // class name
+ bases_ee47720, 4,
+ &(vtc_ee47720[0]), // expected_vtbl_contents
+ &(vtt_ee47720[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee47720),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47720),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47720),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names422,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee57720 : virtual dd7720 {
+ int e;
+ virtual void bar(); // _ZN7ee577203barEv
+ ~ee57720(); // tgen
+ ee57720(); // tgen
+};
+//SIG(1 ee57720) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57720 ::bar(){vfunc_called(this, "_ZN7ee577203barEv");}
+ee57720 ::~ee57720(){ note_dtor("ee57720", this);} // tgen
+ee57720 ::ee57720(){ note_ctor("ee57720", this);} // tgen
+
+static void Test_ee57720()
+{
+ extern Class_Descriptor cd_ee57720;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee57720, buf);
+ ee57720 *dp, &lv = *(dp=new (buf) ee57720());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee57720)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57720)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(56,28), "ee57720");
+ check_base_class_offset(lv, (bb20*)(cc720*), ABISELECT(48,24), "ee57720");
+ check_base_class_offset(lv, (cc720*)(dd7720*), ABISELECT(32,16), "ee57720");
+ check_base_class_offset(lv, (dd7720*), ABISELECT(16,8), "ee57720");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57720.e");
+ test_class_info(&lv, &cd_ee57720);
+ dp->~ee57720();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57720(Test_ee57720, "ee57720", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee57720C1Ev();
+extern void _ZN7ee57720D1Ev();
+Name_Map name_map_ee57720[] = {
+ NSPAIR(_ZN7ee57720C1Ev),
+ NSPAIR(_ZN7ee57720D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc720;
+extern VTBL_ENTRY _ZTI5cc720[];
+extern VTBL_ENTRY _ZTV5cc720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc720[];
+extern Class_Descriptor cd_dd7720;
+extern VTBL_ENTRY _ZTI6dd7720[];
+extern VTBL_ENTRY _ZTV6dd7720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7720[];
+static Base_Class bases_ee57720[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(56,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc720, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7720, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee57720[];
+extern void _ZN7ee577203barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee577203barEv,_ZTv0_n20_N7ee577203barEv)();
+extern void ABISELECT(_ZThn16_N7ee577203barEv,_ZThn8_N7ee577203barEv)() __attribute__((weak));
+extern void _ZN6dd77203fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd77203fooEv,_ZTv0_n16_N6dd77203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77203fooEv,_ZThn8_N6dd77203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee577203barEv,_ZTv0_n20_N7ee577203barEv)();
+extern void ABISELECT(_ZThn32_N7ee577203barEv,_ZThn16_N7ee577203barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd77203fooEv,_ZTv0_n12_N6dd77203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77203fooEv,_ZThn16_N6dd77203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57720[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57720[0]),
+ (VTBL_ENTRY)&_ZN7ee577203barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee577203barEv,_ZTv0_n20_N7ee577203barEv),
+ (VTBL_ENTRY)&_ZN6dd77203fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77203fooEv,_ZTv0_n16_N6dd77203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee577203barEv,_ZTv0_n20_N7ee577203barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee57720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77203fooEv,_ZTv0_n12_N6dd77203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee57720[];
+extern void _ZN6dd77203barEv();
+extern void _ZN6dd77203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7720__7ee57720[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7720[0]),
+ (VTBL_ENTRY)&_ZN6dd77203barEv,
+ (VTBL_ENTRY)&_ZN6dd77203fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77203fooEv,_ZTv0_n16_N6dd77203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77203fooEv,_ZThn8_N6dd77203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77203barEv,_ZTv0_n20_N6dd77203barEv)();
+extern void ABISELECT(_ZThn16_N6dd77203barEv,_ZThn8_N6dd77203barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc720__6dd7720__7ee57720[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77203fooEv,_ZTv0_n16_N6dd77203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77203barEv,_ZTv0_n20_N6dd77203barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd77203fooEv,_ZTv0_n12_N6dd77203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77203fooEv,_ZThn16_N6dd77203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd7720__7ee57720[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77203fooEv,_ZTv0_n12_N6dd77203fooEv),
+};
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc720__7ee57720[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc720__7ee57720[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+static VTT_ENTRY vtt_ee57720[] = {
+ {&(_ZTV7ee57720[5]), 5,25},
+ {&(_ZTV7ee57720[12]), 12,25},
+ {&(_ZTV7ee57720[19]), 19,25},
+ {&(_ZTV7ee57720[24]), 24,25},
+ {&(_tg__ZTV6dd7720__7ee57720[4]), 4,6},
+ {&(_tg__ZTV5cc720__6dd7720__7ee57720[5]), 5,7},
+ {&(_tg__ZTV4bb20__6dd7720__7ee57720[3]), 3,4},
+ {&(_tg__ZTV5cc720__7ee57720[3]), 3,5},
+ {&(_tg__ZTV4bb20__5cc720__7ee57720[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee57720[];
+extern VTBL_ENTRY _ZTV7ee57720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57720[];
+static VTBL_ENTRY alt_thunk_names423[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77203barEv,_ZTv0_n20_N6dd77203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77203barEv,_ZThn8_N6dd77203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77203fooEv,_ZTv0_n12_N6dd77203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77203fooEv,_ZThn16_N6dd77203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77203fooEv,_ZThn16_N6dd77203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77203fooEv,_ZTv0_n16_N6dd77203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77203fooEv,_ZThn8_N6dd77203fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77203fooEv,_ZThn8_N6dd77203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee577203barEv,_ZTv0_n20_N7ee577203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee577203barEv,_ZThn16_N7ee577203barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee577203barEv,_ZThn8_N7ee577203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57720 = { "ee57720", // class name
+ bases_ee57720, 4,
+ &(vtc_ee57720[0]), // expected_vtbl_contents
+ &(vtt_ee57720[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee57720),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57720),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57720),9, //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 ee67720 : dd7720 {
+ int e;
+ virtual void foo(); // _ZN7ee677203fooEv
+ virtual void bar(); // _ZN7ee677203barEv
+ ~ee67720(); // tgen
+ ee67720(); // tgen
+};
+//SIG(1 ee67720) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67720 ::foo(){vfunc_called(this, "_ZN7ee677203fooEv");}
+void ee67720 ::bar(){vfunc_called(this, "_ZN7ee677203barEv");}
+ee67720 ::~ee67720(){ note_dtor("ee67720", this);} // tgen
+ee67720 ::ee67720(){ note_ctor("ee67720", this);} // tgen
+
+static void Test_ee67720()
+{
+ extern Class_Descriptor cd_ee67720;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee67720, buf);
+ ee67720 *dp, &lv = *(dp=new (buf) ee67720());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee67720)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67720)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(40,24), "ee67720");
+ check_base_class_offset(lv, (bb20*)(cc720*), ABISELECT(32,20), "ee67720");
+ check_base_class_offset(lv, (cc720*)(dd7720*), ABISELECT(16,12), "ee67720");
+ check_base_class_offset(lv, (dd7720*), 0, "ee67720");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67720.e");
+ test_class_info(&lv, &cd_ee67720);
+ dp->~ee67720();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67720(Test_ee67720, "ee67720", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee67720C1Ev();
+extern void _ZN7ee67720D1Ev();
+Name_Map name_map_ee67720[] = {
+ NSPAIR(_ZN7ee67720C1Ev),
+ NSPAIR(_ZN7ee67720D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc720;
+extern VTBL_ENTRY _ZTI5cc720[];
+extern VTBL_ENTRY _ZTV5cc720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc720[];
+extern Class_Descriptor cd_dd7720;
+extern VTBL_ENTRY _ZTI6dd7720[];
+extern VTBL_ENTRY _ZTV6dd7720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7720[];
+static Base_Class bases_ee67720[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc720, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7720, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67720[];
+extern void _ZN7ee677203barEv();
+extern void _ZN7ee677203fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee677203fooEv,_ZTv0_n16_N7ee677203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee677203fooEv,_ZThn12_N7ee677203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee677203barEv,_ZTv0_n20_N7ee677203barEv)();
+extern void ABISELECT(_ZThn16_N7ee677203barEv,_ZThn12_N7ee677203barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee677203fooEv,_ZTv0_n12_N7ee677203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee677203fooEv,_ZThn20_N7ee677203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67720[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67720[0]),
+ (VTBL_ENTRY)&_ZN7ee677203barEv,
+ (VTBL_ENTRY)&_ZN7ee677203fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee677203fooEv,_ZTv0_n16_N7ee677203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee677203barEv,_ZTv0_n20_N7ee677203barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee67720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee677203fooEv,_ZTv0_n12_N7ee677203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee67720[];
+extern void _ZN6dd77203barEv();
+extern void _ZN6dd77203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7720__7ee67720[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7720[0]),
+ (VTBL_ENTRY)&_ZN6dd77203barEv,
+ (VTBL_ENTRY)&_ZN6dd77203fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77203fooEv,_ZTv0_n16_N6dd77203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77203fooEv,_ZThn12_N6dd77203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77203barEv,_ZTv0_n20_N6dd77203barEv)();
+extern void ABISELECT(_ZThn16_N6dd77203barEv,_ZThn12_N6dd77203barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc720__6dd7720__7ee67720[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77203fooEv,_ZTv0_n16_N6dd77203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77203barEv,_ZTv0_n20_N6dd77203barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd77203fooEv,_ZTv0_n12_N6dd77203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77203fooEv,_ZThn20_N6dd77203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd7720__7ee67720[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77203fooEv,_ZTv0_n12_N6dd77203fooEv),
+};
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc720__7ee67720[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc720__7ee67720[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+static VTT_ENTRY vtt_ee67720[] = {
+ {&(_ZTV7ee67720[4]), 4,17},
+ {&(_tg__ZTV6dd7720__7ee67720[4]), 4,6},
+ {&(_tg__ZTV5cc720__6dd7720__7ee67720[5]), 5,7},
+ {&(_tg__ZTV4bb20__6dd7720__7ee67720[3]), 3,4},
+ {&(_ZTV7ee67720[11]), 11,17},
+ {&(_ZTV7ee67720[16]), 16,17},
+ {&(_tg__ZTV5cc720__7ee67720[3]), 3,5},
+ {&(_tg__ZTV4bb20__5cc720__7ee67720[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee67720[];
+extern VTBL_ENTRY _ZTV7ee67720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67720[];
+static VTBL_ENTRY alt_thunk_names424[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77203fooEv,_ZTv0_n12_N6dd77203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77203fooEv,_ZThn20_N6dd77203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77203barEv,_ZTv0_n20_N6dd77203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77203barEv,_ZThn12_N6dd77203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77203fooEv,_ZTv0_n16_N6dd77203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77203fooEv,_ZThn12_N6dd77203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee677203fooEv,_ZTv0_n12_N7ee677203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee677203fooEv,_ZThn20_N7ee677203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee677203barEv,_ZTv0_n20_N7ee677203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee677203barEv,_ZThn12_N7ee677203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee677203fooEv,_ZTv0_n16_N7ee677203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee677203fooEv,_ZThn12_N7ee677203fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67720 = { "ee67720", // class name
+ bases_ee67720, 4,
+ &(vtc_ee67720[0]), // expected_vtbl_contents
+ &(vtt_ee67720[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee67720),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67720),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67720),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names424,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee77720 : virtual dd7720 {
+ int e;
+ virtual void foo(); // _ZN7ee777203fooEv
+ virtual void bar(); // _ZN7ee777203barEv
+ ~ee77720(); // tgen
+ ee77720(); // tgen
+};
+//SIG(1 ee77720) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77720 ::foo(){vfunc_called(this, "_ZN7ee777203fooEv");}
+void ee77720 ::bar(){vfunc_called(this, "_ZN7ee777203barEv");}
+ee77720 ::~ee77720(){ note_dtor("ee77720", this);} // tgen
+ee77720 ::ee77720(){ note_ctor("ee77720", this);} // tgen
+
+static void Test_ee77720()
+{
+ extern Class_Descriptor cd_ee77720;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee77720, buf);
+ ee77720 *dp, &lv = *(dp=new (buf) ee77720());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee77720)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77720)");
+ check_base_class_offset(lv, (aa0*)(bb20*), ABISELECT(56,28), "ee77720");
+ check_base_class_offset(lv, (bb20*)(cc720*), ABISELECT(48,24), "ee77720");
+ check_base_class_offset(lv, (cc720*)(dd7720*), ABISELECT(32,16), "ee77720");
+ check_base_class_offset(lv, (dd7720*), ABISELECT(16,8), "ee77720");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77720.e");
+ test_class_info(&lv, &cd_ee77720);
+ dp->~ee77720();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77720(Test_ee77720, "ee77720", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee77720C1Ev();
+extern void _ZN7ee77720D1Ev();
+Name_Map name_map_ee77720[] = {
+ NSPAIR(_ZN7ee77720C1Ev),
+ NSPAIR(_ZN7ee77720D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb20;
+extern VTBL_ENTRY _ZTI4bb20[];
+extern VTBL_ENTRY _ZTV4bb20[];
+extern Class_Descriptor cd_cc720;
+extern VTBL_ENTRY _ZTI5cc720[];
+extern VTBL_ENTRY _ZTV5cc720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc720[];
+extern Class_Descriptor cd_dd7720;
+extern VTBL_ENTRY _ZTI6dd7720[];
+extern VTBL_ENTRY _ZTV6dd7720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7720[];
+static Base_Class bases_ee77720[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(56,28), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb20, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc720, ABISELECT(32,16), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7720, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee77720[];
+extern void _ZN7ee777203fooEv();
+extern void _ZN7ee777203barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee777203barEv,_ZTv0_n20_N7ee777203barEv)();
+extern void ABISELECT(_ZThn16_N7ee777203barEv,_ZThn8_N7ee777203barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee777203fooEv,_ZTv0_n24_N7ee777203fooEv)();
+extern void ABISELECT(_ZThn16_N7ee777203fooEv,_ZThn8_N7ee777203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee777203fooEv,_ZTv0_n16_N7ee777203fooEv)();
+extern void ABISELECT(_ZThn32_N7ee777203fooEv,_ZThn16_N7ee777203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee777203barEv,_ZTv0_n20_N7ee777203barEv)();
+extern void ABISELECT(_ZThn32_N7ee777203barEv,_ZThn16_N7ee777203barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee777203fooEv,_ZTv0_n12_N7ee777203fooEv)();
+extern void ABISELECT(_ZThn48_N7ee777203fooEv,_ZThn24_N7ee777203fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77720[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77720[0]),
+ (VTBL_ENTRY)&_ZN7ee777203fooEv,
+ (VTBL_ENTRY)&_ZN7ee777203barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee777203barEv,_ZTv0_n20_N7ee777203barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee777203fooEv,_ZTv0_n24_N7ee777203fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee777203fooEv,_ZTv0_n16_N7ee777203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee777203barEv,_ZTv0_n20_N7ee777203barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee77720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee777203fooEv,_ZTv0_n12_N7ee777203fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee77720[];
+extern void _ZN6dd77203barEv();
+extern void _ZN6dd77203fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7720__7ee77720[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7720[0]),
+ (VTBL_ENTRY)&_ZN6dd77203barEv,
+ (VTBL_ENTRY)&_ZN6dd77203fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77203fooEv,_ZTv0_n16_N6dd77203fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77203fooEv,_ZThn8_N6dd77203fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77203barEv,_ZTv0_n20_N6dd77203barEv)();
+extern void ABISELECT(_ZThn16_N6dd77203barEv,_ZThn8_N6dd77203barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc720__6dd7720__7ee77720[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77203fooEv,_ZTv0_n16_N6dd77203fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77203barEv,_ZTv0_n20_N6dd77203barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd77203fooEv,_ZTv0_n12_N6dd77203fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77203fooEv,_ZThn16_N6dd77203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__6dd7720__7ee77720[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77203fooEv,_ZTv0_n12_N6dd77203fooEv),
+};
+extern void _ZN5cc7203fooEv();
+extern void _ZN5cc7203barEv();
+static VTBL_ENTRY _tg__ZTV5cc720__7ee77720[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&_ZN5cc7203fooEv,
+ (VTBL_ENTRY)&_ZN5cc7203barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb20__5cc720__7ee77720[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc720[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv),
+};
+static VTT_ENTRY vtt_ee77720[] = {
+ {&(_ZTV7ee77720[5]), 5,26},
+ {&(_ZTV7ee77720[13]), 13,26},
+ {&(_ZTV7ee77720[20]), 20,26},
+ {&(_ZTV7ee77720[25]), 25,26},
+ {&(_tg__ZTV6dd7720__7ee77720[4]), 4,6},
+ {&(_tg__ZTV5cc720__6dd7720__7ee77720[5]), 5,7},
+ {&(_tg__ZTV4bb20__6dd7720__7ee77720[3]), 3,4},
+ {&(_tg__ZTV5cc720__7ee77720[3]), 3,5},
+ {&(_tg__ZTV4bb20__5cc720__7ee77720[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee77720[];
+extern VTBL_ENTRY _ZTV7ee77720[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77720[];
+static VTBL_ENTRY alt_thunk_names425[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7203fooEv,_ZTv0_n12_N5cc7203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7203fooEv,_ZThn8_N5cc7203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77203fooEv,_ZTv0_n12_N6dd77203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77203fooEv,_ZThn16_N6dd77203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77203barEv,_ZTv0_n20_N6dd77203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77203barEv,_ZThn8_N6dd77203barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77203fooEv,_ZTv0_n16_N6dd77203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77203fooEv,_ZThn8_N6dd77203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee777203fooEv,_ZTv0_n12_N7ee777203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee777203fooEv,_ZThn24_N7ee777203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee777203fooEv,_ZTv0_n16_N7ee777203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee777203fooEv,_ZThn16_N7ee777203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee777203fooEv,_ZTv0_n24_N7ee777203fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee777203fooEv,_ZThn8_N7ee777203fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee777203barEv,_ZTv0_n20_N7ee777203barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee777203barEv,_ZThn16_N7ee777203barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee777203barEv,_ZThn8_N7ee777203barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77720 = { "ee77720", // class name
+ bases_ee77720, 4,
+ &(vtc_ee77720[0]), // expected_vtbl_contents
+ &(vtt_ee77720[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee77720),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77720),26, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77720),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names425,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct bb21 : aa1 {
+ int b;
+ virtual void foo(); // _ZN4bb213fooEv
+ ~bb21(); // tgen
+ bb21(); // tgen
+};
+//SIG(-1 bb21) C1{ BC2{ v1 Fi} v1 Fi}
+
+
+void bb21 ::foo(){vfunc_called(this, "_ZN4bb213fooEv");}
+bb21 ::~bb21(){ note_dtor("bb21", this);} // tgen
+bb21 ::bb21(){ note_ctor("bb21", this);} // tgen
+
+static void Test_bb21()
+{
+ extern Class_Descriptor cd_bb21;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(3,4)];
+ init_test(&cd_bb21, buf);
+ bb21 *dp, &lv = *(dp=new (buf) bb21());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,12), "sizeof(bb21)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(bb21)");
+ check_base_class_offset(lv, (aa1*), 0, "bb21");
+ check_field_offset(lv, b, ABISELECT(12,8), "bb21.b");
+ test_class_info(&lv, &cd_bb21);
+ dp->~bb21();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vbb21(Test_bb21, "bb21", ABISELECT(16,12));
+
+#else // __cplusplus
+
+extern void _ZN4bb21C1Ev();
+extern void _ZN4bb21D1Ev();
+Name_Map name_map_bb21[] = {
+ NSPAIR(_ZN4bb21C1Ev),
+ NSPAIR(_ZN4bb21D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+static Base_Class bases_bb21[] = {
+ // 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
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI4bb21[];
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY vtc_bb21[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb21[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+Class_Descriptor cd_bb21 = { "bb21", // class name
+ bases_bb21, 1,
+ &(vtc_bb21[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,12), // object size
+ NSPAIRA(_ZTI4bb21),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV4bb21),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 1, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc021 : bb21 {
+ int c;
+ ~cc021(); // tgen
+ cc021(); // tgen
+};
+//SIG(-1 cc021) C1{ BC2{ BC3{ v1 Fi} v1 Fi} Fi}
+
+
+cc021 ::~cc021(){ note_dtor("cc021", this);} // tgen
+cc021 ::cc021(){ note_ctor("cc021", this);} // tgen
+
+static void Test_cc021()
+{
+ extern Class_Descriptor cd_cc021;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,5)];
+ init_test(&cd_cc021, buf);
+ cc021 *dp, &lv = *(dp=new (buf) cc021());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,16), "sizeof(cc021)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc021)");
+ check_base_class_offset(lv, (aa1*)(bb21*), 0, "cc021");
+ check_base_class_offset(lv, (bb21*), 0, "cc021");
+ check_field_offset(lv, c, ABISELECT(16,12), "cc021.c");
+ test_class_info(&lv, &cd_cc021);
+ dp->~cc021();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc021(Test_cc021, "cc021", ABISELECT(24,16));
+
+#else // __cplusplus
+
+extern void _ZN5cc021C1Ev();
+extern void _ZN5cc021D1Ev();
+Name_Map name_map_cc021[] = {
+ NSPAIR(_ZN5cc021C1Ev),
+ NSPAIR(_ZN5cc021D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+static Base_Class bases_cc021[] = {
+ // 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_bb21, 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 _ZTI5cc021[];
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY vtc_cc021[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc021[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern VTBL_ENTRY _ZTI5cc021[];
+extern VTBL_ENTRY _ZTV5cc021[];
+Class_Descriptor cd_cc021 = { "cc021", // class name
+ bases_cc021, 2,
+ &(vtc_cc021[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,16), // object size
+ NSPAIRA(_ZTI5cc021),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV5cc021),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 dd0021 : cc021 {
+ int d;
+ ~dd0021(); // tgen
+ dd0021(); // tgen
+};
+//SIG(-1 dd0021) C1{ BC2{ BC3{ BC4{ v1 Fi} v1 Fi} Fi} Fi}
+
+
+dd0021 ::~dd0021(){ note_dtor("dd0021", this);} // tgen
+dd0021 ::dd0021(){ note_ctor("dd0021", this);} // tgen
+
+static void Test_dd0021()
+{
+ extern Class_Descriptor cd_dd0021;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd0021, buf);
+ dd0021 *dp, &lv = *(dp=new (buf) dd0021());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd0021)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0021)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc021*), 0, "dd0021");
+ check_base_class_offset(lv, (bb21*)(cc021*), 0, "dd0021");
+ check_base_class_offset(lv, (cc021*), 0, "dd0021");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd0021.d");
+ test_class_info(&lv, &cd_dd0021);
+ dp->~dd0021();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0021(Test_dd0021, "dd0021", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd0021C1Ev();
+extern void _ZN6dd0021D1Ev();
+Name_Map name_map_dd0021[] = {
+ NSPAIR(_ZN6dd0021C1Ev),
+ NSPAIR(_ZN6dd0021D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc021;
+extern VTBL_ENTRY _ZTI5cc021[];
+extern VTBL_ENTRY _ZTV5cc021[];
+static Base_Class bases_dd0021[] = {
+ // 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_bb21, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc021, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI6dd0021[];
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY vtc_dd0021[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0021[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern VTBL_ENTRY _ZTI6dd0021[];
+extern VTBL_ENTRY _ZTV6dd0021[];
+Class_Descriptor cd_dd0021 = { "dd0021", // class name
+ bases_dd0021, 3,
+ &(vtc_dd0021[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd0021),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0021),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 ee00021 : dd0021 {
+ int e;
+ ~ee00021(); // tgen
+ ee00021(); // tgen
+};
+//SIG(1 ee00021) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} v1 Fi} Fi} Fi} Fi}
+
+
+ee00021 ::~ee00021(){ note_dtor("ee00021", this);} // tgen
+ee00021 ::ee00021(){ note_ctor("ee00021", this);} // tgen
+
+static void Test_ee00021()
+{
+ extern Class_Descriptor cd_ee00021;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee00021, buf);
+ ee00021 *dp, &lv = *(dp=new (buf) ee00021());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee00021)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00021)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc021*)(dd0021*), 0, "ee00021");
+ check_base_class_offset(lv, (bb21*)(cc021*)(dd0021*), 0, "ee00021");
+ check_base_class_offset(lv, (cc021*)(dd0021*), 0, "ee00021");
+ check_base_class_offset(lv, (dd0021*), 0, "ee00021");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee00021.e");
+ test_class_info(&lv, &cd_ee00021);
+ dp->~ee00021();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00021(Test_ee00021, "ee00021", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee00021C1Ev();
+extern void _ZN7ee00021D1Ev();
+Name_Map name_map_ee00021[] = {
+ NSPAIR(_ZN7ee00021C1Ev),
+ NSPAIR(_ZN7ee00021D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc021;
+extern VTBL_ENTRY _ZTI5cc021[];
+extern VTBL_ENTRY _ZTV5cc021[];
+extern Class_Descriptor cd_dd0021;
+extern VTBL_ENTRY _ZTI6dd0021[];
+extern VTBL_ENTRY _ZTV6dd0021[];
+static Base_Class bases_ee00021[] = {
+ // 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_bb21, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc021, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd0021, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee00021[];
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY vtc_ee00021[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00021[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee00021[];
+extern VTBL_ENTRY _ZTV7ee00021[];
+Class_Descriptor cd_ee00021 = { "ee00021", // class name
+ bases_ee00021, 4,
+ &(vtc_ee00021[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee00021),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00021),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 ee10021 : virtual dd0021 {
+ int e;
+ ~ee10021(); // tgen
+ ee10021(); // tgen
+};
+//SIG(1 ee10021) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} v1 Fi} Fi} Fi} Fi}
+
+
+ee10021 ::~ee10021(){ note_dtor("ee10021", this);} // tgen
+ee10021 ::ee10021(){ note_ctor("ee10021", this);} // tgen
+
+static void Test_ee10021()
+{
+ extern Class_Descriptor cd_ee10021;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee10021, buf);
+ ee10021 *dp, &lv = *(dp=new (buf) ee10021());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee10021)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10021)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc021*)(dd0021*), ABISELECT(16,8), "ee10021");
+ check_base_class_offset(lv, (bb21*)(cc021*)(dd0021*), ABISELECT(16,8), "ee10021");
+ check_base_class_offset(lv, (cc021*)(dd0021*), ABISELECT(16,8), "ee10021");
+ check_base_class_offset(lv, (dd0021*), ABISELECT(16,8), "ee10021");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10021.e");
+ test_class_info(&lv, &cd_ee10021);
+ dp->~ee10021();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10021(Test_ee10021, "ee10021", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee10021C1Ev();
+extern void _ZN7ee10021D1Ev();
+Name_Map name_map_ee10021[] = {
+ NSPAIR(_ZN7ee10021C1Ev),
+ NSPAIR(_ZN7ee10021D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc021;
+extern VTBL_ENTRY _ZTI5cc021[];
+extern VTBL_ENTRY _ZTV5cc021[];
+extern Class_Descriptor cd_dd0021;
+extern VTBL_ENTRY _ZTI6dd0021[];
+extern VTBL_ENTRY _ZTV6dd0021[];
+static Base_Class bases_ee10021[] = {
+ // 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_bb21, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc021, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd0021, 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 _ZTI7ee10021[];
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY vtc_ee10021[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10021[0]),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10021[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee10021[];
+static VTT_ENTRY vtt_ee10021[] = {
+ {&(_ZTV7ee10021[3]), 3,7},
+ {&(_ZTV7ee10021[6]), 6,7},
+};
+extern VTBL_ENTRY _ZTI7ee10021[];
+extern VTBL_ENTRY _ZTV7ee10021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10021[];
+Class_Descriptor cd_ee10021 = { "ee10021", // class name
+ bases_ee10021, 4,
+ &(vtc_ee10021[0]), // expected_vtbl_contents
+ &(vtt_ee10021[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee10021),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10021),7, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10021),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 ee20021 : dd0021 {
+ int e;
+ virtual void foo(); // _ZN7ee200213fooEv
+ ~ee20021(); // tgen
+ ee20021(); // tgen
+};
+//SIG(1 ee20021) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} v1 Fi} Fi} Fi} v1 Fi}
+
+
+void ee20021 ::foo(){vfunc_called(this, "_ZN7ee200213fooEv");}
+ee20021 ::~ee20021(){ note_dtor("ee20021", this);} // tgen
+ee20021 ::ee20021(){ note_ctor("ee20021", this);} // tgen
+
+static void Test_ee20021()
+{
+ extern Class_Descriptor cd_ee20021;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee20021, buf);
+ ee20021 *dp, &lv = *(dp=new (buf) ee20021());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee20021)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20021)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc021*)(dd0021*), 0, "ee20021");
+ check_base_class_offset(lv, (bb21*)(cc021*)(dd0021*), 0, "ee20021");
+ check_base_class_offset(lv, (cc021*)(dd0021*), 0, "ee20021");
+ check_base_class_offset(lv, (dd0021*), 0, "ee20021");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee20021.e");
+ test_class_info(&lv, &cd_ee20021);
+ dp->~ee20021();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20021(Test_ee20021, "ee20021", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee20021C1Ev();
+extern void _ZN7ee20021D1Ev();
+Name_Map name_map_ee20021[] = {
+ NSPAIR(_ZN7ee20021C1Ev),
+ NSPAIR(_ZN7ee20021D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc021;
+extern VTBL_ENTRY _ZTI5cc021[];
+extern VTBL_ENTRY _ZTV5cc021[];
+extern Class_Descriptor cd_dd0021;
+extern VTBL_ENTRY _ZTI6dd0021[];
+extern VTBL_ENTRY _ZTV6dd0021[];
+static Base_Class bases_ee20021[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc021, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd0021, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee20021[];
+extern void _ZN7ee200213fooEv();
+static VTBL_ENTRY vtc_ee20021[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20021[0]),
+ (VTBL_ENTRY)&_ZN7ee200213fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee20021[];
+extern VTBL_ENTRY _ZTV7ee20021[];
+Class_Descriptor cd_ee20021 = { "ee20021", // class name
+ bases_ee20021, 4,
+ &(vtc_ee20021[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee20021),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20021),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 ee30021 : virtual dd0021 {
+ int e;
+ virtual void foo(); // _ZN7ee300213fooEv
+ ~ee30021(); // tgen
+ ee30021(); // tgen
+};
+//SIG(1 ee30021) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} v1 Fi} Fi} Fi} v1 Fi}
+
+
+void ee30021 ::foo(){vfunc_called(this, "_ZN7ee300213fooEv");}
+ee30021 ::~ee30021(){ note_dtor("ee30021", this);} // tgen
+ee30021 ::ee30021(){ note_ctor("ee30021", this);} // tgen
+
+static void Test_ee30021()
+{
+ extern Class_Descriptor cd_ee30021;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee30021, buf);
+ ee30021 *dp, &lv = *(dp=new (buf) ee30021());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee30021)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30021)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc021*)(dd0021*), ABISELECT(16,8), "ee30021");
+ check_base_class_offset(lv, (bb21*)(cc021*)(dd0021*), ABISELECT(16,8), "ee30021");
+ check_base_class_offset(lv, (cc021*)(dd0021*), ABISELECT(16,8), "ee30021");
+ check_base_class_offset(lv, (dd0021*), ABISELECT(16,8), "ee30021");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30021.e");
+ test_class_info(&lv, &cd_ee30021);
+ dp->~ee30021();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30021(Test_ee30021, "ee30021", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee30021C1Ev();
+extern void _ZN7ee30021D1Ev();
+Name_Map name_map_ee30021[] = {
+ NSPAIR(_ZN7ee30021C1Ev),
+ NSPAIR(_ZN7ee30021D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc021;
+extern VTBL_ENTRY _ZTI5cc021[];
+extern VTBL_ENTRY _ZTV5cc021[];
+extern Class_Descriptor cd_dd0021;
+extern VTBL_ENTRY _ZTI6dd0021[];
+extern VTBL_ENTRY _ZTV6dd0021[];
+static Base_Class bases_ee30021[] = {
+ // 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_bb21, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc021, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd0021, 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 _ZTI7ee30021[];
+extern void _ZN7ee300213fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee300213fooEv,_ZTv0_n12_N7ee300213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee300213fooEv,_ZThn8_N7ee300213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee30021[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30021[0]),
+ (VTBL_ENTRY)&_ZN7ee300213fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30021[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee300213fooEv,_ZTv0_n12_N7ee300213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee30021[];
+static VTT_ENTRY vtt_ee30021[] = {
+ {&(_ZTV7ee30021[3]), 3,8},
+ {&(_ZTV7ee30021[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee30021[];
+extern VTBL_ENTRY _ZTV7ee30021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30021[];
+static VTBL_ENTRY alt_thunk_names426[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee300213fooEv,_ZTv0_n12_N7ee300213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee300213fooEv,_ZThn8_N7ee300213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30021 = { "ee30021", // class name
+ bases_ee30021, 4,
+ &(vtc_ee30021[0]), // expected_vtbl_contents
+ &(vtt_ee30021[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee30021),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30021),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30021),2, //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 ee40021 : dd0021 {
+ int e;
+ virtual void bar(); // _ZN7ee400213barEv
+ ~ee40021(); // tgen
+ ee40021(); // tgen
+};
+//SIG(1 ee40021) C1{ BC2{ BC3{ BC4{ BC5{ v2 Fi} v2 Fi} Fi} Fi} v1 Fi}
+
+
+void ee40021 ::bar(){vfunc_called(this, "_ZN7ee400213barEv");}
+ee40021 ::~ee40021(){ note_dtor("ee40021", this);} // tgen
+ee40021 ::ee40021(){ note_ctor("ee40021", this);} // tgen
+
+static void Test_ee40021()
+{
+ extern Class_Descriptor cd_ee40021;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee40021, buf);
+ ee40021 *dp, &lv = *(dp=new (buf) ee40021());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee40021)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40021)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc021*)(dd0021*), 0, "ee40021");
+ check_base_class_offset(lv, (bb21*)(cc021*)(dd0021*), 0, "ee40021");
+ check_base_class_offset(lv, (cc021*)(dd0021*), 0, "ee40021");
+ check_base_class_offset(lv, (dd0021*), 0, "ee40021");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee40021.e");
+ test_class_info(&lv, &cd_ee40021);
+ dp->~ee40021();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40021(Test_ee40021, "ee40021", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee40021C1Ev();
+extern void _ZN7ee40021D1Ev();
+Name_Map name_map_ee40021[] = {
+ NSPAIR(_ZN7ee40021C1Ev),
+ NSPAIR(_ZN7ee40021D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc021;
+extern VTBL_ENTRY _ZTI5cc021[];
+extern VTBL_ENTRY _ZTV5cc021[];
+extern Class_Descriptor cd_dd0021;
+extern VTBL_ENTRY _ZTI6dd0021[];
+extern VTBL_ENTRY _ZTV6dd0021[];
+static Base_Class bases_ee40021[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc021, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd0021, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee40021[];
+extern void _ZN4bb213fooEv();
+extern void _ZN7ee400213barEv();
+static VTBL_ENTRY vtc_ee40021[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40021[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+ (VTBL_ENTRY)&_ZN7ee400213barEv,
+};
+extern VTBL_ENTRY _ZTI7ee40021[];
+extern VTBL_ENTRY _ZTV7ee40021[];
+Class_Descriptor cd_ee40021 = { "ee40021", // class name
+ bases_ee40021, 4,
+ &(vtc_ee40021[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee40021),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40021),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 ee50021 : virtual dd0021 {
+ int e;
+ virtual void bar(); // _ZN7ee500213barEv
+ ~ee50021(); // tgen
+ ee50021(); // tgen
+};
+//SIG(1 ee50021) C1{ VBC2{ BC3{ BC4{ BC5{ v2 Fi} v2 Fi} Fi} Fi} v1 Fi}
+
+
+void ee50021 ::bar(){vfunc_called(this, "_ZN7ee500213barEv");}
+ee50021 ::~ee50021(){ note_dtor("ee50021", this);} // tgen
+ee50021 ::ee50021(){ note_ctor("ee50021", this);} // tgen
+
+static void Test_ee50021()
+{
+ extern Class_Descriptor cd_ee50021;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee50021, buf);
+ ee50021 *dp, &lv = *(dp=new (buf) ee50021());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee50021)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50021)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc021*)(dd0021*), ABISELECT(16,8), "ee50021");
+ check_base_class_offset(lv, (bb21*)(cc021*)(dd0021*), ABISELECT(16,8), "ee50021");
+ check_base_class_offset(lv, (cc021*)(dd0021*), ABISELECT(16,8), "ee50021");
+ check_base_class_offset(lv, (dd0021*), ABISELECT(16,8), "ee50021");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50021.e");
+ test_class_info(&lv, &cd_ee50021);
+ dp->~ee50021();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50021(Test_ee50021, "ee50021", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee50021C1Ev();
+extern void _ZN7ee50021D1Ev();
+Name_Map name_map_ee50021[] = {
+ NSPAIR(_ZN7ee50021C1Ev),
+ NSPAIR(_ZN7ee50021D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc021;
+extern VTBL_ENTRY _ZTI5cc021[];
+extern VTBL_ENTRY _ZTV5cc021[];
+extern Class_Descriptor cd_dd0021;
+extern VTBL_ENTRY _ZTI6dd0021[];
+extern VTBL_ENTRY _ZTV6dd0021[];
+static Base_Class bases_ee50021[] = {
+ // 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_bb21, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc021, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd0021, 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 _ZTI7ee50021[];
+extern void _ZN7ee500213barEv();
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY vtc_ee50021[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50021[0]),
+ (VTBL_ENTRY)&_ZN7ee500213barEv,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50021[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee50021[];
+static VTT_ENTRY vtt_ee50021[] = {
+ {&(_ZTV7ee50021[3]), 3,8},
+ {&(_ZTV7ee50021[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee50021[];
+extern VTBL_ENTRY _ZTV7ee50021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50021[];
+Class_Descriptor cd_ee50021 = { "ee50021", // class name
+ bases_ee50021, 4,
+ &(vtc_ee50021[0]), // expected_vtbl_contents
+ &(vtt_ee50021[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee50021),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50021),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50021),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 ee60021 : dd0021 {
+ int e;
+ virtual void foo(); // _ZN7ee600213fooEv
+ virtual void bar(); // _ZN7ee600213barEv
+ ~ee60021(); // tgen
+ ee60021(); // tgen
+};
+//SIG(1 ee60021) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} v1 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee60021 ::foo(){vfunc_called(this, "_ZN7ee600213fooEv");}
+void ee60021 ::bar(){vfunc_called(this, "_ZN7ee600213barEv");}
+ee60021 ::~ee60021(){ note_dtor("ee60021", this);} // tgen
+ee60021 ::ee60021(){ note_ctor("ee60021", this);} // tgen
+
+static void Test_ee60021()
+{
+ extern Class_Descriptor cd_ee60021;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee60021, buf);
+ ee60021 *dp, &lv = *(dp=new (buf) ee60021());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee60021)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60021)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc021*)(dd0021*), 0, "ee60021");
+ check_base_class_offset(lv, (bb21*)(cc021*)(dd0021*), 0, "ee60021");
+ check_base_class_offset(lv, (cc021*)(dd0021*), 0, "ee60021");
+ check_base_class_offset(lv, (dd0021*), 0, "ee60021");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee60021.e");
+ test_class_info(&lv, &cd_ee60021);
+ dp->~ee60021();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60021(Test_ee60021, "ee60021", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee60021C1Ev();
+extern void _ZN7ee60021D1Ev();
+Name_Map name_map_ee60021[] = {
+ NSPAIR(_ZN7ee60021C1Ev),
+ NSPAIR(_ZN7ee60021D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc021;
+extern VTBL_ENTRY _ZTI5cc021[];
+extern VTBL_ENTRY _ZTV5cc021[];
+extern Class_Descriptor cd_dd0021;
+extern VTBL_ENTRY _ZTI6dd0021[];
+extern VTBL_ENTRY _ZTV6dd0021[];
+static Base_Class bases_ee60021[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc021, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd0021, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee60021[];
+extern void _ZN7ee600213fooEv();
+extern void _ZN7ee600213barEv();
+static VTBL_ENTRY vtc_ee60021[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60021[0]),
+ (VTBL_ENTRY)&_ZN7ee600213fooEv,
+ (VTBL_ENTRY)&_ZN7ee600213barEv,
+};
+extern VTBL_ENTRY _ZTI7ee60021[];
+extern VTBL_ENTRY _ZTV7ee60021[];
+Class_Descriptor cd_ee60021 = { "ee60021", // class name
+ bases_ee60021, 4,
+ &(vtc_ee60021[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee60021),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60021),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 ee70021 : virtual dd0021 {
+ int e;
+ virtual void foo(); // _ZN7ee700213fooEv
+ virtual void bar(); // _ZN7ee700213barEv
+ ~ee70021(); // tgen
+ ee70021(); // tgen
+};
+//SIG(1 ee70021) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} v1 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee70021 ::foo(){vfunc_called(this, "_ZN7ee700213fooEv");}
+void ee70021 ::bar(){vfunc_called(this, "_ZN7ee700213barEv");}
+ee70021 ::~ee70021(){ note_dtor("ee70021", this);} // tgen
+ee70021 ::ee70021(){ note_ctor("ee70021", this);} // tgen
+
+static void Test_ee70021()
+{
+ extern Class_Descriptor cd_ee70021;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee70021, buf);
+ ee70021 *dp, &lv = *(dp=new (buf) ee70021());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee70021)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70021)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc021*)(dd0021*), ABISELECT(16,8), "ee70021");
+ check_base_class_offset(lv, (bb21*)(cc021*)(dd0021*), ABISELECT(16,8), "ee70021");
+ check_base_class_offset(lv, (cc021*)(dd0021*), ABISELECT(16,8), "ee70021");
+ check_base_class_offset(lv, (dd0021*), ABISELECT(16,8), "ee70021");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70021.e");
+ test_class_info(&lv, &cd_ee70021);
+ dp->~ee70021();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70021(Test_ee70021, "ee70021", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee70021C1Ev();
+extern void _ZN7ee70021D1Ev();
+Name_Map name_map_ee70021[] = {
+ NSPAIR(_ZN7ee70021C1Ev),
+ NSPAIR(_ZN7ee70021D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc021;
+extern VTBL_ENTRY _ZTI5cc021[];
+extern VTBL_ENTRY _ZTV5cc021[];
+extern Class_Descriptor cd_dd0021;
+extern VTBL_ENTRY _ZTI6dd0021[];
+extern VTBL_ENTRY _ZTV6dd0021[];
+static Base_Class bases_ee70021[] = {
+ // 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_bb21, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc021, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd0021, 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 _ZTI7ee70021[];
+extern void _ZN7ee700213fooEv();
+extern void _ZN7ee700213barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee700213fooEv,_ZTv0_n12_N7ee700213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee700213fooEv,_ZThn8_N7ee700213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70021[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70021[0]),
+ (VTBL_ENTRY)&_ZN7ee700213fooEv,
+ (VTBL_ENTRY)&_ZN7ee700213barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70021[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee700213fooEv,_ZTv0_n12_N7ee700213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee70021[];
+static VTT_ENTRY vtt_ee70021[] = {
+ {&(_ZTV7ee70021[3]), 3,9},
+ {&(_ZTV7ee70021[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee70021[];
+extern VTBL_ENTRY _ZTV7ee70021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70021[];
+static VTBL_ENTRY alt_thunk_names427[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee700213fooEv,_ZTv0_n12_N7ee700213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee700213fooEv,_ZThn8_N7ee700213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70021 = { "ee70021", // class name
+ bases_ee70021, 4,
+ &(vtc_ee70021[0]), // expected_vtbl_contents
+ &(vtt_ee70021[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee70021),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70021),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70021),2, //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 dd1021 : virtual cc021 {
+ int d;
+ ~dd1021(); // tgen
+ dd1021(); // tgen
+};
+//SIG(-1 dd1021) C1{ VBC2{ BC3{ BC4{ v1 Fi} v1 Fi} Fi} Fi}
+
+
+dd1021 ::~dd1021(){ note_dtor("dd1021", this);} // tgen
+dd1021 ::dd1021(){ note_ctor("dd1021", this);} // tgen
+
+static void Test_dd1021()
+{
+ extern Class_Descriptor cd_dd1021;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd1021, buf);
+ dd1021 *dp, &lv = *(dp=new (buf) dd1021());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd1021)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1021)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc021*), ABISELECT(16,8), "dd1021");
+ check_base_class_offset(lv, (bb21*)(cc021*), ABISELECT(16,8), "dd1021");
+ check_base_class_offset(lv, (cc021*), ABISELECT(16,8), "dd1021");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1021.d");
+ test_class_info(&lv, &cd_dd1021);
+ dp->~dd1021();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1021(Test_dd1021, "dd1021", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd1021C1Ev();
+extern void _ZN6dd1021D1Ev();
+Name_Map name_map_dd1021[] = {
+ NSPAIR(_ZN6dd1021C1Ev),
+ NSPAIR(_ZN6dd1021D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc021;
+extern VTBL_ENTRY _ZTI5cc021[];
+extern VTBL_ENTRY _ZTV5cc021[];
+static Base_Class bases_dd1021[] = {
+ // 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_bb21, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc021, 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 _ZTI6dd1021[];
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY vtc_dd1021[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1021[0]),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1021[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd1021[];
+static VTT_ENTRY vtt_dd1021[] = {
+ {&(_ZTV6dd1021[3]), 3,7},
+ {&(_ZTV6dd1021[6]), 6,7},
+};
+extern VTBL_ENTRY _ZTI6dd1021[];
+extern VTBL_ENTRY _ZTV6dd1021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1021[];
+Class_Descriptor cd_dd1021 = { "dd1021", // class name
+ bases_dd1021, 3,
+ &(vtc_dd1021[0]), // expected_vtbl_contents
+ &(vtt_dd1021[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd1021),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1021),7, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1021),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 ee01021 : dd1021 {
+ int e;
+ ~ee01021(); // tgen
+ ee01021(); // tgen
+};
+//SIG(1 ee01021) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} v1 Fi} Fi} Fi} Fi}
+
+
+ee01021 ::~ee01021(){ note_dtor("ee01021", this);} // tgen
+ee01021 ::ee01021(){ note_ctor("ee01021", this);} // tgen
+
+static void Test_ee01021()
+{
+ extern Class_Descriptor cd_ee01021;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee01021, buf);
+ ee01021 *dp, &lv = *(dp=new (buf) ee01021());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee01021)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01021)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc021*), ABISELECT(16,12), "ee01021");
+ check_base_class_offset(lv, (bb21*)(cc021*), ABISELECT(16,12), "ee01021");
+ check_base_class_offset(lv, (cc021*)(dd1021*), ABISELECT(16,12), "ee01021");
+ check_base_class_offset(lv, (dd1021*), 0, "ee01021");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01021.e");
+ test_class_info(&lv, &cd_ee01021);
+ dp->~ee01021();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01021(Test_ee01021, "ee01021", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee01021C1Ev();
+extern void _ZN7ee01021D1Ev();
+Name_Map name_map_ee01021[] = {
+ NSPAIR(_ZN7ee01021C1Ev),
+ NSPAIR(_ZN7ee01021D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc021;
+extern VTBL_ENTRY _ZTI5cc021[];
+extern VTBL_ENTRY _ZTV5cc021[];
+extern Class_Descriptor cd_dd1021;
+extern VTBL_ENTRY _ZTI6dd1021[];
+extern VTBL_ENTRY _ZTV6dd1021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1021[];
+static Base_Class bases_ee01021[] = {
+ // 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_bb21, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc021, 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_dd1021, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01021[];
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY vtc_ee01021[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01021[0]),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01021[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee01021[];
+static VTBL_ENTRY _tg__ZTV6dd1021__7ee01021[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1021[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb215cc021__6dd1021__7ee01021[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1021[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee01021[] = {
+ {&(_ZTV7ee01021[3]), 3,7},
+ {&(_tg__ZTV6dd1021__7ee01021[3]), 3,3},
+ {&(_tg__ZTV4bb215cc021__6dd1021__7ee01021[3]), 3,4},
+ {&(_ZTV7ee01021[6]), 6,7},
+};
+extern VTBL_ENTRY _ZTI7ee01021[];
+extern VTBL_ENTRY _ZTV7ee01021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01021[];
+Class_Descriptor cd_ee01021 = { "ee01021", // class name
+ bases_ee01021, 4,
+ &(vtc_ee01021[0]), // expected_vtbl_contents
+ &(vtt_ee01021[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee01021),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01021),7, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01021),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 ee11021 : virtual dd1021 {
+ int e;
+ ~ee11021(); // tgen
+ ee11021(); // tgen
+};
+//SIG(1 ee11021) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} v1 Fi} Fi} Fi} Fi}
+
+
+ee11021 ::~ee11021(){ note_dtor("ee11021", this);} // tgen
+ee11021 ::ee11021(){ note_ctor("ee11021", this);} // tgen
+
+static void Test_ee11021()
+{
+ extern Class_Descriptor cd_ee11021;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee11021, buf);
+ ee11021 *dp, &lv = *(dp=new (buf) ee11021());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee11021)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11021)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc021*), ABISELECT(32,16), "ee11021");
+ check_base_class_offset(lv, (bb21*)(cc021*), ABISELECT(32,16), "ee11021");
+ check_base_class_offset(lv, (cc021*)(dd1021*), ABISELECT(32,16), "ee11021");
+ check_base_class_offset(lv, (dd1021*), ABISELECT(16,8), "ee11021");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11021.e");
+ test_class_info(&lv, &cd_ee11021);
+ dp->~ee11021();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11021(Test_ee11021, "ee11021", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee11021C1Ev();
+extern void _ZN7ee11021D1Ev();
+Name_Map name_map_ee11021[] = {
+ NSPAIR(_ZN7ee11021C1Ev),
+ NSPAIR(_ZN7ee11021D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc021;
+extern VTBL_ENTRY _ZTI5cc021[];
+extern VTBL_ENTRY _ZTV5cc021[];
+extern Class_Descriptor cd_dd1021;
+extern VTBL_ENTRY _ZTI6dd1021[];
+extern VTBL_ENTRY _ZTV6dd1021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1021[];
+static Base_Class bases_ee11021[] = {
+ // 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_bb21, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc021, 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_dd1021, 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 _ZTI7ee11021[];
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY vtc_ee11021[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11021[0]),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11021[0]),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11021[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee11021[];
+static VTBL_ENTRY _tg__ZTV6dd1021__7ee11021[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1021[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb215cc021__6dd1021__7ee11021[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1021[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee11021[] = {
+ {&(_ZTV7ee11021[4]), 4,11},
+ {&(_ZTV7ee11021[7]), 7,11},
+ {&(_ZTV7ee11021[10]), 10,11},
+ {&(_tg__ZTV6dd1021__7ee11021[3]), 3,3},
+ {&(_tg__ZTV4bb215cc021__6dd1021__7ee11021[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee11021[];
+extern VTBL_ENTRY _ZTV7ee11021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11021[];
+Class_Descriptor cd_ee11021 = { "ee11021", // class name
+ bases_ee11021, 4,
+ &(vtc_ee11021[0]), // expected_vtbl_contents
+ &(vtt_ee11021[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee11021),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11021),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11021),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 ee21021 : dd1021 {
+ int e;
+ virtual void foo(); // _ZN7ee210213fooEv
+ ~ee21021(); // tgen
+ ee21021(); // tgen
+};
+//SIG(1 ee21021) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} v1 Fi} Fi} Fi} v1 Fi}
+
+
+void ee21021 ::foo(){vfunc_called(this, "_ZN7ee210213fooEv");}
+ee21021 ::~ee21021(){ note_dtor("ee21021", this);} // tgen
+ee21021 ::ee21021(){ note_ctor("ee21021", this);} // tgen
+
+static void Test_ee21021()
+{
+ extern Class_Descriptor cd_ee21021;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee21021, buf);
+ ee21021 *dp, &lv = *(dp=new (buf) ee21021());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee21021)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21021)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc021*), ABISELECT(16,12), "ee21021");
+ check_base_class_offset(lv, (bb21*)(cc021*), ABISELECT(16,12), "ee21021");
+ check_base_class_offset(lv, (cc021*)(dd1021*), ABISELECT(16,12), "ee21021");
+ check_base_class_offset(lv, (dd1021*), 0, "ee21021");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21021.e");
+ test_class_info(&lv, &cd_ee21021);
+ dp->~ee21021();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21021(Test_ee21021, "ee21021", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee21021C1Ev();
+extern void _ZN7ee21021D1Ev();
+Name_Map name_map_ee21021[] = {
+ NSPAIR(_ZN7ee21021C1Ev),
+ NSPAIR(_ZN7ee21021D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc021;
+extern VTBL_ENTRY _ZTI5cc021[];
+extern VTBL_ENTRY _ZTV5cc021[];
+extern Class_Descriptor cd_dd1021;
+extern VTBL_ENTRY _ZTI6dd1021[];
+extern VTBL_ENTRY _ZTV6dd1021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1021[];
+static Base_Class bases_ee21021[] = {
+ // 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_bb21, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc021, 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_dd1021, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21021[];
+extern void _ZN7ee210213fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee210213fooEv,_ZTv0_n12_N7ee210213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee210213fooEv,_ZThn12_N7ee210213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee21021[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21021[0]),
+ (VTBL_ENTRY)&_ZN7ee210213fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21021[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee210213fooEv,_ZTv0_n12_N7ee210213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee21021[];
+static VTBL_ENTRY _tg__ZTV6dd1021__7ee21021[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1021[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb215cc021__6dd1021__7ee21021[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1021[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee21021[] = {
+ {&(_ZTV7ee21021[3]), 3,8},
+ {&(_tg__ZTV6dd1021__7ee21021[3]), 3,3},
+ {&(_tg__ZTV4bb215cc021__6dd1021__7ee21021[3]), 3,4},
+ {&(_ZTV7ee21021[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee21021[];
+extern VTBL_ENTRY _ZTV7ee21021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21021[];
+static VTBL_ENTRY alt_thunk_names428[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee210213fooEv,_ZTv0_n12_N7ee210213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee210213fooEv,_ZThn12_N7ee210213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21021 = { "ee21021", // class name
+ bases_ee21021, 4,
+ &(vtc_ee21021[0]), // expected_vtbl_contents
+ &(vtt_ee21021[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee21021),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21021),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21021),4, //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 ee31021 : virtual dd1021 {
+ int e;
+ virtual void foo(); // _ZN7ee310213fooEv
+ ~ee31021(); // tgen
+ ee31021(); // tgen
+};
+//SIG(1 ee31021) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} v1 Fi} Fi} Fi} v1 Fi}
+
+
+void ee31021 ::foo(){vfunc_called(this, "_ZN7ee310213fooEv");}
+ee31021 ::~ee31021(){ note_dtor("ee31021", this);} // tgen
+ee31021 ::ee31021(){ note_ctor("ee31021", this);} // tgen
+
+static void Test_ee31021()
+{
+ extern Class_Descriptor cd_ee31021;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee31021, buf);
+ ee31021 *dp, &lv = *(dp=new (buf) ee31021());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee31021)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31021)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc021*), ABISELECT(32,16), "ee31021");
+ check_base_class_offset(lv, (bb21*)(cc021*), ABISELECT(32,16), "ee31021");
+ check_base_class_offset(lv, (cc021*)(dd1021*), ABISELECT(32,16), "ee31021");
+ check_base_class_offset(lv, (dd1021*), ABISELECT(16,8), "ee31021");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31021.e");
+ test_class_info(&lv, &cd_ee31021);
+ dp->~ee31021();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31021(Test_ee31021, "ee31021", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee31021C1Ev();
+extern void _ZN7ee31021D1Ev();
+Name_Map name_map_ee31021[] = {
+ NSPAIR(_ZN7ee31021C1Ev),
+ NSPAIR(_ZN7ee31021D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc021;
+extern VTBL_ENTRY _ZTI5cc021[];
+extern VTBL_ENTRY _ZTV5cc021[];
+extern Class_Descriptor cd_dd1021;
+extern VTBL_ENTRY _ZTI6dd1021[];
+extern VTBL_ENTRY _ZTV6dd1021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1021[];
+static Base_Class bases_ee31021[] = {
+ // 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_bb21, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc021, 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_dd1021, 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 _ZTI7ee31021[];
+extern void _ZN7ee310213fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee310213fooEv,_ZTv0_n12_N7ee310213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee310213fooEv,_ZThn16_N7ee310213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee31021[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31021[0]),
+ (VTBL_ENTRY)&_ZN7ee310213fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31021[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31021[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee310213fooEv,_ZTv0_n12_N7ee310213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee31021[];
+static VTBL_ENTRY _tg__ZTV6dd1021__7ee31021[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1021[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb215cc021__6dd1021__7ee31021[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1021[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee31021[] = {
+ {&(_ZTV7ee31021[4]), 4,12},
+ {&(_ZTV7ee31021[8]), 8,12},
+ {&(_ZTV7ee31021[11]), 11,12},
+ {&(_tg__ZTV6dd1021__7ee31021[3]), 3,3},
+ {&(_tg__ZTV4bb215cc021__6dd1021__7ee31021[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee31021[];
+extern VTBL_ENTRY _ZTV7ee31021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31021[];
+static VTBL_ENTRY alt_thunk_names429[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee310213fooEv,_ZTv0_n12_N7ee310213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee310213fooEv,_ZThn16_N7ee310213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31021 = { "ee31021", // class name
+ bases_ee31021, 4,
+ &(vtc_ee31021[0]), // expected_vtbl_contents
+ &(vtt_ee31021[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee31021),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31021),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31021),5, //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 ee41021 : dd1021 {
+ int e;
+ virtual void bar(); // _ZN7ee410213barEv
+ ~ee41021(); // tgen
+ ee41021(); // tgen
+};
+//SIG(1 ee41021) C1{ BC2{ VBC3{ BC4{ BC5{ v2 Fi} v2 Fi} Fi} Fi} v1 Fi}
+
+
+void ee41021 ::bar(){vfunc_called(this, "_ZN7ee410213barEv");}
+ee41021 ::~ee41021(){ note_dtor("ee41021", this);} // tgen
+ee41021 ::ee41021(){ note_ctor("ee41021", this);} // tgen
+
+static void Test_ee41021()
+{
+ extern Class_Descriptor cd_ee41021;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee41021, buf);
+ ee41021 *dp, &lv = *(dp=new (buf) ee41021());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee41021)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41021)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc021*), ABISELECT(16,12), "ee41021");
+ check_base_class_offset(lv, (bb21*)(cc021*), ABISELECT(16,12), "ee41021");
+ check_base_class_offset(lv, (cc021*)(dd1021*), ABISELECT(16,12), "ee41021");
+ check_base_class_offset(lv, (dd1021*), 0, "ee41021");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41021.e");
+ test_class_info(&lv, &cd_ee41021);
+ dp->~ee41021();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41021(Test_ee41021, "ee41021", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee41021C1Ev();
+extern void _ZN7ee41021D1Ev();
+Name_Map name_map_ee41021[] = {
+ NSPAIR(_ZN7ee41021C1Ev),
+ NSPAIR(_ZN7ee41021D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc021;
+extern VTBL_ENTRY _ZTI5cc021[];
+extern VTBL_ENTRY _ZTV5cc021[];
+extern Class_Descriptor cd_dd1021;
+extern VTBL_ENTRY _ZTI6dd1021[];
+extern VTBL_ENTRY _ZTV6dd1021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1021[];
+static Base_Class bases_ee41021[] = {
+ // 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_bb21, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc021, 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_dd1021, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41021[];
+extern void _ZN7ee410213barEv();
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY vtc_ee41021[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41021[0]),
+ (VTBL_ENTRY)&_ZN7ee410213barEv,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41021[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee41021[];
+static VTBL_ENTRY _tg__ZTV6dd1021__7ee41021[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1021[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb215cc021__6dd1021__7ee41021[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1021[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee41021[] = {
+ {&(_ZTV7ee41021[3]), 3,8},
+ {&(_tg__ZTV6dd1021__7ee41021[3]), 3,3},
+ {&(_tg__ZTV4bb215cc021__6dd1021__7ee41021[3]), 3,4},
+ {&(_ZTV7ee41021[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee41021[];
+extern VTBL_ENTRY _ZTV7ee41021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41021[];
+Class_Descriptor cd_ee41021 = { "ee41021", // class name
+ bases_ee41021, 4,
+ &(vtc_ee41021[0]), // expected_vtbl_contents
+ &(vtt_ee41021[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee41021),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41021),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41021),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 ee51021 : virtual dd1021 {
+ int e;
+ virtual void bar(); // _ZN7ee510213barEv
+ ~ee51021(); // tgen
+ ee51021(); // tgen
+};
+//SIG(1 ee51021) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 Fi} v2 Fi} Fi} Fi} v1 Fi}
+
+
+void ee51021 ::bar(){vfunc_called(this, "_ZN7ee510213barEv");}
+ee51021 ::~ee51021(){ note_dtor("ee51021", this);} // tgen
+ee51021 ::ee51021(){ note_ctor("ee51021", this);} // tgen
+
+static void Test_ee51021()
+{
+ extern Class_Descriptor cd_ee51021;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee51021, buf);
+ ee51021 *dp, &lv = *(dp=new (buf) ee51021());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee51021)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51021)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc021*), ABISELECT(32,16), "ee51021");
+ check_base_class_offset(lv, (bb21*)(cc021*), ABISELECT(32,16), "ee51021");
+ check_base_class_offset(lv, (cc021*)(dd1021*), ABISELECT(32,16), "ee51021");
+ check_base_class_offset(lv, (dd1021*), ABISELECT(16,8), "ee51021");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51021.e");
+ test_class_info(&lv, &cd_ee51021);
+ dp->~ee51021();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51021(Test_ee51021, "ee51021", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee51021C1Ev();
+extern void _ZN7ee51021D1Ev();
+Name_Map name_map_ee51021[] = {
+ NSPAIR(_ZN7ee51021C1Ev),
+ NSPAIR(_ZN7ee51021D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc021;
+extern VTBL_ENTRY _ZTI5cc021[];
+extern VTBL_ENTRY _ZTV5cc021[];
+extern Class_Descriptor cd_dd1021;
+extern VTBL_ENTRY _ZTI6dd1021[];
+extern VTBL_ENTRY _ZTV6dd1021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1021[];
+static Base_Class bases_ee51021[] = {
+ // 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_bb21, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc021, 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_dd1021, 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 _ZTI7ee51021[];
+extern void _ZN7ee510213barEv();
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY vtc_ee51021[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51021[0]),
+ (VTBL_ENTRY)&_ZN7ee510213barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51021[0]),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51021[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee51021[];
+static VTBL_ENTRY _tg__ZTV6dd1021__7ee51021[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1021[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb215cc021__6dd1021__7ee51021[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1021[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee51021[] = {
+ {&(_ZTV7ee51021[4]), 4,12},
+ {&(_ZTV7ee51021[8]), 8,12},
+ {&(_ZTV7ee51021[11]), 11,12},
+ {&(_tg__ZTV6dd1021__7ee51021[3]), 3,3},
+ {&(_tg__ZTV4bb215cc021__6dd1021__7ee51021[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee51021[];
+extern VTBL_ENTRY _ZTV7ee51021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51021[];
+Class_Descriptor cd_ee51021 = { "ee51021", // class name
+ bases_ee51021, 4,
+ &(vtc_ee51021[0]), // expected_vtbl_contents
+ &(vtt_ee51021[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee51021),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51021),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51021),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 ee61021 : dd1021 {
+ int e;
+ virtual void foo(); // _ZN7ee610213fooEv
+ virtual void bar(); // _ZN7ee610213barEv
+ ~ee61021(); // tgen
+ ee61021(); // tgen
+};
+//SIG(1 ee61021) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} v1 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee61021 ::foo(){vfunc_called(this, "_ZN7ee610213fooEv");}
+void ee61021 ::bar(){vfunc_called(this, "_ZN7ee610213barEv");}
+ee61021 ::~ee61021(){ note_dtor("ee61021", this);} // tgen
+ee61021 ::ee61021(){ note_ctor("ee61021", this);} // tgen
+
+static void Test_ee61021()
+{
+ extern Class_Descriptor cd_ee61021;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee61021, buf);
+ ee61021 *dp, &lv = *(dp=new (buf) ee61021());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee61021)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61021)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc021*), ABISELECT(16,12), "ee61021");
+ check_base_class_offset(lv, (bb21*)(cc021*), ABISELECT(16,12), "ee61021");
+ check_base_class_offset(lv, (cc021*)(dd1021*), ABISELECT(16,12), "ee61021");
+ check_base_class_offset(lv, (dd1021*), 0, "ee61021");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61021.e");
+ test_class_info(&lv, &cd_ee61021);
+ dp->~ee61021();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61021(Test_ee61021, "ee61021", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee61021C1Ev();
+extern void _ZN7ee61021D1Ev();
+Name_Map name_map_ee61021[] = {
+ NSPAIR(_ZN7ee61021C1Ev),
+ NSPAIR(_ZN7ee61021D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc021;
+extern VTBL_ENTRY _ZTI5cc021[];
+extern VTBL_ENTRY _ZTV5cc021[];
+extern Class_Descriptor cd_dd1021;
+extern VTBL_ENTRY _ZTI6dd1021[];
+extern VTBL_ENTRY _ZTV6dd1021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1021[];
+static Base_Class bases_ee61021[] = {
+ // 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_bb21, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc021, 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_dd1021, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61021[];
+extern void _ZN7ee610213fooEv();
+extern void _ZN7ee610213barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee610213fooEv,_ZTv0_n12_N7ee610213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee610213fooEv,_ZThn12_N7ee610213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61021[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61021[0]),
+ (VTBL_ENTRY)&_ZN7ee610213fooEv,
+ (VTBL_ENTRY)&_ZN7ee610213barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61021[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee610213fooEv,_ZTv0_n12_N7ee610213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee61021[];
+static VTBL_ENTRY _tg__ZTV6dd1021__7ee61021[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1021[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb215cc021__6dd1021__7ee61021[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1021[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee61021[] = {
+ {&(_ZTV7ee61021[3]), 3,9},
+ {&(_tg__ZTV6dd1021__7ee61021[3]), 3,3},
+ {&(_tg__ZTV4bb215cc021__6dd1021__7ee61021[3]), 3,4},
+ {&(_ZTV7ee61021[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee61021[];
+extern VTBL_ENTRY _ZTV7ee61021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61021[];
+static VTBL_ENTRY alt_thunk_names430[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee610213fooEv,_ZTv0_n12_N7ee610213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee610213fooEv,_ZThn12_N7ee610213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61021 = { "ee61021", // class name
+ bases_ee61021, 4,
+ &(vtc_ee61021[0]), // expected_vtbl_contents
+ &(vtt_ee61021[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee61021),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61021),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61021),4, //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 ee71021 : virtual dd1021 {
+ int e;
+ virtual void foo(); // _ZN7ee710213fooEv
+ virtual void bar(); // _ZN7ee710213barEv
+ ~ee71021(); // tgen
+ ee71021(); // tgen
+};
+//SIG(1 ee71021) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} v1 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee71021 ::foo(){vfunc_called(this, "_ZN7ee710213fooEv");}
+void ee71021 ::bar(){vfunc_called(this, "_ZN7ee710213barEv");}
+ee71021 ::~ee71021(){ note_dtor("ee71021", this);} // tgen
+ee71021 ::ee71021(){ note_ctor("ee71021", this);} // tgen
+
+static void Test_ee71021()
+{
+ extern Class_Descriptor cd_ee71021;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee71021, buf);
+ ee71021 *dp, &lv = *(dp=new (buf) ee71021());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee71021)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71021)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc021*), ABISELECT(32,16), "ee71021");
+ check_base_class_offset(lv, (bb21*)(cc021*), ABISELECT(32,16), "ee71021");
+ check_base_class_offset(lv, (cc021*)(dd1021*), ABISELECT(32,16), "ee71021");
+ check_base_class_offset(lv, (dd1021*), ABISELECT(16,8), "ee71021");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71021.e");
+ test_class_info(&lv, &cd_ee71021);
+ dp->~ee71021();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71021(Test_ee71021, "ee71021", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee71021C1Ev();
+extern void _ZN7ee71021D1Ev();
+Name_Map name_map_ee71021[] = {
+ NSPAIR(_ZN7ee71021C1Ev),
+ NSPAIR(_ZN7ee71021D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc021;
+extern VTBL_ENTRY _ZTI5cc021[];
+extern VTBL_ENTRY _ZTV5cc021[];
+extern Class_Descriptor cd_dd1021;
+extern VTBL_ENTRY _ZTI6dd1021[];
+extern VTBL_ENTRY _ZTV6dd1021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1021[];
+static Base_Class bases_ee71021[] = {
+ // 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_bb21, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc021, 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_dd1021, 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 _ZTI7ee71021[];
+extern void _ZN7ee710213fooEv();
+extern void _ZN7ee710213barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee710213fooEv,_ZTv0_n12_N7ee710213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee710213fooEv,_ZThn16_N7ee710213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71021[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71021[0]),
+ (VTBL_ENTRY)&_ZN7ee710213fooEv,
+ (VTBL_ENTRY)&_ZN7ee710213barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71021[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71021[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee710213fooEv,_ZTv0_n12_N7ee710213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee71021[];
+static VTBL_ENTRY _tg__ZTV6dd1021__7ee71021[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1021[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb215cc021__6dd1021__7ee71021[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1021[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee71021[] = {
+ {&(_ZTV7ee71021[4]), 4,13},
+ {&(_ZTV7ee71021[9]), 9,13},
+ {&(_ZTV7ee71021[12]), 12,13},
+ {&(_tg__ZTV6dd1021__7ee71021[3]), 3,3},
+ {&(_tg__ZTV4bb215cc021__6dd1021__7ee71021[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee71021[];
+extern VTBL_ENTRY _ZTV7ee71021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71021[];
+static VTBL_ENTRY alt_thunk_names431[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee710213fooEv,_ZTv0_n12_N7ee710213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee710213fooEv,_ZThn16_N7ee710213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71021 = { "ee71021", // class name
+ bases_ee71021, 4,
+ &(vtc_ee71021[0]), // expected_vtbl_contents
+ &(vtt_ee71021[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee71021),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71021),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71021),5, //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 dd2021 : cc021 {
+ int d;
+ virtual void foo(); // _ZN6dd20213fooEv
+ ~dd2021(); // tgen
+ dd2021(); // tgen
+};
+//SIG(-1 dd2021) C1{ BC2{ BC3{ BC4{ v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void dd2021 ::foo(){vfunc_called(this, "_ZN6dd20213fooEv");}
+dd2021 ::~dd2021(){ note_dtor("dd2021", this);} // tgen
+dd2021 ::dd2021(){ note_ctor("dd2021", this);} // tgen
+
+static void Test_dd2021()
+{
+ extern Class_Descriptor cd_dd2021;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd2021, buf);
+ dd2021 *dp, &lv = *(dp=new (buf) dd2021());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd2021)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2021)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc021*), 0, "dd2021");
+ check_base_class_offset(lv, (bb21*)(cc021*), 0, "dd2021");
+ check_base_class_offset(lv, (cc021*), 0, "dd2021");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd2021.d");
+ test_class_info(&lv, &cd_dd2021);
+ dp->~dd2021();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2021(Test_dd2021, "dd2021", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd2021C1Ev();
+extern void _ZN6dd2021D1Ev();
+Name_Map name_map_dd2021[] = {
+ NSPAIR(_ZN6dd2021C1Ev),
+ NSPAIR(_ZN6dd2021D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc021;
+extern VTBL_ENTRY _ZTI5cc021[];
+extern VTBL_ENTRY _ZTV5cc021[];
+static Base_Class bases_dd2021[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc021, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI6dd2021[];
+extern void _ZN6dd20213fooEv();
+static VTBL_ENTRY vtc_dd2021[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2021[0]),
+ (VTBL_ENTRY)&_ZN6dd20213fooEv,
+};
+extern VTBL_ENTRY _ZTI6dd2021[];
+extern VTBL_ENTRY _ZTV6dd2021[];
+Class_Descriptor cd_dd2021 = { "dd2021", // class name
+ bases_dd2021, 3,
+ &(vtc_dd2021[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd2021),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2021),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 ee02021 : dd2021 {
+ int e;
+ ~ee02021(); // tgen
+ ee02021(); // tgen
+};
+//SIG(1 ee02021) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} v1 Fi} Fi} v1 Fi} Fi}
+
+
+ee02021 ::~ee02021(){ note_dtor("ee02021", this);} // tgen
+ee02021 ::ee02021(){ note_ctor("ee02021", this);} // tgen
+
+static void Test_ee02021()
+{
+ extern Class_Descriptor cd_ee02021;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee02021, buf);
+ ee02021 *dp, &lv = *(dp=new (buf) ee02021());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee02021)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02021)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc021*)(dd2021*), 0, "ee02021");
+ check_base_class_offset(lv, (bb21*)(cc021*)(dd2021*), 0, "ee02021");
+ check_base_class_offset(lv, (cc021*)(dd2021*), 0, "ee02021");
+ check_base_class_offset(lv, (dd2021*), 0, "ee02021");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee02021.e");
+ test_class_info(&lv, &cd_ee02021);
+ dp->~ee02021();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02021(Test_ee02021, "ee02021", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee02021C1Ev();
+extern void _ZN7ee02021D1Ev();
+Name_Map name_map_ee02021[] = {
+ NSPAIR(_ZN7ee02021C1Ev),
+ NSPAIR(_ZN7ee02021D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc021;
+extern VTBL_ENTRY _ZTI5cc021[];
+extern VTBL_ENTRY _ZTV5cc021[];
+extern Class_Descriptor cd_dd2021;
+extern VTBL_ENTRY _ZTI6dd2021[];
+extern VTBL_ENTRY _ZTV6dd2021[];
+static Base_Class bases_ee02021[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc021, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2021, 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 _ZTI7ee02021[];
+extern void _ZN6dd20213fooEv();
+static VTBL_ENTRY vtc_ee02021[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02021[0]),
+ (VTBL_ENTRY)&_ZN6dd20213fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee02021[];
+extern VTBL_ENTRY _ZTV7ee02021[];
+Class_Descriptor cd_ee02021 = { "ee02021", // class name
+ bases_ee02021, 4,
+ &(vtc_ee02021[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee02021),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02021),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 ee12021 : virtual dd2021 {
+ int e;
+ ~ee12021(); // tgen
+ ee12021(); // tgen
+};
+//SIG(1 ee12021) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} v1 Fi} Fi} v1 Fi} Fi}
+
+
+ee12021 ::~ee12021(){ note_dtor("ee12021", this);} // tgen
+ee12021 ::ee12021(){ note_ctor("ee12021", this);} // tgen
+
+static void Test_ee12021()
+{
+ extern Class_Descriptor cd_ee12021;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee12021, buf);
+ ee12021 *dp, &lv = *(dp=new (buf) ee12021());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee12021)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12021)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc021*)(dd2021*), ABISELECT(16,8), "ee12021");
+ check_base_class_offset(lv, (bb21*)(cc021*)(dd2021*), ABISELECT(16,8), "ee12021");
+ check_base_class_offset(lv, (cc021*)(dd2021*), ABISELECT(16,8), "ee12021");
+ check_base_class_offset(lv, (dd2021*), ABISELECT(16,8), "ee12021");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12021.e");
+ test_class_info(&lv, &cd_ee12021);
+ dp->~ee12021();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12021(Test_ee12021, "ee12021", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee12021C1Ev();
+extern void _ZN7ee12021D1Ev();
+Name_Map name_map_ee12021[] = {
+ NSPAIR(_ZN7ee12021C1Ev),
+ NSPAIR(_ZN7ee12021D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc021;
+extern VTBL_ENTRY _ZTI5cc021[];
+extern VTBL_ENTRY _ZTV5cc021[];
+extern Class_Descriptor cd_dd2021;
+extern VTBL_ENTRY _ZTI6dd2021[];
+extern VTBL_ENTRY _ZTV6dd2021[];
+static Base_Class bases_ee12021[] = {
+ // 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_bb21, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc021, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2021, 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 _ZTI7ee12021[];
+extern void _ZN6dd20213fooEv();
+static VTBL_ENTRY vtc_ee12021[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12021[0]),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12021[0]),
+ (VTBL_ENTRY)&_ZN6dd20213fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee12021[];
+static VTT_ENTRY vtt_ee12021[] = {
+ {&(_ZTV7ee12021[3]), 3,7},
+ {&(_ZTV7ee12021[6]), 6,7},
+};
+extern VTBL_ENTRY _ZTI7ee12021[];
+extern VTBL_ENTRY _ZTV7ee12021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12021[];
+Class_Descriptor cd_ee12021 = { "ee12021", // class name
+ bases_ee12021, 4,
+ &(vtc_ee12021[0]), // expected_vtbl_contents
+ &(vtt_ee12021[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee12021),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12021),7, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12021),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 ee22021 : dd2021 {
+ int e;
+ virtual void foo(); // _ZN7ee220213fooEv
+ ~ee22021(); // tgen
+ ee22021(); // tgen
+};
+//SIG(1 ee22021) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee22021 ::foo(){vfunc_called(this, "_ZN7ee220213fooEv");}
+ee22021 ::~ee22021(){ note_dtor("ee22021", this);} // tgen
+ee22021 ::ee22021(){ note_ctor("ee22021", this);} // tgen
+
+static void Test_ee22021()
+{
+ extern Class_Descriptor cd_ee22021;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee22021, buf);
+ ee22021 *dp, &lv = *(dp=new (buf) ee22021());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee22021)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22021)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc021*)(dd2021*), 0, "ee22021");
+ check_base_class_offset(lv, (bb21*)(cc021*)(dd2021*), 0, "ee22021");
+ check_base_class_offset(lv, (cc021*)(dd2021*), 0, "ee22021");
+ check_base_class_offset(lv, (dd2021*), 0, "ee22021");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee22021.e");
+ test_class_info(&lv, &cd_ee22021);
+ dp->~ee22021();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22021(Test_ee22021, "ee22021", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee22021C1Ev();
+extern void _ZN7ee22021D1Ev();
+Name_Map name_map_ee22021[] = {
+ NSPAIR(_ZN7ee22021C1Ev),
+ NSPAIR(_ZN7ee22021D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc021;
+extern VTBL_ENTRY _ZTI5cc021[];
+extern VTBL_ENTRY _ZTV5cc021[];
+extern Class_Descriptor cd_dd2021;
+extern VTBL_ENTRY _ZTI6dd2021[];
+extern VTBL_ENTRY _ZTV6dd2021[];
+static Base_Class bases_ee22021[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc021, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2021, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee22021[];
+extern void _ZN7ee220213fooEv();
+static VTBL_ENTRY vtc_ee22021[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22021[0]),
+ (VTBL_ENTRY)&_ZN7ee220213fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee22021[];
+extern VTBL_ENTRY _ZTV7ee22021[];
+Class_Descriptor cd_ee22021 = { "ee22021", // class name
+ bases_ee22021, 4,
+ &(vtc_ee22021[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee22021),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22021),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 ee32021 : virtual dd2021 {
+ int e;
+ virtual void foo(); // _ZN7ee320213fooEv
+ ~ee32021(); // tgen
+ ee32021(); // tgen
+};
+//SIG(1 ee32021) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee32021 ::foo(){vfunc_called(this, "_ZN7ee320213fooEv");}
+ee32021 ::~ee32021(){ note_dtor("ee32021", this);} // tgen
+ee32021 ::ee32021(){ note_ctor("ee32021", this);} // tgen
+
+static void Test_ee32021()
+{
+ extern Class_Descriptor cd_ee32021;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee32021, buf);
+ ee32021 *dp, &lv = *(dp=new (buf) ee32021());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee32021)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32021)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc021*)(dd2021*), ABISELECT(16,8), "ee32021");
+ check_base_class_offset(lv, (bb21*)(cc021*)(dd2021*), ABISELECT(16,8), "ee32021");
+ check_base_class_offset(lv, (cc021*)(dd2021*), ABISELECT(16,8), "ee32021");
+ check_base_class_offset(lv, (dd2021*), ABISELECT(16,8), "ee32021");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32021.e");
+ test_class_info(&lv, &cd_ee32021);
+ dp->~ee32021();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32021(Test_ee32021, "ee32021", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee32021C1Ev();
+extern void _ZN7ee32021D1Ev();
+Name_Map name_map_ee32021[] = {
+ NSPAIR(_ZN7ee32021C1Ev),
+ NSPAIR(_ZN7ee32021D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc021;
+extern VTBL_ENTRY _ZTI5cc021[];
+extern VTBL_ENTRY _ZTV5cc021[];
+extern Class_Descriptor cd_dd2021;
+extern VTBL_ENTRY _ZTI6dd2021[];
+extern VTBL_ENTRY _ZTV6dd2021[];
+static Base_Class bases_ee32021[] = {
+ // 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_bb21, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc021, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2021, 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 _ZTI7ee32021[];
+extern void _ZN7ee320213fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee320213fooEv,_ZTv0_n12_N7ee320213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee320213fooEv,_ZThn8_N7ee320213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee32021[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32021[0]),
+ (VTBL_ENTRY)&_ZN7ee320213fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32021[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee320213fooEv,_ZTv0_n12_N7ee320213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee32021[];
+static VTT_ENTRY vtt_ee32021[] = {
+ {&(_ZTV7ee32021[3]), 3,8},
+ {&(_ZTV7ee32021[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee32021[];
+extern VTBL_ENTRY _ZTV7ee32021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32021[];
+static VTBL_ENTRY alt_thunk_names432[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee320213fooEv,_ZTv0_n12_N7ee320213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee320213fooEv,_ZThn8_N7ee320213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32021 = { "ee32021", // class name
+ bases_ee32021, 4,
+ &(vtc_ee32021[0]), // expected_vtbl_contents
+ &(vtt_ee32021[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee32021),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32021),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32021),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names432,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee42021 : dd2021 {
+ int e;
+ virtual void bar(); // _ZN7ee420213barEv
+ ~ee42021(); // tgen
+ ee42021(); // tgen
+};
+//SIG(1 ee42021) C1{ BC2{ BC3{ BC4{ BC5{ v2 Fi} v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee42021 ::bar(){vfunc_called(this, "_ZN7ee420213barEv");}
+ee42021 ::~ee42021(){ note_dtor("ee42021", this);} // tgen
+ee42021 ::ee42021(){ note_ctor("ee42021", this);} // tgen
+
+static void Test_ee42021()
+{
+ extern Class_Descriptor cd_ee42021;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee42021, buf);
+ ee42021 *dp, &lv = *(dp=new (buf) ee42021());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee42021)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42021)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc021*)(dd2021*), 0, "ee42021");
+ check_base_class_offset(lv, (bb21*)(cc021*)(dd2021*), 0, "ee42021");
+ check_base_class_offset(lv, (cc021*)(dd2021*), 0, "ee42021");
+ check_base_class_offset(lv, (dd2021*), 0, "ee42021");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee42021.e");
+ test_class_info(&lv, &cd_ee42021);
+ dp->~ee42021();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42021(Test_ee42021, "ee42021", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee42021C1Ev();
+extern void _ZN7ee42021D1Ev();
+Name_Map name_map_ee42021[] = {
+ NSPAIR(_ZN7ee42021C1Ev),
+ NSPAIR(_ZN7ee42021D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc021;
+extern VTBL_ENTRY _ZTI5cc021[];
+extern VTBL_ENTRY _ZTV5cc021[];
+extern Class_Descriptor cd_dd2021;
+extern VTBL_ENTRY _ZTI6dd2021[];
+extern VTBL_ENTRY _ZTV6dd2021[];
+static Base_Class bases_ee42021[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc021, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2021, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee42021[];
+extern void _ZN6dd20213fooEv();
+extern void _ZN7ee420213barEv();
+static VTBL_ENTRY vtc_ee42021[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42021[0]),
+ (VTBL_ENTRY)&_ZN6dd20213fooEv,
+ (VTBL_ENTRY)&_ZN7ee420213barEv,
+};
+extern VTBL_ENTRY _ZTI7ee42021[];
+extern VTBL_ENTRY _ZTV7ee42021[];
+Class_Descriptor cd_ee42021 = { "ee42021", // class name
+ bases_ee42021, 4,
+ &(vtc_ee42021[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee42021),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42021),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 ee52021 : virtual dd2021 {
+ int e;
+ virtual void bar(); // _ZN7ee520213barEv
+ ~ee52021(); // tgen
+ ee52021(); // tgen
+};
+//SIG(1 ee52021) C1{ VBC2{ BC3{ BC4{ BC5{ v2 Fi} v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee52021 ::bar(){vfunc_called(this, "_ZN7ee520213barEv");}
+ee52021 ::~ee52021(){ note_dtor("ee52021", this);} // tgen
+ee52021 ::ee52021(){ note_ctor("ee52021", this);} // tgen
+
+static void Test_ee52021()
+{
+ extern Class_Descriptor cd_ee52021;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee52021, buf);
+ ee52021 *dp, &lv = *(dp=new (buf) ee52021());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee52021)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52021)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc021*)(dd2021*), ABISELECT(16,8), "ee52021");
+ check_base_class_offset(lv, (bb21*)(cc021*)(dd2021*), ABISELECT(16,8), "ee52021");
+ check_base_class_offset(lv, (cc021*)(dd2021*), ABISELECT(16,8), "ee52021");
+ check_base_class_offset(lv, (dd2021*), ABISELECT(16,8), "ee52021");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52021.e");
+ test_class_info(&lv, &cd_ee52021);
+ dp->~ee52021();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52021(Test_ee52021, "ee52021", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee52021C1Ev();
+extern void _ZN7ee52021D1Ev();
+Name_Map name_map_ee52021[] = {
+ NSPAIR(_ZN7ee52021C1Ev),
+ NSPAIR(_ZN7ee52021D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc021;
+extern VTBL_ENTRY _ZTI5cc021[];
+extern VTBL_ENTRY _ZTV5cc021[];
+extern Class_Descriptor cd_dd2021;
+extern VTBL_ENTRY _ZTI6dd2021[];
+extern VTBL_ENTRY _ZTV6dd2021[];
+static Base_Class bases_ee52021[] = {
+ // 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_bb21, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc021, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2021, 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 _ZTI7ee52021[];
+extern void _ZN7ee520213barEv();
+extern void _ZN6dd20213fooEv();
+static VTBL_ENTRY vtc_ee52021[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52021[0]),
+ (VTBL_ENTRY)&_ZN7ee520213barEv,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52021[0]),
+ (VTBL_ENTRY)&_ZN6dd20213fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee52021[];
+static VTT_ENTRY vtt_ee52021[] = {
+ {&(_ZTV7ee52021[3]), 3,8},
+ {&(_ZTV7ee52021[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee52021[];
+extern VTBL_ENTRY _ZTV7ee52021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52021[];
+Class_Descriptor cd_ee52021 = { "ee52021", // class name
+ bases_ee52021, 4,
+ &(vtc_ee52021[0]), // expected_vtbl_contents
+ &(vtt_ee52021[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee52021),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52021),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52021),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 ee62021 : dd2021 {
+ int e;
+ virtual void foo(); // _ZN7ee620213fooEv
+ virtual void bar(); // _ZN7ee620213barEv
+ ~ee62021(); // tgen
+ ee62021(); // tgen
+};
+//SIG(1 ee62021) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} v1 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62021 ::foo(){vfunc_called(this, "_ZN7ee620213fooEv");}
+void ee62021 ::bar(){vfunc_called(this, "_ZN7ee620213barEv");}
+ee62021 ::~ee62021(){ note_dtor("ee62021", this);} // tgen
+ee62021 ::ee62021(){ note_ctor("ee62021", this);} // tgen
+
+static void Test_ee62021()
+{
+ extern Class_Descriptor cd_ee62021;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee62021, buf);
+ ee62021 *dp, &lv = *(dp=new (buf) ee62021());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee62021)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62021)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc021*)(dd2021*), 0, "ee62021");
+ check_base_class_offset(lv, (bb21*)(cc021*)(dd2021*), 0, "ee62021");
+ check_base_class_offset(lv, (cc021*)(dd2021*), 0, "ee62021");
+ check_base_class_offset(lv, (dd2021*), 0, "ee62021");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee62021.e");
+ test_class_info(&lv, &cd_ee62021);
+ dp->~ee62021();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62021(Test_ee62021, "ee62021", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee62021C1Ev();
+extern void _ZN7ee62021D1Ev();
+Name_Map name_map_ee62021[] = {
+ NSPAIR(_ZN7ee62021C1Ev),
+ NSPAIR(_ZN7ee62021D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc021;
+extern VTBL_ENTRY _ZTI5cc021[];
+extern VTBL_ENTRY _ZTV5cc021[];
+extern Class_Descriptor cd_dd2021;
+extern VTBL_ENTRY _ZTI6dd2021[];
+extern VTBL_ENTRY _ZTV6dd2021[];
+static Base_Class bases_ee62021[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc021, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2021, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee62021[];
+extern void _ZN7ee620213fooEv();
+extern void _ZN7ee620213barEv();
+static VTBL_ENTRY vtc_ee62021[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62021[0]),
+ (VTBL_ENTRY)&_ZN7ee620213fooEv,
+ (VTBL_ENTRY)&_ZN7ee620213barEv,
+};
+extern VTBL_ENTRY _ZTI7ee62021[];
+extern VTBL_ENTRY _ZTV7ee62021[];
+Class_Descriptor cd_ee62021 = { "ee62021", // class name
+ bases_ee62021, 4,
+ &(vtc_ee62021[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee62021),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62021),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 ee72021 : virtual dd2021 {
+ int e;
+ virtual void foo(); // _ZN7ee720213fooEv
+ virtual void bar(); // _ZN7ee720213barEv
+ ~ee72021(); // tgen
+ ee72021(); // tgen
+};
+//SIG(1 ee72021) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} v1 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72021 ::foo(){vfunc_called(this, "_ZN7ee720213fooEv");}
+void ee72021 ::bar(){vfunc_called(this, "_ZN7ee720213barEv");}
+ee72021 ::~ee72021(){ note_dtor("ee72021", this);} // tgen
+ee72021 ::ee72021(){ note_ctor("ee72021", this);} // tgen
+
+static void Test_ee72021()
+{
+ extern Class_Descriptor cd_ee72021;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee72021, buf);
+ ee72021 *dp, &lv = *(dp=new (buf) ee72021());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee72021)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72021)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc021*)(dd2021*), ABISELECT(16,8), "ee72021");
+ check_base_class_offset(lv, (bb21*)(cc021*)(dd2021*), ABISELECT(16,8), "ee72021");
+ check_base_class_offset(lv, (cc021*)(dd2021*), ABISELECT(16,8), "ee72021");
+ check_base_class_offset(lv, (dd2021*), ABISELECT(16,8), "ee72021");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72021.e");
+ test_class_info(&lv, &cd_ee72021);
+ dp->~ee72021();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72021(Test_ee72021, "ee72021", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee72021C1Ev();
+extern void _ZN7ee72021D1Ev();
+Name_Map name_map_ee72021[] = {
+ NSPAIR(_ZN7ee72021C1Ev),
+ NSPAIR(_ZN7ee72021D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc021;
+extern VTBL_ENTRY _ZTI5cc021[];
+extern VTBL_ENTRY _ZTV5cc021[];
+extern Class_Descriptor cd_dd2021;
+extern VTBL_ENTRY _ZTI6dd2021[];
+extern VTBL_ENTRY _ZTV6dd2021[];
+static Base_Class bases_ee72021[] = {
+ // 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_bb21, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc021, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2021, 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 _ZTI7ee72021[];
+extern void _ZN7ee720213fooEv();
+extern void _ZN7ee720213barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee720213fooEv,_ZTv0_n12_N7ee720213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee720213fooEv,_ZThn8_N7ee720213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72021[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72021[0]),
+ (VTBL_ENTRY)&_ZN7ee720213fooEv,
+ (VTBL_ENTRY)&_ZN7ee720213barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72021[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee720213fooEv,_ZTv0_n12_N7ee720213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee72021[];
+static VTT_ENTRY vtt_ee72021[] = {
+ {&(_ZTV7ee72021[3]), 3,9},
+ {&(_ZTV7ee72021[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee72021[];
+extern VTBL_ENTRY _ZTV7ee72021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72021[];
+static VTBL_ENTRY alt_thunk_names433[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee720213fooEv,_ZTv0_n12_N7ee720213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee720213fooEv,_ZThn8_N7ee720213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72021 = { "ee72021", // class name
+ bases_ee72021, 4,
+ &(vtc_ee72021[0]), // expected_vtbl_contents
+ &(vtt_ee72021[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee72021),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72021),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72021),2, //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 dd3021 : virtual cc021 {
+ int d;
+ virtual void foo(); // _ZN6dd30213fooEv
+ ~dd3021(); // tgen
+ dd3021(); // tgen
+};
+//SIG(-1 dd3021) C1{ VBC2{ BC3{ BC4{ v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void dd3021 ::foo(){vfunc_called(this, "_ZN6dd30213fooEv");}
+dd3021 ::~dd3021(){ note_dtor("dd3021", this);} // tgen
+dd3021 ::dd3021(){ note_ctor("dd3021", this);} // tgen
+
+static void Test_dd3021()
+{
+ extern Class_Descriptor cd_dd3021;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd3021, buf);
+ dd3021 *dp, &lv = *(dp=new (buf) dd3021());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd3021)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3021)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc021*), ABISELECT(16,8), "dd3021");
+ check_base_class_offset(lv, (bb21*)(cc021*), ABISELECT(16,8), "dd3021");
+ check_base_class_offset(lv, (cc021*), ABISELECT(16,8), "dd3021");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3021.d");
+ test_class_info(&lv, &cd_dd3021);
+ dp->~dd3021();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3021(Test_dd3021, "dd3021", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd3021C1Ev();
+extern void _ZN6dd3021D1Ev();
+Name_Map name_map_dd3021[] = {
+ NSPAIR(_ZN6dd3021C1Ev),
+ NSPAIR(_ZN6dd3021D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc021;
+extern VTBL_ENTRY _ZTI5cc021[];
+extern VTBL_ENTRY _ZTV5cc021[];
+static Base_Class bases_dd3021[] = {
+ // 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_bb21, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc021, 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 _ZTI6dd3021[];
+extern void _ZN6dd30213fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd30213fooEv,_ZTv0_n12_N6dd30213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30213fooEv,_ZThn8_N6dd30213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd3021[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3021[0]),
+ (VTBL_ENTRY)&_ZN6dd30213fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3021[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30213fooEv,_ZTv0_n12_N6dd30213fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd3021[];
+static VTT_ENTRY vtt_dd3021[] = {
+ {&(_ZTV6dd3021[3]), 3,8},
+ {&(_ZTV6dd3021[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI6dd3021[];
+extern VTBL_ENTRY _ZTV6dd3021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3021[];
+static VTBL_ENTRY alt_thunk_names434[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30213fooEv,_ZTv0_n12_N6dd30213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30213fooEv,_ZThn8_N6dd30213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3021 = { "dd3021", // class name
+ bases_dd3021, 3,
+ &(vtc_dd3021[0]), // expected_vtbl_contents
+ &(vtt_dd3021[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd3021),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3021),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3021),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names434,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03021 : dd3021 {
+ int e;
+ ~ee03021(); // tgen
+ ee03021(); // tgen
+};
+//SIG(1 ee03021) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} v1 Fi} Fi} v1 Fi} Fi}
+
+
+ee03021 ::~ee03021(){ note_dtor("ee03021", this);} // tgen
+ee03021 ::ee03021(){ note_ctor("ee03021", this);} // tgen
+
+static void Test_ee03021()
+{
+ extern Class_Descriptor cd_ee03021;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee03021, buf);
+ ee03021 *dp, &lv = *(dp=new (buf) ee03021());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee03021)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03021)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc021*), ABISELECT(16,12), "ee03021");
+ check_base_class_offset(lv, (bb21*)(cc021*), ABISELECT(16,12), "ee03021");
+ check_base_class_offset(lv, (cc021*)(dd3021*), ABISELECT(16,12), "ee03021");
+ check_base_class_offset(lv, (dd3021*), 0, "ee03021");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03021.e");
+ test_class_info(&lv, &cd_ee03021);
+ dp->~ee03021();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03021(Test_ee03021, "ee03021", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee03021C1Ev();
+extern void _ZN7ee03021D1Ev();
+Name_Map name_map_ee03021[] = {
+ NSPAIR(_ZN7ee03021C1Ev),
+ NSPAIR(_ZN7ee03021D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc021;
+extern VTBL_ENTRY _ZTI5cc021[];
+extern VTBL_ENTRY _ZTV5cc021[];
+extern Class_Descriptor cd_dd3021;
+extern VTBL_ENTRY _ZTI6dd3021[];
+extern VTBL_ENTRY _ZTV6dd3021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3021[];
+static Base_Class bases_ee03021[] = {
+ // 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_bb21, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc021, 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_dd3021, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03021[];
+extern void _ZN6dd30213fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd30213fooEv,_ZTv0_n12_N6dd30213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30213fooEv,_ZThn12_N6dd30213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee03021[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03021[0]),
+ (VTBL_ENTRY)&_ZN6dd30213fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03021[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30213fooEv,_ZTv0_n12_N6dd30213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee03021[];
+extern void _ZN6dd30213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3021__7ee03021[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3021[0]),
+ (VTBL_ENTRY)&_ZN6dd30213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd30213fooEv,_ZTv0_n12_N6dd30213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30213fooEv,_ZThn12_N6dd30213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb215cc021__6dd3021__7ee03021[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3021[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30213fooEv,_ZTv0_n12_N6dd30213fooEv),
+};
+static VTT_ENTRY vtt_ee03021[] = {
+ {&(_ZTV7ee03021[3]), 3,8},
+ {&(_tg__ZTV6dd3021__7ee03021[3]), 3,4},
+ {&(_tg__ZTV4bb215cc021__6dd3021__7ee03021[3]), 3,4},
+ {&(_ZTV7ee03021[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee03021[];
+extern VTBL_ENTRY _ZTV7ee03021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03021[];
+static VTBL_ENTRY alt_thunk_names435[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30213fooEv,_ZTv0_n12_N6dd30213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30213fooEv,_ZThn12_N6dd30213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30213fooEv,_ZThn12_N6dd30213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03021 = { "ee03021", // class name
+ bases_ee03021, 4,
+ &(vtc_ee03021[0]), // expected_vtbl_contents
+ &(vtt_ee03021[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee03021),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03021),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03021),4, //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 ee13021 : virtual dd3021 {
+ int e;
+ ~ee13021(); // tgen
+ ee13021(); // tgen
+};
+//SIG(1 ee13021) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} v1 Fi} Fi} v1 Fi} Fi}
+
+
+ee13021 ::~ee13021(){ note_dtor("ee13021", this);} // tgen
+ee13021 ::ee13021(){ note_ctor("ee13021", this);} // tgen
+
+static void Test_ee13021()
+{
+ extern Class_Descriptor cd_ee13021;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee13021, buf);
+ ee13021 *dp, &lv = *(dp=new (buf) ee13021());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee13021)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13021)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc021*), ABISELECT(32,16), "ee13021");
+ check_base_class_offset(lv, (bb21*)(cc021*), ABISELECT(32,16), "ee13021");
+ check_base_class_offset(lv, (cc021*)(dd3021*), ABISELECT(32,16), "ee13021");
+ check_base_class_offset(lv, (dd3021*), ABISELECT(16,8), "ee13021");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13021.e");
+ test_class_info(&lv, &cd_ee13021);
+ dp->~ee13021();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13021(Test_ee13021, "ee13021", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee13021C1Ev();
+extern void _ZN7ee13021D1Ev();
+Name_Map name_map_ee13021[] = {
+ NSPAIR(_ZN7ee13021C1Ev),
+ NSPAIR(_ZN7ee13021D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc021;
+extern VTBL_ENTRY _ZTI5cc021[];
+extern VTBL_ENTRY _ZTV5cc021[];
+extern Class_Descriptor cd_dd3021;
+extern VTBL_ENTRY _ZTI6dd3021[];
+extern VTBL_ENTRY _ZTV6dd3021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3021[];
+static Base_Class bases_ee13021[] = {
+ // 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_bb21, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc021, 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_dd3021, 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 _ZTI7ee13021[];
+extern void _ZN6dd30213fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd30213fooEv,_ZTv0_n12_N6dd30213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30213fooEv,_ZThn8_N6dd30213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee13021[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13021[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13021[0]),
+ (VTBL_ENTRY)&_ZN6dd30213fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13021[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30213fooEv,_ZTv0_n12_N6dd30213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee13021[];
+extern void _ZN6dd30213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3021__7ee13021[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3021[0]),
+ (VTBL_ENTRY)&_ZN6dd30213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd30213fooEv,_ZTv0_n12_N6dd30213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30213fooEv,_ZThn8_N6dd30213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb215cc021__6dd3021__7ee13021[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3021[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30213fooEv,_ZTv0_n12_N6dd30213fooEv),
+};
+static VTT_ENTRY vtt_ee13021[] = {
+ {&(_ZTV7ee13021[4]), 4,13},
+ {&(_ZTV7ee13021[8]), 8,13},
+ {&(_ZTV7ee13021[12]), 12,13},
+ {&(_tg__ZTV6dd3021__7ee13021[3]), 3,4},
+ {&(_tg__ZTV4bb215cc021__6dd3021__7ee13021[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee13021[];
+extern VTBL_ENTRY _ZTV7ee13021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13021[];
+static VTBL_ENTRY alt_thunk_names436[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30213fooEv,_ZTv0_n12_N6dd30213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30213fooEv,_ZThn8_N6dd30213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30213fooEv,_ZThn8_N6dd30213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13021 = { "ee13021", // class name
+ bases_ee13021, 4,
+ &(vtc_ee13021[0]), // expected_vtbl_contents
+ &(vtt_ee13021[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee13021),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13021),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13021),5, //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 ee23021 : dd3021 {
+ int e;
+ virtual void foo(); // _ZN7ee230213fooEv
+ ~ee23021(); // tgen
+ ee23021(); // tgen
+};
+//SIG(1 ee23021) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee23021 ::foo(){vfunc_called(this, "_ZN7ee230213fooEv");}
+ee23021 ::~ee23021(){ note_dtor("ee23021", this);} // tgen
+ee23021 ::ee23021(){ note_ctor("ee23021", this);} // tgen
+
+static void Test_ee23021()
+{
+ extern Class_Descriptor cd_ee23021;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee23021, buf);
+ ee23021 *dp, &lv = *(dp=new (buf) ee23021());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee23021)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23021)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc021*), ABISELECT(16,12), "ee23021");
+ check_base_class_offset(lv, (bb21*)(cc021*), ABISELECT(16,12), "ee23021");
+ check_base_class_offset(lv, (cc021*)(dd3021*), ABISELECT(16,12), "ee23021");
+ check_base_class_offset(lv, (dd3021*), 0, "ee23021");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23021.e");
+ test_class_info(&lv, &cd_ee23021);
+ dp->~ee23021();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23021(Test_ee23021, "ee23021", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee23021C1Ev();
+extern void _ZN7ee23021D1Ev();
+Name_Map name_map_ee23021[] = {
+ NSPAIR(_ZN7ee23021C1Ev),
+ NSPAIR(_ZN7ee23021D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc021;
+extern VTBL_ENTRY _ZTI5cc021[];
+extern VTBL_ENTRY _ZTV5cc021[];
+extern Class_Descriptor cd_dd3021;
+extern VTBL_ENTRY _ZTI6dd3021[];
+extern VTBL_ENTRY _ZTV6dd3021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3021[];
+static Base_Class bases_ee23021[] = {
+ // 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_bb21, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc021, 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_dd3021, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23021[];
+extern void _ZN7ee230213fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee230213fooEv,_ZTv0_n12_N7ee230213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee230213fooEv,_ZThn12_N7ee230213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee23021[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23021[0]),
+ (VTBL_ENTRY)&_ZN7ee230213fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23021[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee230213fooEv,_ZTv0_n12_N7ee230213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee23021[];
+extern void _ZN6dd30213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3021__7ee23021[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3021[0]),
+ (VTBL_ENTRY)&_ZN6dd30213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd30213fooEv,_ZTv0_n12_N6dd30213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30213fooEv,_ZThn12_N6dd30213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb215cc021__6dd3021__7ee23021[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3021[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30213fooEv,_ZTv0_n12_N6dd30213fooEv),
+};
+static VTT_ENTRY vtt_ee23021[] = {
+ {&(_ZTV7ee23021[3]), 3,8},
+ {&(_tg__ZTV6dd3021__7ee23021[3]), 3,4},
+ {&(_tg__ZTV4bb215cc021__6dd3021__7ee23021[3]), 3,4},
+ {&(_ZTV7ee23021[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee23021[];
+extern VTBL_ENTRY _ZTV7ee23021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23021[];
+static VTBL_ENTRY alt_thunk_names437[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30213fooEv,_ZTv0_n12_N6dd30213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30213fooEv,_ZThn12_N6dd30213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee230213fooEv,_ZTv0_n12_N7ee230213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee230213fooEv,_ZThn12_N7ee230213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23021 = { "ee23021", // class name
+ bases_ee23021, 4,
+ &(vtc_ee23021[0]), // expected_vtbl_contents
+ &(vtt_ee23021[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee23021),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23021),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23021),4, //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 ee33021 : virtual dd3021 {
+ int e;
+ virtual void foo(); // _ZN7ee330213fooEv
+ ~ee33021(); // tgen
+ ee33021(); // tgen
+};
+//SIG(1 ee33021) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee33021 ::foo(){vfunc_called(this, "_ZN7ee330213fooEv");}
+ee33021 ::~ee33021(){ note_dtor("ee33021", this);} // tgen
+ee33021 ::ee33021(){ note_ctor("ee33021", this);} // tgen
+
+static void Test_ee33021()
+{
+ extern Class_Descriptor cd_ee33021;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee33021, buf);
+ ee33021 *dp, &lv = *(dp=new (buf) ee33021());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee33021)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33021)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc021*), ABISELECT(32,16), "ee33021");
+ check_base_class_offset(lv, (bb21*)(cc021*), ABISELECT(32,16), "ee33021");
+ check_base_class_offset(lv, (cc021*)(dd3021*), ABISELECT(32,16), "ee33021");
+ check_base_class_offset(lv, (dd3021*), ABISELECT(16,8), "ee33021");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33021.e");
+ test_class_info(&lv, &cd_ee33021);
+ dp->~ee33021();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33021(Test_ee33021, "ee33021", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee33021C1Ev();
+extern void _ZN7ee33021D1Ev();
+Name_Map name_map_ee33021[] = {
+ NSPAIR(_ZN7ee33021C1Ev),
+ NSPAIR(_ZN7ee33021D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc021;
+extern VTBL_ENTRY _ZTI5cc021[];
+extern VTBL_ENTRY _ZTV5cc021[];
+extern Class_Descriptor cd_dd3021;
+extern VTBL_ENTRY _ZTI6dd3021[];
+extern VTBL_ENTRY _ZTV6dd3021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3021[];
+static Base_Class bases_ee33021[] = {
+ // 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_bb21, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc021, 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_dd3021, 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 _ZTI7ee33021[];
+extern void _ZN7ee330213fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee330213fooEv,_ZTv0_n16_N7ee330213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee330213fooEv,_ZThn8_N7ee330213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee330213fooEv,_ZTv0_n12_N7ee330213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee330213fooEv,_ZThn16_N7ee330213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee33021[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33021[0]),
+ (VTBL_ENTRY)&_ZN7ee330213fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33021[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee330213fooEv,_ZTv0_n16_N7ee330213fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33021[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee330213fooEv,_ZTv0_n12_N7ee330213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee33021[];
+extern void _ZN6dd30213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3021__7ee33021[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3021[0]),
+ (VTBL_ENTRY)&_ZN6dd30213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd30213fooEv,_ZTv0_n12_N6dd30213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30213fooEv,_ZThn8_N6dd30213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb215cc021__6dd3021__7ee33021[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3021[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30213fooEv,_ZTv0_n12_N6dd30213fooEv),
+};
+static VTT_ENTRY vtt_ee33021[] = {
+ {&(_ZTV7ee33021[4]), 4,14},
+ {&(_ZTV7ee33021[9]), 9,14},
+ {&(_ZTV7ee33021[13]), 13,14},
+ {&(_tg__ZTV6dd3021__7ee33021[3]), 3,4},
+ {&(_tg__ZTV4bb215cc021__6dd3021__7ee33021[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee33021[];
+extern VTBL_ENTRY _ZTV7ee33021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33021[];
+static VTBL_ENTRY alt_thunk_names438[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30213fooEv,_ZTv0_n12_N6dd30213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30213fooEv,_ZThn8_N6dd30213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee330213fooEv,_ZTv0_n12_N7ee330213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee330213fooEv,_ZThn16_N7ee330213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee330213fooEv,_ZTv0_n16_N7ee330213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee330213fooEv,_ZThn8_N7ee330213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33021 = { "ee33021", // class name
+ bases_ee33021, 4,
+ &(vtc_ee33021[0]), // expected_vtbl_contents
+ &(vtt_ee33021[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee33021),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33021),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33021),5, //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 ee43021 : dd3021 {
+ int e;
+ virtual void bar(); // _ZN7ee430213barEv
+ ~ee43021(); // tgen
+ ee43021(); // tgen
+};
+//SIG(1 ee43021) C1{ BC2{ VBC3{ BC4{ BC5{ v2 Fi} v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee43021 ::bar(){vfunc_called(this, "_ZN7ee430213barEv");}
+ee43021 ::~ee43021(){ note_dtor("ee43021", this);} // tgen
+ee43021 ::ee43021(){ note_ctor("ee43021", this);} // tgen
+
+static void Test_ee43021()
+{
+ extern Class_Descriptor cd_ee43021;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee43021, buf);
+ ee43021 *dp, &lv = *(dp=new (buf) ee43021());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee43021)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43021)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc021*), ABISELECT(16,12), "ee43021");
+ check_base_class_offset(lv, (bb21*)(cc021*), ABISELECT(16,12), "ee43021");
+ check_base_class_offset(lv, (cc021*)(dd3021*), ABISELECT(16,12), "ee43021");
+ check_base_class_offset(lv, (dd3021*), 0, "ee43021");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43021.e");
+ test_class_info(&lv, &cd_ee43021);
+ dp->~ee43021();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43021(Test_ee43021, "ee43021", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee43021C1Ev();
+extern void _ZN7ee43021D1Ev();
+Name_Map name_map_ee43021[] = {
+ NSPAIR(_ZN7ee43021C1Ev),
+ NSPAIR(_ZN7ee43021D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc021;
+extern VTBL_ENTRY _ZTI5cc021[];
+extern VTBL_ENTRY _ZTV5cc021[];
+extern Class_Descriptor cd_dd3021;
+extern VTBL_ENTRY _ZTI6dd3021[];
+extern VTBL_ENTRY _ZTV6dd3021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3021[];
+static Base_Class bases_ee43021[] = {
+ // 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_bb21, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc021, 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_dd3021, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43021[];
+extern void _ZN6dd30213fooEv();
+extern void _ZN7ee430213barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd30213fooEv,_ZTv0_n12_N6dd30213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30213fooEv,_ZThn12_N6dd30213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43021[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43021[0]),
+ (VTBL_ENTRY)&_ZN6dd30213fooEv,
+ (VTBL_ENTRY)&_ZN7ee430213barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43021[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30213fooEv,_ZTv0_n12_N6dd30213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee43021[];
+extern void _ZN6dd30213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3021__7ee43021[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3021[0]),
+ (VTBL_ENTRY)&_ZN6dd30213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd30213fooEv,_ZTv0_n12_N6dd30213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30213fooEv,_ZThn12_N6dd30213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb215cc021__6dd3021__7ee43021[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3021[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30213fooEv,_ZTv0_n12_N6dd30213fooEv),
+};
+static VTT_ENTRY vtt_ee43021[] = {
+ {&(_ZTV7ee43021[3]), 3,9},
+ {&(_tg__ZTV6dd3021__7ee43021[3]), 3,4},
+ {&(_tg__ZTV4bb215cc021__6dd3021__7ee43021[3]), 3,4},
+ {&(_ZTV7ee43021[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee43021[];
+extern VTBL_ENTRY _ZTV7ee43021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43021[];
+static VTBL_ENTRY alt_thunk_names439[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30213fooEv,_ZTv0_n12_N6dd30213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30213fooEv,_ZThn12_N6dd30213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30213fooEv,_ZThn12_N6dd30213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43021 = { "ee43021", // class name
+ bases_ee43021, 4,
+ &(vtc_ee43021[0]), // expected_vtbl_contents
+ &(vtt_ee43021[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee43021),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43021),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43021),4, //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 ee53021 : virtual dd3021 {
+ int e;
+ virtual void bar(); // _ZN7ee530213barEv
+ ~ee53021(); // tgen
+ ee53021(); // tgen
+};
+//SIG(1 ee53021) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 Fi} v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee53021 ::bar(){vfunc_called(this, "_ZN7ee530213barEv");}
+ee53021 ::~ee53021(){ note_dtor("ee53021", this);} // tgen
+ee53021 ::ee53021(){ note_ctor("ee53021", this);} // tgen
+
+static void Test_ee53021()
+{
+ extern Class_Descriptor cd_ee53021;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee53021, buf);
+ ee53021 *dp, &lv = *(dp=new (buf) ee53021());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee53021)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53021)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc021*), ABISELECT(32,16), "ee53021");
+ check_base_class_offset(lv, (bb21*)(cc021*), ABISELECT(32,16), "ee53021");
+ check_base_class_offset(lv, (cc021*)(dd3021*), ABISELECT(32,16), "ee53021");
+ check_base_class_offset(lv, (dd3021*), ABISELECT(16,8), "ee53021");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53021.e");
+ test_class_info(&lv, &cd_ee53021);
+ dp->~ee53021();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53021(Test_ee53021, "ee53021", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee53021C1Ev();
+extern void _ZN7ee53021D1Ev();
+Name_Map name_map_ee53021[] = {
+ NSPAIR(_ZN7ee53021C1Ev),
+ NSPAIR(_ZN7ee53021D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc021;
+extern VTBL_ENTRY _ZTI5cc021[];
+extern VTBL_ENTRY _ZTV5cc021[];
+extern Class_Descriptor cd_dd3021;
+extern VTBL_ENTRY _ZTI6dd3021[];
+extern VTBL_ENTRY _ZTV6dd3021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3021[];
+static Base_Class bases_ee53021[] = {
+ // 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_bb21, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc021, 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_dd3021, 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 _ZTI7ee53021[];
+extern void _ZN7ee530213barEv();
+extern void _ZN6dd30213fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd30213fooEv,_ZTv0_n12_N6dd30213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30213fooEv,_ZThn8_N6dd30213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53021[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53021[0]),
+ (VTBL_ENTRY)&_ZN7ee530213barEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53021[0]),
+ (VTBL_ENTRY)&_ZN6dd30213fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53021[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30213fooEv,_ZTv0_n12_N6dd30213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee53021[];
+extern void _ZN6dd30213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3021__7ee53021[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3021[0]),
+ (VTBL_ENTRY)&_ZN6dd30213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd30213fooEv,_ZTv0_n12_N6dd30213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30213fooEv,_ZThn8_N6dd30213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb215cc021__6dd3021__7ee53021[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3021[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30213fooEv,_ZTv0_n12_N6dd30213fooEv),
+};
+static VTT_ENTRY vtt_ee53021[] = {
+ {&(_ZTV7ee53021[4]), 4,14},
+ {&(_ZTV7ee53021[9]), 9,14},
+ {&(_ZTV7ee53021[13]), 13,14},
+ {&(_tg__ZTV6dd3021__7ee53021[3]), 3,4},
+ {&(_tg__ZTV4bb215cc021__6dd3021__7ee53021[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee53021[];
+extern VTBL_ENTRY _ZTV7ee53021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53021[];
+static VTBL_ENTRY alt_thunk_names440[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30213fooEv,_ZTv0_n12_N6dd30213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30213fooEv,_ZThn8_N6dd30213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30213fooEv,_ZThn8_N6dd30213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53021 = { "ee53021", // class name
+ bases_ee53021, 4,
+ &(vtc_ee53021[0]), // expected_vtbl_contents
+ &(vtt_ee53021[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee53021),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53021),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53021),5, //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 ee63021 : dd3021 {
+ int e;
+ virtual void foo(); // _ZN7ee630213fooEv
+ virtual void bar(); // _ZN7ee630213barEv
+ ~ee63021(); // tgen
+ ee63021(); // tgen
+};
+//SIG(1 ee63021) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} v1 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63021 ::foo(){vfunc_called(this, "_ZN7ee630213fooEv");}
+void ee63021 ::bar(){vfunc_called(this, "_ZN7ee630213barEv");}
+ee63021 ::~ee63021(){ note_dtor("ee63021", this);} // tgen
+ee63021 ::ee63021(){ note_ctor("ee63021", this);} // tgen
+
+static void Test_ee63021()
+{
+ extern Class_Descriptor cd_ee63021;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee63021, buf);
+ ee63021 *dp, &lv = *(dp=new (buf) ee63021());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee63021)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63021)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc021*), ABISELECT(16,12), "ee63021");
+ check_base_class_offset(lv, (bb21*)(cc021*), ABISELECT(16,12), "ee63021");
+ check_base_class_offset(lv, (cc021*)(dd3021*), ABISELECT(16,12), "ee63021");
+ check_base_class_offset(lv, (dd3021*), 0, "ee63021");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63021.e");
+ test_class_info(&lv, &cd_ee63021);
+ dp->~ee63021();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63021(Test_ee63021, "ee63021", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee63021C1Ev();
+extern void _ZN7ee63021D1Ev();
+Name_Map name_map_ee63021[] = {
+ NSPAIR(_ZN7ee63021C1Ev),
+ NSPAIR(_ZN7ee63021D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc021;
+extern VTBL_ENTRY _ZTI5cc021[];
+extern VTBL_ENTRY _ZTV5cc021[];
+extern Class_Descriptor cd_dd3021;
+extern VTBL_ENTRY _ZTI6dd3021[];
+extern VTBL_ENTRY _ZTV6dd3021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3021[];
+static Base_Class bases_ee63021[] = {
+ // 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_bb21, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc021, 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_dd3021, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63021[];
+extern void _ZN7ee630213fooEv();
+extern void _ZN7ee630213barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee630213fooEv,_ZTv0_n12_N7ee630213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee630213fooEv,_ZThn12_N7ee630213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63021[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63021[0]),
+ (VTBL_ENTRY)&_ZN7ee630213fooEv,
+ (VTBL_ENTRY)&_ZN7ee630213barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63021[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee630213fooEv,_ZTv0_n12_N7ee630213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee63021[];
+extern void _ZN6dd30213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3021__7ee63021[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3021[0]),
+ (VTBL_ENTRY)&_ZN6dd30213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd30213fooEv,_ZTv0_n12_N6dd30213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30213fooEv,_ZThn12_N6dd30213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb215cc021__6dd3021__7ee63021[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3021[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30213fooEv,_ZTv0_n12_N6dd30213fooEv),
+};
+static VTT_ENTRY vtt_ee63021[] = {
+ {&(_ZTV7ee63021[3]), 3,9},
+ {&(_tg__ZTV6dd3021__7ee63021[3]), 3,4},
+ {&(_tg__ZTV4bb215cc021__6dd3021__7ee63021[3]), 3,4},
+ {&(_ZTV7ee63021[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee63021[];
+extern VTBL_ENTRY _ZTV7ee63021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63021[];
+static VTBL_ENTRY alt_thunk_names441[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30213fooEv,_ZTv0_n12_N6dd30213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30213fooEv,_ZThn12_N6dd30213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee630213fooEv,_ZTv0_n12_N7ee630213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee630213fooEv,_ZThn12_N7ee630213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63021 = { "ee63021", // class name
+ bases_ee63021, 4,
+ &(vtc_ee63021[0]), // expected_vtbl_contents
+ &(vtt_ee63021[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee63021),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63021),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63021),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names441,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee73021 : virtual dd3021 {
+ int e;
+ virtual void foo(); // _ZN7ee730213fooEv
+ virtual void bar(); // _ZN7ee730213barEv
+ ~ee73021(); // tgen
+ ee73021(); // tgen
+};
+//SIG(1 ee73021) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} v1 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73021 ::foo(){vfunc_called(this, "_ZN7ee730213fooEv");}
+void ee73021 ::bar(){vfunc_called(this, "_ZN7ee730213barEv");}
+ee73021 ::~ee73021(){ note_dtor("ee73021", this);} // tgen
+ee73021 ::ee73021(){ note_ctor("ee73021", this);} // tgen
+
+static void Test_ee73021()
+{
+ extern Class_Descriptor cd_ee73021;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee73021, buf);
+ ee73021 *dp, &lv = *(dp=new (buf) ee73021());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee73021)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73021)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc021*), ABISELECT(32,16), "ee73021");
+ check_base_class_offset(lv, (bb21*)(cc021*), ABISELECT(32,16), "ee73021");
+ check_base_class_offset(lv, (cc021*)(dd3021*), ABISELECT(32,16), "ee73021");
+ check_base_class_offset(lv, (dd3021*), ABISELECT(16,8), "ee73021");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73021.e");
+ test_class_info(&lv, &cd_ee73021);
+ dp->~ee73021();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73021(Test_ee73021, "ee73021", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee73021C1Ev();
+extern void _ZN7ee73021D1Ev();
+Name_Map name_map_ee73021[] = {
+ NSPAIR(_ZN7ee73021C1Ev),
+ NSPAIR(_ZN7ee73021D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc021;
+extern VTBL_ENTRY _ZTI5cc021[];
+extern VTBL_ENTRY _ZTV5cc021[];
+extern Class_Descriptor cd_dd3021;
+extern VTBL_ENTRY _ZTI6dd3021[];
+extern VTBL_ENTRY _ZTV6dd3021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3021[];
+static Base_Class bases_ee73021[] = {
+ // 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_bb21, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc021, 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_dd3021, 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 _ZTI7ee73021[];
+extern void _ZN7ee730213fooEv();
+extern void _ZN7ee730213barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee730213fooEv,_ZTv0_n16_N7ee730213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee730213fooEv,_ZThn8_N7ee730213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee730213fooEv,_ZTv0_n12_N7ee730213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee730213fooEv,_ZThn16_N7ee730213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73021[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73021[0]),
+ (VTBL_ENTRY)&_ZN7ee730213fooEv,
+ (VTBL_ENTRY)&_ZN7ee730213barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73021[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee730213fooEv,_ZTv0_n16_N7ee730213fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73021[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee730213fooEv,_ZTv0_n12_N7ee730213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee73021[];
+extern void _ZN6dd30213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3021__7ee73021[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3021[0]),
+ (VTBL_ENTRY)&_ZN6dd30213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd30213fooEv,_ZTv0_n12_N6dd30213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30213fooEv,_ZThn8_N6dd30213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb215cc021__6dd3021__7ee73021[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3021[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30213fooEv,_ZTv0_n12_N6dd30213fooEv),
+};
+static VTT_ENTRY vtt_ee73021[] = {
+ {&(_ZTV7ee73021[4]), 4,15},
+ {&(_ZTV7ee73021[10]), 10,15},
+ {&(_ZTV7ee73021[14]), 14,15},
+ {&(_tg__ZTV6dd3021__7ee73021[3]), 3,4},
+ {&(_tg__ZTV4bb215cc021__6dd3021__7ee73021[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee73021[];
+extern VTBL_ENTRY _ZTV7ee73021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73021[];
+static VTBL_ENTRY alt_thunk_names442[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30213fooEv,_ZTv0_n12_N6dd30213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30213fooEv,_ZThn8_N6dd30213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee730213fooEv,_ZTv0_n12_N7ee730213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee730213fooEv,_ZThn16_N7ee730213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee730213fooEv,_ZTv0_n16_N7ee730213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee730213fooEv,_ZThn8_N7ee730213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73021 = { "ee73021", // class name
+ bases_ee73021, 4,
+ &(vtc_ee73021[0]), // expected_vtbl_contents
+ &(vtt_ee73021[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee73021),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73021),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73021),5, //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 dd4021 : cc021 {
+ int d;
+ virtual void bar(); // _ZN6dd40213barEv
+ ~dd4021(); // tgen
+ dd4021(); // tgen
+};
+//SIG(-1 dd4021) C1{ BC2{ BC3{ BC4{ v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void dd4021 ::bar(){vfunc_called(this, "_ZN6dd40213barEv");}
+dd4021 ::~dd4021(){ note_dtor("dd4021", this);} // tgen
+dd4021 ::dd4021(){ note_ctor("dd4021", this);} // tgen
+
+static void Test_dd4021()
+{
+ extern Class_Descriptor cd_dd4021;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd4021, buf);
+ dd4021 *dp, &lv = *(dp=new (buf) dd4021());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd4021)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4021)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc021*), 0, "dd4021");
+ check_base_class_offset(lv, (bb21*)(cc021*), 0, "dd4021");
+ check_base_class_offset(lv, (cc021*), 0, "dd4021");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd4021.d");
+ test_class_info(&lv, &cd_dd4021);
+ dp->~dd4021();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4021(Test_dd4021, "dd4021", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd4021C1Ev();
+extern void _ZN6dd4021D1Ev();
+Name_Map name_map_dd4021[] = {
+ NSPAIR(_ZN6dd4021C1Ev),
+ NSPAIR(_ZN6dd4021D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc021;
+extern VTBL_ENTRY _ZTI5cc021[];
+extern VTBL_ENTRY _ZTV5cc021[];
+static Base_Class bases_dd4021[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc021, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI6dd4021[];
+extern void _ZN4bb213fooEv();
+extern void _ZN6dd40213barEv();
+static VTBL_ENTRY vtc_dd4021[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4021[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+ (VTBL_ENTRY)&_ZN6dd40213barEv,
+};
+extern VTBL_ENTRY _ZTI6dd4021[];
+extern VTBL_ENTRY _ZTV6dd4021[];
+Class_Descriptor cd_dd4021 = { "dd4021", // class name
+ bases_dd4021, 3,
+ &(vtc_dd4021[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd4021),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4021),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 ee04021 : dd4021 {
+ int e;
+ ~ee04021(); // tgen
+ ee04021(); // tgen
+};
+//SIG(1 ee04021) C1{ BC2{ BC3{ BC4{ BC5{ v2 Fi} v2 Fi} Fi} v1 Fi} Fi}
+
+
+ee04021 ::~ee04021(){ note_dtor("ee04021", this);} // tgen
+ee04021 ::ee04021(){ note_ctor("ee04021", this);} // tgen
+
+static void Test_ee04021()
+{
+ extern Class_Descriptor cd_ee04021;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee04021, buf);
+ ee04021 *dp, &lv = *(dp=new (buf) ee04021());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee04021)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04021)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc021*)(dd4021*), 0, "ee04021");
+ check_base_class_offset(lv, (bb21*)(cc021*)(dd4021*), 0, "ee04021");
+ check_base_class_offset(lv, (cc021*)(dd4021*), 0, "ee04021");
+ check_base_class_offset(lv, (dd4021*), 0, "ee04021");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee04021.e");
+ test_class_info(&lv, &cd_ee04021);
+ dp->~ee04021();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04021(Test_ee04021, "ee04021", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee04021C1Ev();
+extern void _ZN7ee04021D1Ev();
+Name_Map name_map_ee04021[] = {
+ NSPAIR(_ZN7ee04021C1Ev),
+ NSPAIR(_ZN7ee04021D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc021;
+extern VTBL_ENTRY _ZTI5cc021[];
+extern VTBL_ENTRY _ZTV5cc021[];
+extern Class_Descriptor cd_dd4021;
+extern VTBL_ENTRY _ZTI6dd4021[];
+extern VTBL_ENTRY _ZTV6dd4021[];
+static Base_Class bases_ee04021[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc021, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4021, 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 _ZTI7ee04021[];
+extern void _ZN4bb213fooEv();
+extern void _ZN6dd40213barEv();
+static VTBL_ENTRY vtc_ee04021[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04021[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+ (VTBL_ENTRY)&_ZN6dd40213barEv,
+};
+extern VTBL_ENTRY _ZTI7ee04021[];
+extern VTBL_ENTRY _ZTV7ee04021[];
+Class_Descriptor cd_ee04021 = { "ee04021", // class name
+ bases_ee04021, 4,
+ &(vtc_ee04021[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee04021),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04021),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 ee14021 : virtual dd4021 {
+ int e;
+ ~ee14021(); // tgen
+ ee14021(); // tgen
+};
+//SIG(1 ee14021) C1{ VBC2{ BC3{ BC4{ BC5{ v2 Fi} v2 Fi} Fi} v1 Fi} Fi}
+
+
+ee14021 ::~ee14021(){ note_dtor("ee14021", this);} // tgen
+ee14021 ::ee14021(){ note_ctor("ee14021", this);} // tgen
+
+static void Test_ee14021()
+{
+ extern Class_Descriptor cd_ee14021;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee14021, buf);
+ ee14021 *dp, &lv = *(dp=new (buf) ee14021());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee14021)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14021)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc021*)(dd4021*), ABISELECT(16,8), "ee14021");
+ check_base_class_offset(lv, (bb21*)(cc021*)(dd4021*), ABISELECT(16,8), "ee14021");
+ check_base_class_offset(lv, (cc021*)(dd4021*), ABISELECT(16,8), "ee14021");
+ check_base_class_offset(lv, (dd4021*), ABISELECT(16,8), "ee14021");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14021.e");
+ test_class_info(&lv, &cd_ee14021);
+ dp->~ee14021();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14021(Test_ee14021, "ee14021", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee14021C1Ev();
+extern void _ZN7ee14021D1Ev();
+Name_Map name_map_ee14021[] = {
+ NSPAIR(_ZN7ee14021C1Ev),
+ NSPAIR(_ZN7ee14021D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc021;
+extern VTBL_ENTRY _ZTI5cc021[];
+extern VTBL_ENTRY _ZTV5cc021[];
+extern Class_Descriptor cd_dd4021;
+extern VTBL_ENTRY _ZTI6dd4021[];
+extern VTBL_ENTRY _ZTV6dd4021[];
+static Base_Class bases_ee14021[] = {
+ // 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_bb21, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc021, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4021, 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 _ZTI7ee14021[];
+extern void _ZN4bb213fooEv();
+extern void _ZN6dd40213barEv();
+static VTBL_ENTRY vtc_ee14021[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14021[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14021[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+ (VTBL_ENTRY)&_ZN6dd40213barEv,
+};
+extern VTBL_ENTRY _ZTV7ee14021[];
+static VTT_ENTRY vtt_ee14021[] = {
+ {&(_ZTV7ee14021[3]), 3,9},
+ {&(_ZTV7ee14021[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee14021[];
+extern VTBL_ENTRY _ZTV7ee14021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14021[];
+Class_Descriptor cd_ee14021 = { "ee14021", // class name
+ bases_ee14021, 4,
+ &(vtc_ee14021[0]), // expected_vtbl_contents
+ &(vtt_ee14021[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee14021),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14021),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14021),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 ee24021 : dd4021 {
+ int e;
+ virtual void foo(); // _ZN7ee240213fooEv
+ ~ee24021(); // tgen
+ ee24021(); // tgen
+};
+//SIG(1 ee24021) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee24021 ::foo(){vfunc_called(this, "_ZN7ee240213fooEv");}
+ee24021 ::~ee24021(){ note_dtor("ee24021", this);} // tgen
+ee24021 ::ee24021(){ note_ctor("ee24021", this);} // tgen
+
+static void Test_ee24021()
+{
+ extern Class_Descriptor cd_ee24021;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee24021, buf);
+ ee24021 *dp, &lv = *(dp=new (buf) ee24021());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee24021)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24021)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc021*)(dd4021*), 0, "ee24021");
+ check_base_class_offset(lv, (bb21*)(cc021*)(dd4021*), 0, "ee24021");
+ check_base_class_offset(lv, (cc021*)(dd4021*), 0, "ee24021");
+ check_base_class_offset(lv, (dd4021*), 0, "ee24021");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee24021.e");
+ test_class_info(&lv, &cd_ee24021);
+ dp->~ee24021();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24021(Test_ee24021, "ee24021", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee24021C1Ev();
+extern void _ZN7ee24021D1Ev();
+Name_Map name_map_ee24021[] = {
+ NSPAIR(_ZN7ee24021C1Ev),
+ NSPAIR(_ZN7ee24021D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc021;
+extern VTBL_ENTRY _ZTI5cc021[];
+extern VTBL_ENTRY _ZTV5cc021[];
+extern Class_Descriptor cd_dd4021;
+extern VTBL_ENTRY _ZTI6dd4021[];
+extern VTBL_ENTRY _ZTV6dd4021[];
+static Base_Class bases_ee24021[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc021, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4021, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee24021[];
+extern void _ZN7ee240213fooEv();
+extern void _ZN6dd40213barEv();
+static VTBL_ENTRY vtc_ee24021[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24021[0]),
+ (VTBL_ENTRY)&_ZN7ee240213fooEv,
+ (VTBL_ENTRY)&_ZN6dd40213barEv,
+};
+extern VTBL_ENTRY _ZTI7ee24021[];
+extern VTBL_ENTRY _ZTV7ee24021[];
+Class_Descriptor cd_ee24021 = { "ee24021", // class name
+ bases_ee24021, 4,
+ &(vtc_ee24021[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee24021),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24021),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 ee34021 : virtual dd4021 {
+ int e;
+ virtual void foo(); // _ZN7ee340213fooEv
+ ~ee34021(); // tgen
+ ee34021(); // tgen
+};
+//SIG(1 ee34021) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee34021 ::foo(){vfunc_called(this, "_ZN7ee340213fooEv");}
+ee34021 ::~ee34021(){ note_dtor("ee34021", this);} // tgen
+ee34021 ::ee34021(){ note_ctor("ee34021", this);} // tgen
+
+static void Test_ee34021()
+{
+ extern Class_Descriptor cd_ee34021;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee34021, buf);
+ ee34021 *dp, &lv = *(dp=new (buf) ee34021());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee34021)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34021)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc021*)(dd4021*), ABISELECT(16,8), "ee34021");
+ check_base_class_offset(lv, (bb21*)(cc021*)(dd4021*), ABISELECT(16,8), "ee34021");
+ check_base_class_offset(lv, (cc021*)(dd4021*), ABISELECT(16,8), "ee34021");
+ check_base_class_offset(lv, (dd4021*), ABISELECT(16,8), "ee34021");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34021.e");
+ test_class_info(&lv, &cd_ee34021);
+ dp->~ee34021();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34021(Test_ee34021, "ee34021", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee34021C1Ev();
+extern void _ZN7ee34021D1Ev();
+Name_Map name_map_ee34021[] = {
+ NSPAIR(_ZN7ee34021C1Ev),
+ NSPAIR(_ZN7ee34021D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc021;
+extern VTBL_ENTRY _ZTI5cc021[];
+extern VTBL_ENTRY _ZTV5cc021[];
+extern Class_Descriptor cd_dd4021;
+extern VTBL_ENTRY _ZTI6dd4021[];
+extern VTBL_ENTRY _ZTV6dd4021[];
+static Base_Class bases_ee34021[] = {
+ // 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_bb21, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc021, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4021, 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 _ZTI7ee34021[];
+extern void _ZN7ee340213fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee340213fooEv,_ZTv0_n12_N7ee340213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee340213fooEv,_ZThn8_N7ee340213fooEv)() __attribute__((weak));
+extern void _ZN6dd40213barEv();
+static VTBL_ENTRY vtc_ee34021[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34021[0]),
+ (VTBL_ENTRY)&_ZN7ee340213fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34021[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee340213fooEv,_ZTv0_n12_N7ee340213fooEv),
+ (VTBL_ENTRY)&_ZN6dd40213barEv,
+};
+extern VTBL_ENTRY _ZTV7ee34021[];
+static VTT_ENTRY vtt_ee34021[] = {
+ {&(_ZTV7ee34021[3]), 3,10},
+ {&(_ZTV7ee34021[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee34021[];
+extern VTBL_ENTRY _ZTV7ee34021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34021[];
+static VTBL_ENTRY alt_thunk_names443[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee340213fooEv,_ZTv0_n12_N7ee340213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee340213fooEv,_ZThn8_N7ee340213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34021 = { "ee34021", // class name
+ bases_ee34021, 4,
+ &(vtc_ee34021[0]), // expected_vtbl_contents
+ &(vtt_ee34021[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee34021),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34021),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34021),2, //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 ee44021 : dd4021 {
+ int e;
+ virtual void bar(); // _ZN7ee440213barEv
+ ~ee44021(); // tgen
+ ee44021(); // tgen
+};
+//SIG(1 ee44021) C1{ BC2{ BC3{ BC4{ BC5{ v2 Fi} v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee44021 ::bar(){vfunc_called(this, "_ZN7ee440213barEv");}
+ee44021 ::~ee44021(){ note_dtor("ee44021", this);} // tgen
+ee44021 ::ee44021(){ note_ctor("ee44021", this);} // tgen
+
+static void Test_ee44021()
+{
+ extern Class_Descriptor cd_ee44021;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee44021, buf);
+ ee44021 *dp, &lv = *(dp=new (buf) ee44021());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee44021)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44021)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc021*)(dd4021*), 0, "ee44021");
+ check_base_class_offset(lv, (bb21*)(cc021*)(dd4021*), 0, "ee44021");
+ check_base_class_offset(lv, (cc021*)(dd4021*), 0, "ee44021");
+ check_base_class_offset(lv, (dd4021*), 0, "ee44021");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee44021.e");
+ test_class_info(&lv, &cd_ee44021);
+ dp->~ee44021();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44021(Test_ee44021, "ee44021", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee44021C1Ev();
+extern void _ZN7ee44021D1Ev();
+Name_Map name_map_ee44021[] = {
+ NSPAIR(_ZN7ee44021C1Ev),
+ NSPAIR(_ZN7ee44021D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc021;
+extern VTBL_ENTRY _ZTI5cc021[];
+extern VTBL_ENTRY _ZTV5cc021[];
+extern Class_Descriptor cd_dd4021;
+extern VTBL_ENTRY _ZTI6dd4021[];
+extern VTBL_ENTRY _ZTV6dd4021[];
+static Base_Class bases_ee44021[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc021, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4021, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee44021[];
+extern void _ZN4bb213fooEv();
+extern void _ZN7ee440213barEv();
+static VTBL_ENTRY vtc_ee44021[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44021[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+ (VTBL_ENTRY)&_ZN7ee440213barEv,
+};
+extern VTBL_ENTRY _ZTI7ee44021[];
+extern VTBL_ENTRY _ZTV7ee44021[];
+Class_Descriptor cd_ee44021 = { "ee44021", // class name
+ bases_ee44021, 4,
+ &(vtc_ee44021[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee44021),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44021),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 ee54021 : virtual dd4021 {
+ int e;
+ virtual void bar(); // _ZN7ee540213barEv
+ ~ee54021(); // tgen
+ ee54021(); // tgen
+};
+//SIG(1 ee54021) C1{ VBC2{ BC3{ BC4{ BC5{ v2 Fi} v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee54021 ::bar(){vfunc_called(this, "_ZN7ee540213barEv");}
+ee54021 ::~ee54021(){ note_dtor("ee54021", this);} // tgen
+ee54021 ::ee54021(){ note_ctor("ee54021", this);} // tgen
+
+static void Test_ee54021()
+{
+ extern Class_Descriptor cd_ee54021;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee54021, buf);
+ ee54021 *dp, &lv = *(dp=new (buf) ee54021());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee54021)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54021)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc021*)(dd4021*), ABISELECT(16,8), "ee54021");
+ check_base_class_offset(lv, (bb21*)(cc021*)(dd4021*), ABISELECT(16,8), "ee54021");
+ check_base_class_offset(lv, (cc021*)(dd4021*), ABISELECT(16,8), "ee54021");
+ check_base_class_offset(lv, (dd4021*), ABISELECT(16,8), "ee54021");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54021.e");
+ test_class_info(&lv, &cd_ee54021);
+ dp->~ee54021();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54021(Test_ee54021, "ee54021", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee54021C1Ev();
+extern void _ZN7ee54021D1Ev();
+Name_Map name_map_ee54021[] = {
+ NSPAIR(_ZN7ee54021C1Ev),
+ NSPAIR(_ZN7ee54021D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc021;
+extern VTBL_ENTRY _ZTI5cc021[];
+extern VTBL_ENTRY _ZTV5cc021[];
+extern Class_Descriptor cd_dd4021;
+extern VTBL_ENTRY _ZTI6dd4021[];
+extern VTBL_ENTRY _ZTV6dd4021[];
+static Base_Class bases_ee54021[] = {
+ // 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_bb21, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc021, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4021, 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 _ZTI7ee54021[];
+extern void _ZN7ee540213barEv();
+extern void _ZN4bb213fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee540213barEv,_ZTv0_n16_N7ee540213barEv)();
+extern void ABISELECT(_ZThn16_N7ee540213barEv,_ZThn8_N7ee540213barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54021[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54021[0]),
+ (VTBL_ENTRY)&_ZN7ee540213barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54021[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee540213barEv,_ZTv0_n16_N7ee540213barEv),
+};
+extern VTBL_ENTRY _ZTV7ee54021[];
+static VTT_ENTRY vtt_ee54021[] = {
+ {&(_ZTV7ee54021[3]), 3,10},
+ {&(_ZTV7ee54021[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee54021[];
+extern VTBL_ENTRY _ZTV7ee54021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54021[];
+static VTBL_ENTRY alt_thunk_names444[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee540213barEv,_ZTv0_n16_N7ee540213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee540213barEv,_ZThn8_N7ee540213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54021 = { "ee54021", // class name
+ bases_ee54021, 4,
+ &(vtc_ee54021[0]), // expected_vtbl_contents
+ &(vtt_ee54021[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee54021),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54021),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54021),2, //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 ee64021 : dd4021 {
+ int e;
+ virtual void foo(); // _ZN7ee640213fooEv
+ virtual void bar(); // _ZN7ee640213barEv
+ ~ee64021(); // tgen
+ ee64021(); // tgen
+};
+//SIG(1 ee64021) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} v1 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64021 ::foo(){vfunc_called(this, "_ZN7ee640213fooEv");}
+void ee64021 ::bar(){vfunc_called(this, "_ZN7ee640213barEv");}
+ee64021 ::~ee64021(){ note_dtor("ee64021", this);} // tgen
+ee64021 ::ee64021(){ note_ctor("ee64021", this);} // tgen
+
+static void Test_ee64021()
+{
+ extern Class_Descriptor cd_ee64021;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee64021, buf);
+ ee64021 *dp, &lv = *(dp=new (buf) ee64021());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee64021)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64021)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc021*)(dd4021*), 0, "ee64021");
+ check_base_class_offset(lv, (bb21*)(cc021*)(dd4021*), 0, "ee64021");
+ check_base_class_offset(lv, (cc021*)(dd4021*), 0, "ee64021");
+ check_base_class_offset(lv, (dd4021*), 0, "ee64021");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee64021.e");
+ test_class_info(&lv, &cd_ee64021);
+ dp->~ee64021();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64021(Test_ee64021, "ee64021", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee64021C1Ev();
+extern void _ZN7ee64021D1Ev();
+Name_Map name_map_ee64021[] = {
+ NSPAIR(_ZN7ee64021C1Ev),
+ NSPAIR(_ZN7ee64021D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc021;
+extern VTBL_ENTRY _ZTI5cc021[];
+extern VTBL_ENTRY _ZTV5cc021[];
+extern Class_Descriptor cd_dd4021;
+extern VTBL_ENTRY _ZTI6dd4021[];
+extern VTBL_ENTRY _ZTV6dd4021[];
+static Base_Class bases_ee64021[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc021, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4021, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee64021[];
+extern void _ZN7ee640213fooEv();
+extern void _ZN7ee640213barEv();
+static VTBL_ENTRY vtc_ee64021[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64021[0]),
+ (VTBL_ENTRY)&_ZN7ee640213fooEv,
+ (VTBL_ENTRY)&_ZN7ee640213barEv,
+};
+extern VTBL_ENTRY _ZTI7ee64021[];
+extern VTBL_ENTRY _ZTV7ee64021[];
+Class_Descriptor cd_ee64021 = { "ee64021", // class name
+ bases_ee64021, 4,
+ &(vtc_ee64021[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee64021),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64021),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 ee74021 : virtual dd4021 {
+ int e;
+ virtual void foo(); // _ZN7ee740213fooEv
+ virtual void bar(); // _ZN7ee740213barEv
+ ~ee74021(); // tgen
+ ee74021(); // tgen
+};
+//SIG(1 ee74021) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} v1 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74021 ::foo(){vfunc_called(this, "_ZN7ee740213fooEv");}
+void ee74021 ::bar(){vfunc_called(this, "_ZN7ee740213barEv");}
+ee74021 ::~ee74021(){ note_dtor("ee74021", this);} // tgen
+ee74021 ::ee74021(){ note_ctor("ee74021", this);} // tgen
+
+static void Test_ee74021()
+{
+ extern Class_Descriptor cd_ee74021;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee74021, buf);
+ ee74021 *dp, &lv = *(dp=new (buf) ee74021());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee74021)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74021)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc021*)(dd4021*), ABISELECT(16,8), "ee74021");
+ check_base_class_offset(lv, (bb21*)(cc021*)(dd4021*), ABISELECT(16,8), "ee74021");
+ check_base_class_offset(lv, (cc021*)(dd4021*), ABISELECT(16,8), "ee74021");
+ check_base_class_offset(lv, (dd4021*), ABISELECT(16,8), "ee74021");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74021.e");
+ test_class_info(&lv, &cd_ee74021);
+ dp->~ee74021();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74021(Test_ee74021, "ee74021", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee74021C1Ev();
+extern void _ZN7ee74021D1Ev();
+Name_Map name_map_ee74021[] = {
+ NSPAIR(_ZN7ee74021C1Ev),
+ NSPAIR(_ZN7ee74021D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc021;
+extern VTBL_ENTRY _ZTI5cc021[];
+extern VTBL_ENTRY _ZTV5cc021[];
+extern Class_Descriptor cd_dd4021;
+extern VTBL_ENTRY _ZTI6dd4021[];
+extern VTBL_ENTRY _ZTV6dd4021[];
+static Base_Class bases_ee74021[] = {
+ // 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_bb21, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc021, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4021, 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 _ZTI7ee74021[];
+extern void _ZN7ee740213fooEv();
+extern void _ZN7ee740213barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee740213fooEv,_ZTv0_n12_N7ee740213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee740213fooEv,_ZThn8_N7ee740213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee740213barEv,_ZTv0_n16_N7ee740213barEv)();
+extern void ABISELECT(_ZThn16_N7ee740213barEv,_ZThn8_N7ee740213barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74021[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74021[0]),
+ (VTBL_ENTRY)&_ZN7ee740213fooEv,
+ (VTBL_ENTRY)&_ZN7ee740213barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74021[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee740213fooEv,_ZTv0_n12_N7ee740213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee740213barEv,_ZTv0_n16_N7ee740213barEv),
+};
+extern VTBL_ENTRY _ZTV7ee74021[];
+static VTT_ENTRY vtt_ee74021[] = {
+ {&(_ZTV7ee74021[3]), 3,11},
+ {&(_ZTV7ee74021[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee74021[];
+extern VTBL_ENTRY _ZTV7ee74021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74021[];
+static VTBL_ENTRY alt_thunk_names445[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee740213barEv,_ZTv0_n16_N7ee740213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee740213barEv,_ZThn8_N7ee740213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee740213fooEv,_ZTv0_n12_N7ee740213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee740213fooEv,_ZThn8_N7ee740213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74021 = { "ee74021", // class name
+ bases_ee74021, 4,
+ &(vtc_ee74021[0]), // expected_vtbl_contents
+ &(vtt_ee74021[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee74021),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74021),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74021),2, //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 dd5021 : virtual cc021 {
+ int d;
+ virtual void bar(); // _ZN6dd50213barEv
+ ~dd5021(); // tgen
+ dd5021(); // tgen
+};
+//SIG(-1 dd5021) C1{ VBC2{ BC3{ BC4{ v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void dd5021 ::bar(){vfunc_called(this, "_ZN6dd50213barEv");}
+dd5021 ::~dd5021(){ note_dtor("dd5021", this);} // tgen
+dd5021 ::dd5021(){ note_ctor("dd5021", this);} // tgen
+
+static void Test_dd5021()
+{
+ extern Class_Descriptor cd_dd5021;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd5021, buf);
+ dd5021 *dp, &lv = *(dp=new (buf) dd5021());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd5021)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5021)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc021*), ABISELECT(16,8), "dd5021");
+ check_base_class_offset(lv, (bb21*)(cc021*), ABISELECT(16,8), "dd5021");
+ check_base_class_offset(lv, (cc021*), ABISELECT(16,8), "dd5021");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5021.d");
+ test_class_info(&lv, &cd_dd5021);
+ dp->~dd5021();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5021(Test_dd5021, "dd5021", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd5021C1Ev();
+extern void _ZN6dd5021D1Ev();
+Name_Map name_map_dd5021[] = {
+ NSPAIR(_ZN6dd5021C1Ev),
+ NSPAIR(_ZN6dd5021D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc021;
+extern VTBL_ENTRY _ZTI5cc021[];
+extern VTBL_ENTRY _ZTV5cc021[];
+static Base_Class bases_dd5021[] = {
+ // 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_bb21, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc021, 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 _ZTI6dd5021[];
+extern void _ZN6dd50213barEv();
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY vtc_dd5021[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5021[0]),
+ (VTBL_ENTRY)&_ZN6dd50213barEv,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5021[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd5021[];
+static VTT_ENTRY vtt_dd5021[] = {
+ {&(_ZTV6dd5021[3]), 3,8},
+ {&(_ZTV6dd5021[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI6dd5021[];
+extern VTBL_ENTRY _ZTV6dd5021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5021[];
+Class_Descriptor cd_dd5021 = { "dd5021", // class name
+ bases_dd5021, 3,
+ &(vtc_dd5021[0]), // expected_vtbl_contents
+ &(vtt_dd5021[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd5021),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5021),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5021),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 ee05021 : dd5021 {
+ int e;
+ ~ee05021(); // tgen
+ ee05021(); // tgen
+};
+//SIG(1 ee05021) C1{ BC2{ VBC3{ BC4{ BC5{ v2 Fi} v2 Fi} Fi} v1 Fi} Fi}
+
+
+ee05021 ::~ee05021(){ note_dtor("ee05021", this);} // tgen
+ee05021 ::ee05021(){ note_ctor("ee05021", this);} // tgen
+
+static void Test_ee05021()
+{
+ extern Class_Descriptor cd_ee05021;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee05021, buf);
+ ee05021 *dp, &lv = *(dp=new (buf) ee05021());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee05021)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05021)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc021*), ABISELECT(16,12), "ee05021");
+ check_base_class_offset(lv, (bb21*)(cc021*), ABISELECT(16,12), "ee05021");
+ check_base_class_offset(lv, (cc021*)(dd5021*), ABISELECT(16,12), "ee05021");
+ check_base_class_offset(lv, (dd5021*), 0, "ee05021");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05021.e");
+ test_class_info(&lv, &cd_ee05021);
+ dp->~ee05021();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05021(Test_ee05021, "ee05021", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee05021C1Ev();
+extern void _ZN7ee05021D1Ev();
+Name_Map name_map_ee05021[] = {
+ NSPAIR(_ZN7ee05021C1Ev),
+ NSPAIR(_ZN7ee05021D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc021;
+extern VTBL_ENTRY _ZTI5cc021[];
+extern VTBL_ENTRY _ZTV5cc021[];
+extern Class_Descriptor cd_dd5021;
+extern VTBL_ENTRY _ZTI6dd5021[];
+extern VTBL_ENTRY _ZTV6dd5021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5021[];
+static Base_Class bases_ee05021[] = {
+ // 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_bb21, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc021, 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_dd5021, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05021[];
+extern void _ZN6dd50213barEv();
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY vtc_ee05021[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05021[0]),
+ (VTBL_ENTRY)&_ZN6dd50213barEv,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05021[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee05021[];
+extern void _ZN6dd50213barEv();
+static VTBL_ENTRY _tg__ZTV6dd5021__7ee05021[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5021[0]),
+ (VTBL_ENTRY)&_ZN6dd50213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb215cc021__6dd5021__7ee05021[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5021[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee05021[] = {
+ {&(_ZTV7ee05021[3]), 3,8},
+ {&(_tg__ZTV6dd5021__7ee05021[3]), 3,4},
+ {&(_tg__ZTV4bb215cc021__6dd5021__7ee05021[3]), 3,4},
+ {&(_ZTV7ee05021[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee05021[];
+extern VTBL_ENTRY _ZTV7ee05021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05021[];
+Class_Descriptor cd_ee05021 = { "ee05021", // class name
+ bases_ee05021, 4,
+ &(vtc_ee05021[0]), // expected_vtbl_contents
+ &(vtt_ee05021[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee05021),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05021),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05021),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 ee15021 : virtual dd5021 {
+ int e;
+ ~ee15021(); // tgen
+ ee15021(); // tgen
+};
+//SIG(1 ee15021) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 Fi} v2 Fi} Fi} v1 Fi} Fi}
+
+
+ee15021 ::~ee15021(){ note_dtor("ee15021", this);} // tgen
+ee15021 ::ee15021(){ note_ctor("ee15021", this);} // tgen
+
+static void Test_ee15021()
+{
+ extern Class_Descriptor cd_ee15021;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee15021, buf);
+ ee15021 *dp, &lv = *(dp=new (buf) ee15021());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee15021)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15021)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc021*), ABISELECT(32,16), "ee15021");
+ check_base_class_offset(lv, (bb21*)(cc021*), ABISELECT(32,16), "ee15021");
+ check_base_class_offset(lv, (cc021*)(dd5021*), ABISELECT(32,16), "ee15021");
+ check_base_class_offset(lv, (dd5021*), ABISELECT(16,8), "ee15021");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15021.e");
+ test_class_info(&lv, &cd_ee15021);
+ dp->~ee15021();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15021(Test_ee15021, "ee15021", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee15021C1Ev();
+extern void _ZN7ee15021D1Ev();
+Name_Map name_map_ee15021[] = {
+ NSPAIR(_ZN7ee15021C1Ev),
+ NSPAIR(_ZN7ee15021D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc021;
+extern VTBL_ENTRY _ZTI5cc021[];
+extern VTBL_ENTRY _ZTV5cc021[];
+extern Class_Descriptor cd_dd5021;
+extern VTBL_ENTRY _ZTI6dd5021[];
+extern VTBL_ENTRY _ZTV6dd5021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5021[];
+static Base_Class bases_ee15021[] = {
+ // 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_bb21, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc021, 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_dd5021, 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 _ZTI7ee15021[];
+extern void _ZN6dd50213barEv();
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY vtc_ee15021[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15021[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15021[0]),
+ (VTBL_ENTRY)&_ZN6dd50213barEv,
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15021[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee15021[];
+extern void _ZN6dd50213barEv();
+static VTBL_ENTRY _tg__ZTV6dd5021__7ee15021[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5021[0]),
+ (VTBL_ENTRY)&_ZN6dd50213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb215cc021__6dd5021__7ee15021[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5021[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee15021[] = {
+ {&(_ZTV7ee15021[4]), 4,13},
+ {&(_ZTV7ee15021[8]), 8,13},
+ {&(_ZTV7ee15021[12]), 12,13},
+ {&(_tg__ZTV6dd5021__7ee15021[3]), 3,4},
+ {&(_tg__ZTV4bb215cc021__6dd5021__7ee15021[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee15021[];
+extern VTBL_ENTRY _ZTV7ee15021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15021[];
+Class_Descriptor cd_ee15021 = { "ee15021", // class name
+ bases_ee15021, 4,
+ &(vtc_ee15021[0]), // expected_vtbl_contents
+ &(vtt_ee15021[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee15021),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15021),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15021),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 ee25021 : dd5021 {
+ int e;
+ virtual void foo(); // _ZN7ee250213fooEv
+ ~ee25021(); // tgen
+ ee25021(); // tgen
+};
+//SIG(1 ee25021) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee25021 ::foo(){vfunc_called(this, "_ZN7ee250213fooEv");}
+ee25021 ::~ee25021(){ note_dtor("ee25021", this);} // tgen
+ee25021 ::ee25021(){ note_ctor("ee25021", this);} // tgen
+
+static void Test_ee25021()
+{
+ extern Class_Descriptor cd_ee25021;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee25021, buf);
+ ee25021 *dp, &lv = *(dp=new (buf) ee25021());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee25021)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25021)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc021*), ABISELECT(16,12), "ee25021");
+ check_base_class_offset(lv, (bb21*)(cc021*), ABISELECT(16,12), "ee25021");
+ check_base_class_offset(lv, (cc021*)(dd5021*), ABISELECT(16,12), "ee25021");
+ check_base_class_offset(lv, (dd5021*), 0, "ee25021");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25021.e");
+ test_class_info(&lv, &cd_ee25021);
+ dp->~ee25021();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25021(Test_ee25021, "ee25021", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee25021C1Ev();
+extern void _ZN7ee25021D1Ev();
+Name_Map name_map_ee25021[] = {
+ NSPAIR(_ZN7ee25021C1Ev),
+ NSPAIR(_ZN7ee25021D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc021;
+extern VTBL_ENTRY _ZTI5cc021[];
+extern VTBL_ENTRY _ZTV5cc021[];
+extern Class_Descriptor cd_dd5021;
+extern VTBL_ENTRY _ZTI6dd5021[];
+extern VTBL_ENTRY _ZTV6dd5021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5021[];
+static Base_Class bases_ee25021[] = {
+ // 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_bb21, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc021, 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_dd5021, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25021[];
+extern void _ZN6dd50213barEv();
+extern void _ZN7ee250213fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee250213fooEv,_ZTv0_n12_N7ee250213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee250213fooEv,_ZThn12_N7ee250213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25021[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25021[0]),
+ (VTBL_ENTRY)&_ZN6dd50213barEv,
+ (VTBL_ENTRY)&_ZN7ee250213fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25021[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee250213fooEv,_ZTv0_n12_N7ee250213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee25021[];
+extern void _ZN6dd50213barEv();
+static VTBL_ENTRY _tg__ZTV6dd5021__7ee25021[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5021[0]),
+ (VTBL_ENTRY)&_ZN6dd50213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb215cc021__6dd5021__7ee25021[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5021[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee25021[] = {
+ {&(_ZTV7ee25021[3]), 3,9},
+ {&(_tg__ZTV6dd5021__7ee25021[3]), 3,4},
+ {&(_tg__ZTV4bb215cc021__6dd5021__7ee25021[3]), 3,4},
+ {&(_ZTV7ee25021[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee25021[];
+extern VTBL_ENTRY _ZTV7ee25021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25021[];
+static VTBL_ENTRY alt_thunk_names446[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee250213fooEv,_ZTv0_n12_N7ee250213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee250213fooEv,_ZThn12_N7ee250213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25021 = { "ee25021", // class name
+ bases_ee25021, 4,
+ &(vtc_ee25021[0]), // expected_vtbl_contents
+ &(vtt_ee25021[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee25021),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25021),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25021),4, //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 ee35021 : virtual dd5021 {
+ int e;
+ virtual void foo(); // _ZN7ee350213fooEv
+ ~ee35021(); // tgen
+ ee35021(); // tgen
+};
+//SIG(1 ee35021) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee35021 ::foo(){vfunc_called(this, "_ZN7ee350213fooEv");}
+ee35021 ::~ee35021(){ note_dtor("ee35021", this);} // tgen
+ee35021 ::ee35021(){ note_ctor("ee35021", this);} // tgen
+
+static void Test_ee35021()
+{
+ extern Class_Descriptor cd_ee35021;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee35021, buf);
+ ee35021 *dp, &lv = *(dp=new (buf) ee35021());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee35021)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35021)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc021*), ABISELECT(32,16), "ee35021");
+ check_base_class_offset(lv, (bb21*)(cc021*), ABISELECT(32,16), "ee35021");
+ check_base_class_offset(lv, (cc021*)(dd5021*), ABISELECT(32,16), "ee35021");
+ check_base_class_offset(lv, (dd5021*), ABISELECT(16,8), "ee35021");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35021.e");
+ test_class_info(&lv, &cd_ee35021);
+ dp->~ee35021();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35021(Test_ee35021, "ee35021", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee35021C1Ev();
+extern void _ZN7ee35021D1Ev();
+Name_Map name_map_ee35021[] = {
+ NSPAIR(_ZN7ee35021C1Ev),
+ NSPAIR(_ZN7ee35021D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc021;
+extern VTBL_ENTRY _ZTI5cc021[];
+extern VTBL_ENTRY _ZTV5cc021[];
+extern Class_Descriptor cd_dd5021;
+extern VTBL_ENTRY _ZTI6dd5021[];
+extern VTBL_ENTRY _ZTV6dd5021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5021[];
+static Base_Class bases_ee35021[] = {
+ // 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_bb21, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc021, 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_dd5021, 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 _ZTI7ee35021[];
+extern void _ZN7ee350213fooEv();
+extern void _ZN6dd50213barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee350213fooEv,_ZTv0_n12_N7ee350213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee350213fooEv,_ZThn16_N7ee350213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35021[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35021[0]),
+ (VTBL_ENTRY)&_ZN7ee350213fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35021[0]),
+ (VTBL_ENTRY)&_ZN6dd50213barEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35021[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee350213fooEv,_ZTv0_n12_N7ee350213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee35021[];
+extern void _ZN6dd50213barEv();
+static VTBL_ENTRY _tg__ZTV6dd5021__7ee35021[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5021[0]),
+ (VTBL_ENTRY)&_ZN6dd50213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb215cc021__6dd5021__7ee35021[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5021[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee35021[] = {
+ {&(_ZTV7ee35021[4]), 4,14},
+ {&(_ZTV7ee35021[9]), 9,14},
+ {&(_ZTV7ee35021[13]), 13,14},
+ {&(_tg__ZTV6dd5021__7ee35021[3]), 3,4},
+ {&(_tg__ZTV4bb215cc021__6dd5021__7ee35021[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee35021[];
+extern VTBL_ENTRY _ZTV7ee35021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35021[];
+static VTBL_ENTRY alt_thunk_names447[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee350213fooEv,_ZTv0_n12_N7ee350213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee350213fooEv,_ZThn16_N7ee350213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35021 = { "ee35021", // class name
+ bases_ee35021, 4,
+ &(vtc_ee35021[0]), // expected_vtbl_contents
+ &(vtt_ee35021[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee35021),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35021),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35021),5, //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 ee45021 : dd5021 {
+ int e;
+ virtual void bar(); // _ZN7ee450213barEv
+ ~ee45021(); // tgen
+ ee45021(); // tgen
+};
+//SIG(1 ee45021) C1{ BC2{ VBC3{ BC4{ BC5{ v2 Fi} v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee45021 ::bar(){vfunc_called(this, "_ZN7ee450213barEv");}
+ee45021 ::~ee45021(){ note_dtor("ee45021", this);} // tgen
+ee45021 ::ee45021(){ note_ctor("ee45021", this);} // tgen
+
+static void Test_ee45021()
+{
+ extern Class_Descriptor cd_ee45021;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee45021, buf);
+ ee45021 *dp, &lv = *(dp=new (buf) ee45021());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee45021)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45021)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc021*), ABISELECT(16,12), "ee45021");
+ check_base_class_offset(lv, (bb21*)(cc021*), ABISELECT(16,12), "ee45021");
+ check_base_class_offset(lv, (cc021*)(dd5021*), ABISELECT(16,12), "ee45021");
+ check_base_class_offset(lv, (dd5021*), 0, "ee45021");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45021.e");
+ test_class_info(&lv, &cd_ee45021);
+ dp->~ee45021();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45021(Test_ee45021, "ee45021", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee45021C1Ev();
+extern void _ZN7ee45021D1Ev();
+Name_Map name_map_ee45021[] = {
+ NSPAIR(_ZN7ee45021C1Ev),
+ NSPAIR(_ZN7ee45021D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc021;
+extern VTBL_ENTRY _ZTI5cc021[];
+extern VTBL_ENTRY _ZTV5cc021[];
+extern Class_Descriptor cd_dd5021;
+extern VTBL_ENTRY _ZTI6dd5021[];
+extern VTBL_ENTRY _ZTV6dd5021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5021[];
+static Base_Class bases_ee45021[] = {
+ // 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_bb21, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc021, 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_dd5021, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45021[];
+extern void _ZN7ee450213barEv();
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY vtc_ee45021[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45021[0]),
+ (VTBL_ENTRY)&_ZN7ee450213barEv,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45021[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee45021[];
+extern void _ZN6dd50213barEv();
+static VTBL_ENTRY _tg__ZTV6dd5021__7ee45021[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5021[0]),
+ (VTBL_ENTRY)&_ZN6dd50213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb215cc021__6dd5021__7ee45021[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5021[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee45021[] = {
+ {&(_ZTV7ee45021[3]), 3,8},
+ {&(_tg__ZTV6dd5021__7ee45021[3]), 3,4},
+ {&(_tg__ZTV4bb215cc021__6dd5021__7ee45021[3]), 3,4},
+ {&(_ZTV7ee45021[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee45021[];
+extern VTBL_ENTRY _ZTV7ee45021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45021[];
+Class_Descriptor cd_ee45021 = { "ee45021", // class name
+ bases_ee45021, 4,
+ &(vtc_ee45021[0]), // expected_vtbl_contents
+ &(vtt_ee45021[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee45021),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45021),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45021),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 ee55021 : virtual dd5021 {
+ int e;
+ virtual void bar(); // _ZN7ee550213barEv
+ ~ee55021(); // tgen
+ ee55021(); // tgen
+};
+//SIG(1 ee55021) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 Fi} v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee55021 ::bar(){vfunc_called(this, "_ZN7ee550213barEv");}
+ee55021 ::~ee55021(){ note_dtor("ee55021", this);} // tgen
+ee55021 ::ee55021(){ note_ctor("ee55021", this);} // tgen
+
+static void Test_ee55021()
+{
+ extern Class_Descriptor cd_ee55021;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee55021, buf);
+ ee55021 *dp, &lv = *(dp=new (buf) ee55021());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee55021)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55021)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc021*), ABISELECT(32,16), "ee55021");
+ check_base_class_offset(lv, (bb21*)(cc021*), ABISELECT(32,16), "ee55021");
+ check_base_class_offset(lv, (cc021*)(dd5021*), ABISELECT(32,16), "ee55021");
+ check_base_class_offset(lv, (dd5021*), ABISELECT(16,8), "ee55021");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55021.e");
+ test_class_info(&lv, &cd_ee55021);
+ dp->~ee55021();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55021(Test_ee55021, "ee55021", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee55021C1Ev();
+extern void _ZN7ee55021D1Ev();
+Name_Map name_map_ee55021[] = {
+ NSPAIR(_ZN7ee55021C1Ev),
+ NSPAIR(_ZN7ee55021D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc021;
+extern VTBL_ENTRY _ZTI5cc021[];
+extern VTBL_ENTRY _ZTV5cc021[];
+extern Class_Descriptor cd_dd5021;
+extern VTBL_ENTRY _ZTI6dd5021[];
+extern VTBL_ENTRY _ZTV6dd5021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5021[];
+static Base_Class bases_ee55021[] = {
+ // 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_bb21, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc021, 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_dd5021, 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 _ZTI7ee55021[];
+extern void _ZN7ee550213barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee550213barEv,_ZTv0_n16_N7ee550213barEv)();
+extern void ABISELECT(_ZThn16_N7ee550213barEv,_ZThn8_N7ee550213barEv)() __attribute__((weak));
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY vtc_ee55021[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55021[0]),
+ (VTBL_ENTRY)&_ZN7ee550213barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55021[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee550213barEv,_ZTv0_n16_N7ee550213barEv),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55021[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee55021[];
+extern void _ZN6dd50213barEv();
+static VTBL_ENTRY _tg__ZTV6dd5021__7ee55021[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5021[0]),
+ (VTBL_ENTRY)&_ZN6dd50213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb215cc021__6dd5021__7ee55021[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5021[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee55021[] = {
+ {&(_ZTV7ee55021[4]), 4,14},
+ {&(_ZTV7ee55021[9]), 9,14},
+ {&(_ZTV7ee55021[13]), 13,14},
+ {&(_tg__ZTV6dd5021__7ee55021[3]), 3,4},
+ {&(_tg__ZTV4bb215cc021__6dd5021__7ee55021[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee55021[];
+extern VTBL_ENTRY _ZTV7ee55021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55021[];
+static VTBL_ENTRY alt_thunk_names448[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee550213barEv,_ZTv0_n16_N7ee550213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee550213barEv,_ZThn8_N7ee550213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55021 = { "ee55021", // class name
+ bases_ee55021, 4,
+ &(vtc_ee55021[0]), // expected_vtbl_contents
+ &(vtt_ee55021[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee55021),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55021),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55021),5, //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 ee65021 : dd5021 {
+ int e;
+ virtual void foo(); // _ZN7ee650213fooEv
+ virtual void bar(); // _ZN7ee650213barEv
+ ~ee65021(); // tgen
+ ee65021(); // tgen
+};
+//SIG(1 ee65021) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} v1 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65021 ::foo(){vfunc_called(this, "_ZN7ee650213fooEv");}
+void ee65021 ::bar(){vfunc_called(this, "_ZN7ee650213barEv");}
+ee65021 ::~ee65021(){ note_dtor("ee65021", this);} // tgen
+ee65021 ::ee65021(){ note_ctor("ee65021", this);} // tgen
+
+static void Test_ee65021()
+{
+ extern Class_Descriptor cd_ee65021;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee65021, buf);
+ ee65021 *dp, &lv = *(dp=new (buf) ee65021());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee65021)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65021)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc021*), ABISELECT(16,12), "ee65021");
+ check_base_class_offset(lv, (bb21*)(cc021*), ABISELECT(16,12), "ee65021");
+ check_base_class_offset(lv, (cc021*)(dd5021*), ABISELECT(16,12), "ee65021");
+ check_base_class_offset(lv, (dd5021*), 0, "ee65021");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65021.e");
+ test_class_info(&lv, &cd_ee65021);
+ dp->~ee65021();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65021(Test_ee65021, "ee65021", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee65021C1Ev();
+extern void _ZN7ee65021D1Ev();
+Name_Map name_map_ee65021[] = {
+ NSPAIR(_ZN7ee65021C1Ev),
+ NSPAIR(_ZN7ee65021D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc021;
+extern VTBL_ENTRY _ZTI5cc021[];
+extern VTBL_ENTRY _ZTV5cc021[];
+extern Class_Descriptor cd_dd5021;
+extern VTBL_ENTRY _ZTI6dd5021[];
+extern VTBL_ENTRY _ZTV6dd5021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5021[];
+static Base_Class bases_ee65021[] = {
+ // 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_bb21, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc021, 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_dd5021, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65021[];
+extern void _ZN7ee650213barEv();
+extern void _ZN7ee650213fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee650213fooEv,_ZTv0_n12_N7ee650213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee650213fooEv,_ZThn12_N7ee650213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65021[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65021[0]),
+ (VTBL_ENTRY)&_ZN7ee650213barEv,
+ (VTBL_ENTRY)&_ZN7ee650213fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65021[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee650213fooEv,_ZTv0_n12_N7ee650213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee65021[];
+extern void _ZN6dd50213barEv();
+static VTBL_ENTRY _tg__ZTV6dd5021__7ee65021[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5021[0]),
+ (VTBL_ENTRY)&_ZN6dd50213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb215cc021__6dd5021__7ee65021[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5021[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee65021[] = {
+ {&(_ZTV7ee65021[3]), 3,9},
+ {&(_tg__ZTV6dd5021__7ee65021[3]), 3,4},
+ {&(_tg__ZTV4bb215cc021__6dd5021__7ee65021[3]), 3,4},
+ {&(_ZTV7ee65021[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee65021[];
+extern VTBL_ENTRY _ZTV7ee65021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65021[];
+static VTBL_ENTRY alt_thunk_names449[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee650213fooEv,_ZTv0_n12_N7ee650213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee650213fooEv,_ZThn12_N7ee650213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65021 = { "ee65021", // class name
+ bases_ee65021, 4,
+ &(vtc_ee65021[0]), // expected_vtbl_contents
+ &(vtt_ee65021[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee65021),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65021),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65021),4, //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 ee75021 : virtual dd5021 {
+ int e;
+ virtual void foo(); // _ZN7ee750213fooEv
+ virtual void bar(); // _ZN7ee750213barEv
+ ~ee75021(); // tgen
+ ee75021(); // tgen
+};
+//SIG(1 ee75021) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} v1 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75021 ::foo(){vfunc_called(this, "_ZN7ee750213fooEv");}
+void ee75021 ::bar(){vfunc_called(this, "_ZN7ee750213barEv");}
+ee75021 ::~ee75021(){ note_dtor("ee75021", this);} // tgen
+ee75021 ::ee75021(){ note_ctor("ee75021", this);} // tgen
+
+static void Test_ee75021()
+{
+ extern Class_Descriptor cd_ee75021;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee75021, buf);
+ ee75021 *dp, &lv = *(dp=new (buf) ee75021());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee75021)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75021)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc021*), ABISELECT(32,16), "ee75021");
+ check_base_class_offset(lv, (bb21*)(cc021*), ABISELECT(32,16), "ee75021");
+ check_base_class_offset(lv, (cc021*)(dd5021*), ABISELECT(32,16), "ee75021");
+ check_base_class_offset(lv, (dd5021*), ABISELECT(16,8), "ee75021");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75021.e");
+ test_class_info(&lv, &cd_ee75021);
+ dp->~ee75021();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75021(Test_ee75021, "ee75021", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee75021C1Ev();
+extern void _ZN7ee75021D1Ev();
+Name_Map name_map_ee75021[] = {
+ NSPAIR(_ZN7ee75021C1Ev),
+ NSPAIR(_ZN7ee75021D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc021;
+extern VTBL_ENTRY _ZTI5cc021[];
+extern VTBL_ENTRY _ZTV5cc021[];
+extern Class_Descriptor cd_dd5021;
+extern VTBL_ENTRY _ZTI6dd5021[];
+extern VTBL_ENTRY _ZTV6dd5021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5021[];
+static Base_Class bases_ee75021[] = {
+ // 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_bb21, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc021, 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_dd5021, 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 _ZTI7ee75021[];
+extern void _ZN7ee750213fooEv();
+extern void _ZN7ee750213barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee750213barEv,_ZTv0_n16_N7ee750213barEv)();
+extern void ABISELECT(_ZThn16_N7ee750213barEv,_ZThn8_N7ee750213barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee750213fooEv,_ZTv0_n12_N7ee750213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee750213fooEv,_ZThn16_N7ee750213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75021[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75021[0]),
+ (VTBL_ENTRY)&_ZN7ee750213fooEv,
+ (VTBL_ENTRY)&_ZN7ee750213barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75021[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee750213barEv,_ZTv0_n16_N7ee750213barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75021[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee750213fooEv,_ZTv0_n12_N7ee750213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee75021[];
+extern void _ZN6dd50213barEv();
+static VTBL_ENTRY _tg__ZTV6dd5021__7ee75021[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5021[0]),
+ (VTBL_ENTRY)&_ZN6dd50213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb215cc021__6dd5021__7ee75021[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5021[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee75021[] = {
+ {&(_ZTV7ee75021[4]), 4,15},
+ {&(_ZTV7ee75021[10]), 10,15},
+ {&(_ZTV7ee75021[14]), 14,15},
+ {&(_tg__ZTV6dd5021__7ee75021[3]), 3,4},
+ {&(_tg__ZTV4bb215cc021__6dd5021__7ee75021[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee75021[];
+extern VTBL_ENTRY _ZTV7ee75021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75021[];
+static VTBL_ENTRY alt_thunk_names450[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee750213fooEv,_ZTv0_n12_N7ee750213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee750213fooEv,_ZThn16_N7ee750213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee750213barEv,_ZTv0_n16_N7ee750213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee750213barEv,_ZThn8_N7ee750213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75021 = { "ee75021", // class name
+ bases_ee75021, 4,
+ &(vtc_ee75021[0]), // expected_vtbl_contents
+ &(vtt_ee75021[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee75021),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75021),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75021),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names450,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd6021 : cc021 {
+ int d;
+ virtual void bar(); // _ZN6dd60213barEv
+ virtual void foo(); // _ZN6dd60213fooEv
+ ~dd6021(); // tgen
+ dd6021(); // tgen
+};
+//SIG(-1 dd6021) C1{ BC2{ BC3{ BC4{ v2 Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void dd6021 ::bar(){vfunc_called(this, "_ZN6dd60213barEv");}
+void dd6021 ::foo(){vfunc_called(this, "_ZN6dd60213fooEv");}
+dd6021 ::~dd6021(){ note_dtor("dd6021", this);} // tgen
+dd6021 ::dd6021(){ note_ctor("dd6021", this);} // tgen
+
+static void Test_dd6021()
+{
+ extern Class_Descriptor cd_dd6021;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd6021, buf);
+ dd6021 *dp, &lv = *(dp=new (buf) dd6021());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd6021)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6021)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc021*), 0, "dd6021");
+ check_base_class_offset(lv, (bb21*)(cc021*), 0, "dd6021");
+ check_base_class_offset(lv, (cc021*), 0, "dd6021");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd6021.d");
+ test_class_info(&lv, &cd_dd6021);
+ dp->~dd6021();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6021(Test_dd6021, "dd6021", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd6021C1Ev();
+extern void _ZN6dd6021D1Ev();
+Name_Map name_map_dd6021[] = {
+ NSPAIR(_ZN6dd6021C1Ev),
+ NSPAIR(_ZN6dd6021D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc021;
+extern VTBL_ENTRY _ZTI5cc021[];
+extern VTBL_ENTRY _ZTV5cc021[];
+static Base_Class bases_dd6021[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc021, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI6dd6021[];
+extern void _ZN6dd60213fooEv();
+extern void _ZN6dd60213barEv();
+static VTBL_ENTRY vtc_dd6021[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6021[0]),
+ (VTBL_ENTRY)&_ZN6dd60213fooEv,
+ (VTBL_ENTRY)&_ZN6dd60213barEv,
+};
+extern VTBL_ENTRY _ZTI6dd6021[];
+extern VTBL_ENTRY _ZTV6dd6021[];
+Class_Descriptor cd_dd6021 = { "dd6021", // class name
+ bases_dd6021, 3,
+ &(vtc_dd6021[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd6021),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6021),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 ee06021 : dd6021 {
+ int e;
+ ~ee06021(); // tgen
+ ee06021(); // tgen
+};
+//SIG(1 ee06021) C1{ BC2{ BC3{ BC4{ BC5{ v2 Fi} v2 Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee06021 ::~ee06021(){ note_dtor("ee06021", this);} // tgen
+ee06021 ::ee06021(){ note_ctor("ee06021", this);} // tgen
+
+static void Test_ee06021()
+{
+ extern Class_Descriptor cd_ee06021;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee06021, buf);
+ ee06021 *dp, &lv = *(dp=new (buf) ee06021());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee06021)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06021)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc021*)(dd6021*), 0, "ee06021");
+ check_base_class_offset(lv, (bb21*)(cc021*)(dd6021*), 0, "ee06021");
+ check_base_class_offset(lv, (cc021*)(dd6021*), 0, "ee06021");
+ check_base_class_offset(lv, (dd6021*), 0, "ee06021");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee06021.e");
+ test_class_info(&lv, &cd_ee06021);
+ dp->~ee06021();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06021(Test_ee06021, "ee06021", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee06021C1Ev();
+extern void _ZN7ee06021D1Ev();
+Name_Map name_map_ee06021[] = {
+ NSPAIR(_ZN7ee06021C1Ev),
+ NSPAIR(_ZN7ee06021D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc021;
+extern VTBL_ENTRY _ZTI5cc021[];
+extern VTBL_ENTRY _ZTV5cc021[];
+extern Class_Descriptor cd_dd6021;
+extern VTBL_ENTRY _ZTI6dd6021[];
+extern VTBL_ENTRY _ZTV6dd6021[];
+static Base_Class bases_ee06021[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc021, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6021, 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 _ZTI7ee06021[];
+extern void _ZN6dd60213fooEv();
+extern void _ZN6dd60213barEv();
+static VTBL_ENTRY vtc_ee06021[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06021[0]),
+ (VTBL_ENTRY)&_ZN6dd60213fooEv,
+ (VTBL_ENTRY)&_ZN6dd60213barEv,
+};
+extern VTBL_ENTRY _ZTI7ee06021[];
+extern VTBL_ENTRY _ZTV7ee06021[];
+Class_Descriptor cd_ee06021 = { "ee06021", // class name
+ bases_ee06021, 4,
+ &(vtc_ee06021[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee06021),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06021),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 ee16021 : virtual dd6021 {
+ int e;
+ ~ee16021(); // tgen
+ ee16021(); // tgen
+};
+//SIG(1 ee16021) C1{ VBC2{ BC3{ BC4{ BC5{ v2 Fi} v2 Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee16021 ::~ee16021(){ note_dtor("ee16021", this);} // tgen
+ee16021 ::ee16021(){ note_ctor("ee16021", this);} // tgen
+
+static void Test_ee16021()
+{
+ extern Class_Descriptor cd_ee16021;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee16021, buf);
+ ee16021 *dp, &lv = *(dp=new (buf) ee16021());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee16021)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16021)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc021*)(dd6021*), ABISELECT(16,8), "ee16021");
+ check_base_class_offset(lv, (bb21*)(cc021*)(dd6021*), ABISELECT(16,8), "ee16021");
+ check_base_class_offset(lv, (cc021*)(dd6021*), ABISELECT(16,8), "ee16021");
+ check_base_class_offset(lv, (dd6021*), ABISELECT(16,8), "ee16021");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16021.e");
+ test_class_info(&lv, &cd_ee16021);
+ dp->~ee16021();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16021(Test_ee16021, "ee16021", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee16021C1Ev();
+extern void _ZN7ee16021D1Ev();
+Name_Map name_map_ee16021[] = {
+ NSPAIR(_ZN7ee16021C1Ev),
+ NSPAIR(_ZN7ee16021D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc021;
+extern VTBL_ENTRY _ZTI5cc021[];
+extern VTBL_ENTRY _ZTV5cc021[];
+extern Class_Descriptor cd_dd6021;
+extern VTBL_ENTRY _ZTI6dd6021[];
+extern VTBL_ENTRY _ZTV6dd6021[];
+static Base_Class bases_ee16021[] = {
+ // 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_bb21, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc021, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6021, 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 _ZTI7ee16021[];
+extern void _ZN6dd60213fooEv();
+extern void _ZN6dd60213barEv();
+static VTBL_ENTRY vtc_ee16021[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16021[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16021[0]),
+ (VTBL_ENTRY)&_ZN6dd60213fooEv,
+ (VTBL_ENTRY)&_ZN6dd60213barEv,
+};
+extern VTBL_ENTRY _ZTV7ee16021[];
+static VTT_ENTRY vtt_ee16021[] = {
+ {&(_ZTV7ee16021[3]), 3,9},
+ {&(_ZTV7ee16021[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee16021[];
+extern VTBL_ENTRY _ZTV7ee16021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16021[];
+Class_Descriptor cd_ee16021 = { "ee16021", // class name
+ bases_ee16021, 4,
+ &(vtc_ee16021[0]), // expected_vtbl_contents
+ &(vtt_ee16021[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee16021),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16021),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16021),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 ee26021 : dd6021 {
+ int e;
+ virtual void foo(); // _ZN7ee260213fooEv
+ ~ee26021(); // tgen
+ ee26021(); // tgen
+};
+//SIG(1 ee26021) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} v1 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26021 ::foo(){vfunc_called(this, "_ZN7ee260213fooEv");}
+ee26021 ::~ee26021(){ note_dtor("ee26021", this);} // tgen
+ee26021 ::ee26021(){ note_ctor("ee26021", this);} // tgen
+
+static void Test_ee26021()
+{
+ extern Class_Descriptor cd_ee26021;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee26021, buf);
+ ee26021 *dp, &lv = *(dp=new (buf) ee26021());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee26021)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26021)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc021*)(dd6021*), 0, "ee26021");
+ check_base_class_offset(lv, (bb21*)(cc021*)(dd6021*), 0, "ee26021");
+ check_base_class_offset(lv, (cc021*)(dd6021*), 0, "ee26021");
+ check_base_class_offset(lv, (dd6021*), 0, "ee26021");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee26021.e");
+ test_class_info(&lv, &cd_ee26021);
+ dp->~ee26021();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26021(Test_ee26021, "ee26021", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee26021C1Ev();
+extern void _ZN7ee26021D1Ev();
+Name_Map name_map_ee26021[] = {
+ NSPAIR(_ZN7ee26021C1Ev),
+ NSPAIR(_ZN7ee26021D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc021;
+extern VTBL_ENTRY _ZTI5cc021[];
+extern VTBL_ENTRY _ZTV5cc021[];
+extern Class_Descriptor cd_dd6021;
+extern VTBL_ENTRY _ZTI6dd6021[];
+extern VTBL_ENTRY _ZTV6dd6021[];
+static Base_Class bases_ee26021[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc021, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6021, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee26021[];
+extern void _ZN7ee260213fooEv();
+extern void _ZN6dd60213barEv();
+static VTBL_ENTRY vtc_ee26021[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26021[0]),
+ (VTBL_ENTRY)&_ZN7ee260213fooEv,
+ (VTBL_ENTRY)&_ZN6dd60213barEv,
+};
+extern VTBL_ENTRY _ZTI7ee26021[];
+extern VTBL_ENTRY _ZTV7ee26021[];
+Class_Descriptor cd_ee26021 = { "ee26021", // class name
+ bases_ee26021, 4,
+ &(vtc_ee26021[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee26021),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26021),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 ee36021 : virtual dd6021 {
+ int e;
+ virtual void foo(); // _ZN7ee360213fooEv
+ ~ee36021(); // tgen
+ ee36021(); // tgen
+};
+//SIG(1 ee36021) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} v1 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36021 ::foo(){vfunc_called(this, "_ZN7ee360213fooEv");}
+ee36021 ::~ee36021(){ note_dtor("ee36021", this);} // tgen
+ee36021 ::ee36021(){ note_ctor("ee36021", this);} // tgen
+
+static void Test_ee36021()
+{
+ extern Class_Descriptor cd_ee36021;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee36021, buf);
+ ee36021 *dp, &lv = *(dp=new (buf) ee36021());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee36021)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36021)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc021*)(dd6021*), ABISELECT(16,8), "ee36021");
+ check_base_class_offset(lv, (bb21*)(cc021*)(dd6021*), ABISELECT(16,8), "ee36021");
+ check_base_class_offset(lv, (cc021*)(dd6021*), ABISELECT(16,8), "ee36021");
+ check_base_class_offset(lv, (dd6021*), ABISELECT(16,8), "ee36021");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36021.e");
+ test_class_info(&lv, &cd_ee36021);
+ dp->~ee36021();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36021(Test_ee36021, "ee36021", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee36021C1Ev();
+extern void _ZN7ee36021D1Ev();
+Name_Map name_map_ee36021[] = {
+ NSPAIR(_ZN7ee36021C1Ev),
+ NSPAIR(_ZN7ee36021D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc021;
+extern VTBL_ENTRY _ZTI5cc021[];
+extern VTBL_ENTRY _ZTV5cc021[];
+extern Class_Descriptor cd_dd6021;
+extern VTBL_ENTRY _ZTI6dd6021[];
+extern VTBL_ENTRY _ZTV6dd6021[];
+static Base_Class bases_ee36021[] = {
+ // 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_bb21, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc021, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6021, 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 _ZTI7ee36021[];
+extern void _ZN7ee360213fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee360213fooEv,_ZTv0_n12_N7ee360213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee360213fooEv,_ZThn8_N7ee360213fooEv)() __attribute__((weak));
+extern void _ZN6dd60213barEv();
+static VTBL_ENTRY vtc_ee36021[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36021[0]),
+ (VTBL_ENTRY)&_ZN7ee360213fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36021[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee360213fooEv,_ZTv0_n12_N7ee360213fooEv),
+ (VTBL_ENTRY)&_ZN6dd60213barEv,
+};
+extern VTBL_ENTRY _ZTV7ee36021[];
+static VTT_ENTRY vtt_ee36021[] = {
+ {&(_ZTV7ee36021[3]), 3,10},
+ {&(_ZTV7ee36021[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee36021[];
+extern VTBL_ENTRY _ZTV7ee36021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36021[];
+static VTBL_ENTRY alt_thunk_names451[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee360213fooEv,_ZTv0_n12_N7ee360213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee360213fooEv,_ZThn8_N7ee360213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36021 = { "ee36021", // class name
+ bases_ee36021, 4,
+ &(vtc_ee36021[0]), // expected_vtbl_contents
+ &(vtt_ee36021[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee36021),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36021),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36021),2, //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 ee46021 : dd6021 {
+ int e;
+ virtual void bar(); // _ZN7ee460213barEv
+ ~ee46021(); // tgen
+ ee46021(); // tgen
+};
+//SIG(1 ee46021) C1{ BC2{ BC3{ BC4{ BC5{ v2 Fi} v2 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46021 ::bar(){vfunc_called(this, "_ZN7ee460213barEv");}
+ee46021 ::~ee46021(){ note_dtor("ee46021", this);} // tgen
+ee46021 ::ee46021(){ note_ctor("ee46021", this);} // tgen
+
+static void Test_ee46021()
+{
+ extern Class_Descriptor cd_ee46021;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee46021, buf);
+ ee46021 *dp, &lv = *(dp=new (buf) ee46021());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee46021)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46021)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc021*)(dd6021*), 0, "ee46021");
+ check_base_class_offset(lv, (bb21*)(cc021*)(dd6021*), 0, "ee46021");
+ check_base_class_offset(lv, (cc021*)(dd6021*), 0, "ee46021");
+ check_base_class_offset(lv, (dd6021*), 0, "ee46021");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee46021.e");
+ test_class_info(&lv, &cd_ee46021);
+ dp->~ee46021();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46021(Test_ee46021, "ee46021", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee46021C1Ev();
+extern void _ZN7ee46021D1Ev();
+Name_Map name_map_ee46021[] = {
+ NSPAIR(_ZN7ee46021C1Ev),
+ NSPAIR(_ZN7ee46021D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc021;
+extern VTBL_ENTRY _ZTI5cc021[];
+extern VTBL_ENTRY _ZTV5cc021[];
+extern Class_Descriptor cd_dd6021;
+extern VTBL_ENTRY _ZTI6dd6021[];
+extern VTBL_ENTRY _ZTV6dd6021[];
+static Base_Class bases_ee46021[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc021, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6021, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee46021[];
+extern void _ZN6dd60213fooEv();
+extern void _ZN7ee460213barEv();
+static VTBL_ENTRY vtc_ee46021[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46021[0]),
+ (VTBL_ENTRY)&_ZN6dd60213fooEv,
+ (VTBL_ENTRY)&_ZN7ee460213barEv,
+};
+extern VTBL_ENTRY _ZTI7ee46021[];
+extern VTBL_ENTRY _ZTV7ee46021[];
+Class_Descriptor cd_ee46021 = { "ee46021", // class name
+ bases_ee46021, 4,
+ &(vtc_ee46021[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee46021),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46021),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 ee56021 : virtual dd6021 {
+ int e;
+ virtual void bar(); // _ZN7ee560213barEv
+ ~ee56021(); // tgen
+ ee56021(); // tgen
+};
+//SIG(1 ee56021) C1{ VBC2{ BC3{ BC4{ BC5{ v2 Fi} v2 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56021 ::bar(){vfunc_called(this, "_ZN7ee560213barEv");}
+ee56021 ::~ee56021(){ note_dtor("ee56021", this);} // tgen
+ee56021 ::ee56021(){ note_ctor("ee56021", this);} // tgen
+
+static void Test_ee56021()
+{
+ extern Class_Descriptor cd_ee56021;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee56021, buf);
+ ee56021 *dp, &lv = *(dp=new (buf) ee56021());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee56021)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56021)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc021*)(dd6021*), ABISELECT(16,8), "ee56021");
+ check_base_class_offset(lv, (bb21*)(cc021*)(dd6021*), ABISELECT(16,8), "ee56021");
+ check_base_class_offset(lv, (cc021*)(dd6021*), ABISELECT(16,8), "ee56021");
+ check_base_class_offset(lv, (dd6021*), ABISELECT(16,8), "ee56021");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56021.e");
+ test_class_info(&lv, &cd_ee56021);
+ dp->~ee56021();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56021(Test_ee56021, "ee56021", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee56021C1Ev();
+extern void _ZN7ee56021D1Ev();
+Name_Map name_map_ee56021[] = {
+ NSPAIR(_ZN7ee56021C1Ev),
+ NSPAIR(_ZN7ee56021D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc021;
+extern VTBL_ENTRY _ZTI5cc021[];
+extern VTBL_ENTRY _ZTV5cc021[];
+extern Class_Descriptor cd_dd6021;
+extern VTBL_ENTRY _ZTI6dd6021[];
+extern VTBL_ENTRY _ZTV6dd6021[];
+static Base_Class bases_ee56021[] = {
+ // 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_bb21, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc021, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6021, 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 _ZTI7ee56021[];
+extern void _ZN7ee560213barEv();
+extern void _ZN6dd60213fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee560213barEv,_ZTv0_n16_N7ee560213barEv)();
+extern void ABISELECT(_ZThn16_N7ee560213barEv,_ZThn8_N7ee560213barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56021[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56021[0]),
+ (VTBL_ENTRY)&_ZN7ee560213barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56021[0]),
+ (VTBL_ENTRY)&_ZN6dd60213fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee560213barEv,_ZTv0_n16_N7ee560213barEv),
+};
+extern VTBL_ENTRY _ZTV7ee56021[];
+static VTT_ENTRY vtt_ee56021[] = {
+ {&(_ZTV7ee56021[3]), 3,10},
+ {&(_ZTV7ee56021[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee56021[];
+extern VTBL_ENTRY _ZTV7ee56021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56021[];
+static VTBL_ENTRY alt_thunk_names452[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee560213barEv,_ZTv0_n16_N7ee560213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee560213barEv,_ZThn8_N7ee560213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56021 = { "ee56021", // class name
+ bases_ee56021, 4,
+ &(vtc_ee56021[0]), // expected_vtbl_contents
+ &(vtt_ee56021[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee56021),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56021),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56021),2, //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 ee66021 : dd6021 {
+ int e;
+ virtual void foo(); // _ZN7ee660213fooEv
+ virtual void bar(); // _ZN7ee660213barEv
+ ~ee66021(); // tgen
+ ee66021(); // tgen
+};
+//SIG(1 ee66021) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} v1 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66021 ::foo(){vfunc_called(this, "_ZN7ee660213fooEv");}
+void ee66021 ::bar(){vfunc_called(this, "_ZN7ee660213barEv");}
+ee66021 ::~ee66021(){ note_dtor("ee66021", this);} // tgen
+ee66021 ::ee66021(){ note_ctor("ee66021", this);} // tgen
+
+static void Test_ee66021()
+{
+ extern Class_Descriptor cd_ee66021;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee66021, buf);
+ ee66021 *dp, &lv = *(dp=new (buf) ee66021());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee66021)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66021)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc021*)(dd6021*), 0, "ee66021");
+ check_base_class_offset(lv, (bb21*)(cc021*)(dd6021*), 0, "ee66021");
+ check_base_class_offset(lv, (cc021*)(dd6021*), 0, "ee66021");
+ check_base_class_offset(lv, (dd6021*), 0, "ee66021");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee66021.e");
+ test_class_info(&lv, &cd_ee66021);
+ dp->~ee66021();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66021(Test_ee66021, "ee66021", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee66021C1Ev();
+extern void _ZN7ee66021D1Ev();
+Name_Map name_map_ee66021[] = {
+ NSPAIR(_ZN7ee66021C1Ev),
+ NSPAIR(_ZN7ee66021D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc021;
+extern VTBL_ENTRY _ZTI5cc021[];
+extern VTBL_ENTRY _ZTV5cc021[];
+extern Class_Descriptor cd_dd6021;
+extern VTBL_ENTRY _ZTI6dd6021[];
+extern VTBL_ENTRY _ZTV6dd6021[];
+static Base_Class bases_ee66021[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc021, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6021, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee66021[];
+extern void _ZN7ee660213fooEv();
+extern void _ZN7ee660213barEv();
+static VTBL_ENTRY vtc_ee66021[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66021[0]),
+ (VTBL_ENTRY)&_ZN7ee660213fooEv,
+ (VTBL_ENTRY)&_ZN7ee660213barEv,
+};
+extern VTBL_ENTRY _ZTI7ee66021[];
+extern VTBL_ENTRY _ZTV7ee66021[];
+Class_Descriptor cd_ee66021 = { "ee66021", // class name
+ bases_ee66021, 4,
+ &(vtc_ee66021[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee66021),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66021),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 ee76021 : virtual dd6021 {
+ int e;
+ virtual void foo(); // _ZN7ee760213fooEv
+ virtual void bar(); // _ZN7ee760213barEv
+ ~ee76021(); // tgen
+ ee76021(); // tgen
+};
+//SIG(1 ee76021) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} v1 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76021 ::foo(){vfunc_called(this, "_ZN7ee760213fooEv");}
+void ee76021 ::bar(){vfunc_called(this, "_ZN7ee760213barEv");}
+ee76021 ::~ee76021(){ note_dtor("ee76021", this);} // tgen
+ee76021 ::ee76021(){ note_ctor("ee76021", this);} // tgen
+
+static void Test_ee76021()
+{
+ extern Class_Descriptor cd_ee76021;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee76021, buf);
+ ee76021 *dp, &lv = *(dp=new (buf) ee76021());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee76021)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76021)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc021*)(dd6021*), ABISELECT(16,8), "ee76021");
+ check_base_class_offset(lv, (bb21*)(cc021*)(dd6021*), ABISELECT(16,8), "ee76021");
+ check_base_class_offset(lv, (cc021*)(dd6021*), ABISELECT(16,8), "ee76021");
+ check_base_class_offset(lv, (dd6021*), ABISELECT(16,8), "ee76021");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76021.e");
+ test_class_info(&lv, &cd_ee76021);
+ dp->~ee76021();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76021(Test_ee76021, "ee76021", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee76021C1Ev();
+extern void _ZN7ee76021D1Ev();
+Name_Map name_map_ee76021[] = {
+ NSPAIR(_ZN7ee76021C1Ev),
+ NSPAIR(_ZN7ee76021D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc021;
+extern VTBL_ENTRY _ZTI5cc021[];
+extern VTBL_ENTRY _ZTV5cc021[];
+extern Class_Descriptor cd_dd6021;
+extern VTBL_ENTRY _ZTI6dd6021[];
+extern VTBL_ENTRY _ZTV6dd6021[];
+static Base_Class bases_ee76021[] = {
+ // 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_bb21, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc021, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6021, 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 _ZTI7ee76021[];
+extern void _ZN7ee760213fooEv();
+extern void _ZN7ee760213barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee760213fooEv,_ZTv0_n12_N7ee760213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee760213fooEv,_ZThn8_N7ee760213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee760213barEv,_ZTv0_n16_N7ee760213barEv)();
+extern void ABISELECT(_ZThn16_N7ee760213barEv,_ZThn8_N7ee760213barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76021[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76021[0]),
+ (VTBL_ENTRY)&_ZN7ee760213fooEv,
+ (VTBL_ENTRY)&_ZN7ee760213barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76021[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee760213fooEv,_ZTv0_n12_N7ee760213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee760213barEv,_ZTv0_n16_N7ee760213barEv),
+};
+extern VTBL_ENTRY _ZTV7ee76021[];
+static VTT_ENTRY vtt_ee76021[] = {
+ {&(_ZTV7ee76021[3]), 3,11},
+ {&(_ZTV7ee76021[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee76021[];
+extern VTBL_ENTRY _ZTV7ee76021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76021[];
+static VTBL_ENTRY alt_thunk_names453[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee760213barEv,_ZTv0_n16_N7ee760213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee760213barEv,_ZThn8_N7ee760213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee760213fooEv,_ZTv0_n12_N7ee760213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee760213fooEv,_ZThn8_N7ee760213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76021 = { "ee76021", // class name
+ bases_ee76021, 4,
+ &(vtc_ee76021[0]), // expected_vtbl_contents
+ &(vtt_ee76021[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee76021),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76021),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76021),2, //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 dd7021 : virtual cc021 {
+ int d;
+ virtual void bar(); // _ZN6dd70213barEv
+ virtual void foo(); // _ZN6dd70213fooEv
+ ~dd7021(); // tgen
+ dd7021(); // tgen
+};
+//SIG(-1 dd7021) C1{ VBC2{ BC3{ BC4{ v2 Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void dd7021 ::bar(){vfunc_called(this, "_ZN6dd70213barEv");}
+void dd7021 ::foo(){vfunc_called(this, "_ZN6dd70213fooEv");}
+dd7021 ::~dd7021(){ note_dtor("dd7021", this);} // tgen
+dd7021 ::dd7021(){ note_ctor("dd7021", this);} // tgen
+
+static void Test_dd7021()
+{
+ extern Class_Descriptor cd_dd7021;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd7021, buf);
+ dd7021 *dp, &lv = *(dp=new (buf) dd7021());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd7021)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7021)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc021*), ABISELECT(16,8), "dd7021");
+ check_base_class_offset(lv, (bb21*)(cc021*), ABISELECT(16,8), "dd7021");
+ check_base_class_offset(lv, (cc021*), ABISELECT(16,8), "dd7021");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7021.d");
+ test_class_info(&lv, &cd_dd7021);
+ dp->~dd7021();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7021(Test_dd7021, "dd7021", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd7021C1Ev();
+extern void _ZN6dd7021D1Ev();
+Name_Map name_map_dd7021[] = {
+ NSPAIR(_ZN6dd7021C1Ev),
+ NSPAIR(_ZN6dd7021D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc021;
+extern VTBL_ENTRY _ZTI5cc021[];
+extern VTBL_ENTRY _ZTV5cc021[];
+static Base_Class bases_dd7021[] = {
+ // 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_bb21, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc021, 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 _ZTI6dd7021[];
+extern void _ZN6dd70213barEv();
+extern void _ZN6dd70213fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd70213fooEv,_ZTv0_n12_N6dd70213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70213fooEv,_ZThn8_N6dd70213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7021[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7021[0]),
+ (VTBL_ENTRY)&_ZN6dd70213barEv,
+ (VTBL_ENTRY)&_ZN6dd70213fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7021[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70213fooEv,_ZTv0_n12_N6dd70213fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd7021[];
+static VTT_ENTRY vtt_dd7021[] = {
+ {&(_ZTV6dd7021[3]), 3,9},
+ {&(_ZTV6dd7021[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI6dd7021[];
+extern VTBL_ENTRY _ZTV6dd7021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7021[];
+static VTBL_ENTRY alt_thunk_names454[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70213fooEv,_ZTv0_n12_N6dd70213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70213fooEv,_ZThn8_N6dd70213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7021 = { "dd7021", // class name
+ bases_dd7021, 3,
+ &(vtc_dd7021[0]), // expected_vtbl_contents
+ &(vtt_dd7021[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd7021),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7021),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7021),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names454,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07021 : dd7021 {
+ int e;
+ ~ee07021(); // tgen
+ ee07021(); // tgen
+};
+//SIG(1 ee07021) C1{ BC2{ VBC3{ BC4{ BC5{ v2 Fi} v2 Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee07021 ::~ee07021(){ note_dtor("ee07021", this);} // tgen
+ee07021 ::ee07021(){ note_ctor("ee07021", this);} // tgen
+
+static void Test_ee07021()
+{
+ extern Class_Descriptor cd_ee07021;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee07021, buf);
+ ee07021 *dp, &lv = *(dp=new (buf) ee07021());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee07021)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07021)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc021*), ABISELECT(16,12), "ee07021");
+ check_base_class_offset(lv, (bb21*)(cc021*), ABISELECT(16,12), "ee07021");
+ check_base_class_offset(lv, (cc021*)(dd7021*), ABISELECT(16,12), "ee07021");
+ check_base_class_offset(lv, (dd7021*), 0, "ee07021");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07021.e");
+ test_class_info(&lv, &cd_ee07021);
+ dp->~ee07021();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07021(Test_ee07021, "ee07021", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee07021C1Ev();
+extern void _ZN7ee07021D1Ev();
+Name_Map name_map_ee07021[] = {
+ NSPAIR(_ZN7ee07021C1Ev),
+ NSPAIR(_ZN7ee07021D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc021;
+extern VTBL_ENTRY _ZTI5cc021[];
+extern VTBL_ENTRY _ZTV5cc021[];
+extern Class_Descriptor cd_dd7021;
+extern VTBL_ENTRY _ZTI6dd7021[];
+extern VTBL_ENTRY _ZTV6dd7021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7021[];
+static Base_Class bases_ee07021[] = {
+ // 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_bb21, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc021, 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_dd7021, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07021[];
+extern void _ZN6dd70213barEv();
+extern void _ZN6dd70213fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd70213fooEv,_ZTv0_n12_N6dd70213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70213fooEv,_ZThn12_N6dd70213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07021[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07021[0]),
+ (VTBL_ENTRY)&_ZN6dd70213barEv,
+ (VTBL_ENTRY)&_ZN6dd70213fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07021[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70213fooEv,_ZTv0_n12_N6dd70213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee07021[];
+extern void _ZN6dd70213barEv();
+extern void _ZN6dd70213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7021__7ee07021[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7021[0]),
+ (VTBL_ENTRY)&_ZN6dd70213barEv,
+ (VTBL_ENTRY)&_ZN6dd70213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd70213fooEv,_ZTv0_n12_N6dd70213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70213fooEv,_ZThn12_N6dd70213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb215cc021__6dd7021__7ee07021[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7021[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70213fooEv,_ZTv0_n12_N6dd70213fooEv),
+};
+static VTT_ENTRY vtt_ee07021[] = {
+ {&(_ZTV7ee07021[3]), 3,9},
+ {&(_tg__ZTV6dd7021__7ee07021[3]), 3,5},
+ {&(_tg__ZTV4bb215cc021__6dd7021__7ee07021[3]), 3,4},
+ {&(_ZTV7ee07021[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee07021[];
+extern VTBL_ENTRY _ZTV7ee07021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07021[];
+static VTBL_ENTRY alt_thunk_names455[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70213fooEv,_ZTv0_n12_N6dd70213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70213fooEv,_ZThn12_N6dd70213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70213fooEv,_ZThn12_N6dd70213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07021 = { "ee07021", // class name
+ bases_ee07021, 4,
+ &(vtc_ee07021[0]), // expected_vtbl_contents
+ &(vtt_ee07021[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee07021),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07021),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07021),4, //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 ee17021 : virtual dd7021 {
+ int e;
+ ~ee17021(); // tgen
+ ee17021(); // tgen
+};
+//SIG(1 ee17021) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 Fi} v2 Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee17021 ::~ee17021(){ note_dtor("ee17021", this);} // tgen
+ee17021 ::ee17021(){ note_ctor("ee17021", this);} // tgen
+
+static void Test_ee17021()
+{
+ extern Class_Descriptor cd_ee17021;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee17021, buf);
+ ee17021 *dp, &lv = *(dp=new (buf) ee17021());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee17021)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17021)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc021*), ABISELECT(32,16), "ee17021");
+ check_base_class_offset(lv, (bb21*)(cc021*), ABISELECT(32,16), "ee17021");
+ check_base_class_offset(lv, (cc021*)(dd7021*), ABISELECT(32,16), "ee17021");
+ check_base_class_offset(lv, (dd7021*), ABISELECT(16,8), "ee17021");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17021.e");
+ test_class_info(&lv, &cd_ee17021);
+ dp->~ee17021();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17021(Test_ee17021, "ee17021", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee17021C1Ev();
+extern void _ZN7ee17021D1Ev();
+Name_Map name_map_ee17021[] = {
+ NSPAIR(_ZN7ee17021C1Ev),
+ NSPAIR(_ZN7ee17021D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc021;
+extern VTBL_ENTRY _ZTI5cc021[];
+extern VTBL_ENTRY _ZTV5cc021[];
+extern Class_Descriptor cd_dd7021;
+extern VTBL_ENTRY _ZTI6dd7021[];
+extern VTBL_ENTRY _ZTV6dd7021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7021[];
+static Base_Class bases_ee17021[] = {
+ // 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_bb21, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc021, 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_dd7021, 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 _ZTI7ee17021[];
+extern void _ZN6dd70213barEv();
+extern void _ZN6dd70213fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd70213fooEv,_ZTv0_n12_N6dd70213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70213fooEv,_ZThn8_N6dd70213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17021[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17021[0]),
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17021[0]),
+ (VTBL_ENTRY)&_ZN6dd70213barEv,
+ (VTBL_ENTRY)&_ZN6dd70213fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17021[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70213fooEv,_ZTv0_n12_N6dd70213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee17021[];
+extern void _ZN6dd70213barEv();
+extern void _ZN6dd70213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7021__7ee17021[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7021[0]),
+ (VTBL_ENTRY)&_ZN6dd70213barEv,
+ (VTBL_ENTRY)&_ZN6dd70213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd70213fooEv,_ZTv0_n12_N6dd70213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70213fooEv,_ZThn8_N6dd70213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb215cc021__6dd7021__7ee17021[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7021[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70213fooEv,_ZTv0_n12_N6dd70213fooEv),
+};
+static VTT_ENTRY vtt_ee17021[] = {
+ {&(_ZTV7ee17021[4]), 4,15},
+ {&(_ZTV7ee17021[9]), 9,15},
+ {&(_ZTV7ee17021[14]), 14,15},
+ {&(_tg__ZTV6dd7021__7ee17021[3]), 3,5},
+ {&(_tg__ZTV4bb215cc021__6dd7021__7ee17021[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee17021[];
+extern VTBL_ENTRY _ZTV7ee17021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17021[];
+static VTBL_ENTRY alt_thunk_names456[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70213fooEv,_ZTv0_n12_N6dd70213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70213fooEv,_ZThn8_N6dd70213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70213fooEv,_ZThn8_N6dd70213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17021 = { "ee17021", // class name
+ bases_ee17021, 4,
+ &(vtc_ee17021[0]), // expected_vtbl_contents
+ &(vtt_ee17021[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee17021),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17021),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17021),5, //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 ee27021 : dd7021 {
+ int e;
+ virtual void foo(); // _ZN7ee270213fooEv
+ ~ee27021(); // tgen
+ ee27021(); // tgen
+};
+//SIG(1 ee27021) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} v1 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27021 ::foo(){vfunc_called(this, "_ZN7ee270213fooEv");}
+ee27021 ::~ee27021(){ note_dtor("ee27021", this);} // tgen
+ee27021 ::ee27021(){ note_ctor("ee27021", this);} // tgen
+
+static void Test_ee27021()
+{
+ extern Class_Descriptor cd_ee27021;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee27021, buf);
+ ee27021 *dp, &lv = *(dp=new (buf) ee27021());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee27021)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27021)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc021*), ABISELECT(16,12), "ee27021");
+ check_base_class_offset(lv, (bb21*)(cc021*), ABISELECT(16,12), "ee27021");
+ check_base_class_offset(lv, (cc021*)(dd7021*), ABISELECT(16,12), "ee27021");
+ check_base_class_offset(lv, (dd7021*), 0, "ee27021");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27021.e");
+ test_class_info(&lv, &cd_ee27021);
+ dp->~ee27021();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27021(Test_ee27021, "ee27021", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee27021C1Ev();
+extern void _ZN7ee27021D1Ev();
+Name_Map name_map_ee27021[] = {
+ NSPAIR(_ZN7ee27021C1Ev),
+ NSPAIR(_ZN7ee27021D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc021;
+extern VTBL_ENTRY _ZTI5cc021[];
+extern VTBL_ENTRY _ZTV5cc021[];
+extern Class_Descriptor cd_dd7021;
+extern VTBL_ENTRY _ZTI6dd7021[];
+extern VTBL_ENTRY _ZTV6dd7021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7021[];
+static Base_Class bases_ee27021[] = {
+ // 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_bb21, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc021, 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_dd7021, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27021[];
+extern void _ZN6dd70213barEv();
+extern void _ZN7ee270213fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee270213fooEv,_ZTv0_n12_N7ee270213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee270213fooEv,_ZThn12_N7ee270213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27021[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27021[0]),
+ (VTBL_ENTRY)&_ZN6dd70213barEv,
+ (VTBL_ENTRY)&_ZN7ee270213fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27021[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee270213fooEv,_ZTv0_n12_N7ee270213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee27021[];
+extern void _ZN6dd70213barEv();
+extern void _ZN6dd70213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7021__7ee27021[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7021[0]),
+ (VTBL_ENTRY)&_ZN6dd70213barEv,
+ (VTBL_ENTRY)&_ZN6dd70213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd70213fooEv,_ZTv0_n12_N6dd70213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70213fooEv,_ZThn12_N6dd70213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb215cc021__6dd7021__7ee27021[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7021[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70213fooEv,_ZTv0_n12_N6dd70213fooEv),
+};
+static VTT_ENTRY vtt_ee27021[] = {
+ {&(_ZTV7ee27021[3]), 3,9},
+ {&(_tg__ZTV6dd7021__7ee27021[3]), 3,5},
+ {&(_tg__ZTV4bb215cc021__6dd7021__7ee27021[3]), 3,4},
+ {&(_ZTV7ee27021[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee27021[];
+extern VTBL_ENTRY _ZTV7ee27021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27021[];
+static VTBL_ENTRY alt_thunk_names457[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70213fooEv,_ZTv0_n12_N6dd70213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70213fooEv,_ZThn12_N6dd70213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee270213fooEv,_ZTv0_n12_N7ee270213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee270213fooEv,_ZThn12_N7ee270213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27021 = { "ee27021", // class name
+ bases_ee27021, 4,
+ &(vtc_ee27021[0]), // expected_vtbl_contents
+ &(vtt_ee27021[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee27021),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27021),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27021),4, //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 ee37021 : virtual dd7021 {
+ int e;
+ virtual void foo(); // _ZN7ee370213fooEv
+ ~ee37021(); // tgen
+ ee37021(); // tgen
+};
+//SIG(1 ee37021) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} v1 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37021 ::foo(){vfunc_called(this, "_ZN7ee370213fooEv");}
+ee37021 ::~ee37021(){ note_dtor("ee37021", this);} // tgen
+ee37021 ::ee37021(){ note_ctor("ee37021", this);} // tgen
+
+static void Test_ee37021()
+{
+ extern Class_Descriptor cd_ee37021;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee37021, buf);
+ ee37021 *dp, &lv = *(dp=new (buf) ee37021());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee37021)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37021)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc021*), ABISELECT(32,16), "ee37021");
+ check_base_class_offset(lv, (bb21*)(cc021*), ABISELECT(32,16), "ee37021");
+ check_base_class_offset(lv, (cc021*)(dd7021*), ABISELECT(32,16), "ee37021");
+ check_base_class_offset(lv, (dd7021*), ABISELECT(16,8), "ee37021");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37021.e");
+ test_class_info(&lv, &cd_ee37021);
+ dp->~ee37021();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37021(Test_ee37021, "ee37021", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee37021C1Ev();
+extern void _ZN7ee37021D1Ev();
+Name_Map name_map_ee37021[] = {
+ NSPAIR(_ZN7ee37021C1Ev),
+ NSPAIR(_ZN7ee37021D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc021;
+extern VTBL_ENTRY _ZTI5cc021[];
+extern VTBL_ENTRY _ZTV5cc021[];
+extern Class_Descriptor cd_dd7021;
+extern VTBL_ENTRY _ZTI6dd7021[];
+extern VTBL_ENTRY _ZTV6dd7021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7021[];
+static Base_Class bases_ee37021[] = {
+ // 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_bb21, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc021, 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_dd7021, 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 _ZTI7ee37021[];
+extern void _ZN7ee370213fooEv();
+extern void _ZN6dd70213barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee370213fooEv,_ZTv0_n20_N7ee370213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee370213fooEv,_ZThn8_N7ee370213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee370213fooEv,_ZTv0_n12_N7ee370213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee370213fooEv,_ZThn16_N7ee370213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37021[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37021[0]),
+ (VTBL_ENTRY)&_ZN7ee370213fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37021[0]),
+ (VTBL_ENTRY)&_ZN6dd70213barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee370213fooEv,_ZTv0_n20_N7ee370213fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37021[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee370213fooEv,_ZTv0_n12_N7ee370213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee37021[];
+extern void _ZN6dd70213barEv();
+extern void _ZN6dd70213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7021__7ee37021[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7021[0]),
+ (VTBL_ENTRY)&_ZN6dd70213barEv,
+ (VTBL_ENTRY)&_ZN6dd70213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd70213fooEv,_ZTv0_n12_N6dd70213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70213fooEv,_ZThn8_N6dd70213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb215cc021__6dd7021__7ee37021[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7021[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70213fooEv,_ZTv0_n12_N6dd70213fooEv),
+};
+static VTT_ENTRY vtt_ee37021[] = {
+ {&(_ZTV7ee37021[4]), 4,16},
+ {&(_ZTV7ee37021[10]), 10,16},
+ {&(_ZTV7ee37021[15]), 15,16},
+ {&(_tg__ZTV6dd7021__7ee37021[3]), 3,5},
+ {&(_tg__ZTV4bb215cc021__6dd7021__7ee37021[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee37021[];
+extern VTBL_ENTRY _ZTV7ee37021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37021[];
+static VTBL_ENTRY alt_thunk_names458[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70213fooEv,_ZTv0_n12_N6dd70213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70213fooEv,_ZThn8_N6dd70213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee370213fooEv,_ZTv0_n12_N7ee370213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee370213fooEv,_ZThn16_N7ee370213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee370213fooEv,_ZTv0_n20_N7ee370213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee370213fooEv,_ZThn8_N7ee370213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37021 = { "ee37021", // class name
+ bases_ee37021, 4,
+ &(vtc_ee37021[0]), // expected_vtbl_contents
+ &(vtt_ee37021[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee37021),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37021),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37021),5, //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 ee47021 : dd7021 {
+ int e;
+ virtual void bar(); // _ZN7ee470213barEv
+ ~ee47021(); // tgen
+ ee47021(); // tgen
+};
+//SIG(1 ee47021) C1{ BC2{ VBC3{ BC4{ BC5{ v2 Fi} v2 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47021 ::bar(){vfunc_called(this, "_ZN7ee470213barEv");}
+ee47021 ::~ee47021(){ note_dtor("ee47021", this);} // tgen
+ee47021 ::ee47021(){ note_ctor("ee47021", this);} // tgen
+
+static void Test_ee47021()
+{
+ extern Class_Descriptor cd_ee47021;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee47021, buf);
+ ee47021 *dp, &lv = *(dp=new (buf) ee47021());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee47021)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47021)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc021*), ABISELECT(16,12), "ee47021");
+ check_base_class_offset(lv, (bb21*)(cc021*), ABISELECT(16,12), "ee47021");
+ check_base_class_offset(lv, (cc021*)(dd7021*), ABISELECT(16,12), "ee47021");
+ check_base_class_offset(lv, (dd7021*), 0, "ee47021");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47021.e");
+ test_class_info(&lv, &cd_ee47021);
+ dp->~ee47021();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47021(Test_ee47021, "ee47021", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee47021C1Ev();
+extern void _ZN7ee47021D1Ev();
+Name_Map name_map_ee47021[] = {
+ NSPAIR(_ZN7ee47021C1Ev),
+ NSPAIR(_ZN7ee47021D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc021;
+extern VTBL_ENTRY _ZTI5cc021[];
+extern VTBL_ENTRY _ZTV5cc021[];
+extern Class_Descriptor cd_dd7021;
+extern VTBL_ENTRY _ZTI6dd7021[];
+extern VTBL_ENTRY _ZTV6dd7021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7021[];
+static Base_Class bases_ee47021[] = {
+ // 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_bb21, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc021, 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_dd7021, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47021[];
+extern void _ZN7ee470213barEv();
+extern void _ZN6dd70213fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd70213fooEv,_ZTv0_n12_N6dd70213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70213fooEv,_ZThn12_N6dd70213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47021[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47021[0]),
+ (VTBL_ENTRY)&_ZN7ee470213barEv,
+ (VTBL_ENTRY)&_ZN6dd70213fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47021[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70213fooEv,_ZTv0_n12_N6dd70213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee47021[];
+extern void _ZN6dd70213barEv();
+extern void _ZN6dd70213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7021__7ee47021[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7021[0]),
+ (VTBL_ENTRY)&_ZN6dd70213barEv,
+ (VTBL_ENTRY)&_ZN6dd70213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd70213fooEv,_ZTv0_n12_N6dd70213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70213fooEv,_ZThn12_N6dd70213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb215cc021__6dd7021__7ee47021[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7021[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70213fooEv,_ZTv0_n12_N6dd70213fooEv),
+};
+static VTT_ENTRY vtt_ee47021[] = {
+ {&(_ZTV7ee47021[3]), 3,9},
+ {&(_tg__ZTV6dd7021__7ee47021[3]), 3,5},
+ {&(_tg__ZTV4bb215cc021__6dd7021__7ee47021[3]), 3,4},
+ {&(_ZTV7ee47021[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee47021[];
+extern VTBL_ENTRY _ZTV7ee47021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47021[];
+static VTBL_ENTRY alt_thunk_names459[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70213fooEv,_ZTv0_n12_N6dd70213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70213fooEv,_ZThn12_N6dd70213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70213fooEv,_ZThn12_N6dd70213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47021 = { "ee47021", // class name
+ bases_ee47021, 4,
+ &(vtc_ee47021[0]), // expected_vtbl_contents
+ &(vtt_ee47021[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee47021),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47021),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47021),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names459,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee57021 : virtual dd7021 {
+ int e;
+ virtual void bar(); // _ZN7ee570213barEv
+ ~ee57021(); // tgen
+ ee57021(); // tgen
+};
+//SIG(1 ee57021) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 Fi} v2 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57021 ::bar(){vfunc_called(this, "_ZN7ee570213barEv");}
+ee57021 ::~ee57021(){ note_dtor("ee57021", this);} // tgen
+ee57021 ::ee57021(){ note_ctor("ee57021", this);} // tgen
+
+static void Test_ee57021()
+{
+ extern Class_Descriptor cd_ee57021;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee57021, buf);
+ ee57021 *dp, &lv = *(dp=new (buf) ee57021());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee57021)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57021)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc021*), ABISELECT(32,16), "ee57021");
+ check_base_class_offset(lv, (bb21*)(cc021*), ABISELECT(32,16), "ee57021");
+ check_base_class_offset(lv, (cc021*)(dd7021*), ABISELECT(32,16), "ee57021");
+ check_base_class_offset(lv, (dd7021*), ABISELECT(16,8), "ee57021");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57021.e");
+ test_class_info(&lv, &cd_ee57021);
+ dp->~ee57021();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57021(Test_ee57021, "ee57021", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee57021C1Ev();
+extern void _ZN7ee57021D1Ev();
+Name_Map name_map_ee57021[] = {
+ NSPAIR(_ZN7ee57021C1Ev),
+ NSPAIR(_ZN7ee57021D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc021;
+extern VTBL_ENTRY _ZTI5cc021[];
+extern VTBL_ENTRY _ZTV5cc021[];
+extern Class_Descriptor cd_dd7021;
+extern VTBL_ENTRY _ZTI6dd7021[];
+extern VTBL_ENTRY _ZTV6dd7021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7021[];
+static Base_Class bases_ee57021[] = {
+ // 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_bb21, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc021, 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_dd7021, 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 _ZTI7ee57021[];
+extern void _ZN7ee570213barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee570213barEv,_ZTv0_n16_N7ee570213barEv)();
+extern void ABISELECT(_ZThn16_N7ee570213barEv,_ZThn8_N7ee570213barEv)() __attribute__((weak));
+extern void _ZN6dd70213fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd70213fooEv,_ZTv0_n12_N6dd70213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70213fooEv,_ZThn8_N6dd70213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57021[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57021[0]),
+ (VTBL_ENTRY)&_ZN7ee570213barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57021[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee570213barEv,_ZTv0_n16_N7ee570213barEv),
+ (VTBL_ENTRY)&_ZN6dd70213fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57021[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70213fooEv,_ZTv0_n12_N6dd70213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee57021[];
+extern void _ZN6dd70213barEv();
+extern void _ZN6dd70213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7021__7ee57021[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7021[0]),
+ (VTBL_ENTRY)&_ZN6dd70213barEv,
+ (VTBL_ENTRY)&_ZN6dd70213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd70213fooEv,_ZTv0_n12_N6dd70213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70213fooEv,_ZThn8_N6dd70213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb215cc021__6dd7021__7ee57021[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7021[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70213fooEv,_ZTv0_n12_N6dd70213fooEv),
+};
+static VTT_ENTRY vtt_ee57021[] = {
+ {&(_ZTV7ee57021[4]), 4,16},
+ {&(_ZTV7ee57021[10]), 10,16},
+ {&(_ZTV7ee57021[15]), 15,16},
+ {&(_tg__ZTV6dd7021__7ee57021[3]), 3,5},
+ {&(_tg__ZTV4bb215cc021__6dd7021__7ee57021[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee57021[];
+extern VTBL_ENTRY _ZTV7ee57021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57021[];
+static VTBL_ENTRY alt_thunk_names460[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70213fooEv,_ZTv0_n12_N6dd70213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70213fooEv,_ZThn8_N6dd70213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70213fooEv,_ZThn8_N6dd70213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee570213barEv,_ZTv0_n16_N7ee570213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee570213barEv,_ZThn8_N7ee570213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57021 = { "ee57021", // class name
+ bases_ee57021, 4,
+ &(vtc_ee57021[0]), // expected_vtbl_contents
+ &(vtt_ee57021[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee57021),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57021),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57021),5, //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 ee67021 : dd7021 {
+ int e;
+ virtual void foo(); // _ZN7ee670213fooEv
+ virtual void bar(); // _ZN7ee670213barEv
+ ~ee67021(); // tgen
+ ee67021(); // tgen
+};
+//SIG(1 ee67021) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} v1 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67021 ::foo(){vfunc_called(this, "_ZN7ee670213fooEv");}
+void ee67021 ::bar(){vfunc_called(this, "_ZN7ee670213barEv");}
+ee67021 ::~ee67021(){ note_dtor("ee67021", this);} // tgen
+ee67021 ::ee67021(){ note_ctor("ee67021", this);} // tgen
+
+static void Test_ee67021()
+{
+ extern Class_Descriptor cd_ee67021;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee67021, buf);
+ ee67021 *dp, &lv = *(dp=new (buf) ee67021());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee67021)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67021)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc021*), ABISELECT(16,12), "ee67021");
+ check_base_class_offset(lv, (bb21*)(cc021*), ABISELECT(16,12), "ee67021");
+ check_base_class_offset(lv, (cc021*)(dd7021*), ABISELECT(16,12), "ee67021");
+ check_base_class_offset(lv, (dd7021*), 0, "ee67021");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67021.e");
+ test_class_info(&lv, &cd_ee67021);
+ dp->~ee67021();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67021(Test_ee67021, "ee67021", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee67021C1Ev();
+extern void _ZN7ee67021D1Ev();
+Name_Map name_map_ee67021[] = {
+ NSPAIR(_ZN7ee67021C1Ev),
+ NSPAIR(_ZN7ee67021D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc021;
+extern VTBL_ENTRY _ZTI5cc021[];
+extern VTBL_ENTRY _ZTV5cc021[];
+extern Class_Descriptor cd_dd7021;
+extern VTBL_ENTRY _ZTI6dd7021[];
+extern VTBL_ENTRY _ZTV6dd7021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7021[];
+static Base_Class bases_ee67021[] = {
+ // 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_bb21, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc021, 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_dd7021, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67021[];
+extern void _ZN7ee670213barEv();
+extern void _ZN7ee670213fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee670213fooEv,_ZTv0_n12_N7ee670213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee670213fooEv,_ZThn12_N7ee670213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67021[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67021[0]),
+ (VTBL_ENTRY)&_ZN7ee670213barEv,
+ (VTBL_ENTRY)&_ZN7ee670213fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67021[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee670213fooEv,_ZTv0_n12_N7ee670213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee67021[];
+extern void _ZN6dd70213barEv();
+extern void _ZN6dd70213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7021__7ee67021[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7021[0]),
+ (VTBL_ENTRY)&_ZN6dd70213barEv,
+ (VTBL_ENTRY)&_ZN6dd70213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd70213fooEv,_ZTv0_n12_N6dd70213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70213fooEv,_ZThn12_N6dd70213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb215cc021__6dd7021__7ee67021[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7021[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70213fooEv,_ZTv0_n12_N6dd70213fooEv),
+};
+static VTT_ENTRY vtt_ee67021[] = {
+ {&(_ZTV7ee67021[3]), 3,9},
+ {&(_tg__ZTV6dd7021__7ee67021[3]), 3,5},
+ {&(_tg__ZTV4bb215cc021__6dd7021__7ee67021[3]), 3,4},
+ {&(_ZTV7ee67021[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee67021[];
+extern VTBL_ENTRY _ZTV7ee67021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67021[];
+static VTBL_ENTRY alt_thunk_names461[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70213fooEv,_ZTv0_n12_N6dd70213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70213fooEv,_ZThn12_N6dd70213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee670213fooEv,_ZTv0_n12_N7ee670213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee670213fooEv,_ZThn12_N7ee670213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67021 = { "ee67021", // class name
+ bases_ee67021, 4,
+ &(vtc_ee67021[0]), // expected_vtbl_contents
+ &(vtt_ee67021[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee67021),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67021),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67021),4, //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 ee77021 : virtual dd7021 {
+ int e;
+ virtual void foo(); // _ZN7ee770213fooEv
+ virtual void bar(); // _ZN7ee770213barEv
+ ~ee77021(); // tgen
+ ee77021(); // tgen
+};
+//SIG(1 ee77021) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} v1 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77021 ::foo(){vfunc_called(this, "_ZN7ee770213fooEv");}
+void ee77021 ::bar(){vfunc_called(this, "_ZN7ee770213barEv");}
+ee77021 ::~ee77021(){ note_dtor("ee77021", this);} // tgen
+ee77021 ::ee77021(){ note_ctor("ee77021", this);} // tgen
+
+static void Test_ee77021()
+{
+ extern Class_Descriptor cd_ee77021;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee77021, buf);
+ ee77021 *dp, &lv = *(dp=new (buf) ee77021());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee77021)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77021)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc021*), ABISELECT(32,16), "ee77021");
+ check_base_class_offset(lv, (bb21*)(cc021*), ABISELECT(32,16), "ee77021");
+ check_base_class_offset(lv, (cc021*)(dd7021*), ABISELECT(32,16), "ee77021");
+ check_base_class_offset(lv, (dd7021*), ABISELECT(16,8), "ee77021");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77021.e");
+ test_class_info(&lv, &cd_ee77021);
+ dp->~ee77021();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77021(Test_ee77021, "ee77021", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee77021C1Ev();
+extern void _ZN7ee77021D1Ev();
+Name_Map name_map_ee77021[] = {
+ NSPAIR(_ZN7ee77021C1Ev),
+ NSPAIR(_ZN7ee77021D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc021;
+extern VTBL_ENTRY _ZTI5cc021[];
+extern VTBL_ENTRY _ZTV5cc021[];
+extern Class_Descriptor cd_dd7021;
+extern VTBL_ENTRY _ZTI6dd7021[];
+extern VTBL_ENTRY _ZTV6dd7021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7021[];
+static Base_Class bases_ee77021[] = {
+ // 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_bb21, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc021, 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_dd7021, ABISELECT(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 _ZTI7ee77021[];
+extern void _ZN7ee770213fooEv();
+extern void _ZN7ee770213barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee770213barEv,_ZTv0_n16_N7ee770213barEv)();
+extern void ABISELECT(_ZThn16_N7ee770213barEv,_ZThn8_N7ee770213barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee770213fooEv,_ZTv0_n20_N7ee770213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee770213fooEv,_ZThn8_N7ee770213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee770213fooEv,_ZTv0_n12_N7ee770213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee770213fooEv,_ZThn16_N7ee770213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77021[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77021[0]),
+ (VTBL_ENTRY)&_ZN7ee770213fooEv,
+ (VTBL_ENTRY)&_ZN7ee770213barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77021[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee770213barEv,_ZTv0_n16_N7ee770213barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee770213fooEv,_ZTv0_n20_N7ee770213fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77021[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee770213fooEv,_ZTv0_n12_N7ee770213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee77021[];
+extern void _ZN6dd70213barEv();
+extern void _ZN6dd70213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7021__7ee77021[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7021[0]),
+ (VTBL_ENTRY)&_ZN6dd70213barEv,
+ (VTBL_ENTRY)&_ZN6dd70213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd70213fooEv,_ZTv0_n12_N6dd70213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70213fooEv,_ZThn8_N6dd70213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb215cc021__6dd7021__7ee77021[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7021[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70213fooEv,_ZTv0_n12_N6dd70213fooEv),
+};
+static VTT_ENTRY vtt_ee77021[] = {
+ {&(_ZTV7ee77021[4]), 4,17},
+ {&(_ZTV7ee77021[11]), 11,17},
+ {&(_ZTV7ee77021[16]), 16,17},
+ {&(_tg__ZTV6dd7021__7ee77021[3]), 3,5},
+ {&(_tg__ZTV4bb215cc021__6dd7021__7ee77021[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee77021[];
+extern VTBL_ENTRY _ZTV7ee77021[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77021[];
+static VTBL_ENTRY alt_thunk_names462[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70213fooEv,_ZTv0_n12_N6dd70213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70213fooEv,_ZThn8_N6dd70213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee770213fooEv,_ZTv0_n12_N7ee770213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee770213fooEv,_ZThn16_N7ee770213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee770213fooEv,_ZTv0_n20_N7ee770213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee770213fooEv,_ZThn8_N7ee770213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee770213barEv,_ZTv0_n16_N7ee770213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee770213barEv,_ZThn8_N7ee770213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77021 = { "ee77021", // class name
+ bases_ee77021, 4,
+ &(vtc_ee77021[0]), // expected_vtbl_contents
+ &(vtt_ee77021[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee77021),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77021),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77021),5, //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 cc121 : virtual bb21 {
+ int c;
+ ~cc121(); // tgen
+ cc121(); // tgen
+};
+//SIG(-1 cc121) C1{ VBC2{ BC3{ v1 Fi} v1 Fi} Fi}
+
+
+cc121 ::~cc121(){ note_dtor("cc121", this);} // tgen
+cc121 ::cc121(){ note_ctor("cc121", this);} // tgen
+
+static void Test_cc121()
+{
+ extern Class_Descriptor cd_cc121;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_cc121, buf);
+ cc121 *dp, &lv = *(dp=new (buf) cc121());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(cc121)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc121)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(16,8), "cc121");
+ check_base_class_offset(lv, (bb21*), ABISELECT(16,8), "cc121");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc121.c");
+ test_class_info(&lv, &cd_cc121);
+ dp->~cc121();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc121(Test_cc121, "cc121", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN5cc121C1Ev();
+extern void _ZN5cc121D1Ev();
+Name_Map name_map_cc121[] = {
+ NSPAIR(_ZN5cc121C1Ev),
+ NSPAIR(_ZN5cc121D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+static Base_Class bases_cc121[] = {
+ // 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_bb21, 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 _ZTI5cc121[];
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY vtc_cc121[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern VTBL_ENTRY _ZTV5cc121[];
+static VTT_ENTRY vtt_cc121[] = {
+ {&(_ZTV5cc121[3]), 3,7},
+ {&(_ZTV5cc121[6]), 6,7},
+};
+extern VTBL_ENTRY _ZTI5cc121[];
+extern VTBL_ENTRY _ZTV5cc121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc121[];
+Class_Descriptor cd_cc121 = { "cc121", // class name
+ bases_cc121, 2,
+ &(vtc_cc121[0]), // expected_vtbl_contents
+ &(vtt_cc121[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI5cc121),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV5cc121),7, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5cc121),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 dd0121 : cc121 {
+ int d;
+ ~dd0121(); // tgen
+ dd0121(); // tgen
+};
+//SIG(-1 dd0121) C1{ BC2{ VBC3{ BC4{ v1 Fi} v1 Fi} Fi} Fi}
+
+
+dd0121 ::~dd0121(){ note_dtor("dd0121", this);} // tgen
+dd0121 ::dd0121(){ note_ctor("dd0121", this);} // tgen
+
+static void Test_dd0121()
+{
+ extern Class_Descriptor cd_dd0121;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd0121, buf);
+ dd0121 *dp, &lv = *(dp=new (buf) dd0121());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd0121)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0121)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(16,12), "dd0121");
+ check_base_class_offset(lv, (bb21*)(cc121*), ABISELECT(16,12), "dd0121");
+ check_base_class_offset(lv, (cc121*), 0, "dd0121");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd0121.d");
+ test_class_info(&lv, &cd_dd0121);
+ dp->~dd0121();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0121(Test_dd0121, "dd0121", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd0121C1Ev();
+extern void _ZN6dd0121D1Ev();
+Name_Map name_map_dd0121[] = {
+ NSPAIR(_ZN6dd0121C1Ev),
+ NSPAIR(_ZN6dd0121D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc121;
+extern VTBL_ENTRY _ZTI5cc121[];
+extern VTBL_ENTRY _ZTV5cc121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc121[];
+static Base_Class bases_dd0121[] = {
+ // 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_bb21, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc121, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd0121[];
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY vtc_dd0121[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0121[0]),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd0121[];
+static VTBL_ENTRY _tg__ZTV5cc121__6dd0121[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc121__6dd0121[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_dd0121[] = {
+ {&(_ZTV6dd0121[3]), 3,7},
+ {&(_tg__ZTV5cc121__6dd0121[3]), 3,3},
+ {&(_tg__ZTV4bb21__5cc121__6dd0121[3]), 3,4},
+ {&(_ZTV6dd0121[6]), 6,7},
+};
+extern VTBL_ENTRY _ZTI6dd0121[];
+extern VTBL_ENTRY _ZTV6dd0121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0121[];
+Class_Descriptor cd_dd0121 = { "dd0121", // class name
+ bases_dd0121, 3,
+ &(vtc_dd0121[0]), // expected_vtbl_contents
+ &(vtt_dd0121[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd0121),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0121),7, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd0121),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 ee00121 : dd0121 {
+ int e;
+ ~ee00121(); // tgen
+ ee00121(); // tgen
+};
+//SIG(1 ee00121) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} v1 Fi} Fi} Fi} Fi}
+
+
+ee00121 ::~ee00121(){ note_dtor("ee00121", this);} // tgen
+ee00121 ::ee00121(){ note_ctor("ee00121", this);} // tgen
+
+static void Test_ee00121()
+{
+ extern Class_Descriptor cd_ee00121;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee00121, buf);
+ ee00121 *dp, &lv = *(dp=new (buf) ee00121());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee00121)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00121)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(24,16), "ee00121");
+ check_base_class_offset(lv, (bb21*)(cc121*)(dd0121*), ABISELECT(24,16), "ee00121");
+ check_base_class_offset(lv, (cc121*)(dd0121*), 0, "ee00121");
+ check_base_class_offset(lv, (dd0121*), 0, "ee00121");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee00121.e");
+ test_class_info(&lv, &cd_ee00121);
+ dp->~ee00121();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00121(Test_ee00121, "ee00121", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee00121C1Ev();
+extern void _ZN7ee00121D1Ev();
+Name_Map name_map_ee00121[] = {
+ NSPAIR(_ZN7ee00121C1Ev),
+ NSPAIR(_ZN7ee00121D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc121;
+extern VTBL_ENTRY _ZTI5cc121[];
+extern VTBL_ENTRY _ZTV5cc121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc121[];
+extern Class_Descriptor cd_dd0121;
+extern VTBL_ENTRY _ZTI6dd0121[];
+extern VTBL_ENTRY _ZTV6dd0121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0121[];
+static Base_Class bases_ee00121[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(24,16), //bcp->offset
+ 3, //bcp->virtual_function_table_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_cc121, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0121, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee00121[];
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY vtc_ee00121[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00121[0]),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee00121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee00121[];
+static VTBL_ENTRY _tg__ZTV6dd0121__7ee00121[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0121[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1216dd0121__7ee00121[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc1216dd0121__7ee00121[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__6dd0121__7ee00121[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee00121[] = {
+ {&(_ZTV7ee00121[3]), 3,7},
+ {&(_tg__ZTV6dd0121__7ee00121[3]), 3,3},
+ {&(_tg__ZTV5cc1216dd0121__7ee00121[3]), 3,3},
+ {&(_tg__ZTV4bb21__5cc1216dd0121__7ee00121[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd0121__7ee00121[3]), 3,4},
+ {&(_ZTV7ee00121[6]), 6,7},
+};
+extern VTBL_ENTRY _ZTI7ee00121[];
+extern VTBL_ENTRY _ZTV7ee00121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee00121[];
+Class_Descriptor cd_ee00121 = { "ee00121", // class name
+ bases_ee00121, 4,
+ &(vtc_ee00121[0]), // expected_vtbl_contents
+ &(vtt_ee00121[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee00121),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00121),7, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee00121),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 ee10121 : virtual dd0121 {
+ int e;
+ ~ee10121(); // tgen
+ ee10121(); // tgen
+};
+//SIG(1 ee10121) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} v1 Fi} Fi} Fi} Fi}
+
+
+ee10121 ::~ee10121(){ note_dtor("ee10121", this);} // tgen
+ee10121 ::ee10121(){ note_ctor("ee10121", this);} // tgen
+
+static void Test_ee10121()
+{
+ extern Class_Descriptor cd_ee10121;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee10121, buf);
+ ee10121 *dp, &lv = *(dp=new (buf) ee10121());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee10121)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10121)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee10121");
+ check_base_class_offset(lv, (bb21*)(cc121*)(dd0121*), ABISELECT(32,20), "ee10121");
+ check_base_class_offset(lv, (cc121*)(dd0121*), ABISELECT(16,8), "ee10121");
+ check_base_class_offset(lv, (dd0121*), ABISELECT(16,8), "ee10121");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10121.e");
+ test_class_info(&lv, &cd_ee10121);
+ dp->~ee10121();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10121(Test_ee10121, "ee10121", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee10121C1Ev();
+extern void _ZN7ee10121D1Ev();
+Name_Map name_map_ee10121[] = {
+ NSPAIR(_ZN7ee10121C1Ev),
+ NSPAIR(_ZN7ee10121D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc121;
+extern VTBL_ENTRY _ZTI5cc121[];
+extern VTBL_ENTRY _ZTV5cc121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc121[];
+extern Class_Descriptor cd_dd0121;
+extern VTBL_ENTRY _ZTI6dd0121[];
+extern VTBL_ENTRY _ZTV6dd0121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0121[];
+static Base_Class bases_ee10121[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc121, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0121, 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 _ZTI7ee10121[];
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY vtc_ee10121[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10121[0]),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10121[0]),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee10121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee10121[];
+static VTBL_ENTRY _tg__ZTV6dd0121__7ee10121[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0121[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1216dd0121__7ee10121[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc1216dd0121__7ee10121[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__6dd0121__7ee10121[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee10121[] = {
+ {&(_ZTV7ee10121[4]), 4,11},
+ {&(_ZTV7ee10121[7]), 7,11},
+ {&(_ZTV7ee10121[10]), 10,11},
+ {&(_tg__ZTV6dd0121__7ee10121[3]), 3,3},
+ {&(_tg__ZTV5cc1216dd0121__7ee10121[3]), 3,3},
+ {&(_tg__ZTV4bb21__5cc1216dd0121__7ee10121[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd0121__7ee10121[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee10121[];
+extern VTBL_ENTRY _ZTV7ee10121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10121[];
+Class_Descriptor cd_ee10121 = { "ee10121", // class name
+ bases_ee10121, 4,
+ &(vtc_ee10121[0]), // expected_vtbl_contents
+ &(vtt_ee10121[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee10121),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10121),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10121),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 ee20121 : dd0121 {
+ int e;
+ virtual void foo(); // _ZN7ee201213fooEv
+ ~ee20121(); // tgen
+ ee20121(); // tgen
+};
+//SIG(1 ee20121) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} v1 Fi} Fi} Fi} v1 Fi}
+
+
+void ee20121 ::foo(){vfunc_called(this, "_ZN7ee201213fooEv");}
+ee20121 ::~ee20121(){ note_dtor("ee20121", this);} // tgen
+ee20121 ::ee20121(){ note_ctor("ee20121", this);} // tgen
+
+static void Test_ee20121()
+{
+ extern Class_Descriptor cd_ee20121;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee20121, buf);
+ ee20121 *dp, &lv = *(dp=new (buf) ee20121());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee20121)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20121)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(24,16), "ee20121");
+ check_base_class_offset(lv, (bb21*)(cc121*)(dd0121*), ABISELECT(24,16), "ee20121");
+ check_base_class_offset(lv, (cc121*)(dd0121*), 0, "ee20121");
+ check_base_class_offset(lv, (dd0121*), 0, "ee20121");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee20121.e");
+ test_class_info(&lv, &cd_ee20121);
+ dp->~ee20121();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20121(Test_ee20121, "ee20121", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee20121C1Ev();
+extern void _ZN7ee20121D1Ev();
+Name_Map name_map_ee20121[] = {
+ NSPAIR(_ZN7ee20121C1Ev),
+ NSPAIR(_ZN7ee20121D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc121;
+extern VTBL_ENTRY _ZTI5cc121[];
+extern VTBL_ENTRY _ZTV5cc121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc121[];
+extern Class_Descriptor cd_dd0121;
+extern VTBL_ENTRY _ZTI6dd0121[];
+extern VTBL_ENTRY _ZTV6dd0121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0121[];
+static Base_Class bases_ee20121[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc121, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0121, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee20121[];
+extern void _ZN7ee201213fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee201213fooEv,_ZTv0_n12_N7ee201213fooEv)();
+extern void ABISELECT(_ZThn24_N7ee201213fooEv,_ZThn16_N7ee201213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee20121[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20121[0]),
+ (VTBL_ENTRY)&_ZN7ee201213fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee20121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee201213fooEv,_ZTv0_n12_N7ee201213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee20121[];
+static VTBL_ENTRY _tg__ZTV6dd0121__7ee20121[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0121[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1216dd0121__7ee20121[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc1216dd0121__7ee20121[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__6dd0121__7ee20121[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee20121[] = {
+ {&(_ZTV7ee20121[3]), 3,8},
+ {&(_tg__ZTV6dd0121__7ee20121[3]), 3,3},
+ {&(_tg__ZTV5cc1216dd0121__7ee20121[3]), 3,3},
+ {&(_tg__ZTV4bb21__5cc1216dd0121__7ee20121[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd0121__7ee20121[3]), 3,4},
+ {&(_ZTV7ee20121[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee20121[];
+extern VTBL_ENTRY _ZTV7ee20121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee20121[];
+static VTBL_ENTRY alt_thunk_names463[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee201213fooEv,_ZTv0_n12_N7ee201213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee201213fooEv,_ZThn16_N7ee201213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee20121 = { "ee20121", // class name
+ bases_ee20121, 4,
+ &(vtc_ee20121[0]), // expected_vtbl_contents
+ &(vtt_ee20121[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee20121),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20121),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee20121),6, //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 ee30121 : virtual dd0121 {
+ int e;
+ virtual void foo(); // _ZN7ee301213fooEv
+ ~ee30121(); // tgen
+ ee30121(); // tgen
+};
+//SIG(1 ee30121) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} v1 Fi} Fi} Fi} v1 Fi}
+
+
+void ee30121 ::foo(){vfunc_called(this, "_ZN7ee301213fooEv");}
+ee30121 ::~ee30121(){ note_dtor("ee30121", this);} // tgen
+ee30121 ::ee30121(){ note_ctor("ee30121", this);} // tgen
+
+static void Test_ee30121()
+{
+ extern Class_Descriptor cd_ee30121;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee30121, buf);
+ ee30121 *dp, &lv = *(dp=new (buf) ee30121());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee30121)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30121)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee30121");
+ check_base_class_offset(lv, (bb21*)(cc121*)(dd0121*), ABISELECT(32,20), "ee30121");
+ check_base_class_offset(lv, (cc121*)(dd0121*), ABISELECT(16,8), "ee30121");
+ check_base_class_offset(lv, (dd0121*), ABISELECT(16,8), "ee30121");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30121.e");
+ test_class_info(&lv, &cd_ee30121);
+ dp->~ee30121();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30121(Test_ee30121, "ee30121", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee30121C1Ev();
+extern void _ZN7ee30121D1Ev();
+Name_Map name_map_ee30121[] = {
+ NSPAIR(_ZN7ee30121C1Ev),
+ NSPAIR(_ZN7ee30121D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc121;
+extern VTBL_ENTRY _ZTI5cc121[];
+extern VTBL_ENTRY _ZTV5cc121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc121[];
+extern Class_Descriptor cd_dd0121;
+extern VTBL_ENTRY _ZTI6dd0121[];
+extern VTBL_ENTRY _ZTV6dd0121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0121[];
+static Base_Class bases_ee30121[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc121, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0121, 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 _ZTI7ee30121[];
+extern void _ZN7ee301213fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee301213fooEv,_ZTv0_n12_N7ee301213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee301213fooEv,_ZThn20_N7ee301213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee30121[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30121[0]),
+ (VTBL_ENTRY)&_ZN7ee301213fooEv,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30121[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee30121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee301213fooEv,_ZTv0_n12_N7ee301213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee30121[];
+static VTBL_ENTRY _tg__ZTV6dd0121__7ee30121[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0121[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1216dd0121__7ee30121[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc1216dd0121__7ee30121[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__6dd0121__7ee30121[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee30121[] = {
+ {&(_ZTV7ee30121[4]), 4,12},
+ {&(_ZTV7ee30121[8]), 8,12},
+ {&(_ZTV7ee30121[11]), 11,12},
+ {&(_tg__ZTV6dd0121__7ee30121[3]), 3,3},
+ {&(_tg__ZTV5cc1216dd0121__7ee30121[3]), 3,3},
+ {&(_tg__ZTV4bb21__5cc1216dd0121__7ee30121[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd0121__7ee30121[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee30121[];
+extern VTBL_ENTRY _ZTV7ee30121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30121[];
+static VTBL_ENTRY alt_thunk_names464[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee301213fooEv,_ZTv0_n12_N7ee301213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee301213fooEv,_ZThn20_N7ee301213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30121 = { "ee30121", // class name
+ bases_ee30121, 4,
+ &(vtc_ee30121[0]), // expected_vtbl_contents
+ &(vtt_ee30121[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee30121),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30121),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30121),7, //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 ee40121 : dd0121 {
+ int e;
+ virtual void bar(); // _ZN7ee401213barEv
+ ~ee40121(); // tgen
+ ee40121(); // tgen
+};
+//SIG(1 ee40121) C1{ BC2{ BC3{ VBC4{ BC5{ v2 Fi} v2 Fi} Fi} Fi} v1 Fi}
+
+
+void ee40121 ::bar(){vfunc_called(this, "_ZN7ee401213barEv");}
+ee40121 ::~ee40121(){ note_dtor("ee40121", this);} // tgen
+ee40121 ::ee40121(){ note_ctor("ee40121", this);} // tgen
+
+static void Test_ee40121()
+{
+ extern Class_Descriptor cd_ee40121;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee40121, buf);
+ ee40121 *dp, &lv = *(dp=new (buf) ee40121());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee40121)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40121)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(24,16), "ee40121");
+ check_base_class_offset(lv, (bb21*)(cc121*)(dd0121*), ABISELECT(24,16), "ee40121");
+ check_base_class_offset(lv, (cc121*)(dd0121*), 0, "ee40121");
+ check_base_class_offset(lv, (dd0121*), 0, "ee40121");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee40121.e");
+ test_class_info(&lv, &cd_ee40121);
+ dp->~ee40121();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40121(Test_ee40121, "ee40121", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee40121C1Ev();
+extern void _ZN7ee40121D1Ev();
+Name_Map name_map_ee40121[] = {
+ NSPAIR(_ZN7ee40121C1Ev),
+ NSPAIR(_ZN7ee40121D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc121;
+extern VTBL_ENTRY _ZTI5cc121[];
+extern VTBL_ENTRY _ZTV5cc121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc121[];
+extern Class_Descriptor cd_dd0121;
+extern VTBL_ENTRY _ZTI6dd0121[];
+extern VTBL_ENTRY _ZTV6dd0121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0121[];
+static Base_Class bases_ee40121[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc121, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0121, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee40121[];
+extern void _ZN7ee401213barEv();
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY vtc_ee40121[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40121[0]),
+ (VTBL_ENTRY)&_ZN7ee401213barEv,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee40121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee40121[];
+static VTBL_ENTRY _tg__ZTV6dd0121__7ee40121[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0121[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1216dd0121__7ee40121[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc1216dd0121__7ee40121[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__6dd0121__7ee40121[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee40121[] = {
+ {&(_ZTV7ee40121[3]), 3,8},
+ {&(_tg__ZTV6dd0121__7ee40121[3]), 3,3},
+ {&(_tg__ZTV5cc1216dd0121__7ee40121[3]), 3,3},
+ {&(_tg__ZTV4bb21__5cc1216dd0121__7ee40121[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd0121__7ee40121[3]), 3,4},
+ {&(_ZTV7ee40121[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee40121[];
+extern VTBL_ENTRY _ZTV7ee40121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee40121[];
+Class_Descriptor cd_ee40121 = { "ee40121", // class name
+ bases_ee40121, 4,
+ &(vtc_ee40121[0]), // expected_vtbl_contents
+ &(vtt_ee40121[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee40121),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40121),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee40121),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 ee50121 : virtual dd0121 {
+ int e;
+ virtual void bar(); // _ZN7ee501213barEv
+ ~ee50121(); // tgen
+ ee50121(); // tgen
+};
+//SIG(1 ee50121) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 Fi} v2 Fi} Fi} Fi} v1 Fi}
+
+
+void ee50121 ::bar(){vfunc_called(this, "_ZN7ee501213barEv");}
+ee50121 ::~ee50121(){ note_dtor("ee50121", this);} // tgen
+ee50121 ::ee50121(){ note_ctor("ee50121", this);} // tgen
+
+static void Test_ee50121()
+{
+ extern Class_Descriptor cd_ee50121;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee50121, buf);
+ ee50121 *dp, &lv = *(dp=new (buf) ee50121());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee50121)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50121)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee50121");
+ check_base_class_offset(lv, (bb21*)(cc121*)(dd0121*), ABISELECT(32,20), "ee50121");
+ check_base_class_offset(lv, (cc121*)(dd0121*), ABISELECT(16,8), "ee50121");
+ check_base_class_offset(lv, (dd0121*), ABISELECT(16,8), "ee50121");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50121.e");
+ test_class_info(&lv, &cd_ee50121);
+ dp->~ee50121();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50121(Test_ee50121, "ee50121", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee50121C1Ev();
+extern void _ZN7ee50121D1Ev();
+Name_Map name_map_ee50121[] = {
+ NSPAIR(_ZN7ee50121C1Ev),
+ NSPAIR(_ZN7ee50121D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc121;
+extern VTBL_ENTRY _ZTI5cc121[];
+extern VTBL_ENTRY _ZTV5cc121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc121[];
+extern Class_Descriptor cd_dd0121;
+extern VTBL_ENTRY _ZTI6dd0121[];
+extern VTBL_ENTRY _ZTV6dd0121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0121[];
+static Base_Class bases_ee50121[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc121, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0121, 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 _ZTI7ee50121[];
+extern void _ZN7ee501213barEv();
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY vtc_ee50121[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50121[0]),
+ (VTBL_ENTRY)&_ZN7ee501213barEv,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50121[0]),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee50121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee50121[];
+static VTBL_ENTRY _tg__ZTV6dd0121__7ee50121[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0121[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1216dd0121__7ee50121[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc1216dd0121__7ee50121[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__6dd0121__7ee50121[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee50121[] = {
+ {&(_ZTV7ee50121[4]), 4,12},
+ {&(_ZTV7ee50121[8]), 8,12},
+ {&(_ZTV7ee50121[11]), 11,12},
+ {&(_tg__ZTV6dd0121__7ee50121[3]), 3,3},
+ {&(_tg__ZTV5cc1216dd0121__7ee50121[3]), 3,3},
+ {&(_tg__ZTV4bb21__5cc1216dd0121__7ee50121[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd0121__7ee50121[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee50121[];
+extern VTBL_ENTRY _ZTV7ee50121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50121[];
+Class_Descriptor cd_ee50121 = { "ee50121", // class name
+ bases_ee50121, 4,
+ &(vtc_ee50121[0]), // expected_vtbl_contents
+ &(vtt_ee50121[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee50121),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50121),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50121),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 ee60121 : dd0121 {
+ int e;
+ virtual void foo(); // _ZN7ee601213fooEv
+ virtual void bar(); // _ZN7ee601213barEv
+ ~ee60121(); // tgen
+ ee60121(); // tgen
+};
+//SIG(1 ee60121) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} v1 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee60121 ::foo(){vfunc_called(this, "_ZN7ee601213fooEv");}
+void ee60121 ::bar(){vfunc_called(this, "_ZN7ee601213barEv");}
+ee60121 ::~ee60121(){ note_dtor("ee60121", this);} // tgen
+ee60121 ::ee60121(){ note_ctor("ee60121", this);} // tgen
+
+static void Test_ee60121()
+{
+ extern Class_Descriptor cd_ee60121;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee60121, buf);
+ ee60121 *dp, &lv = *(dp=new (buf) ee60121());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee60121)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60121)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(24,16), "ee60121");
+ check_base_class_offset(lv, (bb21*)(cc121*)(dd0121*), ABISELECT(24,16), "ee60121");
+ check_base_class_offset(lv, (cc121*)(dd0121*), 0, "ee60121");
+ check_base_class_offset(lv, (dd0121*), 0, "ee60121");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee60121.e");
+ test_class_info(&lv, &cd_ee60121);
+ dp->~ee60121();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60121(Test_ee60121, "ee60121", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee60121C1Ev();
+extern void _ZN7ee60121D1Ev();
+Name_Map name_map_ee60121[] = {
+ NSPAIR(_ZN7ee60121C1Ev),
+ NSPAIR(_ZN7ee60121D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc121;
+extern VTBL_ENTRY _ZTI5cc121[];
+extern VTBL_ENTRY _ZTV5cc121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc121[];
+extern Class_Descriptor cd_dd0121;
+extern VTBL_ENTRY _ZTI6dd0121[];
+extern VTBL_ENTRY _ZTV6dd0121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0121[];
+static Base_Class bases_ee60121[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc121, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0121, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee60121[];
+extern void _ZN7ee601213fooEv();
+extern void _ZN7ee601213barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee601213fooEv,_ZTv0_n12_N7ee601213fooEv)();
+extern void ABISELECT(_ZThn24_N7ee601213fooEv,_ZThn16_N7ee601213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee60121[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60121[0]),
+ (VTBL_ENTRY)&_ZN7ee601213fooEv,
+ (VTBL_ENTRY)&_ZN7ee601213barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee60121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee601213fooEv,_ZTv0_n12_N7ee601213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee60121[];
+static VTBL_ENTRY _tg__ZTV6dd0121__7ee60121[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0121[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1216dd0121__7ee60121[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc1216dd0121__7ee60121[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__6dd0121__7ee60121[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee60121[] = {
+ {&(_ZTV7ee60121[3]), 3,9},
+ {&(_tg__ZTV6dd0121__7ee60121[3]), 3,3},
+ {&(_tg__ZTV5cc1216dd0121__7ee60121[3]), 3,3},
+ {&(_tg__ZTV4bb21__5cc1216dd0121__7ee60121[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd0121__7ee60121[3]), 3,4},
+ {&(_ZTV7ee60121[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee60121[];
+extern VTBL_ENTRY _ZTV7ee60121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee60121[];
+static VTBL_ENTRY alt_thunk_names465[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee601213fooEv,_ZTv0_n12_N7ee601213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee601213fooEv,_ZThn16_N7ee601213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee60121 = { "ee60121", // class name
+ bases_ee60121, 4,
+ &(vtc_ee60121[0]), // expected_vtbl_contents
+ &(vtt_ee60121[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee60121),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60121),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee60121),6, //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 ee70121 : virtual dd0121 {
+ int e;
+ virtual void foo(); // _ZN7ee701213fooEv
+ virtual void bar(); // _ZN7ee701213barEv
+ ~ee70121(); // tgen
+ ee70121(); // tgen
+};
+//SIG(1 ee70121) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} v1 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee70121 ::foo(){vfunc_called(this, "_ZN7ee701213fooEv");}
+void ee70121 ::bar(){vfunc_called(this, "_ZN7ee701213barEv");}
+ee70121 ::~ee70121(){ note_dtor("ee70121", this);} // tgen
+ee70121 ::ee70121(){ note_ctor("ee70121", this);} // tgen
+
+static void Test_ee70121()
+{
+ extern Class_Descriptor cd_ee70121;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee70121, buf);
+ ee70121 *dp, &lv = *(dp=new (buf) ee70121());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee70121)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70121)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee70121");
+ check_base_class_offset(lv, (bb21*)(cc121*)(dd0121*), ABISELECT(32,20), "ee70121");
+ check_base_class_offset(lv, (cc121*)(dd0121*), ABISELECT(16,8), "ee70121");
+ check_base_class_offset(lv, (dd0121*), ABISELECT(16,8), "ee70121");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70121.e");
+ test_class_info(&lv, &cd_ee70121);
+ dp->~ee70121();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70121(Test_ee70121, "ee70121", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee70121C1Ev();
+extern void _ZN7ee70121D1Ev();
+Name_Map name_map_ee70121[] = {
+ NSPAIR(_ZN7ee70121C1Ev),
+ NSPAIR(_ZN7ee70121D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc121;
+extern VTBL_ENTRY _ZTI5cc121[];
+extern VTBL_ENTRY _ZTV5cc121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc121[];
+extern Class_Descriptor cd_dd0121;
+extern VTBL_ENTRY _ZTI6dd0121[];
+extern VTBL_ENTRY _ZTV6dd0121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0121[];
+static Base_Class bases_ee70121[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc121, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0121, 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 _ZTI7ee70121[];
+extern void _ZN7ee701213fooEv();
+extern void _ZN7ee701213barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee701213fooEv,_ZTv0_n12_N7ee701213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee701213fooEv,_ZThn20_N7ee701213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70121[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70121[0]),
+ (VTBL_ENTRY)&_ZN7ee701213fooEv,
+ (VTBL_ENTRY)&_ZN7ee701213barEv,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70121[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee70121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee701213fooEv,_ZTv0_n12_N7ee701213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee70121[];
+static VTBL_ENTRY _tg__ZTV6dd0121__7ee70121[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0121[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1216dd0121__7ee70121[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc1216dd0121__7ee70121[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__6dd0121__7ee70121[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee70121[] = {
+ {&(_ZTV7ee70121[4]), 4,13},
+ {&(_ZTV7ee70121[9]), 9,13},
+ {&(_ZTV7ee70121[12]), 12,13},
+ {&(_tg__ZTV6dd0121__7ee70121[3]), 3,3},
+ {&(_tg__ZTV5cc1216dd0121__7ee70121[3]), 3,3},
+ {&(_tg__ZTV4bb21__5cc1216dd0121__7ee70121[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd0121__7ee70121[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee70121[];
+extern VTBL_ENTRY _ZTV7ee70121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70121[];
+static VTBL_ENTRY alt_thunk_names466[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee701213fooEv,_ZTv0_n12_N7ee701213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee701213fooEv,_ZThn20_N7ee701213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70121 = { "ee70121", // class name
+ bases_ee70121, 4,
+ &(vtc_ee70121[0]), // expected_vtbl_contents
+ &(vtt_ee70121[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee70121),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70121),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70121),7, //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 dd1121 : virtual cc121 {
+ int d;
+ ~dd1121(); // tgen
+ dd1121(); // tgen
+};
+//SIG(-1 dd1121) C1{ VBC2{ VBC3{ BC4{ v1 Fi} v1 Fi} Fi} Fi}
+
+
+dd1121 ::~dd1121(){ note_dtor("dd1121", this);} // tgen
+dd1121 ::dd1121(){ note_ctor("dd1121", this);} // tgen
+
+static void Test_dd1121()
+{
+ extern Class_Descriptor cd_dd1121;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd1121, buf);
+ dd1121 *dp, &lv = *(dp=new (buf) dd1121());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd1121)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1121)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,16), "dd1121");
+ check_base_class_offset(lv, (bb21*)(cc121*), ABISELECT(32,16), "dd1121");
+ check_base_class_offset(lv, (cc121*), ABISELECT(16,8), "dd1121");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1121.d");
+ test_class_info(&lv, &cd_dd1121);
+ dp->~dd1121();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1121(Test_dd1121, "dd1121", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd1121C1Ev();
+extern void _ZN6dd1121D1Ev();
+Name_Map name_map_dd1121[] = {
+ NSPAIR(_ZN6dd1121C1Ev),
+ NSPAIR(_ZN6dd1121D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc121;
+extern VTBL_ENTRY _ZTI5cc121[];
+extern VTBL_ENTRY _ZTV5cc121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc121[];
+static Base_Class bases_dd1121[] = {
+ // 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_bb21, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc121, 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 _ZTI6dd1121[];
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY vtc_dd1121[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1121[0]),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1121[0]),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd1121[];
+static VTBL_ENTRY _tg__ZTV5cc121__6dd1121[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc121__6dd1121[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_dd1121[] = {
+ {&(_ZTV6dd1121[4]), 4,11},
+ {&(_ZTV6dd1121[7]), 7,11},
+ {&(_ZTV6dd1121[10]), 10,11},
+ {&(_tg__ZTV5cc121__6dd1121[3]), 3,3},
+ {&(_tg__ZTV4bb21__5cc121__6dd1121[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd1121[];
+extern VTBL_ENTRY _ZTV6dd1121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1121[];
+Class_Descriptor cd_dd1121 = { "dd1121", // class name
+ bases_dd1121, 3,
+ &(vtc_dd1121[0]), // expected_vtbl_contents
+ &(vtt_dd1121[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd1121),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1121),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1121),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 ee01121 : dd1121 {
+ int e;
+ ~ee01121(); // tgen
+ ee01121(); // tgen
+};
+//SIG(1 ee01121) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} v1 Fi} Fi} Fi} Fi}
+
+
+ee01121 ::~ee01121(){ note_dtor("ee01121", this);} // tgen
+ee01121 ::ee01121(){ note_ctor("ee01121", this);} // tgen
+
+static void Test_ee01121()
+{
+ extern Class_Descriptor cd_ee01121;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee01121, buf);
+ ee01121 *dp, &lv = *(dp=new (buf) ee01121());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee01121)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01121)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee01121");
+ check_base_class_offset(lv, (bb21*)(cc121*), ABISELECT(32,20), "ee01121");
+ check_base_class_offset(lv, (cc121*)(dd1121*), ABISELECT(16,12), "ee01121");
+ check_base_class_offset(lv, (dd1121*), 0, "ee01121");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01121.e");
+ test_class_info(&lv, &cd_ee01121);
+ dp->~ee01121();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01121(Test_ee01121, "ee01121", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee01121C1Ev();
+extern void _ZN7ee01121D1Ev();
+Name_Map name_map_ee01121[] = {
+ NSPAIR(_ZN7ee01121C1Ev),
+ NSPAIR(_ZN7ee01121D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc121;
+extern VTBL_ENTRY _ZTI5cc121[];
+extern VTBL_ENTRY _ZTV5cc121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc121[];
+extern Class_Descriptor cd_dd1121;
+extern VTBL_ENTRY _ZTI6dd1121[];
+extern VTBL_ENTRY _ZTV6dd1121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1121[];
+static Base_Class bases_ee01121[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 7, //bcp->virtual_function_table_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_cc121, 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_dd1121, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01121[];
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY vtc_ee01121[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01121[0]),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01121[0]),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee01121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee01121[];
+static VTBL_ENTRY _tg__ZTV6dd1121__7ee01121[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1121[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc121__6dd1121__7ee01121[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__6dd1121__7ee01121[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc121__7ee01121[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc121__7ee01121[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee01121[] = {
+ {&(_ZTV7ee01121[4]), 4,11},
+ {&(_tg__ZTV6dd1121__7ee01121[4]), 4,4},
+ {&(_tg__ZTV5cc121__6dd1121__7ee01121[3]), 3,3},
+ {&(_tg__ZTV4bb21__6dd1121__7ee01121[3]), 3,4},
+ {&(_ZTV7ee01121[7]), 7,11},
+ {&(_ZTV7ee01121[10]), 10,11},
+ {&(_tg__ZTV5cc121__7ee01121[3]), 3,3},
+ {&(_tg__ZTV4bb21__5cc121__7ee01121[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee01121[];
+extern VTBL_ENTRY _ZTV7ee01121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01121[];
+Class_Descriptor cd_ee01121 = { "ee01121", // class name
+ bases_ee01121, 4,
+ &(vtc_ee01121[0]), // expected_vtbl_contents
+ &(vtt_ee01121[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee01121),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01121),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01121),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 ee11121 : virtual dd1121 {
+ int e;
+ ~ee11121(); // tgen
+ ee11121(); // tgen
+};
+//SIG(1 ee11121) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} v1 Fi} Fi} Fi} Fi}
+
+
+ee11121 ::~ee11121(){ note_dtor("ee11121", this);} // tgen
+ee11121 ::ee11121(){ note_ctor("ee11121", this);} // tgen
+
+static void Test_ee11121()
+{
+ extern Class_Descriptor cd_ee11121;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee11121, buf);
+ ee11121 *dp, &lv = *(dp=new (buf) ee11121());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee11121)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11121)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(48,24), "ee11121");
+ check_base_class_offset(lv, (bb21*)(cc121*), ABISELECT(48,24), "ee11121");
+ check_base_class_offset(lv, (cc121*)(dd1121*), ABISELECT(32,16), "ee11121");
+ check_base_class_offset(lv, (dd1121*), ABISELECT(16,8), "ee11121");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11121.e");
+ test_class_info(&lv, &cd_ee11121);
+ dp->~ee11121();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11121(Test_ee11121, "ee11121", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee11121C1Ev();
+extern void _ZN7ee11121D1Ev();
+Name_Map name_map_ee11121[] = {
+ NSPAIR(_ZN7ee11121C1Ev),
+ NSPAIR(_ZN7ee11121D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc121;
+extern VTBL_ENTRY _ZTI5cc121[];
+extern VTBL_ENTRY _ZTV5cc121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc121[];
+extern Class_Descriptor cd_dd1121;
+extern VTBL_ENTRY _ZTI6dd1121[];
+extern VTBL_ENTRY _ZTV6dd1121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1121[];
+static Base_Class bases_ee11121[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb21, ABISELECT(48,24), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc121, 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_dd1121, 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 _ZTI7ee11121[];
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY vtc_ee11121[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11121[0]),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11121[0]),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11121[0]),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee11121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee11121[];
+static VTBL_ENTRY _tg__ZTV6dd1121__7ee11121[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1121[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc121__6dd1121__7ee11121[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__6dd1121__7ee11121[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc121__7ee11121[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc121__7ee11121[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee11121[] = {
+ {&(_ZTV7ee11121[5]), 5,16},
+ {&(_ZTV7ee11121[9]), 9,16},
+ {&(_ZTV7ee11121[12]), 12,16},
+ {&(_ZTV7ee11121[15]), 15,16},
+ {&(_tg__ZTV6dd1121__7ee11121[4]), 4,4},
+ {&(_tg__ZTV5cc121__6dd1121__7ee11121[3]), 3,3},
+ {&(_tg__ZTV4bb21__6dd1121__7ee11121[3]), 3,4},
+ {&(_tg__ZTV5cc121__7ee11121[3]), 3,3},
+ {&(_tg__ZTV4bb21__5cc121__7ee11121[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee11121[];
+extern VTBL_ENTRY _ZTV7ee11121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11121[];
+Class_Descriptor cd_ee11121 = { "ee11121", // class name
+ bases_ee11121, 4,
+ &(vtc_ee11121[0]), // expected_vtbl_contents
+ &(vtt_ee11121[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee11121),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11121),16, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11121),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 ee21121 : dd1121 {
+ int e;
+ virtual void foo(); // _ZN7ee211213fooEv
+ ~ee21121(); // tgen
+ ee21121(); // tgen
+};
+//SIG(1 ee21121) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} v1 Fi} Fi} Fi} v1 Fi}
+
+
+void ee21121 ::foo(){vfunc_called(this, "_ZN7ee211213fooEv");}
+ee21121 ::~ee21121(){ note_dtor("ee21121", this);} // tgen
+ee21121 ::ee21121(){ note_ctor("ee21121", this);} // tgen
+
+static void Test_ee21121()
+{
+ extern Class_Descriptor cd_ee21121;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee21121, buf);
+ ee21121 *dp, &lv = *(dp=new (buf) ee21121());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee21121)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21121)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee21121");
+ check_base_class_offset(lv, (bb21*)(cc121*), ABISELECT(32,20), "ee21121");
+ check_base_class_offset(lv, (cc121*)(dd1121*), ABISELECT(16,12), "ee21121");
+ check_base_class_offset(lv, (dd1121*), 0, "ee21121");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21121.e");
+ test_class_info(&lv, &cd_ee21121);
+ dp->~ee21121();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21121(Test_ee21121, "ee21121", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee21121C1Ev();
+extern void _ZN7ee21121D1Ev();
+Name_Map name_map_ee21121[] = {
+ NSPAIR(_ZN7ee21121C1Ev),
+ NSPAIR(_ZN7ee21121D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc121;
+extern VTBL_ENTRY _ZTI5cc121[];
+extern VTBL_ENTRY _ZTV5cc121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc121[];
+extern Class_Descriptor cd_dd1121;
+extern VTBL_ENTRY _ZTI6dd1121[];
+extern VTBL_ENTRY _ZTV6dd1121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1121[];
+static Base_Class bases_ee21121[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 8, //bcp->virtual_function_table_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_cc121, 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_dd1121, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21121[];
+extern void _ZN7ee211213fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee211213fooEv,_ZTv0_n12_N7ee211213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee211213fooEv,_ZThn20_N7ee211213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee21121[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21121[0]),
+ (VTBL_ENTRY)&_ZN7ee211213fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21121[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee21121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee211213fooEv,_ZTv0_n12_N7ee211213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee21121[];
+static VTBL_ENTRY _tg__ZTV6dd1121__7ee21121[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1121[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc121__6dd1121__7ee21121[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__6dd1121__7ee21121[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc121__7ee21121[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc121__7ee21121[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee21121[] = {
+ {&(_ZTV7ee21121[4]), 4,12},
+ {&(_tg__ZTV6dd1121__7ee21121[4]), 4,4},
+ {&(_tg__ZTV5cc121__6dd1121__7ee21121[3]), 3,3},
+ {&(_tg__ZTV4bb21__6dd1121__7ee21121[3]), 3,4},
+ {&(_ZTV7ee21121[8]), 8,12},
+ {&(_ZTV7ee21121[11]), 11,12},
+ {&(_tg__ZTV5cc121__7ee21121[3]), 3,3},
+ {&(_tg__ZTV4bb21__5cc121__7ee21121[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee21121[];
+extern VTBL_ENTRY _ZTV7ee21121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21121[];
+static VTBL_ENTRY alt_thunk_names467[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee211213fooEv,_ZTv0_n12_N7ee211213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee211213fooEv,_ZThn20_N7ee211213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21121 = { "ee21121", // class name
+ bases_ee21121, 4,
+ &(vtc_ee21121[0]), // expected_vtbl_contents
+ &(vtt_ee21121[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee21121),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21121),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21121),8, //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 ee31121 : virtual dd1121 {
+ int e;
+ virtual void foo(); // _ZN7ee311213fooEv
+ ~ee31121(); // tgen
+ ee31121(); // tgen
+};
+//SIG(1 ee31121) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} v1 Fi} Fi} Fi} v1 Fi}
+
+
+void ee31121 ::foo(){vfunc_called(this, "_ZN7ee311213fooEv");}
+ee31121 ::~ee31121(){ note_dtor("ee31121", this);} // tgen
+ee31121 ::ee31121(){ note_ctor("ee31121", this);} // tgen
+
+static void Test_ee31121()
+{
+ extern Class_Descriptor cd_ee31121;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee31121, buf);
+ ee31121 *dp, &lv = *(dp=new (buf) ee31121());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee31121)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31121)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(48,24), "ee31121");
+ check_base_class_offset(lv, (bb21*)(cc121*), ABISELECT(48,24), "ee31121");
+ check_base_class_offset(lv, (cc121*)(dd1121*), ABISELECT(32,16), "ee31121");
+ check_base_class_offset(lv, (dd1121*), ABISELECT(16,8), "ee31121");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31121.e");
+ test_class_info(&lv, &cd_ee31121);
+ dp->~ee31121();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31121(Test_ee31121, "ee31121", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee31121C1Ev();
+extern void _ZN7ee31121D1Ev();
+Name_Map name_map_ee31121[] = {
+ NSPAIR(_ZN7ee31121C1Ev),
+ NSPAIR(_ZN7ee31121D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc121;
+extern VTBL_ENTRY _ZTI5cc121[];
+extern VTBL_ENTRY _ZTV5cc121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc121[];
+extern Class_Descriptor cd_dd1121;
+extern VTBL_ENTRY _ZTI6dd1121[];
+extern VTBL_ENTRY _ZTV6dd1121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1121[];
+static Base_Class bases_ee31121[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb21, ABISELECT(48,24), //bcp->offset
+ 13, //bcp->virtual_function_table_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_cc121, 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_dd1121, 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 _ZTI7ee31121[];
+extern void _ZN7ee311213fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee311213fooEv,_ZTv0_n12_N7ee311213fooEv)();
+extern void ABISELECT(_ZThn48_N7ee311213fooEv,_ZThn24_N7ee311213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee31121[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31121[0]),
+ (VTBL_ENTRY)&_ZN7ee311213fooEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31121[0]),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31121[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee31121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee311213fooEv,_ZTv0_n12_N7ee311213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee31121[];
+static VTBL_ENTRY _tg__ZTV6dd1121__7ee31121[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1121[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc121__6dd1121__7ee31121[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__6dd1121__7ee31121[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc121__7ee31121[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc121__7ee31121[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee31121[] = {
+ {&(_ZTV7ee31121[5]), 5,17},
+ {&(_ZTV7ee31121[10]), 10,17},
+ {&(_ZTV7ee31121[13]), 13,17},
+ {&(_ZTV7ee31121[16]), 16,17},
+ {&(_tg__ZTV6dd1121__7ee31121[4]), 4,4},
+ {&(_tg__ZTV5cc121__6dd1121__7ee31121[3]), 3,3},
+ {&(_tg__ZTV4bb21__6dd1121__7ee31121[3]), 3,4},
+ {&(_tg__ZTV5cc121__7ee31121[3]), 3,3},
+ {&(_tg__ZTV4bb21__5cc121__7ee31121[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee31121[];
+extern VTBL_ENTRY _ZTV7ee31121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31121[];
+static VTBL_ENTRY alt_thunk_names468[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee311213fooEv,_ZTv0_n12_N7ee311213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee311213fooEv,_ZThn24_N7ee311213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31121 = { "ee31121", // class name
+ bases_ee31121, 4,
+ &(vtc_ee31121[0]), // expected_vtbl_contents
+ &(vtt_ee31121[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee31121),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31121),17, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31121),9, //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 ee41121 : dd1121 {
+ int e;
+ virtual void bar(); // _ZN7ee411213barEv
+ ~ee41121(); // tgen
+ ee41121(); // tgen
+};
+//SIG(1 ee41121) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 Fi} v2 Fi} Fi} Fi} v1 Fi}
+
+
+void ee41121 ::bar(){vfunc_called(this, "_ZN7ee411213barEv");}
+ee41121 ::~ee41121(){ note_dtor("ee41121", this);} // tgen
+ee41121 ::ee41121(){ note_ctor("ee41121", this);} // tgen
+
+static void Test_ee41121()
+{
+ extern Class_Descriptor cd_ee41121;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee41121, buf);
+ ee41121 *dp, &lv = *(dp=new (buf) ee41121());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee41121)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41121)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee41121");
+ check_base_class_offset(lv, (bb21*)(cc121*), ABISELECT(32,20), "ee41121");
+ check_base_class_offset(lv, (cc121*)(dd1121*), ABISELECT(16,12), "ee41121");
+ check_base_class_offset(lv, (dd1121*), 0, "ee41121");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41121.e");
+ test_class_info(&lv, &cd_ee41121);
+ dp->~ee41121();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41121(Test_ee41121, "ee41121", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee41121C1Ev();
+extern void _ZN7ee41121D1Ev();
+Name_Map name_map_ee41121[] = {
+ NSPAIR(_ZN7ee41121C1Ev),
+ NSPAIR(_ZN7ee41121D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc121;
+extern VTBL_ENTRY _ZTI5cc121[];
+extern VTBL_ENTRY _ZTV5cc121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc121[];
+extern Class_Descriptor cd_dd1121;
+extern VTBL_ENTRY _ZTI6dd1121[];
+extern VTBL_ENTRY _ZTV6dd1121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1121[];
+static Base_Class bases_ee41121[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 8, //bcp->virtual_function_table_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_cc121, 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_dd1121, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41121[];
+extern void _ZN7ee411213barEv();
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY vtc_ee41121[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41121[0]),
+ (VTBL_ENTRY)&_ZN7ee411213barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41121[0]),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee41121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee41121[];
+static VTBL_ENTRY _tg__ZTV6dd1121__7ee41121[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1121[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc121__6dd1121__7ee41121[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__6dd1121__7ee41121[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc121__7ee41121[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc121__7ee41121[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee41121[] = {
+ {&(_ZTV7ee41121[4]), 4,12},
+ {&(_tg__ZTV6dd1121__7ee41121[4]), 4,4},
+ {&(_tg__ZTV5cc121__6dd1121__7ee41121[3]), 3,3},
+ {&(_tg__ZTV4bb21__6dd1121__7ee41121[3]), 3,4},
+ {&(_ZTV7ee41121[8]), 8,12},
+ {&(_ZTV7ee41121[11]), 11,12},
+ {&(_tg__ZTV5cc121__7ee41121[3]), 3,3},
+ {&(_tg__ZTV4bb21__5cc121__7ee41121[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee41121[];
+extern VTBL_ENTRY _ZTV7ee41121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41121[];
+Class_Descriptor cd_ee41121 = { "ee41121", // class name
+ bases_ee41121, 4,
+ &(vtc_ee41121[0]), // expected_vtbl_contents
+ &(vtt_ee41121[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee41121),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41121),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41121),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 ee51121 : virtual dd1121 {
+ int e;
+ virtual void bar(); // _ZN7ee511213barEv
+ ~ee51121(); // tgen
+ ee51121(); // tgen
+};
+//SIG(1 ee51121) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 Fi} v2 Fi} Fi} Fi} v1 Fi}
+
+
+void ee51121 ::bar(){vfunc_called(this, "_ZN7ee511213barEv");}
+ee51121 ::~ee51121(){ note_dtor("ee51121", this);} // tgen
+ee51121 ::ee51121(){ note_ctor("ee51121", this);} // tgen
+
+static void Test_ee51121()
+{
+ extern Class_Descriptor cd_ee51121;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee51121, buf);
+ ee51121 *dp, &lv = *(dp=new (buf) ee51121());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee51121)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51121)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(48,24), "ee51121");
+ check_base_class_offset(lv, (bb21*)(cc121*), ABISELECT(48,24), "ee51121");
+ check_base_class_offset(lv, (cc121*)(dd1121*), ABISELECT(32,16), "ee51121");
+ check_base_class_offset(lv, (dd1121*), ABISELECT(16,8), "ee51121");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51121.e");
+ test_class_info(&lv, &cd_ee51121);
+ dp->~ee51121();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51121(Test_ee51121, "ee51121", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee51121C1Ev();
+extern void _ZN7ee51121D1Ev();
+Name_Map name_map_ee51121[] = {
+ NSPAIR(_ZN7ee51121C1Ev),
+ NSPAIR(_ZN7ee51121D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc121;
+extern VTBL_ENTRY _ZTI5cc121[];
+extern VTBL_ENTRY _ZTV5cc121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc121[];
+extern Class_Descriptor cd_dd1121;
+extern VTBL_ENTRY _ZTI6dd1121[];
+extern VTBL_ENTRY _ZTV6dd1121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1121[];
+static Base_Class bases_ee51121[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb21, ABISELECT(48,24), //bcp->offset
+ 13, //bcp->virtual_function_table_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_cc121, 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_dd1121, 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 _ZTI7ee51121[];
+extern void _ZN7ee511213barEv();
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY vtc_ee51121[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51121[0]),
+ (VTBL_ENTRY)&_ZN7ee511213barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51121[0]),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51121[0]),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee51121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee51121[];
+static VTBL_ENTRY _tg__ZTV6dd1121__7ee51121[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1121[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc121__6dd1121__7ee51121[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__6dd1121__7ee51121[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc121__7ee51121[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc121__7ee51121[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee51121[] = {
+ {&(_ZTV7ee51121[5]), 5,17},
+ {&(_ZTV7ee51121[10]), 10,17},
+ {&(_ZTV7ee51121[13]), 13,17},
+ {&(_ZTV7ee51121[16]), 16,17},
+ {&(_tg__ZTV6dd1121__7ee51121[4]), 4,4},
+ {&(_tg__ZTV5cc121__6dd1121__7ee51121[3]), 3,3},
+ {&(_tg__ZTV4bb21__6dd1121__7ee51121[3]), 3,4},
+ {&(_tg__ZTV5cc121__7ee51121[3]), 3,3},
+ {&(_tg__ZTV4bb21__5cc121__7ee51121[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee51121[];
+extern VTBL_ENTRY _ZTV7ee51121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51121[];
+Class_Descriptor cd_ee51121 = { "ee51121", // class name
+ bases_ee51121, 4,
+ &(vtc_ee51121[0]), // expected_vtbl_contents
+ &(vtt_ee51121[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee51121),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51121),17, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51121),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 ee61121 : dd1121 {
+ int e;
+ virtual void foo(); // _ZN7ee611213fooEv
+ virtual void bar(); // _ZN7ee611213barEv
+ ~ee61121(); // tgen
+ ee61121(); // tgen
+};
+//SIG(1 ee61121) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} v1 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee61121 ::foo(){vfunc_called(this, "_ZN7ee611213fooEv");}
+void ee61121 ::bar(){vfunc_called(this, "_ZN7ee611213barEv");}
+ee61121 ::~ee61121(){ note_dtor("ee61121", this);} // tgen
+ee61121 ::ee61121(){ note_ctor("ee61121", this);} // tgen
+
+static void Test_ee61121()
+{
+ extern Class_Descriptor cd_ee61121;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee61121, buf);
+ ee61121 *dp, &lv = *(dp=new (buf) ee61121());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee61121)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61121)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee61121");
+ check_base_class_offset(lv, (bb21*)(cc121*), ABISELECT(32,20), "ee61121");
+ check_base_class_offset(lv, (cc121*)(dd1121*), ABISELECT(16,12), "ee61121");
+ check_base_class_offset(lv, (dd1121*), 0, "ee61121");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61121.e");
+ test_class_info(&lv, &cd_ee61121);
+ dp->~ee61121();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61121(Test_ee61121, "ee61121", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee61121C1Ev();
+extern void _ZN7ee61121D1Ev();
+Name_Map name_map_ee61121[] = {
+ NSPAIR(_ZN7ee61121C1Ev),
+ NSPAIR(_ZN7ee61121D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc121;
+extern VTBL_ENTRY _ZTI5cc121[];
+extern VTBL_ENTRY _ZTV5cc121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc121[];
+extern Class_Descriptor cd_dd1121;
+extern VTBL_ENTRY _ZTI6dd1121[];
+extern VTBL_ENTRY _ZTV6dd1121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1121[];
+static Base_Class bases_ee61121[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc121, 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_dd1121, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61121[];
+extern void _ZN7ee611213fooEv();
+extern void _ZN7ee611213barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee611213fooEv,_ZTv0_n12_N7ee611213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee611213fooEv,_ZThn20_N7ee611213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61121[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61121[0]),
+ (VTBL_ENTRY)&_ZN7ee611213fooEv,
+ (VTBL_ENTRY)&_ZN7ee611213barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61121[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee61121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee611213fooEv,_ZTv0_n12_N7ee611213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee61121[];
+static VTBL_ENTRY _tg__ZTV6dd1121__7ee61121[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1121[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc121__6dd1121__7ee61121[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__6dd1121__7ee61121[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc121__7ee61121[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc121__7ee61121[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee61121[] = {
+ {&(_ZTV7ee61121[4]), 4,13},
+ {&(_tg__ZTV6dd1121__7ee61121[4]), 4,4},
+ {&(_tg__ZTV5cc121__6dd1121__7ee61121[3]), 3,3},
+ {&(_tg__ZTV4bb21__6dd1121__7ee61121[3]), 3,4},
+ {&(_ZTV7ee61121[9]), 9,13},
+ {&(_ZTV7ee61121[12]), 12,13},
+ {&(_tg__ZTV5cc121__7ee61121[3]), 3,3},
+ {&(_tg__ZTV4bb21__5cc121__7ee61121[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee61121[];
+extern VTBL_ENTRY _ZTV7ee61121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61121[];
+static VTBL_ENTRY alt_thunk_names469[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee611213fooEv,_ZTv0_n12_N7ee611213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee611213fooEv,_ZThn20_N7ee611213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61121 = { "ee61121", // class name
+ bases_ee61121, 4,
+ &(vtc_ee61121[0]), // expected_vtbl_contents
+ &(vtt_ee61121[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee61121),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61121),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61121),8, //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 ee71121 : virtual dd1121 {
+ int e;
+ virtual void foo(); // _ZN7ee711213fooEv
+ virtual void bar(); // _ZN7ee711213barEv
+ ~ee71121(); // tgen
+ ee71121(); // tgen
+};
+//SIG(1 ee71121) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} v1 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee71121 ::foo(){vfunc_called(this, "_ZN7ee711213fooEv");}
+void ee71121 ::bar(){vfunc_called(this, "_ZN7ee711213barEv");}
+ee71121 ::~ee71121(){ note_dtor("ee71121", this);} // tgen
+ee71121 ::ee71121(){ note_ctor("ee71121", this);} // tgen
+
+static void Test_ee71121()
+{
+ extern Class_Descriptor cd_ee71121;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee71121, buf);
+ ee71121 *dp, &lv = *(dp=new (buf) ee71121());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee71121)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71121)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(48,24), "ee71121");
+ check_base_class_offset(lv, (bb21*)(cc121*), ABISELECT(48,24), "ee71121");
+ check_base_class_offset(lv, (cc121*)(dd1121*), ABISELECT(32,16), "ee71121");
+ check_base_class_offset(lv, (dd1121*), ABISELECT(16,8), "ee71121");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71121.e");
+ test_class_info(&lv, &cd_ee71121);
+ dp->~ee71121();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71121(Test_ee71121, "ee71121", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee71121C1Ev();
+extern void _ZN7ee71121D1Ev();
+Name_Map name_map_ee71121[] = {
+ NSPAIR(_ZN7ee71121C1Ev),
+ NSPAIR(_ZN7ee71121D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc121;
+extern VTBL_ENTRY _ZTI5cc121[];
+extern VTBL_ENTRY _ZTV5cc121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc121[];
+extern Class_Descriptor cd_dd1121;
+extern VTBL_ENTRY _ZTI6dd1121[];
+extern VTBL_ENTRY _ZTV6dd1121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1121[];
+static Base_Class bases_ee71121[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb21, ABISELECT(48,24), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc121, 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_dd1121, 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 _ZTI7ee71121[];
+extern void _ZN7ee711213fooEv();
+extern void _ZN7ee711213barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee711213fooEv,_ZTv0_n12_N7ee711213fooEv)();
+extern void ABISELECT(_ZThn48_N7ee711213fooEv,_ZThn24_N7ee711213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71121[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71121[0]),
+ (VTBL_ENTRY)&_ZN7ee711213fooEv,
+ (VTBL_ENTRY)&_ZN7ee711213barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71121[0]),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71121[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee71121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee711213fooEv,_ZTv0_n12_N7ee711213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee71121[];
+static VTBL_ENTRY _tg__ZTV6dd1121__7ee71121[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1121[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc121__6dd1121__7ee71121[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__6dd1121__7ee71121[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc121__7ee71121[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc121__7ee71121[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee71121[] = {
+ {&(_ZTV7ee71121[5]), 5,18},
+ {&(_ZTV7ee71121[11]), 11,18},
+ {&(_ZTV7ee71121[14]), 14,18},
+ {&(_ZTV7ee71121[17]), 17,18},
+ {&(_tg__ZTV6dd1121__7ee71121[4]), 4,4},
+ {&(_tg__ZTV5cc121__6dd1121__7ee71121[3]), 3,3},
+ {&(_tg__ZTV4bb21__6dd1121__7ee71121[3]), 3,4},
+ {&(_tg__ZTV5cc121__7ee71121[3]), 3,3},
+ {&(_tg__ZTV4bb21__5cc121__7ee71121[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee71121[];
+extern VTBL_ENTRY _ZTV7ee71121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71121[];
+static VTBL_ENTRY alt_thunk_names470[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee711213fooEv,_ZTv0_n12_N7ee711213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee711213fooEv,_ZThn24_N7ee711213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71121 = { "ee71121", // class name
+ bases_ee71121, 4,
+ &(vtc_ee71121[0]), // expected_vtbl_contents
+ &(vtt_ee71121[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee71121),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71121),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71121),9, //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 dd2121 : cc121 {
+ int d;
+ virtual void foo(); // _ZN6dd21213fooEv
+ ~dd2121(); // tgen
+ dd2121(); // tgen
+};
+//SIG(-1 dd2121) C1{ BC2{ VBC3{ BC4{ v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void dd2121 ::foo(){vfunc_called(this, "_ZN6dd21213fooEv");}
+dd2121 ::~dd2121(){ note_dtor("dd2121", this);} // tgen
+dd2121 ::dd2121(){ note_ctor("dd2121", this);} // tgen
+
+static void Test_dd2121()
+{
+ extern Class_Descriptor cd_dd2121;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd2121, buf);
+ dd2121 *dp, &lv = *(dp=new (buf) dd2121());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd2121)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2121)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(16,12), "dd2121");
+ check_base_class_offset(lv, (bb21*)(cc121*), ABISELECT(16,12), "dd2121");
+ check_base_class_offset(lv, (cc121*), 0, "dd2121");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd2121.d");
+ test_class_info(&lv, &cd_dd2121);
+ dp->~dd2121();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2121(Test_dd2121, "dd2121", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd2121C1Ev();
+extern void _ZN6dd2121D1Ev();
+Name_Map name_map_dd2121[] = {
+ NSPAIR(_ZN6dd2121C1Ev),
+ NSPAIR(_ZN6dd2121D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc121;
+extern VTBL_ENTRY _ZTI5cc121[];
+extern VTBL_ENTRY _ZTV5cc121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc121[];
+static Base_Class bases_dd2121[] = {
+ // 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_bb21, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc121, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd2121[];
+extern void _ZN6dd21213fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd21213fooEv,_ZTv0_n12_N6dd21213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd21213fooEv,_ZThn12_N6dd21213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd2121[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2121[0]),
+ (VTBL_ENTRY)&_ZN6dd21213fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21213fooEv,_ZTv0_n12_N6dd21213fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd2121[];
+static VTBL_ENTRY _tg__ZTV5cc121__6dd2121[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc121__6dd2121[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_dd2121[] = {
+ {&(_ZTV6dd2121[3]), 3,8},
+ {&(_tg__ZTV5cc121__6dd2121[3]), 3,3},
+ {&(_tg__ZTV4bb21__5cc121__6dd2121[3]), 3,4},
+ {&(_ZTV6dd2121[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI6dd2121[];
+extern VTBL_ENTRY _ZTV6dd2121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2121[];
+static VTBL_ENTRY alt_thunk_names471[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21213fooEv,_ZTv0_n12_N6dd21213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd21213fooEv,_ZThn12_N6dd21213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd2121 = { "dd2121", // class name
+ bases_dd2121, 3,
+ &(vtc_dd2121[0]), // expected_vtbl_contents
+ &(vtt_dd2121[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd2121),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2121),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd2121),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names471,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee02121 : dd2121 {
+ int e;
+ ~ee02121(); // tgen
+ ee02121(); // tgen
+};
+//SIG(1 ee02121) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} v1 Fi} Fi} v1 Fi} Fi}
+
+
+ee02121 ::~ee02121(){ note_dtor("ee02121", this);} // tgen
+ee02121 ::ee02121(){ note_ctor("ee02121", this);} // tgen
+
+static void Test_ee02121()
+{
+ extern Class_Descriptor cd_ee02121;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee02121, buf);
+ ee02121 *dp, &lv = *(dp=new (buf) ee02121());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee02121)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02121)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(24,16), "ee02121");
+ check_base_class_offset(lv, (bb21*)(cc121*)(dd2121*), ABISELECT(24,16), "ee02121");
+ check_base_class_offset(lv, (cc121*)(dd2121*), 0, "ee02121");
+ check_base_class_offset(lv, (dd2121*), 0, "ee02121");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee02121.e");
+ test_class_info(&lv, &cd_ee02121);
+ dp->~ee02121();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02121(Test_ee02121, "ee02121", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee02121C1Ev();
+extern void _ZN7ee02121D1Ev();
+Name_Map name_map_ee02121[] = {
+ NSPAIR(_ZN7ee02121C1Ev),
+ NSPAIR(_ZN7ee02121D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc121;
+extern VTBL_ENTRY _ZTI5cc121[];
+extern VTBL_ENTRY _ZTV5cc121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc121[];
+extern Class_Descriptor cd_dd2121;
+extern VTBL_ENTRY _ZTI6dd2121[];
+extern VTBL_ENTRY _ZTV6dd2121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2121[];
+static Base_Class bases_ee02121[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc121, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2121, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee02121[];
+extern void _ZN6dd21213fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd21213fooEv,_ZTv0_n12_N6dd21213fooEv)();
+extern void ABISELECT(_ZThn24_N6dd21213fooEv,_ZThn16_N6dd21213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee02121[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02121[0]),
+ (VTBL_ENTRY)&_ZN6dd21213fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee02121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21213fooEv,_ZTv0_n12_N6dd21213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee02121[];
+extern void _ZN6dd21213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2121__7ee02121[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2121[0]),
+ (VTBL_ENTRY)&_ZN6dd21213fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1216dd2121__7ee02121[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc1216dd2121__7ee02121[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd21213fooEv,_ZTv0_n12_N6dd21213fooEv)();
+extern void ABISELECT(_ZThn24_N6dd21213fooEv,_ZThn16_N6dd21213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd2121__7ee02121[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21213fooEv,_ZTv0_n12_N6dd21213fooEv),
+};
+static VTT_ENTRY vtt_ee02121[] = {
+ {&(_ZTV7ee02121[3]), 3,8},
+ {&(_tg__ZTV6dd2121__7ee02121[3]), 3,4},
+ {&(_tg__ZTV5cc1216dd2121__7ee02121[3]), 3,3},
+ {&(_tg__ZTV4bb21__5cc1216dd2121__7ee02121[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd2121__7ee02121[3]), 3,4},
+ {&(_ZTV7ee02121[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee02121[];
+extern VTBL_ENTRY _ZTV7ee02121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee02121[];
+static VTBL_ENTRY alt_thunk_names472[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21213fooEv,_ZTv0_n12_N6dd21213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd21213fooEv,_ZThn16_N6dd21213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd21213fooEv,_ZThn16_N6dd21213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee02121 = { "ee02121", // class name
+ bases_ee02121, 4,
+ &(vtc_ee02121[0]), // expected_vtbl_contents
+ &(vtt_ee02121[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee02121),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02121),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee02121),6, //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 ee12121 : virtual dd2121 {
+ int e;
+ ~ee12121(); // tgen
+ ee12121(); // tgen
+};
+//SIG(1 ee12121) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} v1 Fi} Fi} v1 Fi} Fi}
+
+
+ee12121 ::~ee12121(){ note_dtor("ee12121", this);} // tgen
+ee12121 ::ee12121(){ note_ctor("ee12121", this);} // tgen
+
+static void Test_ee12121()
+{
+ extern Class_Descriptor cd_ee12121;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee12121, buf);
+ ee12121 *dp, &lv = *(dp=new (buf) ee12121());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee12121)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12121)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee12121");
+ check_base_class_offset(lv, (bb21*)(cc121*)(dd2121*), ABISELECT(32,20), "ee12121");
+ check_base_class_offset(lv, (cc121*)(dd2121*), ABISELECT(16,8), "ee12121");
+ check_base_class_offset(lv, (dd2121*), ABISELECT(16,8), "ee12121");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12121.e");
+ test_class_info(&lv, &cd_ee12121);
+ dp->~ee12121();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12121(Test_ee12121, "ee12121", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee12121C1Ev();
+extern void _ZN7ee12121D1Ev();
+Name_Map name_map_ee12121[] = {
+ NSPAIR(_ZN7ee12121C1Ev),
+ NSPAIR(_ZN7ee12121D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc121;
+extern VTBL_ENTRY _ZTI5cc121[];
+extern VTBL_ENTRY _ZTV5cc121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc121[];
+extern Class_Descriptor cd_dd2121;
+extern VTBL_ENTRY _ZTI6dd2121[];
+extern VTBL_ENTRY _ZTV6dd2121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2121[];
+static Base_Class bases_ee12121[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc121, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2121, 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 _ZTI7ee12121[];
+extern void _ZN6dd21213fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd21213fooEv,_ZTv0_n12_N6dd21213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd21213fooEv,_ZThn12_N6dd21213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee12121[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12121[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12121[0]),
+ (VTBL_ENTRY)&_ZN6dd21213fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee12121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21213fooEv,_ZTv0_n12_N6dd21213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee12121[];
+extern void _ZN6dd21213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2121__7ee12121[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2121[0]),
+ (VTBL_ENTRY)&_ZN6dd21213fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1216dd2121__7ee12121[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc1216dd2121__7ee12121[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd21213fooEv,_ZTv0_n12_N6dd21213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd21213fooEv,_ZThn12_N6dd21213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd2121__7ee12121[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21213fooEv,_ZTv0_n12_N6dd21213fooEv),
+};
+static VTT_ENTRY vtt_ee12121[] = {
+ {&(_ZTV7ee12121[4]), 4,13},
+ {&(_ZTV7ee12121[8]), 8,13},
+ {&(_ZTV7ee12121[12]), 12,13},
+ {&(_tg__ZTV6dd2121__7ee12121[3]), 3,4},
+ {&(_tg__ZTV5cc1216dd2121__7ee12121[3]), 3,3},
+ {&(_tg__ZTV4bb21__5cc1216dd2121__7ee12121[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd2121__7ee12121[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee12121[];
+extern VTBL_ENTRY _ZTV7ee12121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12121[];
+static VTBL_ENTRY alt_thunk_names473[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21213fooEv,_ZTv0_n12_N6dd21213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd21213fooEv,_ZThn12_N6dd21213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd21213fooEv,_ZThn12_N6dd21213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee12121 = { "ee12121", // class name
+ bases_ee12121, 4,
+ &(vtc_ee12121[0]), // expected_vtbl_contents
+ &(vtt_ee12121[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee12121),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12121),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12121),7, //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 ee22121 : dd2121 {
+ int e;
+ virtual void foo(); // _ZN7ee221213fooEv
+ ~ee22121(); // tgen
+ ee22121(); // tgen
+};
+//SIG(1 ee22121) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee22121 ::foo(){vfunc_called(this, "_ZN7ee221213fooEv");}
+ee22121 ::~ee22121(){ note_dtor("ee22121", this);} // tgen
+ee22121 ::ee22121(){ note_ctor("ee22121", this);} // tgen
+
+static void Test_ee22121()
+{
+ extern Class_Descriptor cd_ee22121;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee22121, buf);
+ ee22121 *dp, &lv = *(dp=new (buf) ee22121());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee22121)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22121)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(24,16), "ee22121");
+ check_base_class_offset(lv, (bb21*)(cc121*)(dd2121*), ABISELECT(24,16), "ee22121");
+ check_base_class_offset(lv, (cc121*)(dd2121*), 0, "ee22121");
+ check_base_class_offset(lv, (dd2121*), 0, "ee22121");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee22121.e");
+ test_class_info(&lv, &cd_ee22121);
+ dp->~ee22121();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22121(Test_ee22121, "ee22121", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee22121C1Ev();
+extern void _ZN7ee22121D1Ev();
+Name_Map name_map_ee22121[] = {
+ NSPAIR(_ZN7ee22121C1Ev),
+ NSPAIR(_ZN7ee22121D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc121;
+extern VTBL_ENTRY _ZTI5cc121[];
+extern VTBL_ENTRY _ZTV5cc121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc121[];
+extern Class_Descriptor cd_dd2121;
+extern VTBL_ENTRY _ZTI6dd2121[];
+extern VTBL_ENTRY _ZTV6dd2121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2121[];
+static Base_Class bases_ee22121[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc121, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2121, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee22121[];
+extern void _ZN7ee221213fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee221213fooEv,_ZTv0_n12_N7ee221213fooEv)();
+extern void ABISELECT(_ZThn24_N7ee221213fooEv,_ZThn16_N7ee221213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee22121[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22121[0]),
+ (VTBL_ENTRY)&_ZN7ee221213fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee22121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee221213fooEv,_ZTv0_n12_N7ee221213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee22121[];
+extern void _ZN6dd21213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2121__7ee22121[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2121[0]),
+ (VTBL_ENTRY)&_ZN6dd21213fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1216dd2121__7ee22121[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc1216dd2121__7ee22121[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd21213fooEv,_ZTv0_n12_N6dd21213fooEv)();
+extern void ABISELECT(_ZThn24_N6dd21213fooEv,_ZThn16_N6dd21213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd2121__7ee22121[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21213fooEv,_ZTv0_n12_N6dd21213fooEv),
+};
+static VTT_ENTRY vtt_ee22121[] = {
+ {&(_ZTV7ee22121[3]), 3,8},
+ {&(_tg__ZTV6dd2121__7ee22121[3]), 3,4},
+ {&(_tg__ZTV5cc1216dd2121__7ee22121[3]), 3,3},
+ {&(_tg__ZTV4bb21__5cc1216dd2121__7ee22121[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd2121__7ee22121[3]), 3,4},
+ {&(_ZTV7ee22121[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee22121[];
+extern VTBL_ENTRY _ZTV7ee22121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee22121[];
+static VTBL_ENTRY alt_thunk_names474[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21213fooEv,_ZTv0_n12_N6dd21213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd21213fooEv,_ZThn16_N6dd21213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee221213fooEv,_ZTv0_n12_N7ee221213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee221213fooEv,_ZThn16_N7ee221213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee22121 = { "ee22121", // class name
+ bases_ee22121, 4,
+ &(vtc_ee22121[0]), // expected_vtbl_contents
+ &(vtt_ee22121[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee22121),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22121),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee22121),6, //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 ee32121 : virtual dd2121 {
+ int e;
+ virtual void foo(); // _ZN7ee321213fooEv
+ ~ee32121(); // tgen
+ ee32121(); // tgen
+};
+//SIG(1 ee32121) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee32121 ::foo(){vfunc_called(this, "_ZN7ee321213fooEv");}
+ee32121 ::~ee32121(){ note_dtor("ee32121", this);} // tgen
+ee32121 ::ee32121(){ note_ctor("ee32121", this);} // tgen
+
+static void Test_ee32121()
+{
+ extern Class_Descriptor cd_ee32121;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee32121, buf);
+ ee32121 *dp, &lv = *(dp=new (buf) ee32121());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee32121)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32121)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee32121");
+ check_base_class_offset(lv, (bb21*)(cc121*)(dd2121*), ABISELECT(32,20), "ee32121");
+ check_base_class_offset(lv, (cc121*)(dd2121*), ABISELECT(16,8), "ee32121");
+ check_base_class_offset(lv, (dd2121*), ABISELECT(16,8), "ee32121");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32121.e");
+ test_class_info(&lv, &cd_ee32121);
+ dp->~ee32121();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32121(Test_ee32121, "ee32121", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee32121C1Ev();
+extern void _ZN7ee32121D1Ev();
+Name_Map name_map_ee32121[] = {
+ NSPAIR(_ZN7ee32121C1Ev),
+ NSPAIR(_ZN7ee32121D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc121;
+extern VTBL_ENTRY _ZTI5cc121[];
+extern VTBL_ENTRY _ZTV5cc121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc121[];
+extern Class_Descriptor cd_dd2121;
+extern VTBL_ENTRY _ZTI6dd2121[];
+extern VTBL_ENTRY _ZTV6dd2121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2121[];
+static Base_Class bases_ee32121[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc121, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2121, 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 _ZTI7ee32121[];
+extern void _ZN7ee321213fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee321213fooEv,_ZTv0_n16_N7ee321213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee321213fooEv,_ZThn8_N7ee321213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee321213fooEv,_ZTv0_n12_N7ee321213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee321213fooEv,_ZThn20_N7ee321213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee32121[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32121[0]),
+ (VTBL_ENTRY)&_ZN7ee321213fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee321213fooEv,_ZTv0_n16_N7ee321213fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee32121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee321213fooEv,_ZTv0_n12_N7ee321213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee32121[];
+extern void _ZN6dd21213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2121__7ee32121[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2121[0]),
+ (VTBL_ENTRY)&_ZN6dd21213fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1216dd2121__7ee32121[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc1216dd2121__7ee32121[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd21213fooEv,_ZTv0_n12_N6dd21213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd21213fooEv,_ZThn12_N6dd21213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd2121__7ee32121[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21213fooEv,_ZTv0_n12_N6dd21213fooEv),
+};
+static VTT_ENTRY vtt_ee32121[] = {
+ {&(_ZTV7ee32121[4]), 4,14},
+ {&(_ZTV7ee32121[9]), 9,14},
+ {&(_ZTV7ee32121[13]), 13,14},
+ {&(_tg__ZTV6dd2121__7ee32121[3]), 3,4},
+ {&(_tg__ZTV5cc1216dd2121__7ee32121[3]), 3,3},
+ {&(_tg__ZTV4bb21__5cc1216dd2121__7ee32121[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd2121__7ee32121[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee32121[];
+extern VTBL_ENTRY _ZTV7ee32121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32121[];
+static VTBL_ENTRY alt_thunk_names475[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21213fooEv,_ZTv0_n12_N6dd21213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd21213fooEv,_ZThn12_N6dd21213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee321213fooEv,_ZTv0_n12_N7ee321213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee321213fooEv,_ZThn20_N7ee321213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee321213fooEv,_ZTv0_n16_N7ee321213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee321213fooEv,_ZThn8_N7ee321213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32121 = { "ee32121", // class name
+ bases_ee32121, 4,
+ &(vtc_ee32121[0]), // expected_vtbl_contents
+ &(vtt_ee32121[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee32121),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32121),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32121),7, //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 ee42121 : dd2121 {
+ int e;
+ virtual void bar(); // _ZN7ee421213barEv
+ ~ee42121(); // tgen
+ ee42121(); // tgen
+};
+//SIG(1 ee42121) C1{ BC2{ BC3{ VBC4{ BC5{ v2 Fi} v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee42121 ::bar(){vfunc_called(this, "_ZN7ee421213barEv");}
+ee42121 ::~ee42121(){ note_dtor("ee42121", this);} // tgen
+ee42121 ::ee42121(){ note_ctor("ee42121", this);} // tgen
+
+static void Test_ee42121()
+{
+ extern Class_Descriptor cd_ee42121;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee42121, buf);
+ ee42121 *dp, &lv = *(dp=new (buf) ee42121());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee42121)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42121)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(24,16), "ee42121");
+ check_base_class_offset(lv, (bb21*)(cc121*)(dd2121*), ABISELECT(24,16), "ee42121");
+ check_base_class_offset(lv, (cc121*)(dd2121*), 0, "ee42121");
+ check_base_class_offset(lv, (dd2121*), 0, "ee42121");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee42121.e");
+ test_class_info(&lv, &cd_ee42121);
+ dp->~ee42121();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42121(Test_ee42121, "ee42121", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee42121C1Ev();
+extern void _ZN7ee42121D1Ev();
+Name_Map name_map_ee42121[] = {
+ NSPAIR(_ZN7ee42121C1Ev),
+ NSPAIR(_ZN7ee42121D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc121;
+extern VTBL_ENTRY _ZTI5cc121[];
+extern VTBL_ENTRY _ZTV5cc121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc121[];
+extern Class_Descriptor cd_dd2121;
+extern VTBL_ENTRY _ZTI6dd2121[];
+extern VTBL_ENTRY _ZTV6dd2121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2121[];
+static Base_Class bases_ee42121[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc121, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2121, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee42121[];
+extern void _ZN6dd21213fooEv();
+extern void _ZN7ee421213barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd21213fooEv,_ZTv0_n12_N6dd21213fooEv)();
+extern void ABISELECT(_ZThn24_N6dd21213fooEv,_ZThn16_N6dd21213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee42121[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42121[0]),
+ (VTBL_ENTRY)&_ZN6dd21213fooEv,
+ (VTBL_ENTRY)&_ZN7ee421213barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee42121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21213fooEv,_ZTv0_n12_N6dd21213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee42121[];
+extern void _ZN6dd21213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2121__7ee42121[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2121[0]),
+ (VTBL_ENTRY)&_ZN6dd21213fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1216dd2121__7ee42121[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc1216dd2121__7ee42121[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd21213fooEv,_ZTv0_n12_N6dd21213fooEv)();
+extern void ABISELECT(_ZThn24_N6dd21213fooEv,_ZThn16_N6dd21213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd2121__7ee42121[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21213fooEv,_ZTv0_n12_N6dd21213fooEv),
+};
+static VTT_ENTRY vtt_ee42121[] = {
+ {&(_ZTV7ee42121[3]), 3,9},
+ {&(_tg__ZTV6dd2121__7ee42121[3]), 3,4},
+ {&(_tg__ZTV5cc1216dd2121__7ee42121[3]), 3,3},
+ {&(_tg__ZTV4bb21__5cc1216dd2121__7ee42121[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd2121__7ee42121[3]), 3,4},
+ {&(_ZTV7ee42121[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee42121[];
+extern VTBL_ENTRY _ZTV7ee42121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee42121[];
+static VTBL_ENTRY alt_thunk_names476[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21213fooEv,_ZTv0_n12_N6dd21213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd21213fooEv,_ZThn16_N6dd21213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd21213fooEv,_ZThn16_N6dd21213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee42121 = { "ee42121", // class name
+ bases_ee42121, 4,
+ &(vtc_ee42121[0]), // expected_vtbl_contents
+ &(vtt_ee42121[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee42121),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42121),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee42121),6, //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 ee52121 : virtual dd2121 {
+ int e;
+ virtual void bar(); // _ZN7ee521213barEv
+ ~ee52121(); // tgen
+ ee52121(); // tgen
+};
+//SIG(1 ee52121) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 Fi} v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee52121 ::bar(){vfunc_called(this, "_ZN7ee521213barEv");}
+ee52121 ::~ee52121(){ note_dtor("ee52121", this);} // tgen
+ee52121 ::ee52121(){ note_ctor("ee52121", this);} // tgen
+
+static void Test_ee52121()
+{
+ extern Class_Descriptor cd_ee52121;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee52121, buf);
+ ee52121 *dp, &lv = *(dp=new (buf) ee52121());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee52121)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52121)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee52121");
+ check_base_class_offset(lv, (bb21*)(cc121*)(dd2121*), ABISELECT(32,20), "ee52121");
+ check_base_class_offset(lv, (cc121*)(dd2121*), ABISELECT(16,8), "ee52121");
+ check_base_class_offset(lv, (dd2121*), ABISELECT(16,8), "ee52121");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52121.e");
+ test_class_info(&lv, &cd_ee52121);
+ dp->~ee52121();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52121(Test_ee52121, "ee52121", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee52121C1Ev();
+extern void _ZN7ee52121D1Ev();
+Name_Map name_map_ee52121[] = {
+ NSPAIR(_ZN7ee52121C1Ev),
+ NSPAIR(_ZN7ee52121D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc121;
+extern VTBL_ENTRY _ZTI5cc121[];
+extern VTBL_ENTRY _ZTV5cc121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc121[];
+extern Class_Descriptor cd_dd2121;
+extern VTBL_ENTRY _ZTI6dd2121[];
+extern VTBL_ENTRY _ZTV6dd2121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2121[];
+static Base_Class bases_ee52121[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc121, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2121, 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 _ZTI7ee52121[];
+extern void _ZN7ee521213barEv();
+extern void _ZN6dd21213fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd21213fooEv,_ZTv0_n12_N6dd21213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd21213fooEv,_ZThn12_N6dd21213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee52121[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52121[0]),
+ (VTBL_ENTRY)&_ZN7ee521213barEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52121[0]),
+ (VTBL_ENTRY)&_ZN6dd21213fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee52121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21213fooEv,_ZTv0_n12_N6dd21213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee52121[];
+extern void _ZN6dd21213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2121__7ee52121[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2121[0]),
+ (VTBL_ENTRY)&_ZN6dd21213fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1216dd2121__7ee52121[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc1216dd2121__7ee52121[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd21213fooEv,_ZTv0_n12_N6dd21213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd21213fooEv,_ZThn12_N6dd21213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd2121__7ee52121[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21213fooEv,_ZTv0_n12_N6dd21213fooEv),
+};
+static VTT_ENTRY vtt_ee52121[] = {
+ {&(_ZTV7ee52121[4]), 4,14},
+ {&(_ZTV7ee52121[9]), 9,14},
+ {&(_ZTV7ee52121[13]), 13,14},
+ {&(_tg__ZTV6dd2121__7ee52121[3]), 3,4},
+ {&(_tg__ZTV5cc1216dd2121__7ee52121[3]), 3,3},
+ {&(_tg__ZTV4bb21__5cc1216dd2121__7ee52121[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd2121__7ee52121[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee52121[];
+extern VTBL_ENTRY _ZTV7ee52121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52121[];
+static VTBL_ENTRY alt_thunk_names477[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21213fooEv,_ZTv0_n12_N6dd21213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd21213fooEv,_ZThn12_N6dd21213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd21213fooEv,_ZThn12_N6dd21213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52121 = { "ee52121", // class name
+ bases_ee52121, 4,
+ &(vtc_ee52121[0]), // expected_vtbl_contents
+ &(vtt_ee52121[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee52121),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52121),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52121),7, //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 ee62121 : dd2121 {
+ int e;
+ virtual void foo(); // _ZN7ee621213fooEv
+ virtual void bar(); // _ZN7ee621213barEv
+ ~ee62121(); // tgen
+ ee62121(); // tgen
+};
+//SIG(1 ee62121) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} v1 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62121 ::foo(){vfunc_called(this, "_ZN7ee621213fooEv");}
+void ee62121 ::bar(){vfunc_called(this, "_ZN7ee621213barEv");}
+ee62121 ::~ee62121(){ note_dtor("ee62121", this);} // tgen
+ee62121 ::ee62121(){ note_ctor("ee62121", this);} // tgen
+
+static void Test_ee62121()
+{
+ extern Class_Descriptor cd_ee62121;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee62121, buf);
+ ee62121 *dp, &lv = *(dp=new (buf) ee62121());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee62121)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62121)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(24,16), "ee62121");
+ check_base_class_offset(lv, (bb21*)(cc121*)(dd2121*), ABISELECT(24,16), "ee62121");
+ check_base_class_offset(lv, (cc121*)(dd2121*), 0, "ee62121");
+ check_base_class_offset(lv, (dd2121*), 0, "ee62121");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee62121.e");
+ test_class_info(&lv, &cd_ee62121);
+ dp->~ee62121();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62121(Test_ee62121, "ee62121", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee62121C1Ev();
+extern void _ZN7ee62121D1Ev();
+Name_Map name_map_ee62121[] = {
+ NSPAIR(_ZN7ee62121C1Ev),
+ NSPAIR(_ZN7ee62121D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc121;
+extern VTBL_ENTRY _ZTI5cc121[];
+extern VTBL_ENTRY _ZTV5cc121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc121[];
+extern Class_Descriptor cd_dd2121;
+extern VTBL_ENTRY _ZTI6dd2121[];
+extern VTBL_ENTRY _ZTV6dd2121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2121[];
+static Base_Class bases_ee62121[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc121, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2121, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee62121[];
+extern void _ZN7ee621213fooEv();
+extern void _ZN7ee621213barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee621213fooEv,_ZTv0_n12_N7ee621213fooEv)();
+extern void ABISELECT(_ZThn24_N7ee621213fooEv,_ZThn16_N7ee621213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee62121[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62121[0]),
+ (VTBL_ENTRY)&_ZN7ee621213fooEv,
+ (VTBL_ENTRY)&_ZN7ee621213barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee62121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee621213fooEv,_ZTv0_n12_N7ee621213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee62121[];
+extern void _ZN6dd21213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2121__7ee62121[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2121[0]),
+ (VTBL_ENTRY)&_ZN6dd21213fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1216dd2121__7ee62121[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc1216dd2121__7ee62121[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd21213fooEv,_ZTv0_n12_N6dd21213fooEv)();
+extern void ABISELECT(_ZThn24_N6dd21213fooEv,_ZThn16_N6dd21213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd2121__7ee62121[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21213fooEv,_ZTv0_n12_N6dd21213fooEv),
+};
+static VTT_ENTRY vtt_ee62121[] = {
+ {&(_ZTV7ee62121[3]), 3,9},
+ {&(_tg__ZTV6dd2121__7ee62121[3]), 3,4},
+ {&(_tg__ZTV5cc1216dd2121__7ee62121[3]), 3,3},
+ {&(_tg__ZTV4bb21__5cc1216dd2121__7ee62121[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd2121__7ee62121[3]), 3,4},
+ {&(_ZTV7ee62121[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee62121[];
+extern VTBL_ENTRY _ZTV7ee62121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee62121[];
+static VTBL_ENTRY alt_thunk_names478[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21213fooEv,_ZTv0_n12_N6dd21213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd21213fooEv,_ZThn16_N6dd21213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee621213fooEv,_ZTv0_n12_N7ee621213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee621213fooEv,_ZThn16_N7ee621213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee62121 = { "ee62121", // class name
+ bases_ee62121, 4,
+ &(vtc_ee62121[0]), // expected_vtbl_contents
+ &(vtt_ee62121[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee62121),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62121),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee62121),6, //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 ee72121 : virtual dd2121 {
+ int e;
+ virtual void foo(); // _ZN7ee721213fooEv
+ virtual void bar(); // _ZN7ee721213barEv
+ ~ee72121(); // tgen
+ ee72121(); // tgen
+};
+//SIG(1 ee72121) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} v1 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72121 ::foo(){vfunc_called(this, "_ZN7ee721213fooEv");}
+void ee72121 ::bar(){vfunc_called(this, "_ZN7ee721213barEv");}
+ee72121 ::~ee72121(){ note_dtor("ee72121", this);} // tgen
+ee72121 ::ee72121(){ note_ctor("ee72121", this);} // tgen
+
+static void Test_ee72121()
+{
+ extern Class_Descriptor cd_ee72121;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee72121, buf);
+ ee72121 *dp, &lv = *(dp=new (buf) ee72121());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee72121)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72121)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee72121");
+ check_base_class_offset(lv, (bb21*)(cc121*)(dd2121*), ABISELECT(32,20), "ee72121");
+ check_base_class_offset(lv, (cc121*)(dd2121*), ABISELECT(16,8), "ee72121");
+ check_base_class_offset(lv, (dd2121*), ABISELECT(16,8), "ee72121");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72121.e");
+ test_class_info(&lv, &cd_ee72121);
+ dp->~ee72121();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72121(Test_ee72121, "ee72121", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee72121C1Ev();
+extern void _ZN7ee72121D1Ev();
+Name_Map name_map_ee72121[] = {
+ NSPAIR(_ZN7ee72121C1Ev),
+ NSPAIR(_ZN7ee72121D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc121;
+extern VTBL_ENTRY _ZTI5cc121[];
+extern VTBL_ENTRY _ZTV5cc121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc121[];
+extern Class_Descriptor cd_dd2121;
+extern VTBL_ENTRY _ZTI6dd2121[];
+extern VTBL_ENTRY _ZTV6dd2121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2121[];
+static Base_Class bases_ee72121[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc121, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2121, 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 _ZTI7ee72121[];
+extern void _ZN7ee721213fooEv();
+extern void _ZN7ee721213barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee721213fooEv,_ZTv0_n16_N7ee721213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee721213fooEv,_ZThn8_N7ee721213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee721213fooEv,_ZTv0_n12_N7ee721213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee721213fooEv,_ZThn20_N7ee721213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72121[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72121[0]),
+ (VTBL_ENTRY)&_ZN7ee721213fooEv,
+ (VTBL_ENTRY)&_ZN7ee721213barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee721213fooEv,_ZTv0_n16_N7ee721213fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee72121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee721213fooEv,_ZTv0_n12_N7ee721213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee72121[];
+extern void _ZN6dd21213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2121__7ee72121[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2121[0]),
+ (VTBL_ENTRY)&_ZN6dd21213fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1216dd2121__7ee72121[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc1216dd2121__7ee72121[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd21213fooEv,_ZTv0_n12_N6dd21213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd21213fooEv,_ZThn12_N6dd21213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd2121__7ee72121[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21213fooEv,_ZTv0_n12_N6dd21213fooEv),
+};
+static VTT_ENTRY vtt_ee72121[] = {
+ {&(_ZTV7ee72121[4]), 4,15},
+ {&(_ZTV7ee72121[10]), 10,15},
+ {&(_ZTV7ee72121[14]), 14,15},
+ {&(_tg__ZTV6dd2121__7ee72121[3]), 3,4},
+ {&(_tg__ZTV5cc1216dd2121__7ee72121[3]), 3,3},
+ {&(_tg__ZTV4bb21__5cc1216dd2121__7ee72121[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd2121__7ee72121[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee72121[];
+extern VTBL_ENTRY _ZTV7ee72121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72121[];
+static VTBL_ENTRY alt_thunk_names479[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21213fooEv,_ZTv0_n12_N6dd21213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd21213fooEv,_ZThn12_N6dd21213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee721213fooEv,_ZTv0_n12_N7ee721213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee721213fooEv,_ZThn20_N7ee721213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee721213fooEv,_ZTv0_n16_N7ee721213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee721213fooEv,_ZThn8_N7ee721213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72121 = { "ee72121", // class name
+ bases_ee72121, 4,
+ &(vtc_ee72121[0]), // expected_vtbl_contents
+ &(vtt_ee72121[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee72121),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72121),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72121),7, //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 dd3121 : virtual cc121 {
+ int d;
+ virtual void foo(); // _ZN6dd31213fooEv
+ ~dd3121(); // tgen
+ dd3121(); // tgen
+};
+//SIG(-1 dd3121) C1{ VBC2{ VBC3{ BC4{ v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void dd3121 ::foo(){vfunc_called(this, "_ZN6dd31213fooEv");}
+dd3121 ::~dd3121(){ note_dtor("dd3121", this);} // tgen
+dd3121 ::dd3121(){ note_ctor("dd3121", this);} // tgen
+
+static void Test_dd3121()
+{
+ extern Class_Descriptor cd_dd3121;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd3121, buf);
+ dd3121 *dp, &lv = *(dp=new (buf) dd3121());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd3121)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3121)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,16), "dd3121");
+ check_base_class_offset(lv, (bb21*)(cc121*), ABISELECT(32,16), "dd3121");
+ check_base_class_offset(lv, (cc121*), ABISELECT(16,8), "dd3121");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3121.d");
+ test_class_info(&lv, &cd_dd3121);
+ dp->~dd3121();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3121(Test_dd3121, "dd3121", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd3121C1Ev();
+extern void _ZN6dd3121D1Ev();
+Name_Map name_map_dd3121[] = {
+ NSPAIR(_ZN6dd3121C1Ev),
+ NSPAIR(_ZN6dd3121D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc121;
+extern VTBL_ENTRY _ZTI5cc121[];
+extern VTBL_ENTRY _ZTV5cc121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc121[];
+static Base_Class bases_dd3121[] = {
+ // 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_bb21, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc121, 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 _ZTI6dd3121[];
+extern void _ZN6dd31213fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd31213fooEv,_ZTv0_n12_N6dd31213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31213fooEv,_ZThn16_N6dd31213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd3121[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3121[0]),
+ (VTBL_ENTRY)&_ZN6dd31213fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3121[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31213fooEv,_ZTv0_n12_N6dd31213fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd3121[];
+static VTBL_ENTRY _tg__ZTV5cc121__6dd3121[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc121__6dd3121[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_dd3121[] = {
+ {&(_ZTV6dd3121[4]), 4,12},
+ {&(_ZTV6dd3121[8]), 8,12},
+ {&(_ZTV6dd3121[11]), 11,12},
+ {&(_tg__ZTV5cc121__6dd3121[3]), 3,3},
+ {&(_tg__ZTV4bb21__5cc121__6dd3121[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd3121[];
+extern VTBL_ENTRY _ZTV6dd3121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3121[];
+static VTBL_ENTRY alt_thunk_names480[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31213fooEv,_ZTv0_n12_N6dd31213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31213fooEv,_ZThn16_N6dd31213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3121 = { "dd3121", // class name
+ bases_dd3121, 3,
+ &(vtc_dd3121[0]), // expected_vtbl_contents
+ &(vtt_dd3121[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd3121),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3121),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3121),5, //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 ee03121 : dd3121 {
+ int e;
+ ~ee03121(); // tgen
+ ee03121(); // tgen
+};
+//SIG(1 ee03121) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} v1 Fi} Fi} v1 Fi} Fi}
+
+
+ee03121 ::~ee03121(){ note_dtor("ee03121", this);} // tgen
+ee03121 ::ee03121(){ note_ctor("ee03121", this);} // tgen
+
+static void Test_ee03121()
+{
+ extern Class_Descriptor cd_ee03121;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee03121, buf);
+ ee03121 *dp, &lv = *(dp=new (buf) ee03121());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee03121)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03121)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee03121");
+ check_base_class_offset(lv, (bb21*)(cc121*), ABISELECT(32,20), "ee03121");
+ check_base_class_offset(lv, (cc121*)(dd3121*), ABISELECT(16,12), "ee03121");
+ check_base_class_offset(lv, (dd3121*), 0, "ee03121");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03121.e");
+ test_class_info(&lv, &cd_ee03121);
+ dp->~ee03121();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03121(Test_ee03121, "ee03121", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee03121C1Ev();
+extern void _ZN7ee03121D1Ev();
+Name_Map name_map_ee03121[] = {
+ NSPAIR(_ZN7ee03121C1Ev),
+ NSPAIR(_ZN7ee03121D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc121;
+extern VTBL_ENTRY _ZTI5cc121[];
+extern VTBL_ENTRY _ZTV5cc121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc121[];
+extern Class_Descriptor cd_dd3121;
+extern VTBL_ENTRY _ZTI6dd3121[];
+extern VTBL_ENTRY _ZTV6dd3121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3121[];
+static Base_Class bases_ee03121[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 8, //bcp->virtual_function_table_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_cc121, 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_dd3121, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03121[];
+extern void _ZN6dd31213fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd31213fooEv,_ZTv0_n12_N6dd31213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31213fooEv,_ZThn20_N6dd31213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee03121[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03121[0]),
+ (VTBL_ENTRY)&_ZN6dd31213fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03121[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee03121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31213fooEv,_ZTv0_n12_N6dd31213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee03121[];
+extern void _ZN6dd31213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3121__7ee03121[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3121[0]),
+ (VTBL_ENTRY)&_ZN6dd31213fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc121__6dd3121__7ee03121[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3121[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd31213fooEv,_ZTv0_n12_N6dd31213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31213fooEv,_ZThn20_N6dd31213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd3121__7ee03121[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31213fooEv,_ZTv0_n12_N6dd31213fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc121__7ee03121[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc121__7ee03121[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee03121[] = {
+ {&(_ZTV7ee03121[4]), 4,12},
+ {&(_tg__ZTV6dd3121__7ee03121[4]), 4,5},
+ {&(_tg__ZTV5cc121__6dd3121__7ee03121[3]), 3,3},
+ {&(_tg__ZTV4bb21__6dd3121__7ee03121[3]), 3,4},
+ {&(_ZTV7ee03121[8]), 8,12},
+ {&(_ZTV7ee03121[11]), 11,12},
+ {&(_tg__ZTV5cc121__7ee03121[3]), 3,3},
+ {&(_tg__ZTV4bb21__5cc121__7ee03121[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee03121[];
+extern VTBL_ENTRY _ZTV7ee03121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03121[];
+static VTBL_ENTRY alt_thunk_names481[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31213fooEv,_ZTv0_n12_N6dd31213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31213fooEv,_ZThn20_N6dd31213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31213fooEv,_ZThn20_N6dd31213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03121 = { "ee03121", // class name
+ bases_ee03121, 4,
+ &(vtc_ee03121[0]), // expected_vtbl_contents
+ &(vtt_ee03121[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee03121),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03121),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03121),8, //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 ee13121 : virtual dd3121 {
+ int e;
+ ~ee13121(); // tgen
+ ee13121(); // tgen
+};
+//SIG(1 ee13121) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} v1 Fi} Fi} v1 Fi} Fi}
+
+
+ee13121 ::~ee13121(){ note_dtor("ee13121", this);} // tgen
+ee13121 ::ee13121(){ note_ctor("ee13121", this);} // tgen
+
+static void Test_ee13121()
+{
+ extern Class_Descriptor cd_ee13121;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee13121, buf);
+ ee13121 *dp, &lv = *(dp=new (buf) ee13121());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee13121)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13121)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(48,24), "ee13121");
+ check_base_class_offset(lv, (bb21*)(cc121*), ABISELECT(48,24), "ee13121");
+ check_base_class_offset(lv, (cc121*)(dd3121*), ABISELECT(32,16), "ee13121");
+ check_base_class_offset(lv, (dd3121*), ABISELECT(16,8), "ee13121");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13121.e");
+ test_class_info(&lv, &cd_ee13121);
+ dp->~ee13121();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13121(Test_ee13121, "ee13121", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee13121C1Ev();
+extern void _ZN7ee13121D1Ev();
+Name_Map name_map_ee13121[] = {
+ NSPAIR(_ZN7ee13121C1Ev),
+ NSPAIR(_ZN7ee13121D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc121;
+extern VTBL_ENTRY _ZTI5cc121[];
+extern VTBL_ENTRY _ZTV5cc121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc121[];
+extern Class_Descriptor cd_dd3121;
+extern VTBL_ENTRY _ZTI6dd3121[];
+extern VTBL_ENTRY _ZTV6dd3121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3121[];
+static Base_Class bases_ee13121[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb21, ABISELECT(48,24), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc121, 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_dd3121, 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 _ZTI7ee13121[];
+extern void _ZN6dd31213fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd31213fooEv,_ZTv0_n12_N6dd31213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31213fooEv,_ZThn16_N6dd31213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee13121[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13121[0]),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13121[0]),
+ (VTBL_ENTRY)&_ZN6dd31213fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13121[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee13121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31213fooEv,_ZTv0_n12_N6dd31213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee13121[];
+extern void _ZN6dd31213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3121__7ee13121[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3121[0]),
+ (VTBL_ENTRY)&_ZN6dd31213fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc121__6dd3121__7ee13121[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3121[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd31213fooEv,_ZTv0_n12_N6dd31213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31213fooEv,_ZThn16_N6dd31213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd3121__7ee13121[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31213fooEv,_ZTv0_n12_N6dd31213fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc121__7ee13121[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc121__7ee13121[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee13121[] = {
+ {&(_ZTV7ee13121[5]), 5,18},
+ {&(_ZTV7ee13121[10]), 10,18},
+ {&(_ZTV7ee13121[14]), 14,18},
+ {&(_ZTV7ee13121[17]), 17,18},
+ {&(_tg__ZTV6dd3121__7ee13121[4]), 4,5},
+ {&(_tg__ZTV5cc121__6dd3121__7ee13121[3]), 3,3},
+ {&(_tg__ZTV4bb21__6dd3121__7ee13121[3]), 3,4},
+ {&(_tg__ZTV5cc121__7ee13121[3]), 3,3},
+ {&(_tg__ZTV4bb21__5cc121__7ee13121[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee13121[];
+extern VTBL_ENTRY _ZTV7ee13121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13121[];
+static VTBL_ENTRY alt_thunk_names482[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31213fooEv,_ZTv0_n12_N6dd31213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31213fooEv,_ZThn16_N6dd31213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31213fooEv,_ZThn16_N6dd31213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13121 = { "ee13121", // class name
+ bases_ee13121, 4,
+ &(vtc_ee13121[0]), // expected_vtbl_contents
+ &(vtt_ee13121[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee13121),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13121),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13121),9, //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 ee23121 : dd3121 {
+ int e;
+ virtual void foo(); // _ZN7ee231213fooEv
+ ~ee23121(); // tgen
+ ee23121(); // tgen
+};
+//SIG(1 ee23121) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee23121 ::foo(){vfunc_called(this, "_ZN7ee231213fooEv");}
+ee23121 ::~ee23121(){ note_dtor("ee23121", this);} // tgen
+ee23121 ::ee23121(){ note_ctor("ee23121", this);} // tgen
+
+static void Test_ee23121()
+{
+ extern Class_Descriptor cd_ee23121;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee23121, buf);
+ ee23121 *dp, &lv = *(dp=new (buf) ee23121());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee23121)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23121)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee23121");
+ check_base_class_offset(lv, (bb21*)(cc121*), ABISELECT(32,20), "ee23121");
+ check_base_class_offset(lv, (cc121*)(dd3121*), ABISELECT(16,12), "ee23121");
+ check_base_class_offset(lv, (dd3121*), 0, "ee23121");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23121.e");
+ test_class_info(&lv, &cd_ee23121);
+ dp->~ee23121();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23121(Test_ee23121, "ee23121", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee23121C1Ev();
+extern void _ZN7ee23121D1Ev();
+Name_Map name_map_ee23121[] = {
+ NSPAIR(_ZN7ee23121C1Ev),
+ NSPAIR(_ZN7ee23121D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc121;
+extern VTBL_ENTRY _ZTI5cc121[];
+extern VTBL_ENTRY _ZTV5cc121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc121[];
+extern Class_Descriptor cd_dd3121;
+extern VTBL_ENTRY _ZTI6dd3121[];
+extern VTBL_ENTRY _ZTV6dd3121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3121[];
+static Base_Class bases_ee23121[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 8, //bcp->virtual_function_table_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_cc121, 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_dd3121, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23121[];
+extern void _ZN7ee231213fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee231213fooEv,_ZTv0_n12_N7ee231213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee231213fooEv,_ZThn20_N7ee231213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee23121[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23121[0]),
+ (VTBL_ENTRY)&_ZN7ee231213fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23121[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee23121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee231213fooEv,_ZTv0_n12_N7ee231213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee23121[];
+extern void _ZN6dd31213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3121__7ee23121[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3121[0]),
+ (VTBL_ENTRY)&_ZN6dd31213fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc121__6dd3121__7ee23121[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3121[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd31213fooEv,_ZTv0_n12_N6dd31213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31213fooEv,_ZThn20_N6dd31213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd3121__7ee23121[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31213fooEv,_ZTv0_n12_N6dd31213fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc121__7ee23121[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc121__7ee23121[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee23121[] = {
+ {&(_ZTV7ee23121[4]), 4,12},
+ {&(_tg__ZTV6dd3121__7ee23121[4]), 4,5},
+ {&(_tg__ZTV5cc121__6dd3121__7ee23121[3]), 3,3},
+ {&(_tg__ZTV4bb21__6dd3121__7ee23121[3]), 3,4},
+ {&(_ZTV7ee23121[8]), 8,12},
+ {&(_ZTV7ee23121[11]), 11,12},
+ {&(_tg__ZTV5cc121__7ee23121[3]), 3,3},
+ {&(_tg__ZTV4bb21__5cc121__7ee23121[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee23121[];
+extern VTBL_ENTRY _ZTV7ee23121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23121[];
+static VTBL_ENTRY alt_thunk_names483[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31213fooEv,_ZTv0_n12_N6dd31213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31213fooEv,_ZThn20_N6dd31213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee231213fooEv,_ZTv0_n12_N7ee231213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee231213fooEv,_ZThn20_N7ee231213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23121 = { "ee23121", // class name
+ bases_ee23121, 4,
+ &(vtc_ee23121[0]), // expected_vtbl_contents
+ &(vtt_ee23121[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee23121),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23121),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23121),8, //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 ee33121 : virtual dd3121 {
+ int e;
+ virtual void foo(); // _ZN7ee331213fooEv
+ ~ee33121(); // tgen
+ ee33121(); // tgen
+};
+//SIG(1 ee33121) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee33121 ::foo(){vfunc_called(this, "_ZN7ee331213fooEv");}
+ee33121 ::~ee33121(){ note_dtor("ee33121", this);} // tgen
+ee33121 ::ee33121(){ note_ctor("ee33121", this);} // tgen
+
+static void Test_ee33121()
+{
+ extern Class_Descriptor cd_ee33121;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee33121, buf);
+ ee33121 *dp, &lv = *(dp=new (buf) ee33121());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee33121)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33121)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(48,24), "ee33121");
+ check_base_class_offset(lv, (bb21*)(cc121*), ABISELECT(48,24), "ee33121");
+ check_base_class_offset(lv, (cc121*)(dd3121*), ABISELECT(32,16), "ee33121");
+ check_base_class_offset(lv, (dd3121*), ABISELECT(16,8), "ee33121");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33121.e");
+ test_class_info(&lv, &cd_ee33121);
+ dp->~ee33121();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33121(Test_ee33121, "ee33121", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee33121C1Ev();
+extern void _ZN7ee33121D1Ev();
+Name_Map name_map_ee33121[] = {
+ NSPAIR(_ZN7ee33121C1Ev),
+ NSPAIR(_ZN7ee33121D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc121;
+extern VTBL_ENTRY _ZTI5cc121[];
+extern VTBL_ENTRY _ZTV5cc121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc121[];
+extern Class_Descriptor cd_dd3121;
+extern VTBL_ENTRY _ZTI6dd3121[];
+extern VTBL_ENTRY _ZTV6dd3121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3121[];
+static Base_Class bases_ee33121[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb21, ABISELECT(48,24), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc121, 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_dd3121, ABISELECT(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 _ZTI7ee33121[];
+extern void _ZN7ee331213fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee331213fooEv,_ZTv0_n20_N7ee331213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee331213fooEv,_ZThn8_N7ee331213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee331213fooEv,_ZTv0_n12_N7ee331213fooEv)();
+extern void ABISELECT(_ZThn48_N7ee331213fooEv,_ZThn24_N7ee331213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee33121[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33121[0]),
+ (VTBL_ENTRY)&_ZN7ee331213fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee331213fooEv,_ZTv0_n20_N7ee331213fooEv),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33121[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee33121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee331213fooEv,_ZTv0_n12_N7ee331213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee33121[];
+extern void _ZN6dd31213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3121__7ee33121[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3121[0]),
+ (VTBL_ENTRY)&_ZN6dd31213fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc121__6dd3121__7ee33121[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3121[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd31213fooEv,_ZTv0_n12_N6dd31213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31213fooEv,_ZThn16_N6dd31213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd3121__7ee33121[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31213fooEv,_ZTv0_n12_N6dd31213fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc121__7ee33121[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc121__7ee33121[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee33121[] = {
+ {&(_ZTV7ee33121[5]), 5,19},
+ {&(_ZTV7ee33121[11]), 11,19},
+ {&(_ZTV7ee33121[15]), 15,19},
+ {&(_ZTV7ee33121[18]), 18,19},
+ {&(_tg__ZTV6dd3121__7ee33121[4]), 4,5},
+ {&(_tg__ZTV5cc121__6dd3121__7ee33121[3]), 3,3},
+ {&(_tg__ZTV4bb21__6dd3121__7ee33121[3]), 3,4},
+ {&(_tg__ZTV5cc121__7ee33121[3]), 3,3},
+ {&(_tg__ZTV4bb21__5cc121__7ee33121[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee33121[];
+extern VTBL_ENTRY _ZTV7ee33121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33121[];
+static VTBL_ENTRY alt_thunk_names484[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31213fooEv,_ZTv0_n12_N6dd31213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31213fooEv,_ZThn16_N6dd31213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee331213fooEv,_ZTv0_n12_N7ee331213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee331213fooEv,_ZThn24_N7ee331213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee331213fooEv,_ZTv0_n20_N7ee331213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee331213fooEv,_ZThn8_N7ee331213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33121 = { "ee33121", // class name
+ bases_ee33121, 4,
+ &(vtc_ee33121[0]), // expected_vtbl_contents
+ &(vtt_ee33121[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee33121),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33121),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33121),9, //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 ee43121 : dd3121 {
+ int e;
+ virtual void bar(); // _ZN7ee431213barEv
+ ~ee43121(); // tgen
+ ee43121(); // tgen
+};
+//SIG(1 ee43121) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 Fi} v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee43121 ::bar(){vfunc_called(this, "_ZN7ee431213barEv");}
+ee43121 ::~ee43121(){ note_dtor("ee43121", this);} // tgen
+ee43121 ::ee43121(){ note_ctor("ee43121", this);} // tgen
+
+static void Test_ee43121()
+{
+ extern Class_Descriptor cd_ee43121;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee43121, buf);
+ ee43121 *dp, &lv = *(dp=new (buf) ee43121());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee43121)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43121)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee43121");
+ check_base_class_offset(lv, (bb21*)(cc121*), ABISELECT(32,20), "ee43121");
+ check_base_class_offset(lv, (cc121*)(dd3121*), ABISELECT(16,12), "ee43121");
+ check_base_class_offset(lv, (dd3121*), 0, "ee43121");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43121.e");
+ test_class_info(&lv, &cd_ee43121);
+ dp->~ee43121();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43121(Test_ee43121, "ee43121", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee43121C1Ev();
+extern void _ZN7ee43121D1Ev();
+Name_Map name_map_ee43121[] = {
+ NSPAIR(_ZN7ee43121C1Ev),
+ NSPAIR(_ZN7ee43121D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc121;
+extern VTBL_ENTRY _ZTI5cc121[];
+extern VTBL_ENTRY _ZTV5cc121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc121[];
+extern Class_Descriptor cd_dd3121;
+extern VTBL_ENTRY _ZTI6dd3121[];
+extern VTBL_ENTRY _ZTV6dd3121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3121[];
+static Base_Class bases_ee43121[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc121, 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_dd3121, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43121[];
+extern void _ZN6dd31213fooEv();
+extern void _ZN7ee431213barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd31213fooEv,_ZTv0_n12_N6dd31213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31213fooEv,_ZThn20_N6dd31213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43121[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43121[0]),
+ (VTBL_ENTRY)&_ZN6dd31213fooEv,
+ (VTBL_ENTRY)&_ZN7ee431213barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43121[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee43121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31213fooEv,_ZTv0_n12_N6dd31213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee43121[];
+extern void _ZN6dd31213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3121__7ee43121[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3121[0]),
+ (VTBL_ENTRY)&_ZN6dd31213fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc121__6dd3121__7ee43121[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3121[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd31213fooEv,_ZTv0_n12_N6dd31213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31213fooEv,_ZThn20_N6dd31213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd3121__7ee43121[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31213fooEv,_ZTv0_n12_N6dd31213fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc121__7ee43121[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc121__7ee43121[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee43121[] = {
+ {&(_ZTV7ee43121[4]), 4,13},
+ {&(_tg__ZTV6dd3121__7ee43121[4]), 4,5},
+ {&(_tg__ZTV5cc121__6dd3121__7ee43121[3]), 3,3},
+ {&(_tg__ZTV4bb21__6dd3121__7ee43121[3]), 3,4},
+ {&(_ZTV7ee43121[9]), 9,13},
+ {&(_ZTV7ee43121[12]), 12,13},
+ {&(_tg__ZTV5cc121__7ee43121[3]), 3,3},
+ {&(_tg__ZTV4bb21__5cc121__7ee43121[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee43121[];
+extern VTBL_ENTRY _ZTV7ee43121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43121[];
+static VTBL_ENTRY alt_thunk_names485[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31213fooEv,_ZTv0_n12_N6dd31213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31213fooEv,_ZThn20_N6dd31213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31213fooEv,_ZThn20_N6dd31213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43121 = { "ee43121", // class name
+ bases_ee43121, 4,
+ &(vtc_ee43121[0]), // expected_vtbl_contents
+ &(vtt_ee43121[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee43121),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43121),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43121),8, //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 ee53121 : virtual dd3121 {
+ int e;
+ virtual void bar(); // _ZN7ee531213barEv
+ ~ee53121(); // tgen
+ ee53121(); // tgen
+};
+//SIG(1 ee53121) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 Fi} v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee53121 ::bar(){vfunc_called(this, "_ZN7ee531213barEv");}
+ee53121 ::~ee53121(){ note_dtor("ee53121", this);} // tgen
+ee53121 ::ee53121(){ note_ctor("ee53121", this);} // tgen
+
+static void Test_ee53121()
+{
+ extern Class_Descriptor cd_ee53121;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee53121, buf);
+ ee53121 *dp, &lv = *(dp=new (buf) ee53121());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee53121)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53121)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(48,24), "ee53121");
+ check_base_class_offset(lv, (bb21*)(cc121*), ABISELECT(48,24), "ee53121");
+ check_base_class_offset(lv, (cc121*)(dd3121*), ABISELECT(32,16), "ee53121");
+ check_base_class_offset(lv, (dd3121*), ABISELECT(16,8), "ee53121");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53121.e");
+ test_class_info(&lv, &cd_ee53121);
+ dp->~ee53121();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53121(Test_ee53121, "ee53121", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee53121C1Ev();
+extern void _ZN7ee53121D1Ev();
+Name_Map name_map_ee53121[] = {
+ NSPAIR(_ZN7ee53121C1Ev),
+ NSPAIR(_ZN7ee53121D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc121;
+extern VTBL_ENTRY _ZTI5cc121[];
+extern VTBL_ENTRY _ZTV5cc121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc121[];
+extern Class_Descriptor cd_dd3121;
+extern VTBL_ENTRY _ZTI6dd3121[];
+extern VTBL_ENTRY _ZTV6dd3121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3121[];
+static Base_Class bases_ee53121[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb21, ABISELECT(48,24), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc121, 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_dd3121, ABISELECT(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 _ZTI7ee53121[];
+extern void _ZN7ee531213barEv();
+extern void _ZN6dd31213fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd31213fooEv,_ZTv0_n12_N6dd31213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31213fooEv,_ZThn16_N6dd31213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53121[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53121[0]),
+ (VTBL_ENTRY)&_ZN7ee531213barEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53121[0]),
+ (VTBL_ENTRY)&_ZN6dd31213fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53121[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee53121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31213fooEv,_ZTv0_n12_N6dd31213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee53121[];
+extern void _ZN6dd31213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3121__7ee53121[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3121[0]),
+ (VTBL_ENTRY)&_ZN6dd31213fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc121__6dd3121__7ee53121[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3121[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd31213fooEv,_ZTv0_n12_N6dd31213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31213fooEv,_ZThn16_N6dd31213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd3121__7ee53121[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31213fooEv,_ZTv0_n12_N6dd31213fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc121__7ee53121[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc121__7ee53121[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee53121[] = {
+ {&(_ZTV7ee53121[5]), 5,19},
+ {&(_ZTV7ee53121[11]), 11,19},
+ {&(_ZTV7ee53121[15]), 15,19},
+ {&(_ZTV7ee53121[18]), 18,19},
+ {&(_tg__ZTV6dd3121__7ee53121[4]), 4,5},
+ {&(_tg__ZTV5cc121__6dd3121__7ee53121[3]), 3,3},
+ {&(_tg__ZTV4bb21__6dd3121__7ee53121[3]), 3,4},
+ {&(_tg__ZTV5cc121__7ee53121[3]), 3,3},
+ {&(_tg__ZTV4bb21__5cc121__7ee53121[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee53121[];
+extern VTBL_ENTRY _ZTV7ee53121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53121[];
+static VTBL_ENTRY alt_thunk_names486[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31213fooEv,_ZTv0_n12_N6dd31213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31213fooEv,_ZThn16_N6dd31213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31213fooEv,_ZThn16_N6dd31213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53121 = { "ee53121", // class name
+ bases_ee53121, 4,
+ &(vtc_ee53121[0]), // expected_vtbl_contents
+ &(vtt_ee53121[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee53121),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53121),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53121),9, //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 ee63121 : dd3121 {
+ int e;
+ virtual void foo(); // _ZN7ee631213fooEv
+ virtual void bar(); // _ZN7ee631213barEv
+ ~ee63121(); // tgen
+ ee63121(); // tgen
+};
+//SIG(1 ee63121) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} v1 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63121 ::foo(){vfunc_called(this, "_ZN7ee631213fooEv");}
+void ee63121 ::bar(){vfunc_called(this, "_ZN7ee631213barEv");}
+ee63121 ::~ee63121(){ note_dtor("ee63121", this);} // tgen
+ee63121 ::ee63121(){ note_ctor("ee63121", this);} // tgen
+
+static void Test_ee63121()
+{
+ extern Class_Descriptor cd_ee63121;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee63121, buf);
+ ee63121 *dp, &lv = *(dp=new (buf) ee63121());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee63121)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63121)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee63121");
+ check_base_class_offset(lv, (bb21*)(cc121*), ABISELECT(32,20), "ee63121");
+ check_base_class_offset(lv, (cc121*)(dd3121*), ABISELECT(16,12), "ee63121");
+ check_base_class_offset(lv, (dd3121*), 0, "ee63121");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63121.e");
+ test_class_info(&lv, &cd_ee63121);
+ dp->~ee63121();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63121(Test_ee63121, "ee63121", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee63121C1Ev();
+extern void _ZN7ee63121D1Ev();
+Name_Map name_map_ee63121[] = {
+ NSPAIR(_ZN7ee63121C1Ev),
+ NSPAIR(_ZN7ee63121D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc121;
+extern VTBL_ENTRY _ZTI5cc121[];
+extern VTBL_ENTRY _ZTV5cc121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc121[];
+extern Class_Descriptor cd_dd3121;
+extern VTBL_ENTRY _ZTI6dd3121[];
+extern VTBL_ENTRY _ZTV6dd3121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3121[];
+static Base_Class bases_ee63121[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc121, 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_dd3121, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63121[];
+extern void _ZN7ee631213fooEv();
+extern void _ZN7ee631213barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee631213fooEv,_ZTv0_n12_N7ee631213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee631213fooEv,_ZThn20_N7ee631213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63121[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63121[0]),
+ (VTBL_ENTRY)&_ZN7ee631213fooEv,
+ (VTBL_ENTRY)&_ZN7ee631213barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63121[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee63121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee631213fooEv,_ZTv0_n12_N7ee631213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee63121[];
+extern void _ZN6dd31213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3121__7ee63121[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3121[0]),
+ (VTBL_ENTRY)&_ZN6dd31213fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc121__6dd3121__7ee63121[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3121[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd31213fooEv,_ZTv0_n12_N6dd31213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31213fooEv,_ZThn20_N6dd31213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd3121__7ee63121[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31213fooEv,_ZTv0_n12_N6dd31213fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc121__7ee63121[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc121__7ee63121[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee63121[] = {
+ {&(_ZTV7ee63121[4]), 4,13},
+ {&(_tg__ZTV6dd3121__7ee63121[4]), 4,5},
+ {&(_tg__ZTV5cc121__6dd3121__7ee63121[3]), 3,3},
+ {&(_tg__ZTV4bb21__6dd3121__7ee63121[3]), 3,4},
+ {&(_ZTV7ee63121[9]), 9,13},
+ {&(_ZTV7ee63121[12]), 12,13},
+ {&(_tg__ZTV5cc121__7ee63121[3]), 3,3},
+ {&(_tg__ZTV4bb21__5cc121__7ee63121[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee63121[];
+extern VTBL_ENTRY _ZTV7ee63121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63121[];
+static VTBL_ENTRY alt_thunk_names487[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31213fooEv,_ZTv0_n12_N6dd31213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31213fooEv,_ZThn20_N6dd31213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee631213fooEv,_ZTv0_n12_N7ee631213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee631213fooEv,_ZThn20_N7ee631213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63121 = { "ee63121", // class name
+ bases_ee63121, 4,
+ &(vtc_ee63121[0]), // expected_vtbl_contents
+ &(vtt_ee63121[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee63121),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63121),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63121),8, //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 ee73121 : virtual dd3121 {
+ int e;
+ virtual void foo(); // _ZN7ee731213fooEv
+ virtual void bar(); // _ZN7ee731213barEv
+ ~ee73121(); // tgen
+ ee73121(); // tgen
+};
+//SIG(1 ee73121) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} v1 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73121 ::foo(){vfunc_called(this, "_ZN7ee731213fooEv");}
+void ee73121 ::bar(){vfunc_called(this, "_ZN7ee731213barEv");}
+ee73121 ::~ee73121(){ note_dtor("ee73121", this);} // tgen
+ee73121 ::ee73121(){ note_ctor("ee73121", this);} // tgen
+
+static void Test_ee73121()
+{
+ extern Class_Descriptor cd_ee73121;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee73121, buf);
+ ee73121 *dp, &lv = *(dp=new (buf) ee73121());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee73121)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73121)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(48,24), "ee73121");
+ check_base_class_offset(lv, (bb21*)(cc121*), ABISELECT(48,24), "ee73121");
+ check_base_class_offset(lv, (cc121*)(dd3121*), ABISELECT(32,16), "ee73121");
+ check_base_class_offset(lv, (dd3121*), ABISELECT(16,8), "ee73121");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73121.e");
+ test_class_info(&lv, &cd_ee73121);
+ dp->~ee73121();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73121(Test_ee73121, "ee73121", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee73121C1Ev();
+extern void _ZN7ee73121D1Ev();
+Name_Map name_map_ee73121[] = {
+ NSPAIR(_ZN7ee73121C1Ev),
+ NSPAIR(_ZN7ee73121D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc121;
+extern VTBL_ENTRY _ZTI5cc121[];
+extern VTBL_ENTRY _ZTV5cc121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc121[];
+extern Class_Descriptor cd_dd3121;
+extern VTBL_ENTRY _ZTI6dd3121[];
+extern VTBL_ENTRY _ZTV6dd3121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3121[];
+static Base_Class bases_ee73121[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb21, ABISELECT(48,24), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc121, 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_dd3121, 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 _ZTI7ee73121[];
+extern void _ZN7ee731213fooEv();
+extern void _ZN7ee731213barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee731213fooEv,_ZTv0_n20_N7ee731213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee731213fooEv,_ZThn8_N7ee731213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee731213fooEv,_ZTv0_n12_N7ee731213fooEv)();
+extern void ABISELECT(_ZThn48_N7ee731213fooEv,_ZThn24_N7ee731213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73121[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73121[0]),
+ (VTBL_ENTRY)&_ZN7ee731213fooEv,
+ (VTBL_ENTRY)&_ZN7ee731213barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee731213fooEv,_ZTv0_n20_N7ee731213fooEv),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73121[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee73121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee731213fooEv,_ZTv0_n12_N7ee731213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee73121[];
+extern void _ZN6dd31213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3121__7ee73121[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3121[0]),
+ (VTBL_ENTRY)&_ZN6dd31213fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc121__6dd3121__7ee73121[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3121[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd31213fooEv,_ZTv0_n12_N6dd31213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31213fooEv,_ZThn16_N6dd31213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd3121__7ee73121[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31213fooEv,_ZTv0_n12_N6dd31213fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc121__7ee73121[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc121__7ee73121[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee73121[] = {
+ {&(_ZTV7ee73121[5]), 5,20},
+ {&(_ZTV7ee73121[12]), 12,20},
+ {&(_ZTV7ee73121[16]), 16,20},
+ {&(_ZTV7ee73121[19]), 19,20},
+ {&(_tg__ZTV6dd3121__7ee73121[4]), 4,5},
+ {&(_tg__ZTV5cc121__6dd3121__7ee73121[3]), 3,3},
+ {&(_tg__ZTV4bb21__6dd3121__7ee73121[3]), 3,4},
+ {&(_tg__ZTV5cc121__7ee73121[3]), 3,3},
+ {&(_tg__ZTV4bb21__5cc121__7ee73121[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee73121[];
+extern VTBL_ENTRY _ZTV7ee73121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73121[];
+static VTBL_ENTRY alt_thunk_names488[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31213fooEv,_ZTv0_n12_N6dd31213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31213fooEv,_ZThn16_N6dd31213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee731213fooEv,_ZTv0_n12_N7ee731213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee731213fooEv,_ZThn24_N7ee731213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee731213fooEv,_ZTv0_n20_N7ee731213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee731213fooEv,_ZThn8_N7ee731213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73121 = { "ee73121", // class name
+ bases_ee73121, 4,
+ &(vtc_ee73121[0]), // expected_vtbl_contents
+ &(vtt_ee73121[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee73121),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73121),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73121),9, //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 dd4121 : cc121 {
+ int d;
+ virtual void bar(); // _ZN6dd41213barEv
+ ~dd4121(); // tgen
+ dd4121(); // tgen
+};
+//SIG(-1 dd4121) C1{ BC2{ VBC3{ BC4{ v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void dd4121 ::bar(){vfunc_called(this, "_ZN6dd41213barEv");}
+dd4121 ::~dd4121(){ note_dtor("dd4121", this);} // tgen
+dd4121 ::dd4121(){ note_ctor("dd4121", this);} // tgen
+
+static void Test_dd4121()
+{
+ extern Class_Descriptor cd_dd4121;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd4121, buf);
+ dd4121 *dp, &lv = *(dp=new (buf) dd4121());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd4121)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4121)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(16,12), "dd4121");
+ check_base_class_offset(lv, (bb21*)(cc121*), ABISELECT(16,12), "dd4121");
+ check_base_class_offset(lv, (cc121*), 0, "dd4121");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd4121.d");
+ test_class_info(&lv, &cd_dd4121);
+ dp->~dd4121();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4121(Test_dd4121, "dd4121", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd4121C1Ev();
+extern void _ZN6dd4121D1Ev();
+Name_Map name_map_dd4121[] = {
+ NSPAIR(_ZN6dd4121C1Ev),
+ NSPAIR(_ZN6dd4121D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc121;
+extern VTBL_ENTRY _ZTI5cc121[];
+extern VTBL_ENTRY _ZTV5cc121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc121[];
+static Base_Class bases_dd4121[] = {
+ // 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_bb21, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc121, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd4121[];
+extern void _ZN6dd41213barEv();
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY vtc_dd4121[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4121[0]),
+ (VTBL_ENTRY)&_ZN6dd41213barEv,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd4121[];
+static VTBL_ENTRY _tg__ZTV5cc121__6dd4121[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc121__6dd4121[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_dd4121[] = {
+ {&(_ZTV6dd4121[3]), 3,8},
+ {&(_tg__ZTV5cc121__6dd4121[3]), 3,3},
+ {&(_tg__ZTV4bb21__5cc121__6dd4121[3]), 3,4},
+ {&(_ZTV6dd4121[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI6dd4121[];
+extern VTBL_ENTRY _ZTV6dd4121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4121[];
+Class_Descriptor cd_dd4121 = { "dd4121", // class name
+ bases_dd4121, 3,
+ &(vtc_dd4121[0]), // expected_vtbl_contents
+ &(vtt_dd4121[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd4121),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4121),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd4121),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 ee04121 : dd4121 {
+ int e;
+ ~ee04121(); // tgen
+ ee04121(); // tgen
+};
+//SIG(1 ee04121) C1{ BC2{ BC3{ VBC4{ BC5{ v2 Fi} v2 Fi} Fi} v1 Fi} Fi}
+
+
+ee04121 ::~ee04121(){ note_dtor("ee04121", this);} // tgen
+ee04121 ::ee04121(){ note_ctor("ee04121", this);} // tgen
+
+static void Test_ee04121()
+{
+ extern Class_Descriptor cd_ee04121;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee04121, buf);
+ ee04121 *dp, &lv = *(dp=new (buf) ee04121());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee04121)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04121)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(24,16), "ee04121");
+ check_base_class_offset(lv, (bb21*)(cc121*)(dd4121*), ABISELECT(24,16), "ee04121");
+ check_base_class_offset(lv, (cc121*)(dd4121*), 0, "ee04121");
+ check_base_class_offset(lv, (dd4121*), 0, "ee04121");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee04121.e");
+ test_class_info(&lv, &cd_ee04121);
+ dp->~ee04121();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04121(Test_ee04121, "ee04121", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee04121C1Ev();
+extern void _ZN7ee04121D1Ev();
+Name_Map name_map_ee04121[] = {
+ NSPAIR(_ZN7ee04121C1Ev),
+ NSPAIR(_ZN7ee04121D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc121;
+extern VTBL_ENTRY _ZTI5cc121[];
+extern VTBL_ENTRY _ZTV5cc121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc121[];
+extern Class_Descriptor cd_dd4121;
+extern VTBL_ENTRY _ZTI6dd4121[];
+extern VTBL_ENTRY _ZTV6dd4121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4121[];
+static Base_Class bases_ee04121[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc121, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4121, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee04121[];
+extern void _ZN6dd41213barEv();
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY vtc_ee04121[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04121[0]),
+ (VTBL_ENTRY)&_ZN6dd41213barEv,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee04121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee04121[];
+extern void _ZN6dd41213barEv();
+static VTBL_ENTRY _tg__ZTV6dd4121__7ee04121[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4121[0]),
+ (VTBL_ENTRY)&_ZN6dd41213barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1216dd4121__7ee04121[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc1216dd4121__7ee04121[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__6dd4121__7ee04121[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee04121[] = {
+ {&(_ZTV7ee04121[3]), 3,8},
+ {&(_tg__ZTV6dd4121__7ee04121[3]), 3,4},
+ {&(_tg__ZTV5cc1216dd4121__7ee04121[3]), 3,3},
+ {&(_tg__ZTV4bb21__5cc1216dd4121__7ee04121[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd4121__7ee04121[3]), 3,4},
+ {&(_ZTV7ee04121[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee04121[];
+extern VTBL_ENTRY _ZTV7ee04121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee04121[];
+Class_Descriptor cd_ee04121 = { "ee04121", // class name
+ bases_ee04121, 4,
+ &(vtc_ee04121[0]), // expected_vtbl_contents
+ &(vtt_ee04121[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee04121),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04121),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee04121),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 ee14121 : virtual dd4121 {
+ int e;
+ ~ee14121(); // tgen
+ ee14121(); // tgen
+};
+//SIG(1 ee14121) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 Fi} v2 Fi} Fi} v1 Fi} Fi}
+
+
+ee14121 ::~ee14121(){ note_dtor("ee14121", this);} // tgen
+ee14121 ::ee14121(){ note_ctor("ee14121", this);} // tgen
+
+static void Test_ee14121()
+{
+ extern Class_Descriptor cd_ee14121;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee14121, buf);
+ ee14121 *dp, &lv = *(dp=new (buf) ee14121());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee14121)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14121)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee14121");
+ check_base_class_offset(lv, (bb21*)(cc121*)(dd4121*), ABISELECT(32,20), "ee14121");
+ check_base_class_offset(lv, (cc121*)(dd4121*), ABISELECT(16,8), "ee14121");
+ check_base_class_offset(lv, (dd4121*), ABISELECT(16,8), "ee14121");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14121.e");
+ test_class_info(&lv, &cd_ee14121);
+ dp->~ee14121();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14121(Test_ee14121, "ee14121", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee14121C1Ev();
+extern void _ZN7ee14121D1Ev();
+Name_Map name_map_ee14121[] = {
+ NSPAIR(_ZN7ee14121C1Ev),
+ NSPAIR(_ZN7ee14121D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc121;
+extern VTBL_ENTRY _ZTI5cc121[];
+extern VTBL_ENTRY _ZTV5cc121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc121[];
+extern Class_Descriptor cd_dd4121;
+extern VTBL_ENTRY _ZTI6dd4121[];
+extern VTBL_ENTRY _ZTV6dd4121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4121[];
+static Base_Class bases_ee14121[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc121, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4121, 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 _ZTI7ee14121[];
+extern void _ZN6dd41213barEv();
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY vtc_ee14121[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14121[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14121[0]),
+ (VTBL_ENTRY)&_ZN6dd41213barEv,
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee14121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee14121[];
+extern void _ZN6dd41213barEv();
+static VTBL_ENTRY _tg__ZTV6dd4121__7ee14121[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4121[0]),
+ (VTBL_ENTRY)&_ZN6dd41213barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1216dd4121__7ee14121[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc1216dd4121__7ee14121[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__6dd4121__7ee14121[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee14121[] = {
+ {&(_ZTV7ee14121[4]), 4,13},
+ {&(_ZTV7ee14121[8]), 8,13},
+ {&(_ZTV7ee14121[12]), 12,13},
+ {&(_tg__ZTV6dd4121__7ee14121[3]), 3,4},
+ {&(_tg__ZTV5cc1216dd4121__7ee14121[3]), 3,3},
+ {&(_tg__ZTV4bb21__5cc1216dd4121__7ee14121[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd4121__7ee14121[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee14121[];
+extern VTBL_ENTRY _ZTV7ee14121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14121[];
+Class_Descriptor cd_ee14121 = { "ee14121", // class name
+ bases_ee14121, 4,
+ &(vtc_ee14121[0]), // expected_vtbl_contents
+ &(vtt_ee14121[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee14121),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14121),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14121),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 ee24121 : dd4121 {
+ int e;
+ virtual void foo(); // _ZN7ee241213fooEv
+ ~ee24121(); // tgen
+ ee24121(); // tgen
+};
+//SIG(1 ee24121) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee24121 ::foo(){vfunc_called(this, "_ZN7ee241213fooEv");}
+ee24121 ::~ee24121(){ note_dtor("ee24121", this);} // tgen
+ee24121 ::ee24121(){ note_ctor("ee24121", this);} // tgen
+
+static void Test_ee24121()
+{
+ extern Class_Descriptor cd_ee24121;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee24121, buf);
+ ee24121 *dp, &lv = *(dp=new (buf) ee24121());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee24121)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24121)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(24,16), "ee24121");
+ check_base_class_offset(lv, (bb21*)(cc121*)(dd4121*), ABISELECT(24,16), "ee24121");
+ check_base_class_offset(lv, (cc121*)(dd4121*), 0, "ee24121");
+ check_base_class_offset(lv, (dd4121*), 0, "ee24121");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee24121.e");
+ test_class_info(&lv, &cd_ee24121);
+ dp->~ee24121();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24121(Test_ee24121, "ee24121", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee24121C1Ev();
+extern void _ZN7ee24121D1Ev();
+Name_Map name_map_ee24121[] = {
+ NSPAIR(_ZN7ee24121C1Ev),
+ NSPAIR(_ZN7ee24121D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc121;
+extern VTBL_ENTRY _ZTI5cc121[];
+extern VTBL_ENTRY _ZTV5cc121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc121[];
+extern Class_Descriptor cd_dd4121;
+extern VTBL_ENTRY _ZTI6dd4121[];
+extern VTBL_ENTRY _ZTV6dd4121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4121[];
+static Base_Class bases_ee24121[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc121, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4121, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee24121[];
+extern void _ZN6dd41213barEv();
+extern void _ZN7ee241213fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee241213fooEv,_ZTv0_n12_N7ee241213fooEv)();
+extern void ABISELECT(_ZThn24_N7ee241213fooEv,_ZThn16_N7ee241213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee24121[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24121[0]),
+ (VTBL_ENTRY)&_ZN6dd41213barEv,
+ (VTBL_ENTRY)&_ZN7ee241213fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee24121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee241213fooEv,_ZTv0_n12_N7ee241213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee24121[];
+extern void _ZN6dd41213barEv();
+static VTBL_ENTRY _tg__ZTV6dd4121__7ee24121[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4121[0]),
+ (VTBL_ENTRY)&_ZN6dd41213barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1216dd4121__7ee24121[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc1216dd4121__7ee24121[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__6dd4121__7ee24121[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee24121[] = {
+ {&(_ZTV7ee24121[3]), 3,9},
+ {&(_tg__ZTV6dd4121__7ee24121[3]), 3,4},
+ {&(_tg__ZTV5cc1216dd4121__7ee24121[3]), 3,3},
+ {&(_tg__ZTV4bb21__5cc1216dd4121__7ee24121[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd4121__7ee24121[3]), 3,4},
+ {&(_ZTV7ee24121[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee24121[];
+extern VTBL_ENTRY _ZTV7ee24121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee24121[];
+static VTBL_ENTRY alt_thunk_names489[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee241213fooEv,_ZTv0_n12_N7ee241213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee241213fooEv,_ZThn16_N7ee241213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee24121 = { "ee24121", // class name
+ bases_ee24121, 4,
+ &(vtc_ee24121[0]), // expected_vtbl_contents
+ &(vtt_ee24121[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee24121),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24121),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee24121),6, //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 ee34121 : virtual dd4121 {
+ int e;
+ virtual void foo(); // _ZN7ee341213fooEv
+ ~ee34121(); // tgen
+ ee34121(); // tgen
+};
+//SIG(1 ee34121) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee34121 ::foo(){vfunc_called(this, "_ZN7ee341213fooEv");}
+ee34121 ::~ee34121(){ note_dtor("ee34121", this);} // tgen
+ee34121 ::ee34121(){ note_ctor("ee34121", this);} // tgen
+
+static void Test_ee34121()
+{
+ extern Class_Descriptor cd_ee34121;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee34121, buf);
+ ee34121 *dp, &lv = *(dp=new (buf) ee34121());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee34121)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34121)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee34121");
+ check_base_class_offset(lv, (bb21*)(cc121*)(dd4121*), ABISELECT(32,20), "ee34121");
+ check_base_class_offset(lv, (cc121*)(dd4121*), ABISELECT(16,8), "ee34121");
+ check_base_class_offset(lv, (dd4121*), ABISELECT(16,8), "ee34121");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34121.e");
+ test_class_info(&lv, &cd_ee34121);
+ dp->~ee34121();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34121(Test_ee34121, "ee34121", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee34121C1Ev();
+extern void _ZN7ee34121D1Ev();
+Name_Map name_map_ee34121[] = {
+ NSPAIR(_ZN7ee34121C1Ev),
+ NSPAIR(_ZN7ee34121D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc121;
+extern VTBL_ENTRY _ZTI5cc121[];
+extern VTBL_ENTRY _ZTV5cc121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc121[];
+extern Class_Descriptor cd_dd4121;
+extern VTBL_ENTRY _ZTI6dd4121[];
+extern VTBL_ENTRY _ZTV6dd4121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4121[];
+static Base_Class bases_ee34121[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc121, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4121, 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 _ZTI7ee34121[];
+extern void _ZN7ee341213fooEv();
+extern void _ZN6dd41213barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee341213fooEv,_ZTv0_n12_N7ee341213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee341213fooEv,_ZThn20_N7ee341213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee34121[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34121[0]),
+ (VTBL_ENTRY)&_ZN7ee341213fooEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34121[0]),
+ (VTBL_ENTRY)&_ZN6dd41213barEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee34121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee341213fooEv,_ZTv0_n12_N7ee341213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee34121[];
+extern void _ZN6dd41213barEv();
+static VTBL_ENTRY _tg__ZTV6dd4121__7ee34121[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4121[0]),
+ (VTBL_ENTRY)&_ZN6dd41213barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1216dd4121__7ee34121[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc1216dd4121__7ee34121[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__6dd4121__7ee34121[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee34121[] = {
+ {&(_ZTV7ee34121[4]), 4,14},
+ {&(_ZTV7ee34121[9]), 9,14},
+ {&(_ZTV7ee34121[13]), 13,14},
+ {&(_tg__ZTV6dd4121__7ee34121[3]), 3,4},
+ {&(_tg__ZTV5cc1216dd4121__7ee34121[3]), 3,3},
+ {&(_tg__ZTV4bb21__5cc1216dd4121__7ee34121[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd4121__7ee34121[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee34121[];
+extern VTBL_ENTRY _ZTV7ee34121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34121[];
+static VTBL_ENTRY alt_thunk_names490[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee341213fooEv,_ZTv0_n12_N7ee341213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee341213fooEv,_ZThn20_N7ee341213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34121 = { "ee34121", // class name
+ bases_ee34121, 4,
+ &(vtc_ee34121[0]), // expected_vtbl_contents
+ &(vtt_ee34121[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee34121),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34121),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34121),7, //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 ee44121 : dd4121 {
+ int e;
+ virtual void bar(); // _ZN7ee441213barEv
+ ~ee44121(); // tgen
+ ee44121(); // tgen
+};
+//SIG(1 ee44121) C1{ BC2{ BC3{ VBC4{ BC5{ v2 Fi} v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee44121 ::bar(){vfunc_called(this, "_ZN7ee441213barEv");}
+ee44121 ::~ee44121(){ note_dtor("ee44121", this);} // tgen
+ee44121 ::ee44121(){ note_ctor("ee44121", this);} // tgen
+
+static void Test_ee44121()
+{
+ extern Class_Descriptor cd_ee44121;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee44121, buf);
+ ee44121 *dp, &lv = *(dp=new (buf) ee44121());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee44121)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44121)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(24,16), "ee44121");
+ check_base_class_offset(lv, (bb21*)(cc121*)(dd4121*), ABISELECT(24,16), "ee44121");
+ check_base_class_offset(lv, (cc121*)(dd4121*), 0, "ee44121");
+ check_base_class_offset(lv, (dd4121*), 0, "ee44121");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee44121.e");
+ test_class_info(&lv, &cd_ee44121);
+ dp->~ee44121();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44121(Test_ee44121, "ee44121", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee44121C1Ev();
+extern void _ZN7ee44121D1Ev();
+Name_Map name_map_ee44121[] = {
+ NSPAIR(_ZN7ee44121C1Ev),
+ NSPAIR(_ZN7ee44121D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc121;
+extern VTBL_ENTRY _ZTI5cc121[];
+extern VTBL_ENTRY _ZTV5cc121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc121[];
+extern Class_Descriptor cd_dd4121;
+extern VTBL_ENTRY _ZTI6dd4121[];
+extern VTBL_ENTRY _ZTV6dd4121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4121[];
+static Base_Class bases_ee44121[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc121, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4121, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee44121[];
+extern void _ZN7ee441213barEv();
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY vtc_ee44121[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44121[0]),
+ (VTBL_ENTRY)&_ZN7ee441213barEv,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee44121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee44121[];
+extern void _ZN6dd41213barEv();
+static VTBL_ENTRY _tg__ZTV6dd4121__7ee44121[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4121[0]),
+ (VTBL_ENTRY)&_ZN6dd41213barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1216dd4121__7ee44121[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc1216dd4121__7ee44121[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__6dd4121__7ee44121[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee44121[] = {
+ {&(_ZTV7ee44121[3]), 3,8},
+ {&(_tg__ZTV6dd4121__7ee44121[3]), 3,4},
+ {&(_tg__ZTV5cc1216dd4121__7ee44121[3]), 3,3},
+ {&(_tg__ZTV4bb21__5cc1216dd4121__7ee44121[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd4121__7ee44121[3]), 3,4},
+ {&(_ZTV7ee44121[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee44121[];
+extern VTBL_ENTRY _ZTV7ee44121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee44121[];
+Class_Descriptor cd_ee44121 = { "ee44121", // class name
+ bases_ee44121, 4,
+ &(vtc_ee44121[0]), // expected_vtbl_contents
+ &(vtt_ee44121[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee44121),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44121),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee44121),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 ee54121 : virtual dd4121 {
+ int e;
+ virtual void bar(); // _ZN7ee541213barEv
+ ~ee54121(); // tgen
+ ee54121(); // tgen
+};
+//SIG(1 ee54121) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 Fi} v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee54121 ::bar(){vfunc_called(this, "_ZN7ee541213barEv");}
+ee54121 ::~ee54121(){ note_dtor("ee54121", this);} // tgen
+ee54121 ::ee54121(){ note_ctor("ee54121", this);} // tgen
+
+static void Test_ee54121()
+{
+ extern Class_Descriptor cd_ee54121;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee54121, buf);
+ ee54121 *dp, &lv = *(dp=new (buf) ee54121());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee54121)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54121)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee54121");
+ check_base_class_offset(lv, (bb21*)(cc121*)(dd4121*), ABISELECT(32,20), "ee54121");
+ check_base_class_offset(lv, (cc121*)(dd4121*), ABISELECT(16,8), "ee54121");
+ check_base_class_offset(lv, (dd4121*), ABISELECT(16,8), "ee54121");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54121.e");
+ test_class_info(&lv, &cd_ee54121);
+ dp->~ee54121();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54121(Test_ee54121, "ee54121", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee54121C1Ev();
+extern void _ZN7ee54121D1Ev();
+Name_Map name_map_ee54121[] = {
+ NSPAIR(_ZN7ee54121C1Ev),
+ NSPAIR(_ZN7ee54121D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc121;
+extern VTBL_ENTRY _ZTI5cc121[];
+extern VTBL_ENTRY _ZTV5cc121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc121[];
+extern Class_Descriptor cd_dd4121;
+extern VTBL_ENTRY _ZTI6dd4121[];
+extern VTBL_ENTRY _ZTV6dd4121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4121[];
+static Base_Class bases_ee54121[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc121, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4121, 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 _ZTI7ee54121[];
+extern void _ZN7ee541213barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee541213barEv,_ZTv0_n16_N7ee541213barEv)();
+extern void ABISELECT(_ZThn16_N7ee541213barEv,_ZThn8_N7ee541213barEv)() __attribute__((weak));
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY vtc_ee54121[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54121[0]),
+ (VTBL_ENTRY)&_ZN7ee541213barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee541213barEv,_ZTv0_n16_N7ee541213barEv),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee54121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee54121[];
+extern void _ZN6dd41213barEv();
+static VTBL_ENTRY _tg__ZTV6dd4121__7ee54121[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4121[0]),
+ (VTBL_ENTRY)&_ZN6dd41213barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1216dd4121__7ee54121[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc1216dd4121__7ee54121[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__6dd4121__7ee54121[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee54121[] = {
+ {&(_ZTV7ee54121[4]), 4,14},
+ {&(_ZTV7ee54121[9]), 9,14},
+ {&(_ZTV7ee54121[13]), 13,14},
+ {&(_tg__ZTV6dd4121__7ee54121[3]), 3,4},
+ {&(_tg__ZTV5cc1216dd4121__7ee54121[3]), 3,3},
+ {&(_tg__ZTV4bb21__5cc1216dd4121__7ee54121[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd4121__7ee54121[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee54121[];
+extern VTBL_ENTRY _ZTV7ee54121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54121[];
+static VTBL_ENTRY alt_thunk_names491[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee541213barEv,_ZTv0_n16_N7ee541213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee541213barEv,_ZThn8_N7ee541213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54121 = { "ee54121", // class name
+ bases_ee54121, 4,
+ &(vtc_ee54121[0]), // expected_vtbl_contents
+ &(vtt_ee54121[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee54121),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54121),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54121),7, //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 ee64121 : dd4121 {
+ int e;
+ virtual void foo(); // _ZN7ee641213fooEv
+ virtual void bar(); // _ZN7ee641213barEv
+ ~ee64121(); // tgen
+ ee64121(); // tgen
+};
+//SIG(1 ee64121) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} v1 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64121 ::foo(){vfunc_called(this, "_ZN7ee641213fooEv");}
+void ee64121 ::bar(){vfunc_called(this, "_ZN7ee641213barEv");}
+ee64121 ::~ee64121(){ note_dtor("ee64121", this);} // tgen
+ee64121 ::ee64121(){ note_ctor("ee64121", this);} // tgen
+
+static void Test_ee64121()
+{
+ extern Class_Descriptor cd_ee64121;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee64121, buf);
+ ee64121 *dp, &lv = *(dp=new (buf) ee64121());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee64121)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64121)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(24,16), "ee64121");
+ check_base_class_offset(lv, (bb21*)(cc121*)(dd4121*), ABISELECT(24,16), "ee64121");
+ check_base_class_offset(lv, (cc121*)(dd4121*), 0, "ee64121");
+ check_base_class_offset(lv, (dd4121*), 0, "ee64121");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee64121.e");
+ test_class_info(&lv, &cd_ee64121);
+ dp->~ee64121();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64121(Test_ee64121, "ee64121", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee64121C1Ev();
+extern void _ZN7ee64121D1Ev();
+Name_Map name_map_ee64121[] = {
+ NSPAIR(_ZN7ee64121C1Ev),
+ NSPAIR(_ZN7ee64121D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc121;
+extern VTBL_ENTRY _ZTI5cc121[];
+extern VTBL_ENTRY _ZTV5cc121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc121[];
+extern Class_Descriptor cd_dd4121;
+extern VTBL_ENTRY _ZTI6dd4121[];
+extern VTBL_ENTRY _ZTV6dd4121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4121[];
+static Base_Class bases_ee64121[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc121, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4121, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee64121[];
+extern void _ZN7ee641213barEv();
+extern void _ZN7ee641213fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee641213fooEv,_ZTv0_n12_N7ee641213fooEv)();
+extern void ABISELECT(_ZThn24_N7ee641213fooEv,_ZThn16_N7ee641213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee64121[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64121[0]),
+ (VTBL_ENTRY)&_ZN7ee641213barEv,
+ (VTBL_ENTRY)&_ZN7ee641213fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee64121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee641213fooEv,_ZTv0_n12_N7ee641213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee64121[];
+extern void _ZN6dd41213barEv();
+static VTBL_ENTRY _tg__ZTV6dd4121__7ee64121[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4121[0]),
+ (VTBL_ENTRY)&_ZN6dd41213barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1216dd4121__7ee64121[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc1216dd4121__7ee64121[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__6dd4121__7ee64121[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee64121[] = {
+ {&(_ZTV7ee64121[3]), 3,9},
+ {&(_tg__ZTV6dd4121__7ee64121[3]), 3,4},
+ {&(_tg__ZTV5cc1216dd4121__7ee64121[3]), 3,3},
+ {&(_tg__ZTV4bb21__5cc1216dd4121__7ee64121[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd4121__7ee64121[3]), 3,4},
+ {&(_ZTV7ee64121[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee64121[];
+extern VTBL_ENTRY _ZTV7ee64121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee64121[];
+static VTBL_ENTRY alt_thunk_names492[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee641213fooEv,_ZTv0_n12_N7ee641213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee641213fooEv,_ZThn16_N7ee641213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee64121 = { "ee64121", // class name
+ bases_ee64121, 4,
+ &(vtc_ee64121[0]), // expected_vtbl_contents
+ &(vtt_ee64121[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee64121),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64121),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee64121),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names492,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee74121 : virtual dd4121 {
+ int e;
+ virtual void foo(); // _ZN7ee741213fooEv
+ virtual void bar(); // _ZN7ee741213barEv
+ ~ee74121(); // tgen
+ ee74121(); // tgen
+};
+//SIG(1 ee74121) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} v1 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74121 ::foo(){vfunc_called(this, "_ZN7ee741213fooEv");}
+void ee74121 ::bar(){vfunc_called(this, "_ZN7ee741213barEv");}
+ee74121 ::~ee74121(){ note_dtor("ee74121", this);} // tgen
+ee74121 ::ee74121(){ note_ctor("ee74121", this);} // tgen
+
+static void Test_ee74121()
+{
+ extern Class_Descriptor cd_ee74121;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee74121, buf);
+ ee74121 *dp, &lv = *(dp=new (buf) ee74121());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee74121)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74121)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee74121");
+ check_base_class_offset(lv, (bb21*)(cc121*)(dd4121*), ABISELECT(32,20), "ee74121");
+ check_base_class_offset(lv, (cc121*)(dd4121*), ABISELECT(16,8), "ee74121");
+ check_base_class_offset(lv, (dd4121*), ABISELECT(16,8), "ee74121");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74121.e");
+ test_class_info(&lv, &cd_ee74121);
+ dp->~ee74121();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74121(Test_ee74121, "ee74121", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee74121C1Ev();
+extern void _ZN7ee74121D1Ev();
+Name_Map name_map_ee74121[] = {
+ NSPAIR(_ZN7ee74121C1Ev),
+ NSPAIR(_ZN7ee74121D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc121;
+extern VTBL_ENTRY _ZTI5cc121[];
+extern VTBL_ENTRY _ZTV5cc121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc121[];
+extern Class_Descriptor cd_dd4121;
+extern VTBL_ENTRY _ZTI6dd4121[];
+extern VTBL_ENTRY _ZTV6dd4121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4121[];
+static Base_Class bases_ee74121[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc121, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4121, 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 _ZTI7ee74121[];
+extern void _ZN7ee741213fooEv();
+extern void _ZN7ee741213barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee741213barEv,_ZTv0_n16_N7ee741213barEv)();
+extern void ABISELECT(_ZThn16_N7ee741213barEv,_ZThn8_N7ee741213barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee741213fooEv,_ZTv0_n12_N7ee741213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee741213fooEv,_ZThn20_N7ee741213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74121[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74121[0]),
+ (VTBL_ENTRY)&_ZN7ee741213fooEv,
+ (VTBL_ENTRY)&_ZN7ee741213barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee741213barEv,_ZTv0_n16_N7ee741213barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee74121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee741213fooEv,_ZTv0_n12_N7ee741213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee74121[];
+extern void _ZN6dd41213barEv();
+static VTBL_ENTRY _tg__ZTV6dd4121__7ee74121[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4121[0]),
+ (VTBL_ENTRY)&_ZN6dd41213barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1216dd4121__7ee74121[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc1216dd4121__7ee74121[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__6dd4121__7ee74121[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee74121[] = {
+ {&(_ZTV7ee74121[4]), 4,15},
+ {&(_ZTV7ee74121[10]), 10,15},
+ {&(_ZTV7ee74121[14]), 14,15},
+ {&(_tg__ZTV6dd4121__7ee74121[3]), 3,4},
+ {&(_tg__ZTV5cc1216dd4121__7ee74121[3]), 3,3},
+ {&(_tg__ZTV4bb21__5cc1216dd4121__7ee74121[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd4121__7ee74121[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee74121[];
+extern VTBL_ENTRY _ZTV7ee74121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74121[];
+static VTBL_ENTRY alt_thunk_names493[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee741213fooEv,_ZTv0_n12_N7ee741213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee741213fooEv,_ZThn20_N7ee741213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee741213barEv,_ZTv0_n16_N7ee741213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee741213barEv,_ZThn8_N7ee741213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74121 = { "ee74121", // class name
+ bases_ee74121, 4,
+ &(vtc_ee74121[0]), // expected_vtbl_contents
+ &(vtt_ee74121[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee74121),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74121),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74121),7, //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 dd5121 : virtual cc121 {
+ int d;
+ virtual void bar(); // _ZN6dd51213barEv
+ ~dd5121(); // tgen
+ dd5121(); // tgen
+};
+//SIG(-1 dd5121) C1{ VBC2{ VBC3{ BC4{ v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void dd5121 ::bar(){vfunc_called(this, "_ZN6dd51213barEv");}
+dd5121 ::~dd5121(){ note_dtor("dd5121", this);} // tgen
+dd5121 ::dd5121(){ note_ctor("dd5121", this);} // tgen
+
+static void Test_dd5121()
+{
+ extern Class_Descriptor cd_dd5121;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd5121, buf);
+ dd5121 *dp, &lv = *(dp=new (buf) dd5121());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd5121)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5121)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,16), "dd5121");
+ check_base_class_offset(lv, (bb21*)(cc121*), ABISELECT(32,16), "dd5121");
+ check_base_class_offset(lv, (cc121*), ABISELECT(16,8), "dd5121");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5121.d");
+ test_class_info(&lv, &cd_dd5121);
+ dp->~dd5121();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5121(Test_dd5121, "dd5121", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd5121C1Ev();
+extern void _ZN6dd5121D1Ev();
+Name_Map name_map_dd5121[] = {
+ NSPAIR(_ZN6dd5121C1Ev),
+ NSPAIR(_ZN6dd5121D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc121;
+extern VTBL_ENTRY _ZTI5cc121[];
+extern VTBL_ENTRY _ZTV5cc121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc121[];
+static Base_Class bases_dd5121[] = {
+ // 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_bb21, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc121, 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 _ZTI6dd5121[];
+extern void _ZN6dd51213barEv();
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY vtc_dd5121[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5121[0]),
+ (VTBL_ENTRY)&_ZN6dd51213barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5121[0]),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd5121[];
+static VTBL_ENTRY _tg__ZTV5cc121__6dd5121[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc121__6dd5121[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_dd5121[] = {
+ {&(_ZTV6dd5121[4]), 4,12},
+ {&(_ZTV6dd5121[8]), 8,12},
+ {&(_ZTV6dd5121[11]), 11,12},
+ {&(_tg__ZTV5cc121__6dd5121[3]), 3,3},
+ {&(_tg__ZTV4bb21__5cc121__6dd5121[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd5121[];
+extern VTBL_ENTRY _ZTV6dd5121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5121[];
+Class_Descriptor cd_dd5121 = { "dd5121", // class name
+ bases_dd5121, 3,
+ &(vtc_dd5121[0]), // expected_vtbl_contents
+ &(vtt_dd5121[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd5121),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5121),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5121),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 ee05121 : dd5121 {
+ int e;
+ ~ee05121(); // tgen
+ ee05121(); // tgen
+};
+//SIG(1 ee05121) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 Fi} v2 Fi} Fi} v1 Fi} Fi}
+
+
+ee05121 ::~ee05121(){ note_dtor("ee05121", this);} // tgen
+ee05121 ::ee05121(){ note_ctor("ee05121", this);} // tgen
+
+static void Test_ee05121()
+{
+ extern Class_Descriptor cd_ee05121;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee05121, buf);
+ ee05121 *dp, &lv = *(dp=new (buf) ee05121());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee05121)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05121)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee05121");
+ check_base_class_offset(lv, (bb21*)(cc121*), ABISELECT(32,20), "ee05121");
+ check_base_class_offset(lv, (cc121*)(dd5121*), ABISELECT(16,12), "ee05121");
+ check_base_class_offset(lv, (dd5121*), 0, "ee05121");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05121.e");
+ test_class_info(&lv, &cd_ee05121);
+ dp->~ee05121();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05121(Test_ee05121, "ee05121", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee05121C1Ev();
+extern void _ZN7ee05121D1Ev();
+Name_Map name_map_ee05121[] = {
+ NSPAIR(_ZN7ee05121C1Ev),
+ NSPAIR(_ZN7ee05121D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc121;
+extern VTBL_ENTRY _ZTI5cc121[];
+extern VTBL_ENTRY _ZTV5cc121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc121[];
+extern Class_Descriptor cd_dd5121;
+extern VTBL_ENTRY _ZTI6dd5121[];
+extern VTBL_ENTRY _ZTV6dd5121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5121[];
+static Base_Class bases_ee05121[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 8, //bcp->virtual_function_table_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_cc121, 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_dd5121, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05121[];
+extern void _ZN6dd51213barEv();
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY vtc_ee05121[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05121[0]),
+ (VTBL_ENTRY)&_ZN6dd51213barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05121[0]),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee05121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee05121[];
+extern void _ZN6dd51213barEv();
+static VTBL_ENTRY _tg__ZTV6dd5121__7ee05121[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5121[0]),
+ (VTBL_ENTRY)&_ZN6dd51213barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc121__6dd5121__7ee05121[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__6dd5121__7ee05121[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc121__7ee05121[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc121__7ee05121[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee05121[] = {
+ {&(_ZTV7ee05121[4]), 4,12},
+ {&(_tg__ZTV6dd5121__7ee05121[4]), 4,5},
+ {&(_tg__ZTV5cc121__6dd5121__7ee05121[3]), 3,3},
+ {&(_tg__ZTV4bb21__6dd5121__7ee05121[3]), 3,4},
+ {&(_ZTV7ee05121[8]), 8,12},
+ {&(_ZTV7ee05121[11]), 11,12},
+ {&(_tg__ZTV5cc121__7ee05121[3]), 3,3},
+ {&(_tg__ZTV4bb21__5cc121__7ee05121[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee05121[];
+extern VTBL_ENTRY _ZTV7ee05121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05121[];
+Class_Descriptor cd_ee05121 = { "ee05121", // class name
+ bases_ee05121, 4,
+ &(vtc_ee05121[0]), // expected_vtbl_contents
+ &(vtt_ee05121[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee05121),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05121),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05121),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 ee15121 : virtual dd5121 {
+ int e;
+ ~ee15121(); // tgen
+ ee15121(); // tgen
+};
+//SIG(1 ee15121) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 Fi} v2 Fi} Fi} v1 Fi} Fi}
+
+
+ee15121 ::~ee15121(){ note_dtor("ee15121", this);} // tgen
+ee15121 ::ee15121(){ note_ctor("ee15121", this);} // tgen
+
+static void Test_ee15121()
+{
+ extern Class_Descriptor cd_ee15121;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee15121, buf);
+ ee15121 *dp, &lv = *(dp=new (buf) ee15121());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee15121)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15121)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(48,24), "ee15121");
+ check_base_class_offset(lv, (bb21*)(cc121*), ABISELECT(48,24), "ee15121");
+ check_base_class_offset(lv, (cc121*)(dd5121*), ABISELECT(32,16), "ee15121");
+ check_base_class_offset(lv, (dd5121*), ABISELECT(16,8), "ee15121");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15121.e");
+ test_class_info(&lv, &cd_ee15121);
+ dp->~ee15121();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15121(Test_ee15121, "ee15121", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee15121C1Ev();
+extern void _ZN7ee15121D1Ev();
+Name_Map name_map_ee15121[] = {
+ NSPAIR(_ZN7ee15121C1Ev),
+ NSPAIR(_ZN7ee15121D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc121;
+extern VTBL_ENTRY _ZTI5cc121[];
+extern VTBL_ENTRY _ZTV5cc121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc121[];
+extern Class_Descriptor cd_dd5121;
+extern VTBL_ENTRY _ZTI6dd5121[];
+extern VTBL_ENTRY _ZTV6dd5121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5121[];
+static Base_Class bases_ee15121[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb21, ABISELECT(48,24), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc121, 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_dd5121, 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 _ZTI7ee15121[];
+extern void _ZN6dd51213barEv();
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY vtc_ee15121[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15121[0]),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15121[0]),
+ (VTBL_ENTRY)&_ZN6dd51213barEv,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15121[0]),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee15121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee15121[];
+extern void _ZN6dd51213barEv();
+static VTBL_ENTRY _tg__ZTV6dd5121__7ee15121[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5121[0]),
+ (VTBL_ENTRY)&_ZN6dd51213barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc121__6dd5121__7ee15121[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__6dd5121__7ee15121[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc121__7ee15121[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc121__7ee15121[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee15121[] = {
+ {&(_ZTV7ee15121[5]), 5,18},
+ {&(_ZTV7ee15121[10]), 10,18},
+ {&(_ZTV7ee15121[14]), 14,18},
+ {&(_ZTV7ee15121[17]), 17,18},
+ {&(_tg__ZTV6dd5121__7ee15121[4]), 4,5},
+ {&(_tg__ZTV5cc121__6dd5121__7ee15121[3]), 3,3},
+ {&(_tg__ZTV4bb21__6dd5121__7ee15121[3]), 3,4},
+ {&(_tg__ZTV5cc121__7ee15121[3]), 3,3},
+ {&(_tg__ZTV4bb21__5cc121__7ee15121[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee15121[];
+extern VTBL_ENTRY _ZTV7ee15121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15121[];
+Class_Descriptor cd_ee15121 = { "ee15121", // class name
+ bases_ee15121, 4,
+ &(vtc_ee15121[0]), // expected_vtbl_contents
+ &(vtt_ee15121[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee15121),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15121),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15121),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 ee25121 : dd5121 {
+ int e;
+ virtual void foo(); // _ZN7ee251213fooEv
+ ~ee25121(); // tgen
+ ee25121(); // tgen
+};
+//SIG(1 ee25121) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee25121 ::foo(){vfunc_called(this, "_ZN7ee251213fooEv");}
+ee25121 ::~ee25121(){ note_dtor("ee25121", this);} // tgen
+ee25121 ::ee25121(){ note_ctor("ee25121", this);} // tgen
+
+static void Test_ee25121()
+{
+ extern Class_Descriptor cd_ee25121;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee25121, buf);
+ ee25121 *dp, &lv = *(dp=new (buf) ee25121());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee25121)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25121)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee25121");
+ check_base_class_offset(lv, (bb21*)(cc121*), ABISELECT(32,20), "ee25121");
+ check_base_class_offset(lv, (cc121*)(dd5121*), ABISELECT(16,12), "ee25121");
+ check_base_class_offset(lv, (dd5121*), 0, "ee25121");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25121.e");
+ test_class_info(&lv, &cd_ee25121);
+ dp->~ee25121();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25121(Test_ee25121, "ee25121", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee25121C1Ev();
+extern void _ZN7ee25121D1Ev();
+Name_Map name_map_ee25121[] = {
+ NSPAIR(_ZN7ee25121C1Ev),
+ NSPAIR(_ZN7ee25121D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc121;
+extern VTBL_ENTRY _ZTI5cc121[];
+extern VTBL_ENTRY _ZTV5cc121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc121[];
+extern Class_Descriptor cd_dd5121;
+extern VTBL_ENTRY _ZTI6dd5121[];
+extern VTBL_ENTRY _ZTV6dd5121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5121[];
+static Base_Class bases_ee25121[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc121, 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_dd5121, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25121[];
+extern void _ZN6dd51213barEv();
+extern void _ZN7ee251213fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee251213fooEv,_ZTv0_n12_N7ee251213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee251213fooEv,_ZThn20_N7ee251213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25121[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25121[0]),
+ (VTBL_ENTRY)&_ZN6dd51213barEv,
+ (VTBL_ENTRY)&_ZN7ee251213fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25121[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee25121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee251213fooEv,_ZTv0_n12_N7ee251213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee25121[];
+extern void _ZN6dd51213barEv();
+static VTBL_ENTRY _tg__ZTV6dd5121__7ee25121[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5121[0]),
+ (VTBL_ENTRY)&_ZN6dd51213barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc121__6dd5121__7ee25121[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__6dd5121__7ee25121[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc121__7ee25121[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc121__7ee25121[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee25121[] = {
+ {&(_ZTV7ee25121[4]), 4,13},
+ {&(_tg__ZTV6dd5121__7ee25121[4]), 4,5},
+ {&(_tg__ZTV5cc121__6dd5121__7ee25121[3]), 3,3},
+ {&(_tg__ZTV4bb21__6dd5121__7ee25121[3]), 3,4},
+ {&(_ZTV7ee25121[9]), 9,13},
+ {&(_ZTV7ee25121[12]), 12,13},
+ {&(_tg__ZTV5cc121__7ee25121[3]), 3,3},
+ {&(_tg__ZTV4bb21__5cc121__7ee25121[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee25121[];
+extern VTBL_ENTRY _ZTV7ee25121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25121[];
+static VTBL_ENTRY alt_thunk_names494[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee251213fooEv,_ZTv0_n12_N7ee251213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee251213fooEv,_ZThn20_N7ee251213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25121 = { "ee25121", // class name
+ bases_ee25121, 4,
+ &(vtc_ee25121[0]), // expected_vtbl_contents
+ &(vtt_ee25121[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee25121),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25121),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25121),8, //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 ee35121 : virtual dd5121 {
+ int e;
+ virtual void foo(); // _ZN7ee351213fooEv
+ ~ee35121(); // tgen
+ ee35121(); // tgen
+};
+//SIG(1 ee35121) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee35121 ::foo(){vfunc_called(this, "_ZN7ee351213fooEv");}
+ee35121 ::~ee35121(){ note_dtor("ee35121", this);} // tgen
+ee35121 ::ee35121(){ note_ctor("ee35121", this);} // tgen
+
+static void Test_ee35121()
+{
+ extern Class_Descriptor cd_ee35121;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee35121, buf);
+ ee35121 *dp, &lv = *(dp=new (buf) ee35121());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee35121)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35121)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(48,24), "ee35121");
+ check_base_class_offset(lv, (bb21*)(cc121*), ABISELECT(48,24), "ee35121");
+ check_base_class_offset(lv, (cc121*)(dd5121*), ABISELECT(32,16), "ee35121");
+ check_base_class_offset(lv, (dd5121*), ABISELECT(16,8), "ee35121");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35121.e");
+ test_class_info(&lv, &cd_ee35121);
+ dp->~ee35121();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35121(Test_ee35121, "ee35121", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee35121C1Ev();
+extern void _ZN7ee35121D1Ev();
+Name_Map name_map_ee35121[] = {
+ NSPAIR(_ZN7ee35121C1Ev),
+ NSPAIR(_ZN7ee35121D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc121;
+extern VTBL_ENTRY _ZTI5cc121[];
+extern VTBL_ENTRY _ZTV5cc121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc121[];
+extern Class_Descriptor cd_dd5121;
+extern VTBL_ENTRY _ZTI6dd5121[];
+extern VTBL_ENTRY _ZTV6dd5121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5121[];
+static Base_Class bases_ee35121[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb21, ABISELECT(48,24), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc121, 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_dd5121, ABISELECT(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 _ZTI7ee35121[];
+extern void _ZN7ee351213fooEv();
+extern void _ZN6dd51213barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee351213fooEv,_ZTv0_n12_N7ee351213fooEv)();
+extern void ABISELECT(_ZThn48_N7ee351213fooEv,_ZThn24_N7ee351213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35121[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35121[0]),
+ (VTBL_ENTRY)&_ZN7ee351213fooEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35121[0]),
+ (VTBL_ENTRY)&_ZN6dd51213barEv,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35121[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee35121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee351213fooEv,_ZTv0_n12_N7ee351213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee35121[];
+extern void _ZN6dd51213barEv();
+static VTBL_ENTRY _tg__ZTV6dd5121__7ee35121[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5121[0]),
+ (VTBL_ENTRY)&_ZN6dd51213barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc121__6dd5121__7ee35121[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__6dd5121__7ee35121[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc121__7ee35121[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc121__7ee35121[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee35121[] = {
+ {&(_ZTV7ee35121[5]), 5,19},
+ {&(_ZTV7ee35121[11]), 11,19},
+ {&(_ZTV7ee35121[15]), 15,19},
+ {&(_ZTV7ee35121[18]), 18,19},
+ {&(_tg__ZTV6dd5121__7ee35121[4]), 4,5},
+ {&(_tg__ZTV5cc121__6dd5121__7ee35121[3]), 3,3},
+ {&(_tg__ZTV4bb21__6dd5121__7ee35121[3]), 3,4},
+ {&(_tg__ZTV5cc121__7ee35121[3]), 3,3},
+ {&(_tg__ZTV4bb21__5cc121__7ee35121[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee35121[];
+extern VTBL_ENTRY _ZTV7ee35121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35121[];
+static VTBL_ENTRY alt_thunk_names495[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee351213fooEv,_ZTv0_n12_N7ee351213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee351213fooEv,_ZThn24_N7ee351213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35121 = { "ee35121", // class name
+ bases_ee35121, 4,
+ &(vtc_ee35121[0]), // expected_vtbl_contents
+ &(vtt_ee35121[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee35121),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35121),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35121),9, //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 ee45121 : dd5121 {
+ int e;
+ virtual void bar(); // _ZN7ee451213barEv
+ ~ee45121(); // tgen
+ ee45121(); // tgen
+};
+//SIG(1 ee45121) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 Fi} v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee45121 ::bar(){vfunc_called(this, "_ZN7ee451213barEv");}
+ee45121 ::~ee45121(){ note_dtor("ee45121", this);} // tgen
+ee45121 ::ee45121(){ note_ctor("ee45121", this);} // tgen
+
+static void Test_ee45121()
+{
+ extern Class_Descriptor cd_ee45121;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee45121, buf);
+ ee45121 *dp, &lv = *(dp=new (buf) ee45121());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee45121)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45121)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee45121");
+ check_base_class_offset(lv, (bb21*)(cc121*), ABISELECT(32,20), "ee45121");
+ check_base_class_offset(lv, (cc121*)(dd5121*), ABISELECT(16,12), "ee45121");
+ check_base_class_offset(lv, (dd5121*), 0, "ee45121");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45121.e");
+ test_class_info(&lv, &cd_ee45121);
+ dp->~ee45121();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45121(Test_ee45121, "ee45121", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee45121C1Ev();
+extern void _ZN7ee45121D1Ev();
+Name_Map name_map_ee45121[] = {
+ NSPAIR(_ZN7ee45121C1Ev),
+ NSPAIR(_ZN7ee45121D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc121;
+extern VTBL_ENTRY _ZTI5cc121[];
+extern VTBL_ENTRY _ZTV5cc121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc121[];
+extern Class_Descriptor cd_dd5121;
+extern VTBL_ENTRY _ZTI6dd5121[];
+extern VTBL_ENTRY _ZTV6dd5121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5121[];
+static Base_Class bases_ee45121[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 8, //bcp->virtual_function_table_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_cc121, 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_dd5121, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45121[];
+extern void _ZN7ee451213barEv();
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY vtc_ee45121[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45121[0]),
+ (VTBL_ENTRY)&_ZN7ee451213barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45121[0]),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee45121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee45121[];
+extern void _ZN6dd51213barEv();
+static VTBL_ENTRY _tg__ZTV6dd5121__7ee45121[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5121[0]),
+ (VTBL_ENTRY)&_ZN6dd51213barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc121__6dd5121__7ee45121[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__6dd5121__7ee45121[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc121__7ee45121[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc121__7ee45121[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee45121[] = {
+ {&(_ZTV7ee45121[4]), 4,12},
+ {&(_tg__ZTV6dd5121__7ee45121[4]), 4,5},
+ {&(_tg__ZTV5cc121__6dd5121__7ee45121[3]), 3,3},
+ {&(_tg__ZTV4bb21__6dd5121__7ee45121[3]), 3,4},
+ {&(_ZTV7ee45121[8]), 8,12},
+ {&(_ZTV7ee45121[11]), 11,12},
+ {&(_tg__ZTV5cc121__7ee45121[3]), 3,3},
+ {&(_tg__ZTV4bb21__5cc121__7ee45121[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee45121[];
+extern VTBL_ENTRY _ZTV7ee45121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45121[];
+Class_Descriptor cd_ee45121 = { "ee45121", // class name
+ bases_ee45121, 4,
+ &(vtc_ee45121[0]), // expected_vtbl_contents
+ &(vtt_ee45121[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee45121),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45121),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45121),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 ee55121 : virtual dd5121 {
+ int e;
+ virtual void bar(); // _ZN7ee551213barEv
+ ~ee55121(); // tgen
+ ee55121(); // tgen
+};
+//SIG(1 ee55121) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 Fi} v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee55121 ::bar(){vfunc_called(this, "_ZN7ee551213barEv");}
+ee55121 ::~ee55121(){ note_dtor("ee55121", this);} // tgen
+ee55121 ::ee55121(){ note_ctor("ee55121", this);} // tgen
+
+static void Test_ee55121()
+{
+ extern Class_Descriptor cd_ee55121;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee55121, buf);
+ ee55121 *dp, &lv = *(dp=new (buf) ee55121());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee55121)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55121)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(48,24), "ee55121");
+ check_base_class_offset(lv, (bb21*)(cc121*), ABISELECT(48,24), "ee55121");
+ check_base_class_offset(lv, (cc121*)(dd5121*), ABISELECT(32,16), "ee55121");
+ check_base_class_offset(lv, (dd5121*), ABISELECT(16,8), "ee55121");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55121.e");
+ test_class_info(&lv, &cd_ee55121);
+ dp->~ee55121();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55121(Test_ee55121, "ee55121", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee55121C1Ev();
+extern void _ZN7ee55121D1Ev();
+Name_Map name_map_ee55121[] = {
+ NSPAIR(_ZN7ee55121C1Ev),
+ NSPAIR(_ZN7ee55121D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc121;
+extern VTBL_ENTRY _ZTI5cc121[];
+extern VTBL_ENTRY _ZTV5cc121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc121[];
+extern Class_Descriptor cd_dd5121;
+extern VTBL_ENTRY _ZTI6dd5121[];
+extern VTBL_ENTRY _ZTV6dd5121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5121[];
+static Base_Class bases_ee55121[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb21, ABISELECT(48,24), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc121, 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_dd5121, ABISELECT(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 _ZTI7ee55121[];
+extern void _ZN7ee551213barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee551213barEv,_ZTv0_n20_N7ee551213barEv)();
+extern void ABISELECT(_ZThn16_N7ee551213barEv,_ZThn8_N7ee551213barEv)() __attribute__((weak));
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY vtc_ee55121[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55121[0]),
+ (VTBL_ENTRY)&_ZN7ee551213barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee551213barEv,_ZTv0_n20_N7ee551213barEv),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55121[0]),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee55121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee55121[];
+extern void _ZN6dd51213barEv();
+static VTBL_ENTRY _tg__ZTV6dd5121__7ee55121[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5121[0]),
+ (VTBL_ENTRY)&_ZN6dd51213barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc121__6dd5121__7ee55121[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__6dd5121__7ee55121[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc121__7ee55121[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc121__7ee55121[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee55121[] = {
+ {&(_ZTV7ee55121[5]), 5,19},
+ {&(_ZTV7ee55121[11]), 11,19},
+ {&(_ZTV7ee55121[15]), 15,19},
+ {&(_ZTV7ee55121[18]), 18,19},
+ {&(_tg__ZTV6dd5121__7ee55121[4]), 4,5},
+ {&(_tg__ZTV5cc121__6dd5121__7ee55121[3]), 3,3},
+ {&(_tg__ZTV4bb21__6dd5121__7ee55121[3]), 3,4},
+ {&(_tg__ZTV5cc121__7ee55121[3]), 3,3},
+ {&(_tg__ZTV4bb21__5cc121__7ee55121[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee55121[];
+extern VTBL_ENTRY _ZTV7ee55121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55121[];
+static VTBL_ENTRY alt_thunk_names496[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee551213barEv,_ZTv0_n20_N7ee551213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee551213barEv,_ZThn8_N7ee551213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55121 = { "ee55121", // class name
+ bases_ee55121, 4,
+ &(vtc_ee55121[0]), // expected_vtbl_contents
+ &(vtt_ee55121[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee55121),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55121),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55121),9, //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 ee65121 : dd5121 {
+ int e;
+ virtual void foo(); // _ZN7ee651213fooEv
+ virtual void bar(); // _ZN7ee651213barEv
+ ~ee65121(); // tgen
+ ee65121(); // tgen
+};
+//SIG(1 ee65121) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} v1 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65121 ::foo(){vfunc_called(this, "_ZN7ee651213fooEv");}
+void ee65121 ::bar(){vfunc_called(this, "_ZN7ee651213barEv");}
+ee65121 ::~ee65121(){ note_dtor("ee65121", this);} // tgen
+ee65121 ::ee65121(){ note_ctor("ee65121", this);} // tgen
+
+static void Test_ee65121()
+{
+ extern Class_Descriptor cd_ee65121;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee65121, buf);
+ ee65121 *dp, &lv = *(dp=new (buf) ee65121());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee65121)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65121)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee65121");
+ check_base_class_offset(lv, (bb21*)(cc121*), ABISELECT(32,20), "ee65121");
+ check_base_class_offset(lv, (cc121*)(dd5121*), ABISELECT(16,12), "ee65121");
+ check_base_class_offset(lv, (dd5121*), 0, "ee65121");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65121.e");
+ test_class_info(&lv, &cd_ee65121);
+ dp->~ee65121();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65121(Test_ee65121, "ee65121", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee65121C1Ev();
+extern void _ZN7ee65121D1Ev();
+Name_Map name_map_ee65121[] = {
+ NSPAIR(_ZN7ee65121C1Ev),
+ NSPAIR(_ZN7ee65121D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc121;
+extern VTBL_ENTRY _ZTI5cc121[];
+extern VTBL_ENTRY _ZTV5cc121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc121[];
+extern Class_Descriptor cd_dd5121;
+extern VTBL_ENTRY _ZTI6dd5121[];
+extern VTBL_ENTRY _ZTV6dd5121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5121[];
+static Base_Class bases_ee65121[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc121, 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_dd5121, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65121[];
+extern void _ZN7ee651213barEv();
+extern void _ZN7ee651213fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee651213fooEv,_ZTv0_n12_N7ee651213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee651213fooEv,_ZThn20_N7ee651213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65121[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65121[0]),
+ (VTBL_ENTRY)&_ZN7ee651213barEv,
+ (VTBL_ENTRY)&_ZN7ee651213fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65121[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee65121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee651213fooEv,_ZTv0_n12_N7ee651213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee65121[];
+extern void _ZN6dd51213barEv();
+static VTBL_ENTRY _tg__ZTV6dd5121__7ee65121[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5121[0]),
+ (VTBL_ENTRY)&_ZN6dd51213barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc121__6dd5121__7ee65121[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__6dd5121__7ee65121[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc121__7ee65121[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc121__7ee65121[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee65121[] = {
+ {&(_ZTV7ee65121[4]), 4,13},
+ {&(_tg__ZTV6dd5121__7ee65121[4]), 4,5},
+ {&(_tg__ZTV5cc121__6dd5121__7ee65121[3]), 3,3},
+ {&(_tg__ZTV4bb21__6dd5121__7ee65121[3]), 3,4},
+ {&(_ZTV7ee65121[9]), 9,13},
+ {&(_ZTV7ee65121[12]), 12,13},
+ {&(_tg__ZTV5cc121__7ee65121[3]), 3,3},
+ {&(_tg__ZTV4bb21__5cc121__7ee65121[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee65121[];
+extern VTBL_ENTRY _ZTV7ee65121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65121[];
+static VTBL_ENTRY alt_thunk_names497[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee651213fooEv,_ZTv0_n12_N7ee651213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee651213fooEv,_ZThn20_N7ee651213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65121 = { "ee65121", // class name
+ bases_ee65121, 4,
+ &(vtc_ee65121[0]), // expected_vtbl_contents
+ &(vtt_ee65121[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee65121),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65121),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65121),8, //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 ee75121 : virtual dd5121 {
+ int e;
+ virtual void foo(); // _ZN7ee751213fooEv
+ virtual void bar(); // _ZN7ee751213barEv
+ ~ee75121(); // tgen
+ ee75121(); // tgen
+};
+//SIG(1 ee75121) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} v1 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75121 ::foo(){vfunc_called(this, "_ZN7ee751213fooEv");}
+void ee75121 ::bar(){vfunc_called(this, "_ZN7ee751213barEv");}
+ee75121 ::~ee75121(){ note_dtor("ee75121", this);} // tgen
+ee75121 ::ee75121(){ note_ctor("ee75121", this);} // tgen
+
+static void Test_ee75121()
+{
+ extern Class_Descriptor cd_ee75121;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee75121, buf);
+ ee75121 *dp, &lv = *(dp=new (buf) ee75121());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee75121)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75121)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(48,24), "ee75121");
+ check_base_class_offset(lv, (bb21*)(cc121*), ABISELECT(48,24), "ee75121");
+ check_base_class_offset(lv, (cc121*)(dd5121*), ABISELECT(32,16), "ee75121");
+ check_base_class_offset(lv, (dd5121*), ABISELECT(16,8), "ee75121");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75121.e");
+ test_class_info(&lv, &cd_ee75121);
+ dp->~ee75121();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75121(Test_ee75121, "ee75121", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee75121C1Ev();
+extern void _ZN7ee75121D1Ev();
+Name_Map name_map_ee75121[] = {
+ NSPAIR(_ZN7ee75121C1Ev),
+ NSPAIR(_ZN7ee75121D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc121;
+extern VTBL_ENTRY _ZTI5cc121[];
+extern VTBL_ENTRY _ZTV5cc121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc121[];
+extern Class_Descriptor cd_dd5121;
+extern VTBL_ENTRY _ZTI6dd5121[];
+extern VTBL_ENTRY _ZTV6dd5121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5121[];
+static Base_Class bases_ee75121[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb21, ABISELECT(48,24), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc121, 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_dd5121, 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 _ZTI7ee75121[];
+extern void _ZN7ee751213fooEv();
+extern void _ZN7ee751213barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee751213barEv,_ZTv0_n20_N7ee751213barEv)();
+extern void ABISELECT(_ZThn16_N7ee751213barEv,_ZThn8_N7ee751213barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee751213fooEv,_ZTv0_n12_N7ee751213fooEv)();
+extern void ABISELECT(_ZThn48_N7ee751213fooEv,_ZThn24_N7ee751213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75121[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75121[0]),
+ (VTBL_ENTRY)&_ZN7ee751213fooEv,
+ (VTBL_ENTRY)&_ZN7ee751213barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee751213barEv,_ZTv0_n20_N7ee751213barEv),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75121[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee75121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee751213fooEv,_ZTv0_n12_N7ee751213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee75121[];
+extern void _ZN6dd51213barEv();
+static VTBL_ENTRY _tg__ZTV6dd5121__7ee75121[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5121[0]),
+ (VTBL_ENTRY)&_ZN6dd51213barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc121__6dd5121__7ee75121[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__6dd5121__7ee75121[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc121__7ee75121[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc121__7ee75121[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee75121[] = {
+ {&(_ZTV7ee75121[5]), 5,20},
+ {&(_ZTV7ee75121[12]), 12,20},
+ {&(_ZTV7ee75121[16]), 16,20},
+ {&(_ZTV7ee75121[19]), 19,20},
+ {&(_tg__ZTV6dd5121__7ee75121[4]), 4,5},
+ {&(_tg__ZTV5cc121__6dd5121__7ee75121[3]), 3,3},
+ {&(_tg__ZTV4bb21__6dd5121__7ee75121[3]), 3,4},
+ {&(_tg__ZTV5cc121__7ee75121[3]), 3,3},
+ {&(_tg__ZTV4bb21__5cc121__7ee75121[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee75121[];
+extern VTBL_ENTRY _ZTV7ee75121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75121[];
+static VTBL_ENTRY alt_thunk_names498[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee751213fooEv,_ZTv0_n12_N7ee751213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee751213fooEv,_ZThn24_N7ee751213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee751213barEv,_ZTv0_n20_N7ee751213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee751213barEv,_ZThn8_N7ee751213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75121 = { "ee75121", // class name
+ bases_ee75121, 4,
+ &(vtc_ee75121[0]), // expected_vtbl_contents
+ &(vtt_ee75121[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee75121),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75121),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75121),9, //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 dd6121 : cc121 {
+ int d;
+ virtual void bar(); // _ZN6dd61213barEv
+ virtual void foo(); // _ZN6dd61213fooEv
+ ~dd6121(); // tgen
+ dd6121(); // tgen
+};
+//SIG(-1 dd6121) C1{ BC2{ VBC3{ BC4{ v2 Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void dd6121 ::bar(){vfunc_called(this, "_ZN6dd61213barEv");}
+void dd6121 ::foo(){vfunc_called(this, "_ZN6dd61213fooEv");}
+dd6121 ::~dd6121(){ note_dtor("dd6121", this);} // tgen
+dd6121 ::dd6121(){ note_ctor("dd6121", this);} // tgen
+
+static void Test_dd6121()
+{
+ extern Class_Descriptor cd_dd6121;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd6121, buf);
+ dd6121 *dp, &lv = *(dp=new (buf) dd6121());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd6121)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6121)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(16,12), "dd6121");
+ check_base_class_offset(lv, (bb21*)(cc121*), ABISELECT(16,12), "dd6121");
+ check_base_class_offset(lv, (cc121*), 0, "dd6121");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd6121.d");
+ test_class_info(&lv, &cd_dd6121);
+ dp->~dd6121();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6121(Test_dd6121, "dd6121", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd6121C1Ev();
+extern void _ZN6dd6121D1Ev();
+Name_Map name_map_dd6121[] = {
+ NSPAIR(_ZN6dd6121C1Ev),
+ NSPAIR(_ZN6dd6121D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc121;
+extern VTBL_ENTRY _ZTI5cc121[];
+extern VTBL_ENTRY _ZTV5cc121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc121[];
+static Base_Class bases_dd6121[] = {
+ // 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_bb21, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc121, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd6121[];
+extern void _ZN6dd61213barEv();
+extern void _ZN6dd61213fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd61213fooEv,_ZTv0_n12_N6dd61213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd61213fooEv,_ZThn12_N6dd61213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd6121[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6121[0]),
+ (VTBL_ENTRY)&_ZN6dd61213barEv,
+ (VTBL_ENTRY)&_ZN6dd61213fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61213fooEv,_ZTv0_n12_N6dd61213fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd6121[];
+static VTBL_ENTRY _tg__ZTV5cc121__6dd6121[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc121__6dd6121[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_dd6121[] = {
+ {&(_ZTV6dd6121[3]), 3,9},
+ {&(_tg__ZTV5cc121__6dd6121[3]), 3,3},
+ {&(_tg__ZTV4bb21__5cc121__6dd6121[3]), 3,4},
+ {&(_ZTV6dd6121[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI6dd6121[];
+extern VTBL_ENTRY _ZTV6dd6121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6121[];
+static VTBL_ENTRY alt_thunk_names499[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61213fooEv,_ZTv0_n12_N6dd61213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61213fooEv,_ZThn12_N6dd61213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd6121 = { "dd6121", // class name
+ bases_dd6121, 3,
+ &(vtc_dd6121[0]), // expected_vtbl_contents
+ &(vtt_dd6121[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd6121),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6121),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd6121),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names499,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee06121 : dd6121 {
+ int e;
+ ~ee06121(); // tgen
+ ee06121(); // tgen
+};
+//SIG(1 ee06121) C1{ BC2{ BC3{ VBC4{ BC5{ v2 Fi} v2 Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee06121 ::~ee06121(){ note_dtor("ee06121", this);} // tgen
+ee06121 ::ee06121(){ note_ctor("ee06121", this);} // tgen
+
+static void Test_ee06121()
+{
+ extern Class_Descriptor cd_ee06121;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee06121, buf);
+ ee06121 *dp, &lv = *(dp=new (buf) ee06121());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee06121)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06121)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(24,16), "ee06121");
+ check_base_class_offset(lv, (bb21*)(cc121*)(dd6121*), ABISELECT(24,16), "ee06121");
+ check_base_class_offset(lv, (cc121*)(dd6121*), 0, "ee06121");
+ check_base_class_offset(lv, (dd6121*), 0, "ee06121");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee06121.e");
+ test_class_info(&lv, &cd_ee06121);
+ dp->~ee06121();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06121(Test_ee06121, "ee06121", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee06121C1Ev();
+extern void _ZN7ee06121D1Ev();
+Name_Map name_map_ee06121[] = {
+ NSPAIR(_ZN7ee06121C1Ev),
+ NSPAIR(_ZN7ee06121D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc121;
+extern VTBL_ENTRY _ZTI5cc121[];
+extern VTBL_ENTRY _ZTV5cc121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc121[];
+extern Class_Descriptor cd_dd6121;
+extern VTBL_ENTRY _ZTI6dd6121[];
+extern VTBL_ENTRY _ZTV6dd6121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6121[];
+static Base_Class bases_ee06121[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc121, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6121, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee06121[];
+extern void _ZN6dd61213barEv();
+extern void _ZN6dd61213fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd61213fooEv,_ZTv0_n12_N6dd61213fooEv)();
+extern void ABISELECT(_ZThn24_N6dd61213fooEv,_ZThn16_N6dd61213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee06121[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06121[0]),
+ (VTBL_ENTRY)&_ZN6dd61213barEv,
+ (VTBL_ENTRY)&_ZN6dd61213fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee06121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61213fooEv,_ZTv0_n12_N6dd61213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee06121[];
+extern void _ZN6dd61213barEv();
+extern void _ZN6dd61213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6121__7ee06121[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6121[0]),
+ (VTBL_ENTRY)&_ZN6dd61213barEv,
+ (VTBL_ENTRY)&_ZN6dd61213fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1216dd6121__7ee06121[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc1216dd6121__7ee06121[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd61213fooEv,_ZTv0_n12_N6dd61213fooEv)();
+extern void ABISELECT(_ZThn24_N6dd61213fooEv,_ZThn16_N6dd61213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd6121__7ee06121[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61213fooEv,_ZTv0_n12_N6dd61213fooEv),
+};
+static VTT_ENTRY vtt_ee06121[] = {
+ {&(_ZTV7ee06121[3]), 3,9},
+ {&(_tg__ZTV6dd6121__7ee06121[3]), 3,5},
+ {&(_tg__ZTV5cc1216dd6121__7ee06121[3]), 3,3},
+ {&(_tg__ZTV4bb21__5cc1216dd6121__7ee06121[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd6121__7ee06121[3]), 3,4},
+ {&(_ZTV7ee06121[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee06121[];
+extern VTBL_ENTRY _ZTV7ee06121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee06121[];
+static VTBL_ENTRY alt_thunk_names500[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61213fooEv,_ZTv0_n12_N6dd61213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61213fooEv,_ZThn16_N6dd61213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61213fooEv,_ZThn16_N6dd61213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee06121 = { "ee06121", // class name
+ bases_ee06121, 4,
+ &(vtc_ee06121[0]), // expected_vtbl_contents
+ &(vtt_ee06121[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee06121),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06121),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee06121),6, //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 ee16121 : virtual dd6121 {
+ int e;
+ ~ee16121(); // tgen
+ ee16121(); // tgen
+};
+//SIG(1 ee16121) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 Fi} v2 Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee16121 ::~ee16121(){ note_dtor("ee16121", this);} // tgen
+ee16121 ::ee16121(){ note_ctor("ee16121", this);} // tgen
+
+static void Test_ee16121()
+{
+ extern Class_Descriptor cd_ee16121;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee16121, buf);
+ ee16121 *dp, &lv = *(dp=new (buf) ee16121());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee16121)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16121)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee16121");
+ check_base_class_offset(lv, (bb21*)(cc121*)(dd6121*), ABISELECT(32,20), "ee16121");
+ check_base_class_offset(lv, (cc121*)(dd6121*), ABISELECT(16,8), "ee16121");
+ check_base_class_offset(lv, (dd6121*), ABISELECT(16,8), "ee16121");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16121.e");
+ test_class_info(&lv, &cd_ee16121);
+ dp->~ee16121();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16121(Test_ee16121, "ee16121", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee16121C1Ev();
+extern void _ZN7ee16121D1Ev();
+Name_Map name_map_ee16121[] = {
+ NSPAIR(_ZN7ee16121C1Ev),
+ NSPAIR(_ZN7ee16121D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc121;
+extern VTBL_ENTRY _ZTI5cc121[];
+extern VTBL_ENTRY _ZTV5cc121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc121[];
+extern Class_Descriptor cd_dd6121;
+extern VTBL_ENTRY _ZTI6dd6121[];
+extern VTBL_ENTRY _ZTV6dd6121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6121[];
+static Base_Class bases_ee16121[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc121, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6121, 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 _ZTI7ee16121[];
+extern void _ZN6dd61213barEv();
+extern void _ZN6dd61213fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd61213fooEv,_ZTv0_n12_N6dd61213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd61213fooEv,_ZThn12_N6dd61213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee16121[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16121[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16121[0]),
+ (VTBL_ENTRY)&_ZN6dd61213barEv,
+ (VTBL_ENTRY)&_ZN6dd61213fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee16121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61213fooEv,_ZTv0_n12_N6dd61213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee16121[];
+extern void _ZN6dd61213barEv();
+extern void _ZN6dd61213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6121__7ee16121[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6121[0]),
+ (VTBL_ENTRY)&_ZN6dd61213barEv,
+ (VTBL_ENTRY)&_ZN6dd61213fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1216dd6121__7ee16121[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc1216dd6121__7ee16121[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd61213fooEv,_ZTv0_n12_N6dd61213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd61213fooEv,_ZThn12_N6dd61213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd6121__7ee16121[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61213fooEv,_ZTv0_n12_N6dd61213fooEv),
+};
+static VTT_ENTRY vtt_ee16121[] = {
+ {&(_ZTV7ee16121[4]), 4,15},
+ {&(_ZTV7ee16121[9]), 9,15},
+ {&(_ZTV7ee16121[14]), 14,15},
+ {&(_tg__ZTV6dd6121__7ee16121[3]), 3,5},
+ {&(_tg__ZTV5cc1216dd6121__7ee16121[3]), 3,3},
+ {&(_tg__ZTV4bb21__5cc1216dd6121__7ee16121[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd6121__7ee16121[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee16121[];
+extern VTBL_ENTRY _ZTV7ee16121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16121[];
+static VTBL_ENTRY alt_thunk_names501[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61213fooEv,_ZTv0_n12_N6dd61213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61213fooEv,_ZThn12_N6dd61213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61213fooEv,_ZThn12_N6dd61213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee16121 = { "ee16121", // class name
+ bases_ee16121, 4,
+ &(vtc_ee16121[0]), // expected_vtbl_contents
+ &(vtt_ee16121[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee16121),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16121),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16121),7, //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 ee26121 : dd6121 {
+ int e;
+ virtual void foo(); // _ZN7ee261213fooEv
+ ~ee26121(); // tgen
+ ee26121(); // tgen
+};
+//SIG(1 ee26121) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} v1 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26121 ::foo(){vfunc_called(this, "_ZN7ee261213fooEv");}
+ee26121 ::~ee26121(){ note_dtor("ee26121", this);} // tgen
+ee26121 ::ee26121(){ note_ctor("ee26121", this);} // tgen
+
+static void Test_ee26121()
+{
+ extern Class_Descriptor cd_ee26121;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee26121, buf);
+ ee26121 *dp, &lv = *(dp=new (buf) ee26121());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee26121)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26121)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(24,16), "ee26121");
+ check_base_class_offset(lv, (bb21*)(cc121*)(dd6121*), ABISELECT(24,16), "ee26121");
+ check_base_class_offset(lv, (cc121*)(dd6121*), 0, "ee26121");
+ check_base_class_offset(lv, (dd6121*), 0, "ee26121");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee26121.e");
+ test_class_info(&lv, &cd_ee26121);
+ dp->~ee26121();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26121(Test_ee26121, "ee26121", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee26121C1Ev();
+extern void _ZN7ee26121D1Ev();
+Name_Map name_map_ee26121[] = {
+ NSPAIR(_ZN7ee26121C1Ev),
+ NSPAIR(_ZN7ee26121D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc121;
+extern VTBL_ENTRY _ZTI5cc121[];
+extern VTBL_ENTRY _ZTV5cc121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc121[];
+extern Class_Descriptor cd_dd6121;
+extern VTBL_ENTRY _ZTI6dd6121[];
+extern VTBL_ENTRY _ZTV6dd6121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6121[];
+static Base_Class bases_ee26121[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc121, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6121, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee26121[];
+extern void _ZN6dd61213barEv();
+extern void _ZN7ee261213fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee261213fooEv,_ZTv0_n12_N7ee261213fooEv)();
+extern void ABISELECT(_ZThn24_N7ee261213fooEv,_ZThn16_N7ee261213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee26121[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26121[0]),
+ (VTBL_ENTRY)&_ZN6dd61213barEv,
+ (VTBL_ENTRY)&_ZN7ee261213fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee26121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee261213fooEv,_ZTv0_n12_N7ee261213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee26121[];
+extern void _ZN6dd61213barEv();
+extern void _ZN6dd61213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6121__7ee26121[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6121[0]),
+ (VTBL_ENTRY)&_ZN6dd61213barEv,
+ (VTBL_ENTRY)&_ZN6dd61213fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1216dd6121__7ee26121[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc1216dd6121__7ee26121[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd61213fooEv,_ZTv0_n12_N6dd61213fooEv)();
+extern void ABISELECT(_ZThn24_N6dd61213fooEv,_ZThn16_N6dd61213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd6121__7ee26121[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61213fooEv,_ZTv0_n12_N6dd61213fooEv),
+};
+static VTT_ENTRY vtt_ee26121[] = {
+ {&(_ZTV7ee26121[3]), 3,9},
+ {&(_tg__ZTV6dd6121__7ee26121[3]), 3,5},
+ {&(_tg__ZTV5cc1216dd6121__7ee26121[3]), 3,3},
+ {&(_tg__ZTV4bb21__5cc1216dd6121__7ee26121[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd6121__7ee26121[3]), 3,4},
+ {&(_ZTV7ee26121[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee26121[];
+extern VTBL_ENTRY _ZTV7ee26121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee26121[];
+static VTBL_ENTRY alt_thunk_names502[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61213fooEv,_ZTv0_n12_N6dd61213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61213fooEv,_ZThn16_N6dd61213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee261213fooEv,_ZTv0_n12_N7ee261213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee261213fooEv,_ZThn16_N7ee261213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee26121 = { "ee26121", // class name
+ bases_ee26121, 4,
+ &(vtc_ee26121[0]), // expected_vtbl_contents
+ &(vtt_ee26121[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee26121),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26121),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee26121),6, //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 ee36121 : virtual dd6121 {
+ int e;
+ virtual void foo(); // _ZN7ee361213fooEv
+ ~ee36121(); // tgen
+ ee36121(); // tgen
+};
+//SIG(1 ee36121) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} v1 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36121 ::foo(){vfunc_called(this, "_ZN7ee361213fooEv");}
+ee36121 ::~ee36121(){ note_dtor("ee36121", this);} // tgen
+ee36121 ::ee36121(){ note_ctor("ee36121", this);} // tgen
+
+static void Test_ee36121()
+{
+ extern Class_Descriptor cd_ee36121;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee36121, buf);
+ ee36121 *dp, &lv = *(dp=new (buf) ee36121());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee36121)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36121)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee36121");
+ check_base_class_offset(lv, (bb21*)(cc121*)(dd6121*), ABISELECT(32,20), "ee36121");
+ check_base_class_offset(lv, (cc121*)(dd6121*), ABISELECT(16,8), "ee36121");
+ check_base_class_offset(lv, (dd6121*), ABISELECT(16,8), "ee36121");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36121.e");
+ test_class_info(&lv, &cd_ee36121);
+ dp->~ee36121();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36121(Test_ee36121, "ee36121", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee36121C1Ev();
+extern void _ZN7ee36121D1Ev();
+Name_Map name_map_ee36121[] = {
+ NSPAIR(_ZN7ee36121C1Ev),
+ NSPAIR(_ZN7ee36121D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc121;
+extern VTBL_ENTRY _ZTI5cc121[];
+extern VTBL_ENTRY _ZTV5cc121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc121[];
+extern Class_Descriptor cd_dd6121;
+extern VTBL_ENTRY _ZTI6dd6121[];
+extern VTBL_ENTRY _ZTV6dd6121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6121[];
+static Base_Class bases_ee36121[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc121, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6121, 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 _ZTI7ee36121[];
+extern void _ZN7ee361213fooEv();
+extern void _ZN6dd61213barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee361213fooEv,_ZTv0_n20_N7ee361213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee361213fooEv,_ZThn8_N7ee361213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee361213fooEv,_ZTv0_n12_N7ee361213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee361213fooEv,_ZThn20_N7ee361213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee36121[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36121[0]),
+ (VTBL_ENTRY)&_ZN7ee361213fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36121[0]),
+ (VTBL_ENTRY)&_ZN6dd61213barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee361213fooEv,_ZTv0_n20_N7ee361213fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee36121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee361213fooEv,_ZTv0_n12_N7ee361213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee36121[];
+extern void _ZN6dd61213barEv();
+extern void _ZN6dd61213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6121__7ee36121[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6121[0]),
+ (VTBL_ENTRY)&_ZN6dd61213barEv,
+ (VTBL_ENTRY)&_ZN6dd61213fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1216dd6121__7ee36121[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc1216dd6121__7ee36121[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd61213fooEv,_ZTv0_n12_N6dd61213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd61213fooEv,_ZThn12_N6dd61213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd6121__7ee36121[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61213fooEv,_ZTv0_n12_N6dd61213fooEv),
+};
+static VTT_ENTRY vtt_ee36121[] = {
+ {&(_ZTV7ee36121[4]), 4,16},
+ {&(_ZTV7ee36121[10]), 10,16},
+ {&(_ZTV7ee36121[15]), 15,16},
+ {&(_tg__ZTV6dd6121__7ee36121[3]), 3,5},
+ {&(_tg__ZTV5cc1216dd6121__7ee36121[3]), 3,3},
+ {&(_tg__ZTV4bb21__5cc1216dd6121__7ee36121[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd6121__7ee36121[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee36121[];
+extern VTBL_ENTRY _ZTV7ee36121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36121[];
+static VTBL_ENTRY alt_thunk_names503[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61213fooEv,_ZTv0_n12_N6dd61213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61213fooEv,_ZThn12_N6dd61213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee361213fooEv,_ZTv0_n12_N7ee361213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee361213fooEv,_ZThn20_N7ee361213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee361213fooEv,_ZTv0_n20_N7ee361213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee361213fooEv,_ZThn8_N7ee361213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36121 = { "ee36121", // class name
+ bases_ee36121, 4,
+ &(vtc_ee36121[0]), // expected_vtbl_contents
+ &(vtt_ee36121[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee36121),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36121),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36121),7, //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 ee46121 : dd6121 {
+ int e;
+ virtual void bar(); // _ZN7ee461213barEv
+ ~ee46121(); // tgen
+ ee46121(); // tgen
+};
+//SIG(1 ee46121) C1{ BC2{ BC3{ VBC4{ BC5{ v2 Fi} v2 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46121 ::bar(){vfunc_called(this, "_ZN7ee461213barEv");}
+ee46121 ::~ee46121(){ note_dtor("ee46121", this);} // tgen
+ee46121 ::ee46121(){ note_ctor("ee46121", this);} // tgen
+
+static void Test_ee46121()
+{
+ extern Class_Descriptor cd_ee46121;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee46121, buf);
+ ee46121 *dp, &lv = *(dp=new (buf) ee46121());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee46121)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46121)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(24,16), "ee46121");
+ check_base_class_offset(lv, (bb21*)(cc121*)(dd6121*), ABISELECT(24,16), "ee46121");
+ check_base_class_offset(lv, (cc121*)(dd6121*), 0, "ee46121");
+ check_base_class_offset(lv, (dd6121*), 0, "ee46121");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee46121.e");
+ test_class_info(&lv, &cd_ee46121);
+ dp->~ee46121();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46121(Test_ee46121, "ee46121", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee46121C1Ev();
+extern void _ZN7ee46121D1Ev();
+Name_Map name_map_ee46121[] = {
+ NSPAIR(_ZN7ee46121C1Ev),
+ NSPAIR(_ZN7ee46121D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc121;
+extern VTBL_ENTRY _ZTI5cc121[];
+extern VTBL_ENTRY _ZTV5cc121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc121[];
+extern Class_Descriptor cd_dd6121;
+extern VTBL_ENTRY _ZTI6dd6121[];
+extern VTBL_ENTRY _ZTV6dd6121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6121[];
+static Base_Class bases_ee46121[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc121, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6121, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee46121[];
+extern void _ZN7ee461213barEv();
+extern void _ZN6dd61213fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd61213fooEv,_ZTv0_n12_N6dd61213fooEv)();
+extern void ABISELECT(_ZThn24_N6dd61213fooEv,_ZThn16_N6dd61213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee46121[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46121[0]),
+ (VTBL_ENTRY)&_ZN7ee461213barEv,
+ (VTBL_ENTRY)&_ZN6dd61213fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee46121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61213fooEv,_ZTv0_n12_N6dd61213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee46121[];
+extern void _ZN6dd61213barEv();
+extern void _ZN6dd61213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6121__7ee46121[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6121[0]),
+ (VTBL_ENTRY)&_ZN6dd61213barEv,
+ (VTBL_ENTRY)&_ZN6dd61213fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1216dd6121__7ee46121[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc1216dd6121__7ee46121[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd61213fooEv,_ZTv0_n12_N6dd61213fooEv)();
+extern void ABISELECT(_ZThn24_N6dd61213fooEv,_ZThn16_N6dd61213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd6121__7ee46121[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61213fooEv,_ZTv0_n12_N6dd61213fooEv),
+};
+static VTT_ENTRY vtt_ee46121[] = {
+ {&(_ZTV7ee46121[3]), 3,9},
+ {&(_tg__ZTV6dd6121__7ee46121[3]), 3,5},
+ {&(_tg__ZTV5cc1216dd6121__7ee46121[3]), 3,3},
+ {&(_tg__ZTV4bb21__5cc1216dd6121__7ee46121[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd6121__7ee46121[3]), 3,4},
+ {&(_ZTV7ee46121[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee46121[];
+extern VTBL_ENTRY _ZTV7ee46121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee46121[];
+static VTBL_ENTRY alt_thunk_names504[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61213fooEv,_ZTv0_n12_N6dd61213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61213fooEv,_ZThn16_N6dd61213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61213fooEv,_ZThn16_N6dd61213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee46121 = { "ee46121", // class name
+ bases_ee46121, 4,
+ &(vtc_ee46121[0]), // expected_vtbl_contents
+ &(vtt_ee46121[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee46121),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46121),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee46121),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names504,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee56121 : virtual dd6121 {
+ int e;
+ virtual void bar(); // _ZN7ee561213barEv
+ ~ee56121(); // tgen
+ ee56121(); // tgen
+};
+//SIG(1 ee56121) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 Fi} v2 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56121 ::bar(){vfunc_called(this, "_ZN7ee561213barEv");}
+ee56121 ::~ee56121(){ note_dtor("ee56121", this);} // tgen
+ee56121 ::ee56121(){ note_ctor("ee56121", this);} // tgen
+
+static void Test_ee56121()
+{
+ extern Class_Descriptor cd_ee56121;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee56121, buf);
+ ee56121 *dp, &lv = *(dp=new (buf) ee56121());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee56121)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56121)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee56121");
+ check_base_class_offset(lv, (bb21*)(cc121*)(dd6121*), ABISELECT(32,20), "ee56121");
+ check_base_class_offset(lv, (cc121*)(dd6121*), ABISELECT(16,8), "ee56121");
+ check_base_class_offset(lv, (dd6121*), ABISELECT(16,8), "ee56121");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56121.e");
+ test_class_info(&lv, &cd_ee56121);
+ dp->~ee56121();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56121(Test_ee56121, "ee56121", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee56121C1Ev();
+extern void _ZN7ee56121D1Ev();
+Name_Map name_map_ee56121[] = {
+ NSPAIR(_ZN7ee56121C1Ev),
+ NSPAIR(_ZN7ee56121D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc121;
+extern VTBL_ENTRY _ZTI5cc121[];
+extern VTBL_ENTRY _ZTV5cc121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc121[];
+extern Class_Descriptor cd_dd6121;
+extern VTBL_ENTRY _ZTI6dd6121[];
+extern VTBL_ENTRY _ZTV6dd6121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6121[];
+static Base_Class bases_ee56121[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc121, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6121, 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 _ZTI7ee56121[];
+extern void _ZN7ee561213barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee561213barEv,_ZTv0_n16_N7ee561213barEv)();
+extern void ABISELECT(_ZThn16_N7ee561213barEv,_ZThn8_N7ee561213barEv)() __attribute__((weak));
+extern void _ZN6dd61213fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd61213fooEv,_ZTv0_n12_N6dd61213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd61213fooEv,_ZThn12_N6dd61213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56121[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56121[0]),
+ (VTBL_ENTRY)&_ZN7ee561213barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee561213barEv,_ZTv0_n16_N7ee561213barEv),
+ (VTBL_ENTRY)&_ZN6dd61213fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee56121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61213fooEv,_ZTv0_n12_N6dd61213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee56121[];
+extern void _ZN6dd61213barEv();
+extern void _ZN6dd61213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6121__7ee56121[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6121[0]),
+ (VTBL_ENTRY)&_ZN6dd61213barEv,
+ (VTBL_ENTRY)&_ZN6dd61213fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1216dd6121__7ee56121[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc1216dd6121__7ee56121[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd61213fooEv,_ZTv0_n12_N6dd61213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd61213fooEv,_ZThn12_N6dd61213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd6121__7ee56121[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61213fooEv,_ZTv0_n12_N6dd61213fooEv),
+};
+static VTT_ENTRY vtt_ee56121[] = {
+ {&(_ZTV7ee56121[4]), 4,16},
+ {&(_ZTV7ee56121[10]), 10,16},
+ {&(_ZTV7ee56121[15]), 15,16},
+ {&(_tg__ZTV6dd6121__7ee56121[3]), 3,5},
+ {&(_tg__ZTV5cc1216dd6121__7ee56121[3]), 3,3},
+ {&(_tg__ZTV4bb21__5cc1216dd6121__7ee56121[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd6121__7ee56121[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee56121[];
+extern VTBL_ENTRY _ZTV7ee56121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56121[];
+static VTBL_ENTRY alt_thunk_names505[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61213fooEv,_ZTv0_n12_N6dd61213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61213fooEv,_ZThn12_N6dd61213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61213fooEv,_ZThn12_N6dd61213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee561213barEv,_ZTv0_n16_N7ee561213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee561213barEv,_ZThn8_N7ee561213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56121 = { "ee56121", // class name
+ bases_ee56121, 4,
+ &(vtc_ee56121[0]), // expected_vtbl_contents
+ &(vtt_ee56121[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee56121),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56121),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56121),7, //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 ee66121 : dd6121 {
+ int e;
+ virtual void foo(); // _ZN7ee661213fooEv
+ virtual void bar(); // _ZN7ee661213barEv
+ ~ee66121(); // tgen
+ ee66121(); // tgen
+};
+//SIG(1 ee66121) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} v1 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66121 ::foo(){vfunc_called(this, "_ZN7ee661213fooEv");}
+void ee66121 ::bar(){vfunc_called(this, "_ZN7ee661213barEv");}
+ee66121 ::~ee66121(){ note_dtor("ee66121", this);} // tgen
+ee66121 ::ee66121(){ note_ctor("ee66121", this);} // tgen
+
+static void Test_ee66121()
+{
+ extern Class_Descriptor cd_ee66121;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee66121, buf);
+ ee66121 *dp, &lv = *(dp=new (buf) ee66121());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee66121)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66121)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(24,16), "ee66121");
+ check_base_class_offset(lv, (bb21*)(cc121*)(dd6121*), ABISELECT(24,16), "ee66121");
+ check_base_class_offset(lv, (cc121*)(dd6121*), 0, "ee66121");
+ check_base_class_offset(lv, (dd6121*), 0, "ee66121");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee66121.e");
+ test_class_info(&lv, &cd_ee66121);
+ dp->~ee66121();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66121(Test_ee66121, "ee66121", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee66121C1Ev();
+extern void _ZN7ee66121D1Ev();
+Name_Map name_map_ee66121[] = {
+ NSPAIR(_ZN7ee66121C1Ev),
+ NSPAIR(_ZN7ee66121D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc121;
+extern VTBL_ENTRY _ZTI5cc121[];
+extern VTBL_ENTRY _ZTV5cc121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc121[];
+extern Class_Descriptor cd_dd6121;
+extern VTBL_ENTRY _ZTI6dd6121[];
+extern VTBL_ENTRY _ZTV6dd6121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6121[];
+static Base_Class bases_ee66121[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc121, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6121, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee66121[];
+extern void _ZN7ee661213barEv();
+extern void _ZN7ee661213fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee661213fooEv,_ZTv0_n12_N7ee661213fooEv)();
+extern void ABISELECT(_ZThn24_N7ee661213fooEv,_ZThn16_N7ee661213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee66121[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66121[0]),
+ (VTBL_ENTRY)&_ZN7ee661213barEv,
+ (VTBL_ENTRY)&_ZN7ee661213fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee66121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee661213fooEv,_ZTv0_n12_N7ee661213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee66121[];
+extern void _ZN6dd61213barEv();
+extern void _ZN6dd61213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6121__7ee66121[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6121[0]),
+ (VTBL_ENTRY)&_ZN6dd61213barEv,
+ (VTBL_ENTRY)&_ZN6dd61213fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1216dd6121__7ee66121[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc1216dd6121__7ee66121[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd61213fooEv,_ZTv0_n12_N6dd61213fooEv)();
+extern void ABISELECT(_ZThn24_N6dd61213fooEv,_ZThn16_N6dd61213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd6121__7ee66121[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61213fooEv,_ZTv0_n12_N6dd61213fooEv),
+};
+static VTT_ENTRY vtt_ee66121[] = {
+ {&(_ZTV7ee66121[3]), 3,9},
+ {&(_tg__ZTV6dd6121__7ee66121[3]), 3,5},
+ {&(_tg__ZTV5cc1216dd6121__7ee66121[3]), 3,3},
+ {&(_tg__ZTV4bb21__5cc1216dd6121__7ee66121[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd6121__7ee66121[3]), 3,4},
+ {&(_ZTV7ee66121[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee66121[];
+extern VTBL_ENTRY _ZTV7ee66121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee66121[];
+static VTBL_ENTRY alt_thunk_names506[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61213fooEv,_ZTv0_n12_N6dd61213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61213fooEv,_ZThn16_N6dd61213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee661213fooEv,_ZTv0_n12_N7ee661213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee661213fooEv,_ZThn16_N7ee661213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee66121 = { "ee66121", // class name
+ bases_ee66121, 4,
+ &(vtc_ee66121[0]), // expected_vtbl_contents
+ &(vtt_ee66121[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee66121),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66121),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee66121),6, //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 ee76121 : virtual dd6121 {
+ int e;
+ virtual void foo(); // _ZN7ee761213fooEv
+ virtual void bar(); // _ZN7ee761213barEv
+ ~ee76121(); // tgen
+ ee76121(); // tgen
+};
+//SIG(1 ee76121) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} v1 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76121 ::foo(){vfunc_called(this, "_ZN7ee761213fooEv");}
+void ee76121 ::bar(){vfunc_called(this, "_ZN7ee761213barEv");}
+ee76121 ::~ee76121(){ note_dtor("ee76121", this);} // tgen
+ee76121 ::ee76121(){ note_ctor("ee76121", this);} // tgen
+
+static void Test_ee76121()
+{
+ extern Class_Descriptor cd_ee76121;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee76121, buf);
+ ee76121 *dp, &lv = *(dp=new (buf) ee76121());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee76121)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76121)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee76121");
+ check_base_class_offset(lv, (bb21*)(cc121*)(dd6121*), ABISELECT(32,20), "ee76121");
+ check_base_class_offset(lv, (cc121*)(dd6121*), ABISELECT(16,8), "ee76121");
+ check_base_class_offset(lv, (dd6121*), ABISELECT(16,8), "ee76121");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76121.e");
+ test_class_info(&lv, &cd_ee76121);
+ dp->~ee76121();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76121(Test_ee76121, "ee76121", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee76121C1Ev();
+extern void _ZN7ee76121D1Ev();
+Name_Map name_map_ee76121[] = {
+ NSPAIR(_ZN7ee76121C1Ev),
+ NSPAIR(_ZN7ee76121D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc121;
+extern VTBL_ENTRY _ZTI5cc121[];
+extern VTBL_ENTRY _ZTV5cc121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc121[];
+extern Class_Descriptor cd_dd6121;
+extern VTBL_ENTRY _ZTI6dd6121[];
+extern VTBL_ENTRY _ZTV6dd6121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6121[];
+static Base_Class bases_ee76121[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc121, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6121, ABISELECT(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 _ZTI7ee76121[];
+extern void _ZN7ee761213fooEv();
+extern void _ZN7ee761213barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee761213barEv,_ZTv0_n16_N7ee761213barEv)();
+extern void ABISELECT(_ZThn16_N7ee761213barEv,_ZThn8_N7ee761213barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee761213fooEv,_ZTv0_n20_N7ee761213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee761213fooEv,_ZThn8_N7ee761213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee761213fooEv,_ZTv0_n12_N7ee761213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee761213fooEv,_ZThn20_N7ee761213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76121[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76121[0]),
+ (VTBL_ENTRY)&_ZN7ee761213fooEv,
+ (VTBL_ENTRY)&_ZN7ee761213barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee761213barEv,_ZTv0_n16_N7ee761213barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee761213fooEv,_ZTv0_n20_N7ee761213fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee76121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee761213fooEv,_ZTv0_n12_N7ee761213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee76121[];
+extern void _ZN6dd61213barEv();
+extern void _ZN6dd61213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6121__7ee76121[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6121[0]),
+ (VTBL_ENTRY)&_ZN6dd61213barEv,
+ (VTBL_ENTRY)&_ZN6dd61213fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1216dd6121__7ee76121[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc1216dd6121__7ee76121[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd61213fooEv,_ZTv0_n12_N6dd61213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd61213fooEv,_ZThn12_N6dd61213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd6121__7ee76121[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61213fooEv,_ZTv0_n12_N6dd61213fooEv),
+};
+static VTT_ENTRY vtt_ee76121[] = {
+ {&(_ZTV7ee76121[4]), 4,17},
+ {&(_ZTV7ee76121[11]), 11,17},
+ {&(_ZTV7ee76121[16]), 16,17},
+ {&(_tg__ZTV6dd6121__7ee76121[3]), 3,5},
+ {&(_tg__ZTV5cc1216dd6121__7ee76121[3]), 3,3},
+ {&(_tg__ZTV4bb21__5cc1216dd6121__7ee76121[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd6121__7ee76121[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee76121[];
+extern VTBL_ENTRY _ZTV7ee76121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76121[];
+static VTBL_ENTRY alt_thunk_names507[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61213fooEv,_ZTv0_n12_N6dd61213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61213fooEv,_ZThn12_N6dd61213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee761213fooEv,_ZTv0_n12_N7ee761213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee761213fooEv,_ZThn20_N7ee761213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee761213fooEv,_ZTv0_n20_N7ee761213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee761213fooEv,_ZThn8_N7ee761213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee761213barEv,_ZTv0_n16_N7ee761213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee761213barEv,_ZThn8_N7ee761213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76121 = { "ee76121", // class name
+ bases_ee76121, 4,
+ &(vtc_ee76121[0]), // expected_vtbl_contents
+ &(vtt_ee76121[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee76121),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76121),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76121),7, //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 dd7121 : virtual cc121 {
+ int d;
+ virtual void bar(); // _ZN6dd71213barEv
+ virtual void foo(); // _ZN6dd71213fooEv
+ ~dd7121(); // tgen
+ dd7121(); // tgen
+};
+//SIG(-1 dd7121) C1{ VBC2{ VBC3{ BC4{ v2 Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void dd7121 ::bar(){vfunc_called(this, "_ZN6dd71213barEv");}
+void dd7121 ::foo(){vfunc_called(this, "_ZN6dd71213fooEv");}
+dd7121 ::~dd7121(){ note_dtor("dd7121", this);} // tgen
+dd7121 ::dd7121(){ note_ctor("dd7121", this);} // tgen
+
+static void Test_dd7121()
+{
+ extern Class_Descriptor cd_dd7121;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd7121, buf);
+ dd7121 *dp, &lv = *(dp=new (buf) dd7121());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd7121)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7121)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,16), "dd7121");
+ check_base_class_offset(lv, (bb21*)(cc121*), ABISELECT(32,16), "dd7121");
+ check_base_class_offset(lv, (cc121*), ABISELECT(16,8), "dd7121");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7121.d");
+ test_class_info(&lv, &cd_dd7121);
+ dp->~dd7121();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7121(Test_dd7121, "dd7121", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd7121C1Ev();
+extern void _ZN6dd7121D1Ev();
+Name_Map name_map_dd7121[] = {
+ NSPAIR(_ZN6dd7121C1Ev),
+ NSPAIR(_ZN6dd7121D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc121;
+extern VTBL_ENTRY _ZTI5cc121[];
+extern VTBL_ENTRY _ZTV5cc121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc121[];
+static Base_Class bases_dd7121[] = {
+ // 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_bb21, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc121, 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 _ZTI6dd7121[];
+extern void _ZN6dd71213barEv();
+extern void _ZN6dd71213fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd71213fooEv,_ZTv0_n12_N6dd71213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71213fooEv,_ZThn16_N6dd71213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7121[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7121[0]),
+ (VTBL_ENTRY)&_ZN6dd71213barEv,
+ (VTBL_ENTRY)&_ZN6dd71213fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7121[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71213fooEv,_ZTv0_n12_N6dd71213fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd7121[];
+static VTBL_ENTRY _tg__ZTV5cc121__6dd7121[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc121__6dd7121[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_dd7121[] = {
+ {&(_ZTV6dd7121[4]), 4,13},
+ {&(_ZTV6dd7121[9]), 9,13},
+ {&(_ZTV6dd7121[12]), 12,13},
+ {&(_tg__ZTV5cc121__6dd7121[3]), 3,3},
+ {&(_tg__ZTV4bb21__5cc121__6dd7121[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd7121[];
+extern VTBL_ENTRY _ZTV6dd7121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7121[];
+static VTBL_ENTRY alt_thunk_names508[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71213fooEv,_ZTv0_n12_N6dd71213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71213fooEv,_ZThn16_N6dd71213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7121 = { "dd7121", // class name
+ bases_dd7121, 3,
+ &(vtc_dd7121[0]), // expected_vtbl_contents
+ &(vtt_dd7121[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd7121),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7121),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7121),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names508,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07121 : dd7121 {
+ int e;
+ ~ee07121(); // tgen
+ ee07121(); // tgen
+};
+//SIG(1 ee07121) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 Fi} v2 Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee07121 ::~ee07121(){ note_dtor("ee07121", this);} // tgen
+ee07121 ::ee07121(){ note_ctor("ee07121", this);} // tgen
+
+static void Test_ee07121()
+{
+ extern Class_Descriptor cd_ee07121;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee07121, buf);
+ ee07121 *dp, &lv = *(dp=new (buf) ee07121());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee07121)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07121)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee07121");
+ check_base_class_offset(lv, (bb21*)(cc121*), ABISELECT(32,20), "ee07121");
+ check_base_class_offset(lv, (cc121*)(dd7121*), ABISELECT(16,12), "ee07121");
+ check_base_class_offset(lv, (dd7121*), 0, "ee07121");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07121.e");
+ test_class_info(&lv, &cd_ee07121);
+ dp->~ee07121();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07121(Test_ee07121, "ee07121", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee07121C1Ev();
+extern void _ZN7ee07121D1Ev();
+Name_Map name_map_ee07121[] = {
+ NSPAIR(_ZN7ee07121C1Ev),
+ NSPAIR(_ZN7ee07121D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc121;
+extern VTBL_ENTRY _ZTI5cc121[];
+extern VTBL_ENTRY _ZTV5cc121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc121[];
+extern Class_Descriptor cd_dd7121;
+extern VTBL_ENTRY _ZTI6dd7121[];
+extern VTBL_ENTRY _ZTV6dd7121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7121[];
+static Base_Class bases_ee07121[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc121, 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_dd7121, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07121[];
+extern void _ZN6dd71213barEv();
+extern void _ZN6dd71213fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd71213fooEv,_ZTv0_n12_N6dd71213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71213fooEv,_ZThn20_N6dd71213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07121[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07121[0]),
+ (VTBL_ENTRY)&_ZN6dd71213barEv,
+ (VTBL_ENTRY)&_ZN6dd71213fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07121[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee07121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71213fooEv,_ZTv0_n12_N6dd71213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee07121[];
+extern void _ZN6dd71213barEv();
+extern void _ZN6dd71213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7121__7ee07121[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7121[0]),
+ (VTBL_ENTRY)&_ZN6dd71213barEv,
+ (VTBL_ENTRY)&_ZN6dd71213fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc121__6dd7121__7ee07121[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7121[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd71213fooEv,_ZTv0_n12_N6dd71213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71213fooEv,_ZThn20_N6dd71213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd7121__7ee07121[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71213fooEv,_ZTv0_n12_N6dd71213fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc121__7ee07121[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc121__7ee07121[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee07121[] = {
+ {&(_ZTV7ee07121[4]), 4,13},
+ {&(_tg__ZTV6dd7121__7ee07121[4]), 4,6},
+ {&(_tg__ZTV5cc121__6dd7121__7ee07121[3]), 3,3},
+ {&(_tg__ZTV4bb21__6dd7121__7ee07121[3]), 3,4},
+ {&(_ZTV7ee07121[9]), 9,13},
+ {&(_ZTV7ee07121[12]), 12,13},
+ {&(_tg__ZTV5cc121__7ee07121[3]), 3,3},
+ {&(_tg__ZTV4bb21__5cc121__7ee07121[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee07121[];
+extern VTBL_ENTRY _ZTV7ee07121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07121[];
+static VTBL_ENTRY alt_thunk_names509[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71213fooEv,_ZTv0_n12_N6dd71213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71213fooEv,_ZThn20_N6dd71213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71213fooEv,_ZThn20_N6dd71213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07121 = { "ee07121", // class name
+ bases_ee07121, 4,
+ &(vtc_ee07121[0]), // expected_vtbl_contents
+ &(vtt_ee07121[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee07121),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07121),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07121),8, //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 ee17121 : virtual dd7121 {
+ int e;
+ ~ee17121(); // tgen
+ ee17121(); // tgen
+};
+//SIG(1 ee17121) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 Fi} v2 Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee17121 ::~ee17121(){ note_dtor("ee17121", this);} // tgen
+ee17121 ::ee17121(){ note_ctor("ee17121", this);} // tgen
+
+static void Test_ee17121()
+{
+ extern Class_Descriptor cd_ee17121;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee17121, buf);
+ ee17121 *dp, &lv = *(dp=new (buf) ee17121());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee17121)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17121)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(48,24), "ee17121");
+ check_base_class_offset(lv, (bb21*)(cc121*), ABISELECT(48,24), "ee17121");
+ check_base_class_offset(lv, (cc121*)(dd7121*), ABISELECT(32,16), "ee17121");
+ check_base_class_offset(lv, (dd7121*), ABISELECT(16,8), "ee17121");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17121.e");
+ test_class_info(&lv, &cd_ee17121);
+ dp->~ee17121();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17121(Test_ee17121, "ee17121", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee17121C1Ev();
+extern void _ZN7ee17121D1Ev();
+Name_Map name_map_ee17121[] = {
+ NSPAIR(_ZN7ee17121C1Ev),
+ NSPAIR(_ZN7ee17121D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc121;
+extern VTBL_ENTRY _ZTI5cc121[];
+extern VTBL_ENTRY _ZTV5cc121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc121[];
+extern Class_Descriptor cd_dd7121;
+extern VTBL_ENTRY _ZTI6dd7121[];
+extern VTBL_ENTRY _ZTV6dd7121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7121[];
+static Base_Class bases_ee17121[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb21, ABISELECT(48,24), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc121, 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_dd7121, 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 _ZTI7ee17121[];
+extern void _ZN6dd71213barEv();
+extern void _ZN6dd71213fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd71213fooEv,_ZTv0_n12_N6dd71213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71213fooEv,_ZThn16_N6dd71213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17121[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17121[0]),
+ 0,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17121[0]),
+ (VTBL_ENTRY)&_ZN6dd71213barEv,
+ (VTBL_ENTRY)&_ZN6dd71213fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17121[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee17121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71213fooEv,_ZTv0_n12_N6dd71213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee17121[];
+extern void _ZN6dd71213barEv();
+extern void _ZN6dd71213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7121__7ee17121[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7121[0]),
+ (VTBL_ENTRY)&_ZN6dd71213barEv,
+ (VTBL_ENTRY)&_ZN6dd71213fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc121__6dd7121__7ee17121[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7121[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd71213fooEv,_ZTv0_n12_N6dd71213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71213fooEv,_ZThn16_N6dd71213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd7121__7ee17121[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71213fooEv,_ZTv0_n12_N6dd71213fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc121__7ee17121[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc121__7ee17121[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee17121[] = {
+ {&(_ZTV7ee17121[5]), 5,20},
+ {&(_ZTV7ee17121[11]), 11,20},
+ {&(_ZTV7ee17121[16]), 16,20},
+ {&(_ZTV7ee17121[19]), 19,20},
+ {&(_tg__ZTV6dd7121__7ee17121[4]), 4,6},
+ {&(_tg__ZTV5cc121__6dd7121__7ee17121[3]), 3,3},
+ {&(_tg__ZTV4bb21__6dd7121__7ee17121[3]), 3,4},
+ {&(_tg__ZTV5cc121__7ee17121[3]), 3,3},
+ {&(_tg__ZTV4bb21__5cc121__7ee17121[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee17121[];
+extern VTBL_ENTRY _ZTV7ee17121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17121[];
+static VTBL_ENTRY alt_thunk_names510[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71213fooEv,_ZTv0_n12_N6dd71213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71213fooEv,_ZThn16_N6dd71213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71213fooEv,_ZThn16_N6dd71213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17121 = { "ee17121", // class name
+ bases_ee17121, 4,
+ &(vtc_ee17121[0]), // expected_vtbl_contents
+ &(vtt_ee17121[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee17121),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17121),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17121),9, //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 ee27121 : dd7121 {
+ int e;
+ virtual void foo(); // _ZN7ee271213fooEv
+ ~ee27121(); // tgen
+ ee27121(); // tgen
+};
+//SIG(1 ee27121) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} v1 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27121 ::foo(){vfunc_called(this, "_ZN7ee271213fooEv");}
+ee27121 ::~ee27121(){ note_dtor("ee27121", this);} // tgen
+ee27121 ::ee27121(){ note_ctor("ee27121", this);} // tgen
+
+static void Test_ee27121()
+{
+ extern Class_Descriptor cd_ee27121;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee27121, buf);
+ ee27121 *dp, &lv = *(dp=new (buf) ee27121());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee27121)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27121)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee27121");
+ check_base_class_offset(lv, (bb21*)(cc121*), ABISELECT(32,20), "ee27121");
+ check_base_class_offset(lv, (cc121*)(dd7121*), ABISELECT(16,12), "ee27121");
+ check_base_class_offset(lv, (dd7121*), 0, "ee27121");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27121.e");
+ test_class_info(&lv, &cd_ee27121);
+ dp->~ee27121();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27121(Test_ee27121, "ee27121", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee27121C1Ev();
+extern void _ZN7ee27121D1Ev();
+Name_Map name_map_ee27121[] = {
+ NSPAIR(_ZN7ee27121C1Ev),
+ NSPAIR(_ZN7ee27121D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc121;
+extern VTBL_ENTRY _ZTI5cc121[];
+extern VTBL_ENTRY _ZTV5cc121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc121[];
+extern Class_Descriptor cd_dd7121;
+extern VTBL_ENTRY _ZTI6dd7121[];
+extern VTBL_ENTRY _ZTV6dd7121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7121[];
+static Base_Class bases_ee27121[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc121, 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_dd7121, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27121[];
+extern void _ZN6dd71213barEv();
+extern void _ZN7ee271213fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee271213fooEv,_ZTv0_n12_N7ee271213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee271213fooEv,_ZThn20_N7ee271213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27121[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27121[0]),
+ (VTBL_ENTRY)&_ZN6dd71213barEv,
+ (VTBL_ENTRY)&_ZN7ee271213fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27121[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee27121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee271213fooEv,_ZTv0_n12_N7ee271213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee27121[];
+extern void _ZN6dd71213barEv();
+extern void _ZN6dd71213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7121__7ee27121[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7121[0]),
+ (VTBL_ENTRY)&_ZN6dd71213barEv,
+ (VTBL_ENTRY)&_ZN6dd71213fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc121__6dd7121__7ee27121[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7121[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd71213fooEv,_ZTv0_n12_N6dd71213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71213fooEv,_ZThn20_N6dd71213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd7121__7ee27121[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71213fooEv,_ZTv0_n12_N6dd71213fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc121__7ee27121[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc121__7ee27121[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee27121[] = {
+ {&(_ZTV7ee27121[4]), 4,13},
+ {&(_tg__ZTV6dd7121__7ee27121[4]), 4,6},
+ {&(_tg__ZTV5cc121__6dd7121__7ee27121[3]), 3,3},
+ {&(_tg__ZTV4bb21__6dd7121__7ee27121[3]), 3,4},
+ {&(_ZTV7ee27121[9]), 9,13},
+ {&(_ZTV7ee27121[12]), 12,13},
+ {&(_tg__ZTV5cc121__7ee27121[3]), 3,3},
+ {&(_tg__ZTV4bb21__5cc121__7ee27121[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee27121[];
+extern VTBL_ENTRY _ZTV7ee27121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27121[];
+static VTBL_ENTRY alt_thunk_names511[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71213fooEv,_ZTv0_n12_N6dd71213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71213fooEv,_ZThn20_N6dd71213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee271213fooEv,_ZTv0_n12_N7ee271213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee271213fooEv,_ZThn20_N7ee271213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27121 = { "ee27121", // class name
+ bases_ee27121, 4,
+ &(vtc_ee27121[0]), // expected_vtbl_contents
+ &(vtt_ee27121[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee27121),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27121),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27121),8, //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 ee37121 : virtual dd7121 {
+ int e;
+ virtual void foo(); // _ZN7ee371213fooEv
+ ~ee37121(); // tgen
+ ee37121(); // tgen
+};
+//SIG(1 ee37121) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} v1 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37121 ::foo(){vfunc_called(this, "_ZN7ee371213fooEv");}
+ee37121 ::~ee37121(){ note_dtor("ee37121", this);} // tgen
+ee37121 ::ee37121(){ note_ctor("ee37121", this);} // tgen
+
+static void Test_ee37121()
+{
+ extern Class_Descriptor cd_ee37121;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee37121, buf);
+ ee37121 *dp, &lv = *(dp=new (buf) ee37121());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee37121)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37121)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(48,24), "ee37121");
+ check_base_class_offset(lv, (bb21*)(cc121*), ABISELECT(48,24), "ee37121");
+ check_base_class_offset(lv, (cc121*)(dd7121*), ABISELECT(32,16), "ee37121");
+ check_base_class_offset(lv, (dd7121*), ABISELECT(16,8), "ee37121");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37121.e");
+ test_class_info(&lv, &cd_ee37121);
+ dp->~ee37121();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37121(Test_ee37121, "ee37121", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee37121C1Ev();
+extern void _ZN7ee37121D1Ev();
+Name_Map name_map_ee37121[] = {
+ NSPAIR(_ZN7ee37121C1Ev),
+ NSPAIR(_ZN7ee37121D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc121;
+extern VTBL_ENTRY _ZTI5cc121[];
+extern VTBL_ENTRY _ZTV5cc121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc121[];
+extern Class_Descriptor cd_dd7121;
+extern VTBL_ENTRY _ZTI6dd7121[];
+extern VTBL_ENTRY _ZTV6dd7121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7121[];
+static Base_Class bases_ee37121[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb21, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc121, 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_dd7121, 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 _ZTI7ee37121[];
+extern void _ZN7ee371213fooEv();
+extern void _ZN6dd71213barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee371213fooEv,_ZTv0_n24_N7ee371213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee371213fooEv,_ZThn8_N7ee371213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee371213fooEv,_ZTv0_n12_N7ee371213fooEv)();
+extern void ABISELECT(_ZThn48_N7ee371213fooEv,_ZThn24_N7ee371213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37121[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37121[0]),
+ (VTBL_ENTRY)&_ZN7ee371213fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37121[0]),
+ (VTBL_ENTRY)&_ZN6dd71213barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee371213fooEv,_ZTv0_n24_N7ee371213fooEv),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37121[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee37121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee371213fooEv,_ZTv0_n12_N7ee371213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee37121[];
+extern void _ZN6dd71213barEv();
+extern void _ZN6dd71213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7121__7ee37121[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7121[0]),
+ (VTBL_ENTRY)&_ZN6dd71213barEv,
+ (VTBL_ENTRY)&_ZN6dd71213fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc121__6dd7121__7ee37121[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7121[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd71213fooEv,_ZTv0_n12_N6dd71213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71213fooEv,_ZThn16_N6dd71213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd7121__7ee37121[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71213fooEv,_ZTv0_n12_N6dd71213fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc121__7ee37121[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc121__7ee37121[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee37121[] = {
+ {&(_ZTV7ee37121[5]), 5,21},
+ {&(_ZTV7ee37121[12]), 12,21},
+ {&(_ZTV7ee37121[17]), 17,21},
+ {&(_ZTV7ee37121[20]), 20,21},
+ {&(_tg__ZTV6dd7121__7ee37121[4]), 4,6},
+ {&(_tg__ZTV5cc121__6dd7121__7ee37121[3]), 3,3},
+ {&(_tg__ZTV4bb21__6dd7121__7ee37121[3]), 3,4},
+ {&(_tg__ZTV5cc121__7ee37121[3]), 3,3},
+ {&(_tg__ZTV4bb21__5cc121__7ee37121[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee37121[];
+extern VTBL_ENTRY _ZTV7ee37121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37121[];
+static VTBL_ENTRY alt_thunk_names512[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71213fooEv,_ZTv0_n12_N6dd71213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71213fooEv,_ZThn16_N6dd71213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee371213fooEv,_ZTv0_n12_N7ee371213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee371213fooEv,_ZThn24_N7ee371213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee371213fooEv,_ZTv0_n24_N7ee371213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee371213fooEv,_ZThn8_N7ee371213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37121 = { "ee37121", // class name
+ bases_ee37121, 4,
+ &(vtc_ee37121[0]), // expected_vtbl_contents
+ &(vtt_ee37121[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee37121),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37121),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37121),9, //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 ee47121 : dd7121 {
+ int e;
+ virtual void bar(); // _ZN7ee471213barEv
+ ~ee47121(); // tgen
+ ee47121(); // tgen
+};
+//SIG(1 ee47121) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 Fi} v2 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47121 ::bar(){vfunc_called(this, "_ZN7ee471213barEv");}
+ee47121 ::~ee47121(){ note_dtor("ee47121", this);} // tgen
+ee47121 ::ee47121(){ note_ctor("ee47121", this);} // tgen
+
+static void Test_ee47121()
+{
+ extern Class_Descriptor cd_ee47121;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee47121, buf);
+ ee47121 *dp, &lv = *(dp=new (buf) ee47121());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee47121)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47121)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee47121");
+ check_base_class_offset(lv, (bb21*)(cc121*), ABISELECT(32,20), "ee47121");
+ check_base_class_offset(lv, (cc121*)(dd7121*), ABISELECT(16,12), "ee47121");
+ check_base_class_offset(lv, (dd7121*), 0, "ee47121");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47121.e");
+ test_class_info(&lv, &cd_ee47121);
+ dp->~ee47121();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47121(Test_ee47121, "ee47121", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee47121C1Ev();
+extern void _ZN7ee47121D1Ev();
+Name_Map name_map_ee47121[] = {
+ NSPAIR(_ZN7ee47121C1Ev),
+ NSPAIR(_ZN7ee47121D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc121;
+extern VTBL_ENTRY _ZTI5cc121[];
+extern VTBL_ENTRY _ZTV5cc121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc121[];
+extern Class_Descriptor cd_dd7121;
+extern VTBL_ENTRY _ZTI6dd7121[];
+extern VTBL_ENTRY _ZTV6dd7121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7121[];
+static Base_Class bases_ee47121[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc121, 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_dd7121, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47121[];
+extern void _ZN7ee471213barEv();
+extern void _ZN6dd71213fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd71213fooEv,_ZTv0_n12_N6dd71213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71213fooEv,_ZThn20_N6dd71213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47121[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47121[0]),
+ (VTBL_ENTRY)&_ZN7ee471213barEv,
+ (VTBL_ENTRY)&_ZN6dd71213fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47121[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee47121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71213fooEv,_ZTv0_n12_N6dd71213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee47121[];
+extern void _ZN6dd71213barEv();
+extern void _ZN6dd71213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7121__7ee47121[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7121[0]),
+ (VTBL_ENTRY)&_ZN6dd71213barEv,
+ (VTBL_ENTRY)&_ZN6dd71213fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc121__6dd7121__7ee47121[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7121[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd71213fooEv,_ZTv0_n12_N6dd71213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71213fooEv,_ZThn20_N6dd71213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd7121__7ee47121[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71213fooEv,_ZTv0_n12_N6dd71213fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc121__7ee47121[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc121__7ee47121[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee47121[] = {
+ {&(_ZTV7ee47121[4]), 4,13},
+ {&(_tg__ZTV6dd7121__7ee47121[4]), 4,6},
+ {&(_tg__ZTV5cc121__6dd7121__7ee47121[3]), 3,3},
+ {&(_tg__ZTV4bb21__6dd7121__7ee47121[3]), 3,4},
+ {&(_ZTV7ee47121[9]), 9,13},
+ {&(_ZTV7ee47121[12]), 12,13},
+ {&(_tg__ZTV5cc121__7ee47121[3]), 3,3},
+ {&(_tg__ZTV4bb21__5cc121__7ee47121[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee47121[];
+extern VTBL_ENTRY _ZTV7ee47121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47121[];
+static VTBL_ENTRY alt_thunk_names513[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71213fooEv,_ZTv0_n12_N6dd71213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71213fooEv,_ZThn20_N6dd71213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71213fooEv,_ZThn20_N6dd71213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47121 = { "ee47121", // class name
+ bases_ee47121, 4,
+ &(vtc_ee47121[0]), // expected_vtbl_contents
+ &(vtt_ee47121[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee47121),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47121),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47121),8, //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 ee57121 : virtual dd7121 {
+ int e;
+ virtual void bar(); // _ZN7ee571213barEv
+ ~ee57121(); // tgen
+ ee57121(); // tgen
+};
+//SIG(1 ee57121) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 Fi} v2 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57121 ::bar(){vfunc_called(this, "_ZN7ee571213barEv");}
+ee57121 ::~ee57121(){ note_dtor("ee57121", this);} // tgen
+ee57121 ::ee57121(){ note_ctor("ee57121", this);} // tgen
+
+static void Test_ee57121()
+{
+ extern Class_Descriptor cd_ee57121;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee57121, buf);
+ ee57121 *dp, &lv = *(dp=new (buf) ee57121());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee57121)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57121)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(48,24), "ee57121");
+ check_base_class_offset(lv, (bb21*)(cc121*), ABISELECT(48,24), "ee57121");
+ check_base_class_offset(lv, (cc121*)(dd7121*), ABISELECT(32,16), "ee57121");
+ check_base_class_offset(lv, (dd7121*), ABISELECT(16,8), "ee57121");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57121.e");
+ test_class_info(&lv, &cd_ee57121);
+ dp->~ee57121();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57121(Test_ee57121, "ee57121", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee57121C1Ev();
+extern void _ZN7ee57121D1Ev();
+Name_Map name_map_ee57121[] = {
+ NSPAIR(_ZN7ee57121C1Ev),
+ NSPAIR(_ZN7ee57121D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc121;
+extern VTBL_ENTRY _ZTI5cc121[];
+extern VTBL_ENTRY _ZTV5cc121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc121[];
+extern Class_Descriptor cd_dd7121;
+extern VTBL_ENTRY _ZTI6dd7121[];
+extern VTBL_ENTRY _ZTV6dd7121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7121[];
+static Base_Class bases_ee57121[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb21, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc121, 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_dd7121, 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 _ZTI7ee57121[];
+extern void _ZN7ee571213barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee571213barEv,_ZTv0_n20_N7ee571213barEv)();
+extern void ABISELECT(_ZThn16_N7ee571213barEv,_ZThn8_N7ee571213barEv)() __attribute__((weak));
+extern void _ZN6dd71213fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd71213fooEv,_ZTv0_n12_N6dd71213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71213fooEv,_ZThn16_N6dd71213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57121[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57121[0]),
+ (VTBL_ENTRY)&_ZN7ee571213barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee571213barEv,_ZTv0_n20_N7ee571213barEv),
+ (VTBL_ENTRY)&_ZN6dd71213fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57121[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee57121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71213fooEv,_ZTv0_n12_N6dd71213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee57121[];
+extern void _ZN6dd71213barEv();
+extern void _ZN6dd71213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7121__7ee57121[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7121[0]),
+ (VTBL_ENTRY)&_ZN6dd71213barEv,
+ (VTBL_ENTRY)&_ZN6dd71213fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc121__6dd7121__7ee57121[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7121[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd71213fooEv,_ZTv0_n12_N6dd71213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71213fooEv,_ZThn16_N6dd71213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd7121__7ee57121[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71213fooEv,_ZTv0_n12_N6dd71213fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc121__7ee57121[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc121__7ee57121[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee57121[] = {
+ {&(_ZTV7ee57121[5]), 5,21},
+ {&(_ZTV7ee57121[12]), 12,21},
+ {&(_ZTV7ee57121[17]), 17,21},
+ {&(_ZTV7ee57121[20]), 20,21},
+ {&(_tg__ZTV6dd7121__7ee57121[4]), 4,6},
+ {&(_tg__ZTV5cc121__6dd7121__7ee57121[3]), 3,3},
+ {&(_tg__ZTV4bb21__6dd7121__7ee57121[3]), 3,4},
+ {&(_tg__ZTV5cc121__7ee57121[3]), 3,3},
+ {&(_tg__ZTV4bb21__5cc121__7ee57121[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee57121[];
+extern VTBL_ENTRY _ZTV7ee57121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57121[];
+static VTBL_ENTRY alt_thunk_names514[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71213fooEv,_ZTv0_n12_N6dd71213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71213fooEv,_ZThn16_N6dd71213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71213fooEv,_ZThn16_N6dd71213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee571213barEv,_ZTv0_n20_N7ee571213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee571213barEv,_ZThn8_N7ee571213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57121 = { "ee57121", // class name
+ bases_ee57121, 4,
+ &(vtc_ee57121[0]), // expected_vtbl_contents
+ &(vtt_ee57121[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee57121),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57121),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57121),9, //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 ee67121 : dd7121 {
+ int e;
+ virtual void foo(); // _ZN7ee671213fooEv
+ virtual void bar(); // _ZN7ee671213barEv
+ ~ee67121(); // tgen
+ ee67121(); // tgen
+};
+//SIG(1 ee67121) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} v1 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67121 ::foo(){vfunc_called(this, "_ZN7ee671213fooEv");}
+void ee67121 ::bar(){vfunc_called(this, "_ZN7ee671213barEv");}
+ee67121 ::~ee67121(){ note_dtor("ee67121", this);} // tgen
+ee67121 ::ee67121(){ note_ctor("ee67121", this);} // tgen
+
+static void Test_ee67121()
+{
+ extern Class_Descriptor cd_ee67121;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee67121, buf);
+ ee67121 *dp, &lv = *(dp=new (buf) ee67121());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee67121)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67121)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee67121");
+ check_base_class_offset(lv, (bb21*)(cc121*), ABISELECT(32,20), "ee67121");
+ check_base_class_offset(lv, (cc121*)(dd7121*), ABISELECT(16,12), "ee67121");
+ check_base_class_offset(lv, (dd7121*), 0, "ee67121");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67121.e");
+ test_class_info(&lv, &cd_ee67121);
+ dp->~ee67121();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67121(Test_ee67121, "ee67121", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee67121C1Ev();
+extern void _ZN7ee67121D1Ev();
+Name_Map name_map_ee67121[] = {
+ NSPAIR(_ZN7ee67121C1Ev),
+ NSPAIR(_ZN7ee67121D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc121;
+extern VTBL_ENTRY _ZTI5cc121[];
+extern VTBL_ENTRY _ZTV5cc121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc121[];
+extern Class_Descriptor cd_dd7121;
+extern VTBL_ENTRY _ZTI6dd7121[];
+extern VTBL_ENTRY _ZTV6dd7121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7121[];
+static Base_Class bases_ee67121[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc121, 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_dd7121, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67121[];
+extern void _ZN7ee671213barEv();
+extern void _ZN7ee671213fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee671213fooEv,_ZTv0_n12_N7ee671213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee671213fooEv,_ZThn20_N7ee671213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67121[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67121[0]),
+ (VTBL_ENTRY)&_ZN7ee671213barEv,
+ (VTBL_ENTRY)&_ZN7ee671213fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67121[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee67121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee671213fooEv,_ZTv0_n12_N7ee671213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee67121[];
+extern void _ZN6dd71213barEv();
+extern void _ZN6dd71213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7121__7ee67121[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7121[0]),
+ (VTBL_ENTRY)&_ZN6dd71213barEv,
+ (VTBL_ENTRY)&_ZN6dd71213fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc121__6dd7121__7ee67121[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7121[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd71213fooEv,_ZTv0_n12_N6dd71213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71213fooEv,_ZThn20_N6dd71213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd7121__7ee67121[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71213fooEv,_ZTv0_n12_N6dd71213fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc121__7ee67121[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc121__7ee67121[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee67121[] = {
+ {&(_ZTV7ee67121[4]), 4,13},
+ {&(_tg__ZTV6dd7121__7ee67121[4]), 4,6},
+ {&(_tg__ZTV5cc121__6dd7121__7ee67121[3]), 3,3},
+ {&(_tg__ZTV4bb21__6dd7121__7ee67121[3]), 3,4},
+ {&(_ZTV7ee67121[9]), 9,13},
+ {&(_ZTV7ee67121[12]), 12,13},
+ {&(_tg__ZTV5cc121__7ee67121[3]), 3,3},
+ {&(_tg__ZTV4bb21__5cc121__7ee67121[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee67121[];
+extern VTBL_ENTRY _ZTV7ee67121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67121[];
+static VTBL_ENTRY alt_thunk_names515[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71213fooEv,_ZTv0_n12_N6dd71213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71213fooEv,_ZThn20_N6dd71213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee671213fooEv,_ZTv0_n12_N7ee671213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee671213fooEv,_ZThn20_N7ee671213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67121 = { "ee67121", // class name
+ bases_ee67121, 4,
+ &(vtc_ee67121[0]), // expected_vtbl_contents
+ &(vtt_ee67121[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee67121),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67121),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67121),8, //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 ee77121 : virtual dd7121 {
+ int e;
+ virtual void foo(); // _ZN7ee771213fooEv
+ virtual void bar(); // _ZN7ee771213barEv
+ ~ee77121(); // tgen
+ ee77121(); // tgen
+};
+//SIG(1 ee77121) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} v1 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77121 ::foo(){vfunc_called(this, "_ZN7ee771213fooEv");}
+void ee77121 ::bar(){vfunc_called(this, "_ZN7ee771213barEv");}
+ee77121 ::~ee77121(){ note_dtor("ee77121", this);} // tgen
+ee77121 ::ee77121(){ note_ctor("ee77121", this);} // tgen
+
+static void Test_ee77121()
+{
+ extern Class_Descriptor cd_ee77121;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee77121, buf);
+ ee77121 *dp, &lv = *(dp=new (buf) ee77121());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee77121)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77121)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(48,24), "ee77121");
+ check_base_class_offset(lv, (bb21*)(cc121*), ABISELECT(48,24), "ee77121");
+ check_base_class_offset(lv, (cc121*)(dd7121*), ABISELECT(32,16), "ee77121");
+ check_base_class_offset(lv, (dd7121*), ABISELECT(16,8), "ee77121");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77121.e");
+ test_class_info(&lv, &cd_ee77121);
+ dp->~ee77121();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77121(Test_ee77121, "ee77121", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee77121C1Ev();
+extern void _ZN7ee77121D1Ev();
+Name_Map name_map_ee77121[] = {
+ NSPAIR(_ZN7ee77121C1Ev),
+ NSPAIR(_ZN7ee77121D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc121;
+extern VTBL_ENTRY _ZTI5cc121[];
+extern VTBL_ENTRY _ZTV5cc121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc121[];
+extern Class_Descriptor cd_dd7121;
+extern VTBL_ENTRY _ZTI6dd7121[];
+extern VTBL_ENTRY _ZTV6dd7121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7121[];
+static Base_Class bases_ee77121[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb21, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc121, 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_dd7121, 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 _ZTI7ee77121[];
+extern void _ZN7ee771213fooEv();
+extern void _ZN7ee771213barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee771213barEv,_ZTv0_n20_N7ee771213barEv)();
+extern void ABISELECT(_ZThn16_N7ee771213barEv,_ZThn8_N7ee771213barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee771213fooEv,_ZTv0_n24_N7ee771213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee771213fooEv,_ZThn8_N7ee771213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee771213fooEv,_ZTv0_n12_N7ee771213fooEv)();
+extern void ABISELECT(_ZThn48_N7ee771213fooEv,_ZThn24_N7ee771213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77121[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77121[0]),
+ (VTBL_ENTRY)&_ZN7ee771213fooEv,
+ (VTBL_ENTRY)&_ZN7ee771213barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee771213barEv,_ZTv0_n20_N7ee771213barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee771213fooEv,_ZTv0_n24_N7ee771213fooEv),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77121[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee77121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee771213fooEv,_ZTv0_n12_N7ee771213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee77121[];
+extern void _ZN6dd71213barEv();
+extern void _ZN6dd71213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7121__7ee77121[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7121[0]),
+ (VTBL_ENTRY)&_ZN6dd71213barEv,
+ (VTBL_ENTRY)&_ZN6dd71213fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc121__6dd7121__7ee77121[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7121[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd71213fooEv,_ZTv0_n12_N6dd71213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71213fooEv,_ZThn16_N6dd71213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd7121__7ee77121[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71213fooEv,_ZTv0_n12_N6dd71213fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc121__7ee77121[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc121__7ee77121[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc121[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee77121[] = {
+ {&(_ZTV7ee77121[5]), 5,22},
+ {&(_ZTV7ee77121[13]), 13,22},
+ {&(_ZTV7ee77121[18]), 18,22},
+ {&(_ZTV7ee77121[21]), 21,22},
+ {&(_tg__ZTV6dd7121__7ee77121[4]), 4,6},
+ {&(_tg__ZTV5cc121__6dd7121__7ee77121[3]), 3,3},
+ {&(_tg__ZTV4bb21__6dd7121__7ee77121[3]), 3,4},
+ {&(_tg__ZTV5cc121__7ee77121[3]), 3,3},
+ {&(_tg__ZTV4bb21__5cc121__7ee77121[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee77121[];
+extern VTBL_ENTRY _ZTV7ee77121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77121[];
+static VTBL_ENTRY alt_thunk_names516[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71213fooEv,_ZTv0_n12_N6dd71213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71213fooEv,_ZThn16_N6dd71213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee771213fooEv,_ZTv0_n12_N7ee771213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee771213fooEv,_ZThn24_N7ee771213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee771213fooEv,_ZTv0_n24_N7ee771213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee771213fooEv,_ZThn8_N7ee771213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee771213barEv,_ZTv0_n20_N7ee771213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee771213barEv,_ZThn8_N7ee771213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77121 = { "ee77121", // class name
+ bases_ee77121, 4,
+ &(vtc_ee77121[0]), // expected_vtbl_contents
+ &(vtt_ee77121[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee77121),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77121),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77121),9, //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 cc221 : bb21 {
+ int c;
+ virtual void foo(); // _ZN5cc2213fooEv
+ ~cc221(); // tgen
+ cc221(); // tgen
+};
+//SIG(-1 cc221) C1{ BC2{ BC3{ v1 Fi} v1 Fi} v1 Fi}
+
+
+void cc221 ::foo(){vfunc_called(this, "_ZN5cc2213fooEv");}
+cc221 ::~cc221(){ note_dtor("cc221", this);} // tgen
+cc221 ::cc221(){ note_ctor("cc221", this);} // tgen
+
+static void Test_cc221()
+{
+ extern Class_Descriptor cd_cc221;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,5)];
+ init_test(&cd_cc221, buf);
+ cc221 *dp, &lv = *(dp=new (buf) cc221());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,16), "sizeof(cc221)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc221)");
+ check_base_class_offset(lv, (aa1*)(bb21*), 0, "cc221");
+ check_base_class_offset(lv, (bb21*), 0, "cc221");
+ check_field_offset(lv, c, ABISELECT(16,12), "cc221.c");
+ test_class_info(&lv, &cd_cc221);
+ dp->~cc221();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc221(Test_cc221, "cc221", ABISELECT(24,16));
+
+#else // __cplusplus
+
+extern void _ZN5cc221C1Ev();
+extern void _ZN5cc221D1Ev();
+Name_Map name_map_cc221[] = {
+ NSPAIR(_ZN5cc221C1Ev),
+ NSPAIR(_ZN5cc221D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+static Base_Class bases_cc221[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI5cc221[];
+extern void _ZN5cc2213fooEv();
+static VTBL_ENTRY vtc_cc221[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc221[0]),
+ (VTBL_ENTRY)&_ZN5cc2213fooEv,
+};
+extern VTBL_ENTRY _ZTI5cc221[];
+extern VTBL_ENTRY _ZTV5cc221[];
+Class_Descriptor cd_cc221 = { "cc221", // class name
+ bases_cc221, 2,
+ &(vtc_cc221[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,16), // object size
+ NSPAIRA(_ZTI5cc221),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV5cc221),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 dd0221 : cc221 {
+ int d;
+ ~dd0221(); // tgen
+ dd0221(); // tgen
+};
+//SIG(-1 dd0221) C1{ BC2{ BC3{ BC4{ v1 Fi} v1 Fi} v1 Fi} Fi}
+
+
+dd0221 ::~dd0221(){ note_dtor("dd0221", this);} // tgen
+dd0221 ::dd0221(){ note_ctor("dd0221", this);} // tgen
+
+static void Test_dd0221()
+{
+ extern Class_Descriptor cd_dd0221;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd0221, buf);
+ dd0221 *dp, &lv = *(dp=new (buf) dd0221());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd0221)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0221)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc221*), 0, "dd0221");
+ check_base_class_offset(lv, (bb21*)(cc221*), 0, "dd0221");
+ check_base_class_offset(lv, (cc221*), 0, "dd0221");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd0221.d");
+ test_class_info(&lv, &cd_dd0221);
+ dp->~dd0221();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0221(Test_dd0221, "dd0221", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd0221C1Ev();
+extern void _ZN6dd0221D1Ev();
+Name_Map name_map_dd0221[] = {
+ NSPAIR(_ZN6dd0221C1Ev),
+ NSPAIR(_ZN6dd0221D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc221;
+extern VTBL_ENTRY _ZTI5cc221[];
+extern VTBL_ENTRY _ZTV5cc221[];
+static Base_Class bases_dd0221[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc221, 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 _ZTI6dd0221[];
+extern void _ZN5cc2213fooEv();
+static VTBL_ENTRY vtc_dd0221[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0221[0]),
+ (VTBL_ENTRY)&_ZN5cc2213fooEv,
+};
+extern VTBL_ENTRY _ZTI6dd0221[];
+extern VTBL_ENTRY _ZTV6dd0221[];
+Class_Descriptor cd_dd0221 = { "dd0221", // class name
+ bases_dd0221, 3,
+ &(vtc_dd0221[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd0221),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0221),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 ee00221 : dd0221 {
+ int e;
+ ~ee00221(); // tgen
+ ee00221(); // tgen
+};
+//SIG(1 ee00221) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} v1 Fi} v1 Fi} Fi} Fi}
+
+
+ee00221 ::~ee00221(){ note_dtor("ee00221", this);} // tgen
+ee00221 ::ee00221(){ note_ctor("ee00221", this);} // tgen
+
+static void Test_ee00221()
+{
+ extern Class_Descriptor cd_ee00221;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee00221, buf);
+ ee00221 *dp, &lv = *(dp=new (buf) ee00221());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee00221)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00221)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc221*)(dd0221*), 0, "ee00221");
+ check_base_class_offset(lv, (bb21*)(cc221*)(dd0221*), 0, "ee00221");
+ check_base_class_offset(lv, (cc221*)(dd0221*), 0, "ee00221");
+ check_base_class_offset(lv, (dd0221*), 0, "ee00221");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee00221.e");
+ test_class_info(&lv, &cd_ee00221);
+ dp->~ee00221();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00221(Test_ee00221, "ee00221", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee00221C1Ev();
+extern void _ZN7ee00221D1Ev();
+Name_Map name_map_ee00221[] = {
+ NSPAIR(_ZN7ee00221C1Ev),
+ NSPAIR(_ZN7ee00221D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc221;
+extern VTBL_ENTRY _ZTI5cc221[];
+extern VTBL_ENTRY _ZTV5cc221[];
+extern Class_Descriptor cd_dd0221;
+extern VTBL_ENTRY _ZTI6dd0221[];
+extern VTBL_ENTRY _ZTV6dd0221[];
+static Base_Class bases_ee00221[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc221, 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_dd0221, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee00221[];
+extern void _ZN5cc2213fooEv();
+static VTBL_ENTRY vtc_ee00221[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00221[0]),
+ (VTBL_ENTRY)&_ZN5cc2213fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee00221[];
+extern VTBL_ENTRY _ZTV7ee00221[];
+Class_Descriptor cd_ee00221 = { "ee00221", // class name
+ bases_ee00221, 4,
+ &(vtc_ee00221[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee00221),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00221),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 ee10221 : virtual dd0221 {
+ int e;
+ ~ee10221(); // tgen
+ ee10221(); // tgen
+};
+//SIG(1 ee10221) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} v1 Fi} v1 Fi} Fi} Fi}
+
+
+ee10221 ::~ee10221(){ note_dtor("ee10221", this);} // tgen
+ee10221 ::ee10221(){ note_ctor("ee10221", this);} // tgen
+
+static void Test_ee10221()
+{
+ extern Class_Descriptor cd_ee10221;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee10221, buf);
+ ee10221 *dp, &lv = *(dp=new (buf) ee10221());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee10221)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10221)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc221*)(dd0221*), ABISELECT(16,8), "ee10221");
+ check_base_class_offset(lv, (bb21*)(cc221*)(dd0221*), ABISELECT(16,8), "ee10221");
+ check_base_class_offset(lv, (cc221*)(dd0221*), ABISELECT(16,8), "ee10221");
+ check_base_class_offset(lv, (dd0221*), ABISELECT(16,8), "ee10221");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10221.e");
+ test_class_info(&lv, &cd_ee10221);
+ dp->~ee10221();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10221(Test_ee10221, "ee10221", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee10221C1Ev();
+extern void _ZN7ee10221D1Ev();
+Name_Map name_map_ee10221[] = {
+ NSPAIR(_ZN7ee10221C1Ev),
+ NSPAIR(_ZN7ee10221D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc221;
+extern VTBL_ENTRY _ZTI5cc221[];
+extern VTBL_ENTRY _ZTV5cc221[];
+extern Class_Descriptor cd_dd0221;
+extern VTBL_ENTRY _ZTI6dd0221[];
+extern VTBL_ENTRY _ZTV6dd0221[];
+static Base_Class bases_ee10221[] = {
+ // 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_bb21, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc221, 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_dd0221, 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 _ZTI7ee10221[];
+extern void _ZN5cc2213fooEv();
+static VTBL_ENTRY vtc_ee10221[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10221[0]),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10221[0]),
+ (VTBL_ENTRY)&_ZN5cc2213fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee10221[];
+static VTT_ENTRY vtt_ee10221[] = {
+ {&(_ZTV7ee10221[3]), 3,7},
+ {&(_ZTV7ee10221[6]), 6,7},
+};
+extern VTBL_ENTRY _ZTI7ee10221[];
+extern VTBL_ENTRY _ZTV7ee10221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10221[];
+Class_Descriptor cd_ee10221 = { "ee10221", // class name
+ bases_ee10221, 4,
+ &(vtc_ee10221[0]), // expected_vtbl_contents
+ &(vtt_ee10221[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee10221),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10221),7, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10221),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 ee20221 : dd0221 {
+ int e;
+ virtual void foo(); // _ZN7ee202213fooEv
+ ~ee20221(); // tgen
+ ee20221(); // tgen
+};
+//SIG(1 ee20221) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee20221 ::foo(){vfunc_called(this, "_ZN7ee202213fooEv");}
+ee20221 ::~ee20221(){ note_dtor("ee20221", this);} // tgen
+ee20221 ::ee20221(){ note_ctor("ee20221", this);} // tgen
+
+static void Test_ee20221()
+{
+ extern Class_Descriptor cd_ee20221;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee20221, buf);
+ ee20221 *dp, &lv = *(dp=new (buf) ee20221());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee20221)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20221)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc221*)(dd0221*), 0, "ee20221");
+ check_base_class_offset(lv, (bb21*)(cc221*)(dd0221*), 0, "ee20221");
+ check_base_class_offset(lv, (cc221*)(dd0221*), 0, "ee20221");
+ check_base_class_offset(lv, (dd0221*), 0, "ee20221");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee20221.e");
+ test_class_info(&lv, &cd_ee20221);
+ dp->~ee20221();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20221(Test_ee20221, "ee20221", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee20221C1Ev();
+extern void _ZN7ee20221D1Ev();
+Name_Map name_map_ee20221[] = {
+ NSPAIR(_ZN7ee20221C1Ev),
+ NSPAIR(_ZN7ee20221D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc221;
+extern VTBL_ENTRY _ZTI5cc221[];
+extern VTBL_ENTRY _ZTV5cc221[];
+extern Class_Descriptor cd_dd0221;
+extern VTBL_ENTRY _ZTI6dd0221[];
+extern VTBL_ENTRY _ZTV6dd0221[];
+static Base_Class bases_ee20221[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc221, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd0221, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee20221[];
+extern void _ZN7ee202213fooEv();
+static VTBL_ENTRY vtc_ee20221[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20221[0]),
+ (VTBL_ENTRY)&_ZN7ee202213fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee20221[];
+extern VTBL_ENTRY _ZTV7ee20221[];
+Class_Descriptor cd_ee20221 = { "ee20221", // class name
+ bases_ee20221, 4,
+ &(vtc_ee20221[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee20221),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20221),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 ee30221 : virtual dd0221 {
+ int e;
+ virtual void foo(); // _ZN7ee302213fooEv
+ ~ee30221(); // tgen
+ ee30221(); // tgen
+};
+//SIG(1 ee30221) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee30221 ::foo(){vfunc_called(this, "_ZN7ee302213fooEv");}
+ee30221 ::~ee30221(){ note_dtor("ee30221", this);} // tgen
+ee30221 ::ee30221(){ note_ctor("ee30221", this);} // tgen
+
+static void Test_ee30221()
+{
+ extern Class_Descriptor cd_ee30221;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee30221, buf);
+ ee30221 *dp, &lv = *(dp=new (buf) ee30221());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee30221)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30221)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc221*)(dd0221*), ABISELECT(16,8), "ee30221");
+ check_base_class_offset(lv, (bb21*)(cc221*)(dd0221*), ABISELECT(16,8), "ee30221");
+ check_base_class_offset(lv, (cc221*)(dd0221*), ABISELECT(16,8), "ee30221");
+ check_base_class_offset(lv, (dd0221*), ABISELECT(16,8), "ee30221");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30221.e");
+ test_class_info(&lv, &cd_ee30221);
+ dp->~ee30221();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30221(Test_ee30221, "ee30221", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee30221C1Ev();
+extern void _ZN7ee30221D1Ev();
+Name_Map name_map_ee30221[] = {
+ NSPAIR(_ZN7ee30221C1Ev),
+ NSPAIR(_ZN7ee30221D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc221;
+extern VTBL_ENTRY _ZTI5cc221[];
+extern VTBL_ENTRY _ZTV5cc221[];
+extern Class_Descriptor cd_dd0221;
+extern VTBL_ENTRY _ZTI6dd0221[];
+extern VTBL_ENTRY _ZTV6dd0221[];
+static Base_Class bases_ee30221[] = {
+ // 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_bb21, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc221, 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_dd0221, 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 _ZTI7ee30221[];
+extern void _ZN7ee302213fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee302213fooEv,_ZTv0_n12_N7ee302213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee302213fooEv,_ZThn8_N7ee302213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee30221[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30221[0]),
+ (VTBL_ENTRY)&_ZN7ee302213fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30221[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee302213fooEv,_ZTv0_n12_N7ee302213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee30221[];
+static VTT_ENTRY vtt_ee30221[] = {
+ {&(_ZTV7ee30221[3]), 3,8},
+ {&(_ZTV7ee30221[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee30221[];
+extern VTBL_ENTRY _ZTV7ee30221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30221[];
+static VTBL_ENTRY alt_thunk_names517[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee302213fooEv,_ZTv0_n12_N7ee302213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee302213fooEv,_ZThn8_N7ee302213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30221 = { "ee30221", // class name
+ bases_ee30221, 4,
+ &(vtc_ee30221[0]), // expected_vtbl_contents
+ &(vtt_ee30221[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee30221),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30221),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30221),2, //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 ee40221 : dd0221 {
+ int e;
+ virtual void bar(); // _ZN7ee402213barEv
+ ~ee40221(); // tgen
+ ee40221(); // tgen
+};
+//SIG(1 ee40221) C1{ BC2{ BC3{ BC4{ BC5{ v2 Fi} v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee40221 ::bar(){vfunc_called(this, "_ZN7ee402213barEv");}
+ee40221 ::~ee40221(){ note_dtor("ee40221", this);} // tgen
+ee40221 ::ee40221(){ note_ctor("ee40221", this);} // tgen
+
+static void Test_ee40221()
+{
+ extern Class_Descriptor cd_ee40221;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee40221, buf);
+ ee40221 *dp, &lv = *(dp=new (buf) ee40221());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee40221)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40221)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc221*)(dd0221*), 0, "ee40221");
+ check_base_class_offset(lv, (bb21*)(cc221*)(dd0221*), 0, "ee40221");
+ check_base_class_offset(lv, (cc221*)(dd0221*), 0, "ee40221");
+ check_base_class_offset(lv, (dd0221*), 0, "ee40221");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee40221.e");
+ test_class_info(&lv, &cd_ee40221);
+ dp->~ee40221();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40221(Test_ee40221, "ee40221", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee40221C1Ev();
+extern void _ZN7ee40221D1Ev();
+Name_Map name_map_ee40221[] = {
+ NSPAIR(_ZN7ee40221C1Ev),
+ NSPAIR(_ZN7ee40221D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc221;
+extern VTBL_ENTRY _ZTI5cc221[];
+extern VTBL_ENTRY _ZTV5cc221[];
+extern Class_Descriptor cd_dd0221;
+extern VTBL_ENTRY _ZTI6dd0221[];
+extern VTBL_ENTRY _ZTV6dd0221[];
+static Base_Class bases_ee40221[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc221, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd0221, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee40221[];
+extern void _ZN5cc2213fooEv();
+extern void _ZN7ee402213barEv();
+static VTBL_ENTRY vtc_ee40221[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40221[0]),
+ (VTBL_ENTRY)&_ZN5cc2213fooEv,
+ (VTBL_ENTRY)&_ZN7ee402213barEv,
+};
+extern VTBL_ENTRY _ZTI7ee40221[];
+extern VTBL_ENTRY _ZTV7ee40221[];
+Class_Descriptor cd_ee40221 = { "ee40221", // class name
+ bases_ee40221, 4,
+ &(vtc_ee40221[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee40221),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40221),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 ee50221 : virtual dd0221 {
+ int e;
+ virtual void bar(); // _ZN7ee502213barEv
+ ~ee50221(); // tgen
+ ee50221(); // tgen
+};
+//SIG(1 ee50221) C1{ VBC2{ BC3{ BC4{ BC5{ v2 Fi} v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee50221 ::bar(){vfunc_called(this, "_ZN7ee502213barEv");}
+ee50221 ::~ee50221(){ note_dtor("ee50221", this);} // tgen
+ee50221 ::ee50221(){ note_ctor("ee50221", this);} // tgen
+
+static void Test_ee50221()
+{
+ extern Class_Descriptor cd_ee50221;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee50221, buf);
+ ee50221 *dp, &lv = *(dp=new (buf) ee50221());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee50221)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50221)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc221*)(dd0221*), ABISELECT(16,8), "ee50221");
+ check_base_class_offset(lv, (bb21*)(cc221*)(dd0221*), ABISELECT(16,8), "ee50221");
+ check_base_class_offset(lv, (cc221*)(dd0221*), ABISELECT(16,8), "ee50221");
+ check_base_class_offset(lv, (dd0221*), ABISELECT(16,8), "ee50221");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50221.e");
+ test_class_info(&lv, &cd_ee50221);
+ dp->~ee50221();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50221(Test_ee50221, "ee50221", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee50221C1Ev();
+extern void _ZN7ee50221D1Ev();
+Name_Map name_map_ee50221[] = {
+ NSPAIR(_ZN7ee50221C1Ev),
+ NSPAIR(_ZN7ee50221D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc221;
+extern VTBL_ENTRY _ZTI5cc221[];
+extern VTBL_ENTRY _ZTV5cc221[];
+extern Class_Descriptor cd_dd0221;
+extern VTBL_ENTRY _ZTI6dd0221[];
+extern VTBL_ENTRY _ZTV6dd0221[];
+static Base_Class bases_ee50221[] = {
+ // 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_bb21, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc221, 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_dd0221, 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 _ZTI7ee50221[];
+extern void _ZN7ee502213barEv();
+extern void _ZN5cc2213fooEv();
+static VTBL_ENTRY vtc_ee50221[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50221[0]),
+ (VTBL_ENTRY)&_ZN7ee502213barEv,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50221[0]),
+ (VTBL_ENTRY)&_ZN5cc2213fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee50221[];
+static VTT_ENTRY vtt_ee50221[] = {
+ {&(_ZTV7ee50221[3]), 3,8},
+ {&(_ZTV7ee50221[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee50221[];
+extern VTBL_ENTRY _ZTV7ee50221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50221[];
+Class_Descriptor cd_ee50221 = { "ee50221", // class name
+ bases_ee50221, 4,
+ &(vtc_ee50221[0]), // expected_vtbl_contents
+ &(vtt_ee50221[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee50221),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50221),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50221),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 ee60221 : dd0221 {
+ int e;
+ virtual void foo(); // _ZN7ee602213fooEv
+ virtual void bar(); // _ZN7ee602213barEv
+ ~ee60221(); // tgen
+ ee60221(); // tgen
+};
+//SIG(1 ee60221) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} v1 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee60221 ::foo(){vfunc_called(this, "_ZN7ee602213fooEv");}
+void ee60221 ::bar(){vfunc_called(this, "_ZN7ee602213barEv");}
+ee60221 ::~ee60221(){ note_dtor("ee60221", this);} // tgen
+ee60221 ::ee60221(){ note_ctor("ee60221", this);} // tgen
+
+static void Test_ee60221()
+{
+ extern Class_Descriptor cd_ee60221;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee60221, buf);
+ ee60221 *dp, &lv = *(dp=new (buf) ee60221());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee60221)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60221)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc221*)(dd0221*), 0, "ee60221");
+ check_base_class_offset(lv, (bb21*)(cc221*)(dd0221*), 0, "ee60221");
+ check_base_class_offset(lv, (cc221*)(dd0221*), 0, "ee60221");
+ check_base_class_offset(lv, (dd0221*), 0, "ee60221");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee60221.e");
+ test_class_info(&lv, &cd_ee60221);
+ dp->~ee60221();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60221(Test_ee60221, "ee60221", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee60221C1Ev();
+extern void _ZN7ee60221D1Ev();
+Name_Map name_map_ee60221[] = {
+ NSPAIR(_ZN7ee60221C1Ev),
+ NSPAIR(_ZN7ee60221D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc221;
+extern VTBL_ENTRY _ZTI5cc221[];
+extern VTBL_ENTRY _ZTV5cc221[];
+extern Class_Descriptor cd_dd0221;
+extern VTBL_ENTRY _ZTI6dd0221[];
+extern VTBL_ENTRY _ZTV6dd0221[];
+static Base_Class bases_ee60221[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc221, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd0221, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee60221[];
+extern void _ZN7ee602213fooEv();
+extern void _ZN7ee602213barEv();
+static VTBL_ENTRY vtc_ee60221[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60221[0]),
+ (VTBL_ENTRY)&_ZN7ee602213fooEv,
+ (VTBL_ENTRY)&_ZN7ee602213barEv,
+};
+extern VTBL_ENTRY _ZTI7ee60221[];
+extern VTBL_ENTRY _ZTV7ee60221[];
+Class_Descriptor cd_ee60221 = { "ee60221", // class name
+ bases_ee60221, 4,
+ &(vtc_ee60221[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee60221),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60221),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 ee70221 : virtual dd0221 {
+ int e;
+ virtual void foo(); // _ZN7ee702213fooEv
+ virtual void bar(); // _ZN7ee702213barEv
+ ~ee70221(); // tgen
+ ee70221(); // tgen
+};
+//SIG(1 ee70221) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} v1 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee70221 ::foo(){vfunc_called(this, "_ZN7ee702213fooEv");}
+void ee70221 ::bar(){vfunc_called(this, "_ZN7ee702213barEv");}
+ee70221 ::~ee70221(){ note_dtor("ee70221", this);} // tgen
+ee70221 ::ee70221(){ note_ctor("ee70221", this);} // tgen
+
+static void Test_ee70221()
+{
+ extern Class_Descriptor cd_ee70221;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee70221, buf);
+ ee70221 *dp, &lv = *(dp=new (buf) ee70221());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee70221)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70221)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc221*)(dd0221*), ABISELECT(16,8), "ee70221");
+ check_base_class_offset(lv, (bb21*)(cc221*)(dd0221*), ABISELECT(16,8), "ee70221");
+ check_base_class_offset(lv, (cc221*)(dd0221*), ABISELECT(16,8), "ee70221");
+ check_base_class_offset(lv, (dd0221*), ABISELECT(16,8), "ee70221");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70221.e");
+ test_class_info(&lv, &cd_ee70221);
+ dp->~ee70221();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70221(Test_ee70221, "ee70221", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee70221C1Ev();
+extern void _ZN7ee70221D1Ev();
+Name_Map name_map_ee70221[] = {
+ NSPAIR(_ZN7ee70221C1Ev),
+ NSPAIR(_ZN7ee70221D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc221;
+extern VTBL_ENTRY _ZTI5cc221[];
+extern VTBL_ENTRY _ZTV5cc221[];
+extern Class_Descriptor cd_dd0221;
+extern VTBL_ENTRY _ZTI6dd0221[];
+extern VTBL_ENTRY _ZTV6dd0221[];
+static Base_Class bases_ee70221[] = {
+ // 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_bb21, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc221, 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_dd0221, 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 _ZTI7ee70221[];
+extern void _ZN7ee702213fooEv();
+extern void _ZN7ee702213barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee702213fooEv,_ZTv0_n12_N7ee702213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee702213fooEv,_ZThn8_N7ee702213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70221[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70221[0]),
+ (VTBL_ENTRY)&_ZN7ee702213fooEv,
+ (VTBL_ENTRY)&_ZN7ee702213barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70221[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee702213fooEv,_ZTv0_n12_N7ee702213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee70221[];
+static VTT_ENTRY vtt_ee70221[] = {
+ {&(_ZTV7ee70221[3]), 3,9},
+ {&(_ZTV7ee70221[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee70221[];
+extern VTBL_ENTRY _ZTV7ee70221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70221[];
+static VTBL_ENTRY alt_thunk_names518[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee702213fooEv,_ZTv0_n12_N7ee702213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee702213fooEv,_ZThn8_N7ee702213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70221 = { "ee70221", // class name
+ bases_ee70221, 4,
+ &(vtc_ee70221[0]), // expected_vtbl_contents
+ &(vtt_ee70221[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee70221),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70221),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70221),2, //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 dd1221 : virtual cc221 {
+ int d;
+ ~dd1221(); // tgen
+ dd1221(); // tgen
+};
+//SIG(-1 dd1221) C1{ VBC2{ BC3{ BC4{ v1 Fi} v1 Fi} v1 Fi} Fi}
+
+
+dd1221 ::~dd1221(){ note_dtor("dd1221", this);} // tgen
+dd1221 ::dd1221(){ note_ctor("dd1221", this);} // tgen
+
+static void Test_dd1221()
+{
+ extern Class_Descriptor cd_dd1221;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd1221, buf);
+ dd1221 *dp, &lv = *(dp=new (buf) dd1221());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd1221)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1221)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc221*), ABISELECT(16,8), "dd1221");
+ check_base_class_offset(lv, (bb21*)(cc221*), ABISELECT(16,8), "dd1221");
+ check_base_class_offset(lv, (cc221*), ABISELECT(16,8), "dd1221");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1221.d");
+ test_class_info(&lv, &cd_dd1221);
+ dp->~dd1221();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1221(Test_dd1221, "dd1221", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd1221C1Ev();
+extern void _ZN6dd1221D1Ev();
+Name_Map name_map_dd1221[] = {
+ NSPAIR(_ZN6dd1221C1Ev),
+ NSPAIR(_ZN6dd1221D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc221;
+extern VTBL_ENTRY _ZTI5cc221[];
+extern VTBL_ENTRY _ZTV5cc221[];
+static Base_Class bases_dd1221[] = {
+ // 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_bb21, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc221, 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 _ZTI6dd1221[];
+extern void _ZN5cc2213fooEv();
+static VTBL_ENTRY vtc_dd1221[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1221[0]),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1221[0]),
+ (VTBL_ENTRY)&_ZN5cc2213fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd1221[];
+static VTT_ENTRY vtt_dd1221[] = {
+ {&(_ZTV6dd1221[3]), 3,7},
+ {&(_ZTV6dd1221[6]), 6,7},
+};
+extern VTBL_ENTRY _ZTI6dd1221[];
+extern VTBL_ENTRY _ZTV6dd1221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1221[];
+Class_Descriptor cd_dd1221 = { "dd1221", // class name
+ bases_dd1221, 3,
+ &(vtc_dd1221[0]), // expected_vtbl_contents
+ &(vtt_dd1221[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd1221),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1221),7, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1221),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 ee01221 : dd1221 {
+ int e;
+ ~ee01221(); // tgen
+ ee01221(); // tgen
+};
+//SIG(1 ee01221) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} v1 Fi} v1 Fi} Fi} Fi}
+
+
+ee01221 ::~ee01221(){ note_dtor("ee01221", this);} // tgen
+ee01221 ::ee01221(){ note_ctor("ee01221", this);} // tgen
+
+static void Test_ee01221()
+{
+ extern Class_Descriptor cd_ee01221;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee01221, buf);
+ ee01221 *dp, &lv = *(dp=new (buf) ee01221());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee01221)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01221)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc221*), ABISELECT(16,12), "ee01221");
+ check_base_class_offset(lv, (bb21*)(cc221*), ABISELECT(16,12), "ee01221");
+ check_base_class_offset(lv, (cc221*)(dd1221*), ABISELECT(16,12), "ee01221");
+ check_base_class_offset(lv, (dd1221*), 0, "ee01221");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01221.e");
+ test_class_info(&lv, &cd_ee01221);
+ dp->~ee01221();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01221(Test_ee01221, "ee01221", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee01221C1Ev();
+extern void _ZN7ee01221D1Ev();
+Name_Map name_map_ee01221[] = {
+ NSPAIR(_ZN7ee01221C1Ev),
+ NSPAIR(_ZN7ee01221D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc221;
+extern VTBL_ENTRY _ZTI5cc221[];
+extern VTBL_ENTRY _ZTV5cc221[];
+extern Class_Descriptor cd_dd1221;
+extern VTBL_ENTRY _ZTI6dd1221[];
+extern VTBL_ENTRY _ZTV6dd1221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1221[];
+static Base_Class bases_ee01221[] = {
+ // 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_bb21, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc221, 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_dd1221, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01221[];
+extern void _ZN5cc2213fooEv();
+static VTBL_ENTRY vtc_ee01221[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01221[0]),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01221[0]),
+ (VTBL_ENTRY)&_ZN5cc2213fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee01221[];
+static VTBL_ENTRY _tg__ZTV6dd1221__7ee01221[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1221[0]),
+};
+extern void _ZN5cc2213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc221__6dd1221__7ee01221[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1221[0]),
+ (VTBL_ENTRY)&_ZN5cc2213fooEv,
+};
+static VTT_ENTRY vtt_ee01221[] = {
+ {&(_ZTV7ee01221[3]), 3,7},
+ {&(_tg__ZTV6dd1221__7ee01221[3]), 3,3},
+ {&(_tg__ZTV5cc221__6dd1221__7ee01221[3]), 3,4},
+ {&(_ZTV7ee01221[6]), 6,7},
+};
+extern VTBL_ENTRY _ZTI7ee01221[];
+extern VTBL_ENTRY _ZTV7ee01221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01221[];
+Class_Descriptor cd_ee01221 = { "ee01221", // class name
+ bases_ee01221, 4,
+ &(vtc_ee01221[0]), // expected_vtbl_contents
+ &(vtt_ee01221[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee01221),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01221),7, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01221),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 ee11221 : virtual dd1221 {
+ int e;
+ ~ee11221(); // tgen
+ ee11221(); // tgen
+};
+//SIG(1 ee11221) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} v1 Fi} v1 Fi} Fi} Fi}
+
+
+ee11221 ::~ee11221(){ note_dtor("ee11221", this);} // tgen
+ee11221 ::ee11221(){ note_ctor("ee11221", this);} // tgen
+
+static void Test_ee11221()
+{
+ extern Class_Descriptor cd_ee11221;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee11221, buf);
+ ee11221 *dp, &lv = *(dp=new (buf) ee11221());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee11221)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11221)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc221*), ABISELECT(32,16), "ee11221");
+ check_base_class_offset(lv, (bb21*)(cc221*), ABISELECT(32,16), "ee11221");
+ check_base_class_offset(lv, (cc221*)(dd1221*), ABISELECT(32,16), "ee11221");
+ check_base_class_offset(lv, (dd1221*), ABISELECT(16,8), "ee11221");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11221.e");
+ test_class_info(&lv, &cd_ee11221);
+ dp->~ee11221();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11221(Test_ee11221, "ee11221", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee11221C1Ev();
+extern void _ZN7ee11221D1Ev();
+Name_Map name_map_ee11221[] = {
+ NSPAIR(_ZN7ee11221C1Ev),
+ NSPAIR(_ZN7ee11221D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc221;
+extern VTBL_ENTRY _ZTI5cc221[];
+extern VTBL_ENTRY _ZTV5cc221[];
+extern Class_Descriptor cd_dd1221;
+extern VTBL_ENTRY _ZTI6dd1221[];
+extern VTBL_ENTRY _ZTV6dd1221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1221[];
+static Base_Class bases_ee11221[] = {
+ // 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_bb21, 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_cc221, 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_dd1221, 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 _ZTI7ee11221[];
+extern void _ZN5cc2213fooEv();
+static VTBL_ENTRY vtc_ee11221[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11221[0]),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11221[0]),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11221[0]),
+ (VTBL_ENTRY)&_ZN5cc2213fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee11221[];
+static VTBL_ENTRY _tg__ZTV6dd1221__7ee11221[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1221[0]),
+};
+extern void _ZN5cc2213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc221__6dd1221__7ee11221[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1221[0]),
+ (VTBL_ENTRY)&_ZN5cc2213fooEv,
+};
+static VTT_ENTRY vtt_ee11221[] = {
+ {&(_ZTV7ee11221[4]), 4,11},
+ {&(_ZTV7ee11221[7]), 7,11},
+ {&(_ZTV7ee11221[10]), 10,11},
+ {&(_tg__ZTV6dd1221__7ee11221[3]), 3,3},
+ {&(_tg__ZTV5cc221__6dd1221__7ee11221[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee11221[];
+extern VTBL_ENTRY _ZTV7ee11221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11221[];
+Class_Descriptor cd_ee11221 = { "ee11221", // class name
+ bases_ee11221, 4,
+ &(vtc_ee11221[0]), // expected_vtbl_contents
+ &(vtt_ee11221[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee11221),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11221),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11221),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 ee21221 : dd1221 {
+ int e;
+ virtual void foo(); // _ZN7ee212213fooEv
+ ~ee21221(); // tgen
+ ee21221(); // tgen
+};
+//SIG(1 ee21221) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee21221 ::foo(){vfunc_called(this, "_ZN7ee212213fooEv");}
+ee21221 ::~ee21221(){ note_dtor("ee21221", this);} // tgen
+ee21221 ::ee21221(){ note_ctor("ee21221", this);} // tgen
+
+static void Test_ee21221()
+{
+ extern Class_Descriptor cd_ee21221;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee21221, buf);
+ ee21221 *dp, &lv = *(dp=new (buf) ee21221());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee21221)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21221)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc221*), ABISELECT(16,12), "ee21221");
+ check_base_class_offset(lv, (bb21*)(cc221*), ABISELECT(16,12), "ee21221");
+ check_base_class_offset(lv, (cc221*)(dd1221*), ABISELECT(16,12), "ee21221");
+ check_base_class_offset(lv, (dd1221*), 0, "ee21221");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21221.e");
+ test_class_info(&lv, &cd_ee21221);
+ dp->~ee21221();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21221(Test_ee21221, "ee21221", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee21221C1Ev();
+extern void _ZN7ee21221D1Ev();
+Name_Map name_map_ee21221[] = {
+ NSPAIR(_ZN7ee21221C1Ev),
+ NSPAIR(_ZN7ee21221D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc221;
+extern VTBL_ENTRY _ZTI5cc221[];
+extern VTBL_ENTRY _ZTV5cc221[];
+extern Class_Descriptor cd_dd1221;
+extern VTBL_ENTRY _ZTI6dd1221[];
+extern VTBL_ENTRY _ZTV6dd1221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1221[];
+static Base_Class bases_ee21221[] = {
+ // 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_bb21, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc221, 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_dd1221, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21221[];
+extern void _ZN7ee212213fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee212213fooEv,_ZTv0_n12_N7ee212213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee212213fooEv,_ZThn12_N7ee212213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee21221[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21221[0]),
+ (VTBL_ENTRY)&_ZN7ee212213fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21221[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee212213fooEv,_ZTv0_n12_N7ee212213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee21221[];
+static VTBL_ENTRY _tg__ZTV6dd1221__7ee21221[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1221[0]),
+};
+extern void _ZN5cc2213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc221__6dd1221__7ee21221[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1221[0]),
+ (VTBL_ENTRY)&_ZN5cc2213fooEv,
+};
+static VTT_ENTRY vtt_ee21221[] = {
+ {&(_ZTV7ee21221[3]), 3,8},
+ {&(_tg__ZTV6dd1221__7ee21221[3]), 3,3},
+ {&(_tg__ZTV5cc221__6dd1221__7ee21221[3]), 3,4},
+ {&(_ZTV7ee21221[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee21221[];
+extern VTBL_ENTRY _ZTV7ee21221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21221[];
+static VTBL_ENTRY alt_thunk_names519[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee212213fooEv,_ZTv0_n12_N7ee212213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee212213fooEv,_ZThn12_N7ee212213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21221 = { "ee21221", // class name
+ bases_ee21221, 4,
+ &(vtc_ee21221[0]), // expected_vtbl_contents
+ &(vtt_ee21221[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee21221),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21221),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21221),4, //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 ee31221 : virtual dd1221 {
+ int e;
+ virtual void foo(); // _ZN7ee312213fooEv
+ ~ee31221(); // tgen
+ ee31221(); // tgen
+};
+//SIG(1 ee31221) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee31221 ::foo(){vfunc_called(this, "_ZN7ee312213fooEv");}
+ee31221 ::~ee31221(){ note_dtor("ee31221", this);} // tgen
+ee31221 ::ee31221(){ note_ctor("ee31221", this);} // tgen
+
+static void Test_ee31221()
+{
+ extern Class_Descriptor cd_ee31221;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee31221, buf);
+ ee31221 *dp, &lv = *(dp=new (buf) ee31221());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee31221)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31221)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc221*), ABISELECT(32,16), "ee31221");
+ check_base_class_offset(lv, (bb21*)(cc221*), ABISELECT(32,16), "ee31221");
+ check_base_class_offset(lv, (cc221*)(dd1221*), ABISELECT(32,16), "ee31221");
+ check_base_class_offset(lv, (dd1221*), ABISELECT(16,8), "ee31221");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31221.e");
+ test_class_info(&lv, &cd_ee31221);
+ dp->~ee31221();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31221(Test_ee31221, "ee31221", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee31221C1Ev();
+extern void _ZN7ee31221D1Ev();
+Name_Map name_map_ee31221[] = {
+ NSPAIR(_ZN7ee31221C1Ev),
+ NSPAIR(_ZN7ee31221D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc221;
+extern VTBL_ENTRY _ZTI5cc221[];
+extern VTBL_ENTRY _ZTV5cc221[];
+extern Class_Descriptor cd_dd1221;
+extern VTBL_ENTRY _ZTI6dd1221[];
+extern VTBL_ENTRY _ZTV6dd1221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1221[];
+static Base_Class bases_ee31221[] = {
+ // 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_bb21, 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_cc221, 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_dd1221, 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 _ZTI7ee31221[];
+extern void _ZN7ee312213fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee312213fooEv,_ZTv0_n12_N7ee312213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee312213fooEv,_ZThn16_N7ee312213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee31221[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31221[0]),
+ (VTBL_ENTRY)&_ZN7ee312213fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31221[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31221[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee312213fooEv,_ZTv0_n12_N7ee312213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee31221[];
+static VTBL_ENTRY _tg__ZTV6dd1221__7ee31221[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1221[0]),
+};
+extern void _ZN5cc2213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc221__6dd1221__7ee31221[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1221[0]),
+ (VTBL_ENTRY)&_ZN5cc2213fooEv,
+};
+static VTT_ENTRY vtt_ee31221[] = {
+ {&(_ZTV7ee31221[4]), 4,12},
+ {&(_ZTV7ee31221[8]), 8,12},
+ {&(_ZTV7ee31221[11]), 11,12},
+ {&(_tg__ZTV6dd1221__7ee31221[3]), 3,3},
+ {&(_tg__ZTV5cc221__6dd1221__7ee31221[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee31221[];
+extern VTBL_ENTRY _ZTV7ee31221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31221[];
+static VTBL_ENTRY alt_thunk_names520[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee312213fooEv,_ZTv0_n12_N7ee312213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee312213fooEv,_ZThn16_N7ee312213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31221 = { "ee31221", // class name
+ bases_ee31221, 4,
+ &(vtc_ee31221[0]), // expected_vtbl_contents
+ &(vtt_ee31221[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee31221),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31221),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31221),5, //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 ee41221 : dd1221 {
+ int e;
+ virtual void bar(); // _ZN7ee412213barEv
+ ~ee41221(); // tgen
+ ee41221(); // tgen
+};
+//SIG(1 ee41221) C1{ BC2{ VBC3{ BC4{ BC5{ v2 Fi} v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee41221 ::bar(){vfunc_called(this, "_ZN7ee412213barEv");}
+ee41221 ::~ee41221(){ note_dtor("ee41221", this);} // tgen
+ee41221 ::ee41221(){ note_ctor("ee41221", this);} // tgen
+
+static void Test_ee41221()
+{
+ extern Class_Descriptor cd_ee41221;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee41221, buf);
+ ee41221 *dp, &lv = *(dp=new (buf) ee41221());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee41221)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41221)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc221*), ABISELECT(16,12), "ee41221");
+ check_base_class_offset(lv, (bb21*)(cc221*), ABISELECT(16,12), "ee41221");
+ check_base_class_offset(lv, (cc221*)(dd1221*), ABISELECT(16,12), "ee41221");
+ check_base_class_offset(lv, (dd1221*), 0, "ee41221");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41221.e");
+ test_class_info(&lv, &cd_ee41221);
+ dp->~ee41221();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41221(Test_ee41221, "ee41221", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee41221C1Ev();
+extern void _ZN7ee41221D1Ev();
+Name_Map name_map_ee41221[] = {
+ NSPAIR(_ZN7ee41221C1Ev),
+ NSPAIR(_ZN7ee41221D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc221;
+extern VTBL_ENTRY _ZTI5cc221[];
+extern VTBL_ENTRY _ZTV5cc221[];
+extern Class_Descriptor cd_dd1221;
+extern VTBL_ENTRY _ZTI6dd1221[];
+extern VTBL_ENTRY _ZTV6dd1221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1221[];
+static Base_Class bases_ee41221[] = {
+ // 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_bb21, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc221, 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_dd1221, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41221[];
+extern void _ZN7ee412213barEv();
+extern void _ZN5cc2213fooEv();
+static VTBL_ENTRY vtc_ee41221[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41221[0]),
+ (VTBL_ENTRY)&_ZN7ee412213barEv,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41221[0]),
+ (VTBL_ENTRY)&_ZN5cc2213fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee41221[];
+static VTBL_ENTRY _tg__ZTV6dd1221__7ee41221[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1221[0]),
+};
+extern void _ZN5cc2213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc221__6dd1221__7ee41221[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1221[0]),
+ (VTBL_ENTRY)&_ZN5cc2213fooEv,
+};
+static VTT_ENTRY vtt_ee41221[] = {
+ {&(_ZTV7ee41221[3]), 3,8},
+ {&(_tg__ZTV6dd1221__7ee41221[3]), 3,3},
+ {&(_tg__ZTV5cc221__6dd1221__7ee41221[3]), 3,4},
+ {&(_ZTV7ee41221[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee41221[];
+extern VTBL_ENTRY _ZTV7ee41221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41221[];
+Class_Descriptor cd_ee41221 = { "ee41221", // class name
+ bases_ee41221, 4,
+ &(vtc_ee41221[0]), // expected_vtbl_contents
+ &(vtt_ee41221[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee41221),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41221),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41221),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 ee51221 : virtual dd1221 {
+ int e;
+ virtual void bar(); // _ZN7ee512213barEv
+ ~ee51221(); // tgen
+ ee51221(); // tgen
+};
+//SIG(1 ee51221) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 Fi} v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee51221 ::bar(){vfunc_called(this, "_ZN7ee512213barEv");}
+ee51221 ::~ee51221(){ note_dtor("ee51221", this);} // tgen
+ee51221 ::ee51221(){ note_ctor("ee51221", this);} // tgen
+
+static void Test_ee51221()
+{
+ extern Class_Descriptor cd_ee51221;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee51221, buf);
+ ee51221 *dp, &lv = *(dp=new (buf) ee51221());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee51221)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51221)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc221*), ABISELECT(32,16), "ee51221");
+ check_base_class_offset(lv, (bb21*)(cc221*), ABISELECT(32,16), "ee51221");
+ check_base_class_offset(lv, (cc221*)(dd1221*), ABISELECT(32,16), "ee51221");
+ check_base_class_offset(lv, (dd1221*), ABISELECT(16,8), "ee51221");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51221.e");
+ test_class_info(&lv, &cd_ee51221);
+ dp->~ee51221();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51221(Test_ee51221, "ee51221", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee51221C1Ev();
+extern void _ZN7ee51221D1Ev();
+Name_Map name_map_ee51221[] = {
+ NSPAIR(_ZN7ee51221C1Ev),
+ NSPAIR(_ZN7ee51221D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc221;
+extern VTBL_ENTRY _ZTI5cc221[];
+extern VTBL_ENTRY _ZTV5cc221[];
+extern Class_Descriptor cd_dd1221;
+extern VTBL_ENTRY _ZTI6dd1221[];
+extern VTBL_ENTRY _ZTV6dd1221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1221[];
+static Base_Class bases_ee51221[] = {
+ // 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_bb21, 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_cc221, 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_dd1221, 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 _ZTI7ee51221[];
+extern void _ZN7ee512213barEv();
+extern void _ZN5cc2213fooEv();
+static VTBL_ENTRY vtc_ee51221[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51221[0]),
+ (VTBL_ENTRY)&_ZN7ee512213barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51221[0]),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51221[0]),
+ (VTBL_ENTRY)&_ZN5cc2213fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee51221[];
+static VTBL_ENTRY _tg__ZTV6dd1221__7ee51221[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1221[0]),
+};
+extern void _ZN5cc2213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc221__6dd1221__7ee51221[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1221[0]),
+ (VTBL_ENTRY)&_ZN5cc2213fooEv,
+};
+static VTT_ENTRY vtt_ee51221[] = {
+ {&(_ZTV7ee51221[4]), 4,12},
+ {&(_ZTV7ee51221[8]), 8,12},
+ {&(_ZTV7ee51221[11]), 11,12},
+ {&(_tg__ZTV6dd1221__7ee51221[3]), 3,3},
+ {&(_tg__ZTV5cc221__6dd1221__7ee51221[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee51221[];
+extern VTBL_ENTRY _ZTV7ee51221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51221[];
+Class_Descriptor cd_ee51221 = { "ee51221", // class name
+ bases_ee51221, 4,
+ &(vtc_ee51221[0]), // expected_vtbl_contents
+ &(vtt_ee51221[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee51221),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51221),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51221),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 ee61221 : dd1221 {
+ int e;
+ virtual void foo(); // _ZN7ee612213fooEv
+ virtual void bar(); // _ZN7ee612213barEv
+ ~ee61221(); // tgen
+ ee61221(); // tgen
+};
+//SIG(1 ee61221) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} v1 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee61221 ::foo(){vfunc_called(this, "_ZN7ee612213fooEv");}
+void ee61221 ::bar(){vfunc_called(this, "_ZN7ee612213barEv");}
+ee61221 ::~ee61221(){ note_dtor("ee61221", this);} // tgen
+ee61221 ::ee61221(){ note_ctor("ee61221", this);} // tgen
+
+static void Test_ee61221()
+{
+ extern Class_Descriptor cd_ee61221;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee61221, buf);
+ ee61221 *dp, &lv = *(dp=new (buf) ee61221());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee61221)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61221)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc221*), ABISELECT(16,12), "ee61221");
+ check_base_class_offset(lv, (bb21*)(cc221*), ABISELECT(16,12), "ee61221");
+ check_base_class_offset(lv, (cc221*)(dd1221*), ABISELECT(16,12), "ee61221");
+ check_base_class_offset(lv, (dd1221*), 0, "ee61221");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61221.e");
+ test_class_info(&lv, &cd_ee61221);
+ dp->~ee61221();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61221(Test_ee61221, "ee61221", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee61221C1Ev();
+extern void _ZN7ee61221D1Ev();
+Name_Map name_map_ee61221[] = {
+ NSPAIR(_ZN7ee61221C1Ev),
+ NSPAIR(_ZN7ee61221D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc221;
+extern VTBL_ENTRY _ZTI5cc221[];
+extern VTBL_ENTRY _ZTV5cc221[];
+extern Class_Descriptor cd_dd1221;
+extern VTBL_ENTRY _ZTI6dd1221[];
+extern VTBL_ENTRY _ZTV6dd1221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1221[];
+static Base_Class bases_ee61221[] = {
+ // 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_bb21, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc221, 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_dd1221, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61221[];
+extern void _ZN7ee612213fooEv();
+extern void _ZN7ee612213barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee612213fooEv,_ZTv0_n12_N7ee612213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee612213fooEv,_ZThn12_N7ee612213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61221[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61221[0]),
+ (VTBL_ENTRY)&_ZN7ee612213fooEv,
+ (VTBL_ENTRY)&_ZN7ee612213barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61221[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee612213fooEv,_ZTv0_n12_N7ee612213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee61221[];
+static VTBL_ENTRY _tg__ZTV6dd1221__7ee61221[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1221[0]),
+};
+extern void _ZN5cc2213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc221__6dd1221__7ee61221[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1221[0]),
+ (VTBL_ENTRY)&_ZN5cc2213fooEv,
+};
+static VTT_ENTRY vtt_ee61221[] = {
+ {&(_ZTV7ee61221[3]), 3,9},
+ {&(_tg__ZTV6dd1221__7ee61221[3]), 3,3},
+ {&(_tg__ZTV5cc221__6dd1221__7ee61221[3]), 3,4},
+ {&(_ZTV7ee61221[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee61221[];
+extern VTBL_ENTRY _ZTV7ee61221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61221[];
+static VTBL_ENTRY alt_thunk_names521[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee612213fooEv,_ZTv0_n12_N7ee612213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee612213fooEv,_ZThn12_N7ee612213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61221 = { "ee61221", // class name
+ bases_ee61221, 4,
+ &(vtc_ee61221[0]), // expected_vtbl_contents
+ &(vtt_ee61221[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee61221),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61221),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61221),4, //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 ee71221 : virtual dd1221 {
+ int e;
+ virtual void foo(); // _ZN7ee712213fooEv
+ virtual void bar(); // _ZN7ee712213barEv
+ ~ee71221(); // tgen
+ ee71221(); // tgen
+};
+//SIG(1 ee71221) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} v1 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee71221 ::foo(){vfunc_called(this, "_ZN7ee712213fooEv");}
+void ee71221 ::bar(){vfunc_called(this, "_ZN7ee712213barEv");}
+ee71221 ::~ee71221(){ note_dtor("ee71221", this);} // tgen
+ee71221 ::ee71221(){ note_ctor("ee71221", this);} // tgen
+
+static void Test_ee71221()
+{
+ extern Class_Descriptor cd_ee71221;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee71221, buf);
+ ee71221 *dp, &lv = *(dp=new (buf) ee71221());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee71221)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71221)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc221*), ABISELECT(32,16), "ee71221");
+ check_base_class_offset(lv, (bb21*)(cc221*), ABISELECT(32,16), "ee71221");
+ check_base_class_offset(lv, (cc221*)(dd1221*), ABISELECT(32,16), "ee71221");
+ check_base_class_offset(lv, (dd1221*), ABISELECT(16,8), "ee71221");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71221.e");
+ test_class_info(&lv, &cd_ee71221);
+ dp->~ee71221();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71221(Test_ee71221, "ee71221", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee71221C1Ev();
+extern void _ZN7ee71221D1Ev();
+Name_Map name_map_ee71221[] = {
+ NSPAIR(_ZN7ee71221C1Ev),
+ NSPAIR(_ZN7ee71221D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc221;
+extern VTBL_ENTRY _ZTI5cc221[];
+extern VTBL_ENTRY _ZTV5cc221[];
+extern Class_Descriptor cd_dd1221;
+extern VTBL_ENTRY _ZTI6dd1221[];
+extern VTBL_ENTRY _ZTV6dd1221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1221[];
+static Base_Class bases_ee71221[] = {
+ // 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_bb21, 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_cc221, 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_dd1221, 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 _ZTI7ee71221[];
+extern void _ZN7ee712213fooEv();
+extern void _ZN7ee712213barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee712213fooEv,_ZTv0_n12_N7ee712213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee712213fooEv,_ZThn16_N7ee712213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71221[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71221[0]),
+ (VTBL_ENTRY)&_ZN7ee712213fooEv,
+ (VTBL_ENTRY)&_ZN7ee712213barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71221[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71221[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee712213fooEv,_ZTv0_n12_N7ee712213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee71221[];
+static VTBL_ENTRY _tg__ZTV6dd1221__7ee71221[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1221[0]),
+};
+extern void _ZN5cc2213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc221__6dd1221__7ee71221[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1221[0]),
+ (VTBL_ENTRY)&_ZN5cc2213fooEv,
+};
+static VTT_ENTRY vtt_ee71221[] = {
+ {&(_ZTV7ee71221[4]), 4,13},
+ {&(_ZTV7ee71221[9]), 9,13},
+ {&(_ZTV7ee71221[12]), 12,13},
+ {&(_tg__ZTV6dd1221__7ee71221[3]), 3,3},
+ {&(_tg__ZTV5cc221__6dd1221__7ee71221[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee71221[];
+extern VTBL_ENTRY _ZTV7ee71221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71221[];
+static VTBL_ENTRY alt_thunk_names522[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee712213fooEv,_ZTv0_n12_N7ee712213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee712213fooEv,_ZThn16_N7ee712213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71221 = { "ee71221", // class name
+ bases_ee71221, 4,
+ &(vtc_ee71221[0]), // expected_vtbl_contents
+ &(vtt_ee71221[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee71221),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71221),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71221),5, //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 dd2221 : cc221 {
+ int d;
+ virtual void foo(); // _ZN6dd22213fooEv
+ ~dd2221(); // tgen
+ dd2221(); // tgen
+};
+//SIG(-1 dd2221) C1{ BC2{ BC3{ BC4{ v1 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void dd2221 ::foo(){vfunc_called(this, "_ZN6dd22213fooEv");}
+dd2221 ::~dd2221(){ note_dtor("dd2221", this);} // tgen
+dd2221 ::dd2221(){ note_ctor("dd2221", this);} // tgen
+
+static void Test_dd2221()
+{
+ extern Class_Descriptor cd_dd2221;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd2221, buf);
+ dd2221 *dp, &lv = *(dp=new (buf) dd2221());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd2221)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2221)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc221*), 0, "dd2221");
+ check_base_class_offset(lv, (bb21*)(cc221*), 0, "dd2221");
+ check_base_class_offset(lv, (cc221*), 0, "dd2221");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd2221.d");
+ test_class_info(&lv, &cd_dd2221);
+ dp->~dd2221();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2221(Test_dd2221, "dd2221", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd2221C1Ev();
+extern void _ZN6dd2221D1Ev();
+Name_Map name_map_dd2221[] = {
+ NSPAIR(_ZN6dd2221C1Ev),
+ NSPAIR(_ZN6dd2221D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc221;
+extern VTBL_ENTRY _ZTI5cc221[];
+extern VTBL_ENTRY _ZTV5cc221[];
+static Base_Class bases_dd2221[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc221, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI6dd2221[];
+extern void _ZN6dd22213fooEv();
+static VTBL_ENTRY vtc_dd2221[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2221[0]),
+ (VTBL_ENTRY)&_ZN6dd22213fooEv,
+};
+extern VTBL_ENTRY _ZTI6dd2221[];
+extern VTBL_ENTRY _ZTV6dd2221[];
+Class_Descriptor cd_dd2221 = { "dd2221", // class name
+ bases_dd2221, 3,
+ &(vtc_dd2221[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd2221),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2221),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 ee02221 : dd2221 {
+ int e;
+ ~ee02221(); // tgen
+ ee02221(); // tgen
+};
+//SIG(1 ee02221) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} v1 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee02221 ::~ee02221(){ note_dtor("ee02221", this);} // tgen
+ee02221 ::ee02221(){ note_ctor("ee02221", this);} // tgen
+
+static void Test_ee02221()
+{
+ extern Class_Descriptor cd_ee02221;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee02221, buf);
+ ee02221 *dp, &lv = *(dp=new (buf) ee02221());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee02221)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02221)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc221*)(dd2221*), 0, "ee02221");
+ check_base_class_offset(lv, (bb21*)(cc221*)(dd2221*), 0, "ee02221");
+ check_base_class_offset(lv, (cc221*)(dd2221*), 0, "ee02221");
+ check_base_class_offset(lv, (dd2221*), 0, "ee02221");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee02221.e");
+ test_class_info(&lv, &cd_ee02221);
+ dp->~ee02221();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02221(Test_ee02221, "ee02221", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee02221C1Ev();
+extern void _ZN7ee02221D1Ev();
+Name_Map name_map_ee02221[] = {
+ NSPAIR(_ZN7ee02221C1Ev),
+ NSPAIR(_ZN7ee02221D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc221;
+extern VTBL_ENTRY _ZTI5cc221[];
+extern VTBL_ENTRY _ZTV5cc221[];
+extern Class_Descriptor cd_dd2221;
+extern VTBL_ENTRY _ZTI6dd2221[];
+extern VTBL_ENTRY _ZTV6dd2221[];
+static Base_Class bases_ee02221[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc221, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2221, 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 _ZTI7ee02221[];
+extern void _ZN6dd22213fooEv();
+static VTBL_ENTRY vtc_ee02221[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02221[0]),
+ (VTBL_ENTRY)&_ZN6dd22213fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee02221[];
+extern VTBL_ENTRY _ZTV7ee02221[];
+Class_Descriptor cd_ee02221 = { "ee02221", // class name
+ bases_ee02221, 4,
+ &(vtc_ee02221[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee02221),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02221),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 ee12221 : virtual dd2221 {
+ int e;
+ ~ee12221(); // tgen
+ ee12221(); // tgen
+};
+//SIG(1 ee12221) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} v1 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee12221 ::~ee12221(){ note_dtor("ee12221", this);} // tgen
+ee12221 ::ee12221(){ note_ctor("ee12221", this);} // tgen
+
+static void Test_ee12221()
+{
+ extern Class_Descriptor cd_ee12221;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee12221, buf);
+ ee12221 *dp, &lv = *(dp=new (buf) ee12221());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee12221)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12221)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc221*)(dd2221*), ABISELECT(16,8), "ee12221");
+ check_base_class_offset(lv, (bb21*)(cc221*)(dd2221*), ABISELECT(16,8), "ee12221");
+ check_base_class_offset(lv, (cc221*)(dd2221*), ABISELECT(16,8), "ee12221");
+ check_base_class_offset(lv, (dd2221*), ABISELECT(16,8), "ee12221");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12221.e");
+ test_class_info(&lv, &cd_ee12221);
+ dp->~ee12221();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12221(Test_ee12221, "ee12221", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee12221C1Ev();
+extern void _ZN7ee12221D1Ev();
+Name_Map name_map_ee12221[] = {
+ NSPAIR(_ZN7ee12221C1Ev),
+ NSPAIR(_ZN7ee12221D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc221;
+extern VTBL_ENTRY _ZTI5cc221[];
+extern VTBL_ENTRY _ZTV5cc221[];
+extern Class_Descriptor cd_dd2221;
+extern VTBL_ENTRY _ZTI6dd2221[];
+extern VTBL_ENTRY _ZTV6dd2221[];
+static Base_Class bases_ee12221[] = {
+ // 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_bb21, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc221, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2221, 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 _ZTI7ee12221[];
+extern void _ZN6dd22213fooEv();
+static VTBL_ENTRY vtc_ee12221[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12221[0]),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12221[0]),
+ (VTBL_ENTRY)&_ZN6dd22213fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee12221[];
+static VTT_ENTRY vtt_ee12221[] = {
+ {&(_ZTV7ee12221[3]), 3,7},
+ {&(_ZTV7ee12221[6]), 6,7},
+};
+extern VTBL_ENTRY _ZTI7ee12221[];
+extern VTBL_ENTRY _ZTV7ee12221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12221[];
+Class_Descriptor cd_ee12221 = { "ee12221", // class name
+ bases_ee12221, 4,
+ &(vtc_ee12221[0]), // expected_vtbl_contents
+ &(vtt_ee12221[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee12221),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12221),7, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12221),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 ee22221 : dd2221 {
+ int e;
+ virtual void foo(); // _ZN7ee222213fooEv
+ ~ee22221(); // tgen
+ ee22221(); // tgen
+};
+//SIG(1 ee22221) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} v1 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee22221 ::foo(){vfunc_called(this, "_ZN7ee222213fooEv");}
+ee22221 ::~ee22221(){ note_dtor("ee22221", this);} // tgen
+ee22221 ::ee22221(){ note_ctor("ee22221", this);} // tgen
+
+static void Test_ee22221()
+{
+ extern Class_Descriptor cd_ee22221;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee22221, buf);
+ ee22221 *dp, &lv = *(dp=new (buf) ee22221());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee22221)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22221)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc221*)(dd2221*), 0, "ee22221");
+ check_base_class_offset(lv, (bb21*)(cc221*)(dd2221*), 0, "ee22221");
+ check_base_class_offset(lv, (cc221*)(dd2221*), 0, "ee22221");
+ check_base_class_offset(lv, (dd2221*), 0, "ee22221");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee22221.e");
+ test_class_info(&lv, &cd_ee22221);
+ dp->~ee22221();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22221(Test_ee22221, "ee22221", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee22221C1Ev();
+extern void _ZN7ee22221D1Ev();
+Name_Map name_map_ee22221[] = {
+ NSPAIR(_ZN7ee22221C1Ev),
+ NSPAIR(_ZN7ee22221D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc221;
+extern VTBL_ENTRY _ZTI5cc221[];
+extern VTBL_ENTRY _ZTV5cc221[];
+extern Class_Descriptor cd_dd2221;
+extern VTBL_ENTRY _ZTI6dd2221[];
+extern VTBL_ENTRY _ZTV6dd2221[];
+static Base_Class bases_ee22221[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc221, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2221, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee22221[];
+extern void _ZN7ee222213fooEv();
+static VTBL_ENTRY vtc_ee22221[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22221[0]),
+ (VTBL_ENTRY)&_ZN7ee222213fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee22221[];
+extern VTBL_ENTRY _ZTV7ee22221[];
+Class_Descriptor cd_ee22221 = { "ee22221", // class name
+ bases_ee22221, 4,
+ &(vtc_ee22221[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee22221),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22221),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 ee32221 : virtual dd2221 {
+ int e;
+ virtual void foo(); // _ZN7ee322213fooEv
+ ~ee32221(); // tgen
+ ee32221(); // tgen
+};
+//SIG(1 ee32221) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} v1 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee32221 ::foo(){vfunc_called(this, "_ZN7ee322213fooEv");}
+ee32221 ::~ee32221(){ note_dtor("ee32221", this);} // tgen
+ee32221 ::ee32221(){ note_ctor("ee32221", this);} // tgen
+
+static void Test_ee32221()
+{
+ extern Class_Descriptor cd_ee32221;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee32221, buf);
+ ee32221 *dp, &lv = *(dp=new (buf) ee32221());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee32221)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32221)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc221*)(dd2221*), ABISELECT(16,8), "ee32221");
+ check_base_class_offset(lv, (bb21*)(cc221*)(dd2221*), ABISELECT(16,8), "ee32221");
+ check_base_class_offset(lv, (cc221*)(dd2221*), ABISELECT(16,8), "ee32221");
+ check_base_class_offset(lv, (dd2221*), ABISELECT(16,8), "ee32221");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32221.e");
+ test_class_info(&lv, &cd_ee32221);
+ dp->~ee32221();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32221(Test_ee32221, "ee32221", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee32221C1Ev();
+extern void _ZN7ee32221D1Ev();
+Name_Map name_map_ee32221[] = {
+ NSPAIR(_ZN7ee32221C1Ev),
+ NSPAIR(_ZN7ee32221D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc221;
+extern VTBL_ENTRY _ZTI5cc221[];
+extern VTBL_ENTRY _ZTV5cc221[];
+extern Class_Descriptor cd_dd2221;
+extern VTBL_ENTRY _ZTI6dd2221[];
+extern VTBL_ENTRY _ZTV6dd2221[];
+static Base_Class bases_ee32221[] = {
+ // 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_bb21, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc221, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2221, 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 _ZTI7ee32221[];
+extern void _ZN7ee322213fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee322213fooEv,_ZTv0_n12_N7ee322213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee322213fooEv,_ZThn8_N7ee322213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee32221[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32221[0]),
+ (VTBL_ENTRY)&_ZN7ee322213fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32221[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee322213fooEv,_ZTv0_n12_N7ee322213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee32221[];
+static VTT_ENTRY vtt_ee32221[] = {
+ {&(_ZTV7ee32221[3]), 3,8},
+ {&(_ZTV7ee32221[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee32221[];
+extern VTBL_ENTRY _ZTV7ee32221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32221[];
+static VTBL_ENTRY alt_thunk_names523[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee322213fooEv,_ZTv0_n12_N7ee322213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee322213fooEv,_ZThn8_N7ee322213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32221 = { "ee32221", // class name
+ bases_ee32221, 4,
+ &(vtc_ee32221[0]), // expected_vtbl_contents
+ &(vtt_ee32221[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee32221),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32221),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32221),2, //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 ee42221 : dd2221 {
+ int e;
+ virtual void bar(); // _ZN7ee422213barEv
+ ~ee42221(); // tgen
+ ee42221(); // tgen
+};
+//SIG(1 ee42221) C1{ BC2{ BC3{ BC4{ BC5{ v2 Fi} v2 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee42221 ::bar(){vfunc_called(this, "_ZN7ee422213barEv");}
+ee42221 ::~ee42221(){ note_dtor("ee42221", this);} // tgen
+ee42221 ::ee42221(){ note_ctor("ee42221", this);} // tgen
+
+static void Test_ee42221()
+{
+ extern Class_Descriptor cd_ee42221;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee42221, buf);
+ ee42221 *dp, &lv = *(dp=new (buf) ee42221());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee42221)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42221)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc221*)(dd2221*), 0, "ee42221");
+ check_base_class_offset(lv, (bb21*)(cc221*)(dd2221*), 0, "ee42221");
+ check_base_class_offset(lv, (cc221*)(dd2221*), 0, "ee42221");
+ check_base_class_offset(lv, (dd2221*), 0, "ee42221");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee42221.e");
+ test_class_info(&lv, &cd_ee42221);
+ dp->~ee42221();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42221(Test_ee42221, "ee42221", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee42221C1Ev();
+extern void _ZN7ee42221D1Ev();
+Name_Map name_map_ee42221[] = {
+ NSPAIR(_ZN7ee42221C1Ev),
+ NSPAIR(_ZN7ee42221D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc221;
+extern VTBL_ENTRY _ZTI5cc221[];
+extern VTBL_ENTRY _ZTV5cc221[];
+extern Class_Descriptor cd_dd2221;
+extern VTBL_ENTRY _ZTI6dd2221[];
+extern VTBL_ENTRY _ZTV6dd2221[];
+static Base_Class bases_ee42221[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc221, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2221, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee42221[];
+extern void _ZN6dd22213fooEv();
+extern void _ZN7ee422213barEv();
+static VTBL_ENTRY vtc_ee42221[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42221[0]),
+ (VTBL_ENTRY)&_ZN6dd22213fooEv,
+ (VTBL_ENTRY)&_ZN7ee422213barEv,
+};
+extern VTBL_ENTRY _ZTI7ee42221[];
+extern VTBL_ENTRY _ZTV7ee42221[];
+Class_Descriptor cd_ee42221 = { "ee42221", // class name
+ bases_ee42221, 4,
+ &(vtc_ee42221[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee42221),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42221),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 ee52221 : virtual dd2221 {
+ int e;
+ virtual void bar(); // _ZN7ee522213barEv
+ ~ee52221(); // tgen
+ ee52221(); // tgen
+};
+//SIG(1 ee52221) C1{ VBC2{ BC3{ BC4{ BC5{ v2 Fi} v2 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee52221 ::bar(){vfunc_called(this, "_ZN7ee522213barEv");}
+ee52221 ::~ee52221(){ note_dtor("ee52221", this);} // tgen
+ee52221 ::ee52221(){ note_ctor("ee52221", this);} // tgen
+
+static void Test_ee52221()
+{
+ extern Class_Descriptor cd_ee52221;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee52221, buf);
+ ee52221 *dp, &lv = *(dp=new (buf) ee52221());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee52221)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52221)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc221*)(dd2221*), ABISELECT(16,8), "ee52221");
+ check_base_class_offset(lv, (bb21*)(cc221*)(dd2221*), ABISELECT(16,8), "ee52221");
+ check_base_class_offset(lv, (cc221*)(dd2221*), ABISELECT(16,8), "ee52221");
+ check_base_class_offset(lv, (dd2221*), ABISELECT(16,8), "ee52221");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52221.e");
+ test_class_info(&lv, &cd_ee52221);
+ dp->~ee52221();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52221(Test_ee52221, "ee52221", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee52221C1Ev();
+extern void _ZN7ee52221D1Ev();
+Name_Map name_map_ee52221[] = {
+ NSPAIR(_ZN7ee52221C1Ev),
+ NSPAIR(_ZN7ee52221D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc221;
+extern VTBL_ENTRY _ZTI5cc221[];
+extern VTBL_ENTRY _ZTV5cc221[];
+extern Class_Descriptor cd_dd2221;
+extern VTBL_ENTRY _ZTI6dd2221[];
+extern VTBL_ENTRY _ZTV6dd2221[];
+static Base_Class bases_ee52221[] = {
+ // 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_bb21, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc221, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2221, 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 _ZTI7ee52221[];
+extern void _ZN7ee522213barEv();
+extern void _ZN6dd22213fooEv();
+static VTBL_ENTRY vtc_ee52221[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52221[0]),
+ (VTBL_ENTRY)&_ZN7ee522213barEv,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52221[0]),
+ (VTBL_ENTRY)&_ZN6dd22213fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee52221[];
+static VTT_ENTRY vtt_ee52221[] = {
+ {&(_ZTV7ee52221[3]), 3,8},
+ {&(_ZTV7ee52221[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee52221[];
+extern VTBL_ENTRY _ZTV7ee52221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52221[];
+Class_Descriptor cd_ee52221 = { "ee52221", // class name
+ bases_ee52221, 4,
+ &(vtc_ee52221[0]), // expected_vtbl_contents
+ &(vtt_ee52221[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee52221),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52221),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52221),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 ee62221 : dd2221 {
+ int e;
+ virtual void foo(); // _ZN7ee622213fooEv
+ virtual void bar(); // _ZN7ee622213barEv
+ ~ee62221(); // tgen
+ ee62221(); // tgen
+};
+//SIG(1 ee62221) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} v1 Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62221 ::foo(){vfunc_called(this, "_ZN7ee622213fooEv");}
+void ee62221 ::bar(){vfunc_called(this, "_ZN7ee622213barEv");}
+ee62221 ::~ee62221(){ note_dtor("ee62221", this);} // tgen
+ee62221 ::ee62221(){ note_ctor("ee62221", this);} // tgen
+
+static void Test_ee62221()
+{
+ extern Class_Descriptor cd_ee62221;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee62221, buf);
+ ee62221 *dp, &lv = *(dp=new (buf) ee62221());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee62221)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62221)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc221*)(dd2221*), 0, "ee62221");
+ check_base_class_offset(lv, (bb21*)(cc221*)(dd2221*), 0, "ee62221");
+ check_base_class_offset(lv, (cc221*)(dd2221*), 0, "ee62221");
+ check_base_class_offset(lv, (dd2221*), 0, "ee62221");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee62221.e");
+ test_class_info(&lv, &cd_ee62221);
+ dp->~ee62221();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62221(Test_ee62221, "ee62221", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee62221C1Ev();
+extern void _ZN7ee62221D1Ev();
+Name_Map name_map_ee62221[] = {
+ NSPAIR(_ZN7ee62221C1Ev),
+ NSPAIR(_ZN7ee62221D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc221;
+extern VTBL_ENTRY _ZTI5cc221[];
+extern VTBL_ENTRY _ZTV5cc221[];
+extern Class_Descriptor cd_dd2221;
+extern VTBL_ENTRY _ZTI6dd2221[];
+extern VTBL_ENTRY _ZTV6dd2221[];
+static Base_Class bases_ee62221[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc221, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2221, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee62221[];
+extern void _ZN7ee622213fooEv();
+extern void _ZN7ee622213barEv();
+static VTBL_ENTRY vtc_ee62221[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62221[0]),
+ (VTBL_ENTRY)&_ZN7ee622213fooEv,
+ (VTBL_ENTRY)&_ZN7ee622213barEv,
+};
+extern VTBL_ENTRY _ZTI7ee62221[];
+extern VTBL_ENTRY _ZTV7ee62221[];
+Class_Descriptor cd_ee62221 = { "ee62221", // class name
+ bases_ee62221, 4,
+ &(vtc_ee62221[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee62221),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62221),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 ee72221 : virtual dd2221 {
+ int e;
+ virtual void foo(); // _ZN7ee722213fooEv
+ virtual void bar(); // _ZN7ee722213barEv
+ ~ee72221(); // tgen
+ ee72221(); // tgen
+};
+//SIG(1 ee72221) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} v1 Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72221 ::foo(){vfunc_called(this, "_ZN7ee722213fooEv");}
+void ee72221 ::bar(){vfunc_called(this, "_ZN7ee722213barEv");}
+ee72221 ::~ee72221(){ note_dtor("ee72221", this);} // tgen
+ee72221 ::ee72221(){ note_ctor("ee72221", this);} // tgen
+
+static void Test_ee72221()
+{
+ extern Class_Descriptor cd_ee72221;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee72221, buf);
+ ee72221 *dp, &lv = *(dp=new (buf) ee72221());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee72221)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72221)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc221*)(dd2221*), ABISELECT(16,8), "ee72221");
+ check_base_class_offset(lv, (bb21*)(cc221*)(dd2221*), ABISELECT(16,8), "ee72221");
+ check_base_class_offset(lv, (cc221*)(dd2221*), ABISELECT(16,8), "ee72221");
+ check_base_class_offset(lv, (dd2221*), ABISELECT(16,8), "ee72221");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72221.e");
+ test_class_info(&lv, &cd_ee72221);
+ dp->~ee72221();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72221(Test_ee72221, "ee72221", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee72221C1Ev();
+extern void _ZN7ee72221D1Ev();
+Name_Map name_map_ee72221[] = {
+ NSPAIR(_ZN7ee72221C1Ev),
+ NSPAIR(_ZN7ee72221D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc221;
+extern VTBL_ENTRY _ZTI5cc221[];
+extern VTBL_ENTRY _ZTV5cc221[];
+extern Class_Descriptor cd_dd2221;
+extern VTBL_ENTRY _ZTI6dd2221[];
+extern VTBL_ENTRY _ZTV6dd2221[];
+static Base_Class bases_ee72221[] = {
+ // 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_bb21, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc221, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2221, 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 _ZTI7ee72221[];
+extern void _ZN7ee722213fooEv();
+extern void _ZN7ee722213barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee722213fooEv,_ZTv0_n12_N7ee722213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee722213fooEv,_ZThn8_N7ee722213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72221[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72221[0]),
+ (VTBL_ENTRY)&_ZN7ee722213fooEv,
+ (VTBL_ENTRY)&_ZN7ee722213barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72221[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee722213fooEv,_ZTv0_n12_N7ee722213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee72221[];
+static VTT_ENTRY vtt_ee72221[] = {
+ {&(_ZTV7ee72221[3]), 3,9},
+ {&(_ZTV7ee72221[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee72221[];
+extern VTBL_ENTRY _ZTV7ee72221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72221[];
+static VTBL_ENTRY alt_thunk_names524[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee722213fooEv,_ZTv0_n12_N7ee722213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee722213fooEv,_ZThn8_N7ee722213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72221 = { "ee72221", // class name
+ bases_ee72221, 4,
+ &(vtc_ee72221[0]), // expected_vtbl_contents
+ &(vtt_ee72221[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee72221),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72221),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72221),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names524,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd3221 : virtual cc221 {
+ int d;
+ virtual void foo(); // _ZN6dd32213fooEv
+ ~dd3221(); // tgen
+ dd3221(); // tgen
+};
+//SIG(-1 dd3221) C1{ VBC2{ BC3{ BC4{ v1 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void dd3221 ::foo(){vfunc_called(this, "_ZN6dd32213fooEv");}
+dd3221 ::~dd3221(){ note_dtor("dd3221", this);} // tgen
+dd3221 ::dd3221(){ note_ctor("dd3221", this);} // tgen
+
+static void Test_dd3221()
+{
+ extern Class_Descriptor cd_dd3221;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd3221, buf);
+ dd3221 *dp, &lv = *(dp=new (buf) dd3221());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd3221)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3221)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc221*), ABISELECT(16,8), "dd3221");
+ check_base_class_offset(lv, (bb21*)(cc221*), ABISELECT(16,8), "dd3221");
+ check_base_class_offset(lv, (cc221*), ABISELECT(16,8), "dd3221");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3221.d");
+ test_class_info(&lv, &cd_dd3221);
+ dp->~dd3221();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3221(Test_dd3221, "dd3221", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd3221C1Ev();
+extern void _ZN6dd3221D1Ev();
+Name_Map name_map_dd3221[] = {
+ NSPAIR(_ZN6dd3221C1Ev),
+ NSPAIR(_ZN6dd3221D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc221;
+extern VTBL_ENTRY _ZTI5cc221[];
+extern VTBL_ENTRY _ZTV5cc221[];
+static Base_Class bases_dd3221[] = {
+ // 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_bb21, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc221, 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 _ZTI6dd3221[];
+extern void _ZN6dd32213fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd32213fooEv,_ZTv0_n12_N6dd32213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32213fooEv,_ZThn8_N6dd32213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd3221[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3221[0]),
+ (VTBL_ENTRY)&_ZN6dd32213fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3221[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32213fooEv,_ZTv0_n12_N6dd32213fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd3221[];
+static VTT_ENTRY vtt_dd3221[] = {
+ {&(_ZTV6dd3221[3]), 3,8},
+ {&(_ZTV6dd3221[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI6dd3221[];
+extern VTBL_ENTRY _ZTV6dd3221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3221[];
+static VTBL_ENTRY alt_thunk_names525[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32213fooEv,_ZTv0_n12_N6dd32213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32213fooEv,_ZThn8_N6dd32213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3221 = { "dd3221", // class name
+ bases_dd3221, 3,
+ &(vtc_dd3221[0]), // expected_vtbl_contents
+ &(vtt_dd3221[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd3221),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3221),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3221),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names525,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03221 : dd3221 {
+ int e;
+ ~ee03221(); // tgen
+ ee03221(); // tgen
+};
+//SIG(1 ee03221) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} v1 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee03221 ::~ee03221(){ note_dtor("ee03221", this);} // tgen
+ee03221 ::ee03221(){ note_ctor("ee03221", this);} // tgen
+
+static void Test_ee03221()
+{
+ extern Class_Descriptor cd_ee03221;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee03221, buf);
+ ee03221 *dp, &lv = *(dp=new (buf) ee03221());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee03221)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03221)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc221*), ABISELECT(16,12), "ee03221");
+ check_base_class_offset(lv, (bb21*)(cc221*), ABISELECT(16,12), "ee03221");
+ check_base_class_offset(lv, (cc221*)(dd3221*), ABISELECT(16,12), "ee03221");
+ check_base_class_offset(lv, (dd3221*), 0, "ee03221");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03221.e");
+ test_class_info(&lv, &cd_ee03221);
+ dp->~ee03221();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03221(Test_ee03221, "ee03221", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee03221C1Ev();
+extern void _ZN7ee03221D1Ev();
+Name_Map name_map_ee03221[] = {
+ NSPAIR(_ZN7ee03221C1Ev),
+ NSPAIR(_ZN7ee03221D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc221;
+extern VTBL_ENTRY _ZTI5cc221[];
+extern VTBL_ENTRY _ZTV5cc221[];
+extern Class_Descriptor cd_dd3221;
+extern VTBL_ENTRY _ZTI6dd3221[];
+extern VTBL_ENTRY _ZTV6dd3221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3221[];
+static Base_Class bases_ee03221[] = {
+ // 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_bb21, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc221, 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_dd3221, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03221[];
+extern void _ZN6dd32213fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd32213fooEv,_ZTv0_n12_N6dd32213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32213fooEv,_ZThn12_N6dd32213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee03221[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03221[0]),
+ (VTBL_ENTRY)&_ZN6dd32213fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03221[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32213fooEv,_ZTv0_n12_N6dd32213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee03221[];
+extern void _ZN6dd32213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3221__7ee03221[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3221[0]),
+ (VTBL_ENTRY)&_ZN6dd32213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32213fooEv,_ZTv0_n12_N6dd32213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32213fooEv,_ZThn12_N6dd32213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc221__6dd3221__7ee03221[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3221[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32213fooEv,_ZTv0_n12_N6dd32213fooEv),
+};
+static VTT_ENTRY vtt_ee03221[] = {
+ {&(_ZTV7ee03221[3]), 3,8},
+ {&(_tg__ZTV6dd3221__7ee03221[3]), 3,4},
+ {&(_tg__ZTV5cc221__6dd3221__7ee03221[3]), 3,4},
+ {&(_ZTV7ee03221[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee03221[];
+extern VTBL_ENTRY _ZTV7ee03221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03221[];
+static VTBL_ENTRY alt_thunk_names526[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32213fooEv,_ZTv0_n12_N6dd32213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32213fooEv,_ZThn12_N6dd32213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32213fooEv,_ZThn12_N6dd32213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03221 = { "ee03221", // class name
+ bases_ee03221, 4,
+ &(vtc_ee03221[0]), // expected_vtbl_contents
+ &(vtt_ee03221[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee03221),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03221),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03221),4, //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 ee13221 : virtual dd3221 {
+ int e;
+ ~ee13221(); // tgen
+ ee13221(); // tgen
+};
+//SIG(1 ee13221) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} v1 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee13221 ::~ee13221(){ note_dtor("ee13221", this);} // tgen
+ee13221 ::ee13221(){ note_ctor("ee13221", this);} // tgen
+
+static void Test_ee13221()
+{
+ extern Class_Descriptor cd_ee13221;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee13221, buf);
+ ee13221 *dp, &lv = *(dp=new (buf) ee13221());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee13221)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13221)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc221*), ABISELECT(32,16), "ee13221");
+ check_base_class_offset(lv, (bb21*)(cc221*), ABISELECT(32,16), "ee13221");
+ check_base_class_offset(lv, (cc221*)(dd3221*), ABISELECT(32,16), "ee13221");
+ check_base_class_offset(lv, (dd3221*), ABISELECT(16,8), "ee13221");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13221.e");
+ test_class_info(&lv, &cd_ee13221);
+ dp->~ee13221();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13221(Test_ee13221, "ee13221", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee13221C1Ev();
+extern void _ZN7ee13221D1Ev();
+Name_Map name_map_ee13221[] = {
+ NSPAIR(_ZN7ee13221C1Ev),
+ NSPAIR(_ZN7ee13221D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc221;
+extern VTBL_ENTRY _ZTI5cc221[];
+extern VTBL_ENTRY _ZTV5cc221[];
+extern Class_Descriptor cd_dd3221;
+extern VTBL_ENTRY _ZTI6dd3221[];
+extern VTBL_ENTRY _ZTV6dd3221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3221[];
+static Base_Class bases_ee13221[] = {
+ // 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_bb21, 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_cc221, 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_dd3221, 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 _ZTI7ee13221[];
+extern void _ZN6dd32213fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd32213fooEv,_ZTv0_n12_N6dd32213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32213fooEv,_ZThn8_N6dd32213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee13221[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13221[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13221[0]),
+ (VTBL_ENTRY)&_ZN6dd32213fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13221[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32213fooEv,_ZTv0_n12_N6dd32213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee13221[];
+extern void _ZN6dd32213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3221__7ee13221[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3221[0]),
+ (VTBL_ENTRY)&_ZN6dd32213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32213fooEv,_ZTv0_n12_N6dd32213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32213fooEv,_ZThn8_N6dd32213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc221__6dd3221__7ee13221[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3221[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32213fooEv,_ZTv0_n12_N6dd32213fooEv),
+};
+static VTT_ENTRY vtt_ee13221[] = {
+ {&(_ZTV7ee13221[4]), 4,13},
+ {&(_ZTV7ee13221[8]), 8,13},
+ {&(_ZTV7ee13221[12]), 12,13},
+ {&(_tg__ZTV6dd3221__7ee13221[3]), 3,4},
+ {&(_tg__ZTV5cc221__6dd3221__7ee13221[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee13221[];
+extern VTBL_ENTRY _ZTV7ee13221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13221[];
+static VTBL_ENTRY alt_thunk_names527[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32213fooEv,_ZTv0_n12_N6dd32213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32213fooEv,_ZThn8_N6dd32213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32213fooEv,_ZThn8_N6dd32213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13221 = { "ee13221", // class name
+ bases_ee13221, 4,
+ &(vtc_ee13221[0]), // expected_vtbl_contents
+ &(vtt_ee13221[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee13221),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13221),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13221),5, //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 ee23221 : dd3221 {
+ int e;
+ virtual void foo(); // _ZN7ee232213fooEv
+ ~ee23221(); // tgen
+ ee23221(); // tgen
+};
+//SIG(1 ee23221) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} v1 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee23221 ::foo(){vfunc_called(this, "_ZN7ee232213fooEv");}
+ee23221 ::~ee23221(){ note_dtor("ee23221", this);} // tgen
+ee23221 ::ee23221(){ note_ctor("ee23221", this);} // tgen
+
+static void Test_ee23221()
+{
+ extern Class_Descriptor cd_ee23221;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee23221, buf);
+ ee23221 *dp, &lv = *(dp=new (buf) ee23221());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee23221)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23221)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc221*), ABISELECT(16,12), "ee23221");
+ check_base_class_offset(lv, (bb21*)(cc221*), ABISELECT(16,12), "ee23221");
+ check_base_class_offset(lv, (cc221*)(dd3221*), ABISELECT(16,12), "ee23221");
+ check_base_class_offset(lv, (dd3221*), 0, "ee23221");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23221.e");
+ test_class_info(&lv, &cd_ee23221);
+ dp->~ee23221();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23221(Test_ee23221, "ee23221", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee23221C1Ev();
+extern void _ZN7ee23221D1Ev();
+Name_Map name_map_ee23221[] = {
+ NSPAIR(_ZN7ee23221C1Ev),
+ NSPAIR(_ZN7ee23221D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc221;
+extern VTBL_ENTRY _ZTI5cc221[];
+extern VTBL_ENTRY _ZTV5cc221[];
+extern Class_Descriptor cd_dd3221;
+extern VTBL_ENTRY _ZTI6dd3221[];
+extern VTBL_ENTRY _ZTV6dd3221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3221[];
+static Base_Class bases_ee23221[] = {
+ // 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_bb21, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc221, 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_dd3221, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23221[];
+extern void _ZN7ee232213fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee232213fooEv,_ZTv0_n12_N7ee232213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee232213fooEv,_ZThn12_N7ee232213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee23221[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23221[0]),
+ (VTBL_ENTRY)&_ZN7ee232213fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23221[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee232213fooEv,_ZTv0_n12_N7ee232213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee23221[];
+extern void _ZN6dd32213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3221__7ee23221[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3221[0]),
+ (VTBL_ENTRY)&_ZN6dd32213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32213fooEv,_ZTv0_n12_N6dd32213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32213fooEv,_ZThn12_N6dd32213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc221__6dd3221__7ee23221[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3221[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32213fooEv,_ZTv0_n12_N6dd32213fooEv),
+};
+static VTT_ENTRY vtt_ee23221[] = {
+ {&(_ZTV7ee23221[3]), 3,8},
+ {&(_tg__ZTV6dd3221__7ee23221[3]), 3,4},
+ {&(_tg__ZTV5cc221__6dd3221__7ee23221[3]), 3,4},
+ {&(_ZTV7ee23221[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee23221[];
+extern VTBL_ENTRY _ZTV7ee23221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23221[];
+static VTBL_ENTRY alt_thunk_names528[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32213fooEv,_ZTv0_n12_N6dd32213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32213fooEv,_ZThn12_N6dd32213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee232213fooEv,_ZTv0_n12_N7ee232213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee232213fooEv,_ZThn12_N7ee232213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23221 = { "ee23221", // class name
+ bases_ee23221, 4,
+ &(vtc_ee23221[0]), // expected_vtbl_contents
+ &(vtt_ee23221[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee23221),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23221),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23221),4, //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 ee33221 : virtual dd3221 {
+ int e;
+ virtual void foo(); // _ZN7ee332213fooEv
+ ~ee33221(); // tgen
+ ee33221(); // tgen
+};
+//SIG(1 ee33221) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} v1 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee33221 ::foo(){vfunc_called(this, "_ZN7ee332213fooEv");}
+ee33221 ::~ee33221(){ note_dtor("ee33221", this);} // tgen
+ee33221 ::ee33221(){ note_ctor("ee33221", this);} // tgen
+
+static void Test_ee33221()
+{
+ extern Class_Descriptor cd_ee33221;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee33221, buf);
+ ee33221 *dp, &lv = *(dp=new (buf) ee33221());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee33221)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33221)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc221*), ABISELECT(32,16), "ee33221");
+ check_base_class_offset(lv, (bb21*)(cc221*), ABISELECT(32,16), "ee33221");
+ check_base_class_offset(lv, (cc221*)(dd3221*), ABISELECT(32,16), "ee33221");
+ check_base_class_offset(lv, (dd3221*), ABISELECT(16,8), "ee33221");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33221.e");
+ test_class_info(&lv, &cd_ee33221);
+ dp->~ee33221();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33221(Test_ee33221, "ee33221", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee33221C1Ev();
+extern void _ZN7ee33221D1Ev();
+Name_Map name_map_ee33221[] = {
+ NSPAIR(_ZN7ee33221C1Ev),
+ NSPAIR(_ZN7ee33221D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc221;
+extern VTBL_ENTRY _ZTI5cc221[];
+extern VTBL_ENTRY _ZTV5cc221[];
+extern Class_Descriptor cd_dd3221;
+extern VTBL_ENTRY _ZTI6dd3221[];
+extern VTBL_ENTRY _ZTV6dd3221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3221[];
+static Base_Class bases_ee33221[] = {
+ // 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_bb21, 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_cc221, 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_dd3221, 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 _ZTI7ee33221[];
+extern void _ZN7ee332213fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee332213fooEv,_ZTv0_n16_N7ee332213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee332213fooEv,_ZThn8_N7ee332213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee332213fooEv,_ZTv0_n12_N7ee332213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee332213fooEv,_ZThn16_N7ee332213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee33221[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33221[0]),
+ (VTBL_ENTRY)&_ZN7ee332213fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33221[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee332213fooEv,_ZTv0_n16_N7ee332213fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33221[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee332213fooEv,_ZTv0_n12_N7ee332213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee33221[];
+extern void _ZN6dd32213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3221__7ee33221[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3221[0]),
+ (VTBL_ENTRY)&_ZN6dd32213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32213fooEv,_ZTv0_n12_N6dd32213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32213fooEv,_ZThn8_N6dd32213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc221__6dd3221__7ee33221[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3221[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32213fooEv,_ZTv0_n12_N6dd32213fooEv),
+};
+static VTT_ENTRY vtt_ee33221[] = {
+ {&(_ZTV7ee33221[4]), 4,14},
+ {&(_ZTV7ee33221[9]), 9,14},
+ {&(_ZTV7ee33221[13]), 13,14},
+ {&(_tg__ZTV6dd3221__7ee33221[3]), 3,4},
+ {&(_tg__ZTV5cc221__6dd3221__7ee33221[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee33221[];
+extern VTBL_ENTRY _ZTV7ee33221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33221[];
+static VTBL_ENTRY alt_thunk_names529[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32213fooEv,_ZTv0_n12_N6dd32213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32213fooEv,_ZThn8_N6dd32213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee332213fooEv,_ZTv0_n12_N7ee332213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee332213fooEv,_ZThn16_N7ee332213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee332213fooEv,_ZTv0_n16_N7ee332213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee332213fooEv,_ZThn8_N7ee332213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33221 = { "ee33221", // class name
+ bases_ee33221, 4,
+ &(vtc_ee33221[0]), // expected_vtbl_contents
+ &(vtt_ee33221[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee33221),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33221),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33221),5, //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 ee43221 : dd3221 {
+ int e;
+ virtual void bar(); // _ZN7ee432213barEv
+ ~ee43221(); // tgen
+ ee43221(); // tgen
+};
+//SIG(1 ee43221) C1{ BC2{ VBC3{ BC4{ BC5{ v2 Fi} v2 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee43221 ::bar(){vfunc_called(this, "_ZN7ee432213barEv");}
+ee43221 ::~ee43221(){ note_dtor("ee43221", this);} // tgen
+ee43221 ::ee43221(){ note_ctor("ee43221", this);} // tgen
+
+static void Test_ee43221()
+{
+ extern Class_Descriptor cd_ee43221;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee43221, buf);
+ ee43221 *dp, &lv = *(dp=new (buf) ee43221());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee43221)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43221)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc221*), ABISELECT(16,12), "ee43221");
+ check_base_class_offset(lv, (bb21*)(cc221*), ABISELECT(16,12), "ee43221");
+ check_base_class_offset(lv, (cc221*)(dd3221*), ABISELECT(16,12), "ee43221");
+ check_base_class_offset(lv, (dd3221*), 0, "ee43221");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43221.e");
+ test_class_info(&lv, &cd_ee43221);
+ dp->~ee43221();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43221(Test_ee43221, "ee43221", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee43221C1Ev();
+extern void _ZN7ee43221D1Ev();
+Name_Map name_map_ee43221[] = {
+ NSPAIR(_ZN7ee43221C1Ev),
+ NSPAIR(_ZN7ee43221D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc221;
+extern VTBL_ENTRY _ZTI5cc221[];
+extern VTBL_ENTRY _ZTV5cc221[];
+extern Class_Descriptor cd_dd3221;
+extern VTBL_ENTRY _ZTI6dd3221[];
+extern VTBL_ENTRY _ZTV6dd3221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3221[];
+static Base_Class bases_ee43221[] = {
+ // 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_bb21, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc221, 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_dd3221, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43221[];
+extern void _ZN6dd32213fooEv();
+extern void _ZN7ee432213barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd32213fooEv,_ZTv0_n12_N6dd32213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32213fooEv,_ZThn12_N6dd32213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43221[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43221[0]),
+ (VTBL_ENTRY)&_ZN6dd32213fooEv,
+ (VTBL_ENTRY)&_ZN7ee432213barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43221[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32213fooEv,_ZTv0_n12_N6dd32213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee43221[];
+extern void _ZN6dd32213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3221__7ee43221[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3221[0]),
+ (VTBL_ENTRY)&_ZN6dd32213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32213fooEv,_ZTv0_n12_N6dd32213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32213fooEv,_ZThn12_N6dd32213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc221__6dd3221__7ee43221[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3221[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32213fooEv,_ZTv0_n12_N6dd32213fooEv),
+};
+static VTT_ENTRY vtt_ee43221[] = {
+ {&(_ZTV7ee43221[3]), 3,9},
+ {&(_tg__ZTV6dd3221__7ee43221[3]), 3,4},
+ {&(_tg__ZTV5cc221__6dd3221__7ee43221[3]), 3,4},
+ {&(_ZTV7ee43221[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee43221[];
+extern VTBL_ENTRY _ZTV7ee43221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43221[];
+static VTBL_ENTRY alt_thunk_names530[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32213fooEv,_ZTv0_n12_N6dd32213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32213fooEv,_ZThn12_N6dd32213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32213fooEv,_ZThn12_N6dd32213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43221 = { "ee43221", // class name
+ bases_ee43221, 4,
+ &(vtc_ee43221[0]), // expected_vtbl_contents
+ &(vtt_ee43221[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee43221),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43221),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43221),4, //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 ee53221 : virtual dd3221 {
+ int e;
+ virtual void bar(); // _ZN7ee532213barEv
+ ~ee53221(); // tgen
+ ee53221(); // tgen
+};
+//SIG(1 ee53221) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 Fi} v2 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee53221 ::bar(){vfunc_called(this, "_ZN7ee532213barEv");}
+ee53221 ::~ee53221(){ note_dtor("ee53221", this);} // tgen
+ee53221 ::ee53221(){ note_ctor("ee53221", this);} // tgen
+
+static void Test_ee53221()
+{
+ extern Class_Descriptor cd_ee53221;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee53221, buf);
+ ee53221 *dp, &lv = *(dp=new (buf) ee53221());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee53221)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53221)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc221*), ABISELECT(32,16), "ee53221");
+ check_base_class_offset(lv, (bb21*)(cc221*), ABISELECT(32,16), "ee53221");
+ check_base_class_offset(lv, (cc221*)(dd3221*), ABISELECT(32,16), "ee53221");
+ check_base_class_offset(lv, (dd3221*), ABISELECT(16,8), "ee53221");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53221.e");
+ test_class_info(&lv, &cd_ee53221);
+ dp->~ee53221();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53221(Test_ee53221, "ee53221", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee53221C1Ev();
+extern void _ZN7ee53221D1Ev();
+Name_Map name_map_ee53221[] = {
+ NSPAIR(_ZN7ee53221C1Ev),
+ NSPAIR(_ZN7ee53221D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc221;
+extern VTBL_ENTRY _ZTI5cc221[];
+extern VTBL_ENTRY _ZTV5cc221[];
+extern Class_Descriptor cd_dd3221;
+extern VTBL_ENTRY _ZTI6dd3221[];
+extern VTBL_ENTRY _ZTV6dd3221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3221[];
+static Base_Class bases_ee53221[] = {
+ // 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_bb21, 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_cc221, 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_dd3221, 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 _ZTI7ee53221[];
+extern void _ZN7ee532213barEv();
+extern void _ZN6dd32213fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd32213fooEv,_ZTv0_n12_N6dd32213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32213fooEv,_ZThn8_N6dd32213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53221[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53221[0]),
+ (VTBL_ENTRY)&_ZN7ee532213barEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53221[0]),
+ (VTBL_ENTRY)&_ZN6dd32213fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53221[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32213fooEv,_ZTv0_n12_N6dd32213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee53221[];
+extern void _ZN6dd32213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3221__7ee53221[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3221[0]),
+ (VTBL_ENTRY)&_ZN6dd32213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32213fooEv,_ZTv0_n12_N6dd32213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32213fooEv,_ZThn8_N6dd32213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc221__6dd3221__7ee53221[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3221[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32213fooEv,_ZTv0_n12_N6dd32213fooEv),
+};
+static VTT_ENTRY vtt_ee53221[] = {
+ {&(_ZTV7ee53221[4]), 4,14},
+ {&(_ZTV7ee53221[9]), 9,14},
+ {&(_ZTV7ee53221[13]), 13,14},
+ {&(_tg__ZTV6dd3221__7ee53221[3]), 3,4},
+ {&(_tg__ZTV5cc221__6dd3221__7ee53221[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee53221[];
+extern VTBL_ENTRY _ZTV7ee53221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53221[];
+static VTBL_ENTRY alt_thunk_names531[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32213fooEv,_ZTv0_n12_N6dd32213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32213fooEv,_ZThn8_N6dd32213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32213fooEv,_ZThn8_N6dd32213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53221 = { "ee53221", // class name
+ bases_ee53221, 4,
+ &(vtc_ee53221[0]), // expected_vtbl_contents
+ &(vtt_ee53221[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee53221),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53221),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53221),5, //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 ee63221 : dd3221 {
+ int e;
+ virtual void foo(); // _ZN7ee632213fooEv
+ virtual void bar(); // _ZN7ee632213barEv
+ ~ee63221(); // tgen
+ ee63221(); // tgen
+};
+//SIG(1 ee63221) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} v1 Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63221 ::foo(){vfunc_called(this, "_ZN7ee632213fooEv");}
+void ee63221 ::bar(){vfunc_called(this, "_ZN7ee632213barEv");}
+ee63221 ::~ee63221(){ note_dtor("ee63221", this);} // tgen
+ee63221 ::ee63221(){ note_ctor("ee63221", this);} // tgen
+
+static void Test_ee63221()
+{
+ extern Class_Descriptor cd_ee63221;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee63221, buf);
+ ee63221 *dp, &lv = *(dp=new (buf) ee63221());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee63221)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63221)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc221*), ABISELECT(16,12), "ee63221");
+ check_base_class_offset(lv, (bb21*)(cc221*), ABISELECT(16,12), "ee63221");
+ check_base_class_offset(lv, (cc221*)(dd3221*), ABISELECT(16,12), "ee63221");
+ check_base_class_offset(lv, (dd3221*), 0, "ee63221");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63221.e");
+ test_class_info(&lv, &cd_ee63221);
+ dp->~ee63221();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63221(Test_ee63221, "ee63221", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee63221C1Ev();
+extern void _ZN7ee63221D1Ev();
+Name_Map name_map_ee63221[] = {
+ NSPAIR(_ZN7ee63221C1Ev),
+ NSPAIR(_ZN7ee63221D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc221;
+extern VTBL_ENTRY _ZTI5cc221[];
+extern VTBL_ENTRY _ZTV5cc221[];
+extern Class_Descriptor cd_dd3221;
+extern VTBL_ENTRY _ZTI6dd3221[];
+extern VTBL_ENTRY _ZTV6dd3221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3221[];
+static Base_Class bases_ee63221[] = {
+ // 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_bb21, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc221, 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_dd3221, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63221[];
+extern void _ZN7ee632213fooEv();
+extern void _ZN7ee632213barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee632213fooEv,_ZTv0_n12_N7ee632213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee632213fooEv,_ZThn12_N7ee632213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63221[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63221[0]),
+ (VTBL_ENTRY)&_ZN7ee632213fooEv,
+ (VTBL_ENTRY)&_ZN7ee632213barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63221[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee632213fooEv,_ZTv0_n12_N7ee632213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee63221[];
+extern void _ZN6dd32213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3221__7ee63221[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3221[0]),
+ (VTBL_ENTRY)&_ZN6dd32213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32213fooEv,_ZTv0_n12_N6dd32213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32213fooEv,_ZThn12_N6dd32213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc221__6dd3221__7ee63221[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3221[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32213fooEv,_ZTv0_n12_N6dd32213fooEv),
+};
+static VTT_ENTRY vtt_ee63221[] = {
+ {&(_ZTV7ee63221[3]), 3,9},
+ {&(_tg__ZTV6dd3221__7ee63221[3]), 3,4},
+ {&(_tg__ZTV5cc221__6dd3221__7ee63221[3]), 3,4},
+ {&(_ZTV7ee63221[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee63221[];
+extern VTBL_ENTRY _ZTV7ee63221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63221[];
+static VTBL_ENTRY alt_thunk_names532[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32213fooEv,_ZTv0_n12_N6dd32213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32213fooEv,_ZThn12_N6dd32213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee632213fooEv,_ZTv0_n12_N7ee632213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee632213fooEv,_ZThn12_N7ee632213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63221 = { "ee63221", // class name
+ bases_ee63221, 4,
+ &(vtc_ee63221[0]), // expected_vtbl_contents
+ &(vtt_ee63221[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee63221),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63221),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63221),4, //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 ee73221 : virtual dd3221 {
+ int e;
+ virtual void foo(); // _ZN7ee732213fooEv
+ virtual void bar(); // _ZN7ee732213barEv
+ ~ee73221(); // tgen
+ ee73221(); // tgen
+};
+//SIG(1 ee73221) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} v1 Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73221 ::foo(){vfunc_called(this, "_ZN7ee732213fooEv");}
+void ee73221 ::bar(){vfunc_called(this, "_ZN7ee732213barEv");}
+ee73221 ::~ee73221(){ note_dtor("ee73221", this);} // tgen
+ee73221 ::ee73221(){ note_ctor("ee73221", this);} // tgen
+
+static void Test_ee73221()
+{
+ extern Class_Descriptor cd_ee73221;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee73221, buf);
+ ee73221 *dp, &lv = *(dp=new (buf) ee73221());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee73221)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73221)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc221*), ABISELECT(32,16), "ee73221");
+ check_base_class_offset(lv, (bb21*)(cc221*), ABISELECT(32,16), "ee73221");
+ check_base_class_offset(lv, (cc221*)(dd3221*), ABISELECT(32,16), "ee73221");
+ check_base_class_offset(lv, (dd3221*), ABISELECT(16,8), "ee73221");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73221.e");
+ test_class_info(&lv, &cd_ee73221);
+ dp->~ee73221();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73221(Test_ee73221, "ee73221", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee73221C1Ev();
+extern void _ZN7ee73221D1Ev();
+Name_Map name_map_ee73221[] = {
+ NSPAIR(_ZN7ee73221C1Ev),
+ NSPAIR(_ZN7ee73221D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc221;
+extern VTBL_ENTRY _ZTI5cc221[];
+extern VTBL_ENTRY _ZTV5cc221[];
+extern Class_Descriptor cd_dd3221;
+extern VTBL_ENTRY _ZTI6dd3221[];
+extern VTBL_ENTRY _ZTV6dd3221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3221[];
+static Base_Class bases_ee73221[] = {
+ // 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_bb21, 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_cc221, 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_dd3221, 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 _ZTI7ee73221[];
+extern void _ZN7ee732213fooEv();
+extern void _ZN7ee732213barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee732213fooEv,_ZTv0_n16_N7ee732213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee732213fooEv,_ZThn8_N7ee732213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee732213fooEv,_ZTv0_n12_N7ee732213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee732213fooEv,_ZThn16_N7ee732213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73221[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73221[0]),
+ (VTBL_ENTRY)&_ZN7ee732213fooEv,
+ (VTBL_ENTRY)&_ZN7ee732213barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73221[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee732213fooEv,_ZTv0_n16_N7ee732213fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73221[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee732213fooEv,_ZTv0_n12_N7ee732213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee73221[];
+extern void _ZN6dd32213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3221__7ee73221[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3221[0]),
+ (VTBL_ENTRY)&_ZN6dd32213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32213fooEv,_ZTv0_n12_N6dd32213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32213fooEv,_ZThn8_N6dd32213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc221__6dd3221__7ee73221[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3221[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32213fooEv,_ZTv0_n12_N6dd32213fooEv),
+};
+static VTT_ENTRY vtt_ee73221[] = {
+ {&(_ZTV7ee73221[4]), 4,15},
+ {&(_ZTV7ee73221[10]), 10,15},
+ {&(_ZTV7ee73221[14]), 14,15},
+ {&(_tg__ZTV6dd3221__7ee73221[3]), 3,4},
+ {&(_tg__ZTV5cc221__6dd3221__7ee73221[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee73221[];
+extern VTBL_ENTRY _ZTV7ee73221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73221[];
+static VTBL_ENTRY alt_thunk_names533[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32213fooEv,_ZTv0_n12_N6dd32213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32213fooEv,_ZThn8_N6dd32213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee732213fooEv,_ZTv0_n12_N7ee732213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee732213fooEv,_ZThn16_N7ee732213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee732213fooEv,_ZTv0_n16_N7ee732213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee732213fooEv,_ZThn8_N7ee732213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73221 = { "ee73221", // class name
+ bases_ee73221, 4,
+ &(vtc_ee73221[0]), // expected_vtbl_contents
+ &(vtt_ee73221[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee73221),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73221),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73221),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names533,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd4221 : cc221 {
+ int d;
+ virtual void bar(); // _ZN6dd42213barEv
+ ~dd4221(); // tgen
+ dd4221(); // tgen
+};
+//SIG(-1 dd4221) C1{ BC2{ BC3{ BC4{ v2 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void dd4221 ::bar(){vfunc_called(this, "_ZN6dd42213barEv");}
+dd4221 ::~dd4221(){ note_dtor("dd4221", this);} // tgen
+dd4221 ::dd4221(){ note_ctor("dd4221", this);} // tgen
+
+static void Test_dd4221()
+{
+ extern Class_Descriptor cd_dd4221;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd4221, buf);
+ dd4221 *dp, &lv = *(dp=new (buf) dd4221());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd4221)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4221)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc221*), 0, "dd4221");
+ check_base_class_offset(lv, (bb21*)(cc221*), 0, "dd4221");
+ check_base_class_offset(lv, (cc221*), 0, "dd4221");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd4221.d");
+ test_class_info(&lv, &cd_dd4221);
+ dp->~dd4221();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4221(Test_dd4221, "dd4221", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd4221C1Ev();
+extern void _ZN6dd4221D1Ev();
+Name_Map name_map_dd4221[] = {
+ NSPAIR(_ZN6dd4221C1Ev),
+ NSPAIR(_ZN6dd4221D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc221;
+extern VTBL_ENTRY _ZTI5cc221[];
+extern VTBL_ENTRY _ZTV5cc221[];
+static Base_Class bases_dd4221[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc221, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI6dd4221[];
+extern void _ZN5cc2213fooEv();
+extern void _ZN6dd42213barEv();
+static VTBL_ENTRY vtc_dd4221[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4221[0]),
+ (VTBL_ENTRY)&_ZN5cc2213fooEv,
+ (VTBL_ENTRY)&_ZN6dd42213barEv,
+};
+extern VTBL_ENTRY _ZTI6dd4221[];
+extern VTBL_ENTRY _ZTV6dd4221[];
+Class_Descriptor cd_dd4221 = { "dd4221", // class name
+ bases_dd4221, 3,
+ &(vtc_dd4221[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd4221),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4221),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 ee04221 : dd4221 {
+ int e;
+ ~ee04221(); // tgen
+ ee04221(); // tgen
+};
+//SIG(1 ee04221) C1{ BC2{ BC3{ BC4{ BC5{ v2 Fi} v2 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee04221 ::~ee04221(){ note_dtor("ee04221", this);} // tgen
+ee04221 ::ee04221(){ note_ctor("ee04221", this);} // tgen
+
+static void Test_ee04221()
+{
+ extern Class_Descriptor cd_ee04221;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee04221, buf);
+ ee04221 *dp, &lv = *(dp=new (buf) ee04221());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee04221)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04221)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc221*)(dd4221*), 0, "ee04221");
+ check_base_class_offset(lv, (bb21*)(cc221*)(dd4221*), 0, "ee04221");
+ check_base_class_offset(lv, (cc221*)(dd4221*), 0, "ee04221");
+ check_base_class_offset(lv, (dd4221*), 0, "ee04221");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee04221.e");
+ test_class_info(&lv, &cd_ee04221);
+ dp->~ee04221();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04221(Test_ee04221, "ee04221", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee04221C1Ev();
+extern void _ZN7ee04221D1Ev();
+Name_Map name_map_ee04221[] = {
+ NSPAIR(_ZN7ee04221C1Ev),
+ NSPAIR(_ZN7ee04221D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc221;
+extern VTBL_ENTRY _ZTI5cc221[];
+extern VTBL_ENTRY _ZTV5cc221[];
+extern Class_Descriptor cd_dd4221;
+extern VTBL_ENTRY _ZTI6dd4221[];
+extern VTBL_ENTRY _ZTV6dd4221[];
+static Base_Class bases_ee04221[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc221, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4221, 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 _ZTI7ee04221[];
+extern void _ZN5cc2213fooEv();
+extern void _ZN6dd42213barEv();
+static VTBL_ENTRY vtc_ee04221[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04221[0]),
+ (VTBL_ENTRY)&_ZN5cc2213fooEv,
+ (VTBL_ENTRY)&_ZN6dd42213barEv,
+};
+extern VTBL_ENTRY _ZTI7ee04221[];
+extern VTBL_ENTRY _ZTV7ee04221[];
+Class_Descriptor cd_ee04221 = { "ee04221", // class name
+ bases_ee04221, 4,
+ &(vtc_ee04221[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee04221),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04221),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 ee14221 : virtual dd4221 {
+ int e;
+ ~ee14221(); // tgen
+ ee14221(); // tgen
+};
+//SIG(1 ee14221) C1{ VBC2{ BC3{ BC4{ BC5{ v2 Fi} v2 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee14221 ::~ee14221(){ note_dtor("ee14221", this);} // tgen
+ee14221 ::ee14221(){ note_ctor("ee14221", this);} // tgen
+
+static void Test_ee14221()
+{
+ extern Class_Descriptor cd_ee14221;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee14221, buf);
+ ee14221 *dp, &lv = *(dp=new (buf) ee14221());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee14221)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14221)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc221*)(dd4221*), ABISELECT(16,8), "ee14221");
+ check_base_class_offset(lv, (bb21*)(cc221*)(dd4221*), ABISELECT(16,8), "ee14221");
+ check_base_class_offset(lv, (cc221*)(dd4221*), ABISELECT(16,8), "ee14221");
+ check_base_class_offset(lv, (dd4221*), ABISELECT(16,8), "ee14221");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14221.e");
+ test_class_info(&lv, &cd_ee14221);
+ dp->~ee14221();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14221(Test_ee14221, "ee14221", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee14221C1Ev();
+extern void _ZN7ee14221D1Ev();
+Name_Map name_map_ee14221[] = {
+ NSPAIR(_ZN7ee14221C1Ev),
+ NSPAIR(_ZN7ee14221D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc221;
+extern VTBL_ENTRY _ZTI5cc221[];
+extern VTBL_ENTRY _ZTV5cc221[];
+extern Class_Descriptor cd_dd4221;
+extern VTBL_ENTRY _ZTI6dd4221[];
+extern VTBL_ENTRY _ZTV6dd4221[];
+static Base_Class bases_ee14221[] = {
+ // 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_bb21, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc221, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4221, 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 _ZTI7ee14221[];
+extern void _ZN5cc2213fooEv();
+extern void _ZN6dd42213barEv();
+static VTBL_ENTRY vtc_ee14221[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14221[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14221[0]),
+ (VTBL_ENTRY)&_ZN5cc2213fooEv,
+ (VTBL_ENTRY)&_ZN6dd42213barEv,
+};
+extern VTBL_ENTRY _ZTV7ee14221[];
+static VTT_ENTRY vtt_ee14221[] = {
+ {&(_ZTV7ee14221[3]), 3,9},
+ {&(_ZTV7ee14221[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee14221[];
+extern VTBL_ENTRY _ZTV7ee14221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14221[];
+Class_Descriptor cd_ee14221 = { "ee14221", // class name
+ bases_ee14221, 4,
+ &(vtc_ee14221[0]), // expected_vtbl_contents
+ &(vtt_ee14221[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee14221),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14221),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14221),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 ee24221 : dd4221 {
+ int e;
+ virtual void foo(); // _ZN7ee242213fooEv
+ ~ee24221(); // tgen
+ ee24221(); // tgen
+};
+//SIG(1 ee24221) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} v1 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee24221 ::foo(){vfunc_called(this, "_ZN7ee242213fooEv");}
+ee24221 ::~ee24221(){ note_dtor("ee24221", this);} // tgen
+ee24221 ::ee24221(){ note_ctor("ee24221", this);} // tgen
+
+static void Test_ee24221()
+{
+ extern Class_Descriptor cd_ee24221;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee24221, buf);
+ ee24221 *dp, &lv = *(dp=new (buf) ee24221());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee24221)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24221)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc221*)(dd4221*), 0, "ee24221");
+ check_base_class_offset(lv, (bb21*)(cc221*)(dd4221*), 0, "ee24221");
+ check_base_class_offset(lv, (cc221*)(dd4221*), 0, "ee24221");
+ check_base_class_offset(lv, (dd4221*), 0, "ee24221");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee24221.e");
+ test_class_info(&lv, &cd_ee24221);
+ dp->~ee24221();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24221(Test_ee24221, "ee24221", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee24221C1Ev();
+extern void _ZN7ee24221D1Ev();
+Name_Map name_map_ee24221[] = {
+ NSPAIR(_ZN7ee24221C1Ev),
+ NSPAIR(_ZN7ee24221D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc221;
+extern VTBL_ENTRY _ZTI5cc221[];
+extern VTBL_ENTRY _ZTV5cc221[];
+extern Class_Descriptor cd_dd4221;
+extern VTBL_ENTRY _ZTI6dd4221[];
+extern VTBL_ENTRY _ZTV6dd4221[];
+static Base_Class bases_ee24221[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc221, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4221, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee24221[];
+extern void _ZN7ee242213fooEv();
+extern void _ZN6dd42213barEv();
+static VTBL_ENTRY vtc_ee24221[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24221[0]),
+ (VTBL_ENTRY)&_ZN7ee242213fooEv,
+ (VTBL_ENTRY)&_ZN6dd42213barEv,
+};
+extern VTBL_ENTRY _ZTI7ee24221[];
+extern VTBL_ENTRY _ZTV7ee24221[];
+Class_Descriptor cd_ee24221 = { "ee24221", // class name
+ bases_ee24221, 4,
+ &(vtc_ee24221[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee24221),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24221),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 ee34221 : virtual dd4221 {
+ int e;
+ virtual void foo(); // _ZN7ee342213fooEv
+ ~ee34221(); // tgen
+ ee34221(); // tgen
+};
+//SIG(1 ee34221) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} v1 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee34221 ::foo(){vfunc_called(this, "_ZN7ee342213fooEv");}
+ee34221 ::~ee34221(){ note_dtor("ee34221", this);} // tgen
+ee34221 ::ee34221(){ note_ctor("ee34221", this);} // tgen
+
+static void Test_ee34221()
+{
+ extern Class_Descriptor cd_ee34221;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee34221, buf);
+ ee34221 *dp, &lv = *(dp=new (buf) ee34221());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee34221)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34221)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc221*)(dd4221*), ABISELECT(16,8), "ee34221");
+ check_base_class_offset(lv, (bb21*)(cc221*)(dd4221*), ABISELECT(16,8), "ee34221");
+ check_base_class_offset(lv, (cc221*)(dd4221*), ABISELECT(16,8), "ee34221");
+ check_base_class_offset(lv, (dd4221*), ABISELECT(16,8), "ee34221");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34221.e");
+ test_class_info(&lv, &cd_ee34221);
+ dp->~ee34221();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34221(Test_ee34221, "ee34221", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee34221C1Ev();
+extern void _ZN7ee34221D1Ev();
+Name_Map name_map_ee34221[] = {
+ NSPAIR(_ZN7ee34221C1Ev),
+ NSPAIR(_ZN7ee34221D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc221;
+extern VTBL_ENTRY _ZTI5cc221[];
+extern VTBL_ENTRY _ZTV5cc221[];
+extern Class_Descriptor cd_dd4221;
+extern VTBL_ENTRY _ZTI6dd4221[];
+extern VTBL_ENTRY _ZTV6dd4221[];
+static Base_Class bases_ee34221[] = {
+ // 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_bb21, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc221, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4221, 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 _ZTI7ee34221[];
+extern void _ZN7ee342213fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee342213fooEv,_ZTv0_n12_N7ee342213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee342213fooEv,_ZThn8_N7ee342213fooEv)() __attribute__((weak));
+extern void _ZN6dd42213barEv();
+static VTBL_ENTRY vtc_ee34221[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34221[0]),
+ (VTBL_ENTRY)&_ZN7ee342213fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34221[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee342213fooEv,_ZTv0_n12_N7ee342213fooEv),
+ (VTBL_ENTRY)&_ZN6dd42213barEv,
+};
+extern VTBL_ENTRY _ZTV7ee34221[];
+static VTT_ENTRY vtt_ee34221[] = {
+ {&(_ZTV7ee34221[3]), 3,10},
+ {&(_ZTV7ee34221[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee34221[];
+extern VTBL_ENTRY _ZTV7ee34221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34221[];
+static VTBL_ENTRY alt_thunk_names534[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee342213fooEv,_ZTv0_n12_N7ee342213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee342213fooEv,_ZThn8_N7ee342213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34221 = { "ee34221", // class name
+ bases_ee34221, 4,
+ &(vtc_ee34221[0]), // expected_vtbl_contents
+ &(vtt_ee34221[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee34221),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34221),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34221),2, //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 ee44221 : dd4221 {
+ int e;
+ virtual void bar(); // _ZN7ee442213barEv
+ ~ee44221(); // tgen
+ ee44221(); // tgen
+};
+//SIG(1 ee44221) C1{ BC2{ BC3{ BC4{ BC5{ v2 Fi} v2 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee44221 ::bar(){vfunc_called(this, "_ZN7ee442213barEv");}
+ee44221 ::~ee44221(){ note_dtor("ee44221", this);} // tgen
+ee44221 ::ee44221(){ note_ctor("ee44221", this);} // tgen
+
+static void Test_ee44221()
+{
+ extern Class_Descriptor cd_ee44221;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee44221, buf);
+ ee44221 *dp, &lv = *(dp=new (buf) ee44221());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee44221)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44221)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc221*)(dd4221*), 0, "ee44221");
+ check_base_class_offset(lv, (bb21*)(cc221*)(dd4221*), 0, "ee44221");
+ check_base_class_offset(lv, (cc221*)(dd4221*), 0, "ee44221");
+ check_base_class_offset(lv, (dd4221*), 0, "ee44221");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee44221.e");
+ test_class_info(&lv, &cd_ee44221);
+ dp->~ee44221();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44221(Test_ee44221, "ee44221", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee44221C1Ev();
+extern void _ZN7ee44221D1Ev();
+Name_Map name_map_ee44221[] = {
+ NSPAIR(_ZN7ee44221C1Ev),
+ NSPAIR(_ZN7ee44221D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc221;
+extern VTBL_ENTRY _ZTI5cc221[];
+extern VTBL_ENTRY _ZTV5cc221[];
+extern Class_Descriptor cd_dd4221;
+extern VTBL_ENTRY _ZTI6dd4221[];
+extern VTBL_ENTRY _ZTV6dd4221[];
+static Base_Class bases_ee44221[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc221, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4221, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee44221[];
+extern void _ZN5cc2213fooEv();
+extern void _ZN7ee442213barEv();
+static VTBL_ENTRY vtc_ee44221[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44221[0]),
+ (VTBL_ENTRY)&_ZN5cc2213fooEv,
+ (VTBL_ENTRY)&_ZN7ee442213barEv,
+};
+extern VTBL_ENTRY _ZTI7ee44221[];
+extern VTBL_ENTRY _ZTV7ee44221[];
+Class_Descriptor cd_ee44221 = { "ee44221", // class name
+ bases_ee44221, 4,
+ &(vtc_ee44221[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee44221),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44221),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 ee54221 : virtual dd4221 {
+ int e;
+ virtual void bar(); // _ZN7ee542213barEv
+ ~ee54221(); // tgen
+ ee54221(); // tgen
+};
+//SIG(1 ee54221) C1{ VBC2{ BC3{ BC4{ BC5{ v2 Fi} v2 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee54221 ::bar(){vfunc_called(this, "_ZN7ee542213barEv");}
+ee54221 ::~ee54221(){ note_dtor("ee54221", this);} // tgen
+ee54221 ::ee54221(){ note_ctor("ee54221", this);} // tgen
+
+static void Test_ee54221()
+{
+ extern Class_Descriptor cd_ee54221;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee54221, buf);
+ ee54221 *dp, &lv = *(dp=new (buf) ee54221());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee54221)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54221)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc221*)(dd4221*), ABISELECT(16,8), "ee54221");
+ check_base_class_offset(lv, (bb21*)(cc221*)(dd4221*), ABISELECT(16,8), "ee54221");
+ check_base_class_offset(lv, (cc221*)(dd4221*), ABISELECT(16,8), "ee54221");
+ check_base_class_offset(lv, (dd4221*), ABISELECT(16,8), "ee54221");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54221.e");
+ test_class_info(&lv, &cd_ee54221);
+ dp->~ee54221();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54221(Test_ee54221, "ee54221", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee54221C1Ev();
+extern void _ZN7ee54221D1Ev();
+Name_Map name_map_ee54221[] = {
+ NSPAIR(_ZN7ee54221C1Ev),
+ NSPAIR(_ZN7ee54221D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc221;
+extern VTBL_ENTRY _ZTI5cc221[];
+extern VTBL_ENTRY _ZTV5cc221[];
+extern Class_Descriptor cd_dd4221;
+extern VTBL_ENTRY _ZTI6dd4221[];
+extern VTBL_ENTRY _ZTV6dd4221[];
+static Base_Class bases_ee54221[] = {
+ // 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_bb21, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc221, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4221, 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 _ZTI7ee54221[];
+extern void _ZN7ee542213barEv();
+extern void _ZN5cc2213fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee542213barEv,_ZTv0_n16_N7ee542213barEv)();
+extern void ABISELECT(_ZThn16_N7ee542213barEv,_ZThn8_N7ee542213barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54221[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54221[0]),
+ (VTBL_ENTRY)&_ZN7ee542213barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54221[0]),
+ (VTBL_ENTRY)&_ZN5cc2213fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee542213barEv,_ZTv0_n16_N7ee542213barEv),
+};
+extern VTBL_ENTRY _ZTV7ee54221[];
+static VTT_ENTRY vtt_ee54221[] = {
+ {&(_ZTV7ee54221[3]), 3,10},
+ {&(_ZTV7ee54221[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee54221[];
+extern VTBL_ENTRY _ZTV7ee54221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54221[];
+static VTBL_ENTRY alt_thunk_names535[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee542213barEv,_ZTv0_n16_N7ee542213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee542213barEv,_ZThn8_N7ee542213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54221 = { "ee54221", // class name
+ bases_ee54221, 4,
+ &(vtc_ee54221[0]), // expected_vtbl_contents
+ &(vtt_ee54221[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee54221),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54221),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54221),2, //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 ee64221 : dd4221 {
+ int e;
+ virtual void foo(); // _ZN7ee642213fooEv
+ virtual void bar(); // _ZN7ee642213barEv
+ ~ee64221(); // tgen
+ ee64221(); // tgen
+};
+//SIG(1 ee64221) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} v1 Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64221 ::foo(){vfunc_called(this, "_ZN7ee642213fooEv");}
+void ee64221 ::bar(){vfunc_called(this, "_ZN7ee642213barEv");}
+ee64221 ::~ee64221(){ note_dtor("ee64221", this);} // tgen
+ee64221 ::ee64221(){ note_ctor("ee64221", this);} // tgen
+
+static void Test_ee64221()
+{
+ extern Class_Descriptor cd_ee64221;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee64221, buf);
+ ee64221 *dp, &lv = *(dp=new (buf) ee64221());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee64221)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64221)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc221*)(dd4221*), 0, "ee64221");
+ check_base_class_offset(lv, (bb21*)(cc221*)(dd4221*), 0, "ee64221");
+ check_base_class_offset(lv, (cc221*)(dd4221*), 0, "ee64221");
+ check_base_class_offset(lv, (dd4221*), 0, "ee64221");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee64221.e");
+ test_class_info(&lv, &cd_ee64221);
+ dp->~ee64221();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64221(Test_ee64221, "ee64221", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee64221C1Ev();
+extern void _ZN7ee64221D1Ev();
+Name_Map name_map_ee64221[] = {
+ NSPAIR(_ZN7ee64221C1Ev),
+ NSPAIR(_ZN7ee64221D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc221;
+extern VTBL_ENTRY _ZTI5cc221[];
+extern VTBL_ENTRY _ZTV5cc221[];
+extern Class_Descriptor cd_dd4221;
+extern VTBL_ENTRY _ZTI6dd4221[];
+extern VTBL_ENTRY _ZTV6dd4221[];
+static Base_Class bases_ee64221[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc221, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4221, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee64221[];
+extern void _ZN7ee642213fooEv();
+extern void _ZN7ee642213barEv();
+static VTBL_ENTRY vtc_ee64221[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64221[0]),
+ (VTBL_ENTRY)&_ZN7ee642213fooEv,
+ (VTBL_ENTRY)&_ZN7ee642213barEv,
+};
+extern VTBL_ENTRY _ZTI7ee64221[];
+extern VTBL_ENTRY _ZTV7ee64221[];
+Class_Descriptor cd_ee64221 = { "ee64221", // class name
+ bases_ee64221, 4,
+ &(vtc_ee64221[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee64221),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64221),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 ee74221 : virtual dd4221 {
+ int e;
+ virtual void foo(); // _ZN7ee742213fooEv
+ virtual void bar(); // _ZN7ee742213barEv
+ ~ee74221(); // tgen
+ ee74221(); // tgen
+};
+//SIG(1 ee74221) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} v1 Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74221 ::foo(){vfunc_called(this, "_ZN7ee742213fooEv");}
+void ee74221 ::bar(){vfunc_called(this, "_ZN7ee742213barEv");}
+ee74221 ::~ee74221(){ note_dtor("ee74221", this);} // tgen
+ee74221 ::ee74221(){ note_ctor("ee74221", this);} // tgen
+
+static void Test_ee74221()
+{
+ extern Class_Descriptor cd_ee74221;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee74221, buf);
+ ee74221 *dp, &lv = *(dp=new (buf) ee74221());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee74221)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74221)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc221*)(dd4221*), ABISELECT(16,8), "ee74221");
+ check_base_class_offset(lv, (bb21*)(cc221*)(dd4221*), ABISELECT(16,8), "ee74221");
+ check_base_class_offset(lv, (cc221*)(dd4221*), ABISELECT(16,8), "ee74221");
+ check_base_class_offset(lv, (dd4221*), ABISELECT(16,8), "ee74221");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74221.e");
+ test_class_info(&lv, &cd_ee74221);
+ dp->~ee74221();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74221(Test_ee74221, "ee74221", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee74221C1Ev();
+extern void _ZN7ee74221D1Ev();
+Name_Map name_map_ee74221[] = {
+ NSPAIR(_ZN7ee74221C1Ev),
+ NSPAIR(_ZN7ee74221D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc221;
+extern VTBL_ENTRY _ZTI5cc221[];
+extern VTBL_ENTRY _ZTV5cc221[];
+extern Class_Descriptor cd_dd4221;
+extern VTBL_ENTRY _ZTI6dd4221[];
+extern VTBL_ENTRY _ZTV6dd4221[];
+static Base_Class bases_ee74221[] = {
+ // 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_bb21, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc221, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4221, 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 _ZTI7ee74221[];
+extern void _ZN7ee742213fooEv();
+extern void _ZN7ee742213barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee742213fooEv,_ZTv0_n12_N7ee742213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee742213fooEv,_ZThn8_N7ee742213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee742213barEv,_ZTv0_n16_N7ee742213barEv)();
+extern void ABISELECT(_ZThn16_N7ee742213barEv,_ZThn8_N7ee742213barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74221[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74221[0]),
+ (VTBL_ENTRY)&_ZN7ee742213fooEv,
+ (VTBL_ENTRY)&_ZN7ee742213barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74221[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee742213fooEv,_ZTv0_n12_N7ee742213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee742213barEv,_ZTv0_n16_N7ee742213barEv),
+};
+extern VTBL_ENTRY _ZTV7ee74221[];
+static VTT_ENTRY vtt_ee74221[] = {
+ {&(_ZTV7ee74221[3]), 3,11},
+ {&(_ZTV7ee74221[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee74221[];
+extern VTBL_ENTRY _ZTV7ee74221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74221[];
+static VTBL_ENTRY alt_thunk_names536[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee742213barEv,_ZTv0_n16_N7ee742213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee742213barEv,_ZThn8_N7ee742213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee742213fooEv,_ZTv0_n12_N7ee742213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee742213fooEv,_ZThn8_N7ee742213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74221 = { "ee74221", // class name
+ bases_ee74221, 4,
+ &(vtc_ee74221[0]), // expected_vtbl_contents
+ &(vtt_ee74221[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee74221),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74221),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74221),2, //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 dd5221 : virtual cc221 {
+ int d;
+ virtual void bar(); // _ZN6dd52213barEv
+ ~dd5221(); // tgen
+ dd5221(); // tgen
+};
+//SIG(-1 dd5221) C1{ VBC2{ BC3{ BC4{ v2 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void dd5221 ::bar(){vfunc_called(this, "_ZN6dd52213barEv");}
+dd5221 ::~dd5221(){ note_dtor("dd5221", this);} // tgen
+dd5221 ::dd5221(){ note_ctor("dd5221", this);} // tgen
+
+static void Test_dd5221()
+{
+ extern Class_Descriptor cd_dd5221;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd5221, buf);
+ dd5221 *dp, &lv = *(dp=new (buf) dd5221());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd5221)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5221)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc221*), ABISELECT(16,8), "dd5221");
+ check_base_class_offset(lv, (bb21*)(cc221*), ABISELECT(16,8), "dd5221");
+ check_base_class_offset(lv, (cc221*), ABISELECT(16,8), "dd5221");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5221.d");
+ test_class_info(&lv, &cd_dd5221);
+ dp->~dd5221();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5221(Test_dd5221, "dd5221", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd5221C1Ev();
+extern void _ZN6dd5221D1Ev();
+Name_Map name_map_dd5221[] = {
+ NSPAIR(_ZN6dd5221C1Ev),
+ NSPAIR(_ZN6dd5221D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc221;
+extern VTBL_ENTRY _ZTI5cc221[];
+extern VTBL_ENTRY _ZTV5cc221[];
+static Base_Class bases_dd5221[] = {
+ // 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_bb21, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc221, 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 _ZTI6dd5221[];
+extern void _ZN6dd52213barEv();
+extern void _ZN5cc2213fooEv();
+static VTBL_ENTRY vtc_dd5221[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5221[0]),
+ (VTBL_ENTRY)&_ZN6dd52213barEv,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5221[0]),
+ (VTBL_ENTRY)&_ZN5cc2213fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd5221[];
+static VTT_ENTRY vtt_dd5221[] = {
+ {&(_ZTV6dd5221[3]), 3,8},
+ {&(_ZTV6dd5221[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI6dd5221[];
+extern VTBL_ENTRY _ZTV6dd5221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5221[];
+Class_Descriptor cd_dd5221 = { "dd5221", // class name
+ bases_dd5221, 3,
+ &(vtc_dd5221[0]), // expected_vtbl_contents
+ &(vtt_dd5221[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd5221),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5221),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5221),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 ee05221 : dd5221 {
+ int e;
+ ~ee05221(); // tgen
+ ee05221(); // tgen
+};
+//SIG(1 ee05221) C1{ BC2{ VBC3{ BC4{ BC5{ v2 Fi} v2 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee05221 ::~ee05221(){ note_dtor("ee05221", this);} // tgen
+ee05221 ::ee05221(){ note_ctor("ee05221", this);} // tgen
+
+static void Test_ee05221()
+{
+ extern Class_Descriptor cd_ee05221;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee05221, buf);
+ ee05221 *dp, &lv = *(dp=new (buf) ee05221());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee05221)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05221)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc221*), ABISELECT(16,12), "ee05221");
+ check_base_class_offset(lv, (bb21*)(cc221*), ABISELECT(16,12), "ee05221");
+ check_base_class_offset(lv, (cc221*)(dd5221*), ABISELECT(16,12), "ee05221");
+ check_base_class_offset(lv, (dd5221*), 0, "ee05221");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05221.e");
+ test_class_info(&lv, &cd_ee05221);
+ dp->~ee05221();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05221(Test_ee05221, "ee05221", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee05221C1Ev();
+extern void _ZN7ee05221D1Ev();
+Name_Map name_map_ee05221[] = {
+ NSPAIR(_ZN7ee05221C1Ev),
+ NSPAIR(_ZN7ee05221D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc221;
+extern VTBL_ENTRY _ZTI5cc221[];
+extern VTBL_ENTRY _ZTV5cc221[];
+extern Class_Descriptor cd_dd5221;
+extern VTBL_ENTRY _ZTI6dd5221[];
+extern VTBL_ENTRY _ZTV6dd5221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5221[];
+static Base_Class bases_ee05221[] = {
+ // 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_bb21, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc221, 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_dd5221, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05221[];
+extern void _ZN6dd52213barEv();
+extern void _ZN5cc2213fooEv();
+static VTBL_ENTRY vtc_ee05221[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05221[0]),
+ (VTBL_ENTRY)&_ZN6dd52213barEv,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05221[0]),
+ (VTBL_ENTRY)&_ZN5cc2213fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee05221[];
+extern void _ZN6dd52213barEv();
+static VTBL_ENTRY _tg__ZTV6dd5221__7ee05221[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5221[0]),
+ (VTBL_ENTRY)&_ZN6dd52213barEv,
+};
+extern void _ZN5cc2213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc221__6dd5221__7ee05221[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5221[0]),
+ (VTBL_ENTRY)&_ZN5cc2213fooEv,
+};
+static VTT_ENTRY vtt_ee05221[] = {
+ {&(_ZTV7ee05221[3]), 3,8},
+ {&(_tg__ZTV6dd5221__7ee05221[3]), 3,4},
+ {&(_tg__ZTV5cc221__6dd5221__7ee05221[3]), 3,4},
+ {&(_ZTV7ee05221[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee05221[];
+extern VTBL_ENTRY _ZTV7ee05221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05221[];
+Class_Descriptor cd_ee05221 = { "ee05221", // class name
+ bases_ee05221, 4,
+ &(vtc_ee05221[0]), // expected_vtbl_contents
+ &(vtt_ee05221[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee05221),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05221),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05221),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 ee15221 : virtual dd5221 {
+ int e;
+ ~ee15221(); // tgen
+ ee15221(); // tgen
+};
+//SIG(1 ee15221) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 Fi} v2 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee15221 ::~ee15221(){ note_dtor("ee15221", this);} // tgen
+ee15221 ::ee15221(){ note_ctor("ee15221", this);} // tgen
+
+static void Test_ee15221()
+{
+ extern Class_Descriptor cd_ee15221;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee15221, buf);
+ ee15221 *dp, &lv = *(dp=new (buf) ee15221());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee15221)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15221)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc221*), ABISELECT(32,16), "ee15221");
+ check_base_class_offset(lv, (bb21*)(cc221*), ABISELECT(32,16), "ee15221");
+ check_base_class_offset(lv, (cc221*)(dd5221*), ABISELECT(32,16), "ee15221");
+ check_base_class_offset(lv, (dd5221*), ABISELECT(16,8), "ee15221");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15221.e");
+ test_class_info(&lv, &cd_ee15221);
+ dp->~ee15221();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15221(Test_ee15221, "ee15221", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee15221C1Ev();
+extern void _ZN7ee15221D1Ev();
+Name_Map name_map_ee15221[] = {
+ NSPAIR(_ZN7ee15221C1Ev),
+ NSPAIR(_ZN7ee15221D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc221;
+extern VTBL_ENTRY _ZTI5cc221[];
+extern VTBL_ENTRY _ZTV5cc221[];
+extern Class_Descriptor cd_dd5221;
+extern VTBL_ENTRY _ZTI6dd5221[];
+extern VTBL_ENTRY _ZTV6dd5221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5221[];
+static Base_Class bases_ee15221[] = {
+ // 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_bb21, 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_cc221, 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_dd5221, 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 _ZTI7ee15221[];
+extern void _ZN6dd52213barEv();
+extern void _ZN5cc2213fooEv();
+static VTBL_ENTRY vtc_ee15221[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15221[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15221[0]),
+ (VTBL_ENTRY)&_ZN6dd52213barEv,
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15221[0]),
+ (VTBL_ENTRY)&_ZN5cc2213fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee15221[];
+extern void _ZN6dd52213barEv();
+static VTBL_ENTRY _tg__ZTV6dd5221__7ee15221[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5221[0]),
+ (VTBL_ENTRY)&_ZN6dd52213barEv,
+};
+extern void _ZN5cc2213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc221__6dd5221__7ee15221[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5221[0]),
+ (VTBL_ENTRY)&_ZN5cc2213fooEv,
+};
+static VTT_ENTRY vtt_ee15221[] = {
+ {&(_ZTV7ee15221[4]), 4,13},
+ {&(_ZTV7ee15221[8]), 8,13},
+ {&(_ZTV7ee15221[12]), 12,13},
+ {&(_tg__ZTV6dd5221__7ee15221[3]), 3,4},
+ {&(_tg__ZTV5cc221__6dd5221__7ee15221[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee15221[];
+extern VTBL_ENTRY _ZTV7ee15221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15221[];
+Class_Descriptor cd_ee15221 = { "ee15221", // class name
+ bases_ee15221, 4,
+ &(vtc_ee15221[0]), // expected_vtbl_contents
+ &(vtt_ee15221[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee15221),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15221),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15221),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 ee25221 : dd5221 {
+ int e;
+ virtual void foo(); // _ZN7ee252213fooEv
+ ~ee25221(); // tgen
+ ee25221(); // tgen
+};
+//SIG(1 ee25221) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} v1 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee25221 ::foo(){vfunc_called(this, "_ZN7ee252213fooEv");}
+ee25221 ::~ee25221(){ note_dtor("ee25221", this);} // tgen
+ee25221 ::ee25221(){ note_ctor("ee25221", this);} // tgen
+
+static void Test_ee25221()
+{
+ extern Class_Descriptor cd_ee25221;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee25221, buf);
+ ee25221 *dp, &lv = *(dp=new (buf) ee25221());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee25221)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25221)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc221*), ABISELECT(16,12), "ee25221");
+ check_base_class_offset(lv, (bb21*)(cc221*), ABISELECT(16,12), "ee25221");
+ check_base_class_offset(lv, (cc221*)(dd5221*), ABISELECT(16,12), "ee25221");
+ check_base_class_offset(lv, (dd5221*), 0, "ee25221");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25221.e");
+ test_class_info(&lv, &cd_ee25221);
+ dp->~ee25221();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25221(Test_ee25221, "ee25221", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee25221C1Ev();
+extern void _ZN7ee25221D1Ev();
+Name_Map name_map_ee25221[] = {
+ NSPAIR(_ZN7ee25221C1Ev),
+ NSPAIR(_ZN7ee25221D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc221;
+extern VTBL_ENTRY _ZTI5cc221[];
+extern VTBL_ENTRY _ZTV5cc221[];
+extern Class_Descriptor cd_dd5221;
+extern VTBL_ENTRY _ZTI6dd5221[];
+extern VTBL_ENTRY _ZTV6dd5221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5221[];
+static Base_Class bases_ee25221[] = {
+ // 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_bb21, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc221, 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_dd5221, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25221[];
+extern void _ZN6dd52213barEv();
+extern void _ZN7ee252213fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee252213fooEv,_ZTv0_n12_N7ee252213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee252213fooEv,_ZThn12_N7ee252213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25221[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25221[0]),
+ (VTBL_ENTRY)&_ZN6dd52213barEv,
+ (VTBL_ENTRY)&_ZN7ee252213fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25221[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee252213fooEv,_ZTv0_n12_N7ee252213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee25221[];
+extern void _ZN6dd52213barEv();
+static VTBL_ENTRY _tg__ZTV6dd5221__7ee25221[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5221[0]),
+ (VTBL_ENTRY)&_ZN6dd52213barEv,
+};
+extern void _ZN5cc2213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc221__6dd5221__7ee25221[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5221[0]),
+ (VTBL_ENTRY)&_ZN5cc2213fooEv,
+};
+static VTT_ENTRY vtt_ee25221[] = {
+ {&(_ZTV7ee25221[3]), 3,9},
+ {&(_tg__ZTV6dd5221__7ee25221[3]), 3,4},
+ {&(_tg__ZTV5cc221__6dd5221__7ee25221[3]), 3,4},
+ {&(_ZTV7ee25221[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee25221[];
+extern VTBL_ENTRY _ZTV7ee25221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25221[];
+static VTBL_ENTRY alt_thunk_names537[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee252213fooEv,_ZTv0_n12_N7ee252213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee252213fooEv,_ZThn12_N7ee252213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25221 = { "ee25221", // class name
+ bases_ee25221, 4,
+ &(vtc_ee25221[0]), // expected_vtbl_contents
+ &(vtt_ee25221[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee25221),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25221),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25221),4, //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 ee35221 : virtual dd5221 {
+ int e;
+ virtual void foo(); // _ZN7ee352213fooEv
+ ~ee35221(); // tgen
+ ee35221(); // tgen
+};
+//SIG(1 ee35221) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} v1 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee35221 ::foo(){vfunc_called(this, "_ZN7ee352213fooEv");}
+ee35221 ::~ee35221(){ note_dtor("ee35221", this);} // tgen
+ee35221 ::ee35221(){ note_ctor("ee35221", this);} // tgen
+
+static void Test_ee35221()
+{
+ extern Class_Descriptor cd_ee35221;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee35221, buf);
+ ee35221 *dp, &lv = *(dp=new (buf) ee35221());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee35221)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35221)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc221*), ABISELECT(32,16), "ee35221");
+ check_base_class_offset(lv, (bb21*)(cc221*), ABISELECT(32,16), "ee35221");
+ check_base_class_offset(lv, (cc221*)(dd5221*), ABISELECT(32,16), "ee35221");
+ check_base_class_offset(lv, (dd5221*), ABISELECT(16,8), "ee35221");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35221.e");
+ test_class_info(&lv, &cd_ee35221);
+ dp->~ee35221();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35221(Test_ee35221, "ee35221", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee35221C1Ev();
+extern void _ZN7ee35221D1Ev();
+Name_Map name_map_ee35221[] = {
+ NSPAIR(_ZN7ee35221C1Ev),
+ NSPAIR(_ZN7ee35221D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc221;
+extern VTBL_ENTRY _ZTI5cc221[];
+extern VTBL_ENTRY _ZTV5cc221[];
+extern Class_Descriptor cd_dd5221;
+extern VTBL_ENTRY _ZTI6dd5221[];
+extern VTBL_ENTRY _ZTV6dd5221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5221[];
+static Base_Class bases_ee35221[] = {
+ // 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_bb21, 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_cc221, 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_dd5221, 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 _ZTI7ee35221[];
+extern void _ZN7ee352213fooEv();
+extern void _ZN6dd52213barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee352213fooEv,_ZTv0_n12_N7ee352213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee352213fooEv,_ZThn16_N7ee352213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35221[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35221[0]),
+ (VTBL_ENTRY)&_ZN7ee352213fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35221[0]),
+ (VTBL_ENTRY)&_ZN6dd52213barEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35221[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee352213fooEv,_ZTv0_n12_N7ee352213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee35221[];
+extern void _ZN6dd52213barEv();
+static VTBL_ENTRY _tg__ZTV6dd5221__7ee35221[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5221[0]),
+ (VTBL_ENTRY)&_ZN6dd52213barEv,
+};
+extern void _ZN5cc2213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc221__6dd5221__7ee35221[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5221[0]),
+ (VTBL_ENTRY)&_ZN5cc2213fooEv,
+};
+static VTT_ENTRY vtt_ee35221[] = {
+ {&(_ZTV7ee35221[4]), 4,14},
+ {&(_ZTV7ee35221[9]), 9,14},
+ {&(_ZTV7ee35221[13]), 13,14},
+ {&(_tg__ZTV6dd5221__7ee35221[3]), 3,4},
+ {&(_tg__ZTV5cc221__6dd5221__7ee35221[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee35221[];
+extern VTBL_ENTRY _ZTV7ee35221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35221[];
+static VTBL_ENTRY alt_thunk_names538[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee352213fooEv,_ZTv0_n12_N7ee352213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee352213fooEv,_ZThn16_N7ee352213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35221 = { "ee35221", // class name
+ bases_ee35221, 4,
+ &(vtc_ee35221[0]), // expected_vtbl_contents
+ &(vtt_ee35221[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee35221),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35221),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35221),5, //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 ee45221 : dd5221 {
+ int e;
+ virtual void bar(); // _ZN7ee452213barEv
+ ~ee45221(); // tgen
+ ee45221(); // tgen
+};
+//SIG(1 ee45221) C1{ BC2{ VBC3{ BC4{ BC5{ v2 Fi} v2 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee45221 ::bar(){vfunc_called(this, "_ZN7ee452213barEv");}
+ee45221 ::~ee45221(){ note_dtor("ee45221", this);} // tgen
+ee45221 ::ee45221(){ note_ctor("ee45221", this);} // tgen
+
+static void Test_ee45221()
+{
+ extern Class_Descriptor cd_ee45221;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee45221, buf);
+ ee45221 *dp, &lv = *(dp=new (buf) ee45221());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee45221)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45221)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc221*), ABISELECT(16,12), "ee45221");
+ check_base_class_offset(lv, (bb21*)(cc221*), ABISELECT(16,12), "ee45221");
+ check_base_class_offset(lv, (cc221*)(dd5221*), ABISELECT(16,12), "ee45221");
+ check_base_class_offset(lv, (dd5221*), 0, "ee45221");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45221.e");
+ test_class_info(&lv, &cd_ee45221);
+ dp->~ee45221();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45221(Test_ee45221, "ee45221", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee45221C1Ev();
+extern void _ZN7ee45221D1Ev();
+Name_Map name_map_ee45221[] = {
+ NSPAIR(_ZN7ee45221C1Ev),
+ NSPAIR(_ZN7ee45221D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc221;
+extern VTBL_ENTRY _ZTI5cc221[];
+extern VTBL_ENTRY _ZTV5cc221[];
+extern Class_Descriptor cd_dd5221;
+extern VTBL_ENTRY _ZTI6dd5221[];
+extern VTBL_ENTRY _ZTV6dd5221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5221[];
+static Base_Class bases_ee45221[] = {
+ // 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_bb21, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc221, 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_dd5221, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45221[];
+extern void _ZN7ee452213barEv();
+extern void _ZN5cc2213fooEv();
+static VTBL_ENTRY vtc_ee45221[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45221[0]),
+ (VTBL_ENTRY)&_ZN7ee452213barEv,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45221[0]),
+ (VTBL_ENTRY)&_ZN5cc2213fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee45221[];
+extern void _ZN6dd52213barEv();
+static VTBL_ENTRY _tg__ZTV6dd5221__7ee45221[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5221[0]),
+ (VTBL_ENTRY)&_ZN6dd52213barEv,
+};
+extern void _ZN5cc2213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc221__6dd5221__7ee45221[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5221[0]),
+ (VTBL_ENTRY)&_ZN5cc2213fooEv,
+};
+static VTT_ENTRY vtt_ee45221[] = {
+ {&(_ZTV7ee45221[3]), 3,8},
+ {&(_tg__ZTV6dd5221__7ee45221[3]), 3,4},
+ {&(_tg__ZTV5cc221__6dd5221__7ee45221[3]), 3,4},
+ {&(_ZTV7ee45221[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee45221[];
+extern VTBL_ENTRY _ZTV7ee45221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45221[];
+Class_Descriptor cd_ee45221 = { "ee45221", // class name
+ bases_ee45221, 4,
+ &(vtc_ee45221[0]), // expected_vtbl_contents
+ &(vtt_ee45221[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee45221),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45221),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45221),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 ee55221 : virtual dd5221 {
+ int e;
+ virtual void bar(); // _ZN7ee552213barEv
+ ~ee55221(); // tgen
+ ee55221(); // tgen
+};
+//SIG(1 ee55221) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 Fi} v2 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee55221 ::bar(){vfunc_called(this, "_ZN7ee552213barEv");}
+ee55221 ::~ee55221(){ note_dtor("ee55221", this);} // tgen
+ee55221 ::ee55221(){ note_ctor("ee55221", this);} // tgen
+
+static void Test_ee55221()
+{
+ extern Class_Descriptor cd_ee55221;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee55221, buf);
+ ee55221 *dp, &lv = *(dp=new (buf) ee55221());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee55221)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55221)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc221*), ABISELECT(32,16), "ee55221");
+ check_base_class_offset(lv, (bb21*)(cc221*), ABISELECT(32,16), "ee55221");
+ check_base_class_offset(lv, (cc221*)(dd5221*), ABISELECT(32,16), "ee55221");
+ check_base_class_offset(lv, (dd5221*), ABISELECT(16,8), "ee55221");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55221.e");
+ test_class_info(&lv, &cd_ee55221);
+ dp->~ee55221();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55221(Test_ee55221, "ee55221", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee55221C1Ev();
+extern void _ZN7ee55221D1Ev();
+Name_Map name_map_ee55221[] = {
+ NSPAIR(_ZN7ee55221C1Ev),
+ NSPAIR(_ZN7ee55221D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc221;
+extern VTBL_ENTRY _ZTI5cc221[];
+extern VTBL_ENTRY _ZTV5cc221[];
+extern Class_Descriptor cd_dd5221;
+extern VTBL_ENTRY _ZTI6dd5221[];
+extern VTBL_ENTRY _ZTV6dd5221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5221[];
+static Base_Class bases_ee55221[] = {
+ // 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_bb21, 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_cc221, 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_dd5221, 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 _ZTI7ee55221[];
+extern void _ZN7ee552213barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee552213barEv,_ZTv0_n16_N7ee552213barEv)();
+extern void ABISELECT(_ZThn16_N7ee552213barEv,_ZThn8_N7ee552213barEv)() __attribute__((weak));
+extern void _ZN5cc2213fooEv();
+static VTBL_ENTRY vtc_ee55221[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55221[0]),
+ (VTBL_ENTRY)&_ZN7ee552213barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55221[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee552213barEv,_ZTv0_n16_N7ee552213barEv),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55221[0]),
+ (VTBL_ENTRY)&_ZN5cc2213fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee55221[];
+extern void _ZN6dd52213barEv();
+static VTBL_ENTRY _tg__ZTV6dd5221__7ee55221[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5221[0]),
+ (VTBL_ENTRY)&_ZN6dd52213barEv,
+};
+extern void _ZN5cc2213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc221__6dd5221__7ee55221[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5221[0]),
+ (VTBL_ENTRY)&_ZN5cc2213fooEv,
+};
+static VTT_ENTRY vtt_ee55221[] = {
+ {&(_ZTV7ee55221[4]), 4,14},
+ {&(_ZTV7ee55221[9]), 9,14},
+ {&(_ZTV7ee55221[13]), 13,14},
+ {&(_tg__ZTV6dd5221__7ee55221[3]), 3,4},
+ {&(_tg__ZTV5cc221__6dd5221__7ee55221[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee55221[];
+extern VTBL_ENTRY _ZTV7ee55221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55221[];
+static VTBL_ENTRY alt_thunk_names539[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee552213barEv,_ZTv0_n16_N7ee552213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee552213barEv,_ZThn8_N7ee552213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55221 = { "ee55221", // class name
+ bases_ee55221, 4,
+ &(vtc_ee55221[0]), // expected_vtbl_contents
+ &(vtt_ee55221[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee55221),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55221),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55221),5, //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 ee65221 : dd5221 {
+ int e;
+ virtual void foo(); // _ZN7ee652213fooEv
+ virtual void bar(); // _ZN7ee652213barEv
+ ~ee65221(); // tgen
+ ee65221(); // tgen
+};
+//SIG(1 ee65221) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} v1 Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65221 ::foo(){vfunc_called(this, "_ZN7ee652213fooEv");}
+void ee65221 ::bar(){vfunc_called(this, "_ZN7ee652213barEv");}
+ee65221 ::~ee65221(){ note_dtor("ee65221", this);} // tgen
+ee65221 ::ee65221(){ note_ctor("ee65221", this);} // tgen
+
+static void Test_ee65221()
+{
+ extern Class_Descriptor cd_ee65221;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee65221, buf);
+ ee65221 *dp, &lv = *(dp=new (buf) ee65221());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee65221)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65221)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc221*), ABISELECT(16,12), "ee65221");
+ check_base_class_offset(lv, (bb21*)(cc221*), ABISELECT(16,12), "ee65221");
+ check_base_class_offset(lv, (cc221*)(dd5221*), ABISELECT(16,12), "ee65221");
+ check_base_class_offset(lv, (dd5221*), 0, "ee65221");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65221.e");
+ test_class_info(&lv, &cd_ee65221);
+ dp->~ee65221();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65221(Test_ee65221, "ee65221", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee65221C1Ev();
+extern void _ZN7ee65221D1Ev();
+Name_Map name_map_ee65221[] = {
+ NSPAIR(_ZN7ee65221C1Ev),
+ NSPAIR(_ZN7ee65221D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc221;
+extern VTBL_ENTRY _ZTI5cc221[];
+extern VTBL_ENTRY _ZTV5cc221[];
+extern Class_Descriptor cd_dd5221;
+extern VTBL_ENTRY _ZTI6dd5221[];
+extern VTBL_ENTRY _ZTV6dd5221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5221[];
+static Base_Class bases_ee65221[] = {
+ // 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_bb21, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc221, 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_dd5221, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65221[];
+extern void _ZN7ee652213barEv();
+extern void _ZN7ee652213fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee652213fooEv,_ZTv0_n12_N7ee652213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee652213fooEv,_ZThn12_N7ee652213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65221[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65221[0]),
+ (VTBL_ENTRY)&_ZN7ee652213barEv,
+ (VTBL_ENTRY)&_ZN7ee652213fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65221[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee652213fooEv,_ZTv0_n12_N7ee652213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee65221[];
+extern void _ZN6dd52213barEv();
+static VTBL_ENTRY _tg__ZTV6dd5221__7ee65221[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5221[0]),
+ (VTBL_ENTRY)&_ZN6dd52213barEv,
+};
+extern void _ZN5cc2213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc221__6dd5221__7ee65221[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5221[0]),
+ (VTBL_ENTRY)&_ZN5cc2213fooEv,
+};
+static VTT_ENTRY vtt_ee65221[] = {
+ {&(_ZTV7ee65221[3]), 3,9},
+ {&(_tg__ZTV6dd5221__7ee65221[3]), 3,4},
+ {&(_tg__ZTV5cc221__6dd5221__7ee65221[3]), 3,4},
+ {&(_ZTV7ee65221[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee65221[];
+extern VTBL_ENTRY _ZTV7ee65221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65221[];
+static VTBL_ENTRY alt_thunk_names540[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee652213fooEv,_ZTv0_n12_N7ee652213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee652213fooEv,_ZThn12_N7ee652213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65221 = { "ee65221", // class name
+ bases_ee65221, 4,
+ &(vtc_ee65221[0]), // expected_vtbl_contents
+ &(vtt_ee65221[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee65221),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65221),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65221),4, //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 ee75221 : virtual dd5221 {
+ int e;
+ virtual void foo(); // _ZN7ee752213fooEv
+ virtual void bar(); // _ZN7ee752213barEv
+ ~ee75221(); // tgen
+ ee75221(); // tgen
+};
+//SIG(1 ee75221) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} v1 Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75221 ::foo(){vfunc_called(this, "_ZN7ee752213fooEv");}
+void ee75221 ::bar(){vfunc_called(this, "_ZN7ee752213barEv");}
+ee75221 ::~ee75221(){ note_dtor("ee75221", this);} // tgen
+ee75221 ::ee75221(){ note_ctor("ee75221", this);} // tgen
+
+static void Test_ee75221()
+{
+ extern Class_Descriptor cd_ee75221;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee75221, buf);
+ ee75221 *dp, &lv = *(dp=new (buf) ee75221());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee75221)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75221)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc221*), ABISELECT(32,16), "ee75221");
+ check_base_class_offset(lv, (bb21*)(cc221*), ABISELECT(32,16), "ee75221");
+ check_base_class_offset(lv, (cc221*)(dd5221*), ABISELECT(32,16), "ee75221");
+ check_base_class_offset(lv, (dd5221*), ABISELECT(16,8), "ee75221");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75221.e");
+ test_class_info(&lv, &cd_ee75221);
+ dp->~ee75221();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75221(Test_ee75221, "ee75221", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee75221C1Ev();
+extern void _ZN7ee75221D1Ev();
+Name_Map name_map_ee75221[] = {
+ NSPAIR(_ZN7ee75221C1Ev),
+ NSPAIR(_ZN7ee75221D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc221;
+extern VTBL_ENTRY _ZTI5cc221[];
+extern VTBL_ENTRY _ZTV5cc221[];
+extern Class_Descriptor cd_dd5221;
+extern VTBL_ENTRY _ZTI6dd5221[];
+extern VTBL_ENTRY _ZTV6dd5221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5221[];
+static Base_Class bases_ee75221[] = {
+ // 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_bb21, 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_cc221, 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_dd5221, 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 _ZTI7ee75221[];
+extern void _ZN7ee752213fooEv();
+extern void _ZN7ee752213barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee752213barEv,_ZTv0_n16_N7ee752213barEv)();
+extern void ABISELECT(_ZThn16_N7ee752213barEv,_ZThn8_N7ee752213barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee752213fooEv,_ZTv0_n12_N7ee752213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee752213fooEv,_ZThn16_N7ee752213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75221[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75221[0]),
+ (VTBL_ENTRY)&_ZN7ee752213fooEv,
+ (VTBL_ENTRY)&_ZN7ee752213barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75221[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee752213barEv,_ZTv0_n16_N7ee752213barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75221[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee752213fooEv,_ZTv0_n12_N7ee752213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee75221[];
+extern void _ZN6dd52213barEv();
+static VTBL_ENTRY _tg__ZTV6dd5221__7ee75221[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5221[0]),
+ (VTBL_ENTRY)&_ZN6dd52213barEv,
+};
+extern void _ZN5cc2213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc221__6dd5221__7ee75221[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5221[0]),
+ (VTBL_ENTRY)&_ZN5cc2213fooEv,
+};
+static VTT_ENTRY vtt_ee75221[] = {
+ {&(_ZTV7ee75221[4]), 4,15},
+ {&(_ZTV7ee75221[10]), 10,15},
+ {&(_ZTV7ee75221[14]), 14,15},
+ {&(_tg__ZTV6dd5221__7ee75221[3]), 3,4},
+ {&(_tg__ZTV5cc221__6dd5221__7ee75221[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee75221[];
+extern VTBL_ENTRY _ZTV7ee75221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75221[];
+static VTBL_ENTRY alt_thunk_names541[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee752213fooEv,_ZTv0_n12_N7ee752213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee752213fooEv,_ZThn16_N7ee752213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee752213barEv,_ZTv0_n16_N7ee752213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee752213barEv,_ZThn8_N7ee752213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75221 = { "ee75221", // class name
+ bases_ee75221, 4,
+ &(vtc_ee75221[0]), // expected_vtbl_contents
+ &(vtt_ee75221[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee75221),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75221),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75221),5, //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 dd6221 : cc221 {
+ int d;
+ virtual void bar(); // _ZN6dd62213barEv
+ virtual void foo(); // _ZN6dd62213fooEv
+ ~dd6221(); // tgen
+ dd6221(); // tgen
+};
+//SIG(-1 dd6221) C1{ BC2{ BC3{ BC4{ v2 Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void dd6221 ::bar(){vfunc_called(this, "_ZN6dd62213barEv");}
+void dd6221 ::foo(){vfunc_called(this, "_ZN6dd62213fooEv");}
+dd6221 ::~dd6221(){ note_dtor("dd6221", this);} // tgen
+dd6221 ::dd6221(){ note_ctor("dd6221", this);} // tgen
+
+static void Test_dd6221()
+{
+ extern Class_Descriptor cd_dd6221;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd6221, buf);
+ dd6221 *dp, &lv = *(dp=new (buf) dd6221());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd6221)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6221)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc221*), 0, "dd6221");
+ check_base_class_offset(lv, (bb21*)(cc221*), 0, "dd6221");
+ check_base_class_offset(lv, (cc221*), 0, "dd6221");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd6221.d");
+ test_class_info(&lv, &cd_dd6221);
+ dp->~dd6221();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6221(Test_dd6221, "dd6221", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd6221C1Ev();
+extern void _ZN6dd6221D1Ev();
+Name_Map name_map_dd6221[] = {
+ NSPAIR(_ZN6dd6221C1Ev),
+ NSPAIR(_ZN6dd6221D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc221;
+extern VTBL_ENTRY _ZTI5cc221[];
+extern VTBL_ENTRY _ZTV5cc221[];
+static Base_Class bases_dd6221[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc221, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI6dd6221[];
+extern void _ZN6dd62213fooEv();
+extern void _ZN6dd62213barEv();
+static VTBL_ENTRY vtc_dd6221[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6221[0]),
+ (VTBL_ENTRY)&_ZN6dd62213fooEv,
+ (VTBL_ENTRY)&_ZN6dd62213barEv,
+};
+extern VTBL_ENTRY _ZTI6dd6221[];
+extern VTBL_ENTRY _ZTV6dd6221[];
+Class_Descriptor cd_dd6221 = { "dd6221", // class name
+ bases_dd6221, 3,
+ &(vtc_dd6221[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd6221),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6221),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 ee06221 : dd6221 {
+ int e;
+ ~ee06221(); // tgen
+ ee06221(); // tgen
+};
+//SIG(1 ee06221) C1{ BC2{ BC3{ BC4{ BC5{ v2 Fi} v2 Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee06221 ::~ee06221(){ note_dtor("ee06221", this);} // tgen
+ee06221 ::ee06221(){ note_ctor("ee06221", this);} // tgen
+
+static void Test_ee06221()
+{
+ extern Class_Descriptor cd_ee06221;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee06221, buf);
+ ee06221 *dp, &lv = *(dp=new (buf) ee06221());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee06221)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06221)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc221*)(dd6221*), 0, "ee06221");
+ check_base_class_offset(lv, (bb21*)(cc221*)(dd6221*), 0, "ee06221");
+ check_base_class_offset(lv, (cc221*)(dd6221*), 0, "ee06221");
+ check_base_class_offset(lv, (dd6221*), 0, "ee06221");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee06221.e");
+ test_class_info(&lv, &cd_ee06221);
+ dp->~ee06221();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06221(Test_ee06221, "ee06221", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee06221C1Ev();
+extern void _ZN7ee06221D1Ev();
+Name_Map name_map_ee06221[] = {
+ NSPAIR(_ZN7ee06221C1Ev),
+ NSPAIR(_ZN7ee06221D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc221;
+extern VTBL_ENTRY _ZTI5cc221[];
+extern VTBL_ENTRY _ZTV5cc221[];
+extern Class_Descriptor cd_dd6221;
+extern VTBL_ENTRY _ZTI6dd6221[];
+extern VTBL_ENTRY _ZTV6dd6221[];
+static Base_Class bases_ee06221[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc221, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6221, 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 _ZTI7ee06221[];
+extern void _ZN6dd62213fooEv();
+extern void _ZN6dd62213barEv();
+static VTBL_ENTRY vtc_ee06221[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06221[0]),
+ (VTBL_ENTRY)&_ZN6dd62213fooEv,
+ (VTBL_ENTRY)&_ZN6dd62213barEv,
+};
+extern VTBL_ENTRY _ZTI7ee06221[];
+extern VTBL_ENTRY _ZTV7ee06221[];
+Class_Descriptor cd_ee06221 = { "ee06221", // class name
+ bases_ee06221, 4,
+ &(vtc_ee06221[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee06221),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06221),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 ee16221 : virtual dd6221 {
+ int e;
+ ~ee16221(); // tgen
+ ee16221(); // tgen
+};
+//SIG(1 ee16221) C1{ VBC2{ BC3{ BC4{ BC5{ v2 Fi} v2 Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee16221 ::~ee16221(){ note_dtor("ee16221", this);} // tgen
+ee16221 ::ee16221(){ note_ctor("ee16221", this);} // tgen
+
+static void Test_ee16221()
+{
+ extern Class_Descriptor cd_ee16221;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee16221, buf);
+ ee16221 *dp, &lv = *(dp=new (buf) ee16221());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee16221)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16221)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc221*)(dd6221*), ABISELECT(16,8), "ee16221");
+ check_base_class_offset(lv, (bb21*)(cc221*)(dd6221*), ABISELECT(16,8), "ee16221");
+ check_base_class_offset(lv, (cc221*)(dd6221*), ABISELECT(16,8), "ee16221");
+ check_base_class_offset(lv, (dd6221*), ABISELECT(16,8), "ee16221");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16221.e");
+ test_class_info(&lv, &cd_ee16221);
+ dp->~ee16221();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16221(Test_ee16221, "ee16221", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee16221C1Ev();
+extern void _ZN7ee16221D1Ev();
+Name_Map name_map_ee16221[] = {
+ NSPAIR(_ZN7ee16221C1Ev),
+ NSPAIR(_ZN7ee16221D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc221;
+extern VTBL_ENTRY _ZTI5cc221[];
+extern VTBL_ENTRY _ZTV5cc221[];
+extern Class_Descriptor cd_dd6221;
+extern VTBL_ENTRY _ZTI6dd6221[];
+extern VTBL_ENTRY _ZTV6dd6221[];
+static Base_Class bases_ee16221[] = {
+ // 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_bb21, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc221, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6221, 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 _ZTI7ee16221[];
+extern void _ZN6dd62213fooEv();
+extern void _ZN6dd62213barEv();
+static VTBL_ENTRY vtc_ee16221[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16221[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16221[0]),
+ (VTBL_ENTRY)&_ZN6dd62213fooEv,
+ (VTBL_ENTRY)&_ZN6dd62213barEv,
+};
+extern VTBL_ENTRY _ZTV7ee16221[];
+static VTT_ENTRY vtt_ee16221[] = {
+ {&(_ZTV7ee16221[3]), 3,9},
+ {&(_ZTV7ee16221[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee16221[];
+extern VTBL_ENTRY _ZTV7ee16221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16221[];
+Class_Descriptor cd_ee16221 = { "ee16221", // class name
+ bases_ee16221, 4,
+ &(vtc_ee16221[0]), // expected_vtbl_contents
+ &(vtt_ee16221[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee16221),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16221),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16221),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 ee26221 : dd6221 {
+ int e;
+ virtual void foo(); // _ZN7ee262213fooEv
+ ~ee26221(); // tgen
+ ee26221(); // tgen
+};
+//SIG(1 ee26221) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} v1 Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26221 ::foo(){vfunc_called(this, "_ZN7ee262213fooEv");}
+ee26221 ::~ee26221(){ note_dtor("ee26221", this);} // tgen
+ee26221 ::ee26221(){ note_ctor("ee26221", this);} // tgen
+
+static void Test_ee26221()
+{
+ extern Class_Descriptor cd_ee26221;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee26221, buf);
+ ee26221 *dp, &lv = *(dp=new (buf) ee26221());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee26221)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26221)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc221*)(dd6221*), 0, "ee26221");
+ check_base_class_offset(lv, (bb21*)(cc221*)(dd6221*), 0, "ee26221");
+ check_base_class_offset(lv, (cc221*)(dd6221*), 0, "ee26221");
+ check_base_class_offset(lv, (dd6221*), 0, "ee26221");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee26221.e");
+ test_class_info(&lv, &cd_ee26221);
+ dp->~ee26221();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26221(Test_ee26221, "ee26221", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee26221C1Ev();
+extern void _ZN7ee26221D1Ev();
+Name_Map name_map_ee26221[] = {
+ NSPAIR(_ZN7ee26221C1Ev),
+ NSPAIR(_ZN7ee26221D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc221;
+extern VTBL_ENTRY _ZTI5cc221[];
+extern VTBL_ENTRY _ZTV5cc221[];
+extern Class_Descriptor cd_dd6221;
+extern VTBL_ENTRY _ZTI6dd6221[];
+extern VTBL_ENTRY _ZTV6dd6221[];
+static Base_Class bases_ee26221[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc221, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6221, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee26221[];
+extern void _ZN7ee262213fooEv();
+extern void _ZN6dd62213barEv();
+static VTBL_ENTRY vtc_ee26221[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26221[0]),
+ (VTBL_ENTRY)&_ZN7ee262213fooEv,
+ (VTBL_ENTRY)&_ZN6dd62213barEv,
+};
+extern VTBL_ENTRY _ZTI7ee26221[];
+extern VTBL_ENTRY _ZTV7ee26221[];
+Class_Descriptor cd_ee26221 = { "ee26221", // class name
+ bases_ee26221, 4,
+ &(vtc_ee26221[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee26221),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26221),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 ee36221 : virtual dd6221 {
+ int e;
+ virtual void foo(); // _ZN7ee362213fooEv
+ ~ee36221(); // tgen
+ ee36221(); // tgen
+};
+//SIG(1 ee36221) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} v1 Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36221 ::foo(){vfunc_called(this, "_ZN7ee362213fooEv");}
+ee36221 ::~ee36221(){ note_dtor("ee36221", this);} // tgen
+ee36221 ::ee36221(){ note_ctor("ee36221", this);} // tgen
+
+static void Test_ee36221()
+{
+ extern Class_Descriptor cd_ee36221;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee36221, buf);
+ ee36221 *dp, &lv = *(dp=new (buf) ee36221());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee36221)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36221)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc221*)(dd6221*), ABISELECT(16,8), "ee36221");
+ check_base_class_offset(lv, (bb21*)(cc221*)(dd6221*), ABISELECT(16,8), "ee36221");
+ check_base_class_offset(lv, (cc221*)(dd6221*), ABISELECT(16,8), "ee36221");
+ check_base_class_offset(lv, (dd6221*), ABISELECT(16,8), "ee36221");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36221.e");
+ test_class_info(&lv, &cd_ee36221);
+ dp->~ee36221();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36221(Test_ee36221, "ee36221", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee36221C1Ev();
+extern void _ZN7ee36221D1Ev();
+Name_Map name_map_ee36221[] = {
+ NSPAIR(_ZN7ee36221C1Ev),
+ NSPAIR(_ZN7ee36221D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc221;
+extern VTBL_ENTRY _ZTI5cc221[];
+extern VTBL_ENTRY _ZTV5cc221[];
+extern Class_Descriptor cd_dd6221;
+extern VTBL_ENTRY _ZTI6dd6221[];
+extern VTBL_ENTRY _ZTV6dd6221[];
+static Base_Class bases_ee36221[] = {
+ // 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_bb21, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc221, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6221, 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 _ZTI7ee36221[];
+extern void _ZN7ee362213fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee362213fooEv,_ZTv0_n12_N7ee362213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee362213fooEv,_ZThn8_N7ee362213fooEv)() __attribute__((weak));
+extern void _ZN6dd62213barEv();
+static VTBL_ENTRY vtc_ee36221[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36221[0]),
+ (VTBL_ENTRY)&_ZN7ee362213fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36221[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee362213fooEv,_ZTv0_n12_N7ee362213fooEv),
+ (VTBL_ENTRY)&_ZN6dd62213barEv,
+};
+extern VTBL_ENTRY _ZTV7ee36221[];
+static VTT_ENTRY vtt_ee36221[] = {
+ {&(_ZTV7ee36221[3]), 3,10},
+ {&(_ZTV7ee36221[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee36221[];
+extern VTBL_ENTRY _ZTV7ee36221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36221[];
+static VTBL_ENTRY alt_thunk_names542[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee362213fooEv,_ZTv0_n12_N7ee362213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee362213fooEv,_ZThn8_N7ee362213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36221 = { "ee36221", // class name
+ bases_ee36221, 4,
+ &(vtc_ee36221[0]), // expected_vtbl_contents
+ &(vtt_ee36221[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee36221),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36221),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36221),2, //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 ee46221 : dd6221 {
+ int e;
+ virtual void bar(); // _ZN7ee462213barEv
+ ~ee46221(); // tgen
+ ee46221(); // tgen
+};
+//SIG(1 ee46221) C1{ BC2{ BC3{ BC4{ BC5{ v2 Fi} v2 Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46221 ::bar(){vfunc_called(this, "_ZN7ee462213barEv");}
+ee46221 ::~ee46221(){ note_dtor("ee46221", this);} // tgen
+ee46221 ::ee46221(){ note_ctor("ee46221", this);} // tgen
+
+static void Test_ee46221()
+{
+ extern Class_Descriptor cd_ee46221;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee46221, buf);
+ ee46221 *dp, &lv = *(dp=new (buf) ee46221());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee46221)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46221)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc221*)(dd6221*), 0, "ee46221");
+ check_base_class_offset(lv, (bb21*)(cc221*)(dd6221*), 0, "ee46221");
+ check_base_class_offset(lv, (cc221*)(dd6221*), 0, "ee46221");
+ check_base_class_offset(lv, (dd6221*), 0, "ee46221");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee46221.e");
+ test_class_info(&lv, &cd_ee46221);
+ dp->~ee46221();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46221(Test_ee46221, "ee46221", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee46221C1Ev();
+extern void _ZN7ee46221D1Ev();
+Name_Map name_map_ee46221[] = {
+ NSPAIR(_ZN7ee46221C1Ev),
+ NSPAIR(_ZN7ee46221D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc221;
+extern VTBL_ENTRY _ZTI5cc221[];
+extern VTBL_ENTRY _ZTV5cc221[];
+extern Class_Descriptor cd_dd6221;
+extern VTBL_ENTRY _ZTI6dd6221[];
+extern VTBL_ENTRY _ZTV6dd6221[];
+static Base_Class bases_ee46221[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc221, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6221, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee46221[];
+extern void _ZN6dd62213fooEv();
+extern void _ZN7ee462213barEv();
+static VTBL_ENTRY vtc_ee46221[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46221[0]),
+ (VTBL_ENTRY)&_ZN6dd62213fooEv,
+ (VTBL_ENTRY)&_ZN7ee462213barEv,
+};
+extern VTBL_ENTRY _ZTI7ee46221[];
+extern VTBL_ENTRY _ZTV7ee46221[];
+Class_Descriptor cd_ee46221 = { "ee46221", // class name
+ bases_ee46221, 4,
+ &(vtc_ee46221[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee46221),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46221),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 ee56221 : virtual dd6221 {
+ int e;
+ virtual void bar(); // _ZN7ee562213barEv
+ ~ee56221(); // tgen
+ ee56221(); // tgen
+};
+//SIG(1 ee56221) C1{ VBC2{ BC3{ BC4{ BC5{ v2 Fi} v2 Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56221 ::bar(){vfunc_called(this, "_ZN7ee562213barEv");}
+ee56221 ::~ee56221(){ note_dtor("ee56221", this);} // tgen
+ee56221 ::ee56221(){ note_ctor("ee56221", this);} // tgen
+
+static void Test_ee56221()
+{
+ extern Class_Descriptor cd_ee56221;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee56221, buf);
+ ee56221 *dp, &lv = *(dp=new (buf) ee56221());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee56221)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56221)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc221*)(dd6221*), ABISELECT(16,8), "ee56221");
+ check_base_class_offset(lv, (bb21*)(cc221*)(dd6221*), ABISELECT(16,8), "ee56221");
+ check_base_class_offset(lv, (cc221*)(dd6221*), ABISELECT(16,8), "ee56221");
+ check_base_class_offset(lv, (dd6221*), ABISELECT(16,8), "ee56221");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56221.e");
+ test_class_info(&lv, &cd_ee56221);
+ dp->~ee56221();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56221(Test_ee56221, "ee56221", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee56221C1Ev();
+extern void _ZN7ee56221D1Ev();
+Name_Map name_map_ee56221[] = {
+ NSPAIR(_ZN7ee56221C1Ev),
+ NSPAIR(_ZN7ee56221D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc221;
+extern VTBL_ENTRY _ZTI5cc221[];
+extern VTBL_ENTRY _ZTV5cc221[];
+extern Class_Descriptor cd_dd6221;
+extern VTBL_ENTRY _ZTI6dd6221[];
+extern VTBL_ENTRY _ZTV6dd6221[];
+static Base_Class bases_ee56221[] = {
+ // 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_bb21, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc221, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6221, 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 _ZTI7ee56221[];
+extern void _ZN7ee562213barEv();
+extern void _ZN6dd62213fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee562213barEv,_ZTv0_n16_N7ee562213barEv)();
+extern void ABISELECT(_ZThn16_N7ee562213barEv,_ZThn8_N7ee562213barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56221[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56221[0]),
+ (VTBL_ENTRY)&_ZN7ee562213barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56221[0]),
+ (VTBL_ENTRY)&_ZN6dd62213fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee562213barEv,_ZTv0_n16_N7ee562213barEv),
+};
+extern VTBL_ENTRY _ZTV7ee56221[];
+static VTT_ENTRY vtt_ee56221[] = {
+ {&(_ZTV7ee56221[3]), 3,10},
+ {&(_ZTV7ee56221[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee56221[];
+extern VTBL_ENTRY _ZTV7ee56221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56221[];
+static VTBL_ENTRY alt_thunk_names543[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee562213barEv,_ZTv0_n16_N7ee562213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee562213barEv,_ZThn8_N7ee562213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56221 = { "ee56221", // class name
+ bases_ee56221, 4,
+ &(vtc_ee56221[0]), // expected_vtbl_contents
+ &(vtt_ee56221[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee56221),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56221),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56221),2, //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 ee66221 : dd6221 {
+ int e;
+ virtual void foo(); // _ZN7ee662213fooEv
+ virtual void bar(); // _ZN7ee662213barEv
+ ~ee66221(); // tgen
+ ee66221(); // tgen
+};
+//SIG(1 ee66221) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} v1 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66221 ::foo(){vfunc_called(this, "_ZN7ee662213fooEv");}
+void ee66221 ::bar(){vfunc_called(this, "_ZN7ee662213barEv");}
+ee66221 ::~ee66221(){ note_dtor("ee66221", this);} // tgen
+ee66221 ::ee66221(){ note_ctor("ee66221", this);} // tgen
+
+static void Test_ee66221()
+{
+ extern Class_Descriptor cd_ee66221;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee66221, buf);
+ ee66221 *dp, &lv = *(dp=new (buf) ee66221());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee66221)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66221)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc221*)(dd6221*), 0, "ee66221");
+ check_base_class_offset(lv, (bb21*)(cc221*)(dd6221*), 0, "ee66221");
+ check_base_class_offset(lv, (cc221*)(dd6221*), 0, "ee66221");
+ check_base_class_offset(lv, (dd6221*), 0, "ee66221");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee66221.e");
+ test_class_info(&lv, &cd_ee66221);
+ dp->~ee66221();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66221(Test_ee66221, "ee66221", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee66221C1Ev();
+extern void _ZN7ee66221D1Ev();
+Name_Map name_map_ee66221[] = {
+ NSPAIR(_ZN7ee66221C1Ev),
+ NSPAIR(_ZN7ee66221D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc221;
+extern VTBL_ENTRY _ZTI5cc221[];
+extern VTBL_ENTRY _ZTV5cc221[];
+extern Class_Descriptor cd_dd6221;
+extern VTBL_ENTRY _ZTI6dd6221[];
+extern VTBL_ENTRY _ZTV6dd6221[];
+static Base_Class bases_ee66221[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc221, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6221, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee66221[];
+extern void _ZN7ee662213fooEv();
+extern void _ZN7ee662213barEv();
+static VTBL_ENTRY vtc_ee66221[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66221[0]),
+ (VTBL_ENTRY)&_ZN7ee662213fooEv,
+ (VTBL_ENTRY)&_ZN7ee662213barEv,
+};
+extern VTBL_ENTRY _ZTI7ee66221[];
+extern VTBL_ENTRY _ZTV7ee66221[];
+Class_Descriptor cd_ee66221 = { "ee66221", // class name
+ bases_ee66221, 4,
+ &(vtc_ee66221[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee66221),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66221),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 ee76221 : virtual dd6221 {
+ int e;
+ virtual void foo(); // _ZN7ee762213fooEv
+ virtual void bar(); // _ZN7ee762213barEv
+ ~ee76221(); // tgen
+ ee76221(); // tgen
+};
+//SIG(1 ee76221) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} v1 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76221 ::foo(){vfunc_called(this, "_ZN7ee762213fooEv");}
+void ee76221 ::bar(){vfunc_called(this, "_ZN7ee762213barEv");}
+ee76221 ::~ee76221(){ note_dtor("ee76221", this);} // tgen
+ee76221 ::ee76221(){ note_ctor("ee76221", this);} // tgen
+
+static void Test_ee76221()
+{
+ extern Class_Descriptor cd_ee76221;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee76221, buf);
+ ee76221 *dp, &lv = *(dp=new (buf) ee76221());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee76221)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76221)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc221*)(dd6221*), ABISELECT(16,8), "ee76221");
+ check_base_class_offset(lv, (bb21*)(cc221*)(dd6221*), ABISELECT(16,8), "ee76221");
+ check_base_class_offset(lv, (cc221*)(dd6221*), ABISELECT(16,8), "ee76221");
+ check_base_class_offset(lv, (dd6221*), ABISELECT(16,8), "ee76221");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76221.e");
+ test_class_info(&lv, &cd_ee76221);
+ dp->~ee76221();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76221(Test_ee76221, "ee76221", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee76221C1Ev();
+extern void _ZN7ee76221D1Ev();
+Name_Map name_map_ee76221[] = {
+ NSPAIR(_ZN7ee76221C1Ev),
+ NSPAIR(_ZN7ee76221D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc221;
+extern VTBL_ENTRY _ZTI5cc221[];
+extern VTBL_ENTRY _ZTV5cc221[];
+extern Class_Descriptor cd_dd6221;
+extern VTBL_ENTRY _ZTI6dd6221[];
+extern VTBL_ENTRY _ZTV6dd6221[];
+static Base_Class bases_ee76221[] = {
+ // 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_bb21, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc221, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6221, 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 _ZTI7ee76221[];
+extern void _ZN7ee762213fooEv();
+extern void _ZN7ee762213barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee762213fooEv,_ZTv0_n12_N7ee762213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee762213fooEv,_ZThn8_N7ee762213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee762213barEv,_ZTv0_n16_N7ee762213barEv)();
+extern void ABISELECT(_ZThn16_N7ee762213barEv,_ZThn8_N7ee762213barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76221[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76221[0]),
+ (VTBL_ENTRY)&_ZN7ee762213fooEv,
+ (VTBL_ENTRY)&_ZN7ee762213barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76221[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee762213fooEv,_ZTv0_n12_N7ee762213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee762213barEv,_ZTv0_n16_N7ee762213barEv),
+};
+extern VTBL_ENTRY _ZTV7ee76221[];
+static VTT_ENTRY vtt_ee76221[] = {
+ {&(_ZTV7ee76221[3]), 3,11},
+ {&(_ZTV7ee76221[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee76221[];
+extern VTBL_ENTRY _ZTV7ee76221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76221[];
+static VTBL_ENTRY alt_thunk_names544[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee762213barEv,_ZTv0_n16_N7ee762213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee762213barEv,_ZThn8_N7ee762213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee762213fooEv,_ZTv0_n12_N7ee762213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee762213fooEv,_ZThn8_N7ee762213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76221 = { "ee76221", // class name
+ bases_ee76221, 4,
+ &(vtc_ee76221[0]), // expected_vtbl_contents
+ &(vtt_ee76221[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee76221),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76221),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76221),2, //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 dd7221 : virtual cc221 {
+ int d;
+ virtual void bar(); // _ZN6dd72213barEv
+ virtual void foo(); // _ZN6dd72213fooEv
+ ~dd7221(); // tgen
+ dd7221(); // tgen
+};
+//SIG(-1 dd7221) C1{ VBC2{ BC3{ BC4{ v2 Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void dd7221 ::bar(){vfunc_called(this, "_ZN6dd72213barEv");}
+void dd7221 ::foo(){vfunc_called(this, "_ZN6dd72213fooEv");}
+dd7221 ::~dd7221(){ note_dtor("dd7221", this);} // tgen
+dd7221 ::dd7221(){ note_ctor("dd7221", this);} // tgen
+
+static void Test_dd7221()
+{
+ extern Class_Descriptor cd_dd7221;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd7221, buf);
+ dd7221 *dp, &lv = *(dp=new (buf) dd7221());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd7221)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7221)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc221*), ABISELECT(16,8), "dd7221");
+ check_base_class_offset(lv, (bb21*)(cc221*), ABISELECT(16,8), "dd7221");
+ check_base_class_offset(lv, (cc221*), ABISELECT(16,8), "dd7221");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7221.d");
+ test_class_info(&lv, &cd_dd7221);
+ dp->~dd7221();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7221(Test_dd7221, "dd7221", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd7221C1Ev();
+extern void _ZN6dd7221D1Ev();
+Name_Map name_map_dd7221[] = {
+ NSPAIR(_ZN6dd7221C1Ev),
+ NSPAIR(_ZN6dd7221D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc221;
+extern VTBL_ENTRY _ZTI5cc221[];
+extern VTBL_ENTRY _ZTV5cc221[];
+static Base_Class bases_dd7221[] = {
+ // 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_bb21, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc221, 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 _ZTI6dd7221[];
+extern void _ZN6dd72213barEv();
+extern void _ZN6dd72213fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd72213fooEv,_ZTv0_n12_N6dd72213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72213fooEv,_ZThn8_N6dd72213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7221[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7221[0]),
+ (VTBL_ENTRY)&_ZN6dd72213barEv,
+ (VTBL_ENTRY)&_ZN6dd72213fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7221[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72213fooEv,_ZTv0_n12_N6dd72213fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd7221[];
+static VTT_ENTRY vtt_dd7221[] = {
+ {&(_ZTV6dd7221[3]), 3,9},
+ {&(_ZTV6dd7221[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI6dd7221[];
+extern VTBL_ENTRY _ZTV6dd7221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7221[];
+static VTBL_ENTRY alt_thunk_names545[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72213fooEv,_ZTv0_n12_N6dd72213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72213fooEv,_ZThn8_N6dd72213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7221 = { "dd7221", // class name
+ bases_dd7221, 3,
+ &(vtc_dd7221[0]), // expected_vtbl_contents
+ &(vtt_dd7221[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd7221),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7221),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7221),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names545,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07221 : dd7221 {
+ int e;
+ ~ee07221(); // tgen
+ ee07221(); // tgen
+};
+//SIG(1 ee07221) C1{ BC2{ VBC3{ BC4{ BC5{ v2 Fi} v2 Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee07221 ::~ee07221(){ note_dtor("ee07221", this);} // tgen
+ee07221 ::ee07221(){ note_ctor("ee07221", this);} // tgen
+
+static void Test_ee07221()
+{
+ extern Class_Descriptor cd_ee07221;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee07221, buf);
+ ee07221 *dp, &lv = *(dp=new (buf) ee07221());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee07221)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07221)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc221*), ABISELECT(16,12), "ee07221");
+ check_base_class_offset(lv, (bb21*)(cc221*), ABISELECT(16,12), "ee07221");
+ check_base_class_offset(lv, (cc221*)(dd7221*), ABISELECT(16,12), "ee07221");
+ check_base_class_offset(lv, (dd7221*), 0, "ee07221");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07221.e");
+ test_class_info(&lv, &cd_ee07221);
+ dp->~ee07221();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07221(Test_ee07221, "ee07221", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee07221C1Ev();
+extern void _ZN7ee07221D1Ev();
+Name_Map name_map_ee07221[] = {
+ NSPAIR(_ZN7ee07221C1Ev),
+ NSPAIR(_ZN7ee07221D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc221;
+extern VTBL_ENTRY _ZTI5cc221[];
+extern VTBL_ENTRY _ZTV5cc221[];
+extern Class_Descriptor cd_dd7221;
+extern VTBL_ENTRY _ZTI6dd7221[];
+extern VTBL_ENTRY _ZTV6dd7221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7221[];
+static Base_Class bases_ee07221[] = {
+ // 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_bb21, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc221, 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_dd7221, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07221[];
+extern void _ZN6dd72213barEv();
+extern void _ZN6dd72213fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd72213fooEv,_ZTv0_n12_N6dd72213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72213fooEv,_ZThn12_N6dd72213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07221[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07221[0]),
+ (VTBL_ENTRY)&_ZN6dd72213barEv,
+ (VTBL_ENTRY)&_ZN6dd72213fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07221[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72213fooEv,_ZTv0_n12_N6dd72213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee07221[];
+extern void _ZN6dd72213barEv();
+extern void _ZN6dd72213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7221__7ee07221[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7221[0]),
+ (VTBL_ENTRY)&_ZN6dd72213barEv,
+ (VTBL_ENTRY)&_ZN6dd72213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72213fooEv,_ZTv0_n12_N6dd72213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72213fooEv,_ZThn12_N6dd72213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc221__6dd7221__7ee07221[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7221[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72213fooEv,_ZTv0_n12_N6dd72213fooEv),
+};
+static VTT_ENTRY vtt_ee07221[] = {
+ {&(_ZTV7ee07221[3]), 3,9},
+ {&(_tg__ZTV6dd7221__7ee07221[3]), 3,5},
+ {&(_tg__ZTV5cc221__6dd7221__7ee07221[3]), 3,4},
+ {&(_ZTV7ee07221[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee07221[];
+extern VTBL_ENTRY _ZTV7ee07221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07221[];
+static VTBL_ENTRY alt_thunk_names546[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72213fooEv,_ZTv0_n12_N6dd72213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72213fooEv,_ZThn12_N6dd72213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72213fooEv,_ZThn12_N6dd72213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07221 = { "ee07221", // class name
+ bases_ee07221, 4,
+ &(vtc_ee07221[0]), // expected_vtbl_contents
+ &(vtt_ee07221[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee07221),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07221),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07221),4, //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 ee17221 : virtual dd7221 {
+ int e;
+ ~ee17221(); // tgen
+ ee17221(); // tgen
+};
+//SIG(1 ee17221) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 Fi} v2 Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee17221 ::~ee17221(){ note_dtor("ee17221", this);} // tgen
+ee17221 ::ee17221(){ note_ctor("ee17221", this);} // tgen
+
+static void Test_ee17221()
+{
+ extern Class_Descriptor cd_ee17221;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee17221, buf);
+ ee17221 *dp, &lv = *(dp=new (buf) ee17221());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee17221)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17221)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc221*), ABISELECT(32,16), "ee17221");
+ check_base_class_offset(lv, (bb21*)(cc221*), ABISELECT(32,16), "ee17221");
+ check_base_class_offset(lv, (cc221*)(dd7221*), ABISELECT(32,16), "ee17221");
+ check_base_class_offset(lv, (dd7221*), ABISELECT(16,8), "ee17221");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17221.e");
+ test_class_info(&lv, &cd_ee17221);
+ dp->~ee17221();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17221(Test_ee17221, "ee17221", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee17221C1Ev();
+extern void _ZN7ee17221D1Ev();
+Name_Map name_map_ee17221[] = {
+ NSPAIR(_ZN7ee17221C1Ev),
+ NSPAIR(_ZN7ee17221D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc221;
+extern VTBL_ENTRY _ZTI5cc221[];
+extern VTBL_ENTRY _ZTV5cc221[];
+extern Class_Descriptor cd_dd7221;
+extern VTBL_ENTRY _ZTI6dd7221[];
+extern VTBL_ENTRY _ZTV6dd7221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7221[];
+static Base_Class bases_ee17221[] = {
+ // 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_bb21, 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_cc221, 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_dd7221, 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 _ZTI7ee17221[];
+extern void _ZN6dd72213barEv();
+extern void _ZN6dd72213fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd72213fooEv,_ZTv0_n12_N6dd72213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72213fooEv,_ZThn8_N6dd72213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17221[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17221[0]),
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17221[0]),
+ (VTBL_ENTRY)&_ZN6dd72213barEv,
+ (VTBL_ENTRY)&_ZN6dd72213fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17221[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72213fooEv,_ZTv0_n12_N6dd72213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee17221[];
+extern void _ZN6dd72213barEv();
+extern void _ZN6dd72213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7221__7ee17221[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7221[0]),
+ (VTBL_ENTRY)&_ZN6dd72213barEv,
+ (VTBL_ENTRY)&_ZN6dd72213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72213fooEv,_ZTv0_n12_N6dd72213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72213fooEv,_ZThn8_N6dd72213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc221__6dd7221__7ee17221[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7221[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72213fooEv,_ZTv0_n12_N6dd72213fooEv),
+};
+static VTT_ENTRY vtt_ee17221[] = {
+ {&(_ZTV7ee17221[4]), 4,15},
+ {&(_ZTV7ee17221[9]), 9,15},
+ {&(_ZTV7ee17221[14]), 14,15},
+ {&(_tg__ZTV6dd7221__7ee17221[3]), 3,5},
+ {&(_tg__ZTV5cc221__6dd7221__7ee17221[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee17221[];
+extern VTBL_ENTRY _ZTV7ee17221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17221[];
+static VTBL_ENTRY alt_thunk_names547[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72213fooEv,_ZTv0_n12_N6dd72213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72213fooEv,_ZThn8_N6dd72213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72213fooEv,_ZThn8_N6dd72213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17221 = { "ee17221", // class name
+ bases_ee17221, 4,
+ &(vtc_ee17221[0]), // expected_vtbl_contents
+ &(vtt_ee17221[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee17221),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17221),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17221),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names547,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee27221 : dd7221 {
+ int e;
+ virtual void foo(); // _ZN7ee272213fooEv
+ ~ee27221(); // tgen
+ ee27221(); // tgen
+};
+//SIG(1 ee27221) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} v1 Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27221 ::foo(){vfunc_called(this, "_ZN7ee272213fooEv");}
+ee27221 ::~ee27221(){ note_dtor("ee27221", this);} // tgen
+ee27221 ::ee27221(){ note_ctor("ee27221", this);} // tgen
+
+static void Test_ee27221()
+{
+ extern Class_Descriptor cd_ee27221;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee27221, buf);
+ ee27221 *dp, &lv = *(dp=new (buf) ee27221());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee27221)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27221)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc221*), ABISELECT(16,12), "ee27221");
+ check_base_class_offset(lv, (bb21*)(cc221*), ABISELECT(16,12), "ee27221");
+ check_base_class_offset(lv, (cc221*)(dd7221*), ABISELECT(16,12), "ee27221");
+ check_base_class_offset(lv, (dd7221*), 0, "ee27221");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27221.e");
+ test_class_info(&lv, &cd_ee27221);
+ dp->~ee27221();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27221(Test_ee27221, "ee27221", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee27221C1Ev();
+extern void _ZN7ee27221D1Ev();
+Name_Map name_map_ee27221[] = {
+ NSPAIR(_ZN7ee27221C1Ev),
+ NSPAIR(_ZN7ee27221D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc221;
+extern VTBL_ENTRY _ZTI5cc221[];
+extern VTBL_ENTRY _ZTV5cc221[];
+extern Class_Descriptor cd_dd7221;
+extern VTBL_ENTRY _ZTI6dd7221[];
+extern VTBL_ENTRY _ZTV6dd7221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7221[];
+static Base_Class bases_ee27221[] = {
+ // 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_bb21, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc221, 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_dd7221, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27221[];
+extern void _ZN6dd72213barEv();
+extern void _ZN7ee272213fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee272213fooEv,_ZTv0_n12_N7ee272213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee272213fooEv,_ZThn12_N7ee272213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27221[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27221[0]),
+ (VTBL_ENTRY)&_ZN6dd72213barEv,
+ (VTBL_ENTRY)&_ZN7ee272213fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27221[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee272213fooEv,_ZTv0_n12_N7ee272213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee27221[];
+extern void _ZN6dd72213barEv();
+extern void _ZN6dd72213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7221__7ee27221[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7221[0]),
+ (VTBL_ENTRY)&_ZN6dd72213barEv,
+ (VTBL_ENTRY)&_ZN6dd72213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72213fooEv,_ZTv0_n12_N6dd72213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72213fooEv,_ZThn12_N6dd72213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc221__6dd7221__7ee27221[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7221[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72213fooEv,_ZTv0_n12_N6dd72213fooEv),
+};
+static VTT_ENTRY vtt_ee27221[] = {
+ {&(_ZTV7ee27221[3]), 3,9},
+ {&(_tg__ZTV6dd7221__7ee27221[3]), 3,5},
+ {&(_tg__ZTV5cc221__6dd7221__7ee27221[3]), 3,4},
+ {&(_ZTV7ee27221[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee27221[];
+extern VTBL_ENTRY _ZTV7ee27221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27221[];
+static VTBL_ENTRY alt_thunk_names548[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72213fooEv,_ZTv0_n12_N6dd72213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72213fooEv,_ZThn12_N6dd72213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee272213fooEv,_ZTv0_n12_N7ee272213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee272213fooEv,_ZThn12_N7ee272213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27221 = { "ee27221", // class name
+ bases_ee27221, 4,
+ &(vtc_ee27221[0]), // expected_vtbl_contents
+ &(vtt_ee27221[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee27221),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27221),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27221),4, //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 ee37221 : virtual dd7221 {
+ int e;
+ virtual void foo(); // _ZN7ee372213fooEv
+ ~ee37221(); // tgen
+ ee37221(); // tgen
+};
+//SIG(1 ee37221) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} v1 Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37221 ::foo(){vfunc_called(this, "_ZN7ee372213fooEv");}
+ee37221 ::~ee37221(){ note_dtor("ee37221", this);} // tgen
+ee37221 ::ee37221(){ note_ctor("ee37221", this);} // tgen
+
+static void Test_ee37221()
+{
+ extern Class_Descriptor cd_ee37221;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee37221, buf);
+ ee37221 *dp, &lv = *(dp=new (buf) ee37221());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee37221)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37221)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc221*), ABISELECT(32,16), "ee37221");
+ check_base_class_offset(lv, (bb21*)(cc221*), ABISELECT(32,16), "ee37221");
+ check_base_class_offset(lv, (cc221*)(dd7221*), ABISELECT(32,16), "ee37221");
+ check_base_class_offset(lv, (dd7221*), ABISELECT(16,8), "ee37221");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37221.e");
+ test_class_info(&lv, &cd_ee37221);
+ dp->~ee37221();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37221(Test_ee37221, "ee37221", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee37221C1Ev();
+extern void _ZN7ee37221D1Ev();
+Name_Map name_map_ee37221[] = {
+ NSPAIR(_ZN7ee37221C1Ev),
+ NSPAIR(_ZN7ee37221D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc221;
+extern VTBL_ENTRY _ZTI5cc221[];
+extern VTBL_ENTRY _ZTV5cc221[];
+extern Class_Descriptor cd_dd7221;
+extern VTBL_ENTRY _ZTI6dd7221[];
+extern VTBL_ENTRY _ZTV6dd7221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7221[];
+static Base_Class bases_ee37221[] = {
+ // 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_bb21, 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_cc221, 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_dd7221, 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 _ZTI7ee37221[];
+extern void _ZN7ee372213fooEv();
+extern void _ZN6dd72213barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee372213fooEv,_ZTv0_n20_N7ee372213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee372213fooEv,_ZThn8_N7ee372213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee372213fooEv,_ZTv0_n12_N7ee372213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee372213fooEv,_ZThn16_N7ee372213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37221[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37221[0]),
+ (VTBL_ENTRY)&_ZN7ee372213fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37221[0]),
+ (VTBL_ENTRY)&_ZN6dd72213barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee372213fooEv,_ZTv0_n20_N7ee372213fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37221[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee372213fooEv,_ZTv0_n12_N7ee372213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee37221[];
+extern void _ZN6dd72213barEv();
+extern void _ZN6dd72213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7221__7ee37221[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7221[0]),
+ (VTBL_ENTRY)&_ZN6dd72213barEv,
+ (VTBL_ENTRY)&_ZN6dd72213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72213fooEv,_ZTv0_n12_N6dd72213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72213fooEv,_ZThn8_N6dd72213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc221__6dd7221__7ee37221[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7221[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72213fooEv,_ZTv0_n12_N6dd72213fooEv),
+};
+static VTT_ENTRY vtt_ee37221[] = {
+ {&(_ZTV7ee37221[4]), 4,16},
+ {&(_ZTV7ee37221[10]), 10,16},
+ {&(_ZTV7ee37221[15]), 15,16},
+ {&(_tg__ZTV6dd7221__7ee37221[3]), 3,5},
+ {&(_tg__ZTV5cc221__6dd7221__7ee37221[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee37221[];
+extern VTBL_ENTRY _ZTV7ee37221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37221[];
+static VTBL_ENTRY alt_thunk_names549[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72213fooEv,_ZTv0_n12_N6dd72213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72213fooEv,_ZThn8_N6dd72213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee372213fooEv,_ZTv0_n12_N7ee372213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee372213fooEv,_ZThn16_N7ee372213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee372213fooEv,_ZTv0_n20_N7ee372213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee372213fooEv,_ZThn8_N7ee372213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37221 = { "ee37221", // class name
+ bases_ee37221, 4,
+ &(vtc_ee37221[0]), // expected_vtbl_contents
+ &(vtt_ee37221[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee37221),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37221),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37221),5, //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 ee47221 : dd7221 {
+ int e;
+ virtual void bar(); // _ZN7ee472213barEv
+ ~ee47221(); // tgen
+ ee47221(); // tgen
+};
+//SIG(1 ee47221) C1{ BC2{ VBC3{ BC4{ BC5{ v2 Fi} v2 Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47221 ::bar(){vfunc_called(this, "_ZN7ee472213barEv");}
+ee47221 ::~ee47221(){ note_dtor("ee47221", this);} // tgen
+ee47221 ::ee47221(){ note_ctor("ee47221", this);} // tgen
+
+static void Test_ee47221()
+{
+ extern Class_Descriptor cd_ee47221;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee47221, buf);
+ ee47221 *dp, &lv = *(dp=new (buf) ee47221());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee47221)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47221)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc221*), ABISELECT(16,12), "ee47221");
+ check_base_class_offset(lv, (bb21*)(cc221*), ABISELECT(16,12), "ee47221");
+ check_base_class_offset(lv, (cc221*)(dd7221*), ABISELECT(16,12), "ee47221");
+ check_base_class_offset(lv, (dd7221*), 0, "ee47221");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47221.e");
+ test_class_info(&lv, &cd_ee47221);
+ dp->~ee47221();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47221(Test_ee47221, "ee47221", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee47221C1Ev();
+extern void _ZN7ee47221D1Ev();
+Name_Map name_map_ee47221[] = {
+ NSPAIR(_ZN7ee47221C1Ev),
+ NSPAIR(_ZN7ee47221D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc221;
+extern VTBL_ENTRY _ZTI5cc221[];
+extern VTBL_ENTRY _ZTV5cc221[];
+extern Class_Descriptor cd_dd7221;
+extern VTBL_ENTRY _ZTI6dd7221[];
+extern VTBL_ENTRY _ZTV6dd7221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7221[];
+static Base_Class bases_ee47221[] = {
+ // 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_bb21, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc221, 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_dd7221, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47221[];
+extern void _ZN7ee472213barEv();
+extern void _ZN6dd72213fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd72213fooEv,_ZTv0_n12_N6dd72213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72213fooEv,_ZThn12_N6dd72213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47221[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47221[0]),
+ (VTBL_ENTRY)&_ZN7ee472213barEv,
+ (VTBL_ENTRY)&_ZN6dd72213fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47221[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72213fooEv,_ZTv0_n12_N6dd72213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee47221[];
+extern void _ZN6dd72213barEv();
+extern void _ZN6dd72213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7221__7ee47221[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7221[0]),
+ (VTBL_ENTRY)&_ZN6dd72213barEv,
+ (VTBL_ENTRY)&_ZN6dd72213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72213fooEv,_ZTv0_n12_N6dd72213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72213fooEv,_ZThn12_N6dd72213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc221__6dd7221__7ee47221[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7221[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72213fooEv,_ZTv0_n12_N6dd72213fooEv),
+};
+static VTT_ENTRY vtt_ee47221[] = {
+ {&(_ZTV7ee47221[3]), 3,9},
+ {&(_tg__ZTV6dd7221__7ee47221[3]), 3,5},
+ {&(_tg__ZTV5cc221__6dd7221__7ee47221[3]), 3,4},
+ {&(_ZTV7ee47221[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee47221[];
+extern VTBL_ENTRY _ZTV7ee47221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47221[];
+static VTBL_ENTRY alt_thunk_names550[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72213fooEv,_ZTv0_n12_N6dd72213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72213fooEv,_ZThn12_N6dd72213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72213fooEv,_ZThn12_N6dd72213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47221 = { "ee47221", // class name
+ bases_ee47221, 4,
+ &(vtc_ee47221[0]), // expected_vtbl_contents
+ &(vtt_ee47221[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee47221),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47221),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47221),4, //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 ee57221 : virtual dd7221 {
+ int e;
+ virtual void bar(); // _ZN7ee572213barEv
+ ~ee57221(); // tgen
+ ee57221(); // tgen
+};
+//SIG(1 ee57221) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 Fi} v2 Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57221 ::bar(){vfunc_called(this, "_ZN7ee572213barEv");}
+ee57221 ::~ee57221(){ note_dtor("ee57221", this);} // tgen
+ee57221 ::ee57221(){ note_ctor("ee57221", this);} // tgen
+
+static void Test_ee57221()
+{
+ extern Class_Descriptor cd_ee57221;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee57221, buf);
+ ee57221 *dp, &lv = *(dp=new (buf) ee57221());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee57221)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57221)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc221*), ABISELECT(32,16), "ee57221");
+ check_base_class_offset(lv, (bb21*)(cc221*), ABISELECT(32,16), "ee57221");
+ check_base_class_offset(lv, (cc221*)(dd7221*), ABISELECT(32,16), "ee57221");
+ check_base_class_offset(lv, (dd7221*), ABISELECT(16,8), "ee57221");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57221.e");
+ test_class_info(&lv, &cd_ee57221);
+ dp->~ee57221();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57221(Test_ee57221, "ee57221", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee57221C1Ev();
+extern void _ZN7ee57221D1Ev();
+Name_Map name_map_ee57221[] = {
+ NSPAIR(_ZN7ee57221C1Ev),
+ NSPAIR(_ZN7ee57221D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc221;
+extern VTBL_ENTRY _ZTI5cc221[];
+extern VTBL_ENTRY _ZTV5cc221[];
+extern Class_Descriptor cd_dd7221;
+extern VTBL_ENTRY _ZTI6dd7221[];
+extern VTBL_ENTRY _ZTV6dd7221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7221[];
+static Base_Class bases_ee57221[] = {
+ // 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_bb21, 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_cc221, 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_dd7221, 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 _ZTI7ee57221[];
+extern void _ZN7ee572213barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee572213barEv,_ZTv0_n16_N7ee572213barEv)();
+extern void ABISELECT(_ZThn16_N7ee572213barEv,_ZThn8_N7ee572213barEv)() __attribute__((weak));
+extern void _ZN6dd72213fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd72213fooEv,_ZTv0_n12_N6dd72213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72213fooEv,_ZThn8_N6dd72213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57221[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57221[0]),
+ (VTBL_ENTRY)&_ZN7ee572213barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57221[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee572213barEv,_ZTv0_n16_N7ee572213barEv),
+ (VTBL_ENTRY)&_ZN6dd72213fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57221[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72213fooEv,_ZTv0_n12_N6dd72213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee57221[];
+extern void _ZN6dd72213barEv();
+extern void _ZN6dd72213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7221__7ee57221[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7221[0]),
+ (VTBL_ENTRY)&_ZN6dd72213barEv,
+ (VTBL_ENTRY)&_ZN6dd72213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72213fooEv,_ZTv0_n12_N6dd72213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72213fooEv,_ZThn8_N6dd72213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc221__6dd7221__7ee57221[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7221[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72213fooEv,_ZTv0_n12_N6dd72213fooEv),
+};
+static VTT_ENTRY vtt_ee57221[] = {
+ {&(_ZTV7ee57221[4]), 4,16},
+ {&(_ZTV7ee57221[10]), 10,16},
+ {&(_ZTV7ee57221[15]), 15,16},
+ {&(_tg__ZTV6dd7221__7ee57221[3]), 3,5},
+ {&(_tg__ZTV5cc221__6dd7221__7ee57221[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee57221[];
+extern VTBL_ENTRY _ZTV7ee57221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57221[];
+static VTBL_ENTRY alt_thunk_names551[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72213fooEv,_ZTv0_n12_N6dd72213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72213fooEv,_ZThn8_N6dd72213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72213fooEv,_ZThn8_N6dd72213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee572213barEv,_ZTv0_n16_N7ee572213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee572213barEv,_ZThn8_N7ee572213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57221 = { "ee57221", // class name
+ bases_ee57221, 4,
+ &(vtc_ee57221[0]), // expected_vtbl_contents
+ &(vtt_ee57221[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee57221),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57221),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57221),5, //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 ee67221 : dd7221 {
+ int e;
+ virtual void foo(); // _ZN7ee672213fooEv
+ virtual void bar(); // _ZN7ee672213barEv
+ ~ee67221(); // tgen
+ ee67221(); // tgen
+};
+//SIG(1 ee67221) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} v1 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67221 ::foo(){vfunc_called(this, "_ZN7ee672213fooEv");}
+void ee67221 ::bar(){vfunc_called(this, "_ZN7ee672213barEv");}
+ee67221 ::~ee67221(){ note_dtor("ee67221", this);} // tgen
+ee67221 ::ee67221(){ note_ctor("ee67221", this);} // tgen
+
+static void Test_ee67221()
+{
+ extern Class_Descriptor cd_ee67221;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee67221, buf);
+ ee67221 *dp, &lv = *(dp=new (buf) ee67221());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee67221)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67221)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc221*), ABISELECT(16,12), "ee67221");
+ check_base_class_offset(lv, (bb21*)(cc221*), ABISELECT(16,12), "ee67221");
+ check_base_class_offset(lv, (cc221*)(dd7221*), ABISELECT(16,12), "ee67221");
+ check_base_class_offset(lv, (dd7221*), 0, "ee67221");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67221.e");
+ test_class_info(&lv, &cd_ee67221);
+ dp->~ee67221();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67221(Test_ee67221, "ee67221", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee67221C1Ev();
+extern void _ZN7ee67221D1Ev();
+Name_Map name_map_ee67221[] = {
+ NSPAIR(_ZN7ee67221C1Ev),
+ NSPAIR(_ZN7ee67221D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc221;
+extern VTBL_ENTRY _ZTI5cc221[];
+extern VTBL_ENTRY _ZTV5cc221[];
+extern Class_Descriptor cd_dd7221;
+extern VTBL_ENTRY _ZTI6dd7221[];
+extern VTBL_ENTRY _ZTV6dd7221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7221[];
+static Base_Class bases_ee67221[] = {
+ // 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_bb21, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc221, 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_dd7221, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67221[];
+extern void _ZN7ee672213barEv();
+extern void _ZN7ee672213fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee672213fooEv,_ZTv0_n12_N7ee672213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee672213fooEv,_ZThn12_N7ee672213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67221[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67221[0]),
+ (VTBL_ENTRY)&_ZN7ee672213barEv,
+ (VTBL_ENTRY)&_ZN7ee672213fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67221[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee672213fooEv,_ZTv0_n12_N7ee672213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee67221[];
+extern void _ZN6dd72213barEv();
+extern void _ZN6dd72213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7221__7ee67221[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7221[0]),
+ (VTBL_ENTRY)&_ZN6dd72213barEv,
+ (VTBL_ENTRY)&_ZN6dd72213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72213fooEv,_ZTv0_n12_N6dd72213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72213fooEv,_ZThn12_N6dd72213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc221__6dd7221__7ee67221[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7221[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72213fooEv,_ZTv0_n12_N6dd72213fooEv),
+};
+static VTT_ENTRY vtt_ee67221[] = {
+ {&(_ZTV7ee67221[3]), 3,9},
+ {&(_tg__ZTV6dd7221__7ee67221[3]), 3,5},
+ {&(_tg__ZTV5cc221__6dd7221__7ee67221[3]), 3,4},
+ {&(_ZTV7ee67221[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee67221[];
+extern VTBL_ENTRY _ZTV7ee67221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67221[];
+static VTBL_ENTRY alt_thunk_names552[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72213fooEv,_ZTv0_n12_N6dd72213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72213fooEv,_ZThn12_N6dd72213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee672213fooEv,_ZTv0_n12_N7ee672213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee672213fooEv,_ZThn12_N7ee672213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67221 = { "ee67221", // class name
+ bases_ee67221, 4,
+ &(vtc_ee67221[0]), // expected_vtbl_contents
+ &(vtt_ee67221[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee67221),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67221),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67221),4, //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 ee77221 : virtual dd7221 {
+ int e;
+ virtual void foo(); // _ZN7ee772213fooEv
+ virtual void bar(); // _ZN7ee772213barEv
+ ~ee77221(); // tgen
+ ee77221(); // tgen
+};
+//SIG(1 ee77221) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} v1 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77221 ::foo(){vfunc_called(this, "_ZN7ee772213fooEv");}
+void ee77221 ::bar(){vfunc_called(this, "_ZN7ee772213barEv");}
+ee77221 ::~ee77221(){ note_dtor("ee77221", this);} // tgen
+ee77221 ::ee77221(){ note_ctor("ee77221", this);} // tgen
+
+static void Test_ee77221()
+{
+ extern Class_Descriptor cd_ee77221;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee77221, buf);
+ ee77221 *dp, &lv = *(dp=new (buf) ee77221());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee77221)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77221)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc221*), ABISELECT(32,16), "ee77221");
+ check_base_class_offset(lv, (bb21*)(cc221*), ABISELECT(32,16), "ee77221");
+ check_base_class_offset(lv, (cc221*)(dd7221*), ABISELECT(32,16), "ee77221");
+ check_base_class_offset(lv, (dd7221*), ABISELECT(16,8), "ee77221");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77221.e");
+ test_class_info(&lv, &cd_ee77221);
+ dp->~ee77221();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77221(Test_ee77221, "ee77221", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee77221C1Ev();
+extern void _ZN7ee77221D1Ev();
+Name_Map name_map_ee77221[] = {
+ NSPAIR(_ZN7ee77221C1Ev),
+ NSPAIR(_ZN7ee77221D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc221;
+extern VTBL_ENTRY _ZTI5cc221[];
+extern VTBL_ENTRY _ZTV5cc221[];
+extern Class_Descriptor cd_dd7221;
+extern VTBL_ENTRY _ZTI6dd7221[];
+extern VTBL_ENTRY _ZTV6dd7221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7221[];
+static Base_Class bases_ee77221[] = {
+ // 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_bb21, 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_cc221, 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_dd7221, ABISELECT(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 _ZTI7ee77221[];
+extern void _ZN7ee772213fooEv();
+extern void _ZN7ee772213barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee772213barEv,_ZTv0_n16_N7ee772213barEv)();
+extern void ABISELECT(_ZThn16_N7ee772213barEv,_ZThn8_N7ee772213barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee772213fooEv,_ZTv0_n20_N7ee772213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee772213fooEv,_ZThn8_N7ee772213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee772213fooEv,_ZTv0_n12_N7ee772213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee772213fooEv,_ZThn16_N7ee772213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77221[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77221[0]),
+ (VTBL_ENTRY)&_ZN7ee772213fooEv,
+ (VTBL_ENTRY)&_ZN7ee772213barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77221[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee772213barEv,_ZTv0_n16_N7ee772213barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee772213fooEv,_ZTv0_n20_N7ee772213fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77221[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee772213fooEv,_ZTv0_n12_N7ee772213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee77221[];
+extern void _ZN6dd72213barEv();
+extern void _ZN6dd72213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7221__7ee77221[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7221[0]),
+ (VTBL_ENTRY)&_ZN6dd72213barEv,
+ (VTBL_ENTRY)&_ZN6dd72213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72213fooEv,_ZTv0_n12_N6dd72213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72213fooEv,_ZThn8_N6dd72213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc221__6dd7221__7ee77221[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7221[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72213fooEv,_ZTv0_n12_N6dd72213fooEv),
+};
+static VTT_ENTRY vtt_ee77221[] = {
+ {&(_ZTV7ee77221[4]), 4,17},
+ {&(_ZTV7ee77221[11]), 11,17},
+ {&(_ZTV7ee77221[16]), 16,17},
+ {&(_tg__ZTV6dd7221__7ee77221[3]), 3,5},
+ {&(_tg__ZTV5cc221__6dd7221__7ee77221[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee77221[];
+extern VTBL_ENTRY _ZTV7ee77221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77221[];
+static VTBL_ENTRY alt_thunk_names553[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72213fooEv,_ZTv0_n12_N6dd72213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72213fooEv,_ZThn8_N6dd72213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee772213fooEv,_ZTv0_n12_N7ee772213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee772213fooEv,_ZThn16_N7ee772213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee772213fooEv,_ZTv0_n20_N7ee772213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee772213fooEv,_ZThn8_N7ee772213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee772213barEv,_ZTv0_n16_N7ee772213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee772213barEv,_ZThn8_N7ee772213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77221 = { "ee77221", // class name
+ bases_ee77221, 4,
+ &(vtc_ee77221[0]), // expected_vtbl_contents
+ &(vtt_ee77221[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee77221),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77221),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77221),5, //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 cc321 : virtual bb21 {
+ int c;
+ virtual void foo(); // _ZN5cc3213fooEv
+ ~cc321(); // tgen
+ cc321(); // tgen
+};
+//SIG(-1 cc321) C1{ VBC2{ BC3{ v1 Fi} v1 Fi} v1 Fi}
+
+
+void cc321 ::foo(){vfunc_called(this, "_ZN5cc3213fooEv");}
+cc321 ::~cc321(){ note_dtor("cc321", this);} // tgen
+cc321 ::cc321(){ note_ctor("cc321", this);} // tgen
+
+static void Test_cc321()
+{
+ extern Class_Descriptor cd_cc321;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_cc321, buf);
+ cc321 *dp, &lv = *(dp=new (buf) cc321());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(cc321)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc321)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(16,8), "cc321");
+ check_base_class_offset(lv, (bb21*), ABISELECT(16,8), "cc321");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc321.c");
+ test_class_info(&lv, &cd_cc321);
+ dp->~cc321();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc321(Test_cc321, "cc321", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN5cc321C1Ev();
+extern void _ZN5cc321D1Ev();
+Name_Map name_map_cc321[] = {
+ NSPAIR(_ZN5cc321C1Ev),
+ NSPAIR(_ZN5cc321D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+static Base_Class bases_cc321[] = {
+ // 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_bb21, 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 _ZTI5cc321[];
+extern void _ZN5cc3213fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_cc321[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+extern VTBL_ENTRY _ZTV5cc321[];
+static VTT_ENTRY vtt_cc321[] = {
+ {&(_ZTV5cc321[3]), 3,8},
+ {&(_ZTV5cc321[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI5cc321[];
+extern VTBL_ENTRY _ZTV5cc321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc321[];
+static VTBL_ENTRY alt_thunk_names554[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_cc321 = { "cc321", // class name
+ bases_cc321, 2,
+ &(vtc_cc321[0]), // expected_vtbl_contents
+ &(vtt_cc321[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI5cc321),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV5cc321),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5cc321),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names554,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd0321 : cc321 {
+ int d;
+ ~dd0321(); // tgen
+ dd0321(); // tgen
+};
+//SIG(-1 dd0321) C1{ BC2{ VBC3{ BC4{ v1 Fi} v1 Fi} v1 Fi} Fi}
+
+
+dd0321 ::~dd0321(){ note_dtor("dd0321", this);} // tgen
+dd0321 ::dd0321(){ note_ctor("dd0321", this);} // tgen
+
+static void Test_dd0321()
+{
+ extern Class_Descriptor cd_dd0321;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd0321, buf);
+ dd0321 *dp, &lv = *(dp=new (buf) dd0321());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd0321)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0321)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(16,12), "dd0321");
+ check_base_class_offset(lv, (bb21*)(cc321*), ABISELECT(16,12), "dd0321");
+ check_base_class_offset(lv, (cc321*), 0, "dd0321");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd0321.d");
+ test_class_info(&lv, &cd_dd0321);
+ dp->~dd0321();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0321(Test_dd0321, "dd0321", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd0321C1Ev();
+extern void _ZN6dd0321D1Ev();
+Name_Map name_map_dd0321[] = {
+ NSPAIR(_ZN6dd0321C1Ev),
+ NSPAIR(_ZN6dd0321D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc321;
+extern VTBL_ENTRY _ZTI5cc321[];
+extern VTBL_ENTRY _ZTV5cc321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc321[];
+static Base_Class bases_dd0321[] = {
+ // 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_bb21, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc321, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd0321[];
+extern void _ZN5cc3213fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn12_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd0321[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd0321[];
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc321__6dd0321[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn12_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc321__6dd0321[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+static VTT_ENTRY vtt_dd0321[] = {
+ {&(_ZTV6dd0321[3]), 3,8},
+ {&(_tg__ZTV5cc321__6dd0321[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc321__6dd0321[3]), 3,4},
+ {&(_ZTV6dd0321[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI6dd0321[];
+extern VTBL_ENTRY _ZTV6dd0321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0321[];
+static VTBL_ENTRY alt_thunk_names555[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn12_N5cc3213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn12_N5cc3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd0321 = { "dd0321", // class name
+ bases_dd0321, 3,
+ &(vtc_dd0321[0]), // expected_vtbl_contents
+ &(vtt_dd0321[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd0321),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0321),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd0321),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names555,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee00321 : dd0321 {
+ int e;
+ ~ee00321(); // tgen
+ ee00321(); // tgen
+};
+//SIG(1 ee00321) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v1 Fi} Fi} Fi}
+
+
+ee00321 ::~ee00321(){ note_dtor("ee00321", this);} // tgen
+ee00321 ::ee00321(){ note_ctor("ee00321", this);} // tgen
+
+static void Test_ee00321()
+{
+ extern Class_Descriptor cd_ee00321;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee00321, buf);
+ ee00321 *dp, &lv = *(dp=new (buf) ee00321());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee00321)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00321)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(24,16), "ee00321");
+ check_base_class_offset(lv, (bb21*)(cc321*)(dd0321*), ABISELECT(24,16), "ee00321");
+ check_base_class_offset(lv, (cc321*)(dd0321*), 0, "ee00321");
+ check_base_class_offset(lv, (dd0321*), 0, "ee00321");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee00321.e");
+ test_class_info(&lv, &cd_ee00321);
+ dp->~ee00321();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00321(Test_ee00321, "ee00321", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee00321C1Ev();
+extern void _ZN7ee00321D1Ev();
+Name_Map name_map_ee00321[] = {
+ NSPAIR(_ZN7ee00321C1Ev),
+ NSPAIR(_ZN7ee00321D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc321;
+extern VTBL_ENTRY _ZTI5cc321[];
+extern VTBL_ENTRY _ZTV5cc321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc321[];
+extern Class_Descriptor cd_dd0321;
+extern VTBL_ENTRY _ZTI6dd0321[];
+extern VTBL_ENTRY _ZTV6dd0321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0321[];
+static Base_Class bases_ee00321[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc321, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0321, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee00321[];
+extern void _ZN5cc3213fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3213fooEv,_ZThn16_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee00321[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee00321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee00321[];
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0321__7ee00321[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3216dd0321__7ee00321[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3213fooEv,_ZThn16_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc3216dd0321__7ee00321[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3213fooEv,_ZThn16_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd0321__7ee00321[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+static VTT_ENTRY vtt_ee00321[] = {
+ {&(_ZTV7ee00321[3]), 3,8},
+ {&(_tg__ZTV6dd0321__7ee00321[3]), 3,4},
+ {&(_tg__ZTV5cc3216dd0321__7ee00321[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc3216dd0321__7ee00321[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd0321__7ee00321[3]), 3,4},
+ {&(_ZTV7ee00321[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee00321[];
+extern VTBL_ENTRY _ZTV7ee00321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee00321[];
+static VTBL_ENTRY alt_thunk_names556[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3213fooEv,_ZThn16_N5cc3213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3213fooEv,_ZThn16_N5cc3213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3213fooEv,_ZThn16_N5cc3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee00321 = { "ee00321", // class name
+ bases_ee00321, 4,
+ &(vtc_ee00321[0]), // expected_vtbl_contents
+ &(vtt_ee00321[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee00321),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00321),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee00321),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names556,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee10321 : virtual dd0321 {
+ int e;
+ ~ee10321(); // tgen
+ ee10321(); // tgen
+};
+//SIG(1 ee10321) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v1 Fi} Fi} Fi}
+
+
+ee10321 ::~ee10321(){ note_dtor("ee10321", this);} // tgen
+ee10321 ::ee10321(){ note_ctor("ee10321", this);} // tgen
+
+static void Test_ee10321()
+{
+ extern Class_Descriptor cd_ee10321;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee10321, buf);
+ ee10321 *dp, &lv = *(dp=new (buf) ee10321());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee10321)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10321)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee10321");
+ check_base_class_offset(lv, (bb21*)(cc321*)(dd0321*), ABISELECT(32,20), "ee10321");
+ check_base_class_offset(lv, (cc321*)(dd0321*), ABISELECT(16,8), "ee10321");
+ check_base_class_offset(lv, (dd0321*), ABISELECT(16,8), "ee10321");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10321.e");
+ test_class_info(&lv, &cd_ee10321);
+ dp->~ee10321();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10321(Test_ee10321, "ee10321", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee10321C1Ev();
+extern void _ZN7ee10321D1Ev();
+Name_Map name_map_ee10321[] = {
+ NSPAIR(_ZN7ee10321C1Ev),
+ NSPAIR(_ZN7ee10321D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc321;
+extern VTBL_ENTRY _ZTI5cc321[];
+extern VTBL_ENTRY _ZTV5cc321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc321[];
+extern Class_Descriptor cd_dd0321;
+extern VTBL_ENTRY _ZTI6dd0321[];
+extern VTBL_ENTRY _ZTV6dd0321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0321[];
+static Base_Class bases_ee10321[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc321, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0321, 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 _ZTI7ee10321[];
+extern void _ZN5cc3213fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn12_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee10321[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10321[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee10321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee10321[];
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0321__7ee10321[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3216dd0321__7ee10321[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn12_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc3216dd0321__7ee10321[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn12_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd0321__7ee10321[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+static VTT_ENTRY vtt_ee10321[] = {
+ {&(_ZTV7ee10321[4]), 4,13},
+ {&(_ZTV7ee10321[8]), 8,13},
+ {&(_ZTV7ee10321[12]), 12,13},
+ {&(_tg__ZTV6dd0321__7ee10321[3]), 3,4},
+ {&(_tg__ZTV5cc3216dd0321__7ee10321[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc3216dd0321__7ee10321[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd0321__7ee10321[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee10321[];
+extern VTBL_ENTRY _ZTV7ee10321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10321[];
+static VTBL_ENTRY alt_thunk_names557[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn12_N5cc3213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn12_N5cc3213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn12_N5cc3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee10321 = { "ee10321", // class name
+ bases_ee10321, 4,
+ &(vtc_ee10321[0]), // expected_vtbl_contents
+ &(vtt_ee10321[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee10321),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10321),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10321),7, //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 ee20321 : dd0321 {
+ int e;
+ virtual void foo(); // _ZN7ee203213fooEv
+ ~ee20321(); // tgen
+ ee20321(); // tgen
+};
+//SIG(1 ee20321) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee20321 ::foo(){vfunc_called(this, "_ZN7ee203213fooEv");}
+ee20321 ::~ee20321(){ note_dtor("ee20321", this);} // tgen
+ee20321 ::ee20321(){ note_ctor("ee20321", this);} // tgen
+
+static void Test_ee20321()
+{
+ extern Class_Descriptor cd_ee20321;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee20321, buf);
+ ee20321 *dp, &lv = *(dp=new (buf) ee20321());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee20321)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20321)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(24,16), "ee20321");
+ check_base_class_offset(lv, (bb21*)(cc321*)(dd0321*), ABISELECT(24,16), "ee20321");
+ check_base_class_offset(lv, (cc321*)(dd0321*), 0, "ee20321");
+ check_base_class_offset(lv, (dd0321*), 0, "ee20321");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee20321.e");
+ test_class_info(&lv, &cd_ee20321);
+ dp->~ee20321();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20321(Test_ee20321, "ee20321", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee20321C1Ev();
+extern void _ZN7ee20321D1Ev();
+Name_Map name_map_ee20321[] = {
+ NSPAIR(_ZN7ee20321C1Ev),
+ NSPAIR(_ZN7ee20321D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc321;
+extern VTBL_ENTRY _ZTI5cc321[];
+extern VTBL_ENTRY _ZTV5cc321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc321[];
+extern Class_Descriptor cd_dd0321;
+extern VTBL_ENTRY _ZTI6dd0321[];
+extern VTBL_ENTRY _ZTV6dd0321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0321[];
+static Base_Class bases_ee20321[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc321, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0321, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee20321[];
+extern void _ZN7ee203213fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee203213fooEv,_ZTv0_n12_N7ee203213fooEv)();
+extern void ABISELECT(_ZThn24_N7ee203213fooEv,_ZThn16_N7ee203213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee20321[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20321[0]),
+ (VTBL_ENTRY)&_ZN7ee203213fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee20321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee203213fooEv,_ZTv0_n12_N7ee203213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee20321[];
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0321__7ee20321[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3216dd0321__7ee20321[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3213fooEv,_ZThn16_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc3216dd0321__7ee20321[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3213fooEv,_ZThn16_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd0321__7ee20321[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+static VTT_ENTRY vtt_ee20321[] = {
+ {&(_ZTV7ee20321[3]), 3,8},
+ {&(_tg__ZTV6dd0321__7ee20321[3]), 3,4},
+ {&(_tg__ZTV5cc3216dd0321__7ee20321[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc3216dd0321__7ee20321[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd0321__7ee20321[3]), 3,4},
+ {&(_ZTV7ee20321[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee20321[];
+extern VTBL_ENTRY _ZTV7ee20321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee20321[];
+static VTBL_ENTRY alt_thunk_names558[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3213fooEv,_ZThn16_N5cc3213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3213fooEv,_ZThn16_N5cc3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee203213fooEv,_ZTv0_n12_N7ee203213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee203213fooEv,_ZThn16_N7ee203213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee20321 = { "ee20321", // class name
+ bases_ee20321, 4,
+ &(vtc_ee20321[0]), // expected_vtbl_contents
+ &(vtt_ee20321[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee20321),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20321),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee20321),6, //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 ee30321 : virtual dd0321 {
+ int e;
+ virtual void foo(); // _ZN7ee303213fooEv
+ ~ee30321(); // tgen
+ ee30321(); // tgen
+};
+//SIG(1 ee30321) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee30321 ::foo(){vfunc_called(this, "_ZN7ee303213fooEv");}
+ee30321 ::~ee30321(){ note_dtor("ee30321", this);} // tgen
+ee30321 ::ee30321(){ note_ctor("ee30321", this);} // tgen
+
+static void Test_ee30321()
+{
+ extern Class_Descriptor cd_ee30321;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee30321, buf);
+ ee30321 *dp, &lv = *(dp=new (buf) ee30321());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee30321)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30321)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee30321");
+ check_base_class_offset(lv, (bb21*)(cc321*)(dd0321*), ABISELECT(32,20), "ee30321");
+ check_base_class_offset(lv, (cc321*)(dd0321*), ABISELECT(16,8), "ee30321");
+ check_base_class_offset(lv, (dd0321*), ABISELECT(16,8), "ee30321");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30321.e");
+ test_class_info(&lv, &cd_ee30321);
+ dp->~ee30321();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30321(Test_ee30321, "ee30321", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee30321C1Ev();
+extern void _ZN7ee30321D1Ev();
+Name_Map name_map_ee30321[] = {
+ NSPAIR(_ZN7ee30321C1Ev),
+ NSPAIR(_ZN7ee30321D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc321;
+extern VTBL_ENTRY _ZTI5cc321[];
+extern VTBL_ENTRY _ZTV5cc321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc321[];
+extern Class_Descriptor cd_dd0321;
+extern VTBL_ENTRY _ZTI6dd0321[];
+extern VTBL_ENTRY _ZTV6dd0321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0321[];
+static Base_Class bases_ee30321[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc321, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0321, 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 _ZTI7ee30321[];
+extern void _ZN7ee303213fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee303213fooEv,_ZTv0_n16_N7ee303213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee303213fooEv,_ZThn8_N7ee303213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee303213fooEv,_ZTv0_n12_N7ee303213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee303213fooEv,_ZThn20_N7ee303213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee30321[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30321[0]),
+ (VTBL_ENTRY)&_ZN7ee303213fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee303213fooEv,_ZTv0_n16_N7ee303213fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee30321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee303213fooEv,_ZTv0_n12_N7ee303213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee30321[];
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0321__7ee30321[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3216dd0321__7ee30321[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn12_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc3216dd0321__7ee30321[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn12_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd0321__7ee30321[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+static VTT_ENTRY vtt_ee30321[] = {
+ {&(_ZTV7ee30321[4]), 4,14},
+ {&(_ZTV7ee30321[9]), 9,14},
+ {&(_ZTV7ee30321[13]), 13,14},
+ {&(_tg__ZTV6dd0321__7ee30321[3]), 3,4},
+ {&(_tg__ZTV5cc3216dd0321__7ee30321[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc3216dd0321__7ee30321[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd0321__7ee30321[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee30321[];
+extern VTBL_ENTRY _ZTV7ee30321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30321[];
+static VTBL_ENTRY alt_thunk_names559[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn12_N5cc3213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn12_N5cc3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee303213fooEv,_ZTv0_n12_N7ee303213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee303213fooEv,_ZThn20_N7ee303213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee303213fooEv,_ZTv0_n16_N7ee303213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee303213fooEv,_ZThn8_N7ee303213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30321 = { "ee30321", // class name
+ bases_ee30321, 4,
+ &(vtc_ee30321[0]), // expected_vtbl_contents
+ &(vtt_ee30321[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee30321),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30321),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30321),7, //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 ee40321 : dd0321 {
+ int e;
+ virtual void bar(); // _ZN7ee403213barEv
+ ~ee40321(); // tgen
+ ee40321(); // tgen
+};
+//SIG(1 ee40321) C1{ BC2{ BC3{ VBC4{ BC5{ v2 Fi} v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee40321 ::bar(){vfunc_called(this, "_ZN7ee403213barEv");}
+ee40321 ::~ee40321(){ note_dtor("ee40321", this);} // tgen
+ee40321 ::ee40321(){ note_ctor("ee40321", this);} // tgen
+
+static void Test_ee40321()
+{
+ extern Class_Descriptor cd_ee40321;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee40321, buf);
+ ee40321 *dp, &lv = *(dp=new (buf) ee40321());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee40321)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40321)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(24,16), "ee40321");
+ check_base_class_offset(lv, (bb21*)(cc321*)(dd0321*), ABISELECT(24,16), "ee40321");
+ check_base_class_offset(lv, (cc321*)(dd0321*), 0, "ee40321");
+ check_base_class_offset(lv, (dd0321*), 0, "ee40321");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee40321.e");
+ test_class_info(&lv, &cd_ee40321);
+ dp->~ee40321();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40321(Test_ee40321, "ee40321", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee40321C1Ev();
+extern void _ZN7ee40321D1Ev();
+Name_Map name_map_ee40321[] = {
+ NSPAIR(_ZN7ee40321C1Ev),
+ NSPAIR(_ZN7ee40321D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc321;
+extern VTBL_ENTRY _ZTI5cc321[];
+extern VTBL_ENTRY _ZTV5cc321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc321[];
+extern Class_Descriptor cd_dd0321;
+extern VTBL_ENTRY _ZTI6dd0321[];
+extern VTBL_ENTRY _ZTV6dd0321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0321[];
+static Base_Class bases_ee40321[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc321, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0321, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee40321[];
+extern void _ZN5cc3213fooEv();
+extern void _ZN7ee403213barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3213fooEv,_ZThn16_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee40321[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+ (VTBL_ENTRY)&_ZN7ee403213barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee40321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee40321[];
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0321__7ee40321[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3216dd0321__7ee40321[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3213fooEv,_ZThn16_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc3216dd0321__7ee40321[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3213fooEv,_ZThn16_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd0321__7ee40321[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+static VTT_ENTRY vtt_ee40321[] = {
+ {&(_ZTV7ee40321[3]), 3,9},
+ {&(_tg__ZTV6dd0321__7ee40321[3]), 3,4},
+ {&(_tg__ZTV5cc3216dd0321__7ee40321[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc3216dd0321__7ee40321[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd0321__7ee40321[3]), 3,4},
+ {&(_ZTV7ee40321[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee40321[];
+extern VTBL_ENTRY _ZTV7ee40321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee40321[];
+static VTBL_ENTRY alt_thunk_names560[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3213fooEv,_ZThn16_N5cc3213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3213fooEv,_ZThn16_N5cc3213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3213fooEv,_ZThn16_N5cc3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee40321 = { "ee40321", // class name
+ bases_ee40321, 4,
+ &(vtc_ee40321[0]), // expected_vtbl_contents
+ &(vtt_ee40321[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee40321),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40321),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee40321),6, //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 ee50321 : virtual dd0321 {
+ int e;
+ virtual void bar(); // _ZN7ee503213barEv
+ ~ee50321(); // tgen
+ ee50321(); // tgen
+};
+//SIG(1 ee50321) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 Fi} v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee50321 ::bar(){vfunc_called(this, "_ZN7ee503213barEv");}
+ee50321 ::~ee50321(){ note_dtor("ee50321", this);} // tgen
+ee50321 ::ee50321(){ note_ctor("ee50321", this);} // tgen
+
+static void Test_ee50321()
+{
+ extern Class_Descriptor cd_ee50321;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee50321, buf);
+ ee50321 *dp, &lv = *(dp=new (buf) ee50321());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee50321)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50321)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee50321");
+ check_base_class_offset(lv, (bb21*)(cc321*)(dd0321*), ABISELECT(32,20), "ee50321");
+ check_base_class_offset(lv, (cc321*)(dd0321*), ABISELECT(16,8), "ee50321");
+ check_base_class_offset(lv, (dd0321*), ABISELECT(16,8), "ee50321");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50321.e");
+ test_class_info(&lv, &cd_ee50321);
+ dp->~ee50321();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50321(Test_ee50321, "ee50321", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee50321C1Ev();
+extern void _ZN7ee50321D1Ev();
+Name_Map name_map_ee50321[] = {
+ NSPAIR(_ZN7ee50321C1Ev),
+ NSPAIR(_ZN7ee50321D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc321;
+extern VTBL_ENTRY _ZTI5cc321[];
+extern VTBL_ENTRY _ZTV5cc321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc321[];
+extern Class_Descriptor cd_dd0321;
+extern VTBL_ENTRY _ZTI6dd0321[];
+extern VTBL_ENTRY _ZTV6dd0321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0321[];
+static Base_Class bases_ee50321[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc321, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0321, 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 _ZTI7ee50321[];
+extern void _ZN7ee503213barEv();
+extern void _ZN5cc3213fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn12_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee50321[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50321[0]),
+ (VTBL_ENTRY)&_ZN7ee503213barEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee50321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee50321[];
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0321__7ee50321[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3216dd0321__7ee50321[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn12_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc3216dd0321__7ee50321[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn12_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd0321__7ee50321[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+static VTT_ENTRY vtt_ee50321[] = {
+ {&(_ZTV7ee50321[4]), 4,14},
+ {&(_ZTV7ee50321[9]), 9,14},
+ {&(_ZTV7ee50321[13]), 13,14},
+ {&(_tg__ZTV6dd0321__7ee50321[3]), 3,4},
+ {&(_tg__ZTV5cc3216dd0321__7ee50321[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc3216dd0321__7ee50321[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd0321__7ee50321[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee50321[];
+extern VTBL_ENTRY _ZTV7ee50321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50321[];
+static VTBL_ENTRY alt_thunk_names561[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn12_N5cc3213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn12_N5cc3213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn12_N5cc3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50321 = { "ee50321", // class name
+ bases_ee50321, 4,
+ &(vtc_ee50321[0]), // expected_vtbl_contents
+ &(vtt_ee50321[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee50321),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50321),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50321),7, //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 ee60321 : dd0321 {
+ int e;
+ virtual void foo(); // _ZN7ee603213fooEv
+ virtual void bar(); // _ZN7ee603213barEv
+ ~ee60321(); // tgen
+ ee60321(); // tgen
+};
+//SIG(1 ee60321) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee60321 ::foo(){vfunc_called(this, "_ZN7ee603213fooEv");}
+void ee60321 ::bar(){vfunc_called(this, "_ZN7ee603213barEv");}
+ee60321 ::~ee60321(){ note_dtor("ee60321", this);} // tgen
+ee60321 ::ee60321(){ note_ctor("ee60321", this);} // tgen
+
+static void Test_ee60321()
+{
+ extern Class_Descriptor cd_ee60321;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee60321, buf);
+ ee60321 *dp, &lv = *(dp=new (buf) ee60321());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee60321)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60321)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(24,16), "ee60321");
+ check_base_class_offset(lv, (bb21*)(cc321*)(dd0321*), ABISELECT(24,16), "ee60321");
+ check_base_class_offset(lv, (cc321*)(dd0321*), 0, "ee60321");
+ check_base_class_offset(lv, (dd0321*), 0, "ee60321");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee60321.e");
+ test_class_info(&lv, &cd_ee60321);
+ dp->~ee60321();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60321(Test_ee60321, "ee60321", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee60321C1Ev();
+extern void _ZN7ee60321D1Ev();
+Name_Map name_map_ee60321[] = {
+ NSPAIR(_ZN7ee60321C1Ev),
+ NSPAIR(_ZN7ee60321D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc321;
+extern VTBL_ENTRY _ZTI5cc321[];
+extern VTBL_ENTRY _ZTV5cc321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc321[];
+extern Class_Descriptor cd_dd0321;
+extern VTBL_ENTRY _ZTI6dd0321[];
+extern VTBL_ENTRY _ZTV6dd0321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0321[];
+static Base_Class bases_ee60321[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc321, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0321, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee60321[];
+extern void _ZN7ee603213fooEv();
+extern void _ZN7ee603213barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee603213fooEv,_ZTv0_n12_N7ee603213fooEv)();
+extern void ABISELECT(_ZThn24_N7ee603213fooEv,_ZThn16_N7ee603213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee60321[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60321[0]),
+ (VTBL_ENTRY)&_ZN7ee603213fooEv,
+ (VTBL_ENTRY)&_ZN7ee603213barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee60321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee603213fooEv,_ZTv0_n12_N7ee603213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee60321[];
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0321__7ee60321[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3216dd0321__7ee60321[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3213fooEv,_ZThn16_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc3216dd0321__7ee60321[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3213fooEv,_ZThn16_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd0321__7ee60321[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+static VTT_ENTRY vtt_ee60321[] = {
+ {&(_ZTV7ee60321[3]), 3,9},
+ {&(_tg__ZTV6dd0321__7ee60321[3]), 3,4},
+ {&(_tg__ZTV5cc3216dd0321__7ee60321[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc3216dd0321__7ee60321[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd0321__7ee60321[3]), 3,4},
+ {&(_ZTV7ee60321[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee60321[];
+extern VTBL_ENTRY _ZTV7ee60321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee60321[];
+static VTBL_ENTRY alt_thunk_names562[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3213fooEv,_ZThn16_N5cc3213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3213fooEv,_ZThn16_N5cc3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee603213fooEv,_ZTv0_n12_N7ee603213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee603213fooEv,_ZThn16_N7ee603213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee60321 = { "ee60321", // class name
+ bases_ee60321, 4,
+ &(vtc_ee60321[0]), // expected_vtbl_contents
+ &(vtt_ee60321[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee60321),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60321),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee60321),6, //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 ee70321 : virtual dd0321 {
+ int e;
+ virtual void foo(); // _ZN7ee703213fooEv
+ virtual void bar(); // _ZN7ee703213barEv
+ ~ee70321(); // tgen
+ ee70321(); // tgen
+};
+//SIG(1 ee70321) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee70321 ::foo(){vfunc_called(this, "_ZN7ee703213fooEv");}
+void ee70321 ::bar(){vfunc_called(this, "_ZN7ee703213barEv");}
+ee70321 ::~ee70321(){ note_dtor("ee70321", this);} // tgen
+ee70321 ::ee70321(){ note_ctor("ee70321", this);} // tgen
+
+static void Test_ee70321()
+{
+ extern Class_Descriptor cd_ee70321;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee70321, buf);
+ ee70321 *dp, &lv = *(dp=new (buf) ee70321());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee70321)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70321)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee70321");
+ check_base_class_offset(lv, (bb21*)(cc321*)(dd0321*), ABISELECT(32,20), "ee70321");
+ check_base_class_offset(lv, (cc321*)(dd0321*), ABISELECT(16,8), "ee70321");
+ check_base_class_offset(lv, (dd0321*), ABISELECT(16,8), "ee70321");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70321.e");
+ test_class_info(&lv, &cd_ee70321);
+ dp->~ee70321();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70321(Test_ee70321, "ee70321", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee70321C1Ev();
+extern void _ZN7ee70321D1Ev();
+Name_Map name_map_ee70321[] = {
+ NSPAIR(_ZN7ee70321C1Ev),
+ NSPAIR(_ZN7ee70321D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc321;
+extern VTBL_ENTRY _ZTI5cc321[];
+extern VTBL_ENTRY _ZTV5cc321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc321[];
+extern Class_Descriptor cd_dd0321;
+extern VTBL_ENTRY _ZTI6dd0321[];
+extern VTBL_ENTRY _ZTV6dd0321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0321[];
+static Base_Class bases_ee70321[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc321, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0321, 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 _ZTI7ee70321[];
+extern void _ZN7ee703213fooEv();
+extern void _ZN7ee703213barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee703213fooEv,_ZTv0_n16_N7ee703213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee703213fooEv,_ZThn8_N7ee703213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee703213fooEv,_ZTv0_n12_N7ee703213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee703213fooEv,_ZThn20_N7ee703213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70321[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70321[0]),
+ (VTBL_ENTRY)&_ZN7ee703213fooEv,
+ (VTBL_ENTRY)&_ZN7ee703213barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee703213fooEv,_ZTv0_n16_N7ee703213fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee70321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee703213fooEv,_ZTv0_n12_N7ee703213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee70321[];
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0321__7ee70321[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3216dd0321__7ee70321[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn12_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc3216dd0321__7ee70321[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn12_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd0321__7ee70321[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+static VTT_ENTRY vtt_ee70321[] = {
+ {&(_ZTV7ee70321[4]), 4,15},
+ {&(_ZTV7ee70321[10]), 10,15},
+ {&(_ZTV7ee70321[14]), 14,15},
+ {&(_tg__ZTV6dd0321__7ee70321[3]), 3,4},
+ {&(_tg__ZTV5cc3216dd0321__7ee70321[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc3216dd0321__7ee70321[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd0321__7ee70321[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee70321[];
+extern VTBL_ENTRY _ZTV7ee70321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70321[];
+static VTBL_ENTRY alt_thunk_names563[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn12_N5cc3213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn12_N5cc3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee703213fooEv,_ZTv0_n12_N7ee703213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee703213fooEv,_ZThn20_N7ee703213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee703213fooEv,_ZTv0_n16_N7ee703213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee703213fooEv,_ZThn8_N7ee703213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70321 = { "ee70321", // class name
+ bases_ee70321, 4,
+ &(vtc_ee70321[0]), // expected_vtbl_contents
+ &(vtt_ee70321[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee70321),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70321),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70321),7, //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 dd1321 : virtual cc321 {
+ int d;
+ ~dd1321(); // tgen
+ dd1321(); // tgen
+};
+//SIG(-1 dd1321) C1{ VBC2{ VBC3{ BC4{ v1 Fi} v1 Fi} v1 Fi} Fi}
+
+
+dd1321 ::~dd1321(){ note_dtor("dd1321", this);} // tgen
+dd1321 ::dd1321(){ note_ctor("dd1321", this);} // tgen
+
+static void Test_dd1321()
+{
+ extern Class_Descriptor cd_dd1321;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd1321, buf);
+ dd1321 *dp, &lv = *(dp=new (buf) dd1321());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd1321)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1321)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,16), "dd1321");
+ check_base_class_offset(lv, (bb21*)(cc321*), ABISELECT(32,16), "dd1321");
+ check_base_class_offset(lv, (cc321*), ABISELECT(16,8), "dd1321");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1321.d");
+ test_class_info(&lv, &cd_dd1321);
+ dp->~dd1321();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1321(Test_dd1321, "dd1321", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd1321C1Ev();
+extern void _ZN6dd1321D1Ev();
+Name_Map name_map_dd1321[] = {
+ NSPAIR(_ZN6dd1321C1Ev),
+ NSPAIR(_ZN6dd1321D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc321;
+extern VTBL_ENTRY _ZTI5cc321[];
+extern VTBL_ENTRY _ZTV5cc321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc321[];
+static Base_Class bases_dd1321[] = {
+ // 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_bb21, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc321, 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 _ZTI6dd1321[];
+extern void _ZN5cc3213fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd1321[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1321[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd1321[];
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc321__6dd1321[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc321__6dd1321[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+static VTT_ENTRY vtt_dd1321[] = {
+ {&(_ZTV6dd1321[4]), 4,13},
+ {&(_ZTV6dd1321[8]), 8,13},
+ {&(_ZTV6dd1321[12]), 12,13},
+ {&(_tg__ZTV5cc321__6dd1321[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc321__6dd1321[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd1321[];
+extern VTBL_ENTRY _ZTV6dd1321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1321[];
+static VTBL_ENTRY alt_thunk_names564[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd1321 = { "dd1321", // class name
+ bases_dd1321, 3,
+ &(vtc_dd1321[0]), // expected_vtbl_contents
+ &(vtt_dd1321[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd1321),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1321),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1321),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names564,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee01321 : dd1321 {
+ int e;
+ ~ee01321(); // tgen
+ ee01321(); // tgen
+};
+//SIG(1 ee01321) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v1 Fi} Fi} Fi}
+
+
+ee01321 ::~ee01321(){ note_dtor("ee01321", this);} // tgen
+ee01321 ::ee01321(){ note_ctor("ee01321", this);} // tgen
+
+static void Test_ee01321()
+{
+ extern Class_Descriptor cd_ee01321;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee01321, buf);
+ ee01321 *dp, &lv = *(dp=new (buf) ee01321());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee01321)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01321)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee01321");
+ check_base_class_offset(lv, (bb21*)(cc321*), ABISELECT(32,20), "ee01321");
+ check_base_class_offset(lv, (cc321*)(dd1321*), ABISELECT(16,12), "ee01321");
+ check_base_class_offset(lv, (dd1321*), 0, "ee01321");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01321.e");
+ test_class_info(&lv, &cd_ee01321);
+ dp->~ee01321();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01321(Test_ee01321, "ee01321", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee01321C1Ev();
+extern void _ZN7ee01321D1Ev();
+Name_Map name_map_ee01321[] = {
+ NSPAIR(_ZN7ee01321C1Ev),
+ NSPAIR(_ZN7ee01321D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc321;
+extern VTBL_ENTRY _ZTI5cc321[];
+extern VTBL_ENTRY _ZTV5cc321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc321[];
+extern Class_Descriptor cd_dd1321;
+extern VTBL_ENTRY _ZTI6dd1321[];
+extern VTBL_ENTRY _ZTV6dd1321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1321[];
+static Base_Class bases_ee01321[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc321, 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_dd1321, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01321[];
+extern void _ZN5cc3213fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee01321[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01321[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee01321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee01321[];
+static VTBL_ENTRY _tg__ZTV6dd1321__7ee01321[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1321[0]),
+};
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc321__6dd1321__7ee01321[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd1321__7ee01321[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc321__7ee01321[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc321__7ee01321[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+static VTT_ENTRY vtt_ee01321[] = {
+ {&(_ZTV7ee01321[4]), 4,13},
+ {&(_tg__ZTV6dd1321__7ee01321[4]), 4,4},
+ {&(_tg__ZTV5cc321__6dd1321__7ee01321[4]), 4,5},
+ {&(_tg__ZTV4bb21__6dd1321__7ee01321[3]), 3,4},
+ {&(_ZTV7ee01321[8]), 8,13},
+ {&(_ZTV7ee01321[12]), 12,13},
+ {&(_tg__ZTV5cc321__7ee01321[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc321__7ee01321[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee01321[];
+extern VTBL_ENTRY _ZTV7ee01321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01321[];
+static VTBL_ENTRY alt_thunk_names565[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee01321 = { "ee01321", // class name
+ bases_ee01321, 4,
+ &(vtc_ee01321[0]), // expected_vtbl_contents
+ &(vtt_ee01321[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee01321),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01321),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01321),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names565,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee11321 : virtual dd1321 {
+ int e;
+ ~ee11321(); // tgen
+ ee11321(); // tgen
+};
+//SIG(1 ee11321) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v1 Fi} Fi} Fi}
+
+
+ee11321 ::~ee11321(){ note_dtor("ee11321", this);} // tgen
+ee11321 ::ee11321(){ note_ctor("ee11321", this);} // tgen
+
+static void Test_ee11321()
+{
+ extern Class_Descriptor cd_ee11321;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee11321, buf);
+ ee11321 *dp, &lv = *(dp=new (buf) ee11321());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee11321)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11321)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(48,24), "ee11321");
+ check_base_class_offset(lv, (bb21*)(cc321*), ABISELECT(48,24), "ee11321");
+ check_base_class_offset(lv, (cc321*)(dd1321*), ABISELECT(32,16), "ee11321");
+ check_base_class_offset(lv, (dd1321*), ABISELECT(16,8), "ee11321");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11321.e");
+ test_class_info(&lv, &cd_ee11321);
+ dp->~ee11321();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11321(Test_ee11321, "ee11321", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee11321C1Ev();
+extern void _ZN7ee11321D1Ev();
+Name_Map name_map_ee11321[] = {
+ NSPAIR(_ZN7ee11321C1Ev),
+ NSPAIR(_ZN7ee11321D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc321;
+extern VTBL_ENTRY _ZTI5cc321[];
+extern VTBL_ENTRY _ZTV5cc321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc321[];
+extern Class_Descriptor cd_dd1321;
+extern VTBL_ENTRY _ZTI6dd1321[];
+extern VTBL_ENTRY _ZTV6dd1321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1321[];
+static Base_Class bases_ee11321[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb21, ABISELECT(48,24), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc321, 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_dd1321, 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 _ZTI7ee11321[];
+extern void _ZN5cc3213fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee11321[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11321[0]),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11321[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee11321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee11321[];
+static VTBL_ENTRY _tg__ZTV6dd1321__7ee11321[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1321[0]),
+};
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc321__6dd1321__7ee11321[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd1321__7ee11321[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc321__7ee11321[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc321__7ee11321[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+static VTT_ENTRY vtt_ee11321[] = {
+ {&(_ZTV7ee11321[5]), 5,18},
+ {&(_ZTV7ee11321[9]), 9,18},
+ {&(_ZTV7ee11321[13]), 13,18},
+ {&(_ZTV7ee11321[17]), 17,18},
+ {&(_tg__ZTV6dd1321__7ee11321[4]), 4,4},
+ {&(_tg__ZTV5cc321__6dd1321__7ee11321[4]), 4,5},
+ {&(_tg__ZTV4bb21__6dd1321__7ee11321[3]), 3,4},
+ {&(_tg__ZTV5cc321__7ee11321[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc321__7ee11321[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee11321[];
+extern VTBL_ENTRY _ZTV7ee11321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11321[];
+static VTBL_ENTRY alt_thunk_names566[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee11321 = { "ee11321", // class name
+ bases_ee11321, 4,
+ &(vtc_ee11321[0]), // expected_vtbl_contents
+ &(vtt_ee11321[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee11321),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11321),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11321),9, //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 ee21321 : dd1321 {
+ int e;
+ virtual void foo(); // _ZN7ee213213fooEv
+ ~ee21321(); // tgen
+ ee21321(); // tgen
+};
+//SIG(1 ee21321) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee21321 ::foo(){vfunc_called(this, "_ZN7ee213213fooEv");}
+ee21321 ::~ee21321(){ note_dtor("ee21321", this);} // tgen
+ee21321 ::ee21321(){ note_ctor("ee21321", this);} // tgen
+
+static void Test_ee21321()
+{
+ extern Class_Descriptor cd_ee21321;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee21321, buf);
+ ee21321 *dp, &lv = *(dp=new (buf) ee21321());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee21321)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21321)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee21321");
+ check_base_class_offset(lv, (bb21*)(cc321*), ABISELECT(32,20), "ee21321");
+ check_base_class_offset(lv, (cc321*)(dd1321*), ABISELECT(16,12), "ee21321");
+ check_base_class_offset(lv, (dd1321*), 0, "ee21321");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21321.e");
+ test_class_info(&lv, &cd_ee21321);
+ dp->~ee21321();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21321(Test_ee21321, "ee21321", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee21321C1Ev();
+extern void _ZN7ee21321D1Ev();
+Name_Map name_map_ee21321[] = {
+ NSPAIR(_ZN7ee21321C1Ev),
+ NSPAIR(_ZN7ee21321D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc321;
+extern VTBL_ENTRY _ZTI5cc321[];
+extern VTBL_ENTRY _ZTV5cc321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc321[];
+extern Class_Descriptor cd_dd1321;
+extern VTBL_ENTRY _ZTI6dd1321[];
+extern VTBL_ENTRY _ZTV6dd1321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1321[];
+static Base_Class bases_ee21321[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc321, 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_dd1321, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21321[];
+extern void _ZN7ee213213fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee213213fooEv,_ZTv0_n16_N7ee213213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee213213fooEv,_ZThn12_N7ee213213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee213213fooEv,_ZTv0_n12_N7ee213213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee213213fooEv,_ZThn20_N7ee213213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee21321[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21321[0]),
+ (VTBL_ENTRY)&_ZN7ee213213fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee213213fooEv,_ZTv0_n16_N7ee213213fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee21321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee213213fooEv,_ZTv0_n12_N7ee213213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee21321[];
+static VTBL_ENTRY _tg__ZTV6dd1321__7ee21321[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1321[0]),
+};
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc321__6dd1321__7ee21321[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd1321__7ee21321[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc321__7ee21321[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc321__7ee21321[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+static VTT_ENTRY vtt_ee21321[] = {
+ {&(_ZTV7ee21321[4]), 4,14},
+ {&(_tg__ZTV6dd1321__7ee21321[4]), 4,4},
+ {&(_tg__ZTV5cc321__6dd1321__7ee21321[4]), 4,5},
+ {&(_tg__ZTV4bb21__6dd1321__7ee21321[3]), 3,4},
+ {&(_ZTV7ee21321[9]), 9,14},
+ {&(_ZTV7ee21321[13]), 13,14},
+ {&(_tg__ZTV5cc321__7ee21321[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc321__7ee21321[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee21321[];
+extern VTBL_ENTRY _ZTV7ee21321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21321[];
+static VTBL_ENTRY alt_thunk_names567[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee213213fooEv,_ZTv0_n12_N7ee213213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee213213fooEv,_ZThn20_N7ee213213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee213213fooEv,_ZTv0_n16_N7ee213213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee213213fooEv,_ZThn12_N7ee213213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21321 = { "ee21321", // class name
+ bases_ee21321, 4,
+ &(vtc_ee21321[0]), // expected_vtbl_contents
+ &(vtt_ee21321[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee21321),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21321),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21321),8, //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 ee31321 : virtual dd1321 {
+ int e;
+ virtual void foo(); // _ZN7ee313213fooEv
+ ~ee31321(); // tgen
+ ee31321(); // tgen
+};
+//SIG(1 ee31321) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee31321 ::foo(){vfunc_called(this, "_ZN7ee313213fooEv");}
+ee31321 ::~ee31321(){ note_dtor("ee31321", this);} // tgen
+ee31321 ::ee31321(){ note_ctor("ee31321", this);} // tgen
+
+static void Test_ee31321()
+{
+ extern Class_Descriptor cd_ee31321;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee31321, buf);
+ ee31321 *dp, &lv = *(dp=new (buf) ee31321());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee31321)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31321)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(48,24), "ee31321");
+ check_base_class_offset(lv, (bb21*)(cc321*), ABISELECT(48,24), "ee31321");
+ check_base_class_offset(lv, (cc321*)(dd1321*), ABISELECT(32,16), "ee31321");
+ check_base_class_offset(lv, (dd1321*), ABISELECT(16,8), "ee31321");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31321.e");
+ test_class_info(&lv, &cd_ee31321);
+ dp->~ee31321();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31321(Test_ee31321, "ee31321", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee31321C1Ev();
+extern void _ZN7ee31321D1Ev();
+Name_Map name_map_ee31321[] = {
+ NSPAIR(_ZN7ee31321C1Ev),
+ NSPAIR(_ZN7ee31321D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc321;
+extern VTBL_ENTRY _ZTI5cc321[];
+extern VTBL_ENTRY _ZTV5cc321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc321[];
+extern Class_Descriptor cd_dd1321;
+extern VTBL_ENTRY _ZTI6dd1321[];
+extern VTBL_ENTRY _ZTV6dd1321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1321[];
+static Base_Class bases_ee31321[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb21, ABISELECT(48,24), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc321, 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_dd1321, 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 _ZTI7ee31321[];
+extern void _ZN7ee313213fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee313213fooEv,_ZTv0_n16_N7ee313213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee313213fooEv,_ZThn16_N7ee313213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee313213fooEv,_ZTv0_n12_N7ee313213fooEv)();
+extern void ABISELECT(_ZThn48_N7ee313213fooEv,_ZThn24_N7ee313213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee31321[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31321[0]),
+ (VTBL_ENTRY)&_ZN7ee313213fooEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31321[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee313213fooEv,_ZTv0_n16_N7ee313213fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee31321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee313213fooEv,_ZTv0_n12_N7ee313213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee31321[];
+static VTBL_ENTRY _tg__ZTV6dd1321__7ee31321[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1321[0]),
+};
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc321__6dd1321__7ee31321[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd1321__7ee31321[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc321__7ee31321[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc321__7ee31321[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+static VTT_ENTRY vtt_ee31321[] = {
+ {&(_ZTV7ee31321[5]), 5,19},
+ {&(_ZTV7ee31321[10]), 10,19},
+ {&(_ZTV7ee31321[14]), 14,19},
+ {&(_ZTV7ee31321[18]), 18,19},
+ {&(_tg__ZTV6dd1321__7ee31321[4]), 4,4},
+ {&(_tg__ZTV5cc321__6dd1321__7ee31321[4]), 4,5},
+ {&(_tg__ZTV4bb21__6dd1321__7ee31321[3]), 3,4},
+ {&(_tg__ZTV5cc321__7ee31321[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc321__7ee31321[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee31321[];
+extern VTBL_ENTRY _ZTV7ee31321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31321[];
+static VTBL_ENTRY alt_thunk_names568[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee313213fooEv,_ZTv0_n12_N7ee313213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee313213fooEv,_ZThn24_N7ee313213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee313213fooEv,_ZTv0_n16_N7ee313213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee313213fooEv,_ZThn16_N7ee313213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31321 = { "ee31321", // class name
+ bases_ee31321, 4,
+ &(vtc_ee31321[0]), // expected_vtbl_contents
+ &(vtt_ee31321[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee31321),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31321),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31321),9, //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 ee41321 : dd1321 {
+ int e;
+ virtual void bar(); // _ZN7ee413213barEv
+ ~ee41321(); // tgen
+ ee41321(); // tgen
+};
+//SIG(1 ee41321) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 Fi} v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee41321 ::bar(){vfunc_called(this, "_ZN7ee413213barEv");}
+ee41321 ::~ee41321(){ note_dtor("ee41321", this);} // tgen
+ee41321 ::ee41321(){ note_ctor("ee41321", this);} // tgen
+
+static void Test_ee41321()
+{
+ extern Class_Descriptor cd_ee41321;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee41321, buf);
+ ee41321 *dp, &lv = *(dp=new (buf) ee41321());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee41321)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41321)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee41321");
+ check_base_class_offset(lv, (bb21*)(cc321*), ABISELECT(32,20), "ee41321");
+ check_base_class_offset(lv, (cc321*)(dd1321*), ABISELECT(16,12), "ee41321");
+ check_base_class_offset(lv, (dd1321*), 0, "ee41321");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41321.e");
+ test_class_info(&lv, &cd_ee41321);
+ dp->~ee41321();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41321(Test_ee41321, "ee41321", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee41321C1Ev();
+extern void _ZN7ee41321D1Ev();
+Name_Map name_map_ee41321[] = {
+ NSPAIR(_ZN7ee41321C1Ev),
+ NSPAIR(_ZN7ee41321D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc321;
+extern VTBL_ENTRY _ZTI5cc321[];
+extern VTBL_ENTRY _ZTV5cc321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc321[];
+extern Class_Descriptor cd_dd1321;
+extern VTBL_ENTRY _ZTI6dd1321[];
+extern VTBL_ENTRY _ZTV6dd1321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1321[];
+static Base_Class bases_ee41321[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc321, 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_dd1321, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41321[];
+extern void _ZN7ee413213barEv();
+extern void _ZN5cc3213fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee41321[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41321[0]),
+ (VTBL_ENTRY)&_ZN7ee413213barEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee41321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee41321[];
+static VTBL_ENTRY _tg__ZTV6dd1321__7ee41321[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1321[0]),
+};
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc321__6dd1321__7ee41321[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd1321__7ee41321[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc321__7ee41321[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc321__7ee41321[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+static VTT_ENTRY vtt_ee41321[] = {
+ {&(_ZTV7ee41321[4]), 4,14},
+ {&(_tg__ZTV6dd1321__7ee41321[4]), 4,4},
+ {&(_tg__ZTV5cc321__6dd1321__7ee41321[4]), 4,5},
+ {&(_tg__ZTV4bb21__6dd1321__7ee41321[3]), 3,4},
+ {&(_ZTV7ee41321[9]), 9,14},
+ {&(_ZTV7ee41321[13]), 13,14},
+ {&(_tg__ZTV5cc321__7ee41321[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc321__7ee41321[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee41321[];
+extern VTBL_ENTRY _ZTV7ee41321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41321[];
+static VTBL_ENTRY alt_thunk_names569[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41321 = { "ee41321", // class name
+ bases_ee41321, 4,
+ &(vtc_ee41321[0]), // expected_vtbl_contents
+ &(vtt_ee41321[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee41321),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41321),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41321),8, //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 ee51321 : virtual dd1321 {
+ int e;
+ virtual void bar(); // _ZN7ee513213barEv
+ ~ee51321(); // tgen
+ ee51321(); // tgen
+};
+//SIG(1 ee51321) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 Fi} v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee51321 ::bar(){vfunc_called(this, "_ZN7ee513213barEv");}
+ee51321 ::~ee51321(){ note_dtor("ee51321", this);} // tgen
+ee51321 ::ee51321(){ note_ctor("ee51321", this);} // tgen
+
+static void Test_ee51321()
+{
+ extern Class_Descriptor cd_ee51321;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee51321, buf);
+ ee51321 *dp, &lv = *(dp=new (buf) ee51321());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee51321)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51321)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(48,24), "ee51321");
+ check_base_class_offset(lv, (bb21*)(cc321*), ABISELECT(48,24), "ee51321");
+ check_base_class_offset(lv, (cc321*)(dd1321*), ABISELECT(32,16), "ee51321");
+ check_base_class_offset(lv, (dd1321*), ABISELECT(16,8), "ee51321");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51321.e");
+ test_class_info(&lv, &cd_ee51321);
+ dp->~ee51321();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51321(Test_ee51321, "ee51321", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee51321C1Ev();
+extern void _ZN7ee51321D1Ev();
+Name_Map name_map_ee51321[] = {
+ NSPAIR(_ZN7ee51321C1Ev),
+ NSPAIR(_ZN7ee51321D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc321;
+extern VTBL_ENTRY _ZTI5cc321[];
+extern VTBL_ENTRY _ZTV5cc321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc321[];
+extern Class_Descriptor cd_dd1321;
+extern VTBL_ENTRY _ZTI6dd1321[];
+extern VTBL_ENTRY _ZTV6dd1321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1321[];
+static Base_Class bases_ee51321[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb21, ABISELECT(48,24), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc321, 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_dd1321, 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 _ZTI7ee51321[];
+extern void _ZN7ee513213barEv();
+extern void _ZN5cc3213fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee51321[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51321[0]),
+ (VTBL_ENTRY)&_ZN7ee513213barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51321[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee51321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee51321[];
+static VTBL_ENTRY _tg__ZTV6dd1321__7ee51321[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1321[0]),
+};
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc321__6dd1321__7ee51321[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd1321__7ee51321[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc321__7ee51321[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc321__7ee51321[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+static VTT_ENTRY vtt_ee51321[] = {
+ {&(_ZTV7ee51321[5]), 5,19},
+ {&(_ZTV7ee51321[10]), 10,19},
+ {&(_ZTV7ee51321[14]), 14,19},
+ {&(_ZTV7ee51321[18]), 18,19},
+ {&(_tg__ZTV6dd1321__7ee51321[4]), 4,4},
+ {&(_tg__ZTV5cc321__6dd1321__7ee51321[4]), 4,5},
+ {&(_tg__ZTV4bb21__6dd1321__7ee51321[3]), 3,4},
+ {&(_tg__ZTV5cc321__7ee51321[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc321__7ee51321[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee51321[];
+extern VTBL_ENTRY _ZTV7ee51321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51321[];
+static VTBL_ENTRY alt_thunk_names570[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51321 = { "ee51321", // class name
+ bases_ee51321, 4,
+ &(vtc_ee51321[0]), // expected_vtbl_contents
+ &(vtt_ee51321[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee51321),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51321),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51321),9, //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 ee61321 : dd1321 {
+ int e;
+ virtual void foo(); // _ZN7ee613213fooEv
+ virtual void bar(); // _ZN7ee613213barEv
+ ~ee61321(); // tgen
+ ee61321(); // tgen
+};
+//SIG(1 ee61321) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee61321 ::foo(){vfunc_called(this, "_ZN7ee613213fooEv");}
+void ee61321 ::bar(){vfunc_called(this, "_ZN7ee613213barEv");}
+ee61321 ::~ee61321(){ note_dtor("ee61321", this);} // tgen
+ee61321 ::ee61321(){ note_ctor("ee61321", this);} // tgen
+
+static void Test_ee61321()
+{
+ extern Class_Descriptor cd_ee61321;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee61321, buf);
+ ee61321 *dp, &lv = *(dp=new (buf) ee61321());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee61321)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61321)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee61321");
+ check_base_class_offset(lv, (bb21*)(cc321*), ABISELECT(32,20), "ee61321");
+ check_base_class_offset(lv, (cc321*)(dd1321*), ABISELECT(16,12), "ee61321");
+ check_base_class_offset(lv, (dd1321*), 0, "ee61321");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61321.e");
+ test_class_info(&lv, &cd_ee61321);
+ dp->~ee61321();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61321(Test_ee61321, "ee61321", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee61321C1Ev();
+extern void _ZN7ee61321D1Ev();
+Name_Map name_map_ee61321[] = {
+ NSPAIR(_ZN7ee61321C1Ev),
+ NSPAIR(_ZN7ee61321D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc321;
+extern VTBL_ENTRY _ZTI5cc321[];
+extern VTBL_ENTRY _ZTV5cc321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc321[];
+extern Class_Descriptor cd_dd1321;
+extern VTBL_ENTRY _ZTI6dd1321[];
+extern VTBL_ENTRY _ZTV6dd1321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1321[];
+static Base_Class bases_ee61321[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc321, 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_dd1321, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61321[];
+extern void _ZN7ee613213fooEv();
+extern void _ZN7ee613213barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee613213fooEv,_ZTv0_n16_N7ee613213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee613213fooEv,_ZThn12_N7ee613213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee613213fooEv,_ZTv0_n12_N7ee613213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee613213fooEv,_ZThn20_N7ee613213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61321[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61321[0]),
+ (VTBL_ENTRY)&_ZN7ee613213fooEv,
+ (VTBL_ENTRY)&_ZN7ee613213barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee613213fooEv,_ZTv0_n16_N7ee613213fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee61321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee613213fooEv,_ZTv0_n12_N7ee613213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee61321[];
+static VTBL_ENTRY _tg__ZTV6dd1321__7ee61321[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1321[0]),
+};
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc321__6dd1321__7ee61321[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd1321__7ee61321[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc321__7ee61321[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc321__7ee61321[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+static VTT_ENTRY vtt_ee61321[] = {
+ {&(_ZTV7ee61321[4]), 4,15},
+ {&(_tg__ZTV6dd1321__7ee61321[4]), 4,4},
+ {&(_tg__ZTV5cc321__6dd1321__7ee61321[4]), 4,5},
+ {&(_tg__ZTV4bb21__6dd1321__7ee61321[3]), 3,4},
+ {&(_ZTV7ee61321[10]), 10,15},
+ {&(_ZTV7ee61321[14]), 14,15},
+ {&(_tg__ZTV5cc321__7ee61321[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc321__7ee61321[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee61321[];
+extern VTBL_ENTRY _ZTV7ee61321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61321[];
+static VTBL_ENTRY alt_thunk_names571[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee613213fooEv,_ZTv0_n12_N7ee613213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee613213fooEv,_ZThn20_N7ee613213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee613213fooEv,_ZTv0_n16_N7ee613213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee613213fooEv,_ZThn12_N7ee613213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61321 = { "ee61321", // class name
+ bases_ee61321, 4,
+ &(vtc_ee61321[0]), // expected_vtbl_contents
+ &(vtt_ee61321[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee61321),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61321),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61321),8, //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 ee71321 : virtual dd1321 {
+ int e;
+ virtual void foo(); // _ZN7ee713213fooEv
+ virtual void bar(); // _ZN7ee713213barEv
+ ~ee71321(); // tgen
+ ee71321(); // tgen
+};
+//SIG(1 ee71321) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee71321 ::foo(){vfunc_called(this, "_ZN7ee713213fooEv");}
+void ee71321 ::bar(){vfunc_called(this, "_ZN7ee713213barEv");}
+ee71321 ::~ee71321(){ note_dtor("ee71321", this);} // tgen
+ee71321 ::ee71321(){ note_ctor("ee71321", this);} // tgen
+
+static void Test_ee71321()
+{
+ extern Class_Descriptor cd_ee71321;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee71321, buf);
+ ee71321 *dp, &lv = *(dp=new (buf) ee71321());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee71321)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71321)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(48,24), "ee71321");
+ check_base_class_offset(lv, (bb21*)(cc321*), ABISELECT(48,24), "ee71321");
+ check_base_class_offset(lv, (cc321*)(dd1321*), ABISELECT(32,16), "ee71321");
+ check_base_class_offset(lv, (dd1321*), ABISELECT(16,8), "ee71321");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71321.e");
+ test_class_info(&lv, &cd_ee71321);
+ dp->~ee71321();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71321(Test_ee71321, "ee71321", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee71321C1Ev();
+extern void _ZN7ee71321D1Ev();
+Name_Map name_map_ee71321[] = {
+ NSPAIR(_ZN7ee71321C1Ev),
+ NSPAIR(_ZN7ee71321D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc321;
+extern VTBL_ENTRY _ZTI5cc321[];
+extern VTBL_ENTRY _ZTV5cc321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc321[];
+extern Class_Descriptor cd_dd1321;
+extern VTBL_ENTRY _ZTI6dd1321[];
+extern VTBL_ENTRY _ZTV6dd1321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1321[];
+static Base_Class bases_ee71321[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb21, ABISELECT(48,24), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc321, 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_dd1321, 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 _ZTI7ee71321[];
+extern void _ZN7ee713213fooEv();
+extern void _ZN7ee713213barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee713213fooEv,_ZTv0_n16_N7ee713213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee713213fooEv,_ZThn16_N7ee713213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee713213fooEv,_ZTv0_n12_N7ee713213fooEv)();
+extern void ABISELECT(_ZThn48_N7ee713213fooEv,_ZThn24_N7ee713213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71321[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71321[0]),
+ (VTBL_ENTRY)&_ZN7ee713213fooEv,
+ (VTBL_ENTRY)&_ZN7ee713213barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71321[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee713213fooEv,_ZTv0_n16_N7ee713213fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee71321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee713213fooEv,_ZTv0_n12_N7ee713213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee71321[];
+static VTBL_ENTRY _tg__ZTV6dd1321__7ee71321[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1321[0]),
+};
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc321__6dd1321__7ee71321[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd1321__7ee71321[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc321__7ee71321[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc321__7ee71321[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+static VTT_ENTRY vtt_ee71321[] = {
+ {&(_ZTV7ee71321[5]), 5,20},
+ {&(_ZTV7ee71321[11]), 11,20},
+ {&(_ZTV7ee71321[15]), 15,20},
+ {&(_ZTV7ee71321[19]), 19,20},
+ {&(_tg__ZTV6dd1321__7ee71321[4]), 4,4},
+ {&(_tg__ZTV5cc321__6dd1321__7ee71321[4]), 4,5},
+ {&(_tg__ZTV4bb21__6dd1321__7ee71321[3]), 3,4},
+ {&(_tg__ZTV5cc321__7ee71321[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc321__7ee71321[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee71321[];
+extern VTBL_ENTRY _ZTV7ee71321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71321[];
+static VTBL_ENTRY alt_thunk_names572[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee713213fooEv,_ZTv0_n12_N7ee713213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee713213fooEv,_ZThn24_N7ee713213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee713213fooEv,_ZTv0_n16_N7ee713213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee713213fooEv,_ZThn16_N7ee713213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71321 = { "ee71321", // class name
+ bases_ee71321, 4,
+ &(vtc_ee71321[0]), // expected_vtbl_contents
+ &(vtt_ee71321[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee71321),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71321),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71321),9, //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 dd2321 : cc321 {
+ int d;
+ virtual void foo(); // _ZN6dd23213fooEv
+ ~dd2321(); // tgen
+ dd2321(); // tgen
+};
+//SIG(-1 dd2321) C1{ BC2{ VBC3{ BC4{ v1 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void dd2321 ::foo(){vfunc_called(this, "_ZN6dd23213fooEv");}
+dd2321 ::~dd2321(){ note_dtor("dd2321", this);} // tgen
+dd2321 ::dd2321(){ note_ctor("dd2321", this);} // tgen
+
+static void Test_dd2321()
+{
+ extern Class_Descriptor cd_dd2321;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd2321, buf);
+ dd2321 *dp, &lv = *(dp=new (buf) dd2321());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd2321)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2321)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(16,12), "dd2321");
+ check_base_class_offset(lv, (bb21*)(cc321*), ABISELECT(16,12), "dd2321");
+ check_base_class_offset(lv, (cc321*), 0, "dd2321");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd2321.d");
+ test_class_info(&lv, &cd_dd2321);
+ dp->~dd2321();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2321(Test_dd2321, "dd2321", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd2321C1Ev();
+extern void _ZN6dd2321D1Ev();
+Name_Map name_map_dd2321[] = {
+ NSPAIR(_ZN6dd2321C1Ev),
+ NSPAIR(_ZN6dd2321D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc321;
+extern VTBL_ENTRY _ZTI5cc321[];
+extern VTBL_ENTRY _ZTV5cc321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc321[];
+static Base_Class bases_dd2321[] = {
+ // 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_bb21, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc321, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd2321[];
+extern void _ZN6dd23213fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd23213fooEv,_ZTv0_n12_N6dd23213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd23213fooEv,_ZThn12_N6dd23213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd2321[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2321[0]),
+ (VTBL_ENTRY)&_ZN6dd23213fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23213fooEv,_ZTv0_n12_N6dd23213fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd2321[];
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc321__6dd2321[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn12_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc321__6dd2321[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+static VTT_ENTRY vtt_dd2321[] = {
+ {&(_ZTV6dd2321[3]), 3,8},
+ {&(_tg__ZTV5cc321__6dd2321[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc321__6dd2321[3]), 3,4},
+ {&(_ZTV6dd2321[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI6dd2321[];
+extern VTBL_ENTRY _ZTV6dd2321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2321[];
+static VTBL_ENTRY alt_thunk_names573[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn12_N5cc3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23213fooEv,_ZTv0_n12_N6dd23213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd23213fooEv,_ZThn12_N6dd23213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd2321 = { "dd2321", // class name
+ bases_dd2321, 3,
+ &(vtc_dd2321[0]), // expected_vtbl_contents
+ &(vtt_dd2321[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd2321),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2321),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd2321),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names573,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee02321 : dd2321 {
+ int e;
+ ~ee02321(); // tgen
+ ee02321(); // tgen
+};
+//SIG(1 ee02321) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee02321 ::~ee02321(){ note_dtor("ee02321", this);} // tgen
+ee02321 ::ee02321(){ note_ctor("ee02321", this);} // tgen
+
+static void Test_ee02321()
+{
+ extern Class_Descriptor cd_ee02321;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee02321, buf);
+ ee02321 *dp, &lv = *(dp=new (buf) ee02321());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee02321)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02321)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(24,16), "ee02321");
+ check_base_class_offset(lv, (bb21*)(cc321*)(dd2321*), ABISELECT(24,16), "ee02321");
+ check_base_class_offset(lv, (cc321*)(dd2321*), 0, "ee02321");
+ check_base_class_offset(lv, (dd2321*), 0, "ee02321");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee02321.e");
+ test_class_info(&lv, &cd_ee02321);
+ dp->~ee02321();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02321(Test_ee02321, "ee02321", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee02321C1Ev();
+extern void _ZN7ee02321D1Ev();
+Name_Map name_map_ee02321[] = {
+ NSPAIR(_ZN7ee02321C1Ev),
+ NSPAIR(_ZN7ee02321D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc321;
+extern VTBL_ENTRY _ZTI5cc321[];
+extern VTBL_ENTRY _ZTV5cc321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc321[];
+extern Class_Descriptor cd_dd2321;
+extern VTBL_ENTRY _ZTI6dd2321[];
+extern VTBL_ENTRY _ZTV6dd2321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2321[];
+static Base_Class bases_ee02321[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc321, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2321, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee02321[];
+extern void _ZN6dd23213fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd23213fooEv,_ZTv0_n12_N6dd23213fooEv)();
+extern void ABISELECT(_ZThn24_N6dd23213fooEv,_ZThn16_N6dd23213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee02321[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02321[0]),
+ (VTBL_ENTRY)&_ZN6dd23213fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee02321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23213fooEv,_ZTv0_n12_N6dd23213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee02321[];
+extern void _ZN6dd23213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2321__7ee02321[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2321[0]),
+ (VTBL_ENTRY)&_ZN6dd23213fooEv,
+};
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3216dd2321__7ee02321[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3213fooEv,_ZThn16_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc3216dd2321__7ee02321[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd23213fooEv,_ZTv0_n12_N6dd23213fooEv)();
+extern void ABISELECT(_ZThn24_N6dd23213fooEv,_ZThn16_N6dd23213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd2321__7ee02321[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23213fooEv,_ZTv0_n12_N6dd23213fooEv),
+};
+static VTT_ENTRY vtt_ee02321[] = {
+ {&(_ZTV7ee02321[3]), 3,8},
+ {&(_tg__ZTV6dd2321__7ee02321[3]), 3,4},
+ {&(_tg__ZTV5cc3216dd2321__7ee02321[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc3216dd2321__7ee02321[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd2321__7ee02321[3]), 3,4},
+ {&(_ZTV7ee02321[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee02321[];
+extern VTBL_ENTRY _ZTV7ee02321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee02321[];
+static VTBL_ENTRY alt_thunk_names574[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3213fooEv,_ZThn16_N5cc3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23213fooEv,_ZTv0_n12_N6dd23213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd23213fooEv,_ZThn16_N6dd23213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd23213fooEv,_ZThn16_N6dd23213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee02321 = { "ee02321", // class name
+ bases_ee02321, 4,
+ &(vtc_ee02321[0]), // expected_vtbl_contents
+ &(vtt_ee02321[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee02321),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02321),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee02321),6, //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 ee12321 : virtual dd2321 {
+ int e;
+ ~ee12321(); // tgen
+ ee12321(); // tgen
+};
+//SIG(1 ee12321) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee12321 ::~ee12321(){ note_dtor("ee12321", this);} // tgen
+ee12321 ::ee12321(){ note_ctor("ee12321", this);} // tgen
+
+static void Test_ee12321()
+{
+ extern Class_Descriptor cd_ee12321;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee12321, buf);
+ ee12321 *dp, &lv = *(dp=new (buf) ee12321());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee12321)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12321)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee12321");
+ check_base_class_offset(lv, (bb21*)(cc321*)(dd2321*), ABISELECT(32,20), "ee12321");
+ check_base_class_offset(lv, (cc321*)(dd2321*), ABISELECT(16,8), "ee12321");
+ check_base_class_offset(lv, (dd2321*), ABISELECT(16,8), "ee12321");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12321.e");
+ test_class_info(&lv, &cd_ee12321);
+ dp->~ee12321();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12321(Test_ee12321, "ee12321", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee12321C1Ev();
+extern void _ZN7ee12321D1Ev();
+Name_Map name_map_ee12321[] = {
+ NSPAIR(_ZN7ee12321C1Ev),
+ NSPAIR(_ZN7ee12321D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc321;
+extern VTBL_ENTRY _ZTI5cc321[];
+extern VTBL_ENTRY _ZTV5cc321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc321[];
+extern Class_Descriptor cd_dd2321;
+extern VTBL_ENTRY _ZTI6dd2321[];
+extern VTBL_ENTRY _ZTV6dd2321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2321[];
+static Base_Class bases_ee12321[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc321, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2321, 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 _ZTI7ee12321[];
+extern void _ZN6dd23213fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd23213fooEv,_ZTv0_n12_N6dd23213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd23213fooEv,_ZThn12_N6dd23213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee12321[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12321[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12321[0]),
+ (VTBL_ENTRY)&_ZN6dd23213fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee12321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23213fooEv,_ZTv0_n12_N6dd23213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee12321[];
+extern void _ZN6dd23213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2321__7ee12321[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2321[0]),
+ (VTBL_ENTRY)&_ZN6dd23213fooEv,
+};
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3216dd2321__7ee12321[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn12_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc3216dd2321__7ee12321[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd23213fooEv,_ZTv0_n12_N6dd23213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd23213fooEv,_ZThn12_N6dd23213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd2321__7ee12321[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23213fooEv,_ZTv0_n12_N6dd23213fooEv),
+};
+static VTT_ENTRY vtt_ee12321[] = {
+ {&(_ZTV7ee12321[4]), 4,13},
+ {&(_ZTV7ee12321[8]), 8,13},
+ {&(_ZTV7ee12321[12]), 12,13},
+ {&(_tg__ZTV6dd2321__7ee12321[3]), 3,4},
+ {&(_tg__ZTV5cc3216dd2321__7ee12321[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc3216dd2321__7ee12321[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd2321__7ee12321[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee12321[];
+extern VTBL_ENTRY _ZTV7ee12321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12321[];
+static VTBL_ENTRY alt_thunk_names575[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn12_N5cc3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23213fooEv,_ZTv0_n12_N6dd23213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd23213fooEv,_ZThn12_N6dd23213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd23213fooEv,_ZThn12_N6dd23213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee12321 = { "ee12321", // class name
+ bases_ee12321, 4,
+ &(vtc_ee12321[0]), // expected_vtbl_contents
+ &(vtt_ee12321[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee12321),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12321),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12321),7, //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 ee22321 : dd2321 {
+ int e;
+ virtual void foo(); // _ZN7ee223213fooEv
+ ~ee22321(); // tgen
+ ee22321(); // tgen
+};
+//SIG(1 ee22321) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee22321 ::foo(){vfunc_called(this, "_ZN7ee223213fooEv");}
+ee22321 ::~ee22321(){ note_dtor("ee22321", this);} // tgen
+ee22321 ::ee22321(){ note_ctor("ee22321", this);} // tgen
+
+static void Test_ee22321()
+{
+ extern Class_Descriptor cd_ee22321;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee22321, buf);
+ ee22321 *dp, &lv = *(dp=new (buf) ee22321());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee22321)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22321)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(24,16), "ee22321");
+ check_base_class_offset(lv, (bb21*)(cc321*)(dd2321*), ABISELECT(24,16), "ee22321");
+ check_base_class_offset(lv, (cc321*)(dd2321*), 0, "ee22321");
+ check_base_class_offset(lv, (dd2321*), 0, "ee22321");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee22321.e");
+ test_class_info(&lv, &cd_ee22321);
+ dp->~ee22321();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22321(Test_ee22321, "ee22321", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee22321C1Ev();
+extern void _ZN7ee22321D1Ev();
+Name_Map name_map_ee22321[] = {
+ NSPAIR(_ZN7ee22321C1Ev),
+ NSPAIR(_ZN7ee22321D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc321;
+extern VTBL_ENTRY _ZTI5cc321[];
+extern VTBL_ENTRY _ZTV5cc321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc321[];
+extern Class_Descriptor cd_dd2321;
+extern VTBL_ENTRY _ZTI6dd2321[];
+extern VTBL_ENTRY _ZTV6dd2321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2321[];
+static Base_Class bases_ee22321[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc321, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2321, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee22321[];
+extern void _ZN7ee223213fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee223213fooEv,_ZTv0_n12_N7ee223213fooEv)();
+extern void ABISELECT(_ZThn24_N7ee223213fooEv,_ZThn16_N7ee223213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee22321[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22321[0]),
+ (VTBL_ENTRY)&_ZN7ee223213fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee22321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee223213fooEv,_ZTv0_n12_N7ee223213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee22321[];
+extern void _ZN6dd23213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2321__7ee22321[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2321[0]),
+ (VTBL_ENTRY)&_ZN6dd23213fooEv,
+};
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3216dd2321__7ee22321[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3213fooEv,_ZThn16_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc3216dd2321__7ee22321[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd23213fooEv,_ZTv0_n12_N6dd23213fooEv)();
+extern void ABISELECT(_ZThn24_N6dd23213fooEv,_ZThn16_N6dd23213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd2321__7ee22321[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23213fooEv,_ZTv0_n12_N6dd23213fooEv),
+};
+static VTT_ENTRY vtt_ee22321[] = {
+ {&(_ZTV7ee22321[3]), 3,8},
+ {&(_tg__ZTV6dd2321__7ee22321[3]), 3,4},
+ {&(_tg__ZTV5cc3216dd2321__7ee22321[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc3216dd2321__7ee22321[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd2321__7ee22321[3]), 3,4},
+ {&(_ZTV7ee22321[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee22321[];
+extern VTBL_ENTRY _ZTV7ee22321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee22321[];
+static VTBL_ENTRY alt_thunk_names576[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23213fooEv,_ZTv0_n12_N6dd23213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd23213fooEv,_ZThn16_N6dd23213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3213fooEv,_ZThn16_N5cc3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee223213fooEv,_ZTv0_n12_N7ee223213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee223213fooEv,_ZThn16_N7ee223213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee22321 = { "ee22321", // class name
+ bases_ee22321, 4,
+ &(vtc_ee22321[0]), // expected_vtbl_contents
+ &(vtt_ee22321[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee22321),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22321),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee22321),6, //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 ee32321 : virtual dd2321 {
+ int e;
+ virtual void foo(); // _ZN7ee323213fooEv
+ ~ee32321(); // tgen
+ ee32321(); // tgen
+};
+//SIG(1 ee32321) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee32321 ::foo(){vfunc_called(this, "_ZN7ee323213fooEv");}
+ee32321 ::~ee32321(){ note_dtor("ee32321", this);} // tgen
+ee32321 ::ee32321(){ note_ctor("ee32321", this);} // tgen
+
+static void Test_ee32321()
+{
+ extern Class_Descriptor cd_ee32321;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee32321, buf);
+ ee32321 *dp, &lv = *(dp=new (buf) ee32321());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee32321)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32321)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee32321");
+ check_base_class_offset(lv, (bb21*)(cc321*)(dd2321*), ABISELECT(32,20), "ee32321");
+ check_base_class_offset(lv, (cc321*)(dd2321*), ABISELECT(16,8), "ee32321");
+ check_base_class_offset(lv, (dd2321*), ABISELECT(16,8), "ee32321");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32321.e");
+ test_class_info(&lv, &cd_ee32321);
+ dp->~ee32321();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32321(Test_ee32321, "ee32321", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee32321C1Ev();
+extern void _ZN7ee32321D1Ev();
+Name_Map name_map_ee32321[] = {
+ NSPAIR(_ZN7ee32321C1Ev),
+ NSPAIR(_ZN7ee32321D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc321;
+extern VTBL_ENTRY _ZTI5cc321[];
+extern VTBL_ENTRY _ZTV5cc321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc321[];
+extern Class_Descriptor cd_dd2321;
+extern VTBL_ENTRY _ZTI6dd2321[];
+extern VTBL_ENTRY _ZTV6dd2321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2321[];
+static Base_Class bases_ee32321[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc321, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2321, 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 _ZTI7ee32321[];
+extern void _ZN7ee323213fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee323213fooEv,_ZTv0_n16_N7ee323213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee323213fooEv,_ZThn8_N7ee323213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee323213fooEv,_ZTv0_n12_N7ee323213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee323213fooEv,_ZThn20_N7ee323213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee32321[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32321[0]),
+ (VTBL_ENTRY)&_ZN7ee323213fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee323213fooEv,_ZTv0_n16_N7ee323213fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee32321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee323213fooEv,_ZTv0_n12_N7ee323213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee32321[];
+extern void _ZN6dd23213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2321__7ee32321[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2321[0]),
+ (VTBL_ENTRY)&_ZN6dd23213fooEv,
+};
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3216dd2321__7ee32321[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn12_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc3216dd2321__7ee32321[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd23213fooEv,_ZTv0_n12_N6dd23213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd23213fooEv,_ZThn12_N6dd23213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd2321__7ee32321[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23213fooEv,_ZTv0_n12_N6dd23213fooEv),
+};
+static VTT_ENTRY vtt_ee32321[] = {
+ {&(_ZTV7ee32321[4]), 4,14},
+ {&(_ZTV7ee32321[9]), 9,14},
+ {&(_ZTV7ee32321[13]), 13,14},
+ {&(_tg__ZTV6dd2321__7ee32321[3]), 3,4},
+ {&(_tg__ZTV5cc3216dd2321__7ee32321[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc3216dd2321__7ee32321[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd2321__7ee32321[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee32321[];
+extern VTBL_ENTRY _ZTV7ee32321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32321[];
+static VTBL_ENTRY alt_thunk_names577[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23213fooEv,_ZTv0_n12_N6dd23213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd23213fooEv,_ZThn12_N6dd23213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn12_N5cc3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee323213fooEv,_ZTv0_n12_N7ee323213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee323213fooEv,_ZThn20_N7ee323213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee323213fooEv,_ZTv0_n16_N7ee323213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee323213fooEv,_ZThn8_N7ee323213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32321 = { "ee32321", // class name
+ bases_ee32321, 4,
+ &(vtc_ee32321[0]), // expected_vtbl_contents
+ &(vtt_ee32321[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee32321),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32321),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32321),7, //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 ee42321 : dd2321 {
+ int e;
+ virtual void bar(); // _ZN7ee423213barEv
+ ~ee42321(); // tgen
+ ee42321(); // tgen
+};
+//SIG(1 ee42321) C1{ BC2{ BC3{ VBC4{ BC5{ v2 Fi} v2 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee42321 ::bar(){vfunc_called(this, "_ZN7ee423213barEv");}
+ee42321 ::~ee42321(){ note_dtor("ee42321", this);} // tgen
+ee42321 ::ee42321(){ note_ctor("ee42321", this);} // tgen
+
+static void Test_ee42321()
+{
+ extern Class_Descriptor cd_ee42321;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee42321, buf);
+ ee42321 *dp, &lv = *(dp=new (buf) ee42321());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee42321)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42321)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(24,16), "ee42321");
+ check_base_class_offset(lv, (bb21*)(cc321*)(dd2321*), ABISELECT(24,16), "ee42321");
+ check_base_class_offset(lv, (cc321*)(dd2321*), 0, "ee42321");
+ check_base_class_offset(lv, (dd2321*), 0, "ee42321");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee42321.e");
+ test_class_info(&lv, &cd_ee42321);
+ dp->~ee42321();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42321(Test_ee42321, "ee42321", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee42321C1Ev();
+extern void _ZN7ee42321D1Ev();
+Name_Map name_map_ee42321[] = {
+ NSPAIR(_ZN7ee42321C1Ev),
+ NSPAIR(_ZN7ee42321D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc321;
+extern VTBL_ENTRY _ZTI5cc321[];
+extern VTBL_ENTRY _ZTV5cc321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc321[];
+extern Class_Descriptor cd_dd2321;
+extern VTBL_ENTRY _ZTI6dd2321[];
+extern VTBL_ENTRY _ZTV6dd2321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2321[];
+static Base_Class bases_ee42321[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc321, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2321, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee42321[];
+extern void _ZN6dd23213fooEv();
+extern void _ZN7ee423213barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd23213fooEv,_ZTv0_n12_N6dd23213fooEv)();
+extern void ABISELECT(_ZThn24_N6dd23213fooEv,_ZThn16_N6dd23213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee42321[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42321[0]),
+ (VTBL_ENTRY)&_ZN6dd23213fooEv,
+ (VTBL_ENTRY)&_ZN7ee423213barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee42321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23213fooEv,_ZTv0_n12_N6dd23213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee42321[];
+extern void _ZN6dd23213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2321__7ee42321[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2321[0]),
+ (VTBL_ENTRY)&_ZN6dd23213fooEv,
+};
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3216dd2321__7ee42321[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3213fooEv,_ZThn16_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc3216dd2321__7ee42321[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd23213fooEv,_ZTv0_n12_N6dd23213fooEv)();
+extern void ABISELECT(_ZThn24_N6dd23213fooEv,_ZThn16_N6dd23213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd2321__7ee42321[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23213fooEv,_ZTv0_n12_N6dd23213fooEv),
+};
+static VTT_ENTRY vtt_ee42321[] = {
+ {&(_ZTV7ee42321[3]), 3,9},
+ {&(_tg__ZTV6dd2321__7ee42321[3]), 3,4},
+ {&(_tg__ZTV5cc3216dd2321__7ee42321[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc3216dd2321__7ee42321[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd2321__7ee42321[3]), 3,4},
+ {&(_ZTV7ee42321[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee42321[];
+extern VTBL_ENTRY _ZTV7ee42321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee42321[];
+static VTBL_ENTRY alt_thunk_names578[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3213fooEv,_ZThn16_N5cc3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23213fooEv,_ZTv0_n12_N6dd23213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd23213fooEv,_ZThn16_N6dd23213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd23213fooEv,_ZThn16_N6dd23213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee42321 = { "ee42321", // class name
+ bases_ee42321, 4,
+ &(vtc_ee42321[0]), // expected_vtbl_contents
+ &(vtt_ee42321[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee42321),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42321),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee42321),6, //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 ee52321 : virtual dd2321 {
+ int e;
+ virtual void bar(); // _ZN7ee523213barEv
+ ~ee52321(); // tgen
+ ee52321(); // tgen
+};
+//SIG(1 ee52321) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 Fi} v2 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee52321 ::bar(){vfunc_called(this, "_ZN7ee523213barEv");}
+ee52321 ::~ee52321(){ note_dtor("ee52321", this);} // tgen
+ee52321 ::ee52321(){ note_ctor("ee52321", this);} // tgen
+
+static void Test_ee52321()
+{
+ extern Class_Descriptor cd_ee52321;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee52321, buf);
+ ee52321 *dp, &lv = *(dp=new (buf) ee52321());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee52321)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52321)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee52321");
+ check_base_class_offset(lv, (bb21*)(cc321*)(dd2321*), ABISELECT(32,20), "ee52321");
+ check_base_class_offset(lv, (cc321*)(dd2321*), ABISELECT(16,8), "ee52321");
+ check_base_class_offset(lv, (dd2321*), ABISELECT(16,8), "ee52321");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52321.e");
+ test_class_info(&lv, &cd_ee52321);
+ dp->~ee52321();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52321(Test_ee52321, "ee52321", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee52321C1Ev();
+extern void _ZN7ee52321D1Ev();
+Name_Map name_map_ee52321[] = {
+ NSPAIR(_ZN7ee52321C1Ev),
+ NSPAIR(_ZN7ee52321D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc321;
+extern VTBL_ENTRY _ZTI5cc321[];
+extern VTBL_ENTRY _ZTV5cc321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc321[];
+extern Class_Descriptor cd_dd2321;
+extern VTBL_ENTRY _ZTI6dd2321[];
+extern VTBL_ENTRY _ZTV6dd2321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2321[];
+static Base_Class bases_ee52321[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc321, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2321, 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 _ZTI7ee52321[];
+extern void _ZN7ee523213barEv();
+extern void _ZN6dd23213fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd23213fooEv,_ZTv0_n12_N6dd23213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd23213fooEv,_ZThn12_N6dd23213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee52321[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52321[0]),
+ (VTBL_ENTRY)&_ZN7ee523213barEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52321[0]),
+ (VTBL_ENTRY)&_ZN6dd23213fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee52321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23213fooEv,_ZTv0_n12_N6dd23213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee52321[];
+extern void _ZN6dd23213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2321__7ee52321[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2321[0]),
+ (VTBL_ENTRY)&_ZN6dd23213fooEv,
+};
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3216dd2321__7ee52321[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn12_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc3216dd2321__7ee52321[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd23213fooEv,_ZTv0_n12_N6dd23213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd23213fooEv,_ZThn12_N6dd23213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd2321__7ee52321[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23213fooEv,_ZTv0_n12_N6dd23213fooEv),
+};
+static VTT_ENTRY vtt_ee52321[] = {
+ {&(_ZTV7ee52321[4]), 4,14},
+ {&(_ZTV7ee52321[9]), 9,14},
+ {&(_ZTV7ee52321[13]), 13,14},
+ {&(_tg__ZTV6dd2321__7ee52321[3]), 3,4},
+ {&(_tg__ZTV5cc3216dd2321__7ee52321[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc3216dd2321__7ee52321[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd2321__7ee52321[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee52321[];
+extern VTBL_ENTRY _ZTV7ee52321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52321[];
+static VTBL_ENTRY alt_thunk_names579[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn12_N5cc3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23213fooEv,_ZTv0_n12_N6dd23213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd23213fooEv,_ZThn12_N6dd23213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd23213fooEv,_ZThn12_N6dd23213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52321 = { "ee52321", // class name
+ bases_ee52321, 4,
+ &(vtc_ee52321[0]), // expected_vtbl_contents
+ &(vtt_ee52321[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee52321),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52321),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52321),7, //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 ee62321 : dd2321 {
+ int e;
+ virtual void foo(); // _ZN7ee623213fooEv
+ virtual void bar(); // _ZN7ee623213barEv
+ ~ee62321(); // tgen
+ ee62321(); // tgen
+};
+//SIG(1 ee62321) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62321 ::foo(){vfunc_called(this, "_ZN7ee623213fooEv");}
+void ee62321 ::bar(){vfunc_called(this, "_ZN7ee623213barEv");}
+ee62321 ::~ee62321(){ note_dtor("ee62321", this);} // tgen
+ee62321 ::ee62321(){ note_ctor("ee62321", this);} // tgen
+
+static void Test_ee62321()
+{
+ extern Class_Descriptor cd_ee62321;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee62321, buf);
+ ee62321 *dp, &lv = *(dp=new (buf) ee62321());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee62321)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62321)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(24,16), "ee62321");
+ check_base_class_offset(lv, (bb21*)(cc321*)(dd2321*), ABISELECT(24,16), "ee62321");
+ check_base_class_offset(lv, (cc321*)(dd2321*), 0, "ee62321");
+ check_base_class_offset(lv, (dd2321*), 0, "ee62321");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee62321.e");
+ test_class_info(&lv, &cd_ee62321);
+ dp->~ee62321();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62321(Test_ee62321, "ee62321", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee62321C1Ev();
+extern void _ZN7ee62321D1Ev();
+Name_Map name_map_ee62321[] = {
+ NSPAIR(_ZN7ee62321C1Ev),
+ NSPAIR(_ZN7ee62321D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc321;
+extern VTBL_ENTRY _ZTI5cc321[];
+extern VTBL_ENTRY _ZTV5cc321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc321[];
+extern Class_Descriptor cd_dd2321;
+extern VTBL_ENTRY _ZTI6dd2321[];
+extern VTBL_ENTRY _ZTV6dd2321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2321[];
+static Base_Class bases_ee62321[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc321, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2321, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee62321[];
+extern void _ZN7ee623213fooEv();
+extern void _ZN7ee623213barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee623213fooEv,_ZTv0_n12_N7ee623213fooEv)();
+extern void ABISELECT(_ZThn24_N7ee623213fooEv,_ZThn16_N7ee623213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee62321[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62321[0]),
+ (VTBL_ENTRY)&_ZN7ee623213fooEv,
+ (VTBL_ENTRY)&_ZN7ee623213barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee62321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee623213fooEv,_ZTv0_n12_N7ee623213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee62321[];
+extern void _ZN6dd23213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2321__7ee62321[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2321[0]),
+ (VTBL_ENTRY)&_ZN6dd23213fooEv,
+};
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3216dd2321__7ee62321[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3213fooEv,_ZThn16_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc3216dd2321__7ee62321[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd23213fooEv,_ZTv0_n12_N6dd23213fooEv)();
+extern void ABISELECT(_ZThn24_N6dd23213fooEv,_ZThn16_N6dd23213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd2321__7ee62321[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23213fooEv,_ZTv0_n12_N6dd23213fooEv),
+};
+static VTT_ENTRY vtt_ee62321[] = {
+ {&(_ZTV7ee62321[3]), 3,9},
+ {&(_tg__ZTV6dd2321__7ee62321[3]), 3,4},
+ {&(_tg__ZTV5cc3216dd2321__7ee62321[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc3216dd2321__7ee62321[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd2321__7ee62321[3]), 3,4},
+ {&(_ZTV7ee62321[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee62321[];
+extern VTBL_ENTRY _ZTV7ee62321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee62321[];
+static VTBL_ENTRY alt_thunk_names580[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23213fooEv,_ZTv0_n12_N6dd23213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd23213fooEv,_ZThn16_N6dd23213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3213fooEv,_ZThn16_N5cc3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee623213fooEv,_ZTv0_n12_N7ee623213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee623213fooEv,_ZThn16_N7ee623213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee62321 = { "ee62321", // class name
+ bases_ee62321, 4,
+ &(vtc_ee62321[0]), // expected_vtbl_contents
+ &(vtt_ee62321[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee62321),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62321),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee62321),6, //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 ee72321 : virtual dd2321 {
+ int e;
+ virtual void foo(); // _ZN7ee723213fooEv
+ virtual void bar(); // _ZN7ee723213barEv
+ ~ee72321(); // tgen
+ ee72321(); // tgen
+};
+//SIG(1 ee72321) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72321 ::foo(){vfunc_called(this, "_ZN7ee723213fooEv");}
+void ee72321 ::bar(){vfunc_called(this, "_ZN7ee723213barEv");}
+ee72321 ::~ee72321(){ note_dtor("ee72321", this);} // tgen
+ee72321 ::ee72321(){ note_ctor("ee72321", this);} // tgen
+
+static void Test_ee72321()
+{
+ extern Class_Descriptor cd_ee72321;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee72321, buf);
+ ee72321 *dp, &lv = *(dp=new (buf) ee72321());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee72321)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72321)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee72321");
+ check_base_class_offset(lv, (bb21*)(cc321*)(dd2321*), ABISELECT(32,20), "ee72321");
+ check_base_class_offset(lv, (cc321*)(dd2321*), ABISELECT(16,8), "ee72321");
+ check_base_class_offset(lv, (dd2321*), ABISELECT(16,8), "ee72321");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72321.e");
+ test_class_info(&lv, &cd_ee72321);
+ dp->~ee72321();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72321(Test_ee72321, "ee72321", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee72321C1Ev();
+extern void _ZN7ee72321D1Ev();
+Name_Map name_map_ee72321[] = {
+ NSPAIR(_ZN7ee72321C1Ev),
+ NSPAIR(_ZN7ee72321D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc321;
+extern VTBL_ENTRY _ZTI5cc321[];
+extern VTBL_ENTRY _ZTV5cc321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc321[];
+extern Class_Descriptor cd_dd2321;
+extern VTBL_ENTRY _ZTI6dd2321[];
+extern VTBL_ENTRY _ZTV6dd2321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2321[];
+static Base_Class bases_ee72321[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc321, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2321, 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 _ZTI7ee72321[];
+extern void _ZN7ee723213fooEv();
+extern void _ZN7ee723213barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee723213fooEv,_ZTv0_n16_N7ee723213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee723213fooEv,_ZThn8_N7ee723213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee723213fooEv,_ZTv0_n12_N7ee723213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee723213fooEv,_ZThn20_N7ee723213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72321[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72321[0]),
+ (VTBL_ENTRY)&_ZN7ee723213fooEv,
+ (VTBL_ENTRY)&_ZN7ee723213barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee723213fooEv,_ZTv0_n16_N7ee723213fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee72321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee723213fooEv,_ZTv0_n12_N7ee723213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee72321[];
+extern void _ZN6dd23213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2321__7ee72321[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2321[0]),
+ (VTBL_ENTRY)&_ZN6dd23213fooEv,
+};
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3216dd2321__7ee72321[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn12_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc3216dd2321__7ee72321[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd23213fooEv,_ZTv0_n12_N6dd23213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd23213fooEv,_ZThn12_N6dd23213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd2321__7ee72321[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23213fooEv,_ZTv0_n12_N6dd23213fooEv),
+};
+static VTT_ENTRY vtt_ee72321[] = {
+ {&(_ZTV7ee72321[4]), 4,15},
+ {&(_ZTV7ee72321[10]), 10,15},
+ {&(_ZTV7ee72321[14]), 14,15},
+ {&(_tg__ZTV6dd2321__7ee72321[3]), 3,4},
+ {&(_tg__ZTV5cc3216dd2321__7ee72321[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc3216dd2321__7ee72321[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd2321__7ee72321[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee72321[];
+extern VTBL_ENTRY _ZTV7ee72321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72321[];
+static VTBL_ENTRY alt_thunk_names581[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23213fooEv,_ZTv0_n12_N6dd23213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd23213fooEv,_ZThn12_N6dd23213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn12_N5cc3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee723213fooEv,_ZTv0_n12_N7ee723213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee723213fooEv,_ZThn20_N7ee723213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee723213fooEv,_ZTv0_n16_N7ee723213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee723213fooEv,_ZThn8_N7ee723213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72321 = { "ee72321", // class name
+ bases_ee72321, 4,
+ &(vtc_ee72321[0]), // expected_vtbl_contents
+ &(vtt_ee72321[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee72321),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72321),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72321),7, //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 dd3321 : virtual cc321 {
+ int d;
+ virtual void foo(); // _ZN6dd33213fooEv
+ ~dd3321(); // tgen
+ dd3321(); // tgen
+};
+//SIG(-1 dd3321) C1{ VBC2{ VBC3{ BC4{ v1 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void dd3321 ::foo(){vfunc_called(this, "_ZN6dd33213fooEv");}
+dd3321 ::~dd3321(){ note_dtor("dd3321", this);} // tgen
+dd3321 ::dd3321(){ note_ctor("dd3321", this);} // tgen
+
+static void Test_dd3321()
+{
+ extern Class_Descriptor cd_dd3321;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd3321, buf);
+ dd3321 *dp, &lv = *(dp=new (buf) dd3321());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd3321)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3321)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,16), "dd3321");
+ check_base_class_offset(lv, (bb21*)(cc321*), ABISELECT(32,16), "dd3321");
+ check_base_class_offset(lv, (cc321*), ABISELECT(16,8), "dd3321");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3321.d");
+ test_class_info(&lv, &cd_dd3321);
+ dp->~dd3321();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3321(Test_dd3321, "dd3321", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd3321C1Ev();
+extern void _ZN6dd3321D1Ev();
+Name_Map name_map_dd3321[] = {
+ NSPAIR(_ZN6dd3321C1Ev),
+ NSPAIR(_ZN6dd3321D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc321;
+extern VTBL_ENTRY _ZTI5cc321[];
+extern VTBL_ENTRY _ZTV5cc321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc321[];
+static Base_Class bases_dd3321[] = {
+ // 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_bb21, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc321, 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 _ZTI6dd3321[];
+extern void _ZN6dd33213fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd33213fooEv,_ZTv0_n16_N6dd33213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33213fooEv,_ZThn8_N6dd33213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd33213fooEv,_ZTv0_n12_N6dd33213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33213fooEv,_ZThn16_N6dd33213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd3321[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3321[0]),
+ (VTBL_ENTRY)&_ZN6dd33213fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33213fooEv,_ZTv0_n16_N6dd33213fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33213fooEv,_ZTv0_n12_N6dd33213fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd3321[];
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc321__6dd3321[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc321__6dd3321[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+static VTT_ENTRY vtt_dd3321[] = {
+ {&(_ZTV6dd3321[4]), 4,14},
+ {&(_ZTV6dd3321[9]), 9,14},
+ {&(_ZTV6dd3321[13]), 13,14},
+ {&(_tg__ZTV5cc321__6dd3321[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc321__6dd3321[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd3321[];
+extern VTBL_ENTRY _ZTV6dd3321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3321[];
+static VTBL_ENTRY alt_thunk_names582[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33213fooEv,_ZTv0_n12_N6dd33213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33213fooEv,_ZThn16_N6dd33213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33213fooEv,_ZTv0_n16_N6dd33213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33213fooEv,_ZThn8_N6dd33213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3321 = { "dd3321", // class name
+ bases_dd3321, 3,
+ &(vtc_dd3321[0]), // expected_vtbl_contents
+ &(vtt_dd3321[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd3321),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3321),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3321),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names582,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03321 : dd3321 {
+ int e;
+ ~ee03321(); // tgen
+ ee03321(); // tgen
+};
+//SIG(1 ee03321) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee03321 ::~ee03321(){ note_dtor("ee03321", this);} // tgen
+ee03321 ::ee03321(){ note_ctor("ee03321", this);} // tgen
+
+static void Test_ee03321()
+{
+ extern Class_Descriptor cd_ee03321;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee03321, buf);
+ ee03321 *dp, &lv = *(dp=new (buf) ee03321());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee03321)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03321)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee03321");
+ check_base_class_offset(lv, (bb21*)(cc321*), ABISELECT(32,20), "ee03321");
+ check_base_class_offset(lv, (cc321*)(dd3321*), ABISELECT(16,12), "ee03321");
+ check_base_class_offset(lv, (dd3321*), 0, "ee03321");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03321.e");
+ test_class_info(&lv, &cd_ee03321);
+ dp->~ee03321();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03321(Test_ee03321, "ee03321", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee03321C1Ev();
+extern void _ZN7ee03321D1Ev();
+Name_Map name_map_ee03321[] = {
+ NSPAIR(_ZN7ee03321C1Ev),
+ NSPAIR(_ZN7ee03321D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc321;
+extern VTBL_ENTRY _ZTI5cc321[];
+extern VTBL_ENTRY _ZTV5cc321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc321[];
+extern Class_Descriptor cd_dd3321;
+extern VTBL_ENTRY _ZTI6dd3321[];
+extern VTBL_ENTRY _ZTV6dd3321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3321[];
+static Base_Class bases_ee03321[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc321, 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_dd3321, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03321[];
+extern void _ZN6dd33213fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd33213fooEv,_ZTv0_n16_N6dd33213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33213fooEv,_ZThn12_N6dd33213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd33213fooEv,_ZTv0_n12_N6dd33213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33213fooEv,_ZThn20_N6dd33213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee03321[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03321[0]),
+ (VTBL_ENTRY)&_ZN6dd33213fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33213fooEv,_ZTv0_n16_N6dd33213fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee03321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33213fooEv,_ZTv0_n12_N6dd33213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee03321[];
+extern void _ZN6dd33213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3321__7ee03321[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3321[0]),
+ (VTBL_ENTRY)&_ZN6dd33213fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd33213fooEv,_ZTv0_n16_N6dd33213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33213fooEv,_ZThn12_N6dd33213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc321__6dd3321__7ee03321[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33213fooEv,_ZTv0_n16_N6dd33213fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd33213fooEv,_ZTv0_n12_N6dd33213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33213fooEv,_ZThn20_N6dd33213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd3321__7ee03321[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33213fooEv,_ZTv0_n12_N6dd33213fooEv),
+};
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc321__7ee03321[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc321__7ee03321[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+static VTT_ENTRY vtt_ee03321[] = {
+ {&(_ZTV7ee03321[4]), 4,14},
+ {&(_tg__ZTV6dd3321__7ee03321[4]), 4,5},
+ {&(_tg__ZTV5cc321__6dd3321__7ee03321[4]), 4,5},
+ {&(_tg__ZTV4bb21__6dd3321__7ee03321[3]), 3,4},
+ {&(_ZTV7ee03321[9]), 9,14},
+ {&(_ZTV7ee03321[13]), 13,14},
+ {&(_tg__ZTV5cc321__7ee03321[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc321__7ee03321[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee03321[];
+extern VTBL_ENTRY _ZTV7ee03321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03321[];
+static VTBL_ENTRY alt_thunk_names583[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33213fooEv,_ZTv0_n12_N6dd33213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33213fooEv,_ZThn20_N6dd33213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33213fooEv,_ZThn20_N6dd33213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33213fooEv,_ZTv0_n16_N6dd33213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33213fooEv,_ZThn12_N6dd33213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33213fooEv,_ZThn12_N6dd33213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03321 = { "ee03321", // class name
+ bases_ee03321, 4,
+ &(vtc_ee03321[0]), // expected_vtbl_contents
+ &(vtt_ee03321[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee03321),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03321),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03321),8, //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 ee13321 : virtual dd3321 {
+ int e;
+ ~ee13321(); // tgen
+ ee13321(); // tgen
+};
+//SIG(1 ee13321) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee13321 ::~ee13321(){ note_dtor("ee13321", this);} // tgen
+ee13321 ::ee13321(){ note_ctor("ee13321", this);} // tgen
+
+static void Test_ee13321()
+{
+ extern Class_Descriptor cd_ee13321;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee13321, buf);
+ ee13321 *dp, &lv = *(dp=new (buf) ee13321());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee13321)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13321)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(48,24), "ee13321");
+ check_base_class_offset(lv, (bb21*)(cc321*), ABISELECT(48,24), "ee13321");
+ check_base_class_offset(lv, (cc321*)(dd3321*), ABISELECT(32,16), "ee13321");
+ check_base_class_offset(lv, (dd3321*), ABISELECT(16,8), "ee13321");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13321.e");
+ test_class_info(&lv, &cd_ee13321);
+ dp->~ee13321();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13321(Test_ee13321, "ee13321", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee13321C1Ev();
+extern void _ZN7ee13321D1Ev();
+Name_Map name_map_ee13321[] = {
+ NSPAIR(_ZN7ee13321C1Ev),
+ NSPAIR(_ZN7ee13321D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc321;
+extern VTBL_ENTRY _ZTI5cc321[];
+extern VTBL_ENTRY _ZTV5cc321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc321[];
+extern Class_Descriptor cd_dd3321;
+extern VTBL_ENTRY _ZTI6dd3321[];
+extern VTBL_ENTRY _ZTV6dd3321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3321[];
+static Base_Class bases_ee13321[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb21, ABISELECT(48,24), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc321, 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_dd3321, 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 _ZTI7ee13321[];
+extern void _ZN6dd33213fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd33213fooEv,_ZTv0_n16_N6dd33213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33213fooEv,_ZThn8_N6dd33213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd33213fooEv,_ZTv0_n12_N6dd33213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33213fooEv,_ZThn16_N6dd33213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee13321[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13321[0]),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13321[0]),
+ (VTBL_ENTRY)&_ZN6dd33213fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33213fooEv,_ZTv0_n16_N6dd33213fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee13321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33213fooEv,_ZTv0_n12_N6dd33213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee13321[];
+extern void _ZN6dd33213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3321__7ee13321[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3321[0]),
+ (VTBL_ENTRY)&_ZN6dd33213fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd33213fooEv,_ZTv0_n16_N6dd33213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33213fooEv,_ZThn8_N6dd33213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc321__6dd3321__7ee13321[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33213fooEv,_ZTv0_n16_N6dd33213fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd33213fooEv,_ZTv0_n12_N6dd33213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33213fooEv,_ZThn16_N6dd33213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd3321__7ee13321[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33213fooEv,_ZTv0_n12_N6dd33213fooEv),
+};
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc321__7ee13321[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc321__7ee13321[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+static VTT_ENTRY vtt_ee13321[] = {
+ {&(_ZTV7ee13321[5]), 5,20},
+ {&(_ZTV7ee13321[10]), 10,20},
+ {&(_ZTV7ee13321[15]), 15,20},
+ {&(_ZTV7ee13321[19]), 19,20},
+ {&(_tg__ZTV6dd3321__7ee13321[4]), 4,5},
+ {&(_tg__ZTV5cc321__6dd3321__7ee13321[4]), 4,5},
+ {&(_tg__ZTV4bb21__6dd3321__7ee13321[3]), 3,4},
+ {&(_tg__ZTV5cc321__7ee13321[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc321__7ee13321[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee13321[];
+extern VTBL_ENTRY _ZTV7ee13321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13321[];
+static VTBL_ENTRY alt_thunk_names584[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33213fooEv,_ZTv0_n12_N6dd33213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33213fooEv,_ZThn16_N6dd33213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33213fooEv,_ZThn16_N6dd33213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33213fooEv,_ZTv0_n16_N6dd33213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33213fooEv,_ZThn8_N6dd33213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33213fooEv,_ZThn8_N6dd33213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13321 = { "ee13321", // class name
+ bases_ee13321, 4,
+ &(vtc_ee13321[0]), // expected_vtbl_contents
+ &(vtt_ee13321[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee13321),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13321),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13321),9, //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 ee23321 : dd3321 {
+ int e;
+ virtual void foo(); // _ZN7ee233213fooEv
+ ~ee23321(); // tgen
+ ee23321(); // tgen
+};
+//SIG(1 ee23321) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee23321 ::foo(){vfunc_called(this, "_ZN7ee233213fooEv");}
+ee23321 ::~ee23321(){ note_dtor("ee23321", this);} // tgen
+ee23321 ::ee23321(){ note_ctor("ee23321", this);} // tgen
+
+static void Test_ee23321()
+{
+ extern Class_Descriptor cd_ee23321;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee23321, buf);
+ ee23321 *dp, &lv = *(dp=new (buf) ee23321());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee23321)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23321)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee23321");
+ check_base_class_offset(lv, (bb21*)(cc321*), ABISELECT(32,20), "ee23321");
+ check_base_class_offset(lv, (cc321*)(dd3321*), ABISELECT(16,12), "ee23321");
+ check_base_class_offset(lv, (dd3321*), 0, "ee23321");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23321.e");
+ test_class_info(&lv, &cd_ee23321);
+ dp->~ee23321();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23321(Test_ee23321, "ee23321", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee23321C1Ev();
+extern void _ZN7ee23321D1Ev();
+Name_Map name_map_ee23321[] = {
+ NSPAIR(_ZN7ee23321C1Ev),
+ NSPAIR(_ZN7ee23321D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc321;
+extern VTBL_ENTRY _ZTI5cc321[];
+extern VTBL_ENTRY _ZTV5cc321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc321[];
+extern Class_Descriptor cd_dd3321;
+extern VTBL_ENTRY _ZTI6dd3321[];
+extern VTBL_ENTRY _ZTV6dd3321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3321[];
+static Base_Class bases_ee23321[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc321, 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_dd3321, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23321[];
+extern void _ZN7ee233213fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee233213fooEv,_ZTv0_n16_N7ee233213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee233213fooEv,_ZThn12_N7ee233213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee233213fooEv,_ZTv0_n12_N7ee233213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee233213fooEv,_ZThn20_N7ee233213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee23321[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23321[0]),
+ (VTBL_ENTRY)&_ZN7ee233213fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee233213fooEv,_ZTv0_n16_N7ee233213fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee23321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee233213fooEv,_ZTv0_n12_N7ee233213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee23321[];
+extern void _ZN6dd33213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3321__7ee23321[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3321[0]),
+ (VTBL_ENTRY)&_ZN6dd33213fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd33213fooEv,_ZTv0_n16_N6dd33213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33213fooEv,_ZThn12_N6dd33213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc321__6dd3321__7ee23321[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33213fooEv,_ZTv0_n16_N6dd33213fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd33213fooEv,_ZTv0_n12_N6dd33213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33213fooEv,_ZThn20_N6dd33213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd3321__7ee23321[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33213fooEv,_ZTv0_n12_N6dd33213fooEv),
+};
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc321__7ee23321[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc321__7ee23321[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+static VTT_ENTRY vtt_ee23321[] = {
+ {&(_ZTV7ee23321[4]), 4,14},
+ {&(_tg__ZTV6dd3321__7ee23321[4]), 4,5},
+ {&(_tg__ZTV5cc321__6dd3321__7ee23321[4]), 4,5},
+ {&(_tg__ZTV4bb21__6dd3321__7ee23321[3]), 3,4},
+ {&(_ZTV7ee23321[9]), 9,14},
+ {&(_ZTV7ee23321[13]), 13,14},
+ {&(_tg__ZTV5cc321__7ee23321[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc321__7ee23321[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee23321[];
+extern VTBL_ENTRY _ZTV7ee23321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23321[];
+static VTBL_ENTRY alt_thunk_names585[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33213fooEv,_ZTv0_n12_N6dd33213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33213fooEv,_ZThn20_N6dd33213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33213fooEv,_ZTv0_n16_N6dd33213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33213fooEv,_ZThn12_N6dd33213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee233213fooEv,_ZTv0_n12_N7ee233213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee233213fooEv,_ZThn20_N7ee233213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee233213fooEv,_ZTv0_n16_N7ee233213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee233213fooEv,_ZThn12_N7ee233213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23321 = { "ee23321", // class name
+ bases_ee23321, 4,
+ &(vtc_ee23321[0]), // expected_vtbl_contents
+ &(vtt_ee23321[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee23321),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23321),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23321),8, //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 ee33321 : virtual dd3321 {
+ int e;
+ virtual void foo(); // _ZN7ee333213fooEv
+ ~ee33321(); // tgen
+ ee33321(); // tgen
+};
+//SIG(1 ee33321) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee33321 ::foo(){vfunc_called(this, "_ZN7ee333213fooEv");}
+ee33321 ::~ee33321(){ note_dtor("ee33321", this);} // tgen
+ee33321 ::ee33321(){ note_ctor("ee33321", this);} // tgen
+
+static void Test_ee33321()
+{
+ extern Class_Descriptor cd_ee33321;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee33321, buf);
+ ee33321 *dp, &lv = *(dp=new (buf) ee33321());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee33321)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33321)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(48,24), "ee33321");
+ check_base_class_offset(lv, (bb21*)(cc321*), ABISELECT(48,24), "ee33321");
+ check_base_class_offset(lv, (cc321*)(dd3321*), ABISELECT(32,16), "ee33321");
+ check_base_class_offset(lv, (dd3321*), ABISELECT(16,8), "ee33321");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33321.e");
+ test_class_info(&lv, &cd_ee33321);
+ dp->~ee33321();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33321(Test_ee33321, "ee33321", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee33321C1Ev();
+extern void _ZN7ee33321D1Ev();
+Name_Map name_map_ee33321[] = {
+ NSPAIR(_ZN7ee33321C1Ev),
+ NSPAIR(_ZN7ee33321D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc321;
+extern VTBL_ENTRY _ZTI5cc321[];
+extern VTBL_ENTRY _ZTV5cc321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc321[];
+extern Class_Descriptor cd_dd3321;
+extern VTBL_ENTRY _ZTI6dd3321[];
+extern VTBL_ENTRY _ZTV6dd3321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3321[];
+static Base_Class bases_ee33321[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb21, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc321, 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_dd3321, ABISELECT(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 _ZTI7ee33321[];
+extern void _ZN7ee333213fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee333213fooEv,_ZTv0_n20_N7ee333213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee333213fooEv,_ZThn8_N7ee333213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee333213fooEv,_ZTv0_n16_N7ee333213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee333213fooEv,_ZThn16_N7ee333213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee333213fooEv,_ZTv0_n12_N7ee333213fooEv)();
+extern void ABISELECT(_ZThn48_N7ee333213fooEv,_ZThn24_N7ee333213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee33321[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33321[0]),
+ (VTBL_ENTRY)&_ZN7ee333213fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee333213fooEv,_ZTv0_n20_N7ee333213fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee333213fooEv,_ZTv0_n16_N7ee333213fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee33321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee333213fooEv,_ZTv0_n12_N7ee333213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee33321[];
+extern void _ZN6dd33213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3321__7ee33321[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3321[0]),
+ (VTBL_ENTRY)&_ZN6dd33213fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd33213fooEv,_ZTv0_n16_N6dd33213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33213fooEv,_ZThn8_N6dd33213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc321__6dd3321__7ee33321[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33213fooEv,_ZTv0_n16_N6dd33213fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd33213fooEv,_ZTv0_n12_N6dd33213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33213fooEv,_ZThn16_N6dd33213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd3321__7ee33321[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33213fooEv,_ZTv0_n12_N6dd33213fooEv),
+};
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc321__7ee33321[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc321__7ee33321[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+static VTT_ENTRY vtt_ee33321[] = {
+ {&(_ZTV7ee33321[5]), 5,21},
+ {&(_ZTV7ee33321[11]), 11,21},
+ {&(_ZTV7ee33321[16]), 16,21},
+ {&(_ZTV7ee33321[20]), 20,21},
+ {&(_tg__ZTV6dd3321__7ee33321[4]), 4,5},
+ {&(_tg__ZTV5cc321__6dd3321__7ee33321[4]), 4,5},
+ {&(_tg__ZTV4bb21__6dd3321__7ee33321[3]), 3,4},
+ {&(_tg__ZTV5cc321__7ee33321[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc321__7ee33321[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee33321[];
+extern VTBL_ENTRY _ZTV7ee33321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33321[];
+static VTBL_ENTRY alt_thunk_names586[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33213fooEv,_ZTv0_n12_N6dd33213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33213fooEv,_ZThn16_N6dd33213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33213fooEv,_ZTv0_n16_N6dd33213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33213fooEv,_ZThn8_N6dd33213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee333213fooEv,_ZTv0_n12_N7ee333213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee333213fooEv,_ZThn24_N7ee333213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee333213fooEv,_ZTv0_n16_N7ee333213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee333213fooEv,_ZThn16_N7ee333213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee333213fooEv,_ZTv0_n20_N7ee333213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee333213fooEv,_ZThn8_N7ee333213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33321 = { "ee33321", // class name
+ bases_ee33321, 4,
+ &(vtc_ee33321[0]), // expected_vtbl_contents
+ &(vtt_ee33321[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee33321),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33321),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33321),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names586,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee43321 : dd3321 {
+ int e;
+ virtual void bar(); // _ZN7ee433213barEv
+ ~ee43321(); // tgen
+ ee43321(); // tgen
+};
+//SIG(1 ee43321) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 Fi} v2 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee43321 ::bar(){vfunc_called(this, "_ZN7ee433213barEv");}
+ee43321 ::~ee43321(){ note_dtor("ee43321", this);} // tgen
+ee43321 ::ee43321(){ note_ctor("ee43321", this);} // tgen
+
+static void Test_ee43321()
+{
+ extern Class_Descriptor cd_ee43321;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee43321, buf);
+ ee43321 *dp, &lv = *(dp=new (buf) ee43321());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee43321)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43321)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee43321");
+ check_base_class_offset(lv, (bb21*)(cc321*), ABISELECT(32,20), "ee43321");
+ check_base_class_offset(lv, (cc321*)(dd3321*), ABISELECT(16,12), "ee43321");
+ check_base_class_offset(lv, (dd3321*), 0, "ee43321");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43321.e");
+ test_class_info(&lv, &cd_ee43321);
+ dp->~ee43321();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43321(Test_ee43321, "ee43321", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee43321C1Ev();
+extern void _ZN7ee43321D1Ev();
+Name_Map name_map_ee43321[] = {
+ NSPAIR(_ZN7ee43321C1Ev),
+ NSPAIR(_ZN7ee43321D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc321;
+extern VTBL_ENTRY _ZTI5cc321[];
+extern VTBL_ENTRY _ZTV5cc321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc321[];
+extern Class_Descriptor cd_dd3321;
+extern VTBL_ENTRY _ZTI6dd3321[];
+extern VTBL_ENTRY _ZTV6dd3321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3321[];
+static Base_Class bases_ee43321[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc321, 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_dd3321, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43321[];
+extern void _ZN6dd33213fooEv();
+extern void _ZN7ee433213barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd33213fooEv,_ZTv0_n16_N6dd33213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33213fooEv,_ZThn12_N6dd33213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd33213fooEv,_ZTv0_n12_N6dd33213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33213fooEv,_ZThn20_N6dd33213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43321[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43321[0]),
+ (VTBL_ENTRY)&_ZN6dd33213fooEv,
+ (VTBL_ENTRY)&_ZN7ee433213barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33213fooEv,_ZTv0_n16_N6dd33213fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee43321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33213fooEv,_ZTv0_n12_N6dd33213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee43321[];
+extern void _ZN6dd33213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3321__7ee43321[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3321[0]),
+ (VTBL_ENTRY)&_ZN6dd33213fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd33213fooEv,_ZTv0_n16_N6dd33213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33213fooEv,_ZThn12_N6dd33213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc321__6dd3321__7ee43321[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33213fooEv,_ZTv0_n16_N6dd33213fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd33213fooEv,_ZTv0_n12_N6dd33213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33213fooEv,_ZThn20_N6dd33213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd3321__7ee43321[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33213fooEv,_ZTv0_n12_N6dd33213fooEv),
+};
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc321__7ee43321[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc321__7ee43321[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+static VTT_ENTRY vtt_ee43321[] = {
+ {&(_ZTV7ee43321[4]), 4,15},
+ {&(_tg__ZTV6dd3321__7ee43321[4]), 4,5},
+ {&(_tg__ZTV5cc321__6dd3321__7ee43321[4]), 4,5},
+ {&(_tg__ZTV4bb21__6dd3321__7ee43321[3]), 3,4},
+ {&(_ZTV7ee43321[10]), 10,15},
+ {&(_ZTV7ee43321[14]), 14,15},
+ {&(_tg__ZTV5cc321__7ee43321[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc321__7ee43321[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee43321[];
+extern VTBL_ENTRY _ZTV7ee43321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43321[];
+static VTBL_ENTRY alt_thunk_names587[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33213fooEv,_ZTv0_n12_N6dd33213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33213fooEv,_ZThn20_N6dd33213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33213fooEv,_ZThn20_N6dd33213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33213fooEv,_ZTv0_n16_N6dd33213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33213fooEv,_ZThn12_N6dd33213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33213fooEv,_ZThn12_N6dd33213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43321 = { "ee43321", // class name
+ bases_ee43321, 4,
+ &(vtc_ee43321[0]), // expected_vtbl_contents
+ &(vtt_ee43321[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee43321),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43321),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43321),8, //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 ee53321 : virtual dd3321 {
+ int e;
+ virtual void bar(); // _ZN7ee533213barEv
+ ~ee53321(); // tgen
+ ee53321(); // tgen
+};
+//SIG(1 ee53321) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 Fi} v2 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee53321 ::bar(){vfunc_called(this, "_ZN7ee533213barEv");}
+ee53321 ::~ee53321(){ note_dtor("ee53321", this);} // tgen
+ee53321 ::ee53321(){ note_ctor("ee53321", this);} // tgen
+
+static void Test_ee53321()
+{
+ extern Class_Descriptor cd_ee53321;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee53321, buf);
+ ee53321 *dp, &lv = *(dp=new (buf) ee53321());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee53321)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53321)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(48,24), "ee53321");
+ check_base_class_offset(lv, (bb21*)(cc321*), ABISELECT(48,24), "ee53321");
+ check_base_class_offset(lv, (cc321*)(dd3321*), ABISELECT(32,16), "ee53321");
+ check_base_class_offset(lv, (dd3321*), ABISELECT(16,8), "ee53321");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53321.e");
+ test_class_info(&lv, &cd_ee53321);
+ dp->~ee53321();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53321(Test_ee53321, "ee53321", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee53321C1Ev();
+extern void _ZN7ee53321D1Ev();
+Name_Map name_map_ee53321[] = {
+ NSPAIR(_ZN7ee53321C1Ev),
+ NSPAIR(_ZN7ee53321D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc321;
+extern VTBL_ENTRY _ZTI5cc321[];
+extern VTBL_ENTRY _ZTV5cc321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc321[];
+extern Class_Descriptor cd_dd3321;
+extern VTBL_ENTRY _ZTI6dd3321[];
+extern VTBL_ENTRY _ZTV6dd3321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3321[];
+static Base_Class bases_ee53321[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb21, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc321, 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_dd3321, ABISELECT(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 _ZTI7ee53321[];
+extern void _ZN7ee533213barEv();
+extern void _ZN6dd33213fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd33213fooEv,_ZTv0_n16_N6dd33213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33213fooEv,_ZThn8_N6dd33213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd33213fooEv,_ZTv0_n12_N6dd33213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33213fooEv,_ZThn16_N6dd33213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53321[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53321[0]),
+ (VTBL_ENTRY)&_ZN7ee533213barEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53321[0]),
+ (VTBL_ENTRY)&_ZN6dd33213fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33213fooEv,_ZTv0_n16_N6dd33213fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee53321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33213fooEv,_ZTv0_n12_N6dd33213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee53321[];
+extern void _ZN6dd33213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3321__7ee53321[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3321[0]),
+ (VTBL_ENTRY)&_ZN6dd33213fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd33213fooEv,_ZTv0_n16_N6dd33213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33213fooEv,_ZThn8_N6dd33213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc321__6dd3321__7ee53321[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33213fooEv,_ZTv0_n16_N6dd33213fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd33213fooEv,_ZTv0_n12_N6dd33213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33213fooEv,_ZThn16_N6dd33213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd3321__7ee53321[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33213fooEv,_ZTv0_n12_N6dd33213fooEv),
+};
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc321__7ee53321[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc321__7ee53321[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+static VTT_ENTRY vtt_ee53321[] = {
+ {&(_ZTV7ee53321[5]), 5,21},
+ {&(_ZTV7ee53321[11]), 11,21},
+ {&(_ZTV7ee53321[16]), 16,21},
+ {&(_ZTV7ee53321[20]), 20,21},
+ {&(_tg__ZTV6dd3321__7ee53321[4]), 4,5},
+ {&(_tg__ZTV5cc321__6dd3321__7ee53321[4]), 4,5},
+ {&(_tg__ZTV4bb21__6dd3321__7ee53321[3]), 3,4},
+ {&(_tg__ZTV5cc321__7ee53321[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc321__7ee53321[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee53321[];
+extern VTBL_ENTRY _ZTV7ee53321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53321[];
+static VTBL_ENTRY alt_thunk_names588[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33213fooEv,_ZTv0_n12_N6dd33213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33213fooEv,_ZThn16_N6dd33213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33213fooEv,_ZThn16_N6dd33213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33213fooEv,_ZTv0_n16_N6dd33213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33213fooEv,_ZThn8_N6dd33213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33213fooEv,_ZThn8_N6dd33213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53321 = { "ee53321", // class name
+ bases_ee53321, 4,
+ &(vtc_ee53321[0]), // expected_vtbl_contents
+ &(vtt_ee53321[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee53321),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53321),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53321),9, //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 ee63321 : dd3321 {
+ int e;
+ virtual void foo(); // _ZN7ee633213fooEv
+ virtual void bar(); // _ZN7ee633213barEv
+ ~ee63321(); // tgen
+ ee63321(); // tgen
+};
+//SIG(1 ee63321) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63321 ::foo(){vfunc_called(this, "_ZN7ee633213fooEv");}
+void ee63321 ::bar(){vfunc_called(this, "_ZN7ee633213barEv");}
+ee63321 ::~ee63321(){ note_dtor("ee63321", this);} // tgen
+ee63321 ::ee63321(){ note_ctor("ee63321", this);} // tgen
+
+static void Test_ee63321()
+{
+ extern Class_Descriptor cd_ee63321;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee63321, buf);
+ ee63321 *dp, &lv = *(dp=new (buf) ee63321());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee63321)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63321)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee63321");
+ check_base_class_offset(lv, (bb21*)(cc321*), ABISELECT(32,20), "ee63321");
+ check_base_class_offset(lv, (cc321*)(dd3321*), ABISELECT(16,12), "ee63321");
+ check_base_class_offset(lv, (dd3321*), 0, "ee63321");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63321.e");
+ test_class_info(&lv, &cd_ee63321);
+ dp->~ee63321();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63321(Test_ee63321, "ee63321", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee63321C1Ev();
+extern void _ZN7ee63321D1Ev();
+Name_Map name_map_ee63321[] = {
+ NSPAIR(_ZN7ee63321C1Ev),
+ NSPAIR(_ZN7ee63321D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc321;
+extern VTBL_ENTRY _ZTI5cc321[];
+extern VTBL_ENTRY _ZTV5cc321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc321[];
+extern Class_Descriptor cd_dd3321;
+extern VTBL_ENTRY _ZTI6dd3321[];
+extern VTBL_ENTRY _ZTV6dd3321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3321[];
+static Base_Class bases_ee63321[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc321, 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_dd3321, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63321[];
+extern void _ZN7ee633213fooEv();
+extern void _ZN7ee633213barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee633213fooEv,_ZTv0_n16_N7ee633213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee633213fooEv,_ZThn12_N7ee633213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee633213fooEv,_ZTv0_n12_N7ee633213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee633213fooEv,_ZThn20_N7ee633213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63321[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63321[0]),
+ (VTBL_ENTRY)&_ZN7ee633213fooEv,
+ (VTBL_ENTRY)&_ZN7ee633213barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee633213fooEv,_ZTv0_n16_N7ee633213fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee63321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee633213fooEv,_ZTv0_n12_N7ee633213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee63321[];
+extern void _ZN6dd33213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3321__7ee63321[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3321[0]),
+ (VTBL_ENTRY)&_ZN6dd33213fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd33213fooEv,_ZTv0_n16_N6dd33213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33213fooEv,_ZThn12_N6dd33213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc321__6dd3321__7ee63321[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33213fooEv,_ZTv0_n16_N6dd33213fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd33213fooEv,_ZTv0_n12_N6dd33213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33213fooEv,_ZThn20_N6dd33213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd3321__7ee63321[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33213fooEv,_ZTv0_n12_N6dd33213fooEv),
+};
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc321__7ee63321[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc321__7ee63321[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+static VTT_ENTRY vtt_ee63321[] = {
+ {&(_ZTV7ee63321[4]), 4,15},
+ {&(_tg__ZTV6dd3321__7ee63321[4]), 4,5},
+ {&(_tg__ZTV5cc321__6dd3321__7ee63321[4]), 4,5},
+ {&(_tg__ZTV4bb21__6dd3321__7ee63321[3]), 3,4},
+ {&(_ZTV7ee63321[10]), 10,15},
+ {&(_ZTV7ee63321[14]), 14,15},
+ {&(_tg__ZTV5cc321__7ee63321[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc321__7ee63321[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee63321[];
+extern VTBL_ENTRY _ZTV7ee63321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63321[];
+static VTBL_ENTRY alt_thunk_names589[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33213fooEv,_ZTv0_n12_N6dd33213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33213fooEv,_ZThn20_N6dd33213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33213fooEv,_ZTv0_n16_N6dd33213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33213fooEv,_ZThn12_N6dd33213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee633213fooEv,_ZTv0_n12_N7ee633213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee633213fooEv,_ZThn20_N7ee633213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee633213fooEv,_ZTv0_n16_N7ee633213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee633213fooEv,_ZThn12_N7ee633213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63321 = { "ee63321", // class name
+ bases_ee63321, 4,
+ &(vtc_ee63321[0]), // expected_vtbl_contents
+ &(vtt_ee63321[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee63321),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63321),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63321),8, //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 ee73321 : virtual dd3321 {
+ int e;
+ virtual void foo(); // _ZN7ee733213fooEv
+ virtual void bar(); // _ZN7ee733213barEv
+ ~ee73321(); // tgen
+ ee73321(); // tgen
+};
+//SIG(1 ee73321) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73321 ::foo(){vfunc_called(this, "_ZN7ee733213fooEv");}
+void ee73321 ::bar(){vfunc_called(this, "_ZN7ee733213barEv");}
+ee73321 ::~ee73321(){ note_dtor("ee73321", this);} // tgen
+ee73321 ::ee73321(){ note_ctor("ee73321", this);} // tgen
+
+static void Test_ee73321()
+{
+ extern Class_Descriptor cd_ee73321;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee73321, buf);
+ ee73321 *dp, &lv = *(dp=new (buf) ee73321());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee73321)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73321)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(48,24), "ee73321");
+ check_base_class_offset(lv, (bb21*)(cc321*), ABISELECT(48,24), "ee73321");
+ check_base_class_offset(lv, (cc321*)(dd3321*), ABISELECT(32,16), "ee73321");
+ check_base_class_offset(lv, (dd3321*), ABISELECT(16,8), "ee73321");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73321.e");
+ test_class_info(&lv, &cd_ee73321);
+ dp->~ee73321();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73321(Test_ee73321, "ee73321", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee73321C1Ev();
+extern void _ZN7ee73321D1Ev();
+Name_Map name_map_ee73321[] = {
+ NSPAIR(_ZN7ee73321C1Ev),
+ NSPAIR(_ZN7ee73321D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc321;
+extern VTBL_ENTRY _ZTI5cc321[];
+extern VTBL_ENTRY _ZTV5cc321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc321[];
+extern Class_Descriptor cd_dd3321;
+extern VTBL_ENTRY _ZTI6dd3321[];
+extern VTBL_ENTRY _ZTV6dd3321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3321[];
+static Base_Class bases_ee73321[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb21, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc321, 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_dd3321, 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 _ZTI7ee73321[];
+extern void _ZN7ee733213fooEv();
+extern void _ZN7ee733213barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee733213fooEv,_ZTv0_n20_N7ee733213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee733213fooEv,_ZThn8_N7ee733213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee733213fooEv,_ZTv0_n16_N7ee733213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee733213fooEv,_ZThn16_N7ee733213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee733213fooEv,_ZTv0_n12_N7ee733213fooEv)();
+extern void ABISELECT(_ZThn48_N7ee733213fooEv,_ZThn24_N7ee733213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73321[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73321[0]),
+ (VTBL_ENTRY)&_ZN7ee733213fooEv,
+ (VTBL_ENTRY)&_ZN7ee733213barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee733213fooEv,_ZTv0_n20_N7ee733213fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee733213fooEv,_ZTv0_n16_N7ee733213fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee73321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee733213fooEv,_ZTv0_n12_N7ee733213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee73321[];
+extern void _ZN6dd33213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3321__7ee73321[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3321[0]),
+ (VTBL_ENTRY)&_ZN6dd33213fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd33213fooEv,_ZTv0_n16_N6dd33213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33213fooEv,_ZThn8_N6dd33213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc321__6dd3321__7ee73321[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33213fooEv,_ZTv0_n16_N6dd33213fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd33213fooEv,_ZTv0_n12_N6dd33213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33213fooEv,_ZThn16_N6dd33213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd3321__7ee73321[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33213fooEv,_ZTv0_n12_N6dd33213fooEv),
+};
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc321__7ee73321[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc321__7ee73321[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+static VTT_ENTRY vtt_ee73321[] = {
+ {&(_ZTV7ee73321[5]), 5,22},
+ {&(_ZTV7ee73321[12]), 12,22},
+ {&(_ZTV7ee73321[17]), 17,22},
+ {&(_ZTV7ee73321[21]), 21,22},
+ {&(_tg__ZTV6dd3321__7ee73321[4]), 4,5},
+ {&(_tg__ZTV5cc321__6dd3321__7ee73321[4]), 4,5},
+ {&(_tg__ZTV4bb21__6dd3321__7ee73321[3]), 3,4},
+ {&(_tg__ZTV5cc321__7ee73321[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc321__7ee73321[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee73321[];
+extern VTBL_ENTRY _ZTV7ee73321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73321[];
+static VTBL_ENTRY alt_thunk_names590[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33213fooEv,_ZTv0_n12_N6dd33213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33213fooEv,_ZThn16_N6dd33213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33213fooEv,_ZTv0_n16_N6dd33213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33213fooEv,_ZThn8_N6dd33213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee733213fooEv,_ZTv0_n12_N7ee733213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee733213fooEv,_ZThn24_N7ee733213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee733213fooEv,_ZTv0_n16_N7ee733213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee733213fooEv,_ZThn16_N7ee733213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee733213fooEv,_ZTv0_n20_N7ee733213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee733213fooEv,_ZThn8_N7ee733213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73321 = { "ee73321", // class name
+ bases_ee73321, 4,
+ &(vtc_ee73321[0]), // expected_vtbl_contents
+ &(vtt_ee73321[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee73321),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73321),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73321),9, //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 dd4321 : cc321 {
+ int d;
+ virtual void bar(); // _ZN6dd43213barEv
+ ~dd4321(); // tgen
+ dd4321(); // tgen
+};
+//SIG(-1 dd4321) C1{ BC2{ VBC3{ BC4{ v2 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void dd4321 ::bar(){vfunc_called(this, "_ZN6dd43213barEv");}
+dd4321 ::~dd4321(){ note_dtor("dd4321", this);} // tgen
+dd4321 ::dd4321(){ note_ctor("dd4321", this);} // tgen
+
+static void Test_dd4321()
+{
+ extern Class_Descriptor cd_dd4321;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd4321, buf);
+ dd4321 *dp, &lv = *(dp=new (buf) dd4321());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd4321)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4321)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(16,12), "dd4321");
+ check_base_class_offset(lv, (bb21*)(cc321*), ABISELECT(16,12), "dd4321");
+ check_base_class_offset(lv, (cc321*), 0, "dd4321");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd4321.d");
+ test_class_info(&lv, &cd_dd4321);
+ dp->~dd4321();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4321(Test_dd4321, "dd4321", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd4321C1Ev();
+extern void _ZN6dd4321D1Ev();
+Name_Map name_map_dd4321[] = {
+ NSPAIR(_ZN6dd4321C1Ev),
+ NSPAIR(_ZN6dd4321D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc321;
+extern VTBL_ENTRY _ZTI5cc321[];
+extern VTBL_ENTRY _ZTV5cc321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc321[];
+static Base_Class bases_dd4321[] = {
+ // 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_bb21, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc321, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd4321[];
+extern void _ZN5cc3213fooEv();
+extern void _ZN6dd43213barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn12_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd4321[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+ (VTBL_ENTRY)&_ZN6dd43213barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd4321[];
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc321__6dd4321[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn12_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc321__6dd4321[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+static VTT_ENTRY vtt_dd4321[] = {
+ {&(_ZTV6dd4321[3]), 3,9},
+ {&(_tg__ZTV5cc321__6dd4321[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc321__6dd4321[3]), 3,4},
+ {&(_ZTV6dd4321[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI6dd4321[];
+extern VTBL_ENTRY _ZTV6dd4321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4321[];
+static VTBL_ENTRY alt_thunk_names591[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn12_N5cc3213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn12_N5cc3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd4321 = { "dd4321", // class name
+ bases_dd4321, 3,
+ &(vtc_dd4321[0]), // expected_vtbl_contents
+ &(vtt_dd4321[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd4321),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4321),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd4321),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names591,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee04321 : dd4321 {
+ int e;
+ ~ee04321(); // tgen
+ ee04321(); // tgen
+};
+//SIG(1 ee04321) C1{ BC2{ BC3{ VBC4{ BC5{ v2 Fi} v2 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee04321 ::~ee04321(){ note_dtor("ee04321", this);} // tgen
+ee04321 ::ee04321(){ note_ctor("ee04321", this);} // tgen
+
+static void Test_ee04321()
+{
+ extern Class_Descriptor cd_ee04321;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee04321, buf);
+ ee04321 *dp, &lv = *(dp=new (buf) ee04321());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee04321)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04321)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(24,16), "ee04321");
+ check_base_class_offset(lv, (bb21*)(cc321*)(dd4321*), ABISELECT(24,16), "ee04321");
+ check_base_class_offset(lv, (cc321*)(dd4321*), 0, "ee04321");
+ check_base_class_offset(lv, (dd4321*), 0, "ee04321");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee04321.e");
+ test_class_info(&lv, &cd_ee04321);
+ dp->~ee04321();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04321(Test_ee04321, "ee04321", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee04321C1Ev();
+extern void _ZN7ee04321D1Ev();
+Name_Map name_map_ee04321[] = {
+ NSPAIR(_ZN7ee04321C1Ev),
+ NSPAIR(_ZN7ee04321D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc321;
+extern VTBL_ENTRY _ZTI5cc321[];
+extern VTBL_ENTRY _ZTV5cc321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc321[];
+extern Class_Descriptor cd_dd4321;
+extern VTBL_ENTRY _ZTI6dd4321[];
+extern VTBL_ENTRY _ZTV6dd4321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4321[];
+static Base_Class bases_ee04321[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc321, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4321, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee04321[];
+extern void _ZN5cc3213fooEv();
+extern void _ZN6dd43213barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3213fooEv,_ZThn16_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee04321[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+ (VTBL_ENTRY)&_ZN6dd43213barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee04321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee04321[];
+extern void _ZN5cc3213fooEv();
+extern void _ZN6dd43213barEv();
+static VTBL_ENTRY _tg__ZTV6dd4321__7ee04321[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+ (VTBL_ENTRY)&_ZN6dd43213barEv,
+};
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3216dd4321__7ee04321[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3213fooEv,_ZThn16_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc3216dd4321__7ee04321[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3213fooEv,_ZThn16_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd4321__7ee04321[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+static VTT_ENTRY vtt_ee04321[] = {
+ {&(_ZTV7ee04321[3]), 3,9},
+ {&(_tg__ZTV6dd4321__7ee04321[3]), 3,5},
+ {&(_tg__ZTV5cc3216dd4321__7ee04321[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc3216dd4321__7ee04321[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd4321__7ee04321[3]), 3,4},
+ {&(_ZTV7ee04321[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee04321[];
+extern VTBL_ENTRY _ZTV7ee04321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee04321[];
+static VTBL_ENTRY alt_thunk_names592[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3213fooEv,_ZThn16_N5cc3213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3213fooEv,_ZThn16_N5cc3213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3213fooEv,_ZThn16_N5cc3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee04321 = { "ee04321", // class name
+ bases_ee04321, 4,
+ &(vtc_ee04321[0]), // expected_vtbl_contents
+ &(vtt_ee04321[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee04321),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04321),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee04321),6, //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 ee14321 : virtual dd4321 {
+ int e;
+ ~ee14321(); // tgen
+ ee14321(); // tgen
+};
+//SIG(1 ee14321) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 Fi} v2 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee14321 ::~ee14321(){ note_dtor("ee14321", this);} // tgen
+ee14321 ::ee14321(){ note_ctor("ee14321", this);} // tgen
+
+static void Test_ee14321()
+{
+ extern Class_Descriptor cd_ee14321;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee14321, buf);
+ ee14321 *dp, &lv = *(dp=new (buf) ee14321());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee14321)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14321)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee14321");
+ check_base_class_offset(lv, (bb21*)(cc321*)(dd4321*), ABISELECT(32,20), "ee14321");
+ check_base_class_offset(lv, (cc321*)(dd4321*), ABISELECT(16,8), "ee14321");
+ check_base_class_offset(lv, (dd4321*), ABISELECT(16,8), "ee14321");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14321.e");
+ test_class_info(&lv, &cd_ee14321);
+ dp->~ee14321();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14321(Test_ee14321, "ee14321", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee14321C1Ev();
+extern void _ZN7ee14321D1Ev();
+Name_Map name_map_ee14321[] = {
+ NSPAIR(_ZN7ee14321C1Ev),
+ NSPAIR(_ZN7ee14321D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc321;
+extern VTBL_ENTRY _ZTI5cc321[];
+extern VTBL_ENTRY _ZTV5cc321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc321[];
+extern Class_Descriptor cd_dd4321;
+extern VTBL_ENTRY _ZTI6dd4321[];
+extern VTBL_ENTRY _ZTV6dd4321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4321[];
+static Base_Class bases_ee14321[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc321, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4321, 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 _ZTI7ee14321[];
+extern void _ZN5cc3213fooEv();
+extern void _ZN6dd43213barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn12_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee14321[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14321[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+ (VTBL_ENTRY)&_ZN6dd43213barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee14321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee14321[];
+extern void _ZN5cc3213fooEv();
+extern void _ZN6dd43213barEv();
+static VTBL_ENTRY _tg__ZTV6dd4321__7ee14321[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+ (VTBL_ENTRY)&_ZN6dd43213barEv,
+};
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3216dd4321__7ee14321[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn12_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc3216dd4321__7ee14321[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn12_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd4321__7ee14321[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+static VTT_ENTRY vtt_ee14321[] = {
+ {&(_ZTV7ee14321[4]), 4,15},
+ {&(_ZTV7ee14321[9]), 9,15},
+ {&(_ZTV7ee14321[14]), 14,15},
+ {&(_tg__ZTV6dd4321__7ee14321[3]), 3,5},
+ {&(_tg__ZTV5cc3216dd4321__7ee14321[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc3216dd4321__7ee14321[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd4321__7ee14321[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee14321[];
+extern VTBL_ENTRY _ZTV7ee14321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14321[];
+static VTBL_ENTRY alt_thunk_names593[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn12_N5cc3213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn12_N5cc3213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn12_N5cc3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee14321 = { "ee14321", // class name
+ bases_ee14321, 4,
+ &(vtc_ee14321[0]), // expected_vtbl_contents
+ &(vtt_ee14321[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee14321),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14321),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14321),7, //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 ee24321 : dd4321 {
+ int e;
+ virtual void foo(); // _ZN7ee243213fooEv
+ ~ee24321(); // tgen
+ ee24321(); // tgen
+};
+//SIG(1 ee24321) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee24321 ::foo(){vfunc_called(this, "_ZN7ee243213fooEv");}
+ee24321 ::~ee24321(){ note_dtor("ee24321", this);} // tgen
+ee24321 ::ee24321(){ note_ctor("ee24321", this);} // tgen
+
+static void Test_ee24321()
+{
+ extern Class_Descriptor cd_ee24321;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee24321, buf);
+ ee24321 *dp, &lv = *(dp=new (buf) ee24321());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee24321)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24321)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(24,16), "ee24321");
+ check_base_class_offset(lv, (bb21*)(cc321*)(dd4321*), ABISELECT(24,16), "ee24321");
+ check_base_class_offset(lv, (cc321*)(dd4321*), 0, "ee24321");
+ check_base_class_offset(lv, (dd4321*), 0, "ee24321");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee24321.e");
+ test_class_info(&lv, &cd_ee24321);
+ dp->~ee24321();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24321(Test_ee24321, "ee24321", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee24321C1Ev();
+extern void _ZN7ee24321D1Ev();
+Name_Map name_map_ee24321[] = {
+ NSPAIR(_ZN7ee24321C1Ev),
+ NSPAIR(_ZN7ee24321D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc321;
+extern VTBL_ENTRY _ZTI5cc321[];
+extern VTBL_ENTRY _ZTV5cc321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc321[];
+extern Class_Descriptor cd_dd4321;
+extern VTBL_ENTRY _ZTI6dd4321[];
+extern VTBL_ENTRY _ZTV6dd4321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4321[];
+static Base_Class bases_ee24321[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc321, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4321, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee24321[];
+extern void _ZN7ee243213fooEv();
+extern void _ZN6dd43213barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee243213fooEv,_ZTv0_n12_N7ee243213fooEv)();
+extern void ABISELECT(_ZThn24_N7ee243213fooEv,_ZThn16_N7ee243213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee24321[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24321[0]),
+ (VTBL_ENTRY)&_ZN7ee243213fooEv,
+ (VTBL_ENTRY)&_ZN6dd43213barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee24321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee243213fooEv,_ZTv0_n12_N7ee243213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee24321[];
+extern void _ZN5cc3213fooEv();
+extern void _ZN6dd43213barEv();
+static VTBL_ENTRY _tg__ZTV6dd4321__7ee24321[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+ (VTBL_ENTRY)&_ZN6dd43213barEv,
+};
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3216dd4321__7ee24321[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3213fooEv,_ZThn16_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc3216dd4321__7ee24321[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3213fooEv,_ZThn16_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd4321__7ee24321[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+static VTT_ENTRY vtt_ee24321[] = {
+ {&(_ZTV7ee24321[3]), 3,9},
+ {&(_tg__ZTV6dd4321__7ee24321[3]), 3,5},
+ {&(_tg__ZTV5cc3216dd4321__7ee24321[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc3216dd4321__7ee24321[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd4321__7ee24321[3]), 3,4},
+ {&(_ZTV7ee24321[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee24321[];
+extern VTBL_ENTRY _ZTV7ee24321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee24321[];
+static VTBL_ENTRY alt_thunk_names594[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3213fooEv,_ZThn16_N5cc3213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3213fooEv,_ZThn16_N5cc3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee243213fooEv,_ZTv0_n12_N7ee243213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee243213fooEv,_ZThn16_N7ee243213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee24321 = { "ee24321", // class name
+ bases_ee24321, 4,
+ &(vtc_ee24321[0]), // expected_vtbl_contents
+ &(vtt_ee24321[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee24321),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24321),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee24321),6, //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 ee34321 : virtual dd4321 {
+ int e;
+ virtual void foo(); // _ZN7ee343213fooEv
+ ~ee34321(); // tgen
+ ee34321(); // tgen
+};
+//SIG(1 ee34321) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee34321 ::foo(){vfunc_called(this, "_ZN7ee343213fooEv");}
+ee34321 ::~ee34321(){ note_dtor("ee34321", this);} // tgen
+ee34321 ::ee34321(){ note_ctor("ee34321", this);} // tgen
+
+static void Test_ee34321()
+{
+ extern Class_Descriptor cd_ee34321;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee34321, buf);
+ ee34321 *dp, &lv = *(dp=new (buf) ee34321());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee34321)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34321)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee34321");
+ check_base_class_offset(lv, (bb21*)(cc321*)(dd4321*), ABISELECT(32,20), "ee34321");
+ check_base_class_offset(lv, (cc321*)(dd4321*), ABISELECT(16,8), "ee34321");
+ check_base_class_offset(lv, (dd4321*), ABISELECT(16,8), "ee34321");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34321.e");
+ test_class_info(&lv, &cd_ee34321);
+ dp->~ee34321();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34321(Test_ee34321, "ee34321", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee34321C1Ev();
+extern void _ZN7ee34321D1Ev();
+Name_Map name_map_ee34321[] = {
+ NSPAIR(_ZN7ee34321C1Ev),
+ NSPAIR(_ZN7ee34321D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc321;
+extern VTBL_ENTRY _ZTI5cc321[];
+extern VTBL_ENTRY _ZTV5cc321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc321[];
+extern Class_Descriptor cd_dd4321;
+extern VTBL_ENTRY _ZTI6dd4321[];
+extern VTBL_ENTRY _ZTV6dd4321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4321[];
+static Base_Class bases_ee34321[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc321, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4321, 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 _ZTI7ee34321[];
+extern void _ZN7ee343213fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee343213fooEv,_ZTv0_n16_N7ee343213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee343213fooEv,_ZThn8_N7ee343213fooEv)() __attribute__((weak));
+extern void _ZN6dd43213barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee343213fooEv,_ZTv0_n12_N7ee343213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee343213fooEv,_ZThn20_N7ee343213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee34321[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34321[0]),
+ (VTBL_ENTRY)&_ZN7ee343213fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee343213fooEv,_ZTv0_n16_N7ee343213fooEv),
+ (VTBL_ENTRY)&_ZN6dd43213barEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee34321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee343213fooEv,_ZTv0_n12_N7ee343213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee34321[];
+extern void _ZN5cc3213fooEv();
+extern void _ZN6dd43213barEv();
+static VTBL_ENTRY _tg__ZTV6dd4321__7ee34321[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+ (VTBL_ENTRY)&_ZN6dd43213barEv,
+};
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3216dd4321__7ee34321[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn12_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc3216dd4321__7ee34321[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn12_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd4321__7ee34321[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+static VTT_ENTRY vtt_ee34321[] = {
+ {&(_ZTV7ee34321[4]), 4,16},
+ {&(_ZTV7ee34321[10]), 10,16},
+ {&(_ZTV7ee34321[15]), 15,16},
+ {&(_tg__ZTV6dd4321__7ee34321[3]), 3,5},
+ {&(_tg__ZTV5cc3216dd4321__7ee34321[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc3216dd4321__7ee34321[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd4321__7ee34321[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee34321[];
+extern VTBL_ENTRY _ZTV7ee34321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34321[];
+static VTBL_ENTRY alt_thunk_names595[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn12_N5cc3213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn12_N5cc3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee343213fooEv,_ZTv0_n12_N7ee343213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee343213fooEv,_ZThn20_N7ee343213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee343213fooEv,_ZTv0_n16_N7ee343213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee343213fooEv,_ZThn8_N7ee343213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34321 = { "ee34321", // class name
+ bases_ee34321, 4,
+ &(vtc_ee34321[0]), // expected_vtbl_contents
+ &(vtt_ee34321[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee34321),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34321),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34321),7, //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 ee44321 : dd4321 {
+ int e;
+ virtual void bar(); // _ZN7ee443213barEv
+ ~ee44321(); // tgen
+ ee44321(); // tgen
+};
+//SIG(1 ee44321) C1{ BC2{ BC3{ VBC4{ BC5{ v2 Fi} v2 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee44321 ::bar(){vfunc_called(this, "_ZN7ee443213barEv");}
+ee44321 ::~ee44321(){ note_dtor("ee44321", this);} // tgen
+ee44321 ::ee44321(){ note_ctor("ee44321", this);} // tgen
+
+static void Test_ee44321()
+{
+ extern Class_Descriptor cd_ee44321;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee44321, buf);
+ ee44321 *dp, &lv = *(dp=new (buf) ee44321());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee44321)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44321)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(24,16), "ee44321");
+ check_base_class_offset(lv, (bb21*)(cc321*)(dd4321*), ABISELECT(24,16), "ee44321");
+ check_base_class_offset(lv, (cc321*)(dd4321*), 0, "ee44321");
+ check_base_class_offset(lv, (dd4321*), 0, "ee44321");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee44321.e");
+ test_class_info(&lv, &cd_ee44321);
+ dp->~ee44321();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44321(Test_ee44321, "ee44321", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee44321C1Ev();
+extern void _ZN7ee44321D1Ev();
+Name_Map name_map_ee44321[] = {
+ NSPAIR(_ZN7ee44321C1Ev),
+ NSPAIR(_ZN7ee44321D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc321;
+extern VTBL_ENTRY _ZTI5cc321[];
+extern VTBL_ENTRY _ZTV5cc321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc321[];
+extern Class_Descriptor cd_dd4321;
+extern VTBL_ENTRY _ZTI6dd4321[];
+extern VTBL_ENTRY _ZTV6dd4321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4321[];
+static Base_Class bases_ee44321[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc321, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4321, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee44321[];
+extern void _ZN5cc3213fooEv();
+extern void _ZN7ee443213barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3213fooEv,_ZThn16_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee44321[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+ (VTBL_ENTRY)&_ZN7ee443213barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee44321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee44321[];
+extern void _ZN5cc3213fooEv();
+extern void _ZN6dd43213barEv();
+static VTBL_ENTRY _tg__ZTV6dd4321__7ee44321[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+ (VTBL_ENTRY)&_ZN6dd43213barEv,
+};
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3216dd4321__7ee44321[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3213fooEv,_ZThn16_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc3216dd4321__7ee44321[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3213fooEv,_ZThn16_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd4321__7ee44321[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+static VTT_ENTRY vtt_ee44321[] = {
+ {&(_ZTV7ee44321[3]), 3,9},
+ {&(_tg__ZTV6dd4321__7ee44321[3]), 3,5},
+ {&(_tg__ZTV5cc3216dd4321__7ee44321[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc3216dd4321__7ee44321[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd4321__7ee44321[3]), 3,4},
+ {&(_ZTV7ee44321[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee44321[];
+extern VTBL_ENTRY _ZTV7ee44321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee44321[];
+static VTBL_ENTRY alt_thunk_names596[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3213fooEv,_ZThn16_N5cc3213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3213fooEv,_ZThn16_N5cc3213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3213fooEv,_ZThn16_N5cc3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee44321 = { "ee44321", // class name
+ bases_ee44321, 4,
+ &(vtc_ee44321[0]), // expected_vtbl_contents
+ &(vtt_ee44321[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee44321),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44321),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee44321),6, //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 ee54321 : virtual dd4321 {
+ int e;
+ virtual void bar(); // _ZN7ee543213barEv
+ ~ee54321(); // tgen
+ ee54321(); // tgen
+};
+//SIG(1 ee54321) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 Fi} v2 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee54321 ::bar(){vfunc_called(this, "_ZN7ee543213barEv");}
+ee54321 ::~ee54321(){ note_dtor("ee54321", this);} // tgen
+ee54321 ::ee54321(){ note_ctor("ee54321", this);} // tgen
+
+static void Test_ee54321()
+{
+ extern Class_Descriptor cd_ee54321;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee54321, buf);
+ ee54321 *dp, &lv = *(dp=new (buf) ee54321());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee54321)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54321)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee54321");
+ check_base_class_offset(lv, (bb21*)(cc321*)(dd4321*), ABISELECT(32,20), "ee54321");
+ check_base_class_offset(lv, (cc321*)(dd4321*), ABISELECT(16,8), "ee54321");
+ check_base_class_offset(lv, (dd4321*), ABISELECT(16,8), "ee54321");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54321.e");
+ test_class_info(&lv, &cd_ee54321);
+ dp->~ee54321();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54321(Test_ee54321, "ee54321", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee54321C1Ev();
+extern void _ZN7ee54321D1Ev();
+Name_Map name_map_ee54321[] = {
+ NSPAIR(_ZN7ee54321C1Ev),
+ NSPAIR(_ZN7ee54321D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc321;
+extern VTBL_ENTRY _ZTI5cc321[];
+extern VTBL_ENTRY _ZTV5cc321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc321[];
+extern Class_Descriptor cd_dd4321;
+extern VTBL_ENTRY _ZTI6dd4321[];
+extern VTBL_ENTRY _ZTV6dd4321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4321[];
+static Base_Class bases_ee54321[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc321, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4321, 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 _ZTI7ee54321[];
+extern void _ZN7ee543213barEv();
+extern void _ZN5cc3213fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee543213barEv,_ZTv0_n20_N7ee543213barEv)();
+extern void ABISELECT(_ZThn16_N7ee543213barEv,_ZThn8_N7ee543213barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn12_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54321[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54321[0]),
+ (VTBL_ENTRY)&_ZN7ee543213barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee543213barEv,_ZTv0_n20_N7ee543213barEv),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee54321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee54321[];
+extern void _ZN5cc3213fooEv();
+extern void _ZN6dd43213barEv();
+static VTBL_ENTRY _tg__ZTV6dd4321__7ee54321[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+ (VTBL_ENTRY)&_ZN6dd43213barEv,
+};
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3216dd4321__7ee54321[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn12_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc3216dd4321__7ee54321[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn12_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd4321__7ee54321[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+static VTT_ENTRY vtt_ee54321[] = {
+ {&(_ZTV7ee54321[4]), 4,16},
+ {&(_ZTV7ee54321[10]), 10,16},
+ {&(_ZTV7ee54321[15]), 15,16},
+ {&(_tg__ZTV6dd4321__7ee54321[3]), 3,5},
+ {&(_tg__ZTV5cc3216dd4321__7ee54321[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc3216dd4321__7ee54321[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd4321__7ee54321[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee54321[];
+extern VTBL_ENTRY _ZTV7ee54321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54321[];
+static VTBL_ENTRY alt_thunk_names597[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn12_N5cc3213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn12_N5cc3213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn12_N5cc3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee543213barEv,_ZTv0_n20_N7ee543213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee543213barEv,_ZThn8_N7ee543213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54321 = { "ee54321", // class name
+ bases_ee54321, 4,
+ &(vtc_ee54321[0]), // expected_vtbl_contents
+ &(vtt_ee54321[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee54321),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54321),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54321),7, //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 ee64321 : dd4321 {
+ int e;
+ virtual void foo(); // _ZN7ee643213fooEv
+ virtual void bar(); // _ZN7ee643213barEv
+ ~ee64321(); // tgen
+ ee64321(); // tgen
+};
+//SIG(1 ee64321) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64321 ::foo(){vfunc_called(this, "_ZN7ee643213fooEv");}
+void ee64321 ::bar(){vfunc_called(this, "_ZN7ee643213barEv");}
+ee64321 ::~ee64321(){ note_dtor("ee64321", this);} // tgen
+ee64321 ::ee64321(){ note_ctor("ee64321", this);} // tgen
+
+static void Test_ee64321()
+{
+ extern Class_Descriptor cd_ee64321;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee64321, buf);
+ ee64321 *dp, &lv = *(dp=new (buf) ee64321());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee64321)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64321)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(24,16), "ee64321");
+ check_base_class_offset(lv, (bb21*)(cc321*)(dd4321*), ABISELECT(24,16), "ee64321");
+ check_base_class_offset(lv, (cc321*)(dd4321*), 0, "ee64321");
+ check_base_class_offset(lv, (dd4321*), 0, "ee64321");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee64321.e");
+ test_class_info(&lv, &cd_ee64321);
+ dp->~ee64321();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64321(Test_ee64321, "ee64321", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee64321C1Ev();
+extern void _ZN7ee64321D1Ev();
+Name_Map name_map_ee64321[] = {
+ NSPAIR(_ZN7ee64321C1Ev),
+ NSPAIR(_ZN7ee64321D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc321;
+extern VTBL_ENTRY _ZTI5cc321[];
+extern VTBL_ENTRY _ZTV5cc321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc321[];
+extern Class_Descriptor cd_dd4321;
+extern VTBL_ENTRY _ZTI6dd4321[];
+extern VTBL_ENTRY _ZTV6dd4321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4321[];
+static Base_Class bases_ee64321[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc321, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4321, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee64321[];
+extern void _ZN7ee643213fooEv();
+extern void _ZN7ee643213barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee643213fooEv,_ZTv0_n12_N7ee643213fooEv)();
+extern void ABISELECT(_ZThn24_N7ee643213fooEv,_ZThn16_N7ee643213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee64321[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64321[0]),
+ (VTBL_ENTRY)&_ZN7ee643213fooEv,
+ (VTBL_ENTRY)&_ZN7ee643213barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee64321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee643213fooEv,_ZTv0_n12_N7ee643213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee64321[];
+extern void _ZN5cc3213fooEv();
+extern void _ZN6dd43213barEv();
+static VTBL_ENTRY _tg__ZTV6dd4321__7ee64321[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+ (VTBL_ENTRY)&_ZN6dd43213barEv,
+};
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3216dd4321__7ee64321[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3213fooEv,_ZThn16_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc3216dd4321__7ee64321[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3213fooEv,_ZThn16_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd4321__7ee64321[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+static VTT_ENTRY vtt_ee64321[] = {
+ {&(_ZTV7ee64321[3]), 3,9},
+ {&(_tg__ZTV6dd4321__7ee64321[3]), 3,5},
+ {&(_tg__ZTV5cc3216dd4321__7ee64321[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc3216dd4321__7ee64321[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd4321__7ee64321[3]), 3,4},
+ {&(_ZTV7ee64321[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee64321[];
+extern VTBL_ENTRY _ZTV7ee64321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee64321[];
+static VTBL_ENTRY alt_thunk_names598[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3213fooEv,_ZThn16_N5cc3213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3213fooEv,_ZThn16_N5cc3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee643213fooEv,_ZTv0_n12_N7ee643213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee643213fooEv,_ZThn16_N7ee643213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee64321 = { "ee64321", // class name
+ bases_ee64321, 4,
+ &(vtc_ee64321[0]), // expected_vtbl_contents
+ &(vtt_ee64321[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee64321),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64321),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee64321),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names598,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee74321 : virtual dd4321 {
+ int e;
+ virtual void foo(); // _ZN7ee743213fooEv
+ virtual void bar(); // _ZN7ee743213barEv
+ ~ee74321(); // tgen
+ ee74321(); // tgen
+};
+//SIG(1 ee74321) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74321 ::foo(){vfunc_called(this, "_ZN7ee743213fooEv");}
+void ee74321 ::bar(){vfunc_called(this, "_ZN7ee743213barEv");}
+ee74321 ::~ee74321(){ note_dtor("ee74321", this);} // tgen
+ee74321 ::ee74321(){ note_ctor("ee74321", this);} // tgen
+
+static void Test_ee74321()
+{
+ extern Class_Descriptor cd_ee74321;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee74321, buf);
+ ee74321 *dp, &lv = *(dp=new (buf) ee74321());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee74321)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74321)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee74321");
+ check_base_class_offset(lv, (bb21*)(cc321*)(dd4321*), ABISELECT(32,20), "ee74321");
+ check_base_class_offset(lv, (cc321*)(dd4321*), ABISELECT(16,8), "ee74321");
+ check_base_class_offset(lv, (dd4321*), ABISELECT(16,8), "ee74321");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74321.e");
+ test_class_info(&lv, &cd_ee74321);
+ dp->~ee74321();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74321(Test_ee74321, "ee74321", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee74321C1Ev();
+extern void _ZN7ee74321D1Ev();
+Name_Map name_map_ee74321[] = {
+ NSPAIR(_ZN7ee74321C1Ev),
+ NSPAIR(_ZN7ee74321D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc321;
+extern VTBL_ENTRY _ZTI5cc321[];
+extern VTBL_ENTRY _ZTV5cc321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc321[];
+extern Class_Descriptor cd_dd4321;
+extern VTBL_ENTRY _ZTI6dd4321[];
+extern VTBL_ENTRY _ZTV6dd4321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4321[];
+static Base_Class bases_ee74321[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc321, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4321, ABISELECT(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 _ZTI7ee74321[];
+extern void _ZN7ee743213fooEv();
+extern void _ZN7ee743213barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee743213fooEv,_ZTv0_n16_N7ee743213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee743213fooEv,_ZThn8_N7ee743213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee743213barEv,_ZTv0_n20_N7ee743213barEv)();
+extern void ABISELECT(_ZThn16_N7ee743213barEv,_ZThn8_N7ee743213barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee743213fooEv,_ZTv0_n12_N7ee743213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee743213fooEv,_ZThn20_N7ee743213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74321[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74321[0]),
+ (VTBL_ENTRY)&_ZN7ee743213fooEv,
+ (VTBL_ENTRY)&_ZN7ee743213barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee743213fooEv,_ZTv0_n16_N7ee743213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee743213barEv,_ZTv0_n20_N7ee743213barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee74321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee743213fooEv,_ZTv0_n12_N7ee743213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee74321[];
+extern void _ZN5cc3213fooEv();
+extern void _ZN6dd43213barEv();
+static VTBL_ENTRY _tg__ZTV6dd4321__7ee74321[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+ (VTBL_ENTRY)&_ZN6dd43213barEv,
+};
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3216dd4321__7ee74321[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn12_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc3216dd4321__7ee74321[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn12_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd4321__7ee74321[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+static VTT_ENTRY vtt_ee74321[] = {
+ {&(_ZTV7ee74321[4]), 4,17},
+ {&(_ZTV7ee74321[11]), 11,17},
+ {&(_ZTV7ee74321[16]), 16,17},
+ {&(_tg__ZTV6dd4321__7ee74321[3]), 3,5},
+ {&(_tg__ZTV5cc3216dd4321__7ee74321[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc3216dd4321__7ee74321[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd4321__7ee74321[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee74321[];
+extern VTBL_ENTRY _ZTV7ee74321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74321[];
+static VTBL_ENTRY alt_thunk_names599[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn12_N5cc3213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn12_N5cc3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee743213fooEv,_ZTv0_n12_N7ee743213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee743213fooEv,_ZThn20_N7ee743213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee743213barEv,_ZTv0_n20_N7ee743213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee743213barEv,_ZThn8_N7ee743213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee743213fooEv,_ZTv0_n16_N7ee743213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee743213fooEv,_ZThn8_N7ee743213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74321 = { "ee74321", // class name
+ bases_ee74321, 4,
+ &(vtc_ee74321[0]), // expected_vtbl_contents
+ &(vtt_ee74321[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee74321),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74321),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74321),7, //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 dd5321 : virtual cc321 {
+ int d;
+ virtual void bar(); // _ZN6dd53213barEv
+ ~dd5321(); // tgen
+ dd5321(); // tgen
+};
+//SIG(-1 dd5321) C1{ VBC2{ VBC3{ BC4{ v2 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void dd5321 ::bar(){vfunc_called(this, "_ZN6dd53213barEv");}
+dd5321 ::~dd5321(){ note_dtor("dd5321", this);} // tgen
+dd5321 ::dd5321(){ note_ctor("dd5321", this);} // tgen
+
+static void Test_dd5321()
+{
+ extern Class_Descriptor cd_dd5321;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd5321, buf);
+ dd5321 *dp, &lv = *(dp=new (buf) dd5321());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd5321)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5321)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,16), "dd5321");
+ check_base_class_offset(lv, (bb21*)(cc321*), ABISELECT(32,16), "dd5321");
+ check_base_class_offset(lv, (cc321*), ABISELECT(16,8), "dd5321");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5321.d");
+ test_class_info(&lv, &cd_dd5321);
+ dp->~dd5321();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5321(Test_dd5321, "dd5321", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd5321C1Ev();
+extern void _ZN6dd5321D1Ev();
+Name_Map name_map_dd5321[] = {
+ NSPAIR(_ZN6dd5321C1Ev),
+ NSPAIR(_ZN6dd5321D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc321;
+extern VTBL_ENTRY _ZTI5cc321[];
+extern VTBL_ENTRY _ZTV5cc321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc321[];
+static Base_Class bases_dd5321[] = {
+ // 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_bb21, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc321, 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 _ZTI6dd5321[];
+extern void _ZN6dd53213barEv();
+extern void _ZN5cc3213fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd5321[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5321[0]),
+ (VTBL_ENTRY)&_ZN6dd53213barEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd5321[];
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc321__6dd5321[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc321__6dd5321[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+static VTT_ENTRY vtt_dd5321[] = {
+ {&(_ZTV6dd5321[4]), 4,14},
+ {&(_ZTV6dd5321[9]), 9,14},
+ {&(_ZTV6dd5321[13]), 13,14},
+ {&(_tg__ZTV5cc321__6dd5321[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc321__6dd5321[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd5321[];
+extern VTBL_ENTRY _ZTV6dd5321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5321[];
+static VTBL_ENTRY alt_thunk_names600[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5321 = { "dd5321", // class name
+ bases_dd5321, 3,
+ &(vtc_dd5321[0]), // expected_vtbl_contents
+ &(vtt_dd5321[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd5321),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5321),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5321),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names600,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05321 : dd5321 {
+ int e;
+ ~ee05321(); // tgen
+ ee05321(); // tgen
+};
+//SIG(1 ee05321) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 Fi} v2 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee05321 ::~ee05321(){ note_dtor("ee05321", this);} // tgen
+ee05321 ::ee05321(){ note_ctor("ee05321", this);} // tgen
+
+static void Test_ee05321()
+{
+ extern Class_Descriptor cd_ee05321;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee05321, buf);
+ ee05321 *dp, &lv = *(dp=new (buf) ee05321());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee05321)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05321)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee05321");
+ check_base_class_offset(lv, (bb21*)(cc321*), ABISELECT(32,20), "ee05321");
+ check_base_class_offset(lv, (cc321*)(dd5321*), ABISELECT(16,12), "ee05321");
+ check_base_class_offset(lv, (dd5321*), 0, "ee05321");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05321.e");
+ test_class_info(&lv, &cd_ee05321);
+ dp->~ee05321();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05321(Test_ee05321, "ee05321", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee05321C1Ev();
+extern void _ZN7ee05321D1Ev();
+Name_Map name_map_ee05321[] = {
+ NSPAIR(_ZN7ee05321C1Ev),
+ NSPAIR(_ZN7ee05321D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc321;
+extern VTBL_ENTRY _ZTI5cc321[];
+extern VTBL_ENTRY _ZTV5cc321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc321[];
+extern Class_Descriptor cd_dd5321;
+extern VTBL_ENTRY _ZTI6dd5321[];
+extern VTBL_ENTRY _ZTV6dd5321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5321[];
+static Base_Class bases_ee05321[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc321, 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_dd5321, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05321[];
+extern void _ZN6dd53213barEv();
+extern void _ZN5cc3213fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee05321[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05321[0]),
+ (VTBL_ENTRY)&_ZN6dd53213barEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee05321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee05321[];
+extern void _ZN6dd53213barEv();
+static VTBL_ENTRY _tg__ZTV6dd5321__7ee05321[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5321[0]),
+ (VTBL_ENTRY)&_ZN6dd53213barEv,
+};
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc321__6dd5321__7ee05321[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd5321__7ee05321[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc321__7ee05321[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc321__7ee05321[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+static VTT_ENTRY vtt_ee05321[] = {
+ {&(_ZTV7ee05321[4]), 4,14},
+ {&(_tg__ZTV6dd5321__7ee05321[4]), 4,5},
+ {&(_tg__ZTV5cc321__6dd5321__7ee05321[4]), 4,5},
+ {&(_tg__ZTV4bb21__6dd5321__7ee05321[3]), 3,4},
+ {&(_ZTV7ee05321[9]), 9,14},
+ {&(_ZTV7ee05321[13]), 13,14},
+ {&(_tg__ZTV5cc321__7ee05321[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc321__7ee05321[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee05321[];
+extern VTBL_ENTRY _ZTV7ee05321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05321[];
+static VTBL_ENTRY alt_thunk_names601[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05321 = { "ee05321", // class name
+ bases_ee05321, 4,
+ &(vtc_ee05321[0]), // expected_vtbl_contents
+ &(vtt_ee05321[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee05321),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05321),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05321),8, //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 ee15321 : virtual dd5321 {
+ int e;
+ ~ee15321(); // tgen
+ ee15321(); // tgen
+};
+//SIG(1 ee15321) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 Fi} v2 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee15321 ::~ee15321(){ note_dtor("ee15321", this);} // tgen
+ee15321 ::ee15321(){ note_ctor("ee15321", this);} // tgen
+
+static void Test_ee15321()
+{
+ extern Class_Descriptor cd_ee15321;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee15321, buf);
+ ee15321 *dp, &lv = *(dp=new (buf) ee15321());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee15321)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15321)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(48,24), "ee15321");
+ check_base_class_offset(lv, (bb21*)(cc321*), ABISELECT(48,24), "ee15321");
+ check_base_class_offset(lv, (cc321*)(dd5321*), ABISELECT(32,16), "ee15321");
+ check_base_class_offset(lv, (dd5321*), ABISELECT(16,8), "ee15321");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15321.e");
+ test_class_info(&lv, &cd_ee15321);
+ dp->~ee15321();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15321(Test_ee15321, "ee15321", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee15321C1Ev();
+extern void _ZN7ee15321D1Ev();
+Name_Map name_map_ee15321[] = {
+ NSPAIR(_ZN7ee15321C1Ev),
+ NSPAIR(_ZN7ee15321D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc321;
+extern VTBL_ENTRY _ZTI5cc321[];
+extern VTBL_ENTRY _ZTV5cc321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc321[];
+extern Class_Descriptor cd_dd5321;
+extern VTBL_ENTRY _ZTI6dd5321[];
+extern VTBL_ENTRY _ZTV6dd5321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5321[];
+static Base_Class bases_ee15321[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb21, ABISELECT(48,24), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc321, 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_dd5321, 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 _ZTI7ee15321[];
+extern void _ZN6dd53213barEv();
+extern void _ZN5cc3213fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee15321[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15321[0]),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15321[0]),
+ (VTBL_ENTRY)&_ZN6dd53213barEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee15321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee15321[];
+extern void _ZN6dd53213barEv();
+static VTBL_ENTRY _tg__ZTV6dd5321__7ee15321[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5321[0]),
+ (VTBL_ENTRY)&_ZN6dd53213barEv,
+};
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc321__6dd5321__7ee15321[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd5321__7ee15321[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc321__7ee15321[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc321__7ee15321[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+static VTT_ENTRY vtt_ee15321[] = {
+ {&(_ZTV7ee15321[5]), 5,20},
+ {&(_ZTV7ee15321[10]), 10,20},
+ {&(_ZTV7ee15321[15]), 15,20},
+ {&(_ZTV7ee15321[19]), 19,20},
+ {&(_tg__ZTV6dd5321__7ee15321[4]), 4,5},
+ {&(_tg__ZTV5cc321__6dd5321__7ee15321[4]), 4,5},
+ {&(_tg__ZTV4bb21__6dd5321__7ee15321[3]), 3,4},
+ {&(_tg__ZTV5cc321__7ee15321[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc321__7ee15321[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee15321[];
+extern VTBL_ENTRY _ZTV7ee15321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15321[];
+static VTBL_ENTRY alt_thunk_names602[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15321 = { "ee15321", // class name
+ bases_ee15321, 4,
+ &(vtc_ee15321[0]), // expected_vtbl_contents
+ &(vtt_ee15321[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee15321),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15321),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15321),9, //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 ee25321 : dd5321 {
+ int e;
+ virtual void foo(); // _ZN7ee253213fooEv
+ ~ee25321(); // tgen
+ ee25321(); // tgen
+};
+//SIG(1 ee25321) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee25321 ::foo(){vfunc_called(this, "_ZN7ee253213fooEv");}
+ee25321 ::~ee25321(){ note_dtor("ee25321", this);} // tgen
+ee25321 ::ee25321(){ note_ctor("ee25321", this);} // tgen
+
+static void Test_ee25321()
+{
+ extern Class_Descriptor cd_ee25321;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee25321, buf);
+ ee25321 *dp, &lv = *(dp=new (buf) ee25321());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee25321)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25321)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee25321");
+ check_base_class_offset(lv, (bb21*)(cc321*), ABISELECT(32,20), "ee25321");
+ check_base_class_offset(lv, (cc321*)(dd5321*), ABISELECT(16,12), "ee25321");
+ check_base_class_offset(lv, (dd5321*), 0, "ee25321");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25321.e");
+ test_class_info(&lv, &cd_ee25321);
+ dp->~ee25321();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25321(Test_ee25321, "ee25321", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee25321C1Ev();
+extern void _ZN7ee25321D1Ev();
+Name_Map name_map_ee25321[] = {
+ NSPAIR(_ZN7ee25321C1Ev),
+ NSPAIR(_ZN7ee25321D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc321;
+extern VTBL_ENTRY _ZTI5cc321[];
+extern VTBL_ENTRY _ZTV5cc321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc321[];
+extern Class_Descriptor cd_dd5321;
+extern VTBL_ENTRY _ZTI6dd5321[];
+extern VTBL_ENTRY _ZTV6dd5321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5321[];
+static Base_Class bases_ee25321[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc321, 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_dd5321, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25321[];
+extern void _ZN6dd53213barEv();
+extern void _ZN7ee253213fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee253213fooEv,_ZTv0_n16_N7ee253213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee253213fooEv,_ZThn12_N7ee253213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee253213fooEv,_ZTv0_n12_N7ee253213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee253213fooEv,_ZThn20_N7ee253213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25321[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25321[0]),
+ (VTBL_ENTRY)&_ZN6dd53213barEv,
+ (VTBL_ENTRY)&_ZN7ee253213fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee253213fooEv,_ZTv0_n16_N7ee253213fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee25321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee253213fooEv,_ZTv0_n12_N7ee253213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee25321[];
+extern void _ZN6dd53213barEv();
+static VTBL_ENTRY _tg__ZTV6dd5321__7ee25321[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5321[0]),
+ (VTBL_ENTRY)&_ZN6dd53213barEv,
+};
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc321__6dd5321__7ee25321[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd5321__7ee25321[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc321__7ee25321[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc321__7ee25321[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+static VTT_ENTRY vtt_ee25321[] = {
+ {&(_ZTV7ee25321[4]), 4,15},
+ {&(_tg__ZTV6dd5321__7ee25321[4]), 4,5},
+ {&(_tg__ZTV5cc321__6dd5321__7ee25321[4]), 4,5},
+ {&(_tg__ZTV4bb21__6dd5321__7ee25321[3]), 3,4},
+ {&(_ZTV7ee25321[10]), 10,15},
+ {&(_ZTV7ee25321[14]), 14,15},
+ {&(_tg__ZTV5cc321__7ee25321[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc321__7ee25321[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee25321[];
+extern VTBL_ENTRY _ZTV7ee25321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25321[];
+static VTBL_ENTRY alt_thunk_names603[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee253213fooEv,_ZTv0_n12_N7ee253213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee253213fooEv,_ZThn20_N7ee253213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee253213fooEv,_ZTv0_n16_N7ee253213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee253213fooEv,_ZThn12_N7ee253213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25321 = { "ee25321", // class name
+ bases_ee25321, 4,
+ &(vtc_ee25321[0]), // expected_vtbl_contents
+ &(vtt_ee25321[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee25321),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25321),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25321),8, //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 ee35321 : virtual dd5321 {
+ int e;
+ virtual void foo(); // _ZN7ee353213fooEv
+ ~ee35321(); // tgen
+ ee35321(); // tgen
+};
+//SIG(1 ee35321) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee35321 ::foo(){vfunc_called(this, "_ZN7ee353213fooEv");}
+ee35321 ::~ee35321(){ note_dtor("ee35321", this);} // tgen
+ee35321 ::ee35321(){ note_ctor("ee35321", this);} // tgen
+
+static void Test_ee35321()
+{
+ extern Class_Descriptor cd_ee35321;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee35321, buf);
+ ee35321 *dp, &lv = *(dp=new (buf) ee35321());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee35321)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35321)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(48,24), "ee35321");
+ check_base_class_offset(lv, (bb21*)(cc321*), ABISELECT(48,24), "ee35321");
+ check_base_class_offset(lv, (cc321*)(dd5321*), ABISELECT(32,16), "ee35321");
+ check_base_class_offset(lv, (dd5321*), ABISELECT(16,8), "ee35321");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35321.e");
+ test_class_info(&lv, &cd_ee35321);
+ dp->~ee35321();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35321(Test_ee35321, "ee35321", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee35321C1Ev();
+extern void _ZN7ee35321D1Ev();
+Name_Map name_map_ee35321[] = {
+ NSPAIR(_ZN7ee35321C1Ev),
+ NSPAIR(_ZN7ee35321D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc321;
+extern VTBL_ENTRY _ZTI5cc321[];
+extern VTBL_ENTRY _ZTV5cc321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc321[];
+extern Class_Descriptor cd_dd5321;
+extern VTBL_ENTRY _ZTI6dd5321[];
+extern VTBL_ENTRY _ZTV6dd5321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5321[];
+static Base_Class bases_ee35321[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb21, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc321, 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_dd5321, ABISELECT(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 _ZTI7ee35321[];
+extern void _ZN7ee353213fooEv();
+extern void _ZN6dd53213barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee353213fooEv,_ZTv0_n16_N7ee353213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee353213fooEv,_ZThn16_N7ee353213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee353213fooEv,_ZTv0_n12_N7ee353213fooEv)();
+extern void ABISELECT(_ZThn48_N7ee353213fooEv,_ZThn24_N7ee353213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35321[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35321[0]),
+ (VTBL_ENTRY)&_ZN7ee353213fooEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35321[0]),
+ (VTBL_ENTRY)&_ZN6dd53213barEv,
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee353213fooEv,_ZTv0_n16_N7ee353213fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee35321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee353213fooEv,_ZTv0_n12_N7ee353213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee35321[];
+extern void _ZN6dd53213barEv();
+static VTBL_ENTRY _tg__ZTV6dd5321__7ee35321[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5321[0]),
+ (VTBL_ENTRY)&_ZN6dd53213barEv,
+};
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc321__6dd5321__7ee35321[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd5321__7ee35321[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc321__7ee35321[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc321__7ee35321[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+static VTT_ENTRY vtt_ee35321[] = {
+ {&(_ZTV7ee35321[5]), 5,21},
+ {&(_ZTV7ee35321[11]), 11,21},
+ {&(_ZTV7ee35321[16]), 16,21},
+ {&(_ZTV7ee35321[20]), 20,21},
+ {&(_tg__ZTV6dd5321__7ee35321[4]), 4,5},
+ {&(_tg__ZTV5cc321__6dd5321__7ee35321[4]), 4,5},
+ {&(_tg__ZTV4bb21__6dd5321__7ee35321[3]), 3,4},
+ {&(_tg__ZTV5cc321__7ee35321[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc321__7ee35321[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee35321[];
+extern VTBL_ENTRY _ZTV7ee35321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35321[];
+static VTBL_ENTRY alt_thunk_names604[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee353213fooEv,_ZTv0_n12_N7ee353213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee353213fooEv,_ZThn24_N7ee353213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee353213fooEv,_ZTv0_n16_N7ee353213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee353213fooEv,_ZThn16_N7ee353213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35321 = { "ee35321", // class name
+ bases_ee35321, 4,
+ &(vtc_ee35321[0]), // expected_vtbl_contents
+ &(vtt_ee35321[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee35321),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35321),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35321),9, //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 ee45321 : dd5321 {
+ int e;
+ virtual void bar(); // _ZN7ee453213barEv
+ ~ee45321(); // tgen
+ ee45321(); // tgen
+};
+//SIG(1 ee45321) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 Fi} v2 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee45321 ::bar(){vfunc_called(this, "_ZN7ee453213barEv");}
+ee45321 ::~ee45321(){ note_dtor("ee45321", this);} // tgen
+ee45321 ::ee45321(){ note_ctor("ee45321", this);} // tgen
+
+static void Test_ee45321()
+{
+ extern Class_Descriptor cd_ee45321;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee45321, buf);
+ ee45321 *dp, &lv = *(dp=new (buf) ee45321());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee45321)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45321)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee45321");
+ check_base_class_offset(lv, (bb21*)(cc321*), ABISELECT(32,20), "ee45321");
+ check_base_class_offset(lv, (cc321*)(dd5321*), ABISELECT(16,12), "ee45321");
+ check_base_class_offset(lv, (dd5321*), 0, "ee45321");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45321.e");
+ test_class_info(&lv, &cd_ee45321);
+ dp->~ee45321();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45321(Test_ee45321, "ee45321", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee45321C1Ev();
+extern void _ZN7ee45321D1Ev();
+Name_Map name_map_ee45321[] = {
+ NSPAIR(_ZN7ee45321C1Ev),
+ NSPAIR(_ZN7ee45321D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc321;
+extern VTBL_ENTRY _ZTI5cc321[];
+extern VTBL_ENTRY _ZTV5cc321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc321[];
+extern Class_Descriptor cd_dd5321;
+extern VTBL_ENTRY _ZTI6dd5321[];
+extern VTBL_ENTRY _ZTV6dd5321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5321[];
+static Base_Class bases_ee45321[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc321, 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_dd5321, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45321[];
+extern void _ZN7ee453213barEv();
+extern void _ZN5cc3213fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee45321[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45321[0]),
+ (VTBL_ENTRY)&_ZN7ee453213barEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee45321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee45321[];
+extern void _ZN6dd53213barEv();
+static VTBL_ENTRY _tg__ZTV6dd5321__7ee45321[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5321[0]),
+ (VTBL_ENTRY)&_ZN6dd53213barEv,
+};
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc321__6dd5321__7ee45321[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd5321__7ee45321[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc321__7ee45321[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc321__7ee45321[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+static VTT_ENTRY vtt_ee45321[] = {
+ {&(_ZTV7ee45321[4]), 4,14},
+ {&(_tg__ZTV6dd5321__7ee45321[4]), 4,5},
+ {&(_tg__ZTV5cc321__6dd5321__7ee45321[4]), 4,5},
+ {&(_tg__ZTV4bb21__6dd5321__7ee45321[3]), 3,4},
+ {&(_ZTV7ee45321[9]), 9,14},
+ {&(_ZTV7ee45321[13]), 13,14},
+ {&(_tg__ZTV5cc321__7ee45321[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc321__7ee45321[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee45321[];
+extern VTBL_ENTRY _ZTV7ee45321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45321[];
+static VTBL_ENTRY alt_thunk_names605[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45321 = { "ee45321", // class name
+ bases_ee45321, 4,
+ &(vtc_ee45321[0]), // expected_vtbl_contents
+ &(vtt_ee45321[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee45321),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45321),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45321),8, //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 ee55321 : virtual dd5321 {
+ int e;
+ virtual void bar(); // _ZN7ee553213barEv
+ ~ee55321(); // tgen
+ ee55321(); // tgen
+};
+//SIG(1 ee55321) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 Fi} v2 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee55321 ::bar(){vfunc_called(this, "_ZN7ee553213barEv");}
+ee55321 ::~ee55321(){ note_dtor("ee55321", this);} // tgen
+ee55321 ::ee55321(){ note_ctor("ee55321", this);} // tgen
+
+static void Test_ee55321()
+{
+ extern Class_Descriptor cd_ee55321;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee55321, buf);
+ ee55321 *dp, &lv = *(dp=new (buf) ee55321());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee55321)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55321)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(48,24), "ee55321");
+ check_base_class_offset(lv, (bb21*)(cc321*), ABISELECT(48,24), "ee55321");
+ check_base_class_offset(lv, (cc321*)(dd5321*), ABISELECT(32,16), "ee55321");
+ check_base_class_offset(lv, (dd5321*), ABISELECT(16,8), "ee55321");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55321.e");
+ test_class_info(&lv, &cd_ee55321);
+ dp->~ee55321();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55321(Test_ee55321, "ee55321", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee55321C1Ev();
+extern void _ZN7ee55321D1Ev();
+Name_Map name_map_ee55321[] = {
+ NSPAIR(_ZN7ee55321C1Ev),
+ NSPAIR(_ZN7ee55321D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc321;
+extern VTBL_ENTRY _ZTI5cc321[];
+extern VTBL_ENTRY _ZTV5cc321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc321[];
+extern Class_Descriptor cd_dd5321;
+extern VTBL_ENTRY _ZTI6dd5321[];
+extern VTBL_ENTRY _ZTV6dd5321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5321[];
+static Base_Class bases_ee55321[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb21, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc321, 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_dd5321, ABISELECT(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 _ZTI7ee55321[];
+extern void _ZN7ee553213barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee553213barEv,_ZTv0_n20_N7ee553213barEv)();
+extern void ABISELECT(_ZThn16_N7ee553213barEv,_ZThn8_N7ee553213barEv)() __attribute__((weak));
+extern void _ZN5cc3213fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee55321[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55321[0]),
+ (VTBL_ENTRY)&_ZN7ee553213barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee553213barEv,_ZTv0_n20_N7ee553213barEv),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee55321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee55321[];
+extern void _ZN6dd53213barEv();
+static VTBL_ENTRY _tg__ZTV6dd5321__7ee55321[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5321[0]),
+ (VTBL_ENTRY)&_ZN6dd53213barEv,
+};
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc321__6dd5321__7ee55321[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd5321__7ee55321[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc321__7ee55321[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc321__7ee55321[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+static VTT_ENTRY vtt_ee55321[] = {
+ {&(_ZTV7ee55321[5]), 5,21},
+ {&(_ZTV7ee55321[11]), 11,21},
+ {&(_ZTV7ee55321[16]), 16,21},
+ {&(_ZTV7ee55321[20]), 20,21},
+ {&(_tg__ZTV6dd5321__7ee55321[4]), 4,5},
+ {&(_tg__ZTV5cc321__6dd5321__7ee55321[4]), 4,5},
+ {&(_tg__ZTV4bb21__6dd5321__7ee55321[3]), 3,4},
+ {&(_tg__ZTV5cc321__7ee55321[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc321__7ee55321[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee55321[];
+extern VTBL_ENTRY _ZTV7ee55321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55321[];
+static VTBL_ENTRY alt_thunk_names606[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee553213barEv,_ZTv0_n20_N7ee553213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee553213barEv,_ZThn8_N7ee553213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55321 = { "ee55321", // class name
+ bases_ee55321, 4,
+ &(vtc_ee55321[0]), // expected_vtbl_contents
+ &(vtt_ee55321[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee55321),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55321),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55321),9, //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 ee65321 : dd5321 {
+ int e;
+ virtual void foo(); // _ZN7ee653213fooEv
+ virtual void bar(); // _ZN7ee653213barEv
+ ~ee65321(); // tgen
+ ee65321(); // tgen
+};
+//SIG(1 ee65321) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65321 ::foo(){vfunc_called(this, "_ZN7ee653213fooEv");}
+void ee65321 ::bar(){vfunc_called(this, "_ZN7ee653213barEv");}
+ee65321 ::~ee65321(){ note_dtor("ee65321", this);} // tgen
+ee65321 ::ee65321(){ note_ctor("ee65321", this);} // tgen
+
+static void Test_ee65321()
+{
+ extern Class_Descriptor cd_ee65321;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee65321, buf);
+ ee65321 *dp, &lv = *(dp=new (buf) ee65321());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee65321)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65321)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee65321");
+ check_base_class_offset(lv, (bb21*)(cc321*), ABISELECT(32,20), "ee65321");
+ check_base_class_offset(lv, (cc321*)(dd5321*), ABISELECT(16,12), "ee65321");
+ check_base_class_offset(lv, (dd5321*), 0, "ee65321");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65321.e");
+ test_class_info(&lv, &cd_ee65321);
+ dp->~ee65321();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65321(Test_ee65321, "ee65321", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee65321C1Ev();
+extern void _ZN7ee65321D1Ev();
+Name_Map name_map_ee65321[] = {
+ NSPAIR(_ZN7ee65321C1Ev),
+ NSPAIR(_ZN7ee65321D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc321;
+extern VTBL_ENTRY _ZTI5cc321[];
+extern VTBL_ENTRY _ZTV5cc321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc321[];
+extern Class_Descriptor cd_dd5321;
+extern VTBL_ENTRY _ZTI6dd5321[];
+extern VTBL_ENTRY _ZTV6dd5321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5321[];
+static Base_Class bases_ee65321[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc321, 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_dd5321, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65321[];
+extern void _ZN7ee653213barEv();
+extern void _ZN7ee653213fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee653213fooEv,_ZTv0_n16_N7ee653213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee653213fooEv,_ZThn12_N7ee653213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee653213fooEv,_ZTv0_n12_N7ee653213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee653213fooEv,_ZThn20_N7ee653213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65321[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65321[0]),
+ (VTBL_ENTRY)&_ZN7ee653213barEv,
+ (VTBL_ENTRY)&_ZN7ee653213fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee653213fooEv,_ZTv0_n16_N7ee653213fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee65321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee653213fooEv,_ZTv0_n12_N7ee653213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee65321[];
+extern void _ZN6dd53213barEv();
+static VTBL_ENTRY _tg__ZTV6dd5321__7ee65321[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5321[0]),
+ (VTBL_ENTRY)&_ZN6dd53213barEv,
+};
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc321__6dd5321__7ee65321[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd5321__7ee65321[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc321__7ee65321[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc321__7ee65321[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+static VTT_ENTRY vtt_ee65321[] = {
+ {&(_ZTV7ee65321[4]), 4,15},
+ {&(_tg__ZTV6dd5321__7ee65321[4]), 4,5},
+ {&(_tg__ZTV5cc321__6dd5321__7ee65321[4]), 4,5},
+ {&(_tg__ZTV4bb21__6dd5321__7ee65321[3]), 3,4},
+ {&(_ZTV7ee65321[10]), 10,15},
+ {&(_ZTV7ee65321[14]), 14,15},
+ {&(_tg__ZTV5cc321__7ee65321[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc321__7ee65321[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee65321[];
+extern VTBL_ENTRY _ZTV7ee65321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65321[];
+static VTBL_ENTRY alt_thunk_names607[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee653213fooEv,_ZTv0_n12_N7ee653213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee653213fooEv,_ZThn20_N7ee653213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee653213fooEv,_ZTv0_n16_N7ee653213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee653213fooEv,_ZThn12_N7ee653213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65321 = { "ee65321", // class name
+ bases_ee65321, 4,
+ &(vtc_ee65321[0]), // expected_vtbl_contents
+ &(vtt_ee65321[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee65321),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65321),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65321),8, //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 ee75321 : virtual dd5321 {
+ int e;
+ virtual void foo(); // _ZN7ee753213fooEv
+ virtual void bar(); // _ZN7ee753213barEv
+ ~ee75321(); // tgen
+ ee75321(); // tgen
+};
+//SIG(1 ee75321) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75321 ::foo(){vfunc_called(this, "_ZN7ee753213fooEv");}
+void ee75321 ::bar(){vfunc_called(this, "_ZN7ee753213barEv");}
+ee75321 ::~ee75321(){ note_dtor("ee75321", this);} // tgen
+ee75321 ::ee75321(){ note_ctor("ee75321", this);} // tgen
+
+static void Test_ee75321()
+{
+ extern Class_Descriptor cd_ee75321;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee75321, buf);
+ ee75321 *dp, &lv = *(dp=new (buf) ee75321());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee75321)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75321)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(48,24), "ee75321");
+ check_base_class_offset(lv, (bb21*)(cc321*), ABISELECT(48,24), "ee75321");
+ check_base_class_offset(lv, (cc321*)(dd5321*), ABISELECT(32,16), "ee75321");
+ check_base_class_offset(lv, (dd5321*), ABISELECT(16,8), "ee75321");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75321.e");
+ test_class_info(&lv, &cd_ee75321);
+ dp->~ee75321();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75321(Test_ee75321, "ee75321", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee75321C1Ev();
+extern void _ZN7ee75321D1Ev();
+Name_Map name_map_ee75321[] = {
+ NSPAIR(_ZN7ee75321C1Ev),
+ NSPAIR(_ZN7ee75321D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc321;
+extern VTBL_ENTRY _ZTI5cc321[];
+extern VTBL_ENTRY _ZTV5cc321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc321[];
+extern Class_Descriptor cd_dd5321;
+extern VTBL_ENTRY _ZTI6dd5321[];
+extern VTBL_ENTRY _ZTV6dd5321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5321[];
+static Base_Class bases_ee75321[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb21, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc321, 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_dd5321, 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 _ZTI7ee75321[];
+extern void _ZN7ee753213fooEv();
+extern void _ZN7ee753213barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee753213barEv,_ZTv0_n20_N7ee753213barEv)();
+extern void ABISELECT(_ZThn16_N7ee753213barEv,_ZThn8_N7ee753213barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee753213fooEv,_ZTv0_n16_N7ee753213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee753213fooEv,_ZThn16_N7ee753213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee753213fooEv,_ZTv0_n12_N7ee753213fooEv)();
+extern void ABISELECT(_ZThn48_N7ee753213fooEv,_ZThn24_N7ee753213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75321[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75321[0]),
+ (VTBL_ENTRY)&_ZN7ee753213fooEv,
+ (VTBL_ENTRY)&_ZN7ee753213barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee753213barEv,_ZTv0_n20_N7ee753213barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee753213fooEv,_ZTv0_n16_N7ee753213fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee75321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee753213fooEv,_ZTv0_n12_N7ee753213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee75321[];
+extern void _ZN6dd53213barEv();
+static VTBL_ENTRY _tg__ZTV6dd5321__7ee75321[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5321[0]),
+ (VTBL_ENTRY)&_ZN6dd53213barEv,
+};
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc321__6dd5321__7ee75321[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd5321__7ee75321[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc321__7ee75321[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc321__7ee75321[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+static VTT_ENTRY vtt_ee75321[] = {
+ {&(_ZTV7ee75321[5]), 5,22},
+ {&(_ZTV7ee75321[12]), 12,22},
+ {&(_ZTV7ee75321[17]), 17,22},
+ {&(_ZTV7ee75321[21]), 21,22},
+ {&(_tg__ZTV6dd5321__7ee75321[4]), 4,5},
+ {&(_tg__ZTV5cc321__6dd5321__7ee75321[4]), 4,5},
+ {&(_tg__ZTV4bb21__6dd5321__7ee75321[3]), 3,4},
+ {&(_tg__ZTV5cc321__7ee75321[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc321__7ee75321[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee75321[];
+extern VTBL_ENTRY _ZTV7ee75321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75321[];
+static VTBL_ENTRY alt_thunk_names608[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee753213fooEv,_ZTv0_n12_N7ee753213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee753213fooEv,_ZThn24_N7ee753213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee753213fooEv,_ZTv0_n16_N7ee753213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee753213fooEv,_ZThn16_N7ee753213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee753213barEv,_ZTv0_n20_N7ee753213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee753213barEv,_ZThn8_N7ee753213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75321 = { "ee75321", // class name
+ bases_ee75321, 4,
+ &(vtc_ee75321[0]), // expected_vtbl_contents
+ &(vtt_ee75321[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee75321),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75321),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75321),9, //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 dd6321 : cc321 {
+ int d;
+ virtual void bar(); // _ZN6dd63213barEv
+ virtual void foo(); // _ZN6dd63213fooEv
+ ~dd6321(); // tgen
+ dd6321(); // tgen
+};
+//SIG(-1 dd6321) C1{ BC2{ VBC3{ BC4{ v2 Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void dd6321 ::bar(){vfunc_called(this, "_ZN6dd63213barEv");}
+void dd6321 ::foo(){vfunc_called(this, "_ZN6dd63213fooEv");}
+dd6321 ::~dd6321(){ note_dtor("dd6321", this);} // tgen
+dd6321 ::dd6321(){ note_ctor("dd6321", this);} // tgen
+
+static void Test_dd6321()
+{
+ extern Class_Descriptor cd_dd6321;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd6321, buf);
+ dd6321 *dp, &lv = *(dp=new (buf) dd6321());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd6321)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6321)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(16,12), "dd6321");
+ check_base_class_offset(lv, (bb21*)(cc321*), ABISELECT(16,12), "dd6321");
+ check_base_class_offset(lv, (cc321*), 0, "dd6321");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd6321.d");
+ test_class_info(&lv, &cd_dd6321);
+ dp->~dd6321();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6321(Test_dd6321, "dd6321", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd6321C1Ev();
+extern void _ZN6dd6321D1Ev();
+Name_Map name_map_dd6321[] = {
+ NSPAIR(_ZN6dd6321C1Ev),
+ NSPAIR(_ZN6dd6321D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc321;
+extern VTBL_ENTRY _ZTI5cc321[];
+extern VTBL_ENTRY _ZTV5cc321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc321[];
+static Base_Class bases_dd6321[] = {
+ // 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_bb21, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc321, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd6321[];
+extern void _ZN6dd63213fooEv();
+extern void _ZN6dd63213barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd63213fooEv,_ZTv0_n12_N6dd63213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd63213fooEv,_ZThn12_N6dd63213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd6321[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6321[0]),
+ (VTBL_ENTRY)&_ZN6dd63213fooEv,
+ (VTBL_ENTRY)&_ZN6dd63213barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63213fooEv,_ZTv0_n12_N6dd63213fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd6321[];
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc321__6dd6321[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn12_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc321__6dd6321[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+static VTT_ENTRY vtt_dd6321[] = {
+ {&(_ZTV6dd6321[3]), 3,9},
+ {&(_tg__ZTV5cc321__6dd6321[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc321__6dd6321[3]), 3,4},
+ {&(_ZTV6dd6321[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI6dd6321[];
+extern VTBL_ENTRY _ZTV6dd6321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6321[];
+static VTBL_ENTRY alt_thunk_names609[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn12_N5cc3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63213fooEv,_ZTv0_n12_N6dd63213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63213fooEv,_ZThn12_N6dd63213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd6321 = { "dd6321", // class name
+ bases_dd6321, 3,
+ &(vtc_dd6321[0]), // expected_vtbl_contents
+ &(vtt_dd6321[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd6321),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6321),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd6321),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names609,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee06321 : dd6321 {
+ int e;
+ ~ee06321(); // tgen
+ ee06321(); // tgen
+};
+//SIG(1 ee06321) C1{ BC2{ BC3{ VBC4{ BC5{ v2 Fi} v2 Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee06321 ::~ee06321(){ note_dtor("ee06321", this);} // tgen
+ee06321 ::ee06321(){ note_ctor("ee06321", this);} // tgen
+
+static void Test_ee06321()
+{
+ extern Class_Descriptor cd_ee06321;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee06321, buf);
+ ee06321 *dp, &lv = *(dp=new (buf) ee06321());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee06321)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06321)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(24,16), "ee06321");
+ check_base_class_offset(lv, (bb21*)(cc321*)(dd6321*), ABISELECT(24,16), "ee06321");
+ check_base_class_offset(lv, (cc321*)(dd6321*), 0, "ee06321");
+ check_base_class_offset(lv, (dd6321*), 0, "ee06321");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee06321.e");
+ test_class_info(&lv, &cd_ee06321);
+ dp->~ee06321();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06321(Test_ee06321, "ee06321", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee06321C1Ev();
+extern void _ZN7ee06321D1Ev();
+Name_Map name_map_ee06321[] = {
+ NSPAIR(_ZN7ee06321C1Ev),
+ NSPAIR(_ZN7ee06321D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc321;
+extern VTBL_ENTRY _ZTI5cc321[];
+extern VTBL_ENTRY _ZTV5cc321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc321[];
+extern Class_Descriptor cd_dd6321;
+extern VTBL_ENTRY _ZTI6dd6321[];
+extern VTBL_ENTRY _ZTV6dd6321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6321[];
+static Base_Class bases_ee06321[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc321, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6321, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee06321[];
+extern void _ZN6dd63213fooEv();
+extern void _ZN6dd63213barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd63213fooEv,_ZTv0_n12_N6dd63213fooEv)();
+extern void ABISELECT(_ZThn24_N6dd63213fooEv,_ZThn16_N6dd63213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee06321[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06321[0]),
+ (VTBL_ENTRY)&_ZN6dd63213fooEv,
+ (VTBL_ENTRY)&_ZN6dd63213barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee06321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63213fooEv,_ZTv0_n12_N6dd63213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee06321[];
+extern void _ZN6dd63213fooEv();
+extern void _ZN6dd63213barEv();
+static VTBL_ENTRY _tg__ZTV6dd6321__7ee06321[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6321[0]),
+ (VTBL_ENTRY)&_ZN6dd63213fooEv,
+ (VTBL_ENTRY)&_ZN6dd63213barEv,
+};
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3216dd6321__7ee06321[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3213fooEv,_ZThn16_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc3216dd6321__7ee06321[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd63213fooEv,_ZTv0_n12_N6dd63213fooEv)();
+extern void ABISELECT(_ZThn24_N6dd63213fooEv,_ZThn16_N6dd63213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd6321__7ee06321[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63213fooEv,_ZTv0_n12_N6dd63213fooEv),
+};
+static VTT_ENTRY vtt_ee06321[] = {
+ {&(_ZTV7ee06321[3]), 3,9},
+ {&(_tg__ZTV6dd6321__7ee06321[3]), 3,5},
+ {&(_tg__ZTV5cc3216dd6321__7ee06321[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc3216dd6321__7ee06321[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd6321__7ee06321[3]), 3,4},
+ {&(_ZTV7ee06321[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee06321[];
+extern VTBL_ENTRY _ZTV7ee06321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee06321[];
+static VTBL_ENTRY alt_thunk_names610[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3213fooEv,_ZThn16_N5cc3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63213fooEv,_ZTv0_n12_N6dd63213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63213fooEv,_ZThn16_N6dd63213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63213fooEv,_ZThn16_N6dd63213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee06321 = { "ee06321", // class name
+ bases_ee06321, 4,
+ &(vtc_ee06321[0]), // expected_vtbl_contents
+ &(vtt_ee06321[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee06321),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06321),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee06321),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names610,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee16321 : virtual dd6321 {
+ int e;
+ ~ee16321(); // tgen
+ ee16321(); // tgen
+};
+//SIG(1 ee16321) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 Fi} v2 Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee16321 ::~ee16321(){ note_dtor("ee16321", this);} // tgen
+ee16321 ::ee16321(){ note_ctor("ee16321", this);} // tgen
+
+static void Test_ee16321()
+{
+ extern Class_Descriptor cd_ee16321;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee16321, buf);
+ ee16321 *dp, &lv = *(dp=new (buf) ee16321());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee16321)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16321)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee16321");
+ check_base_class_offset(lv, (bb21*)(cc321*)(dd6321*), ABISELECT(32,20), "ee16321");
+ check_base_class_offset(lv, (cc321*)(dd6321*), ABISELECT(16,8), "ee16321");
+ check_base_class_offset(lv, (dd6321*), ABISELECT(16,8), "ee16321");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16321.e");
+ test_class_info(&lv, &cd_ee16321);
+ dp->~ee16321();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16321(Test_ee16321, "ee16321", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee16321C1Ev();
+extern void _ZN7ee16321D1Ev();
+Name_Map name_map_ee16321[] = {
+ NSPAIR(_ZN7ee16321C1Ev),
+ NSPAIR(_ZN7ee16321D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc321;
+extern VTBL_ENTRY _ZTI5cc321[];
+extern VTBL_ENTRY _ZTV5cc321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc321[];
+extern Class_Descriptor cd_dd6321;
+extern VTBL_ENTRY _ZTI6dd6321[];
+extern VTBL_ENTRY _ZTV6dd6321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6321[];
+static Base_Class bases_ee16321[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc321, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6321, 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 _ZTI7ee16321[];
+extern void _ZN6dd63213fooEv();
+extern void _ZN6dd63213barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd63213fooEv,_ZTv0_n12_N6dd63213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd63213fooEv,_ZThn12_N6dd63213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee16321[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16321[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16321[0]),
+ (VTBL_ENTRY)&_ZN6dd63213fooEv,
+ (VTBL_ENTRY)&_ZN6dd63213barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee16321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63213fooEv,_ZTv0_n12_N6dd63213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee16321[];
+extern void _ZN6dd63213fooEv();
+extern void _ZN6dd63213barEv();
+static VTBL_ENTRY _tg__ZTV6dd6321__7ee16321[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6321[0]),
+ (VTBL_ENTRY)&_ZN6dd63213fooEv,
+ (VTBL_ENTRY)&_ZN6dd63213barEv,
+};
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3216dd6321__7ee16321[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn12_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc3216dd6321__7ee16321[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd63213fooEv,_ZTv0_n12_N6dd63213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd63213fooEv,_ZThn12_N6dd63213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd6321__7ee16321[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63213fooEv,_ZTv0_n12_N6dd63213fooEv),
+};
+static VTT_ENTRY vtt_ee16321[] = {
+ {&(_ZTV7ee16321[4]), 4,15},
+ {&(_ZTV7ee16321[9]), 9,15},
+ {&(_ZTV7ee16321[14]), 14,15},
+ {&(_tg__ZTV6dd6321__7ee16321[3]), 3,5},
+ {&(_tg__ZTV5cc3216dd6321__7ee16321[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc3216dd6321__7ee16321[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd6321__7ee16321[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee16321[];
+extern VTBL_ENTRY _ZTV7ee16321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16321[];
+static VTBL_ENTRY alt_thunk_names611[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn12_N5cc3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63213fooEv,_ZTv0_n12_N6dd63213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63213fooEv,_ZThn12_N6dd63213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63213fooEv,_ZThn12_N6dd63213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee16321 = { "ee16321", // class name
+ bases_ee16321, 4,
+ &(vtc_ee16321[0]), // expected_vtbl_contents
+ &(vtt_ee16321[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee16321),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16321),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16321),7, //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 ee26321 : dd6321 {
+ int e;
+ virtual void foo(); // _ZN7ee263213fooEv
+ ~ee26321(); // tgen
+ ee26321(); // tgen
+};
+//SIG(1 ee26321) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26321 ::foo(){vfunc_called(this, "_ZN7ee263213fooEv");}
+ee26321 ::~ee26321(){ note_dtor("ee26321", this);} // tgen
+ee26321 ::ee26321(){ note_ctor("ee26321", this);} // tgen
+
+static void Test_ee26321()
+{
+ extern Class_Descriptor cd_ee26321;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee26321, buf);
+ ee26321 *dp, &lv = *(dp=new (buf) ee26321());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee26321)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26321)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(24,16), "ee26321");
+ check_base_class_offset(lv, (bb21*)(cc321*)(dd6321*), ABISELECT(24,16), "ee26321");
+ check_base_class_offset(lv, (cc321*)(dd6321*), 0, "ee26321");
+ check_base_class_offset(lv, (dd6321*), 0, "ee26321");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee26321.e");
+ test_class_info(&lv, &cd_ee26321);
+ dp->~ee26321();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26321(Test_ee26321, "ee26321", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee26321C1Ev();
+extern void _ZN7ee26321D1Ev();
+Name_Map name_map_ee26321[] = {
+ NSPAIR(_ZN7ee26321C1Ev),
+ NSPAIR(_ZN7ee26321D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc321;
+extern VTBL_ENTRY _ZTI5cc321[];
+extern VTBL_ENTRY _ZTV5cc321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc321[];
+extern Class_Descriptor cd_dd6321;
+extern VTBL_ENTRY _ZTI6dd6321[];
+extern VTBL_ENTRY _ZTV6dd6321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6321[];
+static Base_Class bases_ee26321[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc321, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6321, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee26321[];
+extern void _ZN7ee263213fooEv();
+extern void _ZN6dd63213barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee263213fooEv,_ZTv0_n12_N7ee263213fooEv)();
+extern void ABISELECT(_ZThn24_N7ee263213fooEv,_ZThn16_N7ee263213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee26321[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26321[0]),
+ (VTBL_ENTRY)&_ZN7ee263213fooEv,
+ (VTBL_ENTRY)&_ZN6dd63213barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee26321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee263213fooEv,_ZTv0_n12_N7ee263213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee26321[];
+extern void _ZN6dd63213fooEv();
+extern void _ZN6dd63213barEv();
+static VTBL_ENTRY _tg__ZTV6dd6321__7ee26321[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6321[0]),
+ (VTBL_ENTRY)&_ZN6dd63213fooEv,
+ (VTBL_ENTRY)&_ZN6dd63213barEv,
+};
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3216dd6321__7ee26321[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3213fooEv,_ZThn16_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc3216dd6321__7ee26321[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd63213fooEv,_ZTv0_n12_N6dd63213fooEv)();
+extern void ABISELECT(_ZThn24_N6dd63213fooEv,_ZThn16_N6dd63213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd6321__7ee26321[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63213fooEv,_ZTv0_n12_N6dd63213fooEv),
+};
+static VTT_ENTRY vtt_ee26321[] = {
+ {&(_ZTV7ee26321[3]), 3,9},
+ {&(_tg__ZTV6dd6321__7ee26321[3]), 3,5},
+ {&(_tg__ZTV5cc3216dd6321__7ee26321[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc3216dd6321__7ee26321[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd6321__7ee26321[3]), 3,4},
+ {&(_ZTV7ee26321[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee26321[];
+extern VTBL_ENTRY _ZTV7ee26321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee26321[];
+static VTBL_ENTRY alt_thunk_names612[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63213fooEv,_ZTv0_n12_N6dd63213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63213fooEv,_ZThn16_N6dd63213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3213fooEv,_ZThn16_N5cc3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee263213fooEv,_ZTv0_n12_N7ee263213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee263213fooEv,_ZThn16_N7ee263213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee26321 = { "ee26321", // class name
+ bases_ee26321, 4,
+ &(vtc_ee26321[0]), // expected_vtbl_contents
+ &(vtt_ee26321[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee26321),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26321),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee26321),6, //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 ee36321 : virtual dd6321 {
+ int e;
+ virtual void foo(); // _ZN7ee363213fooEv
+ ~ee36321(); // tgen
+ ee36321(); // tgen
+};
+//SIG(1 ee36321) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36321 ::foo(){vfunc_called(this, "_ZN7ee363213fooEv");}
+ee36321 ::~ee36321(){ note_dtor("ee36321", this);} // tgen
+ee36321 ::ee36321(){ note_ctor("ee36321", this);} // tgen
+
+static void Test_ee36321()
+{
+ extern Class_Descriptor cd_ee36321;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee36321, buf);
+ ee36321 *dp, &lv = *(dp=new (buf) ee36321());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee36321)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36321)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee36321");
+ check_base_class_offset(lv, (bb21*)(cc321*)(dd6321*), ABISELECT(32,20), "ee36321");
+ check_base_class_offset(lv, (cc321*)(dd6321*), ABISELECT(16,8), "ee36321");
+ check_base_class_offset(lv, (dd6321*), ABISELECT(16,8), "ee36321");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36321.e");
+ test_class_info(&lv, &cd_ee36321);
+ dp->~ee36321();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36321(Test_ee36321, "ee36321", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee36321C1Ev();
+extern void _ZN7ee36321D1Ev();
+Name_Map name_map_ee36321[] = {
+ NSPAIR(_ZN7ee36321C1Ev),
+ NSPAIR(_ZN7ee36321D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc321;
+extern VTBL_ENTRY _ZTI5cc321[];
+extern VTBL_ENTRY _ZTV5cc321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc321[];
+extern Class_Descriptor cd_dd6321;
+extern VTBL_ENTRY _ZTI6dd6321[];
+extern VTBL_ENTRY _ZTV6dd6321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6321[];
+static Base_Class bases_ee36321[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc321, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6321, 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 _ZTI7ee36321[];
+extern void _ZN7ee363213fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee363213fooEv,_ZTv0_n16_N7ee363213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee363213fooEv,_ZThn8_N7ee363213fooEv)() __attribute__((weak));
+extern void _ZN6dd63213barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee363213fooEv,_ZTv0_n12_N7ee363213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee363213fooEv,_ZThn20_N7ee363213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee36321[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36321[0]),
+ (VTBL_ENTRY)&_ZN7ee363213fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee363213fooEv,_ZTv0_n16_N7ee363213fooEv),
+ (VTBL_ENTRY)&_ZN6dd63213barEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee36321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee363213fooEv,_ZTv0_n12_N7ee363213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee36321[];
+extern void _ZN6dd63213fooEv();
+extern void _ZN6dd63213barEv();
+static VTBL_ENTRY _tg__ZTV6dd6321__7ee36321[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6321[0]),
+ (VTBL_ENTRY)&_ZN6dd63213fooEv,
+ (VTBL_ENTRY)&_ZN6dd63213barEv,
+};
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3216dd6321__7ee36321[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn12_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc3216dd6321__7ee36321[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd63213fooEv,_ZTv0_n12_N6dd63213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd63213fooEv,_ZThn12_N6dd63213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd6321__7ee36321[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63213fooEv,_ZTv0_n12_N6dd63213fooEv),
+};
+static VTT_ENTRY vtt_ee36321[] = {
+ {&(_ZTV7ee36321[4]), 4,16},
+ {&(_ZTV7ee36321[10]), 10,16},
+ {&(_ZTV7ee36321[15]), 15,16},
+ {&(_tg__ZTV6dd6321__7ee36321[3]), 3,5},
+ {&(_tg__ZTV5cc3216dd6321__7ee36321[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc3216dd6321__7ee36321[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd6321__7ee36321[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee36321[];
+extern VTBL_ENTRY _ZTV7ee36321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36321[];
+static VTBL_ENTRY alt_thunk_names613[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63213fooEv,_ZTv0_n12_N6dd63213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63213fooEv,_ZThn12_N6dd63213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn12_N5cc3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee363213fooEv,_ZTv0_n12_N7ee363213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee363213fooEv,_ZThn20_N7ee363213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee363213fooEv,_ZTv0_n16_N7ee363213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee363213fooEv,_ZThn8_N7ee363213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36321 = { "ee36321", // class name
+ bases_ee36321, 4,
+ &(vtc_ee36321[0]), // expected_vtbl_contents
+ &(vtt_ee36321[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee36321),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36321),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36321),7, //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 ee46321 : dd6321 {
+ int e;
+ virtual void bar(); // _ZN7ee463213barEv
+ ~ee46321(); // tgen
+ ee46321(); // tgen
+};
+//SIG(1 ee46321) C1{ BC2{ BC3{ VBC4{ BC5{ v2 Fi} v2 Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46321 ::bar(){vfunc_called(this, "_ZN7ee463213barEv");}
+ee46321 ::~ee46321(){ note_dtor("ee46321", this);} // tgen
+ee46321 ::ee46321(){ note_ctor("ee46321", this);} // tgen
+
+static void Test_ee46321()
+{
+ extern Class_Descriptor cd_ee46321;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee46321, buf);
+ ee46321 *dp, &lv = *(dp=new (buf) ee46321());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee46321)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46321)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(24,16), "ee46321");
+ check_base_class_offset(lv, (bb21*)(cc321*)(dd6321*), ABISELECT(24,16), "ee46321");
+ check_base_class_offset(lv, (cc321*)(dd6321*), 0, "ee46321");
+ check_base_class_offset(lv, (dd6321*), 0, "ee46321");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee46321.e");
+ test_class_info(&lv, &cd_ee46321);
+ dp->~ee46321();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46321(Test_ee46321, "ee46321", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee46321C1Ev();
+extern void _ZN7ee46321D1Ev();
+Name_Map name_map_ee46321[] = {
+ NSPAIR(_ZN7ee46321C1Ev),
+ NSPAIR(_ZN7ee46321D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc321;
+extern VTBL_ENTRY _ZTI5cc321[];
+extern VTBL_ENTRY _ZTV5cc321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc321[];
+extern Class_Descriptor cd_dd6321;
+extern VTBL_ENTRY _ZTI6dd6321[];
+extern VTBL_ENTRY _ZTV6dd6321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6321[];
+static Base_Class bases_ee46321[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc321, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6321, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee46321[];
+extern void _ZN6dd63213fooEv();
+extern void _ZN7ee463213barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd63213fooEv,_ZTv0_n12_N6dd63213fooEv)();
+extern void ABISELECT(_ZThn24_N6dd63213fooEv,_ZThn16_N6dd63213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee46321[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46321[0]),
+ (VTBL_ENTRY)&_ZN6dd63213fooEv,
+ (VTBL_ENTRY)&_ZN7ee463213barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee46321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63213fooEv,_ZTv0_n12_N6dd63213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee46321[];
+extern void _ZN6dd63213fooEv();
+extern void _ZN6dd63213barEv();
+static VTBL_ENTRY _tg__ZTV6dd6321__7ee46321[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6321[0]),
+ (VTBL_ENTRY)&_ZN6dd63213fooEv,
+ (VTBL_ENTRY)&_ZN6dd63213barEv,
+};
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3216dd6321__7ee46321[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3213fooEv,_ZThn16_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc3216dd6321__7ee46321[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd63213fooEv,_ZTv0_n12_N6dd63213fooEv)();
+extern void ABISELECT(_ZThn24_N6dd63213fooEv,_ZThn16_N6dd63213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd6321__7ee46321[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63213fooEv,_ZTv0_n12_N6dd63213fooEv),
+};
+static VTT_ENTRY vtt_ee46321[] = {
+ {&(_ZTV7ee46321[3]), 3,9},
+ {&(_tg__ZTV6dd6321__7ee46321[3]), 3,5},
+ {&(_tg__ZTV5cc3216dd6321__7ee46321[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc3216dd6321__7ee46321[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd6321__7ee46321[3]), 3,4},
+ {&(_ZTV7ee46321[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee46321[];
+extern VTBL_ENTRY _ZTV7ee46321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee46321[];
+static VTBL_ENTRY alt_thunk_names614[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3213fooEv,_ZThn16_N5cc3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63213fooEv,_ZTv0_n12_N6dd63213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63213fooEv,_ZThn16_N6dd63213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63213fooEv,_ZThn16_N6dd63213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee46321 = { "ee46321", // class name
+ bases_ee46321, 4,
+ &(vtc_ee46321[0]), // expected_vtbl_contents
+ &(vtt_ee46321[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee46321),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46321),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee46321),6, //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 ee56321 : virtual dd6321 {
+ int e;
+ virtual void bar(); // _ZN7ee563213barEv
+ ~ee56321(); // tgen
+ ee56321(); // tgen
+};
+//SIG(1 ee56321) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 Fi} v2 Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56321 ::bar(){vfunc_called(this, "_ZN7ee563213barEv");}
+ee56321 ::~ee56321(){ note_dtor("ee56321", this);} // tgen
+ee56321 ::ee56321(){ note_ctor("ee56321", this);} // tgen
+
+static void Test_ee56321()
+{
+ extern Class_Descriptor cd_ee56321;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee56321, buf);
+ ee56321 *dp, &lv = *(dp=new (buf) ee56321());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee56321)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56321)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee56321");
+ check_base_class_offset(lv, (bb21*)(cc321*)(dd6321*), ABISELECT(32,20), "ee56321");
+ check_base_class_offset(lv, (cc321*)(dd6321*), ABISELECT(16,8), "ee56321");
+ check_base_class_offset(lv, (dd6321*), ABISELECT(16,8), "ee56321");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56321.e");
+ test_class_info(&lv, &cd_ee56321);
+ dp->~ee56321();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56321(Test_ee56321, "ee56321", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee56321C1Ev();
+extern void _ZN7ee56321D1Ev();
+Name_Map name_map_ee56321[] = {
+ NSPAIR(_ZN7ee56321C1Ev),
+ NSPAIR(_ZN7ee56321D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc321;
+extern VTBL_ENTRY _ZTI5cc321[];
+extern VTBL_ENTRY _ZTV5cc321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc321[];
+extern Class_Descriptor cd_dd6321;
+extern VTBL_ENTRY _ZTI6dd6321[];
+extern VTBL_ENTRY _ZTV6dd6321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6321[];
+static Base_Class bases_ee56321[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc321, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6321, 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 _ZTI7ee56321[];
+extern void _ZN7ee563213barEv();
+extern void _ZN6dd63213fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee563213barEv,_ZTv0_n20_N7ee563213barEv)();
+extern void ABISELECT(_ZThn16_N7ee563213barEv,_ZThn8_N7ee563213barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd63213fooEv,_ZTv0_n12_N6dd63213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd63213fooEv,_ZThn12_N6dd63213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56321[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56321[0]),
+ (VTBL_ENTRY)&_ZN7ee563213barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56321[0]),
+ (VTBL_ENTRY)&_ZN6dd63213fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee563213barEv,_ZTv0_n20_N7ee563213barEv),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee56321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63213fooEv,_ZTv0_n12_N6dd63213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee56321[];
+extern void _ZN6dd63213fooEv();
+extern void _ZN6dd63213barEv();
+static VTBL_ENTRY _tg__ZTV6dd6321__7ee56321[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6321[0]),
+ (VTBL_ENTRY)&_ZN6dd63213fooEv,
+ (VTBL_ENTRY)&_ZN6dd63213barEv,
+};
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3216dd6321__7ee56321[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn12_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc3216dd6321__7ee56321[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd63213fooEv,_ZTv0_n12_N6dd63213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd63213fooEv,_ZThn12_N6dd63213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd6321__7ee56321[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63213fooEv,_ZTv0_n12_N6dd63213fooEv),
+};
+static VTT_ENTRY vtt_ee56321[] = {
+ {&(_ZTV7ee56321[4]), 4,16},
+ {&(_ZTV7ee56321[10]), 10,16},
+ {&(_ZTV7ee56321[15]), 15,16},
+ {&(_tg__ZTV6dd6321__7ee56321[3]), 3,5},
+ {&(_tg__ZTV5cc3216dd6321__7ee56321[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc3216dd6321__7ee56321[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd6321__7ee56321[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee56321[];
+extern VTBL_ENTRY _ZTV7ee56321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56321[];
+static VTBL_ENTRY alt_thunk_names615[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn12_N5cc3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63213fooEv,_ZTv0_n12_N6dd63213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63213fooEv,_ZThn12_N6dd63213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63213fooEv,_ZThn12_N6dd63213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee563213barEv,_ZTv0_n20_N7ee563213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee563213barEv,_ZThn8_N7ee563213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56321 = { "ee56321", // class name
+ bases_ee56321, 4,
+ &(vtc_ee56321[0]), // expected_vtbl_contents
+ &(vtt_ee56321[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee56321),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56321),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56321),7, //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 ee66321 : dd6321 {
+ int e;
+ virtual void foo(); // _ZN7ee663213fooEv
+ virtual void bar(); // _ZN7ee663213barEv
+ ~ee66321(); // tgen
+ ee66321(); // tgen
+};
+//SIG(1 ee66321) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66321 ::foo(){vfunc_called(this, "_ZN7ee663213fooEv");}
+void ee66321 ::bar(){vfunc_called(this, "_ZN7ee663213barEv");}
+ee66321 ::~ee66321(){ note_dtor("ee66321", this);} // tgen
+ee66321 ::ee66321(){ note_ctor("ee66321", this);} // tgen
+
+static void Test_ee66321()
+{
+ extern Class_Descriptor cd_ee66321;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee66321, buf);
+ ee66321 *dp, &lv = *(dp=new (buf) ee66321());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee66321)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66321)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(24,16), "ee66321");
+ check_base_class_offset(lv, (bb21*)(cc321*)(dd6321*), ABISELECT(24,16), "ee66321");
+ check_base_class_offset(lv, (cc321*)(dd6321*), 0, "ee66321");
+ check_base_class_offset(lv, (dd6321*), 0, "ee66321");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee66321.e");
+ test_class_info(&lv, &cd_ee66321);
+ dp->~ee66321();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66321(Test_ee66321, "ee66321", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee66321C1Ev();
+extern void _ZN7ee66321D1Ev();
+Name_Map name_map_ee66321[] = {
+ NSPAIR(_ZN7ee66321C1Ev),
+ NSPAIR(_ZN7ee66321D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc321;
+extern VTBL_ENTRY _ZTI5cc321[];
+extern VTBL_ENTRY _ZTV5cc321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc321[];
+extern Class_Descriptor cd_dd6321;
+extern VTBL_ENTRY _ZTI6dd6321[];
+extern VTBL_ENTRY _ZTV6dd6321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6321[];
+static Base_Class bases_ee66321[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc321, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6321, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee66321[];
+extern void _ZN7ee663213fooEv();
+extern void _ZN7ee663213barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee663213fooEv,_ZTv0_n12_N7ee663213fooEv)();
+extern void ABISELECT(_ZThn24_N7ee663213fooEv,_ZThn16_N7ee663213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee66321[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66321[0]),
+ (VTBL_ENTRY)&_ZN7ee663213fooEv,
+ (VTBL_ENTRY)&_ZN7ee663213barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee66321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee663213fooEv,_ZTv0_n12_N7ee663213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee66321[];
+extern void _ZN6dd63213fooEv();
+extern void _ZN6dd63213barEv();
+static VTBL_ENTRY _tg__ZTV6dd6321__7ee66321[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6321[0]),
+ (VTBL_ENTRY)&_ZN6dd63213fooEv,
+ (VTBL_ENTRY)&_ZN6dd63213barEv,
+};
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3216dd6321__7ee66321[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3213fooEv,_ZThn16_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc3216dd6321__7ee66321[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd63213fooEv,_ZTv0_n12_N6dd63213fooEv)();
+extern void ABISELECT(_ZThn24_N6dd63213fooEv,_ZThn16_N6dd63213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd6321__7ee66321[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63213fooEv,_ZTv0_n12_N6dd63213fooEv),
+};
+static VTT_ENTRY vtt_ee66321[] = {
+ {&(_ZTV7ee66321[3]), 3,9},
+ {&(_tg__ZTV6dd6321__7ee66321[3]), 3,5},
+ {&(_tg__ZTV5cc3216dd6321__7ee66321[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc3216dd6321__7ee66321[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd6321__7ee66321[3]), 3,4},
+ {&(_ZTV7ee66321[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee66321[];
+extern VTBL_ENTRY _ZTV7ee66321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee66321[];
+static VTBL_ENTRY alt_thunk_names616[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63213fooEv,_ZTv0_n12_N6dd63213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63213fooEv,_ZThn16_N6dd63213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3213fooEv,_ZThn16_N5cc3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee663213fooEv,_ZTv0_n12_N7ee663213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee663213fooEv,_ZThn16_N7ee663213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee66321 = { "ee66321", // class name
+ bases_ee66321, 4,
+ &(vtc_ee66321[0]), // expected_vtbl_contents
+ &(vtt_ee66321[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee66321),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66321),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee66321),6, //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 ee76321 : virtual dd6321 {
+ int e;
+ virtual void foo(); // _ZN7ee763213fooEv
+ virtual void bar(); // _ZN7ee763213barEv
+ ~ee76321(); // tgen
+ ee76321(); // tgen
+};
+//SIG(1 ee76321) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76321 ::foo(){vfunc_called(this, "_ZN7ee763213fooEv");}
+void ee76321 ::bar(){vfunc_called(this, "_ZN7ee763213barEv");}
+ee76321 ::~ee76321(){ note_dtor("ee76321", this);} // tgen
+ee76321 ::ee76321(){ note_ctor("ee76321", this);} // tgen
+
+static void Test_ee76321()
+{
+ extern Class_Descriptor cd_ee76321;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee76321, buf);
+ ee76321 *dp, &lv = *(dp=new (buf) ee76321());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee76321)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76321)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee76321");
+ check_base_class_offset(lv, (bb21*)(cc321*)(dd6321*), ABISELECT(32,20), "ee76321");
+ check_base_class_offset(lv, (cc321*)(dd6321*), ABISELECT(16,8), "ee76321");
+ check_base_class_offset(lv, (dd6321*), ABISELECT(16,8), "ee76321");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76321.e");
+ test_class_info(&lv, &cd_ee76321);
+ dp->~ee76321();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76321(Test_ee76321, "ee76321", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee76321C1Ev();
+extern void _ZN7ee76321D1Ev();
+Name_Map name_map_ee76321[] = {
+ NSPAIR(_ZN7ee76321C1Ev),
+ NSPAIR(_ZN7ee76321D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc321;
+extern VTBL_ENTRY _ZTI5cc321[];
+extern VTBL_ENTRY _ZTV5cc321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc321[];
+extern Class_Descriptor cd_dd6321;
+extern VTBL_ENTRY _ZTI6dd6321[];
+extern VTBL_ENTRY _ZTV6dd6321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6321[];
+static Base_Class bases_ee76321[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc321, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6321, ABISELECT(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 _ZTI7ee76321[];
+extern void _ZN7ee763213fooEv();
+extern void _ZN7ee763213barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee763213fooEv,_ZTv0_n16_N7ee763213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee763213fooEv,_ZThn8_N7ee763213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee763213barEv,_ZTv0_n20_N7ee763213barEv)();
+extern void ABISELECT(_ZThn16_N7ee763213barEv,_ZThn8_N7ee763213barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee763213fooEv,_ZTv0_n12_N7ee763213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee763213fooEv,_ZThn20_N7ee763213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76321[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76321[0]),
+ (VTBL_ENTRY)&_ZN7ee763213fooEv,
+ (VTBL_ENTRY)&_ZN7ee763213barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee763213fooEv,_ZTv0_n16_N7ee763213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee763213barEv,_ZTv0_n20_N7ee763213barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee76321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee763213fooEv,_ZTv0_n12_N7ee763213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee76321[];
+extern void _ZN6dd63213fooEv();
+extern void _ZN6dd63213barEv();
+static VTBL_ENTRY _tg__ZTV6dd6321__7ee76321[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6321[0]),
+ (VTBL_ENTRY)&_ZN6dd63213fooEv,
+ (VTBL_ENTRY)&_ZN6dd63213barEv,
+};
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3216dd6321__7ee76321[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn12_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc3216dd6321__7ee76321[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd63213fooEv,_ZTv0_n12_N6dd63213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd63213fooEv,_ZThn12_N6dd63213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd6321__7ee76321[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63213fooEv,_ZTv0_n12_N6dd63213fooEv),
+};
+static VTT_ENTRY vtt_ee76321[] = {
+ {&(_ZTV7ee76321[4]), 4,17},
+ {&(_ZTV7ee76321[11]), 11,17},
+ {&(_ZTV7ee76321[16]), 16,17},
+ {&(_tg__ZTV6dd6321__7ee76321[3]), 3,5},
+ {&(_tg__ZTV5cc3216dd6321__7ee76321[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc3216dd6321__7ee76321[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd6321__7ee76321[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee76321[];
+extern VTBL_ENTRY _ZTV7ee76321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76321[];
+static VTBL_ENTRY alt_thunk_names617[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63213fooEv,_ZTv0_n12_N6dd63213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63213fooEv,_ZThn12_N6dd63213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn12_N5cc3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee763213fooEv,_ZTv0_n12_N7ee763213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee763213fooEv,_ZThn20_N7ee763213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee763213barEv,_ZTv0_n20_N7ee763213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee763213barEv,_ZThn8_N7ee763213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee763213fooEv,_ZTv0_n16_N7ee763213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee763213fooEv,_ZThn8_N7ee763213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76321 = { "ee76321", // class name
+ bases_ee76321, 4,
+ &(vtc_ee76321[0]), // expected_vtbl_contents
+ &(vtt_ee76321[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee76321),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76321),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76321),7, //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 dd7321 : virtual cc321 {
+ int d;
+ virtual void bar(); // _ZN6dd73213barEv
+ virtual void foo(); // _ZN6dd73213fooEv
+ ~dd7321(); // tgen
+ dd7321(); // tgen
+};
+//SIG(-1 dd7321) C1{ VBC2{ VBC3{ BC4{ v2 Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void dd7321 ::bar(){vfunc_called(this, "_ZN6dd73213barEv");}
+void dd7321 ::foo(){vfunc_called(this, "_ZN6dd73213fooEv");}
+dd7321 ::~dd7321(){ note_dtor("dd7321", this);} // tgen
+dd7321 ::dd7321(){ note_ctor("dd7321", this);} // tgen
+
+static void Test_dd7321()
+{
+ extern Class_Descriptor cd_dd7321;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd7321, buf);
+ dd7321 *dp, &lv = *(dp=new (buf) dd7321());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd7321)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7321)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,16), "dd7321");
+ check_base_class_offset(lv, (bb21*)(cc321*), ABISELECT(32,16), "dd7321");
+ check_base_class_offset(lv, (cc321*), ABISELECT(16,8), "dd7321");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7321.d");
+ test_class_info(&lv, &cd_dd7321);
+ dp->~dd7321();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7321(Test_dd7321, "dd7321", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd7321C1Ev();
+extern void _ZN6dd7321D1Ev();
+Name_Map name_map_dd7321[] = {
+ NSPAIR(_ZN6dd7321C1Ev),
+ NSPAIR(_ZN6dd7321D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc321;
+extern VTBL_ENTRY _ZTI5cc321[];
+extern VTBL_ENTRY _ZTV5cc321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc321[];
+static Base_Class bases_dd7321[] = {
+ // 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_bb21, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc321, 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 _ZTI6dd7321[];
+extern void _ZN6dd73213barEv();
+extern void _ZN6dd73213fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd73213fooEv,_ZTv0_n16_N6dd73213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73213fooEv,_ZThn8_N6dd73213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd73213fooEv,_ZTv0_n12_N6dd73213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73213fooEv,_ZThn16_N6dd73213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7321[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7321[0]),
+ (VTBL_ENTRY)&_ZN6dd73213barEv,
+ (VTBL_ENTRY)&_ZN6dd73213fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73213fooEv,_ZTv0_n16_N6dd73213fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73213fooEv,_ZTv0_n12_N6dd73213fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd7321[];
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc321__6dd7321[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc321__6dd7321[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+static VTT_ENTRY vtt_dd7321[] = {
+ {&(_ZTV6dd7321[4]), 4,15},
+ {&(_ZTV6dd7321[10]), 10,15},
+ {&(_ZTV6dd7321[14]), 14,15},
+ {&(_tg__ZTV5cc321__6dd7321[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc321__6dd7321[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd7321[];
+extern VTBL_ENTRY _ZTV6dd7321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7321[];
+static VTBL_ENTRY alt_thunk_names618[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73213fooEv,_ZTv0_n12_N6dd73213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73213fooEv,_ZThn16_N6dd73213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73213fooEv,_ZTv0_n16_N6dd73213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73213fooEv,_ZThn8_N6dd73213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7321 = { "dd7321", // class name
+ bases_dd7321, 3,
+ &(vtc_dd7321[0]), // expected_vtbl_contents
+ &(vtt_dd7321[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd7321),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7321),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7321),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names618,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07321 : dd7321 {
+ int e;
+ ~ee07321(); // tgen
+ ee07321(); // tgen
+};
+//SIG(1 ee07321) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 Fi} v2 Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee07321 ::~ee07321(){ note_dtor("ee07321", this);} // tgen
+ee07321 ::ee07321(){ note_ctor("ee07321", this);} // tgen
+
+static void Test_ee07321()
+{
+ extern Class_Descriptor cd_ee07321;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee07321, buf);
+ ee07321 *dp, &lv = *(dp=new (buf) ee07321());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee07321)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07321)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee07321");
+ check_base_class_offset(lv, (bb21*)(cc321*), ABISELECT(32,20), "ee07321");
+ check_base_class_offset(lv, (cc321*)(dd7321*), ABISELECT(16,12), "ee07321");
+ check_base_class_offset(lv, (dd7321*), 0, "ee07321");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07321.e");
+ test_class_info(&lv, &cd_ee07321);
+ dp->~ee07321();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07321(Test_ee07321, "ee07321", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee07321C1Ev();
+extern void _ZN7ee07321D1Ev();
+Name_Map name_map_ee07321[] = {
+ NSPAIR(_ZN7ee07321C1Ev),
+ NSPAIR(_ZN7ee07321D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc321;
+extern VTBL_ENTRY _ZTI5cc321[];
+extern VTBL_ENTRY _ZTV5cc321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc321[];
+extern Class_Descriptor cd_dd7321;
+extern VTBL_ENTRY _ZTI6dd7321[];
+extern VTBL_ENTRY _ZTV6dd7321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7321[];
+static Base_Class bases_ee07321[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc321, 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_dd7321, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07321[];
+extern void _ZN6dd73213barEv();
+extern void _ZN6dd73213fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd73213fooEv,_ZTv0_n16_N6dd73213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73213fooEv,_ZThn12_N6dd73213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd73213fooEv,_ZTv0_n12_N6dd73213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73213fooEv,_ZThn20_N6dd73213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07321[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07321[0]),
+ (VTBL_ENTRY)&_ZN6dd73213barEv,
+ (VTBL_ENTRY)&_ZN6dd73213fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73213fooEv,_ZTv0_n16_N6dd73213fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee07321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73213fooEv,_ZTv0_n12_N6dd73213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee07321[];
+extern void _ZN6dd73213barEv();
+extern void _ZN6dd73213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7321__7ee07321[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7321[0]),
+ (VTBL_ENTRY)&_ZN6dd73213barEv,
+ (VTBL_ENTRY)&_ZN6dd73213fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73213fooEv,_ZTv0_n16_N6dd73213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73213fooEv,_ZThn12_N6dd73213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc321__6dd7321__7ee07321[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73213fooEv,_ZTv0_n16_N6dd73213fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd73213fooEv,_ZTv0_n12_N6dd73213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73213fooEv,_ZThn20_N6dd73213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd7321__7ee07321[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73213fooEv,_ZTv0_n12_N6dd73213fooEv),
+};
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc321__7ee07321[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc321__7ee07321[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+static VTT_ENTRY vtt_ee07321[] = {
+ {&(_ZTV7ee07321[4]), 4,15},
+ {&(_tg__ZTV6dd7321__7ee07321[4]), 4,6},
+ {&(_tg__ZTV5cc321__6dd7321__7ee07321[4]), 4,5},
+ {&(_tg__ZTV4bb21__6dd7321__7ee07321[3]), 3,4},
+ {&(_ZTV7ee07321[10]), 10,15},
+ {&(_ZTV7ee07321[14]), 14,15},
+ {&(_tg__ZTV5cc321__7ee07321[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc321__7ee07321[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee07321[];
+extern VTBL_ENTRY _ZTV7ee07321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07321[];
+static VTBL_ENTRY alt_thunk_names619[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73213fooEv,_ZTv0_n12_N6dd73213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73213fooEv,_ZThn20_N6dd73213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73213fooEv,_ZThn20_N6dd73213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73213fooEv,_ZTv0_n16_N6dd73213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73213fooEv,_ZThn12_N6dd73213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73213fooEv,_ZThn12_N6dd73213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07321 = { "ee07321", // class name
+ bases_ee07321, 4,
+ &(vtc_ee07321[0]), // expected_vtbl_contents
+ &(vtt_ee07321[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee07321),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07321),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07321),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names619,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee17321 : virtual dd7321 {
+ int e;
+ ~ee17321(); // tgen
+ ee17321(); // tgen
+};
+//SIG(1 ee17321) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 Fi} v2 Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee17321 ::~ee17321(){ note_dtor("ee17321", this);} // tgen
+ee17321 ::ee17321(){ note_ctor("ee17321", this);} // tgen
+
+static void Test_ee17321()
+{
+ extern Class_Descriptor cd_ee17321;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee17321, buf);
+ ee17321 *dp, &lv = *(dp=new (buf) ee17321());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee17321)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17321)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(48,24), "ee17321");
+ check_base_class_offset(lv, (bb21*)(cc321*), ABISELECT(48,24), "ee17321");
+ check_base_class_offset(lv, (cc321*)(dd7321*), ABISELECT(32,16), "ee17321");
+ check_base_class_offset(lv, (dd7321*), ABISELECT(16,8), "ee17321");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17321.e");
+ test_class_info(&lv, &cd_ee17321);
+ dp->~ee17321();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17321(Test_ee17321, "ee17321", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee17321C1Ev();
+extern void _ZN7ee17321D1Ev();
+Name_Map name_map_ee17321[] = {
+ NSPAIR(_ZN7ee17321C1Ev),
+ NSPAIR(_ZN7ee17321D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc321;
+extern VTBL_ENTRY _ZTI5cc321[];
+extern VTBL_ENTRY _ZTV5cc321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc321[];
+extern Class_Descriptor cd_dd7321;
+extern VTBL_ENTRY _ZTI6dd7321[];
+extern VTBL_ENTRY _ZTV6dd7321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7321[];
+static Base_Class bases_ee17321[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb21, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc321, 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_dd7321, 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 _ZTI7ee17321[];
+extern void _ZN6dd73213barEv();
+extern void _ZN6dd73213fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd73213fooEv,_ZTv0_n16_N6dd73213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73213fooEv,_ZThn8_N6dd73213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd73213fooEv,_ZTv0_n12_N6dd73213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73213fooEv,_ZThn16_N6dd73213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17321[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17321[0]),
+ 0,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17321[0]),
+ (VTBL_ENTRY)&_ZN6dd73213barEv,
+ (VTBL_ENTRY)&_ZN6dd73213fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73213fooEv,_ZTv0_n16_N6dd73213fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee17321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73213fooEv,_ZTv0_n12_N6dd73213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee17321[];
+extern void _ZN6dd73213barEv();
+extern void _ZN6dd73213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7321__7ee17321[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7321[0]),
+ (VTBL_ENTRY)&_ZN6dd73213barEv,
+ (VTBL_ENTRY)&_ZN6dd73213fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73213fooEv,_ZTv0_n16_N6dd73213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73213fooEv,_ZThn8_N6dd73213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc321__6dd7321__7ee17321[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73213fooEv,_ZTv0_n16_N6dd73213fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd73213fooEv,_ZTv0_n12_N6dd73213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73213fooEv,_ZThn16_N6dd73213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd7321__7ee17321[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73213fooEv,_ZTv0_n12_N6dd73213fooEv),
+};
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc321__7ee17321[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc321__7ee17321[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+static VTT_ENTRY vtt_ee17321[] = {
+ {&(_ZTV7ee17321[5]), 5,22},
+ {&(_ZTV7ee17321[11]), 11,22},
+ {&(_ZTV7ee17321[17]), 17,22},
+ {&(_ZTV7ee17321[21]), 21,22},
+ {&(_tg__ZTV6dd7321__7ee17321[4]), 4,6},
+ {&(_tg__ZTV5cc321__6dd7321__7ee17321[4]), 4,5},
+ {&(_tg__ZTV4bb21__6dd7321__7ee17321[3]), 3,4},
+ {&(_tg__ZTV5cc321__7ee17321[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc321__7ee17321[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee17321[];
+extern VTBL_ENTRY _ZTV7ee17321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17321[];
+static VTBL_ENTRY alt_thunk_names620[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73213fooEv,_ZTv0_n12_N6dd73213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73213fooEv,_ZThn16_N6dd73213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73213fooEv,_ZThn16_N6dd73213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73213fooEv,_ZTv0_n16_N6dd73213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73213fooEv,_ZThn8_N6dd73213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73213fooEv,_ZThn8_N6dd73213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17321 = { "ee17321", // class name
+ bases_ee17321, 4,
+ &(vtc_ee17321[0]), // expected_vtbl_contents
+ &(vtt_ee17321[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee17321),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17321),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17321),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names620,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee27321 : dd7321 {
+ int e;
+ virtual void foo(); // _ZN7ee273213fooEv
+ ~ee27321(); // tgen
+ ee27321(); // tgen
+};
+//SIG(1 ee27321) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27321 ::foo(){vfunc_called(this, "_ZN7ee273213fooEv");}
+ee27321 ::~ee27321(){ note_dtor("ee27321", this);} // tgen
+ee27321 ::ee27321(){ note_ctor("ee27321", this);} // tgen
+
+static void Test_ee27321()
+{
+ extern Class_Descriptor cd_ee27321;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee27321, buf);
+ ee27321 *dp, &lv = *(dp=new (buf) ee27321());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee27321)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27321)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee27321");
+ check_base_class_offset(lv, (bb21*)(cc321*), ABISELECT(32,20), "ee27321");
+ check_base_class_offset(lv, (cc321*)(dd7321*), ABISELECT(16,12), "ee27321");
+ check_base_class_offset(lv, (dd7321*), 0, "ee27321");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27321.e");
+ test_class_info(&lv, &cd_ee27321);
+ dp->~ee27321();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27321(Test_ee27321, "ee27321", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee27321C1Ev();
+extern void _ZN7ee27321D1Ev();
+Name_Map name_map_ee27321[] = {
+ NSPAIR(_ZN7ee27321C1Ev),
+ NSPAIR(_ZN7ee27321D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc321;
+extern VTBL_ENTRY _ZTI5cc321[];
+extern VTBL_ENTRY _ZTV5cc321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc321[];
+extern Class_Descriptor cd_dd7321;
+extern VTBL_ENTRY _ZTI6dd7321[];
+extern VTBL_ENTRY _ZTV6dd7321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7321[];
+static Base_Class bases_ee27321[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc321, 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_dd7321, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27321[];
+extern void _ZN6dd73213barEv();
+extern void _ZN7ee273213fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee273213fooEv,_ZTv0_n16_N7ee273213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee273213fooEv,_ZThn12_N7ee273213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee273213fooEv,_ZTv0_n12_N7ee273213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee273213fooEv,_ZThn20_N7ee273213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27321[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27321[0]),
+ (VTBL_ENTRY)&_ZN6dd73213barEv,
+ (VTBL_ENTRY)&_ZN7ee273213fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee273213fooEv,_ZTv0_n16_N7ee273213fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee27321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee273213fooEv,_ZTv0_n12_N7ee273213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee27321[];
+extern void _ZN6dd73213barEv();
+extern void _ZN6dd73213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7321__7ee27321[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7321[0]),
+ (VTBL_ENTRY)&_ZN6dd73213barEv,
+ (VTBL_ENTRY)&_ZN6dd73213fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73213fooEv,_ZTv0_n16_N6dd73213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73213fooEv,_ZThn12_N6dd73213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc321__6dd7321__7ee27321[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73213fooEv,_ZTv0_n16_N6dd73213fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd73213fooEv,_ZTv0_n12_N6dd73213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73213fooEv,_ZThn20_N6dd73213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd7321__7ee27321[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73213fooEv,_ZTv0_n12_N6dd73213fooEv),
+};
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc321__7ee27321[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc321__7ee27321[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+static VTT_ENTRY vtt_ee27321[] = {
+ {&(_ZTV7ee27321[4]), 4,15},
+ {&(_tg__ZTV6dd7321__7ee27321[4]), 4,6},
+ {&(_tg__ZTV5cc321__6dd7321__7ee27321[4]), 4,5},
+ {&(_tg__ZTV4bb21__6dd7321__7ee27321[3]), 3,4},
+ {&(_ZTV7ee27321[10]), 10,15},
+ {&(_ZTV7ee27321[14]), 14,15},
+ {&(_tg__ZTV5cc321__7ee27321[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc321__7ee27321[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee27321[];
+extern VTBL_ENTRY _ZTV7ee27321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27321[];
+static VTBL_ENTRY alt_thunk_names621[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73213fooEv,_ZTv0_n12_N6dd73213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73213fooEv,_ZThn20_N6dd73213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73213fooEv,_ZTv0_n16_N6dd73213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73213fooEv,_ZThn12_N6dd73213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee273213fooEv,_ZTv0_n12_N7ee273213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee273213fooEv,_ZThn20_N7ee273213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee273213fooEv,_ZTv0_n16_N7ee273213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee273213fooEv,_ZThn12_N7ee273213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27321 = { "ee27321", // class name
+ bases_ee27321, 4,
+ &(vtc_ee27321[0]), // expected_vtbl_contents
+ &(vtt_ee27321[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee27321),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27321),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27321),8, //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 ee37321 : virtual dd7321 {
+ int e;
+ virtual void foo(); // _ZN7ee373213fooEv
+ ~ee37321(); // tgen
+ ee37321(); // tgen
+};
+//SIG(1 ee37321) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37321 ::foo(){vfunc_called(this, "_ZN7ee373213fooEv");}
+ee37321 ::~ee37321(){ note_dtor("ee37321", this);} // tgen
+ee37321 ::ee37321(){ note_ctor("ee37321", this);} // tgen
+
+static void Test_ee37321()
+{
+ extern Class_Descriptor cd_ee37321;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee37321, buf);
+ ee37321 *dp, &lv = *(dp=new (buf) ee37321());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee37321)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37321)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(48,24), "ee37321");
+ check_base_class_offset(lv, (bb21*)(cc321*), ABISELECT(48,24), "ee37321");
+ check_base_class_offset(lv, (cc321*)(dd7321*), ABISELECT(32,16), "ee37321");
+ check_base_class_offset(lv, (dd7321*), ABISELECT(16,8), "ee37321");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37321.e");
+ test_class_info(&lv, &cd_ee37321);
+ dp->~ee37321();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37321(Test_ee37321, "ee37321", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee37321C1Ev();
+extern void _ZN7ee37321D1Ev();
+Name_Map name_map_ee37321[] = {
+ NSPAIR(_ZN7ee37321C1Ev),
+ NSPAIR(_ZN7ee37321D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc321;
+extern VTBL_ENTRY _ZTI5cc321[];
+extern VTBL_ENTRY _ZTV5cc321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc321[];
+extern Class_Descriptor cd_dd7321;
+extern VTBL_ENTRY _ZTI6dd7321[];
+extern VTBL_ENTRY _ZTV6dd7321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7321[];
+static Base_Class bases_ee37321[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb21, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc321, 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_dd7321, 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 _ZTI7ee37321[];
+extern void _ZN7ee373213fooEv();
+extern void _ZN6dd73213barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee373213fooEv,_ZTv0_n24_N7ee373213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee373213fooEv,_ZThn8_N7ee373213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee373213fooEv,_ZTv0_n16_N7ee373213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee373213fooEv,_ZThn16_N7ee373213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee373213fooEv,_ZTv0_n12_N7ee373213fooEv)();
+extern void ABISELECT(_ZThn48_N7ee373213fooEv,_ZThn24_N7ee373213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37321[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37321[0]),
+ (VTBL_ENTRY)&_ZN7ee373213fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37321[0]),
+ (VTBL_ENTRY)&_ZN6dd73213barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee373213fooEv,_ZTv0_n24_N7ee373213fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee373213fooEv,_ZTv0_n16_N7ee373213fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee37321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee373213fooEv,_ZTv0_n12_N7ee373213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee37321[];
+extern void _ZN6dd73213barEv();
+extern void _ZN6dd73213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7321__7ee37321[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7321[0]),
+ (VTBL_ENTRY)&_ZN6dd73213barEv,
+ (VTBL_ENTRY)&_ZN6dd73213fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73213fooEv,_ZTv0_n16_N6dd73213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73213fooEv,_ZThn8_N6dd73213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc321__6dd7321__7ee37321[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73213fooEv,_ZTv0_n16_N6dd73213fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd73213fooEv,_ZTv0_n12_N6dd73213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73213fooEv,_ZThn16_N6dd73213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd7321__7ee37321[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73213fooEv,_ZTv0_n12_N6dd73213fooEv),
+};
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc321__7ee37321[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc321__7ee37321[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+static VTT_ENTRY vtt_ee37321[] = {
+ {&(_ZTV7ee37321[5]), 5,23},
+ {&(_ZTV7ee37321[12]), 12,23},
+ {&(_ZTV7ee37321[18]), 18,23},
+ {&(_ZTV7ee37321[22]), 22,23},
+ {&(_tg__ZTV6dd7321__7ee37321[4]), 4,6},
+ {&(_tg__ZTV5cc321__6dd7321__7ee37321[4]), 4,5},
+ {&(_tg__ZTV4bb21__6dd7321__7ee37321[3]), 3,4},
+ {&(_tg__ZTV5cc321__7ee37321[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc321__7ee37321[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee37321[];
+extern VTBL_ENTRY _ZTV7ee37321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37321[];
+static VTBL_ENTRY alt_thunk_names622[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73213fooEv,_ZTv0_n12_N6dd73213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73213fooEv,_ZThn16_N6dd73213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73213fooEv,_ZTv0_n16_N6dd73213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73213fooEv,_ZThn8_N6dd73213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee373213fooEv,_ZTv0_n12_N7ee373213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee373213fooEv,_ZThn24_N7ee373213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee373213fooEv,_ZTv0_n16_N7ee373213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee373213fooEv,_ZThn16_N7ee373213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee373213fooEv,_ZTv0_n24_N7ee373213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee373213fooEv,_ZThn8_N7ee373213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37321 = { "ee37321", // class name
+ bases_ee37321, 4,
+ &(vtc_ee37321[0]), // expected_vtbl_contents
+ &(vtt_ee37321[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee37321),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37321),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37321),9, //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 ee47321 : dd7321 {
+ int e;
+ virtual void bar(); // _ZN7ee473213barEv
+ ~ee47321(); // tgen
+ ee47321(); // tgen
+};
+//SIG(1 ee47321) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 Fi} v2 Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47321 ::bar(){vfunc_called(this, "_ZN7ee473213barEv");}
+ee47321 ::~ee47321(){ note_dtor("ee47321", this);} // tgen
+ee47321 ::ee47321(){ note_ctor("ee47321", this);} // tgen
+
+static void Test_ee47321()
+{
+ extern Class_Descriptor cd_ee47321;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee47321, buf);
+ ee47321 *dp, &lv = *(dp=new (buf) ee47321());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee47321)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47321)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee47321");
+ check_base_class_offset(lv, (bb21*)(cc321*), ABISELECT(32,20), "ee47321");
+ check_base_class_offset(lv, (cc321*)(dd7321*), ABISELECT(16,12), "ee47321");
+ check_base_class_offset(lv, (dd7321*), 0, "ee47321");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47321.e");
+ test_class_info(&lv, &cd_ee47321);
+ dp->~ee47321();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47321(Test_ee47321, "ee47321", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee47321C1Ev();
+extern void _ZN7ee47321D1Ev();
+Name_Map name_map_ee47321[] = {
+ NSPAIR(_ZN7ee47321C1Ev),
+ NSPAIR(_ZN7ee47321D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc321;
+extern VTBL_ENTRY _ZTI5cc321[];
+extern VTBL_ENTRY _ZTV5cc321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc321[];
+extern Class_Descriptor cd_dd7321;
+extern VTBL_ENTRY _ZTI6dd7321[];
+extern VTBL_ENTRY _ZTV6dd7321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7321[];
+static Base_Class bases_ee47321[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc321, 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_dd7321, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47321[];
+extern void _ZN7ee473213barEv();
+extern void _ZN6dd73213fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd73213fooEv,_ZTv0_n16_N6dd73213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73213fooEv,_ZThn12_N6dd73213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd73213fooEv,_ZTv0_n12_N6dd73213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73213fooEv,_ZThn20_N6dd73213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47321[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47321[0]),
+ (VTBL_ENTRY)&_ZN7ee473213barEv,
+ (VTBL_ENTRY)&_ZN6dd73213fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73213fooEv,_ZTv0_n16_N6dd73213fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee47321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73213fooEv,_ZTv0_n12_N6dd73213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee47321[];
+extern void _ZN6dd73213barEv();
+extern void _ZN6dd73213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7321__7ee47321[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7321[0]),
+ (VTBL_ENTRY)&_ZN6dd73213barEv,
+ (VTBL_ENTRY)&_ZN6dd73213fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73213fooEv,_ZTv0_n16_N6dd73213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73213fooEv,_ZThn12_N6dd73213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc321__6dd7321__7ee47321[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73213fooEv,_ZTv0_n16_N6dd73213fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd73213fooEv,_ZTv0_n12_N6dd73213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73213fooEv,_ZThn20_N6dd73213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd7321__7ee47321[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73213fooEv,_ZTv0_n12_N6dd73213fooEv),
+};
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc321__7ee47321[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc321__7ee47321[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+static VTT_ENTRY vtt_ee47321[] = {
+ {&(_ZTV7ee47321[4]), 4,15},
+ {&(_tg__ZTV6dd7321__7ee47321[4]), 4,6},
+ {&(_tg__ZTV5cc321__6dd7321__7ee47321[4]), 4,5},
+ {&(_tg__ZTV4bb21__6dd7321__7ee47321[3]), 3,4},
+ {&(_ZTV7ee47321[10]), 10,15},
+ {&(_ZTV7ee47321[14]), 14,15},
+ {&(_tg__ZTV5cc321__7ee47321[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc321__7ee47321[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee47321[];
+extern VTBL_ENTRY _ZTV7ee47321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47321[];
+static VTBL_ENTRY alt_thunk_names623[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73213fooEv,_ZTv0_n12_N6dd73213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73213fooEv,_ZThn20_N6dd73213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73213fooEv,_ZThn20_N6dd73213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73213fooEv,_ZTv0_n16_N6dd73213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73213fooEv,_ZThn12_N6dd73213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73213fooEv,_ZThn12_N6dd73213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47321 = { "ee47321", // class name
+ bases_ee47321, 4,
+ &(vtc_ee47321[0]), // expected_vtbl_contents
+ &(vtt_ee47321[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee47321),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47321),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47321),8, //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 ee57321 : virtual dd7321 {
+ int e;
+ virtual void bar(); // _ZN7ee573213barEv
+ ~ee57321(); // tgen
+ ee57321(); // tgen
+};
+//SIG(1 ee57321) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 Fi} v2 Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57321 ::bar(){vfunc_called(this, "_ZN7ee573213barEv");}
+ee57321 ::~ee57321(){ note_dtor("ee57321", this);} // tgen
+ee57321 ::ee57321(){ note_ctor("ee57321", this);} // tgen
+
+static void Test_ee57321()
+{
+ extern Class_Descriptor cd_ee57321;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee57321, buf);
+ ee57321 *dp, &lv = *(dp=new (buf) ee57321());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee57321)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57321)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(48,24), "ee57321");
+ check_base_class_offset(lv, (bb21*)(cc321*), ABISELECT(48,24), "ee57321");
+ check_base_class_offset(lv, (cc321*)(dd7321*), ABISELECT(32,16), "ee57321");
+ check_base_class_offset(lv, (dd7321*), ABISELECT(16,8), "ee57321");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57321.e");
+ test_class_info(&lv, &cd_ee57321);
+ dp->~ee57321();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57321(Test_ee57321, "ee57321", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee57321C1Ev();
+extern void _ZN7ee57321D1Ev();
+Name_Map name_map_ee57321[] = {
+ NSPAIR(_ZN7ee57321C1Ev),
+ NSPAIR(_ZN7ee57321D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc321;
+extern VTBL_ENTRY _ZTI5cc321[];
+extern VTBL_ENTRY _ZTV5cc321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc321[];
+extern Class_Descriptor cd_dd7321;
+extern VTBL_ENTRY _ZTI6dd7321[];
+extern VTBL_ENTRY _ZTV6dd7321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7321[];
+static Base_Class bases_ee57321[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb21, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc321, 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_dd7321, 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 _ZTI7ee57321[];
+extern void _ZN7ee573213barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee573213barEv,_ZTv0_n20_N7ee573213barEv)();
+extern void ABISELECT(_ZThn16_N7ee573213barEv,_ZThn8_N7ee573213barEv)() __attribute__((weak));
+extern void _ZN6dd73213fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd73213fooEv,_ZTv0_n16_N6dd73213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73213fooEv,_ZThn8_N6dd73213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd73213fooEv,_ZTv0_n12_N6dd73213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73213fooEv,_ZThn16_N6dd73213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57321[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57321[0]),
+ (VTBL_ENTRY)&_ZN7ee573213barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee573213barEv,_ZTv0_n20_N7ee573213barEv),
+ (VTBL_ENTRY)&_ZN6dd73213fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73213fooEv,_ZTv0_n16_N6dd73213fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee57321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73213fooEv,_ZTv0_n12_N6dd73213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee57321[];
+extern void _ZN6dd73213barEv();
+extern void _ZN6dd73213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7321__7ee57321[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7321[0]),
+ (VTBL_ENTRY)&_ZN6dd73213barEv,
+ (VTBL_ENTRY)&_ZN6dd73213fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73213fooEv,_ZTv0_n16_N6dd73213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73213fooEv,_ZThn8_N6dd73213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc321__6dd7321__7ee57321[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73213fooEv,_ZTv0_n16_N6dd73213fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd73213fooEv,_ZTv0_n12_N6dd73213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73213fooEv,_ZThn16_N6dd73213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd7321__7ee57321[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73213fooEv,_ZTv0_n12_N6dd73213fooEv),
+};
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc321__7ee57321[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc321__7ee57321[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+static VTT_ENTRY vtt_ee57321[] = {
+ {&(_ZTV7ee57321[5]), 5,23},
+ {&(_ZTV7ee57321[12]), 12,23},
+ {&(_ZTV7ee57321[18]), 18,23},
+ {&(_ZTV7ee57321[22]), 22,23},
+ {&(_tg__ZTV6dd7321__7ee57321[4]), 4,6},
+ {&(_tg__ZTV5cc321__6dd7321__7ee57321[4]), 4,5},
+ {&(_tg__ZTV4bb21__6dd7321__7ee57321[3]), 3,4},
+ {&(_tg__ZTV5cc321__7ee57321[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc321__7ee57321[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee57321[];
+extern VTBL_ENTRY _ZTV7ee57321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57321[];
+static VTBL_ENTRY alt_thunk_names624[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73213fooEv,_ZTv0_n12_N6dd73213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73213fooEv,_ZThn16_N6dd73213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73213fooEv,_ZThn16_N6dd73213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73213fooEv,_ZTv0_n16_N6dd73213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73213fooEv,_ZThn8_N6dd73213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73213fooEv,_ZThn8_N6dd73213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee573213barEv,_ZTv0_n20_N7ee573213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee573213barEv,_ZThn8_N7ee573213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57321 = { "ee57321", // class name
+ bases_ee57321, 4,
+ &(vtc_ee57321[0]), // expected_vtbl_contents
+ &(vtt_ee57321[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee57321),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57321),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57321),9, //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 ee67321 : dd7321 {
+ int e;
+ virtual void foo(); // _ZN7ee673213fooEv
+ virtual void bar(); // _ZN7ee673213barEv
+ ~ee67321(); // tgen
+ ee67321(); // tgen
+};
+//SIG(1 ee67321) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67321 ::foo(){vfunc_called(this, "_ZN7ee673213fooEv");}
+void ee67321 ::bar(){vfunc_called(this, "_ZN7ee673213barEv");}
+ee67321 ::~ee67321(){ note_dtor("ee67321", this);} // tgen
+ee67321 ::ee67321(){ note_ctor("ee67321", this);} // tgen
+
+static void Test_ee67321()
+{
+ extern Class_Descriptor cd_ee67321;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee67321, buf);
+ ee67321 *dp, &lv = *(dp=new (buf) ee67321());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee67321)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67321)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee67321");
+ check_base_class_offset(lv, (bb21*)(cc321*), ABISELECT(32,20), "ee67321");
+ check_base_class_offset(lv, (cc321*)(dd7321*), ABISELECT(16,12), "ee67321");
+ check_base_class_offset(lv, (dd7321*), 0, "ee67321");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67321.e");
+ test_class_info(&lv, &cd_ee67321);
+ dp->~ee67321();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67321(Test_ee67321, "ee67321", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee67321C1Ev();
+extern void _ZN7ee67321D1Ev();
+Name_Map name_map_ee67321[] = {
+ NSPAIR(_ZN7ee67321C1Ev),
+ NSPAIR(_ZN7ee67321D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc321;
+extern VTBL_ENTRY _ZTI5cc321[];
+extern VTBL_ENTRY _ZTV5cc321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc321[];
+extern Class_Descriptor cd_dd7321;
+extern VTBL_ENTRY _ZTI6dd7321[];
+extern VTBL_ENTRY _ZTV6dd7321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7321[];
+static Base_Class bases_ee67321[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc321, 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_dd7321, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67321[];
+extern void _ZN7ee673213barEv();
+extern void _ZN7ee673213fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee673213fooEv,_ZTv0_n16_N7ee673213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee673213fooEv,_ZThn12_N7ee673213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee673213fooEv,_ZTv0_n12_N7ee673213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee673213fooEv,_ZThn20_N7ee673213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67321[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67321[0]),
+ (VTBL_ENTRY)&_ZN7ee673213barEv,
+ (VTBL_ENTRY)&_ZN7ee673213fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee673213fooEv,_ZTv0_n16_N7ee673213fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee67321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee673213fooEv,_ZTv0_n12_N7ee673213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee67321[];
+extern void _ZN6dd73213barEv();
+extern void _ZN6dd73213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7321__7ee67321[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7321[0]),
+ (VTBL_ENTRY)&_ZN6dd73213barEv,
+ (VTBL_ENTRY)&_ZN6dd73213fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73213fooEv,_ZTv0_n16_N6dd73213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73213fooEv,_ZThn12_N6dd73213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc321__6dd7321__7ee67321[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73213fooEv,_ZTv0_n16_N6dd73213fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd73213fooEv,_ZTv0_n12_N6dd73213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73213fooEv,_ZThn20_N6dd73213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd7321__7ee67321[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73213fooEv,_ZTv0_n12_N6dd73213fooEv),
+};
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc321__7ee67321[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc321__7ee67321[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+static VTT_ENTRY vtt_ee67321[] = {
+ {&(_ZTV7ee67321[4]), 4,15},
+ {&(_tg__ZTV6dd7321__7ee67321[4]), 4,6},
+ {&(_tg__ZTV5cc321__6dd7321__7ee67321[4]), 4,5},
+ {&(_tg__ZTV4bb21__6dd7321__7ee67321[3]), 3,4},
+ {&(_ZTV7ee67321[10]), 10,15},
+ {&(_ZTV7ee67321[14]), 14,15},
+ {&(_tg__ZTV5cc321__7ee67321[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc321__7ee67321[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee67321[];
+extern VTBL_ENTRY _ZTV7ee67321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67321[];
+static VTBL_ENTRY alt_thunk_names625[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73213fooEv,_ZTv0_n12_N6dd73213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73213fooEv,_ZThn20_N6dd73213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73213fooEv,_ZTv0_n16_N6dd73213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73213fooEv,_ZThn12_N6dd73213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee673213fooEv,_ZTv0_n12_N7ee673213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee673213fooEv,_ZThn20_N7ee673213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee673213fooEv,_ZTv0_n16_N7ee673213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee673213fooEv,_ZThn12_N7ee673213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67321 = { "ee67321", // class name
+ bases_ee67321, 4,
+ &(vtc_ee67321[0]), // expected_vtbl_contents
+ &(vtt_ee67321[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee67321),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67321),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67321),8, //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 ee77321 : virtual dd7321 {
+ int e;
+ virtual void foo(); // _ZN7ee773213fooEv
+ virtual void bar(); // _ZN7ee773213barEv
+ ~ee77321(); // tgen
+ ee77321(); // tgen
+};
+//SIG(1 ee77321) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77321 ::foo(){vfunc_called(this, "_ZN7ee773213fooEv");}
+void ee77321 ::bar(){vfunc_called(this, "_ZN7ee773213barEv");}
+ee77321 ::~ee77321(){ note_dtor("ee77321", this);} // tgen
+ee77321 ::ee77321(){ note_ctor("ee77321", this);} // tgen
+
+static void Test_ee77321()
+{
+ extern Class_Descriptor cd_ee77321;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee77321, buf);
+ ee77321 *dp, &lv = *(dp=new (buf) ee77321());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee77321)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77321)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(48,24), "ee77321");
+ check_base_class_offset(lv, (bb21*)(cc321*), ABISELECT(48,24), "ee77321");
+ check_base_class_offset(lv, (cc321*)(dd7321*), ABISELECT(32,16), "ee77321");
+ check_base_class_offset(lv, (dd7321*), ABISELECT(16,8), "ee77321");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77321.e");
+ test_class_info(&lv, &cd_ee77321);
+ dp->~ee77321();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77321(Test_ee77321, "ee77321", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee77321C1Ev();
+extern void _ZN7ee77321D1Ev();
+Name_Map name_map_ee77321[] = {
+ NSPAIR(_ZN7ee77321C1Ev),
+ NSPAIR(_ZN7ee77321D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc321;
+extern VTBL_ENTRY _ZTI5cc321[];
+extern VTBL_ENTRY _ZTV5cc321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc321[];
+extern Class_Descriptor cd_dd7321;
+extern VTBL_ENTRY _ZTI6dd7321[];
+extern VTBL_ENTRY _ZTV6dd7321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7321[];
+static Base_Class bases_ee77321[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb21, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc321, 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_dd7321, 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 _ZTI7ee77321[];
+extern void _ZN7ee773213fooEv();
+extern void _ZN7ee773213barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee773213barEv,_ZTv0_n20_N7ee773213barEv)();
+extern void ABISELECT(_ZThn16_N7ee773213barEv,_ZThn8_N7ee773213barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee773213fooEv,_ZTv0_n24_N7ee773213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee773213fooEv,_ZThn8_N7ee773213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee773213fooEv,_ZTv0_n16_N7ee773213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee773213fooEv,_ZThn16_N7ee773213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee773213fooEv,_ZTv0_n12_N7ee773213fooEv)();
+extern void ABISELECT(_ZThn48_N7ee773213fooEv,_ZThn24_N7ee773213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77321[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77321[0]),
+ (VTBL_ENTRY)&_ZN7ee773213fooEv,
+ (VTBL_ENTRY)&_ZN7ee773213barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee773213barEv,_ZTv0_n20_N7ee773213barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee773213fooEv,_ZTv0_n24_N7ee773213fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee773213fooEv,_ZTv0_n16_N7ee773213fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee77321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee773213fooEv,_ZTv0_n12_N7ee773213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee77321[];
+extern void _ZN6dd73213barEv();
+extern void _ZN6dd73213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7321__7ee77321[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7321[0]),
+ (VTBL_ENTRY)&_ZN6dd73213barEv,
+ (VTBL_ENTRY)&_ZN6dd73213fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73213fooEv,_ZTv0_n16_N6dd73213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73213fooEv,_ZThn8_N6dd73213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc321__6dd7321__7ee77321[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73213fooEv,_ZTv0_n16_N6dd73213fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd73213fooEv,_ZTv0_n12_N6dd73213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73213fooEv,_ZThn16_N6dd73213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd7321__7ee77321[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73213fooEv,_ZTv0_n12_N6dd73213fooEv),
+};
+extern void _ZN5cc3213fooEv();
+static VTBL_ENTRY _tg__ZTV5cc321__7ee77321[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&_ZN5cc3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc321__7ee77321[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv),
+};
+static VTT_ENTRY vtt_ee77321[] = {
+ {&(_ZTV7ee77321[5]), 5,24},
+ {&(_ZTV7ee77321[13]), 13,24},
+ {&(_ZTV7ee77321[19]), 19,24},
+ {&(_ZTV7ee77321[23]), 23,24},
+ {&(_tg__ZTV6dd7321__7ee77321[4]), 4,6},
+ {&(_tg__ZTV5cc321__6dd7321__7ee77321[4]), 4,5},
+ {&(_tg__ZTV4bb21__6dd7321__7ee77321[3]), 3,4},
+ {&(_tg__ZTV5cc321__7ee77321[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc321__7ee77321[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee77321[];
+extern VTBL_ENTRY _ZTV7ee77321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77321[];
+static VTBL_ENTRY alt_thunk_names626[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3213fooEv,_ZTv0_n12_N5cc3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3213fooEv,_ZThn8_N5cc3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73213fooEv,_ZTv0_n12_N6dd73213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73213fooEv,_ZThn16_N6dd73213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73213fooEv,_ZTv0_n16_N6dd73213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73213fooEv,_ZThn8_N6dd73213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee773213fooEv,_ZTv0_n12_N7ee773213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee773213fooEv,_ZThn24_N7ee773213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee773213fooEv,_ZTv0_n16_N7ee773213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee773213fooEv,_ZThn16_N7ee773213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee773213fooEv,_ZTv0_n24_N7ee773213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee773213fooEv,_ZThn8_N7ee773213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee773213barEv,_ZTv0_n20_N7ee773213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee773213barEv,_ZThn8_N7ee773213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77321 = { "ee77321", // class name
+ bases_ee77321, 4,
+ &(vtc_ee77321[0]), // expected_vtbl_contents
+ &(vtt_ee77321[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee77321),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77321),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77321),9, //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 cc421 : bb21 {
+ int c;
+ virtual void bar(); // _ZN5cc4213barEv
+ ~cc421(); // tgen
+ cc421(); // tgen
+};
+//SIG(-1 cc421) C1{ BC2{ BC3{ v2 Fi} v2 Fi} v1 Fi}
+
+
+void cc421 ::bar(){vfunc_called(this, "_ZN5cc4213barEv");}
+cc421 ::~cc421(){ note_dtor("cc421", this);} // tgen
+cc421 ::cc421(){ note_ctor("cc421", this);} // tgen
+
+static void Test_cc421()
+{
+ extern Class_Descriptor cd_cc421;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,5)];
+ init_test(&cd_cc421, buf);
+ cc421 *dp, &lv = *(dp=new (buf) cc421());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,16), "sizeof(cc421)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc421)");
+ check_base_class_offset(lv, (aa1*)(bb21*), 0, "cc421");
+ check_base_class_offset(lv, (bb21*), 0, "cc421");
+ check_field_offset(lv, c, ABISELECT(16,12), "cc421.c");
+ test_class_info(&lv, &cd_cc421);
+ dp->~cc421();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc421(Test_cc421, "cc421", ABISELECT(24,16));
+
+#else // __cplusplus
+
+extern void _ZN5cc421C1Ev();
+extern void _ZN5cc421D1Ev();
+Name_Map name_map_cc421[] = {
+ NSPAIR(_ZN5cc421C1Ev),
+ NSPAIR(_ZN5cc421D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+static Base_Class bases_cc421[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI5cc421[];
+extern void _ZN4bb213fooEv();
+extern void _ZN5cc4213barEv();
+static VTBL_ENTRY vtc_cc421[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc421[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+ (VTBL_ENTRY)&_ZN5cc4213barEv,
+};
+extern VTBL_ENTRY _ZTI5cc421[];
+extern VTBL_ENTRY _ZTV5cc421[];
+Class_Descriptor cd_cc421 = { "cc421", // class name
+ bases_cc421, 2,
+ &(vtc_cc421[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,16), // object size
+ NSPAIRA(_ZTI5cc421),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV5cc421),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 dd0421 : cc421 {
+ int d;
+ ~dd0421(); // tgen
+ dd0421(); // tgen
+};
+//SIG(-1 dd0421) C1{ BC2{ BC3{ BC4{ v2 Fi} v2 Fi} v1 Fi} Fi}
+
+
+dd0421 ::~dd0421(){ note_dtor("dd0421", this);} // tgen
+dd0421 ::dd0421(){ note_ctor("dd0421", this);} // tgen
+
+static void Test_dd0421()
+{
+ extern Class_Descriptor cd_dd0421;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd0421, buf);
+ dd0421 *dp, &lv = *(dp=new (buf) dd0421());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd0421)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0421)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc421*), 0, "dd0421");
+ check_base_class_offset(lv, (bb21*)(cc421*), 0, "dd0421");
+ check_base_class_offset(lv, (cc421*), 0, "dd0421");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd0421.d");
+ test_class_info(&lv, &cd_dd0421);
+ dp->~dd0421();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0421(Test_dd0421, "dd0421", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd0421C1Ev();
+extern void _ZN6dd0421D1Ev();
+Name_Map name_map_dd0421[] = {
+ NSPAIR(_ZN6dd0421C1Ev),
+ NSPAIR(_ZN6dd0421D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc421;
+extern VTBL_ENTRY _ZTI5cc421[];
+extern VTBL_ENTRY _ZTV5cc421[];
+static Base_Class bases_dd0421[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc421, 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 _ZTI6dd0421[];
+extern void _ZN4bb213fooEv();
+extern void _ZN5cc4213barEv();
+static VTBL_ENTRY vtc_dd0421[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0421[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+ (VTBL_ENTRY)&_ZN5cc4213barEv,
+};
+extern VTBL_ENTRY _ZTI6dd0421[];
+extern VTBL_ENTRY _ZTV6dd0421[];
+Class_Descriptor cd_dd0421 = { "dd0421", // class name
+ bases_dd0421, 3,
+ &(vtc_dd0421[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd0421),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0421),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 ee00421 : dd0421 {
+ int e;
+ ~ee00421(); // tgen
+ ee00421(); // tgen
+};
+//SIG(1 ee00421) C1{ BC2{ BC3{ BC4{ BC5{ v2 Fi} v2 Fi} v1 Fi} Fi} Fi}
+
+
+ee00421 ::~ee00421(){ note_dtor("ee00421", this);} // tgen
+ee00421 ::ee00421(){ note_ctor("ee00421", this);} // tgen
+
+static void Test_ee00421()
+{
+ extern Class_Descriptor cd_ee00421;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee00421, buf);
+ ee00421 *dp, &lv = *(dp=new (buf) ee00421());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee00421)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00421)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc421*)(dd0421*), 0, "ee00421");
+ check_base_class_offset(lv, (bb21*)(cc421*)(dd0421*), 0, "ee00421");
+ check_base_class_offset(lv, (cc421*)(dd0421*), 0, "ee00421");
+ check_base_class_offset(lv, (dd0421*), 0, "ee00421");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee00421.e");
+ test_class_info(&lv, &cd_ee00421);
+ dp->~ee00421();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00421(Test_ee00421, "ee00421", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee00421C1Ev();
+extern void _ZN7ee00421D1Ev();
+Name_Map name_map_ee00421[] = {
+ NSPAIR(_ZN7ee00421C1Ev),
+ NSPAIR(_ZN7ee00421D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc421;
+extern VTBL_ENTRY _ZTI5cc421[];
+extern VTBL_ENTRY _ZTV5cc421[];
+extern Class_Descriptor cd_dd0421;
+extern VTBL_ENTRY _ZTI6dd0421[];
+extern VTBL_ENTRY _ZTV6dd0421[];
+static Base_Class bases_ee00421[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc421, 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_dd0421, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee00421[];
+extern void _ZN4bb213fooEv();
+extern void _ZN5cc4213barEv();
+static VTBL_ENTRY vtc_ee00421[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00421[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+ (VTBL_ENTRY)&_ZN5cc4213barEv,
+};
+extern VTBL_ENTRY _ZTI7ee00421[];
+extern VTBL_ENTRY _ZTV7ee00421[];
+Class_Descriptor cd_ee00421 = { "ee00421", // class name
+ bases_ee00421, 4,
+ &(vtc_ee00421[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee00421),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00421),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 ee10421 : virtual dd0421 {
+ int e;
+ ~ee10421(); // tgen
+ ee10421(); // tgen
+};
+//SIG(1 ee10421) C1{ VBC2{ BC3{ BC4{ BC5{ v2 Fi} v2 Fi} v1 Fi} Fi} Fi}
+
+
+ee10421 ::~ee10421(){ note_dtor("ee10421", this);} // tgen
+ee10421 ::ee10421(){ note_ctor("ee10421", this);} // tgen
+
+static void Test_ee10421()
+{
+ extern Class_Descriptor cd_ee10421;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee10421, buf);
+ ee10421 *dp, &lv = *(dp=new (buf) ee10421());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee10421)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10421)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc421*)(dd0421*), ABISELECT(16,8), "ee10421");
+ check_base_class_offset(lv, (bb21*)(cc421*)(dd0421*), ABISELECT(16,8), "ee10421");
+ check_base_class_offset(lv, (cc421*)(dd0421*), ABISELECT(16,8), "ee10421");
+ check_base_class_offset(lv, (dd0421*), ABISELECT(16,8), "ee10421");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10421.e");
+ test_class_info(&lv, &cd_ee10421);
+ dp->~ee10421();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10421(Test_ee10421, "ee10421", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee10421C1Ev();
+extern void _ZN7ee10421D1Ev();
+Name_Map name_map_ee10421[] = {
+ NSPAIR(_ZN7ee10421C1Ev),
+ NSPAIR(_ZN7ee10421D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc421;
+extern VTBL_ENTRY _ZTI5cc421[];
+extern VTBL_ENTRY _ZTV5cc421[];
+extern Class_Descriptor cd_dd0421;
+extern VTBL_ENTRY _ZTI6dd0421[];
+extern VTBL_ENTRY _ZTV6dd0421[];
+static Base_Class bases_ee10421[] = {
+ // 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_bb21, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc421, 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_dd0421, 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 _ZTI7ee10421[];
+extern void _ZN4bb213fooEv();
+extern void _ZN5cc4213barEv();
+static VTBL_ENTRY vtc_ee10421[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10421[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10421[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+ (VTBL_ENTRY)&_ZN5cc4213barEv,
+};
+extern VTBL_ENTRY _ZTV7ee10421[];
+static VTT_ENTRY vtt_ee10421[] = {
+ {&(_ZTV7ee10421[3]), 3,9},
+ {&(_ZTV7ee10421[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee10421[];
+extern VTBL_ENTRY _ZTV7ee10421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10421[];
+Class_Descriptor cd_ee10421 = { "ee10421", // class name
+ bases_ee10421, 4,
+ &(vtc_ee10421[0]), // expected_vtbl_contents
+ &(vtt_ee10421[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee10421),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10421),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10421),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 ee20421 : dd0421 {
+ int e;
+ virtual void foo(); // _ZN7ee204213fooEv
+ ~ee20421(); // tgen
+ ee20421(); // tgen
+};
+//SIG(1 ee20421) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} v1 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee20421 ::foo(){vfunc_called(this, "_ZN7ee204213fooEv");}
+ee20421 ::~ee20421(){ note_dtor("ee20421", this);} // tgen
+ee20421 ::ee20421(){ note_ctor("ee20421", this);} // tgen
+
+static void Test_ee20421()
+{
+ extern Class_Descriptor cd_ee20421;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee20421, buf);
+ ee20421 *dp, &lv = *(dp=new (buf) ee20421());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee20421)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20421)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc421*)(dd0421*), 0, "ee20421");
+ check_base_class_offset(lv, (bb21*)(cc421*)(dd0421*), 0, "ee20421");
+ check_base_class_offset(lv, (cc421*)(dd0421*), 0, "ee20421");
+ check_base_class_offset(lv, (dd0421*), 0, "ee20421");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee20421.e");
+ test_class_info(&lv, &cd_ee20421);
+ dp->~ee20421();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20421(Test_ee20421, "ee20421", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee20421C1Ev();
+extern void _ZN7ee20421D1Ev();
+Name_Map name_map_ee20421[] = {
+ NSPAIR(_ZN7ee20421C1Ev),
+ NSPAIR(_ZN7ee20421D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc421;
+extern VTBL_ENTRY _ZTI5cc421[];
+extern VTBL_ENTRY _ZTV5cc421[];
+extern Class_Descriptor cd_dd0421;
+extern VTBL_ENTRY _ZTI6dd0421[];
+extern VTBL_ENTRY _ZTV6dd0421[];
+static Base_Class bases_ee20421[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc421, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd0421, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee20421[];
+extern void _ZN7ee204213fooEv();
+extern void _ZN5cc4213barEv();
+static VTBL_ENTRY vtc_ee20421[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20421[0]),
+ (VTBL_ENTRY)&_ZN7ee204213fooEv,
+ (VTBL_ENTRY)&_ZN5cc4213barEv,
+};
+extern VTBL_ENTRY _ZTI7ee20421[];
+extern VTBL_ENTRY _ZTV7ee20421[];
+Class_Descriptor cd_ee20421 = { "ee20421", // class name
+ bases_ee20421, 4,
+ &(vtc_ee20421[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee20421),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20421),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 ee30421 : virtual dd0421 {
+ int e;
+ virtual void foo(); // _ZN7ee304213fooEv
+ ~ee30421(); // tgen
+ ee30421(); // tgen
+};
+//SIG(1 ee30421) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} v1 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee30421 ::foo(){vfunc_called(this, "_ZN7ee304213fooEv");}
+ee30421 ::~ee30421(){ note_dtor("ee30421", this);} // tgen
+ee30421 ::ee30421(){ note_ctor("ee30421", this);} // tgen
+
+static void Test_ee30421()
+{
+ extern Class_Descriptor cd_ee30421;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee30421, buf);
+ ee30421 *dp, &lv = *(dp=new (buf) ee30421());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee30421)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30421)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc421*)(dd0421*), ABISELECT(16,8), "ee30421");
+ check_base_class_offset(lv, (bb21*)(cc421*)(dd0421*), ABISELECT(16,8), "ee30421");
+ check_base_class_offset(lv, (cc421*)(dd0421*), ABISELECT(16,8), "ee30421");
+ check_base_class_offset(lv, (dd0421*), ABISELECT(16,8), "ee30421");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30421.e");
+ test_class_info(&lv, &cd_ee30421);
+ dp->~ee30421();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30421(Test_ee30421, "ee30421", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee30421C1Ev();
+extern void _ZN7ee30421D1Ev();
+Name_Map name_map_ee30421[] = {
+ NSPAIR(_ZN7ee30421C1Ev),
+ NSPAIR(_ZN7ee30421D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc421;
+extern VTBL_ENTRY _ZTI5cc421[];
+extern VTBL_ENTRY _ZTV5cc421[];
+extern Class_Descriptor cd_dd0421;
+extern VTBL_ENTRY _ZTI6dd0421[];
+extern VTBL_ENTRY _ZTV6dd0421[];
+static Base_Class bases_ee30421[] = {
+ // 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_bb21, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc421, 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_dd0421, 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 _ZTI7ee30421[];
+extern void _ZN7ee304213fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee304213fooEv,_ZTv0_n12_N7ee304213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee304213fooEv,_ZThn8_N7ee304213fooEv)() __attribute__((weak));
+extern void _ZN5cc4213barEv();
+static VTBL_ENTRY vtc_ee30421[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30421[0]),
+ (VTBL_ENTRY)&_ZN7ee304213fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30421[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee304213fooEv,_ZTv0_n12_N7ee304213fooEv),
+ (VTBL_ENTRY)&_ZN5cc4213barEv,
+};
+extern VTBL_ENTRY _ZTV7ee30421[];
+static VTT_ENTRY vtt_ee30421[] = {
+ {&(_ZTV7ee30421[3]), 3,10},
+ {&(_ZTV7ee30421[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee30421[];
+extern VTBL_ENTRY _ZTV7ee30421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30421[];
+static VTBL_ENTRY alt_thunk_names627[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee304213fooEv,_ZTv0_n12_N7ee304213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee304213fooEv,_ZThn8_N7ee304213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30421 = { "ee30421", // class name
+ bases_ee30421, 4,
+ &(vtc_ee30421[0]), // expected_vtbl_contents
+ &(vtt_ee30421[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee30421),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30421),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30421),2, //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 ee40421 : dd0421 {
+ int e;
+ virtual void bar(); // _ZN7ee404213barEv
+ ~ee40421(); // tgen
+ ee40421(); // tgen
+};
+//SIG(1 ee40421) C1{ BC2{ BC3{ BC4{ BC5{ v2 Fi} v2 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee40421 ::bar(){vfunc_called(this, "_ZN7ee404213barEv");}
+ee40421 ::~ee40421(){ note_dtor("ee40421", this);} // tgen
+ee40421 ::ee40421(){ note_ctor("ee40421", this);} // tgen
+
+static void Test_ee40421()
+{
+ extern Class_Descriptor cd_ee40421;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee40421, buf);
+ ee40421 *dp, &lv = *(dp=new (buf) ee40421());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee40421)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40421)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc421*)(dd0421*), 0, "ee40421");
+ check_base_class_offset(lv, (bb21*)(cc421*)(dd0421*), 0, "ee40421");
+ check_base_class_offset(lv, (cc421*)(dd0421*), 0, "ee40421");
+ check_base_class_offset(lv, (dd0421*), 0, "ee40421");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee40421.e");
+ test_class_info(&lv, &cd_ee40421);
+ dp->~ee40421();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40421(Test_ee40421, "ee40421", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee40421C1Ev();
+extern void _ZN7ee40421D1Ev();
+Name_Map name_map_ee40421[] = {
+ NSPAIR(_ZN7ee40421C1Ev),
+ NSPAIR(_ZN7ee40421D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc421;
+extern VTBL_ENTRY _ZTI5cc421[];
+extern VTBL_ENTRY _ZTV5cc421[];
+extern Class_Descriptor cd_dd0421;
+extern VTBL_ENTRY _ZTI6dd0421[];
+extern VTBL_ENTRY _ZTV6dd0421[];
+static Base_Class bases_ee40421[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc421, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd0421, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee40421[];
+extern void _ZN4bb213fooEv();
+extern void _ZN7ee404213barEv();
+static VTBL_ENTRY vtc_ee40421[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40421[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+ (VTBL_ENTRY)&_ZN7ee404213barEv,
+};
+extern VTBL_ENTRY _ZTI7ee40421[];
+extern VTBL_ENTRY _ZTV7ee40421[];
+Class_Descriptor cd_ee40421 = { "ee40421", // class name
+ bases_ee40421, 4,
+ &(vtc_ee40421[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee40421),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40421),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 ee50421 : virtual dd0421 {
+ int e;
+ virtual void bar(); // _ZN7ee504213barEv
+ ~ee50421(); // tgen
+ ee50421(); // tgen
+};
+//SIG(1 ee50421) C1{ VBC2{ BC3{ BC4{ BC5{ v2 Fi} v2 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee50421 ::bar(){vfunc_called(this, "_ZN7ee504213barEv");}
+ee50421 ::~ee50421(){ note_dtor("ee50421", this);} // tgen
+ee50421 ::ee50421(){ note_ctor("ee50421", this);} // tgen
+
+static void Test_ee50421()
+{
+ extern Class_Descriptor cd_ee50421;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee50421, buf);
+ ee50421 *dp, &lv = *(dp=new (buf) ee50421());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee50421)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50421)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc421*)(dd0421*), ABISELECT(16,8), "ee50421");
+ check_base_class_offset(lv, (bb21*)(cc421*)(dd0421*), ABISELECT(16,8), "ee50421");
+ check_base_class_offset(lv, (cc421*)(dd0421*), ABISELECT(16,8), "ee50421");
+ check_base_class_offset(lv, (dd0421*), ABISELECT(16,8), "ee50421");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50421.e");
+ test_class_info(&lv, &cd_ee50421);
+ dp->~ee50421();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50421(Test_ee50421, "ee50421", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee50421C1Ev();
+extern void _ZN7ee50421D1Ev();
+Name_Map name_map_ee50421[] = {
+ NSPAIR(_ZN7ee50421C1Ev),
+ NSPAIR(_ZN7ee50421D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc421;
+extern VTBL_ENTRY _ZTI5cc421[];
+extern VTBL_ENTRY _ZTV5cc421[];
+extern Class_Descriptor cd_dd0421;
+extern VTBL_ENTRY _ZTI6dd0421[];
+extern VTBL_ENTRY _ZTV6dd0421[];
+static Base_Class bases_ee50421[] = {
+ // 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_bb21, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc421, 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_dd0421, 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 _ZTI7ee50421[];
+extern void _ZN7ee504213barEv();
+extern void _ZN4bb213fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee504213barEv,_ZTv0_n16_N7ee504213barEv)();
+extern void ABISELECT(_ZThn16_N7ee504213barEv,_ZThn8_N7ee504213barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee50421[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50421[0]),
+ (VTBL_ENTRY)&_ZN7ee504213barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50421[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee504213barEv,_ZTv0_n16_N7ee504213barEv),
+};
+extern VTBL_ENTRY _ZTV7ee50421[];
+static VTT_ENTRY vtt_ee50421[] = {
+ {&(_ZTV7ee50421[3]), 3,10},
+ {&(_ZTV7ee50421[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee50421[];
+extern VTBL_ENTRY _ZTV7ee50421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50421[];
+static VTBL_ENTRY alt_thunk_names628[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee504213barEv,_ZTv0_n16_N7ee504213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee504213barEv,_ZThn8_N7ee504213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50421 = { "ee50421", // class name
+ bases_ee50421, 4,
+ &(vtc_ee50421[0]), // expected_vtbl_contents
+ &(vtt_ee50421[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee50421),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50421),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50421),2, //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 ee60421 : dd0421 {
+ int e;
+ virtual void foo(); // _ZN7ee604213fooEv
+ virtual void bar(); // _ZN7ee604213barEv
+ ~ee60421(); // tgen
+ ee60421(); // tgen
+};
+//SIG(1 ee60421) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} v1 Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee60421 ::foo(){vfunc_called(this, "_ZN7ee604213fooEv");}
+void ee60421 ::bar(){vfunc_called(this, "_ZN7ee604213barEv");}
+ee60421 ::~ee60421(){ note_dtor("ee60421", this);} // tgen
+ee60421 ::ee60421(){ note_ctor("ee60421", this);} // tgen
+
+static void Test_ee60421()
+{
+ extern Class_Descriptor cd_ee60421;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee60421, buf);
+ ee60421 *dp, &lv = *(dp=new (buf) ee60421());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee60421)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60421)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc421*)(dd0421*), 0, "ee60421");
+ check_base_class_offset(lv, (bb21*)(cc421*)(dd0421*), 0, "ee60421");
+ check_base_class_offset(lv, (cc421*)(dd0421*), 0, "ee60421");
+ check_base_class_offset(lv, (dd0421*), 0, "ee60421");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee60421.e");
+ test_class_info(&lv, &cd_ee60421);
+ dp->~ee60421();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60421(Test_ee60421, "ee60421", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee60421C1Ev();
+extern void _ZN7ee60421D1Ev();
+Name_Map name_map_ee60421[] = {
+ NSPAIR(_ZN7ee60421C1Ev),
+ NSPAIR(_ZN7ee60421D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc421;
+extern VTBL_ENTRY _ZTI5cc421[];
+extern VTBL_ENTRY _ZTV5cc421[];
+extern Class_Descriptor cd_dd0421;
+extern VTBL_ENTRY _ZTI6dd0421[];
+extern VTBL_ENTRY _ZTV6dd0421[];
+static Base_Class bases_ee60421[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc421, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd0421, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee60421[];
+extern void _ZN7ee604213fooEv();
+extern void _ZN7ee604213barEv();
+static VTBL_ENTRY vtc_ee60421[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60421[0]),
+ (VTBL_ENTRY)&_ZN7ee604213fooEv,
+ (VTBL_ENTRY)&_ZN7ee604213barEv,
+};
+extern VTBL_ENTRY _ZTI7ee60421[];
+extern VTBL_ENTRY _ZTV7ee60421[];
+Class_Descriptor cd_ee60421 = { "ee60421", // class name
+ bases_ee60421, 4,
+ &(vtc_ee60421[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee60421),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60421),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 ee70421 : virtual dd0421 {
+ int e;
+ virtual void foo(); // _ZN7ee704213fooEv
+ virtual void bar(); // _ZN7ee704213barEv
+ ~ee70421(); // tgen
+ ee70421(); // tgen
+};
+//SIG(1 ee70421) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} v1 Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee70421 ::foo(){vfunc_called(this, "_ZN7ee704213fooEv");}
+void ee70421 ::bar(){vfunc_called(this, "_ZN7ee704213barEv");}
+ee70421 ::~ee70421(){ note_dtor("ee70421", this);} // tgen
+ee70421 ::ee70421(){ note_ctor("ee70421", this);} // tgen
+
+static void Test_ee70421()
+{
+ extern Class_Descriptor cd_ee70421;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee70421, buf);
+ ee70421 *dp, &lv = *(dp=new (buf) ee70421());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee70421)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70421)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc421*)(dd0421*), ABISELECT(16,8), "ee70421");
+ check_base_class_offset(lv, (bb21*)(cc421*)(dd0421*), ABISELECT(16,8), "ee70421");
+ check_base_class_offset(lv, (cc421*)(dd0421*), ABISELECT(16,8), "ee70421");
+ check_base_class_offset(lv, (dd0421*), ABISELECT(16,8), "ee70421");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70421.e");
+ test_class_info(&lv, &cd_ee70421);
+ dp->~ee70421();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70421(Test_ee70421, "ee70421", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee70421C1Ev();
+extern void _ZN7ee70421D1Ev();
+Name_Map name_map_ee70421[] = {
+ NSPAIR(_ZN7ee70421C1Ev),
+ NSPAIR(_ZN7ee70421D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc421;
+extern VTBL_ENTRY _ZTI5cc421[];
+extern VTBL_ENTRY _ZTV5cc421[];
+extern Class_Descriptor cd_dd0421;
+extern VTBL_ENTRY _ZTI6dd0421[];
+extern VTBL_ENTRY _ZTV6dd0421[];
+static Base_Class bases_ee70421[] = {
+ // 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_bb21, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc421, 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_dd0421, 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 _ZTI7ee70421[];
+extern void _ZN7ee704213fooEv();
+extern void _ZN7ee704213barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee704213fooEv,_ZTv0_n12_N7ee704213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee704213fooEv,_ZThn8_N7ee704213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee704213barEv,_ZTv0_n16_N7ee704213barEv)();
+extern void ABISELECT(_ZThn16_N7ee704213barEv,_ZThn8_N7ee704213barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70421[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70421[0]),
+ (VTBL_ENTRY)&_ZN7ee704213fooEv,
+ (VTBL_ENTRY)&_ZN7ee704213barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70421[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee704213fooEv,_ZTv0_n12_N7ee704213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee704213barEv,_ZTv0_n16_N7ee704213barEv),
+};
+extern VTBL_ENTRY _ZTV7ee70421[];
+static VTT_ENTRY vtt_ee70421[] = {
+ {&(_ZTV7ee70421[3]), 3,11},
+ {&(_ZTV7ee70421[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee70421[];
+extern VTBL_ENTRY _ZTV7ee70421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70421[];
+static VTBL_ENTRY alt_thunk_names629[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee704213barEv,_ZTv0_n16_N7ee704213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee704213barEv,_ZThn8_N7ee704213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee704213fooEv,_ZTv0_n12_N7ee704213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee704213fooEv,_ZThn8_N7ee704213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70421 = { "ee70421", // class name
+ bases_ee70421, 4,
+ &(vtc_ee70421[0]), // expected_vtbl_contents
+ &(vtt_ee70421[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee70421),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70421),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70421),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names629,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd1421 : virtual cc421 {
+ int d;
+ ~dd1421(); // tgen
+ dd1421(); // tgen
+};
+//SIG(-1 dd1421) C1{ VBC2{ BC3{ BC4{ v2 Fi} v2 Fi} v1 Fi} Fi}
+
+
+dd1421 ::~dd1421(){ note_dtor("dd1421", this);} // tgen
+dd1421 ::dd1421(){ note_ctor("dd1421", this);} // tgen
+
+static void Test_dd1421()
+{
+ extern Class_Descriptor cd_dd1421;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd1421, buf);
+ dd1421 *dp, &lv = *(dp=new (buf) dd1421());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd1421)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1421)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc421*), ABISELECT(16,8), "dd1421");
+ check_base_class_offset(lv, (bb21*)(cc421*), ABISELECT(16,8), "dd1421");
+ check_base_class_offset(lv, (cc421*), ABISELECT(16,8), "dd1421");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1421.d");
+ test_class_info(&lv, &cd_dd1421);
+ dp->~dd1421();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1421(Test_dd1421, "dd1421", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd1421C1Ev();
+extern void _ZN6dd1421D1Ev();
+Name_Map name_map_dd1421[] = {
+ NSPAIR(_ZN6dd1421C1Ev),
+ NSPAIR(_ZN6dd1421D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc421;
+extern VTBL_ENTRY _ZTI5cc421[];
+extern VTBL_ENTRY _ZTV5cc421[];
+static Base_Class bases_dd1421[] = {
+ // 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_bb21, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc421, 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 _ZTI6dd1421[];
+extern void _ZN4bb213fooEv();
+extern void _ZN5cc4213barEv();
+static VTBL_ENTRY vtc_dd1421[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1421[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1421[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+ (VTBL_ENTRY)&_ZN5cc4213barEv,
+};
+extern VTBL_ENTRY _ZTV6dd1421[];
+static VTT_ENTRY vtt_dd1421[] = {
+ {&(_ZTV6dd1421[3]), 3,9},
+ {&(_ZTV6dd1421[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI6dd1421[];
+extern VTBL_ENTRY _ZTV6dd1421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1421[];
+Class_Descriptor cd_dd1421 = { "dd1421", // class name
+ bases_dd1421, 3,
+ &(vtc_dd1421[0]), // expected_vtbl_contents
+ &(vtt_dd1421[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd1421),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1421),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1421),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 ee01421 : dd1421 {
+ int e;
+ ~ee01421(); // tgen
+ ee01421(); // tgen
+};
+//SIG(1 ee01421) C1{ BC2{ VBC3{ BC4{ BC5{ v2 Fi} v2 Fi} v1 Fi} Fi} Fi}
+
+
+ee01421 ::~ee01421(){ note_dtor("ee01421", this);} // tgen
+ee01421 ::ee01421(){ note_ctor("ee01421", this);} // tgen
+
+static void Test_ee01421()
+{
+ extern Class_Descriptor cd_ee01421;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee01421, buf);
+ ee01421 *dp, &lv = *(dp=new (buf) ee01421());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee01421)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01421)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc421*), ABISELECT(16,12), "ee01421");
+ check_base_class_offset(lv, (bb21*)(cc421*), ABISELECT(16,12), "ee01421");
+ check_base_class_offset(lv, (cc421*)(dd1421*), ABISELECT(16,12), "ee01421");
+ check_base_class_offset(lv, (dd1421*), 0, "ee01421");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01421.e");
+ test_class_info(&lv, &cd_ee01421);
+ dp->~ee01421();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01421(Test_ee01421, "ee01421", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee01421C1Ev();
+extern void _ZN7ee01421D1Ev();
+Name_Map name_map_ee01421[] = {
+ NSPAIR(_ZN7ee01421C1Ev),
+ NSPAIR(_ZN7ee01421D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc421;
+extern VTBL_ENTRY _ZTI5cc421[];
+extern VTBL_ENTRY _ZTV5cc421[];
+extern Class_Descriptor cd_dd1421;
+extern VTBL_ENTRY _ZTI6dd1421[];
+extern VTBL_ENTRY _ZTV6dd1421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1421[];
+static Base_Class bases_ee01421[] = {
+ // 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_bb21, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc421, 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_dd1421, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01421[];
+extern void _ZN4bb213fooEv();
+extern void _ZN5cc4213barEv();
+static VTBL_ENTRY vtc_ee01421[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01421[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01421[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+ (VTBL_ENTRY)&_ZN5cc4213barEv,
+};
+extern VTBL_ENTRY _ZTV7ee01421[];
+static VTBL_ENTRY _tg__ZTV6dd1421__7ee01421[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1421[0]),
+};
+extern void _ZN4bb213fooEv();
+extern void _ZN5cc4213barEv();
+static VTBL_ENTRY _tg__ZTV5cc421__6dd1421__7ee01421[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1421[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+ (VTBL_ENTRY)&_ZN5cc4213barEv,
+};
+static VTT_ENTRY vtt_ee01421[] = {
+ {&(_ZTV7ee01421[3]), 3,9},
+ {&(_tg__ZTV6dd1421__7ee01421[3]), 3,3},
+ {&(_tg__ZTV5cc421__6dd1421__7ee01421[4]), 4,6},
+ {&(_ZTV7ee01421[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee01421[];
+extern VTBL_ENTRY _ZTV7ee01421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01421[];
+Class_Descriptor cd_ee01421 = { "ee01421", // class name
+ bases_ee01421, 4,
+ &(vtc_ee01421[0]), // expected_vtbl_contents
+ &(vtt_ee01421[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee01421),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01421),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01421),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 ee11421 : virtual dd1421 {
+ int e;
+ ~ee11421(); // tgen
+ ee11421(); // tgen
+};
+//SIG(1 ee11421) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 Fi} v2 Fi} v1 Fi} Fi} Fi}
+
+
+ee11421 ::~ee11421(){ note_dtor("ee11421", this);} // tgen
+ee11421 ::ee11421(){ note_ctor("ee11421", this);} // tgen
+
+static void Test_ee11421()
+{
+ extern Class_Descriptor cd_ee11421;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee11421, buf);
+ ee11421 *dp, &lv = *(dp=new (buf) ee11421());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee11421)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11421)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc421*), ABISELECT(32,16), "ee11421");
+ check_base_class_offset(lv, (bb21*)(cc421*), ABISELECT(32,16), "ee11421");
+ check_base_class_offset(lv, (cc421*)(dd1421*), ABISELECT(32,16), "ee11421");
+ check_base_class_offset(lv, (dd1421*), ABISELECT(16,8), "ee11421");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11421.e");
+ test_class_info(&lv, &cd_ee11421);
+ dp->~ee11421();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11421(Test_ee11421, "ee11421", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee11421C1Ev();
+extern void _ZN7ee11421D1Ev();
+Name_Map name_map_ee11421[] = {
+ NSPAIR(_ZN7ee11421C1Ev),
+ NSPAIR(_ZN7ee11421D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc421;
+extern VTBL_ENTRY _ZTI5cc421[];
+extern VTBL_ENTRY _ZTV5cc421[];
+extern Class_Descriptor cd_dd1421;
+extern VTBL_ENTRY _ZTI6dd1421[];
+extern VTBL_ENTRY _ZTV6dd1421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1421[];
+static Base_Class bases_ee11421[] = {
+ // 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_bb21, 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_cc421, 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_dd1421, 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 _ZTI7ee11421[];
+extern void _ZN4bb213fooEv();
+extern void _ZN5cc4213barEv();
+static VTBL_ENTRY vtc_ee11421[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11421[0]),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11421[0]),
+ 0,
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11421[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+ (VTBL_ENTRY)&_ZN5cc4213barEv,
+};
+extern VTBL_ENTRY _ZTV7ee11421[];
+static VTBL_ENTRY _tg__ZTV6dd1421__7ee11421[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1421[0]),
+};
+extern void _ZN4bb213fooEv();
+extern void _ZN5cc4213barEv();
+static VTBL_ENTRY _tg__ZTV5cc421__6dd1421__7ee11421[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1421[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+ (VTBL_ENTRY)&_ZN5cc4213barEv,
+};
+static VTT_ENTRY vtt_ee11421[] = {
+ {&(_ZTV7ee11421[4]), 4,13},
+ {&(_ZTV7ee11421[7]), 7,13},
+ {&(_ZTV7ee11421[11]), 11,13},
+ {&(_tg__ZTV6dd1421__7ee11421[3]), 3,3},
+ {&(_tg__ZTV5cc421__6dd1421__7ee11421[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee11421[];
+extern VTBL_ENTRY _ZTV7ee11421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11421[];
+Class_Descriptor cd_ee11421 = { "ee11421", // class name
+ bases_ee11421, 4,
+ &(vtc_ee11421[0]), // expected_vtbl_contents
+ &(vtt_ee11421[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee11421),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11421),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11421),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 ee21421 : dd1421 {
+ int e;
+ virtual void foo(); // _ZN7ee214213fooEv
+ ~ee21421(); // tgen
+ ee21421(); // tgen
+};
+//SIG(1 ee21421) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} v1 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee21421 ::foo(){vfunc_called(this, "_ZN7ee214213fooEv");}
+ee21421 ::~ee21421(){ note_dtor("ee21421", this);} // tgen
+ee21421 ::ee21421(){ note_ctor("ee21421", this);} // tgen
+
+static void Test_ee21421()
+{
+ extern Class_Descriptor cd_ee21421;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee21421, buf);
+ ee21421 *dp, &lv = *(dp=new (buf) ee21421());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee21421)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21421)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc421*), ABISELECT(16,12), "ee21421");
+ check_base_class_offset(lv, (bb21*)(cc421*), ABISELECT(16,12), "ee21421");
+ check_base_class_offset(lv, (cc421*)(dd1421*), ABISELECT(16,12), "ee21421");
+ check_base_class_offset(lv, (dd1421*), 0, "ee21421");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21421.e");
+ test_class_info(&lv, &cd_ee21421);
+ dp->~ee21421();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21421(Test_ee21421, "ee21421", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee21421C1Ev();
+extern void _ZN7ee21421D1Ev();
+Name_Map name_map_ee21421[] = {
+ NSPAIR(_ZN7ee21421C1Ev),
+ NSPAIR(_ZN7ee21421D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc421;
+extern VTBL_ENTRY _ZTI5cc421[];
+extern VTBL_ENTRY _ZTV5cc421[];
+extern Class_Descriptor cd_dd1421;
+extern VTBL_ENTRY _ZTI6dd1421[];
+extern VTBL_ENTRY _ZTV6dd1421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1421[];
+static Base_Class bases_ee21421[] = {
+ // 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_bb21, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc421, 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_dd1421, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21421[];
+extern void _ZN7ee214213fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee214213fooEv,_ZTv0_n12_N7ee214213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee214213fooEv,_ZThn12_N7ee214213fooEv)() __attribute__((weak));
+extern void _ZN5cc4213barEv();
+static VTBL_ENTRY vtc_ee21421[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21421[0]),
+ (VTBL_ENTRY)&_ZN7ee214213fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21421[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee214213fooEv,_ZTv0_n12_N7ee214213fooEv),
+ (VTBL_ENTRY)&_ZN5cc4213barEv,
+};
+extern VTBL_ENTRY _ZTV7ee21421[];
+static VTBL_ENTRY _tg__ZTV6dd1421__7ee21421[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1421[0]),
+};
+extern void _ZN4bb213fooEv();
+extern void _ZN5cc4213barEv();
+static VTBL_ENTRY _tg__ZTV5cc421__6dd1421__7ee21421[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1421[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+ (VTBL_ENTRY)&_ZN5cc4213barEv,
+};
+static VTT_ENTRY vtt_ee21421[] = {
+ {&(_ZTV7ee21421[3]), 3,10},
+ {&(_tg__ZTV6dd1421__7ee21421[3]), 3,3},
+ {&(_tg__ZTV5cc421__6dd1421__7ee21421[4]), 4,6},
+ {&(_ZTV7ee21421[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee21421[];
+extern VTBL_ENTRY _ZTV7ee21421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21421[];
+static VTBL_ENTRY alt_thunk_names630[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee214213fooEv,_ZTv0_n12_N7ee214213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee214213fooEv,_ZThn12_N7ee214213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21421 = { "ee21421", // class name
+ bases_ee21421, 4,
+ &(vtc_ee21421[0]), // expected_vtbl_contents
+ &(vtt_ee21421[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee21421),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21421),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21421),4, //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 ee31421 : virtual dd1421 {
+ int e;
+ virtual void foo(); // _ZN7ee314213fooEv
+ ~ee31421(); // tgen
+ ee31421(); // tgen
+};
+//SIG(1 ee31421) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} v1 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee31421 ::foo(){vfunc_called(this, "_ZN7ee314213fooEv");}
+ee31421 ::~ee31421(){ note_dtor("ee31421", this);} // tgen
+ee31421 ::ee31421(){ note_ctor("ee31421", this);} // tgen
+
+static void Test_ee31421()
+{
+ extern Class_Descriptor cd_ee31421;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee31421, buf);
+ ee31421 *dp, &lv = *(dp=new (buf) ee31421());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee31421)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31421)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc421*), ABISELECT(32,16), "ee31421");
+ check_base_class_offset(lv, (bb21*)(cc421*), ABISELECT(32,16), "ee31421");
+ check_base_class_offset(lv, (cc421*)(dd1421*), ABISELECT(32,16), "ee31421");
+ check_base_class_offset(lv, (dd1421*), ABISELECT(16,8), "ee31421");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31421.e");
+ test_class_info(&lv, &cd_ee31421);
+ dp->~ee31421();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31421(Test_ee31421, "ee31421", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee31421C1Ev();
+extern void _ZN7ee31421D1Ev();
+Name_Map name_map_ee31421[] = {
+ NSPAIR(_ZN7ee31421C1Ev),
+ NSPAIR(_ZN7ee31421D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc421;
+extern VTBL_ENTRY _ZTI5cc421[];
+extern VTBL_ENTRY _ZTV5cc421[];
+extern Class_Descriptor cd_dd1421;
+extern VTBL_ENTRY _ZTI6dd1421[];
+extern VTBL_ENTRY _ZTV6dd1421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1421[];
+static Base_Class bases_ee31421[] = {
+ // 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_bb21, 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_cc421, 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_dd1421, 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 _ZTI7ee31421[];
+extern void _ZN7ee314213fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee314213fooEv,_ZTv0_n12_N7ee314213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee314213fooEv,_ZThn16_N7ee314213fooEv)() __attribute__((weak));
+extern void _ZN5cc4213barEv();
+static VTBL_ENTRY vtc_ee31421[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31421[0]),
+ (VTBL_ENTRY)&_ZN7ee314213fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31421[0]),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31421[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee314213fooEv,_ZTv0_n12_N7ee314213fooEv),
+ (VTBL_ENTRY)&_ZN5cc4213barEv,
+};
+extern VTBL_ENTRY _ZTV7ee31421[];
+static VTBL_ENTRY _tg__ZTV6dd1421__7ee31421[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1421[0]),
+};
+extern void _ZN4bb213fooEv();
+extern void _ZN5cc4213barEv();
+static VTBL_ENTRY _tg__ZTV5cc421__6dd1421__7ee31421[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1421[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+ (VTBL_ENTRY)&_ZN5cc4213barEv,
+};
+static VTT_ENTRY vtt_ee31421[] = {
+ {&(_ZTV7ee31421[4]), 4,14},
+ {&(_ZTV7ee31421[8]), 8,14},
+ {&(_ZTV7ee31421[12]), 12,14},
+ {&(_tg__ZTV6dd1421__7ee31421[3]), 3,3},
+ {&(_tg__ZTV5cc421__6dd1421__7ee31421[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee31421[];
+extern VTBL_ENTRY _ZTV7ee31421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31421[];
+static VTBL_ENTRY alt_thunk_names631[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee314213fooEv,_ZTv0_n12_N7ee314213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee314213fooEv,_ZThn16_N7ee314213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31421 = { "ee31421", // class name
+ bases_ee31421, 4,
+ &(vtc_ee31421[0]), // expected_vtbl_contents
+ &(vtt_ee31421[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee31421),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31421),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31421),5, //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 ee41421 : dd1421 {
+ int e;
+ virtual void bar(); // _ZN7ee414213barEv
+ ~ee41421(); // tgen
+ ee41421(); // tgen
+};
+//SIG(1 ee41421) C1{ BC2{ VBC3{ BC4{ BC5{ v2 Fi} v2 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee41421 ::bar(){vfunc_called(this, "_ZN7ee414213barEv");}
+ee41421 ::~ee41421(){ note_dtor("ee41421", this);} // tgen
+ee41421 ::ee41421(){ note_ctor("ee41421", this);} // tgen
+
+static void Test_ee41421()
+{
+ extern Class_Descriptor cd_ee41421;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee41421, buf);
+ ee41421 *dp, &lv = *(dp=new (buf) ee41421());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee41421)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41421)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc421*), ABISELECT(16,12), "ee41421");
+ check_base_class_offset(lv, (bb21*)(cc421*), ABISELECT(16,12), "ee41421");
+ check_base_class_offset(lv, (cc421*)(dd1421*), ABISELECT(16,12), "ee41421");
+ check_base_class_offset(lv, (dd1421*), 0, "ee41421");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41421.e");
+ test_class_info(&lv, &cd_ee41421);
+ dp->~ee41421();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41421(Test_ee41421, "ee41421", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee41421C1Ev();
+extern void _ZN7ee41421D1Ev();
+Name_Map name_map_ee41421[] = {
+ NSPAIR(_ZN7ee41421C1Ev),
+ NSPAIR(_ZN7ee41421D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc421;
+extern VTBL_ENTRY _ZTI5cc421[];
+extern VTBL_ENTRY _ZTV5cc421[];
+extern Class_Descriptor cd_dd1421;
+extern VTBL_ENTRY _ZTI6dd1421[];
+extern VTBL_ENTRY _ZTV6dd1421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1421[];
+static Base_Class bases_ee41421[] = {
+ // 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_bb21, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc421, 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_dd1421, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41421[];
+extern void _ZN7ee414213barEv();
+extern void _ZN4bb213fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee414213barEv,_ZTv0_n16_N7ee414213barEv)();
+extern void ABISELECT(_ZThn16_N7ee414213barEv,_ZThn12_N7ee414213barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee41421[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41421[0]),
+ (VTBL_ENTRY)&_ZN7ee414213barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41421[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee414213barEv,_ZTv0_n16_N7ee414213barEv),
+};
+extern VTBL_ENTRY _ZTV7ee41421[];
+static VTBL_ENTRY _tg__ZTV6dd1421__7ee41421[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1421[0]),
+};
+extern void _ZN4bb213fooEv();
+extern void _ZN5cc4213barEv();
+static VTBL_ENTRY _tg__ZTV5cc421__6dd1421__7ee41421[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1421[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+ (VTBL_ENTRY)&_ZN5cc4213barEv,
+};
+static VTT_ENTRY vtt_ee41421[] = {
+ {&(_ZTV7ee41421[3]), 3,10},
+ {&(_tg__ZTV6dd1421__7ee41421[3]), 3,3},
+ {&(_tg__ZTV5cc421__6dd1421__7ee41421[4]), 4,6},
+ {&(_ZTV7ee41421[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee41421[];
+extern VTBL_ENTRY _ZTV7ee41421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41421[];
+static VTBL_ENTRY alt_thunk_names632[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee414213barEv,_ZTv0_n16_N7ee414213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee414213barEv,_ZThn12_N7ee414213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41421 = { "ee41421", // class name
+ bases_ee41421, 4,
+ &(vtc_ee41421[0]), // expected_vtbl_contents
+ &(vtt_ee41421[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee41421),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41421),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41421),4, //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 ee51421 : virtual dd1421 {
+ int e;
+ virtual void bar(); // _ZN7ee514213barEv
+ ~ee51421(); // tgen
+ ee51421(); // tgen
+};
+//SIG(1 ee51421) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 Fi} v2 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee51421 ::bar(){vfunc_called(this, "_ZN7ee514213barEv");}
+ee51421 ::~ee51421(){ note_dtor("ee51421", this);} // tgen
+ee51421 ::ee51421(){ note_ctor("ee51421", this);} // tgen
+
+static void Test_ee51421()
+{
+ extern Class_Descriptor cd_ee51421;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee51421, buf);
+ ee51421 *dp, &lv = *(dp=new (buf) ee51421());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee51421)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51421)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc421*), ABISELECT(32,16), "ee51421");
+ check_base_class_offset(lv, (bb21*)(cc421*), ABISELECT(32,16), "ee51421");
+ check_base_class_offset(lv, (cc421*)(dd1421*), ABISELECT(32,16), "ee51421");
+ check_base_class_offset(lv, (dd1421*), ABISELECT(16,8), "ee51421");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51421.e");
+ test_class_info(&lv, &cd_ee51421);
+ dp->~ee51421();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51421(Test_ee51421, "ee51421", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee51421C1Ev();
+extern void _ZN7ee51421D1Ev();
+Name_Map name_map_ee51421[] = {
+ NSPAIR(_ZN7ee51421C1Ev),
+ NSPAIR(_ZN7ee51421D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc421;
+extern VTBL_ENTRY _ZTI5cc421[];
+extern VTBL_ENTRY _ZTV5cc421[];
+extern Class_Descriptor cd_dd1421;
+extern VTBL_ENTRY _ZTI6dd1421[];
+extern VTBL_ENTRY _ZTV6dd1421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1421[];
+static Base_Class bases_ee51421[] = {
+ // 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_bb21, 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_cc421, 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_dd1421, 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 _ZTI7ee51421[];
+extern void _ZN7ee514213barEv();
+extern void _ZN4bb213fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee514213barEv,_ZTv0_n16_N7ee514213barEv)();
+extern void ABISELECT(_ZThn32_N7ee514213barEv,_ZThn16_N7ee514213barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee51421[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51421[0]),
+ (VTBL_ENTRY)&_ZN7ee514213barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51421[0]),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51421[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee514213barEv,_ZTv0_n16_N7ee514213barEv),
+};
+extern VTBL_ENTRY _ZTV7ee51421[];
+static VTBL_ENTRY _tg__ZTV6dd1421__7ee51421[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1421[0]),
+};
+extern void _ZN4bb213fooEv();
+extern void _ZN5cc4213barEv();
+static VTBL_ENTRY _tg__ZTV5cc421__6dd1421__7ee51421[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1421[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+ (VTBL_ENTRY)&_ZN5cc4213barEv,
+};
+static VTT_ENTRY vtt_ee51421[] = {
+ {&(_ZTV7ee51421[4]), 4,14},
+ {&(_ZTV7ee51421[8]), 8,14},
+ {&(_ZTV7ee51421[12]), 12,14},
+ {&(_tg__ZTV6dd1421__7ee51421[3]), 3,3},
+ {&(_tg__ZTV5cc421__6dd1421__7ee51421[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee51421[];
+extern VTBL_ENTRY _ZTV7ee51421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51421[];
+static VTBL_ENTRY alt_thunk_names633[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee514213barEv,_ZTv0_n16_N7ee514213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee514213barEv,_ZThn16_N7ee514213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51421 = { "ee51421", // class name
+ bases_ee51421, 4,
+ &(vtc_ee51421[0]), // expected_vtbl_contents
+ &(vtt_ee51421[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee51421),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51421),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51421),5, //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 ee61421 : dd1421 {
+ int e;
+ virtual void foo(); // _ZN7ee614213fooEv
+ virtual void bar(); // _ZN7ee614213barEv
+ ~ee61421(); // tgen
+ ee61421(); // tgen
+};
+//SIG(1 ee61421) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} v1 Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee61421 ::foo(){vfunc_called(this, "_ZN7ee614213fooEv");}
+void ee61421 ::bar(){vfunc_called(this, "_ZN7ee614213barEv");}
+ee61421 ::~ee61421(){ note_dtor("ee61421", this);} // tgen
+ee61421 ::ee61421(){ note_ctor("ee61421", this);} // tgen
+
+static void Test_ee61421()
+{
+ extern Class_Descriptor cd_ee61421;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee61421, buf);
+ ee61421 *dp, &lv = *(dp=new (buf) ee61421());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee61421)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61421)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc421*), ABISELECT(16,12), "ee61421");
+ check_base_class_offset(lv, (bb21*)(cc421*), ABISELECT(16,12), "ee61421");
+ check_base_class_offset(lv, (cc421*)(dd1421*), ABISELECT(16,12), "ee61421");
+ check_base_class_offset(lv, (dd1421*), 0, "ee61421");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61421.e");
+ test_class_info(&lv, &cd_ee61421);
+ dp->~ee61421();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61421(Test_ee61421, "ee61421", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee61421C1Ev();
+extern void _ZN7ee61421D1Ev();
+Name_Map name_map_ee61421[] = {
+ NSPAIR(_ZN7ee61421C1Ev),
+ NSPAIR(_ZN7ee61421D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc421;
+extern VTBL_ENTRY _ZTI5cc421[];
+extern VTBL_ENTRY _ZTV5cc421[];
+extern Class_Descriptor cd_dd1421;
+extern VTBL_ENTRY _ZTI6dd1421[];
+extern VTBL_ENTRY _ZTV6dd1421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1421[];
+static Base_Class bases_ee61421[] = {
+ // 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_bb21, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc421, 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_dd1421, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61421[];
+extern void _ZN7ee614213fooEv();
+extern void _ZN7ee614213barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee614213fooEv,_ZTv0_n12_N7ee614213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee614213fooEv,_ZThn12_N7ee614213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee614213barEv,_ZTv0_n16_N7ee614213barEv)();
+extern void ABISELECT(_ZThn16_N7ee614213barEv,_ZThn12_N7ee614213barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61421[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61421[0]),
+ (VTBL_ENTRY)&_ZN7ee614213fooEv,
+ (VTBL_ENTRY)&_ZN7ee614213barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61421[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee614213fooEv,_ZTv0_n12_N7ee614213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee614213barEv,_ZTv0_n16_N7ee614213barEv),
+};
+extern VTBL_ENTRY _ZTV7ee61421[];
+static VTBL_ENTRY _tg__ZTV6dd1421__7ee61421[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1421[0]),
+};
+extern void _ZN4bb213fooEv();
+extern void _ZN5cc4213barEv();
+static VTBL_ENTRY _tg__ZTV5cc421__6dd1421__7ee61421[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1421[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+ (VTBL_ENTRY)&_ZN5cc4213barEv,
+};
+static VTT_ENTRY vtt_ee61421[] = {
+ {&(_ZTV7ee61421[3]), 3,11},
+ {&(_tg__ZTV6dd1421__7ee61421[3]), 3,3},
+ {&(_tg__ZTV5cc421__6dd1421__7ee61421[4]), 4,6},
+ {&(_ZTV7ee61421[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee61421[];
+extern VTBL_ENTRY _ZTV7ee61421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61421[];
+static VTBL_ENTRY alt_thunk_names634[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee614213barEv,_ZTv0_n16_N7ee614213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee614213barEv,_ZThn12_N7ee614213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee614213fooEv,_ZTv0_n12_N7ee614213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee614213fooEv,_ZThn12_N7ee614213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61421 = { "ee61421", // class name
+ bases_ee61421, 4,
+ &(vtc_ee61421[0]), // expected_vtbl_contents
+ &(vtt_ee61421[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee61421),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61421),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61421),4, //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 ee71421 : virtual dd1421 {
+ int e;
+ virtual void foo(); // _ZN7ee714213fooEv
+ virtual void bar(); // _ZN7ee714213barEv
+ ~ee71421(); // tgen
+ ee71421(); // tgen
+};
+//SIG(1 ee71421) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} v1 Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee71421 ::foo(){vfunc_called(this, "_ZN7ee714213fooEv");}
+void ee71421 ::bar(){vfunc_called(this, "_ZN7ee714213barEv");}
+ee71421 ::~ee71421(){ note_dtor("ee71421", this);} // tgen
+ee71421 ::ee71421(){ note_ctor("ee71421", this);} // tgen
+
+static void Test_ee71421()
+{
+ extern Class_Descriptor cd_ee71421;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee71421, buf);
+ ee71421 *dp, &lv = *(dp=new (buf) ee71421());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee71421)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71421)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc421*), ABISELECT(32,16), "ee71421");
+ check_base_class_offset(lv, (bb21*)(cc421*), ABISELECT(32,16), "ee71421");
+ check_base_class_offset(lv, (cc421*)(dd1421*), ABISELECT(32,16), "ee71421");
+ check_base_class_offset(lv, (dd1421*), ABISELECT(16,8), "ee71421");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71421.e");
+ test_class_info(&lv, &cd_ee71421);
+ dp->~ee71421();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71421(Test_ee71421, "ee71421", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee71421C1Ev();
+extern void _ZN7ee71421D1Ev();
+Name_Map name_map_ee71421[] = {
+ NSPAIR(_ZN7ee71421C1Ev),
+ NSPAIR(_ZN7ee71421D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc421;
+extern VTBL_ENTRY _ZTI5cc421[];
+extern VTBL_ENTRY _ZTV5cc421[];
+extern Class_Descriptor cd_dd1421;
+extern VTBL_ENTRY _ZTI6dd1421[];
+extern VTBL_ENTRY _ZTV6dd1421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1421[];
+static Base_Class bases_ee71421[] = {
+ // 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_bb21, 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_cc421, 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_dd1421, 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 _ZTI7ee71421[];
+extern void _ZN7ee714213fooEv();
+extern void _ZN7ee714213barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee714213fooEv,_ZTv0_n12_N7ee714213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee714213fooEv,_ZThn16_N7ee714213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee714213barEv,_ZTv0_n16_N7ee714213barEv)();
+extern void ABISELECT(_ZThn32_N7ee714213barEv,_ZThn16_N7ee714213barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71421[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71421[0]),
+ (VTBL_ENTRY)&_ZN7ee714213fooEv,
+ (VTBL_ENTRY)&_ZN7ee714213barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71421[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71421[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee714213fooEv,_ZTv0_n12_N7ee714213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee714213barEv,_ZTv0_n16_N7ee714213barEv),
+};
+extern VTBL_ENTRY _ZTV7ee71421[];
+static VTBL_ENTRY _tg__ZTV6dd1421__7ee71421[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1421[0]),
+};
+extern void _ZN4bb213fooEv();
+extern void _ZN5cc4213barEv();
+static VTBL_ENTRY _tg__ZTV5cc421__6dd1421__7ee71421[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1421[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+ (VTBL_ENTRY)&_ZN5cc4213barEv,
+};
+static VTT_ENTRY vtt_ee71421[] = {
+ {&(_ZTV7ee71421[4]), 4,15},
+ {&(_ZTV7ee71421[9]), 9,15},
+ {&(_ZTV7ee71421[13]), 13,15},
+ {&(_tg__ZTV6dd1421__7ee71421[3]), 3,3},
+ {&(_tg__ZTV5cc421__6dd1421__7ee71421[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee71421[];
+extern VTBL_ENTRY _ZTV7ee71421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71421[];
+static VTBL_ENTRY alt_thunk_names635[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee714213barEv,_ZTv0_n16_N7ee714213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee714213barEv,_ZThn16_N7ee714213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee714213fooEv,_ZTv0_n12_N7ee714213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee714213fooEv,_ZThn16_N7ee714213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71421 = { "ee71421", // class name
+ bases_ee71421, 4,
+ &(vtc_ee71421[0]), // expected_vtbl_contents
+ &(vtt_ee71421[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee71421),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71421),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71421),5, //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 dd2421 : cc421 {
+ int d;
+ virtual void foo(); // _ZN6dd24213fooEv
+ ~dd2421(); // tgen
+ dd2421(); // tgen
+};
+//SIG(-1 dd2421) C1{ BC2{ BC3{ BC4{ v1 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void dd2421 ::foo(){vfunc_called(this, "_ZN6dd24213fooEv");}
+dd2421 ::~dd2421(){ note_dtor("dd2421", this);} // tgen
+dd2421 ::dd2421(){ note_ctor("dd2421", this);} // tgen
+
+static void Test_dd2421()
+{
+ extern Class_Descriptor cd_dd2421;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd2421, buf);
+ dd2421 *dp, &lv = *(dp=new (buf) dd2421());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd2421)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2421)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc421*), 0, "dd2421");
+ check_base_class_offset(lv, (bb21*)(cc421*), 0, "dd2421");
+ check_base_class_offset(lv, (cc421*), 0, "dd2421");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd2421.d");
+ test_class_info(&lv, &cd_dd2421);
+ dp->~dd2421();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2421(Test_dd2421, "dd2421", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd2421C1Ev();
+extern void _ZN6dd2421D1Ev();
+Name_Map name_map_dd2421[] = {
+ NSPAIR(_ZN6dd2421C1Ev),
+ NSPAIR(_ZN6dd2421D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc421;
+extern VTBL_ENTRY _ZTI5cc421[];
+extern VTBL_ENTRY _ZTV5cc421[];
+static Base_Class bases_dd2421[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc421, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI6dd2421[];
+extern void _ZN6dd24213fooEv();
+extern void _ZN5cc4213barEv();
+static VTBL_ENTRY vtc_dd2421[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2421[0]),
+ (VTBL_ENTRY)&_ZN6dd24213fooEv,
+ (VTBL_ENTRY)&_ZN5cc4213barEv,
+};
+extern VTBL_ENTRY _ZTI6dd2421[];
+extern VTBL_ENTRY _ZTV6dd2421[];
+Class_Descriptor cd_dd2421 = { "dd2421", // class name
+ bases_dd2421, 3,
+ &(vtc_dd2421[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd2421),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2421),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 ee02421 : dd2421 {
+ int e;
+ ~ee02421(); // tgen
+ ee02421(); // tgen
+};
+//SIG(1 ee02421) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} v1 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee02421 ::~ee02421(){ note_dtor("ee02421", this);} // tgen
+ee02421 ::ee02421(){ note_ctor("ee02421", this);} // tgen
+
+static void Test_ee02421()
+{
+ extern Class_Descriptor cd_ee02421;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee02421, buf);
+ ee02421 *dp, &lv = *(dp=new (buf) ee02421());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee02421)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02421)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc421*)(dd2421*), 0, "ee02421");
+ check_base_class_offset(lv, (bb21*)(cc421*)(dd2421*), 0, "ee02421");
+ check_base_class_offset(lv, (cc421*)(dd2421*), 0, "ee02421");
+ check_base_class_offset(lv, (dd2421*), 0, "ee02421");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee02421.e");
+ test_class_info(&lv, &cd_ee02421);
+ dp->~ee02421();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02421(Test_ee02421, "ee02421", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee02421C1Ev();
+extern void _ZN7ee02421D1Ev();
+Name_Map name_map_ee02421[] = {
+ NSPAIR(_ZN7ee02421C1Ev),
+ NSPAIR(_ZN7ee02421D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc421;
+extern VTBL_ENTRY _ZTI5cc421[];
+extern VTBL_ENTRY _ZTV5cc421[];
+extern Class_Descriptor cd_dd2421;
+extern VTBL_ENTRY _ZTI6dd2421[];
+extern VTBL_ENTRY _ZTV6dd2421[];
+static Base_Class bases_ee02421[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc421, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2421, 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 _ZTI7ee02421[];
+extern void _ZN6dd24213fooEv();
+extern void _ZN5cc4213barEv();
+static VTBL_ENTRY vtc_ee02421[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02421[0]),
+ (VTBL_ENTRY)&_ZN6dd24213fooEv,
+ (VTBL_ENTRY)&_ZN5cc4213barEv,
+};
+extern VTBL_ENTRY _ZTI7ee02421[];
+extern VTBL_ENTRY _ZTV7ee02421[];
+Class_Descriptor cd_ee02421 = { "ee02421", // class name
+ bases_ee02421, 4,
+ &(vtc_ee02421[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee02421),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02421),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 ee12421 : virtual dd2421 {
+ int e;
+ ~ee12421(); // tgen
+ ee12421(); // tgen
+};
+//SIG(1 ee12421) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} v1 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee12421 ::~ee12421(){ note_dtor("ee12421", this);} // tgen
+ee12421 ::ee12421(){ note_ctor("ee12421", this);} // tgen
+
+static void Test_ee12421()
+{
+ extern Class_Descriptor cd_ee12421;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee12421, buf);
+ ee12421 *dp, &lv = *(dp=new (buf) ee12421());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee12421)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12421)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc421*)(dd2421*), ABISELECT(16,8), "ee12421");
+ check_base_class_offset(lv, (bb21*)(cc421*)(dd2421*), ABISELECT(16,8), "ee12421");
+ check_base_class_offset(lv, (cc421*)(dd2421*), ABISELECT(16,8), "ee12421");
+ check_base_class_offset(lv, (dd2421*), ABISELECT(16,8), "ee12421");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12421.e");
+ test_class_info(&lv, &cd_ee12421);
+ dp->~ee12421();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12421(Test_ee12421, "ee12421", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee12421C1Ev();
+extern void _ZN7ee12421D1Ev();
+Name_Map name_map_ee12421[] = {
+ NSPAIR(_ZN7ee12421C1Ev),
+ NSPAIR(_ZN7ee12421D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc421;
+extern VTBL_ENTRY _ZTI5cc421[];
+extern VTBL_ENTRY _ZTV5cc421[];
+extern Class_Descriptor cd_dd2421;
+extern VTBL_ENTRY _ZTI6dd2421[];
+extern VTBL_ENTRY _ZTV6dd2421[];
+static Base_Class bases_ee12421[] = {
+ // 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_bb21, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc421, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2421, 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 _ZTI7ee12421[];
+extern void _ZN6dd24213fooEv();
+extern void _ZN5cc4213barEv();
+static VTBL_ENTRY vtc_ee12421[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12421[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12421[0]),
+ (VTBL_ENTRY)&_ZN6dd24213fooEv,
+ (VTBL_ENTRY)&_ZN5cc4213barEv,
+};
+extern VTBL_ENTRY _ZTV7ee12421[];
+static VTT_ENTRY vtt_ee12421[] = {
+ {&(_ZTV7ee12421[3]), 3,9},
+ {&(_ZTV7ee12421[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee12421[];
+extern VTBL_ENTRY _ZTV7ee12421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12421[];
+Class_Descriptor cd_ee12421 = { "ee12421", // class name
+ bases_ee12421, 4,
+ &(vtc_ee12421[0]), // expected_vtbl_contents
+ &(vtt_ee12421[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee12421),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12421),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12421),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 ee22421 : dd2421 {
+ int e;
+ virtual void foo(); // _ZN7ee224213fooEv
+ ~ee22421(); // tgen
+ ee22421(); // tgen
+};
+//SIG(1 ee22421) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} v1 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee22421 ::foo(){vfunc_called(this, "_ZN7ee224213fooEv");}
+ee22421 ::~ee22421(){ note_dtor("ee22421", this);} // tgen
+ee22421 ::ee22421(){ note_ctor("ee22421", this);} // tgen
+
+static void Test_ee22421()
+{
+ extern Class_Descriptor cd_ee22421;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee22421, buf);
+ ee22421 *dp, &lv = *(dp=new (buf) ee22421());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee22421)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22421)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc421*)(dd2421*), 0, "ee22421");
+ check_base_class_offset(lv, (bb21*)(cc421*)(dd2421*), 0, "ee22421");
+ check_base_class_offset(lv, (cc421*)(dd2421*), 0, "ee22421");
+ check_base_class_offset(lv, (dd2421*), 0, "ee22421");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee22421.e");
+ test_class_info(&lv, &cd_ee22421);
+ dp->~ee22421();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22421(Test_ee22421, "ee22421", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee22421C1Ev();
+extern void _ZN7ee22421D1Ev();
+Name_Map name_map_ee22421[] = {
+ NSPAIR(_ZN7ee22421C1Ev),
+ NSPAIR(_ZN7ee22421D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc421;
+extern VTBL_ENTRY _ZTI5cc421[];
+extern VTBL_ENTRY _ZTV5cc421[];
+extern Class_Descriptor cd_dd2421;
+extern VTBL_ENTRY _ZTI6dd2421[];
+extern VTBL_ENTRY _ZTV6dd2421[];
+static Base_Class bases_ee22421[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc421, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2421, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee22421[];
+extern void _ZN7ee224213fooEv();
+extern void _ZN5cc4213barEv();
+static VTBL_ENTRY vtc_ee22421[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22421[0]),
+ (VTBL_ENTRY)&_ZN7ee224213fooEv,
+ (VTBL_ENTRY)&_ZN5cc4213barEv,
+};
+extern VTBL_ENTRY _ZTI7ee22421[];
+extern VTBL_ENTRY _ZTV7ee22421[];
+Class_Descriptor cd_ee22421 = { "ee22421", // class name
+ bases_ee22421, 4,
+ &(vtc_ee22421[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee22421),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22421),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 ee32421 : virtual dd2421 {
+ int e;
+ virtual void foo(); // _ZN7ee324213fooEv
+ ~ee32421(); // tgen
+ ee32421(); // tgen
+};
+//SIG(1 ee32421) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} v1 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee32421 ::foo(){vfunc_called(this, "_ZN7ee324213fooEv");}
+ee32421 ::~ee32421(){ note_dtor("ee32421", this);} // tgen
+ee32421 ::ee32421(){ note_ctor("ee32421", this);} // tgen
+
+static void Test_ee32421()
+{
+ extern Class_Descriptor cd_ee32421;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee32421, buf);
+ ee32421 *dp, &lv = *(dp=new (buf) ee32421());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee32421)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32421)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc421*)(dd2421*), ABISELECT(16,8), "ee32421");
+ check_base_class_offset(lv, (bb21*)(cc421*)(dd2421*), ABISELECT(16,8), "ee32421");
+ check_base_class_offset(lv, (cc421*)(dd2421*), ABISELECT(16,8), "ee32421");
+ check_base_class_offset(lv, (dd2421*), ABISELECT(16,8), "ee32421");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32421.e");
+ test_class_info(&lv, &cd_ee32421);
+ dp->~ee32421();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32421(Test_ee32421, "ee32421", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee32421C1Ev();
+extern void _ZN7ee32421D1Ev();
+Name_Map name_map_ee32421[] = {
+ NSPAIR(_ZN7ee32421C1Ev),
+ NSPAIR(_ZN7ee32421D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc421;
+extern VTBL_ENTRY _ZTI5cc421[];
+extern VTBL_ENTRY _ZTV5cc421[];
+extern Class_Descriptor cd_dd2421;
+extern VTBL_ENTRY _ZTI6dd2421[];
+extern VTBL_ENTRY _ZTV6dd2421[];
+static Base_Class bases_ee32421[] = {
+ // 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_bb21, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc421, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2421, 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 _ZTI7ee32421[];
+extern void _ZN7ee324213fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee324213fooEv,_ZTv0_n12_N7ee324213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee324213fooEv,_ZThn8_N7ee324213fooEv)() __attribute__((weak));
+extern void _ZN5cc4213barEv();
+static VTBL_ENTRY vtc_ee32421[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32421[0]),
+ (VTBL_ENTRY)&_ZN7ee324213fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32421[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee324213fooEv,_ZTv0_n12_N7ee324213fooEv),
+ (VTBL_ENTRY)&_ZN5cc4213barEv,
+};
+extern VTBL_ENTRY _ZTV7ee32421[];
+static VTT_ENTRY vtt_ee32421[] = {
+ {&(_ZTV7ee32421[3]), 3,10},
+ {&(_ZTV7ee32421[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee32421[];
+extern VTBL_ENTRY _ZTV7ee32421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32421[];
+static VTBL_ENTRY alt_thunk_names636[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee324213fooEv,_ZTv0_n12_N7ee324213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee324213fooEv,_ZThn8_N7ee324213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32421 = { "ee32421", // class name
+ bases_ee32421, 4,
+ &(vtc_ee32421[0]), // expected_vtbl_contents
+ &(vtt_ee32421[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee32421),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32421),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32421),2, //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 ee42421 : dd2421 {
+ int e;
+ virtual void bar(); // _ZN7ee424213barEv
+ ~ee42421(); // tgen
+ ee42421(); // tgen
+};
+//SIG(1 ee42421) C1{ BC2{ BC3{ BC4{ BC5{ v2 Fi} v2 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee42421 ::bar(){vfunc_called(this, "_ZN7ee424213barEv");}
+ee42421 ::~ee42421(){ note_dtor("ee42421", this);} // tgen
+ee42421 ::ee42421(){ note_ctor("ee42421", this);} // tgen
+
+static void Test_ee42421()
+{
+ extern Class_Descriptor cd_ee42421;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee42421, buf);
+ ee42421 *dp, &lv = *(dp=new (buf) ee42421());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee42421)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42421)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc421*)(dd2421*), 0, "ee42421");
+ check_base_class_offset(lv, (bb21*)(cc421*)(dd2421*), 0, "ee42421");
+ check_base_class_offset(lv, (cc421*)(dd2421*), 0, "ee42421");
+ check_base_class_offset(lv, (dd2421*), 0, "ee42421");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee42421.e");
+ test_class_info(&lv, &cd_ee42421);
+ dp->~ee42421();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42421(Test_ee42421, "ee42421", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee42421C1Ev();
+extern void _ZN7ee42421D1Ev();
+Name_Map name_map_ee42421[] = {
+ NSPAIR(_ZN7ee42421C1Ev),
+ NSPAIR(_ZN7ee42421D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc421;
+extern VTBL_ENTRY _ZTI5cc421[];
+extern VTBL_ENTRY _ZTV5cc421[];
+extern Class_Descriptor cd_dd2421;
+extern VTBL_ENTRY _ZTI6dd2421[];
+extern VTBL_ENTRY _ZTV6dd2421[];
+static Base_Class bases_ee42421[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc421, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2421, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee42421[];
+extern void _ZN6dd24213fooEv();
+extern void _ZN7ee424213barEv();
+static VTBL_ENTRY vtc_ee42421[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42421[0]),
+ (VTBL_ENTRY)&_ZN6dd24213fooEv,
+ (VTBL_ENTRY)&_ZN7ee424213barEv,
+};
+extern VTBL_ENTRY _ZTI7ee42421[];
+extern VTBL_ENTRY _ZTV7ee42421[];
+Class_Descriptor cd_ee42421 = { "ee42421", // class name
+ bases_ee42421, 4,
+ &(vtc_ee42421[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee42421),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42421),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 ee52421 : virtual dd2421 {
+ int e;
+ virtual void bar(); // _ZN7ee524213barEv
+ ~ee52421(); // tgen
+ ee52421(); // tgen
+};
+//SIG(1 ee52421) C1{ VBC2{ BC3{ BC4{ BC5{ v2 Fi} v2 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee52421 ::bar(){vfunc_called(this, "_ZN7ee524213barEv");}
+ee52421 ::~ee52421(){ note_dtor("ee52421", this);} // tgen
+ee52421 ::ee52421(){ note_ctor("ee52421", this);} // tgen
+
+static void Test_ee52421()
+{
+ extern Class_Descriptor cd_ee52421;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee52421, buf);
+ ee52421 *dp, &lv = *(dp=new (buf) ee52421());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee52421)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52421)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc421*)(dd2421*), ABISELECT(16,8), "ee52421");
+ check_base_class_offset(lv, (bb21*)(cc421*)(dd2421*), ABISELECT(16,8), "ee52421");
+ check_base_class_offset(lv, (cc421*)(dd2421*), ABISELECT(16,8), "ee52421");
+ check_base_class_offset(lv, (dd2421*), ABISELECT(16,8), "ee52421");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52421.e");
+ test_class_info(&lv, &cd_ee52421);
+ dp->~ee52421();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52421(Test_ee52421, "ee52421", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee52421C1Ev();
+extern void _ZN7ee52421D1Ev();
+Name_Map name_map_ee52421[] = {
+ NSPAIR(_ZN7ee52421C1Ev),
+ NSPAIR(_ZN7ee52421D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc421;
+extern VTBL_ENTRY _ZTI5cc421[];
+extern VTBL_ENTRY _ZTV5cc421[];
+extern Class_Descriptor cd_dd2421;
+extern VTBL_ENTRY _ZTI6dd2421[];
+extern VTBL_ENTRY _ZTV6dd2421[];
+static Base_Class bases_ee52421[] = {
+ // 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_bb21, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc421, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2421, 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 _ZTI7ee52421[];
+extern void _ZN7ee524213barEv();
+extern void _ZN6dd24213fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee524213barEv,_ZTv0_n16_N7ee524213barEv)();
+extern void ABISELECT(_ZThn16_N7ee524213barEv,_ZThn8_N7ee524213barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee52421[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52421[0]),
+ (VTBL_ENTRY)&_ZN7ee524213barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52421[0]),
+ (VTBL_ENTRY)&_ZN6dd24213fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee524213barEv,_ZTv0_n16_N7ee524213barEv),
+};
+extern VTBL_ENTRY _ZTV7ee52421[];
+static VTT_ENTRY vtt_ee52421[] = {
+ {&(_ZTV7ee52421[3]), 3,10},
+ {&(_ZTV7ee52421[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee52421[];
+extern VTBL_ENTRY _ZTV7ee52421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52421[];
+static VTBL_ENTRY alt_thunk_names637[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee524213barEv,_ZTv0_n16_N7ee524213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee524213barEv,_ZThn8_N7ee524213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52421 = { "ee52421", // class name
+ bases_ee52421, 4,
+ &(vtc_ee52421[0]), // expected_vtbl_contents
+ &(vtt_ee52421[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee52421),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52421),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52421),2, //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 ee62421 : dd2421 {
+ int e;
+ virtual void foo(); // _ZN7ee624213fooEv
+ virtual void bar(); // _ZN7ee624213barEv
+ ~ee62421(); // tgen
+ ee62421(); // tgen
+};
+//SIG(1 ee62421) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} v1 Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62421 ::foo(){vfunc_called(this, "_ZN7ee624213fooEv");}
+void ee62421 ::bar(){vfunc_called(this, "_ZN7ee624213barEv");}
+ee62421 ::~ee62421(){ note_dtor("ee62421", this);} // tgen
+ee62421 ::ee62421(){ note_ctor("ee62421", this);} // tgen
+
+static void Test_ee62421()
+{
+ extern Class_Descriptor cd_ee62421;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee62421, buf);
+ ee62421 *dp, &lv = *(dp=new (buf) ee62421());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee62421)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62421)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc421*)(dd2421*), 0, "ee62421");
+ check_base_class_offset(lv, (bb21*)(cc421*)(dd2421*), 0, "ee62421");
+ check_base_class_offset(lv, (cc421*)(dd2421*), 0, "ee62421");
+ check_base_class_offset(lv, (dd2421*), 0, "ee62421");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee62421.e");
+ test_class_info(&lv, &cd_ee62421);
+ dp->~ee62421();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62421(Test_ee62421, "ee62421", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee62421C1Ev();
+extern void _ZN7ee62421D1Ev();
+Name_Map name_map_ee62421[] = {
+ NSPAIR(_ZN7ee62421C1Ev),
+ NSPAIR(_ZN7ee62421D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc421;
+extern VTBL_ENTRY _ZTI5cc421[];
+extern VTBL_ENTRY _ZTV5cc421[];
+extern Class_Descriptor cd_dd2421;
+extern VTBL_ENTRY _ZTI6dd2421[];
+extern VTBL_ENTRY _ZTV6dd2421[];
+static Base_Class bases_ee62421[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc421, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2421, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee62421[];
+extern void _ZN7ee624213fooEv();
+extern void _ZN7ee624213barEv();
+static VTBL_ENTRY vtc_ee62421[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62421[0]),
+ (VTBL_ENTRY)&_ZN7ee624213fooEv,
+ (VTBL_ENTRY)&_ZN7ee624213barEv,
+};
+extern VTBL_ENTRY _ZTI7ee62421[];
+extern VTBL_ENTRY _ZTV7ee62421[];
+Class_Descriptor cd_ee62421 = { "ee62421", // class name
+ bases_ee62421, 4,
+ &(vtc_ee62421[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee62421),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62421),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 ee72421 : virtual dd2421 {
+ int e;
+ virtual void foo(); // _ZN7ee724213fooEv
+ virtual void bar(); // _ZN7ee724213barEv
+ ~ee72421(); // tgen
+ ee72421(); // tgen
+};
+//SIG(1 ee72421) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} v1 Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72421 ::foo(){vfunc_called(this, "_ZN7ee724213fooEv");}
+void ee72421 ::bar(){vfunc_called(this, "_ZN7ee724213barEv");}
+ee72421 ::~ee72421(){ note_dtor("ee72421", this);} // tgen
+ee72421 ::ee72421(){ note_ctor("ee72421", this);} // tgen
+
+static void Test_ee72421()
+{
+ extern Class_Descriptor cd_ee72421;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee72421, buf);
+ ee72421 *dp, &lv = *(dp=new (buf) ee72421());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee72421)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72421)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc421*)(dd2421*), ABISELECT(16,8), "ee72421");
+ check_base_class_offset(lv, (bb21*)(cc421*)(dd2421*), ABISELECT(16,8), "ee72421");
+ check_base_class_offset(lv, (cc421*)(dd2421*), ABISELECT(16,8), "ee72421");
+ check_base_class_offset(lv, (dd2421*), ABISELECT(16,8), "ee72421");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72421.e");
+ test_class_info(&lv, &cd_ee72421);
+ dp->~ee72421();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72421(Test_ee72421, "ee72421", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee72421C1Ev();
+extern void _ZN7ee72421D1Ev();
+Name_Map name_map_ee72421[] = {
+ NSPAIR(_ZN7ee72421C1Ev),
+ NSPAIR(_ZN7ee72421D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc421;
+extern VTBL_ENTRY _ZTI5cc421[];
+extern VTBL_ENTRY _ZTV5cc421[];
+extern Class_Descriptor cd_dd2421;
+extern VTBL_ENTRY _ZTI6dd2421[];
+extern VTBL_ENTRY _ZTV6dd2421[];
+static Base_Class bases_ee72421[] = {
+ // 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_bb21, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc421, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2421, 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 _ZTI7ee72421[];
+extern void _ZN7ee724213fooEv();
+extern void _ZN7ee724213barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee724213fooEv,_ZTv0_n12_N7ee724213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee724213fooEv,_ZThn8_N7ee724213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee724213barEv,_ZTv0_n16_N7ee724213barEv)();
+extern void ABISELECT(_ZThn16_N7ee724213barEv,_ZThn8_N7ee724213barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72421[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72421[0]),
+ (VTBL_ENTRY)&_ZN7ee724213fooEv,
+ (VTBL_ENTRY)&_ZN7ee724213barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72421[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee724213fooEv,_ZTv0_n12_N7ee724213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee724213barEv,_ZTv0_n16_N7ee724213barEv),
+};
+extern VTBL_ENTRY _ZTV7ee72421[];
+static VTT_ENTRY vtt_ee72421[] = {
+ {&(_ZTV7ee72421[3]), 3,11},
+ {&(_ZTV7ee72421[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee72421[];
+extern VTBL_ENTRY _ZTV7ee72421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72421[];
+static VTBL_ENTRY alt_thunk_names638[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee724213barEv,_ZTv0_n16_N7ee724213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee724213barEv,_ZThn8_N7ee724213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee724213fooEv,_ZTv0_n12_N7ee724213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee724213fooEv,_ZThn8_N7ee724213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72421 = { "ee72421", // class name
+ bases_ee72421, 4,
+ &(vtc_ee72421[0]), // expected_vtbl_contents
+ &(vtt_ee72421[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee72421),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72421),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72421),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names638,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd3421 : virtual cc421 {
+ int d;
+ virtual void foo(); // _ZN6dd34213fooEv
+ ~dd3421(); // tgen
+ dd3421(); // tgen
+};
+//SIG(-1 dd3421) C1{ VBC2{ BC3{ BC4{ v1 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void dd3421 ::foo(){vfunc_called(this, "_ZN6dd34213fooEv");}
+dd3421 ::~dd3421(){ note_dtor("dd3421", this);} // tgen
+dd3421 ::dd3421(){ note_ctor("dd3421", this);} // tgen
+
+static void Test_dd3421()
+{
+ extern Class_Descriptor cd_dd3421;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd3421, buf);
+ dd3421 *dp, &lv = *(dp=new (buf) dd3421());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd3421)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3421)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc421*), ABISELECT(16,8), "dd3421");
+ check_base_class_offset(lv, (bb21*)(cc421*), ABISELECT(16,8), "dd3421");
+ check_base_class_offset(lv, (cc421*), ABISELECT(16,8), "dd3421");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3421.d");
+ test_class_info(&lv, &cd_dd3421);
+ dp->~dd3421();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3421(Test_dd3421, "dd3421", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd3421C1Ev();
+extern void _ZN6dd3421D1Ev();
+Name_Map name_map_dd3421[] = {
+ NSPAIR(_ZN6dd3421C1Ev),
+ NSPAIR(_ZN6dd3421D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc421;
+extern VTBL_ENTRY _ZTI5cc421[];
+extern VTBL_ENTRY _ZTV5cc421[];
+static Base_Class bases_dd3421[] = {
+ // 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_bb21, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc421, 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 _ZTI6dd3421[];
+extern void _ZN6dd34213fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd34213fooEv,_ZTv0_n12_N6dd34213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34213fooEv,_ZThn8_N6dd34213fooEv)() __attribute__((weak));
+extern void _ZN5cc4213barEv();
+static VTBL_ENTRY vtc_dd3421[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3421[0]),
+ (VTBL_ENTRY)&_ZN6dd34213fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3421[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34213fooEv,_ZTv0_n12_N6dd34213fooEv),
+ (VTBL_ENTRY)&_ZN5cc4213barEv,
+};
+extern VTBL_ENTRY _ZTV6dd3421[];
+static VTT_ENTRY vtt_dd3421[] = {
+ {&(_ZTV6dd3421[3]), 3,10},
+ {&(_ZTV6dd3421[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd3421[];
+extern VTBL_ENTRY _ZTV6dd3421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3421[];
+static VTBL_ENTRY alt_thunk_names639[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34213fooEv,_ZTv0_n12_N6dd34213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34213fooEv,_ZThn8_N6dd34213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3421 = { "dd3421", // class name
+ bases_dd3421, 3,
+ &(vtc_dd3421[0]), // expected_vtbl_contents
+ &(vtt_dd3421[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd3421),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3421),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3421),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names639,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03421 : dd3421 {
+ int e;
+ ~ee03421(); // tgen
+ ee03421(); // tgen
+};
+//SIG(1 ee03421) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} v1 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee03421 ::~ee03421(){ note_dtor("ee03421", this);} // tgen
+ee03421 ::ee03421(){ note_ctor("ee03421", this);} // tgen
+
+static void Test_ee03421()
+{
+ extern Class_Descriptor cd_ee03421;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee03421, buf);
+ ee03421 *dp, &lv = *(dp=new (buf) ee03421());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee03421)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03421)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc421*), ABISELECT(16,12), "ee03421");
+ check_base_class_offset(lv, (bb21*)(cc421*), ABISELECT(16,12), "ee03421");
+ check_base_class_offset(lv, (cc421*)(dd3421*), ABISELECT(16,12), "ee03421");
+ check_base_class_offset(lv, (dd3421*), 0, "ee03421");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03421.e");
+ test_class_info(&lv, &cd_ee03421);
+ dp->~ee03421();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03421(Test_ee03421, "ee03421", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee03421C1Ev();
+extern void _ZN7ee03421D1Ev();
+Name_Map name_map_ee03421[] = {
+ NSPAIR(_ZN7ee03421C1Ev),
+ NSPAIR(_ZN7ee03421D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc421;
+extern VTBL_ENTRY _ZTI5cc421[];
+extern VTBL_ENTRY _ZTV5cc421[];
+extern Class_Descriptor cd_dd3421;
+extern VTBL_ENTRY _ZTI6dd3421[];
+extern VTBL_ENTRY _ZTV6dd3421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3421[];
+static Base_Class bases_ee03421[] = {
+ // 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_bb21, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc421, 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_dd3421, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03421[];
+extern void _ZN6dd34213fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd34213fooEv,_ZTv0_n12_N6dd34213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34213fooEv,_ZThn12_N6dd34213fooEv)() __attribute__((weak));
+extern void _ZN5cc4213barEv();
+static VTBL_ENTRY vtc_ee03421[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03421[0]),
+ (VTBL_ENTRY)&_ZN6dd34213fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03421[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34213fooEv,_ZTv0_n12_N6dd34213fooEv),
+ (VTBL_ENTRY)&_ZN5cc4213barEv,
+};
+extern VTBL_ENTRY _ZTV7ee03421[];
+extern void _ZN6dd34213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3421__7ee03421[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3421[0]),
+ (VTBL_ENTRY)&_ZN6dd34213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd34213fooEv,_ZTv0_n12_N6dd34213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34213fooEv,_ZThn12_N6dd34213fooEv)() __attribute__((weak));
+extern void _ZN5cc4213barEv();
+static VTBL_ENTRY _tg__ZTV5cc421__6dd3421__7ee03421[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3421[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34213fooEv,_ZTv0_n12_N6dd34213fooEv),
+ (VTBL_ENTRY)&_ZN5cc4213barEv,
+};
+static VTT_ENTRY vtt_ee03421[] = {
+ {&(_ZTV7ee03421[3]), 3,10},
+ {&(_tg__ZTV6dd3421__7ee03421[3]), 3,4},
+ {&(_tg__ZTV5cc421__6dd3421__7ee03421[4]), 4,6},
+ {&(_ZTV7ee03421[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee03421[];
+extern VTBL_ENTRY _ZTV7ee03421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03421[];
+static VTBL_ENTRY alt_thunk_names640[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34213fooEv,_ZTv0_n12_N6dd34213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34213fooEv,_ZThn12_N6dd34213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34213fooEv,_ZThn12_N6dd34213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03421 = { "ee03421", // class name
+ bases_ee03421, 4,
+ &(vtc_ee03421[0]), // expected_vtbl_contents
+ &(vtt_ee03421[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee03421),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03421),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03421),4, //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 ee13421 : virtual dd3421 {
+ int e;
+ ~ee13421(); // tgen
+ ee13421(); // tgen
+};
+//SIG(1 ee13421) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} v1 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee13421 ::~ee13421(){ note_dtor("ee13421", this);} // tgen
+ee13421 ::ee13421(){ note_ctor("ee13421", this);} // tgen
+
+static void Test_ee13421()
+{
+ extern Class_Descriptor cd_ee13421;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee13421, buf);
+ ee13421 *dp, &lv = *(dp=new (buf) ee13421());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee13421)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13421)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc421*), ABISELECT(32,16), "ee13421");
+ check_base_class_offset(lv, (bb21*)(cc421*), ABISELECT(32,16), "ee13421");
+ check_base_class_offset(lv, (cc421*)(dd3421*), ABISELECT(32,16), "ee13421");
+ check_base_class_offset(lv, (dd3421*), ABISELECT(16,8), "ee13421");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13421.e");
+ test_class_info(&lv, &cd_ee13421);
+ dp->~ee13421();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13421(Test_ee13421, "ee13421", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee13421C1Ev();
+extern void _ZN7ee13421D1Ev();
+Name_Map name_map_ee13421[] = {
+ NSPAIR(_ZN7ee13421C1Ev),
+ NSPAIR(_ZN7ee13421D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc421;
+extern VTBL_ENTRY _ZTI5cc421[];
+extern VTBL_ENTRY _ZTV5cc421[];
+extern Class_Descriptor cd_dd3421;
+extern VTBL_ENTRY _ZTI6dd3421[];
+extern VTBL_ENTRY _ZTV6dd3421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3421[];
+static Base_Class bases_ee13421[] = {
+ // 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_bb21, 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_cc421, 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_dd3421, 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 _ZTI7ee13421[];
+extern void _ZN6dd34213fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd34213fooEv,_ZTv0_n12_N6dd34213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34213fooEv,_ZThn8_N6dd34213fooEv)() __attribute__((weak));
+extern void _ZN5cc4213barEv();
+static VTBL_ENTRY vtc_ee13421[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13421[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13421[0]),
+ (VTBL_ENTRY)&_ZN6dd34213fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13421[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34213fooEv,_ZTv0_n12_N6dd34213fooEv),
+ (VTBL_ENTRY)&_ZN5cc4213barEv,
+};
+extern VTBL_ENTRY _ZTV7ee13421[];
+extern void _ZN6dd34213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3421__7ee13421[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3421[0]),
+ (VTBL_ENTRY)&_ZN6dd34213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd34213fooEv,_ZTv0_n12_N6dd34213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34213fooEv,_ZThn8_N6dd34213fooEv)() __attribute__((weak));
+extern void _ZN5cc4213barEv();
+static VTBL_ENTRY _tg__ZTV5cc421__6dd3421__7ee13421[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3421[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34213fooEv,_ZTv0_n12_N6dd34213fooEv),
+ (VTBL_ENTRY)&_ZN5cc4213barEv,
+};
+static VTT_ENTRY vtt_ee13421[] = {
+ {&(_ZTV7ee13421[4]), 4,15},
+ {&(_ZTV7ee13421[8]), 8,15},
+ {&(_ZTV7ee13421[13]), 13,15},
+ {&(_tg__ZTV6dd3421__7ee13421[3]), 3,4},
+ {&(_tg__ZTV5cc421__6dd3421__7ee13421[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee13421[];
+extern VTBL_ENTRY _ZTV7ee13421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13421[];
+static VTBL_ENTRY alt_thunk_names641[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34213fooEv,_ZTv0_n12_N6dd34213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34213fooEv,_ZThn8_N6dd34213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34213fooEv,_ZThn8_N6dd34213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13421 = { "ee13421", // class name
+ bases_ee13421, 4,
+ &(vtc_ee13421[0]), // expected_vtbl_contents
+ &(vtt_ee13421[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee13421),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13421),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13421),5, //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 ee23421 : dd3421 {
+ int e;
+ virtual void foo(); // _ZN7ee234213fooEv
+ ~ee23421(); // tgen
+ ee23421(); // tgen
+};
+//SIG(1 ee23421) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} v1 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee23421 ::foo(){vfunc_called(this, "_ZN7ee234213fooEv");}
+ee23421 ::~ee23421(){ note_dtor("ee23421", this);} // tgen
+ee23421 ::ee23421(){ note_ctor("ee23421", this);} // tgen
+
+static void Test_ee23421()
+{
+ extern Class_Descriptor cd_ee23421;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee23421, buf);
+ ee23421 *dp, &lv = *(dp=new (buf) ee23421());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee23421)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23421)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc421*), ABISELECT(16,12), "ee23421");
+ check_base_class_offset(lv, (bb21*)(cc421*), ABISELECT(16,12), "ee23421");
+ check_base_class_offset(lv, (cc421*)(dd3421*), ABISELECT(16,12), "ee23421");
+ check_base_class_offset(lv, (dd3421*), 0, "ee23421");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23421.e");
+ test_class_info(&lv, &cd_ee23421);
+ dp->~ee23421();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23421(Test_ee23421, "ee23421", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee23421C1Ev();
+extern void _ZN7ee23421D1Ev();
+Name_Map name_map_ee23421[] = {
+ NSPAIR(_ZN7ee23421C1Ev),
+ NSPAIR(_ZN7ee23421D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc421;
+extern VTBL_ENTRY _ZTI5cc421[];
+extern VTBL_ENTRY _ZTV5cc421[];
+extern Class_Descriptor cd_dd3421;
+extern VTBL_ENTRY _ZTI6dd3421[];
+extern VTBL_ENTRY _ZTV6dd3421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3421[];
+static Base_Class bases_ee23421[] = {
+ // 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_bb21, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc421, 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_dd3421, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23421[];
+extern void _ZN7ee234213fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee234213fooEv,_ZTv0_n12_N7ee234213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee234213fooEv,_ZThn12_N7ee234213fooEv)() __attribute__((weak));
+extern void _ZN5cc4213barEv();
+static VTBL_ENTRY vtc_ee23421[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23421[0]),
+ (VTBL_ENTRY)&_ZN7ee234213fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23421[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee234213fooEv,_ZTv0_n12_N7ee234213fooEv),
+ (VTBL_ENTRY)&_ZN5cc4213barEv,
+};
+extern VTBL_ENTRY _ZTV7ee23421[];
+extern void _ZN6dd34213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3421__7ee23421[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3421[0]),
+ (VTBL_ENTRY)&_ZN6dd34213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd34213fooEv,_ZTv0_n12_N6dd34213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34213fooEv,_ZThn12_N6dd34213fooEv)() __attribute__((weak));
+extern void _ZN5cc4213barEv();
+static VTBL_ENTRY _tg__ZTV5cc421__6dd3421__7ee23421[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3421[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34213fooEv,_ZTv0_n12_N6dd34213fooEv),
+ (VTBL_ENTRY)&_ZN5cc4213barEv,
+};
+static VTT_ENTRY vtt_ee23421[] = {
+ {&(_ZTV7ee23421[3]), 3,10},
+ {&(_tg__ZTV6dd3421__7ee23421[3]), 3,4},
+ {&(_tg__ZTV5cc421__6dd3421__7ee23421[4]), 4,6},
+ {&(_ZTV7ee23421[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee23421[];
+extern VTBL_ENTRY _ZTV7ee23421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23421[];
+static VTBL_ENTRY alt_thunk_names642[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34213fooEv,_ZTv0_n12_N6dd34213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34213fooEv,_ZThn12_N6dd34213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee234213fooEv,_ZTv0_n12_N7ee234213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee234213fooEv,_ZThn12_N7ee234213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23421 = { "ee23421", // class name
+ bases_ee23421, 4,
+ &(vtc_ee23421[0]), // expected_vtbl_contents
+ &(vtt_ee23421[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee23421),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23421),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23421),4, //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 ee33421 : virtual dd3421 {
+ int e;
+ virtual void foo(); // _ZN7ee334213fooEv
+ ~ee33421(); // tgen
+ ee33421(); // tgen
+};
+//SIG(1 ee33421) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} v1 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee33421 ::foo(){vfunc_called(this, "_ZN7ee334213fooEv");}
+ee33421 ::~ee33421(){ note_dtor("ee33421", this);} // tgen
+ee33421 ::ee33421(){ note_ctor("ee33421", this);} // tgen
+
+static void Test_ee33421()
+{
+ extern Class_Descriptor cd_ee33421;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee33421, buf);
+ ee33421 *dp, &lv = *(dp=new (buf) ee33421());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee33421)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33421)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc421*), ABISELECT(32,16), "ee33421");
+ check_base_class_offset(lv, (bb21*)(cc421*), ABISELECT(32,16), "ee33421");
+ check_base_class_offset(lv, (cc421*)(dd3421*), ABISELECT(32,16), "ee33421");
+ check_base_class_offset(lv, (dd3421*), ABISELECT(16,8), "ee33421");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33421.e");
+ test_class_info(&lv, &cd_ee33421);
+ dp->~ee33421();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33421(Test_ee33421, "ee33421", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee33421C1Ev();
+extern void _ZN7ee33421D1Ev();
+Name_Map name_map_ee33421[] = {
+ NSPAIR(_ZN7ee33421C1Ev),
+ NSPAIR(_ZN7ee33421D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc421;
+extern VTBL_ENTRY _ZTI5cc421[];
+extern VTBL_ENTRY _ZTV5cc421[];
+extern Class_Descriptor cd_dd3421;
+extern VTBL_ENTRY _ZTI6dd3421[];
+extern VTBL_ENTRY _ZTV6dd3421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3421[];
+static Base_Class bases_ee33421[] = {
+ // 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_bb21, 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_cc421, 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_dd3421, 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 _ZTI7ee33421[];
+extern void _ZN7ee334213fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee334213fooEv,_ZTv0_n16_N7ee334213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee334213fooEv,_ZThn8_N7ee334213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee334213fooEv,_ZTv0_n12_N7ee334213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee334213fooEv,_ZThn16_N7ee334213fooEv)() __attribute__((weak));
+extern void _ZN5cc4213barEv();
+static VTBL_ENTRY vtc_ee33421[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33421[0]),
+ (VTBL_ENTRY)&_ZN7ee334213fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33421[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee334213fooEv,_ZTv0_n16_N7ee334213fooEv),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33421[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee334213fooEv,_ZTv0_n12_N7ee334213fooEv),
+ (VTBL_ENTRY)&_ZN5cc4213barEv,
+};
+extern VTBL_ENTRY _ZTV7ee33421[];
+extern void _ZN6dd34213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3421__7ee33421[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3421[0]),
+ (VTBL_ENTRY)&_ZN6dd34213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd34213fooEv,_ZTv0_n12_N6dd34213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34213fooEv,_ZThn8_N6dd34213fooEv)() __attribute__((weak));
+extern void _ZN5cc4213barEv();
+static VTBL_ENTRY _tg__ZTV5cc421__6dd3421__7ee33421[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3421[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34213fooEv,_ZTv0_n12_N6dd34213fooEv),
+ (VTBL_ENTRY)&_ZN5cc4213barEv,
+};
+static VTT_ENTRY vtt_ee33421[] = {
+ {&(_ZTV7ee33421[4]), 4,16},
+ {&(_ZTV7ee33421[9]), 9,16},
+ {&(_ZTV7ee33421[14]), 14,16},
+ {&(_tg__ZTV6dd3421__7ee33421[3]), 3,4},
+ {&(_tg__ZTV5cc421__6dd3421__7ee33421[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee33421[];
+extern VTBL_ENTRY _ZTV7ee33421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33421[];
+static VTBL_ENTRY alt_thunk_names643[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34213fooEv,_ZTv0_n12_N6dd34213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34213fooEv,_ZThn8_N6dd34213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee334213fooEv,_ZTv0_n12_N7ee334213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee334213fooEv,_ZThn16_N7ee334213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee334213fooEv,_ZTv0_n16_N7ee334213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee334213fooEv,_ZThn8_N7ee334213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33421 = { "ee33421", // class name
+ bases_ee33421, 4,
+ &(vtc_ee33421[0]), // expected_vtbl_contents
+ &(vtt_ee33421[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee33421),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33421),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33421),5, //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 ee43421 : dd3421 {
+ int e;
+ virtual void bar(); // _ZN7ee434213barEv
+ ~ee43421(); // tgen
+ ee43421(); // tgen
+};
+//SIG(1 ee43421) C1{ BC2{ VBC3{ BC4{ BC5{ v2 Fi} v2 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee43421 ::bar(){vfunc_called(this, "_ZN7ee434213barEv");}
+ee43421 ::~ee43421(){ note_dtor("ee43421", this);} // tgen
+ee43421 ::ee43421(){ note_ctor("ee43421", this);} // tgen
+
+static void Test_ee43421()
+{
+ extern Class_Descriptor cd_ee43421;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee43421, buf);
+ ee43421 *dp, &lv = *(dp=new (buf) ee43421());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee43421)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43421)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc421*), ABISELECT(16,12), "ee43421");
+ check_base_class_offset(lv, (bb21*)(cc421*), ABISELECT(16,12), "ee43421");
+ check_base_class_offset(lv, (cc421*)(dd3421*), ABISELECT(16,12), "ee43421");
+ check_base_class_offset(lv, (dd3421*), 0, "ee43421");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43421.e");
+ test_class_info(&lv, &cd_ee43421);
+ dp->~ee43421();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43421(Test_ee43421, "ee43421", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee43421C1Ev();
+extern void _ZN7ee43421D1Ev();
+Name_Map name_map_ee43421[] = {
+ NSPAIR(_ZN7ee43421C1Ev),
+ NSPAIR(_ZN7ee43421D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc421;
+extern VTBL_ENTRY _ZTI5cc421[];
+extern VTBL_ENTRY _ZTV5cc421[];
+extern Class_Descriptor cd_dd3421;
+extern VTBL_ENTRY _ZTI6dd3421[];
+extern VTBL_ENTRY _ZTV6dd3421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3421[];
+static Base_Class bases_ee43421[] = {
+ // 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_bb21, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc421, 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_dd3421, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43421[];
+extern void _ZN6dd34213fooEv();
+extern void _ZN7ee434213barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd34213fooEv,_ZTv0_n12_N6dd34213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34213fooEv,_ZThn12_N6dd34213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee434213barEv,_ZTv0_n16_N7ee434213barEv)();
+extern void ABISELECT(_ZThn16_N7ee434213barEv,_ZThn12_N7ee434213barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43421[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43421[0]),
+ (VTBL_ENTRY)&_ZN6dd34213fooEv,
+ (VTBL_ENTRY)&_ZN7ee434213barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43421[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34213fooEv,_ZTv0_n12_N6dd34213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee434213barEv,_ZTv0_n16_N7ee434213barEv),
+};
+extern VTBL_ENTRY _ZTV7ee43421[];
+extern void _ZN6dd34213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3421__7ee43421[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3421[0]),
+ (VTBL_ENTRY)&_ZN6dd34213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd34213fooEv,_ZTv0_n12_N6dd34213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34213fooEv,_ZThn12_N6dd34213fooEv)() __attribute__((weak));
+extern void _ZN5cc4213barEv();
+static VTBL_ENTRY _tg__ZTV5cc421__6dd3421__7ee43421[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3421[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34213fooEv,_ZTv0_n12_N6dd34213fooEv),
+ (VTBL_ENTRY)&_ZN5cc4213barEv,
+};
+static VTT_ENTRY vtt_ee43421[] = {
+ {&(_ZTV7ee43421[3]), 3,11},
+ {&(_tg__ZTV6dd3421__7ee43421[3]), 3,4},
+ {&(_tg__ZTV5cc421__6dd3421__7ee43421[4]), 4,6},
+ {&(_ZTV7ee43421[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee43421[];
+extern VTBL_ENTRY _ZTV7ee43421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43421[];
+static VTBL_ENTRY alt_thunk_names644[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee434213barEv,_ZTv0_n16_N7ee434213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee434213barEv,_ZThn12_N7ee434213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34213fooEv,_ZTv0_n12_N6dd34213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34213fooEv,_ZThn12_N6dd34213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34213fooEv,_ZThn12_N6dd34213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43421 = { "ee43421", // class name
+ bases_ee43421, 4,
+ &(vtc_ee43421[0]), // expected_vtbl_contents
+ &(vtt_ee43421[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee43421),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43421),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43421),4, //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 ee53421 : virtual dd3421 {
+ int e;
+ virtual void bar(); // _ZN7ee534213barEv
+ ~ee53421(); // tgen
+ ee53421(); // tgen
+};
+//SIG(1 ee53421) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 Fi} v2 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee53421 ::bar(){vfunc_called(this, "_ZN7ee534213barEv");}
+ee53421 ::~ee53421(){ note_dtor("ee53421", this);} // tgen
+ee53421 ::ee53421(){ note_ctor("ee53421", this);} // tgen
+
+static void Test_ee53421()
+{
+ extern Class_Descriptor cd_ee53421;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee53421, buf);
+ ee53421 *dp, &lv = *(dp=new (buf) ee53421());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee53421)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53421)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc421*), ABISELECT(32,16), "ee53421");
+ check_base_class_offset(lv, (bb21*)(cc421*), ABISELECT(32,16), "ee53421");
+ check_base_class_offset(lv, (cc421*)(dd3421*), ABISELECT(32,16), "ee53421");
+ check_base_class_offset(lv, (dd3421*), ABISELECT(16,8), "ee53421");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53421.e");
+ test_class_info(&lv, &cd_ee53421);
+ dp->~ee53421();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53421(Test_ee53421, "ee53421", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee53421C1Ev();
+extern void _ZN7ee53421D1Ev();
+Name_Map name_map_ee53421[] = {
+ NSPAIR(_ZN7ee53421C1Ev),
+ NSPAIR(_ZN7ee53421D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc421;
+extern VTBL_ENTRY _ZTI5cc421[];
+extern VTBL_ENTRY _ZTV5cc421[];
+extern Class_Descriptor cd_dd3421;
+extern VTBL_ENTRY _ZTI6dd3421[];
+extern VTBL_ENTRY _ZTV6dd3421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3421[];
+static Base_Class bases_ee53421[] = {
+ // 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_bb21, 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_cc421, 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_dd3421, 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 _ZTI7ee53421[];
+extern void _ZN7ee534213barEv();
+extern void _ZN6dd34213fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd34213fooEv,_ZTv0_n12_N6dd34213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34213fooEv,_ZThn8_N6dd34213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee534213barEv,_ZTv0_n16_N7ee534213barEv)();
+extern void ABISELECT(_ZThn32_N7ee534213barEv,_ZThn16_N7ee534213barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53421[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53421[0]),
+ (VTBL_ENTRY)&_ZN7ee534213barEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53421[0]),
+ (VTBL_ENTRY)&_ZN6dd34213fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53421[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34213fooEv,_ZTv0_n12_N6dd34213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee534213barEv,_ZTv0_n16_N7ee534213barEv),
+};
+extern VTBL_ENTRY _ZTV7ee53421[];
+extern void _ZN6dd34213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3421__7ee53421[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3421[0]),
+ (VTBL_ENTRY)&_ZN6dd34213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd34213fooEv,_ZTv0_n12_N6dd34213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34213fooEv,_ZThn8_N6dd34213fooEv)() __attribute__((weak));
+extern void _ZN5cc4213barEv();
+static VTBL_ENTRY _tg__ZTV5cc421__6dd3421__7ee53421[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3421[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34213fooEv,_ZTv0_n12_N6dd34213fooEv),
+ (VTBL_ENTRY)&_ZN5cc4213barEv,
+};
+static VTT_ENTRY vtt_ee53421[] = {
+ {&(_ZTV7ee53421[4]), 4,16},
+ {&(_ZTV7ee53421[9]), 9,16},
+ {&(_ZTV7ee53421[14]), 14,16},
+ {&(_tg__ZTV6dd3421__7ee53421[3]), 3,4},
+ {&(_tg__ZTV5cc421__6dd3421__7ee53421[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee53421[];
+extern VTBL_ENTRY _ZTV7ee53421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53421[];
+static VTBL_ENTRY alt_thunk_names645[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee534213barEv,_ZTv0_n16_N7ee534213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee534213barEv,_ZThn16_N7ee534213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34213fooEv,_ZTv0_n12_N6dd34213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34213fooEv,_ZThn8_N6dd34213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34213fooEv,_ZThn8_N6dd34213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53421 = { "ee53421", // class name
+ bases_ee53421, 4,
+ &(vtc_ee53421[0]), // expected_vtbl_contents
+ &(vtt_ee53421[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee53421),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53421),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53421),5, //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 ee63421 : dd3421 {
+ int e;
+ virtual void foo(); // _ZN7ee634213fooEv
+ virtual void bar(); // _ZN7ee634213barEv
+ ~ee63421(); // tgen
+ ee63421(); // tgen
+};
+//SIG(1 ee63421) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} v1 Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63421 ::foo(){vfunc_called(this, "_ZN7ee634213fooEv");}
+void ee63421 ::bar(){vfunc_called(this, "_ZN7ee634213barEv");}
+ee63421 ::~ee63421(){ note_dtor("ee63421", this);} // tgen
+ee63421 ::ee63421(){ note_ctor("ee63421", this);} // tgen
+
+static void Test_ee63421()
+{
+ extern Class_Descriptor cd_ee63421;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee63421, buf);
+ ee63421 *dp, &lv = *(dp=new (buf) ee63421());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee63421)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63421)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc421*), ABISELECT(16,12), "ee63421");
+ check_base_class_offset(lv, (bb21*)(cc421*), ABISELECT(16,12), "ee63421");
+ check_base_class_offset(lv, (cc421*)(dd3421*), ABISELECT(16,12), "ee63421");
+ check_base_class_offset(lv, (dd3421*), 0, "ee63421");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63421.e");
+ test_class_info(&lv, &cd_ee63421);
+ dp->~ee63421();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63421(Test_ee63421, "ee63421", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee63421C1Ev();
+extern void _ZN7ee63421D1Ev();
+Name_Map name_map_ee63421[] = {
+ NSPAIR(_ZN7ee63421C1Ev),
+ NSPAIR(_ZN7ee63421D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc421;
+extern VTBL_ENTRY _ZTI5cc421[];
+extern VTBL_ENTRY _ZTV5cc421[];
+extern Class_Descriptor cd_dd3421;
+extern VTBL_ENTRY _ZTI6dd3421[];
+extern VTBL_ENTRY _ZTV6dd3421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3421[];
+static Base_Class bases_ee63421[] = {
+ // 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_bb21, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc421, 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_dd3421, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63421[];
+extern void _ZN7ee634213fooEv();
+extern void _ZN7ee634213barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee634213fooEv,_ZTv0_n12_N7ee634213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee634213fooEv,_ZThn12_N7ee634213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee634213barEv,_ZTv0_n16_N7ee634213barEv)();
+extern void ABISELECT(_ZThn16_N7ee634213barEv,_ZThn12_N7ee634213barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63421[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63421[0]),
+ (VTBL_ENTRY)&_ZN7ee634213fooEv,
+ (VTBL_ENTRY)&_ZN7ee634213barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63421[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee634213fooEv,_ZTv0_n12_N7ee634213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee634213barEv,_ZTv0_n16_N7ee634213barEv),
+};
+extern VTBL_ENTRY _ZTV7ee63421[];
+extern void _ZN6dd34213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3421__7ee63421[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3421[0]),
+ (VTBL_ENTRY)&_ZN6dd34213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd34213fooEv,_ZTv0_n12_N6dd34213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34213fooEv,_ZThn12_N6dd34213fooEv)() __attribute__((weak));
+extern void _ZN5cc4213barEv();
+static VTBL_ENTRY _tg__ZTV5cc421__6dd3421__7ee63421[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3421[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34213fooEv,_ZTv0_n12_N6dd34213fooEv),
+ (VTBL_ENTRY)&_ZN5cc4213barEv,
+};
+static VTT_ENTRY vtt_ee63421[] = {
+ {&(_ZTV7ee63421[3]), 3,11},
+ {&(_tg__ZTV6dd3421__7ee63421[3]), 3,4},
+ {&(_tg__ZTV5cc421__6dd3421__7ee63421[4]), 4,6},
+ {&(_ZTV7ee63421[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee63421[];
+extern VTBL_ENTRY _ZTV7ee63421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63421[];
+static VTBL_ENTRY alt_thunk_names646[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34213fooEv,_ZTv0_n12_N6dd34213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34213fooEv,_ZThn12_N6dd34213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee634213barEv,_ZTv0_n16_N7ee634213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee634213barEv,_ZThn12_N7ee634213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee634213fooEv,_ZTv0_n12_N7ee634213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee634213fooEv,_ZThn12_N7ee634213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63421 = { "ee63421", // class name
+ bases_ee63421, 4,
+ &(vtc_ee63421[0]), // expected_vtbl_contents
+ &(vtt_ee63421[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee63421),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63421),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63421),4, //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 ee73421 : virtual dd3421 {
+ int e;
+ virtual void foo(); // _ZN7ee734213fooEv
+ virtual void bar(); // _ZN7ee734213barEv
+ ~ee73421(); // tgen
+ ee73421(); // tgen
+};
+//SIG(1 ee73421) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} v1 Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73421 ::foo(){vfunc_called(this, "_ZN7ee734213fooEv");}
+void ee73421 ::bar(){vfunc_called(this, "_ZN7ee734213barEv");}
+ee73421 ::~ee73421(){ note_dtor("ee73421", this);} // tgen
+ee73421 ::ee73421(){ note_ctor("ee73421", this);} // tgen
+
+static void Test_ee73421()
+{
+ extern Class_Descriptor cd_ee73421;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee73421, buf);
+ ee73421 *dp, &lv = *(dp=new (buf) ee73421());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee73421)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73421)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc421*), ABISELECT(32,16), "ee73421");
+ check_base_class_offset(lv, (bb21*)(cc421*), ABISELECT(32,16), "ee73421");
+ check_base_class_offset(lv, (cc421*)(dd3421*), ABISELECT(32,16), "ee73421");
+ check_base_class_offset(lv, (dd3421*), ABISELECT(16,8), "ee73421");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73421.e");
+ test_class_info(&lv, &cd_ee73421);
+ dp->~ee73421();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73421(Test_ee73421, "ee73421", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee73421C1Ev();
+extern void _ZN7ee73421D1Ev();
+Name_Map name_map_ee73421[] = {
+ NSPAIR(_ZN7ee73421C1Ev),
+ NSPAIR(_ZN7ee73421D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc421;
+extern VTBL_ENTRY _ZTI5cc421[];
+extern VTBL_ENTRY _ZTV5cc421[];
+extern Class_Descriptor cd_dd3421;
+extern VTBL_ENTRY _ZTI6dd3421[];
+extern VTBL_ENTRY _ZTV6dd3421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3421[];
+static Base_Class bases_ee73421[] = {
+ // 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_bb21, 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_cc421, 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_dd3421, 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 _ZTI7ee73421[];
+extern void _ZN7ee734213fooEv();
+extern void _ZN7ee734213barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee734213fooEv,_ZTv0_n16_N7ee734213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee734213fooEv,_ZThn8_N7ee734213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee734213fooEv,_ZTv0_n12_N7ee734213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee734213fooEv,_ZThn16_N7ee734213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee734213barEv,_ZTv0_n16_N7ee734213barEv)();
+extern void ABISELECT(_ZThn32_N7ee734213barEv,_ZThn16_N7ee734213barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73421[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73421[0]),
+ (VTBL_ENTRY)&_ZN7ee734213fooEv,
+ (VTBL_ENTRY)&_ZN7ee734213barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73421[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee734213fooEv,_ZTv0_n16_N7ee734213fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73421[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee734213fooEv,_ZTv0_n12_N7ee734213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee734213barEv,_ZTv0_n16_N7ee734213barEv),
+};
+extern VTBL_ENTRY _ZTV7ee73421[];
+extern void _ZN6dd34213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3421__7ee73421[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3421[0]),
+ (VTBL_ENTRY)&_ZN6dd34213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd34213fooEv,_ZTv0_n12_N6dd34213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34213fooEv,_ZThn8_N6dd34213fooEv)() __attribute__((weak));
+extern void _ZN5cc4213barEv();
+static VTBL_ENTRY _tg__ZTV5cc421__6dd3421__7ee73421[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3421[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34213fooEv,_ZTv0_n12_N6dd34213fooEv),
+ (VTBL_ENTRY)&_ZN5cc4213barEv,
+};
+static VTT_ENTRY vtt_ee73421[] = {
+ {&(_ZTV7ee73421[4]), 4,17},
+ {&(_ZTV7ee73421[10]), 10,17},
+ {&(_ZTV7ee73421[15]), 15,17},
+ {&(_tg__ZTV6dd3421__7ee73421[3]), 3,4},
+ {&(_tg__ZTV5cc421__6dd3421__7ee73421[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee73421[];
+extern VTBL_ENTRY _ZTV7ee73421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73421[];
+static VTBL_ENTRY alt_thunk_names647[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34213fooEv,_ZTv0_n12_N6dd34213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34213fooEv,_ZThn8_N6dd34213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee734213barEv,_ZTv0_n16_N7ee734213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee734213barEv,_ZThn16_N7ee734213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee734213fooEv,_ZTv0_n12_N7ee734213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee734213fooEv,_ZThn16_N7ee734213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee734213fooEv,_ZTv0_n16_N7ee734213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee734213fooEv,_ZThn8_N7ee734213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73421 = { "ee73421", // class name
+ bases_ee73421, 4,
+ &(vtc_ee73421[0]), // expected_vtbl_contents
+ &(vtt_ee73421[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee73421),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73421),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73421),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names647,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd4421 : cc421 {
+ int d;
+ virtual void bar(); // _ZN6dd44213barEv
+ ~dd4421(); // tgen
+ dd4421(); // tgen
+};
+//SIG(-1 dd4421) C1{ BC2{ BC3{ BC4{ v2 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void dd4421 ::bar(){vfunc_called(this, "_ZN6dd44213barEv");}
+dd4421 ::~dd4421(){ note_dtor("dd4421", this);} // tgen
+dd4421 ::dd4421(){ note_ctor("dd4421", this);} // tgen
+
+static void Test_dd4421()
+{
+ extern Class_Descriptor cd_dd4421;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd4421, buf);
+ dd4421 *dp, &lv = *(dp=new (buf) dd4421());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd4421)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4421)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc421*), 0, "dd4421");
+ check_base_class_offset(lv, (bb21*)(cc421*), 0, "dd4421");
+ check_base_class_offset(lv, (cc421*), 0, "dd4421");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd4421.d");
+ test_class_info(&lv, &cd_dd4421);
+ dp->~dd4421();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4421(Test_dd4421, "dd4421", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd4421C1Ev();
+extern void _ZN6dd4421D1Ev();
+Name_Map name_map_dd4421[] = {
+ NSPAIR(_ZN6dd4421C1Ev),
+ NSPAIR(_ZN6dd4421D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc421;
+extern VTBL_ENTRY _ZTI5cc421[];
+extern VTBL_ENTRY _ZTV5cc421[];
+static Base_Class bases_dd4421[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc421, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI6dd4421[];
+extern void _ZN4bb213fooEv();
+extern void _ZN6dd44213barEv();
+static VTBL_ENTRY vtc_dd4421[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4421[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+ (VTBL_ENTRY)&_ZN6dd44213barEv,
+};
+extern VTBL_ENTRY _ZTI6dd4421[];
+extern VTBL_ENTRY _ZTV6dd4421[];
+Class_Descriptor cd_dd4421 = { "dd4421", // class name
+ bases_dd4421, 3,
+ &(vtc_dd4421[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd4421),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4421),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 ee04421 : dd4421 {
+ int e;
+ ~ee04421(); // tgen
+ ee04421(); // tgen
+};
+//SIG(1 ee04421) C1{ BC2{ BC3{ BC4{ BC5{ v2 Fi} v2 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee04421 ::~ee04421(){ note_dtor("ee04421", this);} // tgen
+ee04421 ::ee04421(){ note_ctor("ee04421", this);} // tgen
+
+static void Test_ee04421()
+{
+ extern Class_Descriptor cd_ee04421;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee04421, buf);
+ ee04421 *dp, &lv = *(dp=new (buf) ee04421());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee04421)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04421)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc421*)(dd4421*), 0, "ee04421");
+ check_base_class_offset(lv, (bb21*)(cc421*)(dd4421*), 0, "ee04421");
+ check_base_class_offset(lv, (cc421*)(dd4421*), 0, "ee04421");
+ check_base_class_offset(lv, (dd4421*), 0, "ee04421");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee04421.e");
+ test_class_info(&lv, &cd_ee04421);
+ dp->~ee04421();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04421(Test_ee04421, "ee04421", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee04421C1Ev();
+extern void _ZN7ee04421D1Ev();
+Name_Map name_map_ee04421[] = {
+ NSPAIR(_ZN7ee04421C1Ev),
+ NSPAIR(_ZN7ee04421D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc421;
+extern VTBL_ENTRY _ZTI5cc421[];
+extern VTBL_ENTRY _ZTV5cc421[];
+extern Class_Descriptor cd_dd4421;
+extern VTBL_ENTRY _ZTI6dd4421[];
+extern VTBL_ENTRY _ZTV6dd4421[];
+static Base_Class bases_ee04421[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc421, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4421, 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 _ZTI7ee04421[];
+extern void _ZN4bb213fooEv();
+extern void _ZN6dd44213barEv();
+static VTBL_ENTRY vtc_ee04421[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04421[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+ (VTBL_ENTRY)&_ZN6dd44213barEv,
+};
+extern VTBL_ENTRY _ZTI7ee04421[];
+extern VTBL_ENTRY _ZTV7ee04421[];
+Class_Descriptor cd_ee04421 = { "ee04421", // class name
+ bases_ee04421, 4,
+ &(vtc_ee04421[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee04421),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04421),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 ee14421 : virtual dd4421 {
+ int e;
+ ~ee14421(); // tgen
+ ee14421(); // tgen
+};
+//SIG(1 ee14421) C1{ VBC2{ BC3{ BC4{ BC5{ v2 Fi} v2 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee14421 ::~ee14421(){ note_dtor("ee14421", this);} // tgen
+ee14421 ::ee14421(){ note_ctor("ee14421", this);} // tgen
+
+static void Test_ee14421()
+{
+ extern Class_Descriptor cd_ee14421;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee14421, buf);
+ ee14421 *dp, &lv = *(dp=new (buf) ee14421());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee14421)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14421)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc421*)(dd4421*), ABISELECT(16,8), "ee14421");
+ check_base_class_offset(lv, (bb21*)(cc421*)(dd4421*), ABISELECT(16,8), "ee14421");
+ check_base_class_offset(lv, (cc421*)(dd4421*), ABISELECT(16,8), "ee14421");
+ check_base_class_offset(lv, (dd4421*), ABISELECT(16,8), "ee14421");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14421.e");
+ test_class_info(&lv, &cd_ee14421);
+ dp->~ee14421();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14421(Test_ee14421, "ee14421", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee14421C1Ev();
+extern void _ZN7ee14421D1Ev();
+Name_Map name_map_ee14421[] = {
+ NSPAIR(_ZN7ee14421C1Ev),
+ NSPAIR(_ZN7ee14421D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc421;
+extern VTBL_ENTRY _ZTI5cc421[];
+extern VTBL_ENTRY _ZTV5cc421[];
+extern Class_Descriptor cd_dd4421;
+extern VTBL_ENTRY _ZTI6dd4421[];
+extern VTBL_ENTRY _ZTV6dd4421[];
+static Base_Class bases_ee14421[] = {
+ // 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_bb21, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc421, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4421, 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 _ZTI7ee14421[];
+extern void _ZN4bb213fooEv();
+extern void _ZN6dd44213barEv();
+static VTBL_ENTRY vtc_ee14421[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14421[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14421[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+ (VTBL_ENTRY)&_ZN6dd44213barEv,
+};
+extern VTBL_ENTRY _ZTV7ee14421[];
+static VTT_ENTRY vtt_ee14421[] = {
+ {&(_ZTV7ee14421[3]), 3,9},
+ {&(_ZTV7ee14421[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee14421[];
+extern VTBL_ENTRY _ZTV7ee14421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14421[];
+Class_Descriptor cd_ee14421 = { "ee14421", // class name
+ bases_ee14421, 4,
+ &(vtc_ee14421[0]), // expected_vtbl_contents
+ &(vtt_ee14421[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee14421),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14421),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14421),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 ee24421 : dd4421 {
+ int e;
+ virtual void foo(); // _ZN7ee244213fooEv
+ ~ee24421(); // tgen
+ ee24421(); // tgen
+};
+//SIG(1 ee24421) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} v1 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee24421 ::foo(){vfunc_called(this, "_ZN7ee244213fooEv");}
+ee24421 ::~ee24421(){ note_dtor("ee24421", this);} // tgen
+ee24421 ::ee24421(){ note_ctor("ee24421", this);} // tgen
+
+static void Test_ee24421()
+{
+ extern Class_Descriptor cd_ee24421;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee24421, buf);
+ ee24421 *dp, &lv = *(dp=new (buf) ee24421());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee24421)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24421)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc421*)(dd4421*), 0, "ee24421");
+ check_base_class_offset(lv, (bb21*)(cc421*)(dd4421*), 0, "ee24421");
+ check_base_class_offset(lv, (cc421*)(dd4421*), 0, "ee24421");
+ check_base_class_offset(lv, (dd4421*), 0, "ee24421");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee24421.e");
+ test_class_info(&lv, &cd_ee24421);
+ dp->~ee24421();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24421(Test_ee24421, "ee24421", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee24421C1Ev();
+extern void _ZN7ee24421D1Ev();
+Name_Map name_map_ee24421[] = {
+ NSPAIR(_ZN7ee24421C1Ev),
+ NSPAIR(_ZN7ee24421D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc421;
+extern VTBL_ENTRY _ZTI5cc421[];
+extern VTBL_ENTRY _ZTV5cc421[];
+extern Class_Descriptor cd_dd4421;
+extern VTBL_ENTRY _ZTI6dd4421[];
+extern VTBL_ENTRY _ZTV6dd4421[];
+static Base_Class bases_ee24421[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc421, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4421, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee24421[];
+extern void _ZN7ee244213fooEv();
+extern void _ZN6dd44213barEv();
+static VTBL_ENTRY vtc_ee24421[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24421[0]),
+ (VTBL_ENTRY)&_ZN7ee244213fooEv,
+ (VTBL_ENTRY)&_ZN6dd44213barEv,
+};
+extern VTBL_ENTRY _ZTI7ee24421[];
+extern VTBL_ENTRY _ZTV7ee24421[];
+Class_Descriptor cd_ee24421 = { "ee24421", // class name
+ bases_ee24421, 4,
+ &(vtc_ee24421[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee24421),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24421),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 ee34421 : virtual dd4421 {
+ int e;
+ virtual void foo(); // _ZN7ee344213fooEv
+ ~ee34421(); // tgen
+ ee34421(); // tgen
+};
+//SIG(1 ee34421) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} v1 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee34421 ::foo(){vfunc_called(this, "_ZN7ee344213fooEv");}
+ee34421 ::~ee34421(){ note_dtor("ee34421", this);} // tgen
+ee34421 ::ee34421(){ note_ctor("ee34421", this);} // tgen
+
+static void Test_ee34421()
+{
+ extern Class_Descriptor cd_ee34421;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee34421, buf);
+ ee34421 *dp, &lv = *(dp=new (buf) ee34421());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee34421)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34421)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc421*)(dd4421*), ABISELECT(16,8), "ee34421");
+ check_base_class_offset(lv, (bb21*)(cc421*)(dd4421*), ABISELECT(16,8), "ee34421");
+ check_base_class_offset(lv, (cc421*)(dd4421*), ABISELECT(16,8), "ee34421");
+ check_base_class_offset(lv, (dd4421*), ABISELECT(16,8), "ee34421");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34421.e");
+ test_class_info(&lv, &cd_ee34421);
+ dp->~ee34421();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34421(Test_ee34421, "ee34421", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee34421C1Ev();
+extern void _ZN7ee34421D1Ev();
+Name_Map name_map_ee34421[] = {
+ NSPAIR(_ZN7ee34421C1Ev),
+ NSPAIR(_ZN7ee34421D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc421;
+extern VTBL_ENTRY _ZTI5cc421[];
+extern VTBL_ENTRY _ZTV5cc421[];
+extern Class_Descriptor cd_dd4421;
+extern VTBL_ENTRY _ZTI6dd4421[];
+extern VTBL_ENTRY _ZTV6dd4421[];
+static Base_Class bases_ee34421[] = {
+ // 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_bb21, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc421, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4421, 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 _ZTI7ee34421[];
+extern void _ZN7ee344213fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee344213fooEv,_ZTv0_n12_N7ee344213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee344213fooEv,_ZThn8_N7ee344213fooEv)() __attribute__((weak));
+extern void _ZN6dd44213barEv();
+static VTBL_ENTRY vtc_ee34421[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34421[0]),
+ (VTBL_ENTRY)&_ZN7ee344213fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34421[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee344213fooEv,_ZTv0_n12_N7ee344213fooEv),
+ (VTBL_ENTRY)&_ZN6dd44213barEv,
+};
+extern VTBL_ENTRY _ZTV7ee34421[];
+static VTT_ENTRY vtt_ee34421[] = {
+ {&(_ZTV7ee34421[3]), 3,10},
+ {&(_ZTV7ee34421[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee34421[];
+extern VTBL_ENTRY _ZTV7ee34421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34421[];
+static VTBL_ENTRY alt_thunk_names648[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee344213fooEv,_ZTv0_n12_N7ee344213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee344213fooEv,_ZThn8_N7ee344213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34421 = { "ee34421", // class name
+ bases_ee34421, 4,
+ &(vtc_ee34421[0]), // expected_vtbl_contents
+ &(vtt_ee34421[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee34421),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34421),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34421),2, //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 ee44421 : dd4421 {
+ int e;
+ virtual void bar(); // _ZN7ee444213barEv
+ ~ee44421(); // tgen
+ ee44421(); // tgen
+};
+//SIG(1 ee44421) C1{ BC2{ BC3{ BC4{ BC5{ v2 Fi} v2 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee44421 ::bar(){vfunc_called(this, "_ZN7ee444213barEv");}
+ee44421 ::~ee44421(){ note_dtor("ee44421", this);} // tgen
+ee44421 ::ee44421(){ note_ctor("ee44421", this);} // tgen
+
+static void Test_ee44421()
+{
+ extern Class_Descriptor cd_ee44421;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee44421, buf);
+ ee44421 *dp, &lv = *(dp=new (buf) ee44421());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee44421)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44421)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc421*)(dd4421*), 0, "ee44421");
+ check_base_class_offset(lv, (bb21*)(cc421*)(dd4421*), 0, "ee44421");
+ check_base_class_offset(lv, (cc421*)(dd4421*), 0, "ee44421");
+ check_base_class_offset(lv, (dd4421*), 0, "ee44421");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee44421.e");
+ test_class_info(&lv, &cd_ee44421);
+ dp->~ee44421();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44421(Test_ee44421, "ee44421", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee44421C1Ev();
+extern void _ZN7ee44421D1Ev();
+Name_Map name_map_ee44421[] = {
+ NSPAIR(_ZN7ee44421C1Ev),
+ NSPAIR(_ZN7ee44421D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc421;
+extern VTBL_ENTRY _ZTI5cc421[];
+extern VTBL_ENTRY _ZTV5cc421[];
+extern Class_Descriptor cd_dd4421;
+extern VTBL_ENTRY _ZTI6dd4421[];
+extern VTBL_ENTRY _ZTV6dd4421[];
+static Base_Class bases_ee44421[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc421, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4421, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee44421[];
+extern void _ZN4bb213fooEv();
+extern void _ZN7ee444213barEv();
+static VTBL_ENTRY vtc_ee44421[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44421[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+ (VTBL_ENTRY)&_ZN7ee444213barEv,
+};
+extern VTBL_ENTRY _ZTI7ee44421[];
+extern VTBL_ENTRY _ZTV7ee44421[];
+Class_Descriptor cd_ee44421 = { "ee44421", // class name
+ bases_ee44421, 4,
+ &(vtc_ee44421[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee44421),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44421),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 ee54421 : virtual dd4421 {
+ int e;
+ virtual void bar(); // _ZN7ee544213barEv
+ ~ee54421(); // tgen
+ ee54421(); // tgen
+};
+//SIG(1 ee54421) C1{ VBC2{ BC3{ BC4{ BC5{ v2 Fi} v2 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee54421 ::bar(){vfunc_called(this, "_ZN7ee544213barEv");}
+ee54421 ::~ee54421(){ note_dtor("ee54421", this);} // tgen
+ee54421 ::ee54421(){ note_ctor("ee54421", this);} // tgen
+
+static void Test_ee54421()
+{
+ extern Class_Descriptor cd_ee54421;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee54421, buf);
+ ee54421 *dp, &lv = *(dp=new (buf) ee54421());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee54421)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54421)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc421*)(dd4421*), ABISELECT(16,8), "ee54421");
+ check_base_class_offset(lv, (bb21*)(cc421*)(dd4421*), ABISELECT(16,8), "ee54421");
+ check_base_class_offset(lv, (cc421*)(dd4421*), ABISELECT(16,8), "ee54421");
+ check_base_class_offset(lv, (dd4421*), ABISELECT(16,8), "ee54421");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54421.e");
+ test_class_info(&lv, &cd_ee54421);
+ dp->~ee54421();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54421(Test_ee54421, "ee54421", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee54421C1Ev();
+extern void _ZN7ee54421D1Ev();
+Name_Map name_map_ee54421[] = {
+ NSPAIR(_ZN7ee54421C1Ev),
+ NSPAIR(_ZN7ee54421D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc421;
+extern VTBL_ENTRY _ZTI5cc421[];
+extern VTBL_ENTRY _ZTV5cc421[];
+extern Class_Descriptor cd_dd4421;
+extern VTBL_ENTRY _ZTI6dd4421[];
+extern VTBL_ENTRY _ZTV6dd4421[];
+static Base_Class bases_ee54421[] = {
+ // 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_bb21, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc421, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4421, 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 _ZTI7ee54421[];
+extern void _ZN7ee544213barEv();
+extern void _ZN4bb213fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee544213barEv,_ZTv0_n16_N7ee544213barEv)();
+extern void ABISELECT(_ZThn16_N7ee544213barEv,_ZThn8_N7ee544213barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54421[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54421[0]),
+ (VTBL_ENTRY)&_ZN7ee544213barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54421[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee544213barEv,_ZTv0_n16_N7ee544213barEv),
+};
+extern VTBL_ENTRY _ZTV7ee54421[];
+static VTT_ENTRY vtt_ee54421[] = {
+ {&(_ZTV7ee54421[3]), 3,10},
+ {&(_ZTV7ee54421[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee54421[];
+extern VTBL_ENTRY _ZTV7ee54421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54421[];
+static VTBL_ENTRY alt_thunk_names649[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee544213barEv,_ZTv0_n16_N7ee544213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee544213barEv,_ZThn8_N7ee544213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54421 = { "ee54421", // class name
+ bases_ee54421, 4,
+ &(vtc_ee54421[0]), // expected_vtbl_contents
+ &(vtt_ee54421[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee54421),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54421),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54421),2, //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 ee64421 : dd4421 {
+ int e;
+ virtual void foo(); // _ZN7ee644213fooEv
+ virtual void bar(); // _ZN7ee644213barEv
+ ~ee64421(); // tgen
+ ee64421(); // tgen
+};
+//SIG(1 ee64421) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} v1 Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64421 ::foo(){vfunc_called(this, "_ZN7ee644213fooEv");}
+void ee64421 ::bar(){vfunc_called(this, "_ZN7ee644213barEv");}
+ee64421 ::~ee64421(){ note_dtor("ee64421", this);} // tgen
+ee64421 ::ee64421(){ note_ctor("ee64421", this);} // tgen
+
+static void Test_ee64421()
+{
+ extern Class_Descriptor cd_ee64421;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee64421, buf);
+ ee64421 *dp, &lv = *(dp=new (buf) ee64421());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee64421)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64421)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc421*)(dd4421*), 0, "ee64421");
+ check_base_class_offset(lv, (bb21*)(cc421*)(dd4421*), 0, "ee64421");
+ check_base_class_offset(lv, (cc421*)(dd4421*), 0, "ee64421");
+ check_base_class_offset(lv, (dd4421*), 0, "ee64421");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee64421.e");
+ test_class_info(&lv, &cd_ee64421);
+ dp->~ee64421();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64421(Test_ee64421, "ee64421", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee64421C1Ev();
+extern void _ZN7ee64421D1Ev();
+Name_Map name_map_ee64421[] = {
+ NSPAIR(_ZN7ee64421C1Ev),
+ NSPAIR(_ZN7ee64421D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc421;
+extern VTBL_ENTRY _ZTI5cc421[];
+extern VTBL_ENTRY _ZTV5cc421[];
+extern Class_Descriptor cd_dd4421;
+extern VTBL_ENTRY _ZTI6dd4421[];
+extern VTBL_ENTRY _ZTV6dd4421[];
+static Base_Class bases_ee64421[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc421, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4421, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee64421[];
+extern void _ZN7ee644213fooEv();
+extern void _ZN7ee644213barEv();
+static VTBL_ENTRY vtc_ee64421[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64421[0]),
+ (VTBL_ENTRY)&_ZN7ee644213fooEv,
+ (VTBL_ENTRY)&_ZN7ee644213barEv,
+};
+extern VTBL_ENTRY _ZTI7ee64421[];
+extern VTBL_ENTRY _ZTV7ee64421[];
+Class_Descriptor cd_ee64421 = { "ee64421", // class name
+ bases_ee64421, 4,
+ &(vtc_ee64421[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee64421),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64421),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 ee74421 : virtual dd4421 {
+ int e;
+ virtual void foo(); // _ZN7ee744213fooEv
+ virtual void bar(); // _ZN7ee744213barEv
+ ~ee74421(); // tgen
+ ee74421(); // tgen
+};
+//SIG(1 ee74421) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} v1 Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74421 ::foo(){vfunc_called(this, "_ZN7ee744213fooEv");}
+void ee74421 ::bar(){vfunc_called(this, "_ZN7ee744213barEv");}
+ee74421 ::~ee74421(){ note_dtor("ee74421", this);} // tgen
+ee74421 ::ee74421(){ note_ctor("ee74421", this);} // tgen
+
+static void Test_ee74421()
+{
+ extern Class_Descriptor cd_ee74421;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee74421, buf);
+ ee74421 *dp, &lv = *(dp=new (buf) ee74421());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee74421)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74421)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc421*)(dd4421*), ABISELECT(16,8), "ee74421");
+ check_base_class_offset(lv, (bb21*)(cc421*)(dd4421*), ABISELECT(16,8), "ee74421");
+ check_base_class_offset(lv, (cc421*)(dd4421*), ABISELECT(16,8), "ee74421");
+ check_base_class_offset(lv, (dd4421*), ABISELECT(16,8), "ee74421");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74421.e");
+ test_class_info(&lv, &cd_ee74421);
+ dp->~ee74421();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74421(Test_ee74421, "ee74421", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee74421C1Ev();
+extern void _ZN7ee74421D1Ev();
+Name_Map name_map_ee74421[] = {
+ NSPAIR(_ZN7ee74421C1Ev),
+ NSPAIR(_ZN7ee74421D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc421;
+extern VTBL_ENTRY _ZTI5cc421[];
+extern VTBL_ENTRY _ZTV5cc421[];
+extern Class_Descriptor cd_dd4421;
+extern VTBL_ENTRY _ZTI6dd4421[];
+extern VTBL_ENTRY _ZTV6dd4421[];
+static Base_Class bases_ee74421[] = {
+ // 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_bb21, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc421, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4421, 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 _ZTI7ee74421[];
+extern void _ZN7ee744213fooEv();
+extern void _ZN7ee744213barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee744213fooEv,_ZTv0_n12_N7ee744213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee744213fooEv,_ZThn8_N7ee744213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee744213barEv,_ZTv0_n16_N7ee744213barEv)();
+extern void ABISELECT(_ZThn16_N7ee744213barEv,_ZThn8_N7ee744213barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74421[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74421[0]),
+ (VTBL_ENTRY)&_ZN7ee744213fooEv,
+ (VTBL_ENTRY)&_ZN7ee744213barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74421[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee744213fooEv,_ZTv0_n12_N7ee744213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee744213barEv,_ZTv0_n16_N7ee744213barEv),
+};
+extern VTBL_ENTRY _ZTV7ee74421[];
+static VTT_ENTRY vtt_ee74421[] = {
+ {&(_ZTV7ee74421[3]), 3,11},
+ {&(_ZTV7ee74421[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee74421[];
+extern VTBL_ENTRY _ZTV7ee74421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74421[];
+static VTBL_ENTRY alt_thunk_names650[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee744213barEv,_ZTv0_n16_N7ee744213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee744213barEv,_ZThn8_N7ee744213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee744213fooEv,_ZTv0_n12_N7ee744213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee744213fooEv,_ZThn8_N7ee744213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74421 = { "ee74421", // class name
+ bases_ee74421, 4,
+ &(vtc_ee74421[0]), // expected_vtbl_contents
+ &(vtt_ee74421[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee74421),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74421),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74421),2, //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 dd5421 : virtual cc421 {
+ int d;
+ virtual void bar(); // _ZN6dd54213barEv
+ ~dd5421(); // tgen
+ dd5421(); // tgen
+};
+//SIG(-1 dd5421) C1{ VBC2{ BC3{ BC4{ v2 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void dd5421 ::bar(){vfunc_called(this, "_ZN6dd54213barEv");}
+dd5421 ::~dd5421(){ note_dtor("dd5421", this);} // tgen
+dd5421 ::dd5421(){ note_ctor("dd5421", this);} // tgen
+
+static void Test_dd5421()
+{
+ extern Class_Descriptor cd_dd5421;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd5421, buf);
+ dd5421 *dp, &lv = *(dp=new (buf) dd5421());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd5421)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5421)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc421*), ABISELECT(16,8), "dd5421");
+ check_base_class_offset(lv, (bb21*)(cc421*), ABISELECT(16,8), "dd5421");
+ check_base_class_offset(lv, (cc421*), ABISELECT(16,8), "dd5421");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5421.d");
+ test_class_info(&lv, &cd_dd5421);
+ dp->~dd5421();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5421(Test_dd5421, "dd5421", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd5421C1Ev();
+extern void _ZN6dd5421D1Ev();
+Name_Map name_map_dd5421[] = {
+ NSPAIR(_ZN6dd5421C1Ev),
+ NSPAIR(_ZN6dd5421D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc421;
+extern VTBL_ENTRY _ZTI5cc421[];
+extern VTBL_ENTRY _ZTV5cc421[];
+static Base_Class bases_dd5421[] = {
+ // 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_bb21, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc421, 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 _ZTI6dd5421[];
+extern void _ZN6dd54213barEv();
+extern void _ZN4bb213fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54213barEv,_ZTv0_n16_N6dd54213barEv)();
+extern void ABISELECT(_ZThn16_N6dd54213barEv,_ZThn8_N6dd54213barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd5421[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5421[0]),
+ (VTBL_ENTRY)&_ZN6dd54213barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5421[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54213barEv,_ZTv0_n16_N6dd54213barEv),
+};
+extern VTBL_ENTRY _ZTV6dd5421[];
+static VTT_ENTRY vtt_dd5421[] = {
+ {&(_ZTV6dd5421[3]), 3,10},
+ {&(_ZTV6dd5421[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd5421[];
+extern VTBL_ENTRY _ZTV6dd5421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5421[];
+static VTBL_ENTRY alt_thunk_names651[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54213barEv,_ZTv0_n16_N6dd54213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54213barEv,_ZThn8_N6dd54213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5421 = { "dd5421", // class name
+ bases_dd5421, 3,
+ &(vtc_dd5421[0]), // expected_vtbl_contents
+ &(vtt_dd5421[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd5421),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5421),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5421),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names651,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05421 : dd5421 {
+ int e;
+ ~ee05421(); // tgen
+ ee05421(); // tgen
+};
+//SIG(1 ee05421) C1{ BC2{ VBC3{ BC4{ BC5{ v2 Fi} v2 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee05421 ::~ee05421(){ note_dtor("ee05421", this);} // tgen
+ee05421 ::ee05421(){ note_ctor("ee05421", this);} // tgen
+
+static void Test_ee05421()
+{
+ extern Class_Descriptor cd_ee05421;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee05421, buf);
+ ee05421 *dp, &lv = *(dp=new (buf) ee05421());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee05421)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05421)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc421*), ABISELECT(16,12), "ee05421");
+ check_base_class_offset(lv, (bb21*)(cc421*), ABISELECT(16,12), "ee05421");
+ check_base_class_offset(lv, (cc421*)(dd5421*), ABISELECT(16,12), "ee05421");
+ check_base_class_offset(lv, (dd5421*), 0, "ee05421");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05421.e");
+ test_class_info(&lv, &cd_ee05421);
+ dp->~ee05421();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05421(Test_ee05421, "ee05421", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee05421C1Ev();
+extern void _ZN7ee05421D1Ev();
+Name_Map name_map_ee05421[] = {
+ NSPAIR(_ZN7ee05421C1Ev),
+ NSPAIR(_ZN7ee05421D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc421;
+extern VTBL_ENTRY _ZTI5cc421[];
+extern VTBL_ENTRY _ZTV5cc421[];
+extern Class_Descriptor cd_dd5421;
+extern VTBL_ENTRY _ZTI6dd5421[];
+extern VTBL_ENTRY _ZTV6dd5421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5421[];
+static Base_Class bases_ee05421[] = {
+ // 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_bb21, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc421, 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_dd5421, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05421[];
+extern void _ZN6dd54213barEv();
+extern void _ZN4bb213fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54213barEv,_ZTv0_n16_N6dd54213barEv)();
+extern void ABISELECT(_ZThn16_N6dd54213barEv,_ZThn12_N6dd54213barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee05421[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05421[0]),
+ (VTBL_ENTRY)&_ZN6dd54213barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05421[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54213barEv,_ZTv0_n16_N6dd54213barEv),
+};
+extern VTBL_ENTRY _ZTV7ee05421[];
+extern void _ZN6dd54213barEv();
+static VTBL_ENTRY _tg__ZTV6dd5421__7ee05421[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5421[0]),
+ (VTBL_ENTRY)&_ZN6dd54213barEv,
+};
+extern void _ZN4bb213fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54213barEv,_ZTv0_n16_N6dd54213barEv)();
+extern void ABISELECT(_ZThn16_N6dd54213barEv,_ZThn12_N6dd54213barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc421__6dd5421__7ee05421[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5421[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54213barEv,_ZTv0_n16_N6dd54213barEv),
+};
+static VTT_ENTRY vtt_ee05421[] = {
+ {&(_ZTV7ee05421[3]), 3,10},
+ {&(_tg__ZTV6dd5421__7ee05421[3]), 3,4},
+ {&(_tg__ZTV5cc421__6dd5421__7ee05421[4]), 4,6},
+ {&(_ZTV7ee05421[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee05421[];
+extern VTBL_ENTRY _ZTV7ee05421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05421[];
+static VTBL_ENTRY alt_thunk_names652[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54213barEv,_ZTv0_n16_N6dd54213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54213barEv,_ZThn12_N6dd54213barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54213barEv,_ZThn12_N6dd54213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05421 = { "ee05421", // class name
+ bases_ee05421, 4,
+ &(vtc_ee05421[0]), // expected_vtbl_contents
+ &(vtt_ee05421[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee05421),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05421),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05421),4, //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 ee15421 : virtual dd5421 {
+ int e;
+ ~ee15421(); // tgen
+ ee15421(); // tgen
+};
+//SIG(1 ee15421) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 Fi} v2 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee15421 ::~ee15421(){ note_dtor("ee15421", this);} // tgen
+ee15421 ::ee15421(){ note_ctor("ee15421", this);} // tgen
+
+static void Test_ee15421()
+{
+ extern Class_Descriptor cd_ee15421;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee15421, buf);
+ ee15421 *dp, &lv = *(dp=new (buf) ee15421());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee15421)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15421)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc421*), ABISELECT(32,16), "ee15421");
+ check_base_class_offset(lv, (bb21*)(cc421*), ABISELECT(32,16), "ee15421");
+ check_base_class_offset(lv, (cc421*)(dd5421*), ABISELECT(32,16), "ee15421");
+ check_base_class_offset(lv, (dd5421*), ABISELECT(16,8), "ee15421");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15421.e");
+ test_class_info(&lv, &cd_ee15421);
+ dp->~ee15421();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15421(Test_ee15421, "ee15421", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee15421C1Ev();
+extern void _ZN7ee15421D1Ev();
+Name_Map name_map_ee15421[] = {
+ NSPAIR(_ZN7ee15421C1Ev),
+ NSPAIR(_ZN7ee15421D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc421;
+extern VTBL_ENTRY _ZTI5cc421[];
+extern VTBL_ENTRY _ZTV5cc421[];
+extern Class_Descriptor cd_dd5421;
+extern VTBL_ENTRY _ZTI6dd5421[];
+extern VTBL_ENTRY _ZTV6dd5421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5421[];
+static Base_Class bases_ee15421[] = {
+ // 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_bb21, 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_cc421, 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_dd5421, 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 _ZTI7ee15421[];
+extern void _ZN6dd54213barEv();
+extern void _ZN4bb213fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54213barEv,_ZTv0_n16_N6dd54213barEv)();
+extern void ABISELECT(_ZThn16_N6dd54213barEv,_ZThn8_N6dd54213barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee15421[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15421[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15421[0]),
+ (VTBL_ENTRY)&_ZN6dd54213barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15421[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54213barEv,_ZTv0_n16_N6dd54213barEv),
+};
+extern VTBL_ENTRY _ZTV7ee15421[];
+extern void _ZN6dd54213barEv();
+static VTBL_ENTRY _tg__ZTV6dd5421__7ee15421[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5421[0]),
+ (VTBL_ENTRY)&_ZN6dd54213barEv,
+};
+extern void _ZN4bb213fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54213barEv,_ZTv0_n16_N6dd54213barEv)();
+extern void ABISELECT(_ZThn16_N6dd54213barEv,_ZThn8_N6dd54213barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc421__6dd5421__7ee15421[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5421[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54213barEv,_ZTv0_n16_N6dd54213barEv),
+};
+static VTT_ENTRY vtt_ee15421[] = {
+ {&(_ZTV7ee15421[4]), 4,15},
+ {&(_ZTV7ee15421[8]), 8,15},
+ {&(_ZTV7ee15421[13]), 13,15},
+ {&(_tg__ZTV6dd5421__7ee15421[3]), 3,4},
+ {&(_tg__ZTV5cc421__6dd5421__7ee15421[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee15421[];
+extern VTBL_ENTRY _ZTV7ee15421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15421[];
+static VTBL_ENTRY alt_thunk_names653[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54213barEv,_ZTv0_n16_N6dd54213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54213barEv,_ZThn8_N6dd54213barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54213barEv,_ZThn8_N6dd54213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15421 = { "ee15421", // class name
+ bases_ee15421, 4,
+ &(vtc_ee15421[0]), // expected_vtbl_contents
+ &(vtt_ee15421[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee15421),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15421),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15421),5, //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 ee25421 : dd5421 {
+ int e;
+ virtual void foo(); // _ZN7ee254213fooEv
+ ~ee25421(); // tgen
+ ee25421(); // tgen
+};
+//SIG(1 ee25421) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} v1 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee25421 ::foo(){vfunc_called(this, "_ZN7ee254213fooEv");}
+ee25421 ::~ee25421(){ note_dtor("ee25421", this);} // tgen
+ee25421 ::ee25421(){ note_ctor("ee25421", this);} // tgen
+
+static void Test_ee25421()
+{
+ extern Class_Descriptor cd_ee25421;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee25421, buf);
+ ee25421 *dp, &lv = *(dp=new (buf) ee25421());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee25421)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25421)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc421*), ABISELECT(16,12), "ee25421");
+ check_base_class_offset(lv, (bb21*)(cc421*), ABISELECT(16,12), "ee25421");
+ check_base_class_offset(lv, (cc421*)(dd5421*), ABISELECT(16,12), "ee25421");
+ check_base_class_offset(lv, (dd5421*), 0, "ee25421");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25421.e");
+ test_class_info(&lv, &cd_ee25421);
+ dp->~ee25421();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25421(Test_ee25421, "ee25421", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee25421C1Ev();
+extern void _ZN7ee25421D1Ev();
+Name_Map name_map_ee25421[] = {
+ NSPAIR(_ZN7ee25421C1Ev),
+ NSPAIR(_ZN7ee25421D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc421;
+extern VTBL_ENTRY _ZTI5cc421[];
+extern VTBL_ENTRY _ZTV5cc421[];
+extern Class_Descriptor cd_dd5421;
+extern VTBL_ENTRY _ZTI6dd5421[];
+extern VTBL_ENTRY _ZTV6dd5421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5421[];
+static Base_Class bases_ee25421[] = {
+ // 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_bb21, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc421, 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_dd5421, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25421[];
+extern void _ZN6dd54213barEv();
+extern void _ZN7ee254213fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee254213fooEv,_ZTv0_n12_N7ee254213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee254213fooEv,_ZThn12_N7ee254213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd54213barEv,_ZTv0_n16_N6dd54213barEv)();
+extern void ABISELECT(_ZThn16_N6dd54213barEv,_ZThn12_N6dd54213barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25421[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25421[0]),
+ (VTBL_ENTRY)&_ZN6dd54213barEv,
+ (VTBL_ENTRY)&_ZN7ee254213fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25421[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee254213fooEv,_ZTv0_n12_N7ee254213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54213barEv,_ZTv0_n16_N6dd54213barEv),
+};
+extern VTBL_ENTRY _ZTV7ee25421[];
+extern void _ZN6dd54213barEv();
+static VTBL_ENTRY _tg__ZTV6dd5421__7ee25421[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5421[0]),
+ (VTBL_ENTRY)&_ZN6dd54213barEv,
+};
+extern void _ZN4bb213fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54213barEv,_ZTv0_n16_N6dd54213barEv)();
+extern void ABISELECT(_ZThn16_N6dd54213barEv,_ZThn12_N6dd54213barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc421__6dd5421__7ee25421[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5421[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54213barEv,_ZTv0_n16_N6dd54213barEv),
+};
+static VTT_ENTRY vtt_ee25421[] = {
+ {&(_ZTV7ee25421[3]), 3,11},
+ {&(_tg__ZTV6dd5421__7ee25421[3]), 3,4},
+ {&(_tg__ZTV5cc421__6dd5421__7ee25421[4]), 4,6},
+ {&(_ZTV7ee25421[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee25421[];
+extern VTBL_ENTRY _ZTV7ee25421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25421[];
+static VTBL_ENTRY alt_thunk_names654[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54213barEv,_ZTv0_n16_N6dd54213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54213barEv,_ZThn12_N6dd54213barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54213barEv,_ZThn12_N6dd54213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee254213fooEv,_ZTv0_n12_N7ee254213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee254213fooEv,_ZThn12_N7ee254213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25421 = { "ee25421", // class name
+ bases_ee25421, 4,
+ &(vtc_ee25421[0]), // expected_vtbl_contents
+ &(vtt_ee25421[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee25421),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25421),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25421),4, //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 ee35421 : virtual dd5421 {
+ int e;
+ virtual void foo(); // _ZN7ee354213fooEv
+ ~ee35421(); // tgen
+ ee35421(); // tgen
+};
+//SIG(1 ee35421) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} v1 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee35421 ::foo(){vfunc_called(this, "_ZN7ee354213fooEv");}
+ee35421 ::~ee35421(){ note_dtor("ee35421", this);} // tgen
+ee35421 ::ee35421(){ note_ctor("ee35421", this);} // tgen
+
+static void Test_ee35421()
+{
+ extern Class_Descriptor cd_ee35421;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee35421, buf);
+ ee35421 *dp, &lv = *(dp=new (buf) ee35421());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee35421)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35421)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc421*), ABISELECT(32,16), "ee35421");
+ check_base_class_offset(lv, (bb21*)(cc421*), ABISELECT(32,16), "ee35421");
+ check_base_class_offset(lv, (cc421*)(dd5421*), ABISELECT(32,16), "ee35421");
+ check_base_class_offset(lv, (dd5421*), ABISELECT(16,8), "ee35421");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35421.e");
+ test_class_info(&lv, &cd_ee35421);
+ dp->~ee35421();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35421(Test_ee35421, "ee35421", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee35421C1Ev();
+extern void _ZN7ee35421D1Ev();
+Name_Map name_map_ee35421[] = {
+ NSPAIR(_ZN7ee35421C1Ev),
+ NSPAIR(_ZN7ee35421D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc421;
+extern VTBL_ENTRY _ZTI5cc421[];
+extern VTBL_ENTRY _ZTV5cc421[];
+extern Class_Descriptor cd_dd5421;
+extern VTBL_ENTRY _ZTI6dd5421[];
+extern VTBL_ENTRY _ZTV6dd5421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5421[];
+static Base_Class bases_ee35421[] = {
+ // 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_bb21, 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_cc421, 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_dd5421, 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 _ZTI7ee35421[];
+extern void _ZN7ee354213fooEv();
+extern void _ZN6dd54213barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee354213fooEv,_ZTv0_n12_N7ee354213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee354213fooEv,_ZThn16_N7ee354213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd54213barEv,_ZTv0_n16_N6dd54213barEv)();
+extern void ABISELECT(_ZThn16_N6dd54213barEv,_ZThn8_N6dd54213barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35421[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35421[0]),
+ (VTBL_ENTRY)&_ZN7ee354213fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35421[0]),
+ (VTBL_ENTRY)&_ZN6dd54213barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35421[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee354213fooEv,_ZTv0_n12_N7ee354213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54213barEv,_ZTv0_n16_N6dd54213barEv),
+};
+extern VTBL_ENTRY _ZTV7ee35421[];
+extern void _ZN6dd54213barEv();
+static VTBL_ENTRY _tg__ZTV6dd5421__7ee35421[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5421[0]),
+ (VTBL_ENTRY)&_ZN6dd54213barEv,
+};
+extern void _ZN4bb213fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54213barEv,_ZTv0_n16_N6dd54213barEv)();
+extern void ABISELECT(_ZThn16_N6dd54213barEv,_ZThn8_N6dd54213barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc421__6dd5421__7ee35421[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5421[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54213barEv,_ZTv0_n16_N6dd54213barEv),
+};
+static VTT_ENTRY vtt_ee35421[] = {
+ {&(_ZTV7ee35421[4]), 4,16},
+ {&(_ZTV7ee35421[9]), 9,16},
+ {&(_ZTV7ee35421[14]), 14,16},
+ {&(_tg__ZTV6dd5421__7ee35421[3]), 3,4},
+ {&(_tg__ZTV5cc421__6dd5421__7ee35421[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee35421[];
+extern VTBL_ENTRY _ZTV7ee35421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35421[];
+static VTBL_ENTRY alt_thunk_names655[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54213barEv,_ZTv0_n16_N6dd54213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54213barEv,_ZThn8_N6dd54213barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54213barEv,_ZThn8_N6dd54213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee354213fooEv,_ZTv0_n12_N7ee354213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee354213fooEv,_ZThn16_N7ee354213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35421 = { "ee35421", // class name
+ bases_ee35421, 4,
+ &(vtc_ee35421[0]), // expected_vtbl_contents
+ &(vtt_ee35421[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee35421),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35421),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35421),5, //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 ee45421 : dd5421 {
+ int e;
+ virtual void bar(); // _ZN7ee454213barEv
+ ~ee45421(); // tgen
+ ee45421(); // tgen
+};
+//SIG(1 ee45421) C1{ BC2{ VBC3{ BC4{ BC5{ v2 Fi} v2 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee45421 ::bar(){vfunc_called(this, "_ZN7ee454213barEv");}
+ee45421 ::~ee45421(){ note_dtor("ee45421", this);} // tgen
+ee45421 ::ee45421(){ note_ctor("ee45421", this);} // tgen
+
+static void Test_ee45421()
+{
+ extern Class_Descriptor cd_ee45421;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee45421, buf);
+ ee45421 *dp, &lv = *(dp=new (buf) ee45421());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee45421)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45421)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc421*), ABISELECT(16,12), "ee45421");
+ check_base_class_offset(lv, (bb21*)(cc421*), ABISELECT(16,12), "ee45421");
+ check_base_class_offset(lv, (cc421*)(dd5421*), ABISELECT(16,12), "ee45421");
+ check_base_class_offset(lv, (dd5421*), 0, "ee45421");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45421.e");
+ test_class_info(&lv, &cd_ee45421);
+ dp->~ee45421();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45421(Test_ee45421, "ee45421", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee45421C1Ev();
+extern void _ZN7ee45421D1Ev();
+Name_Map name_map_ee45421[] = {
+ NSPAIR(_ZN7ee45421C1Ev),
+ NSPAIR(_ZN7ee45421D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc421;
+extern VTBL_ENTRY _ZTI5cc421[];
+extern VTBL_ENTRY _ZTV5cc421[];
+extern Class_Descriptor cd_dd5421;
+extern VTBL_ENTRY _ZTI6dd5421[];
+extern VTBL_ENTRY _ZTV6dd5421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5421[];
+static Base_Class bases_ee45421[] = {
+ // 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_bb21, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc421, 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_dd5421, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45421[];
+extern void _ZN7ee454213barEv();
+extern void _ZN4bb213fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee454213barEv,_ZTv0_n16_N7ee454213barEv)();
+extern void ABISELECT(_ZThn16_N7ee454213barEv,_ZThn12_N7ee454213barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee45421[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45421[0]),
+ (VTBL_ENTRY)&_ZN7ee454213barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45421[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee454213barEv,_ZTv0_n16_N7ee454213barEv),
+};
+extern VTBL_ENTRY _ZTV7ee45421[];
+extern void _ZN6dd54213barEv();
+static VTBL_ENTRY _tg__ZTV6dd5421__7ee45421[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5421[0]),
+ (VTBL_ENTRY)&_ZN6dd54213barEv,
+};
+extern void _ZN4bb213fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54213barEv,_ZTv0_n16_N6dd54213barEv)();
+extern void ABISELECT(_ZThn16_N6dd54213barEv,_ZThn12_N6dd54213barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc421__6dd5421__7ee45421[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5421[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54213barEv,_ZTv0_n16_N6dd54213barEv),
+};
+static VTT_ENTRY vtt_ee45421[] = {
+ {&(_ZTV7ee45421[3]), 3,10},
+ {&(_tg__ZTV6dd5421__7ee45421[3]), 3,4},
+ {&(_tg__ZTV5cc421__6dd5421__7ee45421[4]), 4,6},
+ {&(_ZTV7ee45421[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee45421[];
+extern VTBL_ENTRY _ZTV7ee45421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45421[];
+static VTBL_ENTRY alt_thunk_names656[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54213barEv,_ZTv0_n16_N6dd54213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54213barEv,_ZThn12_N6dd54213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee454213barEv,_ZTv0_n16_N7ee454213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee454213barEv,_ZThn12_N7ee454213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45421 = { "ee45421", // class name
+ bases_ee45421, 4,
+ &(vtc_ee45421[0]), // expected_vtbl_contents
+ &(vtt_ee45421[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee45421),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45421),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45421),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names656,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee55421 : virtual dd5421 {
+ int e;
+ virtual void bar(); // _ZN7ee554213barEv
+ ~ee55421(); // tgen
+ ee55421(); // tgen
+};
+//SIG(1 ee55421) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 Fi} v2 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee55421 ::bar(){vfunc_called(this, "_ZN7ee554213barEv");}
+ee55421 ::~ee55421(){ note_dtor("ee55421", this);} // tgen
+ee55421 ::ee55421(){ note_ctor("ee55421", this);} // tgen
+
+static void Test_ee55421()
+{
+ extern Class_Descriptor cd_ee55421;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee55421, buf);
+ ee55421 *dp, &lv = *(dp=new (buf) ee55421());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee55421)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55421)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc421*), ABISELECT(32,16), "ee55421");
+ check_base_class_offset(lv, (bb21*)(cc421*), ABISELECT(32,16), "ee55421");
+ check_base_class_offset(lv, (cc421*)(dd5421*), ABISELECT(32,16), "ee55421");
+ check_base_class_offset(lv, (dd5421*), ABISELECT(16,8), "ee55421");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55421.e");
+ test_class_info(&lv, &cd_ee55421);
+ dp->~ee55421();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55421(Test_ee55421, "ee55421", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee55421C1Ev();
+extern void _ZN7ee55421D1Ev();
+Name_Map name_map_ee55421[] = {
+ NSPAIR(_ZN7ee55421C1Ev),
+ NSPAIR(_ZN7ee55421D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc421;
+extern VTBL_ENTRY _ZTI5cc421[];
+extern VTBL_ENTRY _ZTV5cc421[];
+extern Class_Descriptor cd_dd5421;
+extern VTBL_ENTRY _ZTI6dd5421[];
+extern VTBL_ENTRY _ZTV6dd5421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5421[];
+static Base_Class bases_ee55421[] = {
+ // 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_bb21, 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_cc421, 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_dd5421, 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 _ZTI7ee55421[];
+extern void _ZN7ee554213barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee554213barEv,_ZTv0_n16_N7ee554213barEv)();
+extern void ABISELECT(_ZThn16_N7ee554213barEv,_ZThn8_N7ee554213barEv)() __attribute__((weak));
+extern void _ZN4bb213fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee554213barEv,_ZTv0_n16_N7ee554213barEv)();
+extern void ABISELECT(_ZThn32_N7ee554213barEv,_ZThn16_N7ee554213barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee55421[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55421[0]),
+ (VTBL_ENTRY)&_ZN7ee554213barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55421[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee554213barEv,_ZTv0_n16_N7ee554213barEv),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55421[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee554213barEv,_ZTv0_n16_N7ee554213barEv),
+};
+extern VTBL_ENTRY _ZTV7ee55421[];
+extern void _ZN6dd54213barEv();
+static VTBL_ENTRY _tg__ZTV6dd5421__7ee55421[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5421[0]),
+ (VTBL_ENTRY)&_ZN6dd54213barEv,
+};
+extern void _ZN4bb213fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54213barEv,_ZTv0_n16_N6dd54213barEv)();
+extern void ABISELECT(_ZThn16_N6dd54213barEv,_ZThn8_N6dd54213barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc421__6dd5421__7ee55421[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5421[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54213barEv,_ZTv0_n16_N6dd54213barEv),
+};
+static VTT_ENTRY vtt_ee55421[] = {
+ {&(_ZTV7ee55421[4]), 4,16},
+ {&(_ZTV7ee55421[9]), 9,16},
+ {&(_ZTV7ee55421[14]), 14,16},
+ {&(_tg__ZTV6dd5421__7ee55421[3]), 3,4},
+ {&(_tg__ZTV5cc421__6dd5421__7ee55421[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee55421[];
+extern VTBL_ENTRY _ZTV7ee55421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55421[];
+static VTBL_ENTRY alt_thunk_names657[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54213barEv,_ZTv0_n16_N6dd54213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54213barEv,_ZThn8_N6dd54213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee554213barEv,_ZTv0_n16_N7ee554213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee554213barEv,_ZThn16_N7ee554213barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee554213barEv,_ZThn8_N7ee554213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55421 = { "ee55421", // class name
+ bases_ee55421, 4,
+ &(vtc_ee55421[0]), // expected_vtbl_contents
+ &(vtt_ee55421[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee55421),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55421),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55421),5, //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 ee65421 : dd5421 {
+ int e;
+ virtual void foo(); // _ZN7ee654213fooEv
+ virtual void bar(); // _ZN7ee654213barEv
+ ~ee65421(); // tgen
+ ee65421(); // tgen
+};
+//SIG(1 ee65421) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} v1 Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65421 ::foo(){vfunc_called(this, "_ZN7ee654213fooEv");}
+void ee65421 ::bar(){vfunc_called(this, "_ZN7ee654213barEv");}
+ee65421 ::~ee65421(){ note_dtor("ee65421", this);} // tgen
+ee65421 ::ee65421(){ note_ctor("ee65421", this);} // tgen
+
+static void Test_ee65421()
+{
+ extern Class_Descriptor cd_ee65421;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee65421, buf);
+ ee65421 *dp, &lv = *(dp=new (buf) ee65421());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee65421)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65421)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc421*), ABISELECT(16,12), "ee65421");
+ check_base_class_offset(lv, (bb21*)(cc421*), ABISELECT(16,12), "ee65421");
+ check_base_class_offset(lv, (cc421*)(dd5421*), ABISELECT(16,12), "ee65421");
+ check_base_class_offset(lv, (dd5421*), 0, "ee65421");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65421.e");
+ test_class_info(&lv, &cd_ee65421);
+ dp->~ee65421();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65421(Test_ee65421, "ee65421", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee65421C1Ev();
+extern void _ZN7ee65421D1Ev();
+Name_Map name_map_ee65421[] = {
+ NSPAIR(_ZN7ee65421C1Ev),
+ NSPAIR(_ZN7ee65421D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc421;
+extern VTBL_ENTRY _ZTI5cc421[];
+extern VTBL_ENTRY _ZTV5cc421[];
+extern Class_Descriptor cd_dd5421;
+extern VTBL_ENTRY _ZTI6dd5421[];
+extern VTBL_ENTRY _ZTV6dd5421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5421[];
+static Base_Class bases_ee65421[] = {
+ // 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_bb21, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc421, 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_dd5421, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65421[];
+extern void _ZN7ee654213barEv();
+extern void _ZN7ee654213fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee654213fooEv,_ZTv0_n12_N7ee654213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee654213fooEv,_ZThn12_N7ee654213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee654213barEv,_ZTv0_n16_N7ee654213barEv)();
+extern void ABISELECT(_ZThn16_N7ee654213barEv,_ZThn12_N7ee654213barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65421[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65421[0]),
+ (VTBL_ENTRY)&_ZN7ee654213barEv,
+ (VTBL_ENTRY)&_ZN7ee654213fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65421[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee654213fooEv,_ZTv0_n12_N7ee654213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee654213barEv,_ZTv0_n16_N7ee654213barEv),
+};
+extern VTBL_ENTRY _ZTV7ee65421[];
+extern void _ZN6dd54213barEv();
+static VTBL_ENTRY _tg__ZTV6dd5421__7ee65421[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5421[0]),
+ (VTBL_ENTRY)&_ZN6dd54213barEv,
+};
+extern void _ZN4bb213fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54213barEv,_ZTv0_n16_N6dd54213barEv)();
+extern void ABISELECT(_ZThn16_N6dd54213barEv,_ZThn12_N6dd54213barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc421__6dd5421__7ee65421[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5421[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54213barEv,_ZTv0_n16_N6dd54213barEv),
+};
+static VTT_ENTRY vtt_ee65421[] = {
+ {&(_ZTV7ee65421[3]), 3,11},
+ {&(_tg__ZTV6dd5421__7ee65421[3]), 3,4},
+ {&(_tg__ZTV5cc421__6dd5421__7ee65421[4]), 4,6},
+ {&(_ZTV7ee65421[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee65421[];
+extern VTBL_ENTRY _ZTV7ee65421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65421[];
+static VTBL_ENTRY alt_thunk_names658[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54213barEv,_ZTv0_n16_N6dd54213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54213barEv,_ZThn12_N6dd54213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee654213barEv,_ZTv0_n16_N7ee654213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee654213barEv,_ZThn12_N7ee654213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee654213fooEv,_ZTv0_n12_N7ee654213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee654213fooEv,_ZThn12_N7ee654213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65421 = { "ee65421", // class name
+ bases_ee65421, 4,
+ &(vtc_ee65421[0]), // expected_vtbl_contents
+ &(vtt_ee65421[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee65421),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65421),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65421),4, //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 ee75421 : virtual dd5421 {
+ int e;
+ virtual void foo(); // _ZN7ee754213fooEv
+ virtual void bar(); // _ZN7ee754213barEv
+ ~ee75421(); // tgen
+ ee75421(); // tgen
+};
+//SIG(1 ee75421) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} v1 Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75421 ::foo(){vfunc_called(this, "_ZN7ee754213fooEv");}
+void ee75421 ::bar(){vfunc_called(this, "_ZN7ee754213barEv");}
+ee75421 ::~ee75421(){ note_dtor("ee75421", this);} // tgen
+ee75421 ::ee75421(){ note_ctor("ee75421", this);} // tgen
+
+static void Test_ee75421()
+{
+ extern Class_Descriptor cd_ee75421;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee75421, buf);
+ ee75421 *dp, &lv = *(dp=new (buf) ee75421());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee75421)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75421)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc421*), ABISELECT(32,16), "ee75421");
+ check_base_class_offset(lv, (bb21*)(cc421*), ABISELECT(32,16), "ee75421");
+ check_base_class_offset(lv, (cc421*)(dd5421*), ABISELECT(32,16), "ee75421");
+ check_base_class_offset(lv, (dd5421*), ABISELECT(16,8), "ee75421");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75421.e");
+ test_class_info(&lv, &cd_ee75421);
+ dp->~ee75421();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75421(Test_ee75421, "ee75421", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee75421C1Ev();
+extern void _ZN7ee75421D1Ev();
+Name_Map name_map_ee75421[] = {
+ NSPAIR(_ZN7ee75421C1Ev),
+ NSPAIR(_ZN7ee75421D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc421;
+extern VTBL_ENTRY _ZTI5cc421[];
+extern VTBL_ENTRY _ZTV5cc421[];
+extern Class_Descriptor cd_dd5421;
+extern VTBL_ENTRY _ZTI6dd5421[];
+extern VTBL_ENTRY _ZTV6dd5421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5421[];
+static Base_Class bases_ee75421[] = {
+ // 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_bb21, 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_cc421, 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_dd5421, 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 _ZTI7ee75421[];
+extern void _ZN7ee754213fooEv();
+extern void _ZN7ee754213barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee754213barEv,_ZTv0_n16_N7ee754213barEv)();
+extern void ABISELECT(_ZThn16_N7ee754213barEv,_ZThn8_N7ee754213barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee754213fooEv,_ZTv0_n12_N7ee754213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee754213fooEv,_ZThn16_N7ee754213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee754213barEv,_ZTv0_n16_N7ee754213barEv)();
+extern void ABISELECT(_ZThn32_N7ee754213barEv,_ZThn16_N7ee754213barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75421[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75421[0]),
+ (VTBL_ENTRY)&_ZN7ee754213fooEv,
+ (VTBL_ENTRY)&_ZN7ee754213barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75421[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee754213barEv,_ZTv0_n16_N7ee754213barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75421[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee754213fooEv,_ZTv0_n12_N7ee754213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee754213barEv,_ZTv0_n16_N7ee754213barEv),
+};
+extern VTBL_ENTRY _ZTV7ee75421[];
+extern void _ZN6dd54213barEv();
+static VTBL_ENTRY _tg__ZTV6dd5421__7ee75421[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5421[0]),
+ (VTBL_ENTRY)&_ZN6dd54213barEv,
+};
+extern void _ZN4bb213fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54213barEv,_ZTv0_n16_N6dd54213barEv)();
+extern void ABISELECT(_ZThn16_N6dd54213barEv,_ZThn8_N6dd54213barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc421__6dd5421__7ee75421[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5421[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54213barEv,_ZTv0_n16_N6dd54213barEv),
+};
+static VTT_ENTRY vtt_ee75421[] = {
+ {&(_ZTV7ee75421[4]), 4,17},
+ {&(_ZTV7ee75421[10]), 10,17},
+ {&(_ZTV7ee75421[15]), 15,17},
+ {&(_tg__ZTV6dd5421__7ee75421[3]), 3,4},
+ {&(_tg__ZTV5cc421__6dd5421__7ee75421[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee75421[];
+extern VTBL_ENTRY _ZTV7ee75421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75421[];
+static VTBL_ENTRY alt_thunk_names659[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54213barEv,_ZTv0_n16_N6dd54213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54213barEv,_ZThn8_N6dd54213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee754213fooEv,_ZTv0_n12_N7ee754213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee754213fooEv,_ZThn16_N7ee754213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee754213barEv,_ZTv0_n16_N7ee754213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee754213barEv,_ZThn16_N7ee754213barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee754213barEv,_ZThn8_N7ee754213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75421 = { "ee75421", // class name
+ bases_ee75421, 4,
+ &(vtc_ee75421[0]), // expected_vtbl_contents
+ &(vtt_ee75421[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee75421),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75421),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75421),5, //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 dd6421 : cc421 {
+ int d;
+ virtual void bar(); // _ZN6dd64213barEv
+ virtual void foo(); // _ZN6dd64213fooEv
+ ~dd6421(); // tgen
+ dd6421(); // tgen
+};
+//SIG(-1 dd6421) C1{ BC2{ BC3{ BC4{ v2 Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void dd6421 ::bar(){vfunc_called(this, "_ZN6dd64213barEv");}
+void dd6421 ::foo(){vfunc_called(this, "_ZN6dd64213fooEv");}
+dd6421 ::~dd6421(){ note_dtor("dd6421", this);} // tgen
+dd6421 ::dd6421(){ note_ctor("dd6421", this);} // tgen
+
+static void Test_dd6421()
+{
+ extern Class_Descriptor cd_dd6421;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd6421, buf);
+ dd6421 *dp, &lv = *(dp=new (buf) dd6421());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd6421)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6421)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc421*), 0, "dd6421");
+ check_base_class_offset(lv, (bb21*)(cc421*), 0, "dd6421");
+ check_base_class_offset(lv, (cc421*), 0, "dd6421");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd6421.d");
+ test_class_info(&lv, &cd_dd6421);
+ dp->~dd6421();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6421(Test_dd6421, "dd6421", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd6421C1Ev();
+extern void _ZN6dd6421D1Ev();
+Name_Map name_map_dd6421[] = {
+ NSPAIR(_ZN6dd6421C1Ev),
+ NSPAIR(_ZN6dd6421D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc421;
+extern VTBL_ENTRY _ZTI5cc421[];
+extern VTBL_ENTRY _ZTV5cc421[];
+static Base_Class bases_dd6421[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc421, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI6dd6421[];
+extern void _ZN6dd64213fooEv();
+extern void _ZN6dd64213barEv();
+static VTBL_ENTRY vtc_dd6421[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6421[0]),
+ (VTBL_ENTRY)&_ZN6dd64213fooEv,
+ (VTBL_ENTRY)&_ZN6dd64213barEv,
+};
+extern VTBL_ENTRY _ZTI6dd6421[];
+extern VTBL_ENTRY _ZTV6dd6421[];
+Class_Descriptor cd_dd6421 = { "dd6421", // class name
+ bases_dd6421, 3,
+ &(vtc_dd6421[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd6421),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6421),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 ee06421 : dd6421 {
+ int e;
+ ~ee06421(); // tgen
+ ee06421(); // tgen
+};
+//SIG(1 ee06421) C1{ BC2{ BC3{ BC4{ BC5{ v2 Fi} v2 Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee06421 ::~ee06421(){ note_dtor("ee06421", this);} // tgen
+ee06421 ::ee06421(){ note_ctor("ee06421", this);} // tgen
+
+static void Test_ee06421()
+{
+ extern Class_Descriptor cd_ee06421;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee06421, buf);
+ ee06421 *dp, &lv = *(dp=new (buf) ee06421());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee06421)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06421)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc421*)(dd6421*), 0, "ee06421");
+ check_base_class_offset(lv, (bb21*)(cc421*)(dd6421*), 0, "ee06421");
+ check_base_class_offset(lv, (cc421*)(dd6421*), 0, "ee06421");
+ check_base_class_offset(lv, (dd6421*), 0, "ee06421");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee06421.e");
+ test_class_info(&lv, &cd_ee06421);
+ dp->~ee06421();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06421(Test_ee06421, "ee06421", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee06421C1Ev();
+extern void _ZN7ee06421D1Ev();
+Name_Map name_map_ee06421[] = {
+ NSPAIR(_ZN7ee06421C1Ev),
+ NSPAIR(_ZN7ee06421D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc421;
+extern VTBL_ENTRY _ZTI5cc421[];
+extern VTBL_ENTRY _ZTV5cc421[];
+extern Class_Descriptor cd_dd6421;
+extern VTBL_ENTRY _ZTI6dd6421[];
+extern VTBL_ENTRY _ZTV6dd6421[];
+static Base_Class bases_ee06421[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc421, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6421, 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 _ZTI7ee06421[];
+extern void _ZN6dd64213fooEv();
+extern void _ZN6dd64213barEv();
+static VTBL_ENTRY vtc_ee06421[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06421[0]),
+ (VTBL_ENTRY)&_ZN6dd64213fooEv,
+ (VTBL_ENTRY)&_ZN6dd64213barEv,
+};
+extern VTBL_ENTRY _ZTI7ee06421[];
+extern VTBL_ENTRY _ZTV7ee06421[];
+Class_Descriptor cd_ee06421 = { "ee06421", // class name
+ bases_ee06421, 4,
+ &(vtc_ee06421[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee06421),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06421),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 ee16421 : virtual dd6421 {
+ int e;
+ ~ee16421(); // tgen
+ ee16421(); // tgen
+};
+//SIG(1 ee16421) C1{ VBC2{ BC3{ BC4{ BC5{ v2 Fi} v2 Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee16421 ::~ee16421(){ note_dtor("ee16421", this);} // tgen
+ee16421 ::ee16421(){ note_ctor("ee16421", this);} // tgen
+
+static void Test_ee16421()
+{
+ extern Class_Descriptor cd_ee16421;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee16421, buf);
+ ee16421 *dp, &lv = *(dp=new (buf) ee16421());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee16421)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16421)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc421*)(dd6421*), ABISELECT(16,8), "ee16421");
+ check_base_class_offset(lv, (bb21*)(cc421*)(dd6421*), ABISELECT(16,8), "ee16421");
+ check_base_class_offset(lv, (cc421*)(dd6421*), ABISELECT(16,8), "ee16421");
+ check_base_class_offset(lv, (dd6421*), ABISELECT(16,8), "ee16421");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16421.e");
+ test_class_info(&lv, &cd_ee16421);
+ dp->~ee16421();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16421(Test_ee16421, "ee16421", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee16421C1Ev();
+extern void _ZN7ee16421D1Ev();
+Name_Map name_map_ee16421[] = {
+ NSPAIR(_ZN7ee16421C1Ev),
+ NSPAIR(_ZN7ee16421D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc421;
+extern VTBL_ENTRY _ZTI5cc421[];
+extern VTBL_ENTRY _ZTV5cc421[];
+extern Class_Descriptor cd_dd6421;
+extern VTBL_ENTRY _ZTI6dd6421[];
+extern VTBL_ENTRY _ZTV6dd6421[];
+static Base_Class bases_ee16421[] = {
+ // 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_bb21, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc421, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6421, 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 _ZTI7ee16421[];
+extern void _ZN6dd64213fooEv();
+extern void _ZN6dd64213barEv();
+static VTBL_ENTRY vtc_ee16421[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16421[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16421[0]),
+ (VTBL_ENTRY)&_ZN6dd64213fooEv,
+ (VTBL_ENTRY)&_ZN6dd64213barEv,
+};
+extern VTBL_ENTRY _ZTV7ee16421[];
+static VTT_ENTRY vtt_ee16421[] = {
+ {&(_ZTV7ee16421[3]), 3,9},
+ {&(_ZTV7ee16421[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee16421[];
+extern VTBL_ENTRY _ZTV7ee16421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16421[];
+Class_Descriptor cd_ee16421 = { "ee16421", // class name
+ bases_ee16421, 4,
+ &(vtc_ee16421[0]), // expected_vtbl_contents
+ &(vtt_ee16421[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee16421),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16421),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16421),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 ee26421 : dd6421 {
+ int e;
+ virtual void foo(); // _ZN7ee264213fooEv
+ ~ee26421(); // tgen
+ ee26421(); // tgen
+};
+//SIG(1 ee26421) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} v1 Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26421 ::foo(){vfunc_called(this, "_ZN7ee264213fooEv");}
+ee26421 ::~ee26421(){ note_dtor("ee26421", this);} // tgen
+ee26421 ::ee26421(){ note_ctor("ee26421", this);} // tgen
+
+static void Test_ee26421()
+{
+ extern Class_Descriptor cd_ee26421;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee26421, buf);
+ ee26421 *dp, &lv = *(dp=new (buf) ee26421());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee26421)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26421)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc421*)(dd6421*), 0, "ee26421");
+ check_base_class_offset(lv, (bb21*)(cc421*)(dd6421*), 0, "ee26421");
+ check_base_class_offset(lv, (cc421*)(dd6421*), 0, "ee26421");
+ check_base_class_offset(lv, (dd6421*), 0, "ee26421");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee26421.e");
+ test_class_info(&lv, &cd_ee26421);
+ dp->~ee26421();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26421(Test_ee26421, "ee26421", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee26421C1Ev();
+extern void _ZN7ee26421D1Ev();
+Name_Map name_map_ee26421[] = {
+ NSPAIR(_ZN7ee26421C1Ev),
+ NSPAIR(_ZN7ee26421D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc421;
+extern VTBL_ENTRY _ZTI5cc421[];
+extern VTBL_ENTRY _ZTV5cc421[];
+extern Class_Descriptor cd_dd6421;
+extern VTBL_ENTRY _ZTI6dd6421[];
+extern VTBL_ENTRY _ZTV6dd6421[];
+static Base_Class bases_ee26421[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc421, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6421, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee26421[];
+extern void _ZN7ee264213fooEv();
+extern void _ZN6dd64213barEv();
+static VTBL_ENTRY vtc_ee26421[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26421[0]),
+ (VTBL_ENTRY)&_ZN7ee264213fooEv,
+ (VTBL_ENTRY)&_ZN6dd64213barEv,
+};
+extern VTBL_ENTRY _ZTI7ee26421[];
+extern VTBL_ENTRY _ZTV7ee26421[];
+Class_Descriptor cd_ee26421 = { "ee26421", // class name
+ bases_ee26421, 4,
+ &(vtc_ee26421[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee26421),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26421),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 ee36421 : virtual dd6421 {
+ int e;
+ virtual void foo(); // _ZN7ee364213fooEv
+ ~ee36421(); // tgen
+ ee36421(); // tgen
+};
+//SIG(1 ee36421) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} v1 Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36421 ::foo(){vfunc_called(this, "_ZN7ee364213fooEv");}
+ee36421 ::~ee36421(){ note_dtor("ee36421", this);} // tgen
+ee36421 ::ee36421(){ note_ctor("ee36421", this);} // tgen
+
+static void Test_ee36421()
+{
+ extern Class_Descriptor cd_ee36421;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee36421, buf);
+ ee36421 *dp, &lv = *(dp=new (buf) ee36421());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee36421)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36421)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc421*)(dd6421*), ABISELECT(16,8), "ee36421");
+ check_base_class_offset(lv, (bb21*)(cc421*)(dd6421*), ABISELECT(16,8), "ee36421");
+ check_base_class_offset(lv, (cc421*)(dd6421*), ABISELECT(16,8), "ee36421");
+ check_base_class_offset(lv, (dd6421*), ABISELECT(16,8), "ee36421");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36421.e");
+ test_class_info(&lv, &cd_ee36421);
+ dp->~ee36421();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36421(Test_ee36421, "ee36421", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee36421C1Ev();
+extern void _ZN7ee36421D1Ev();
+Name_Map name_map_ee36421[] = {
+ NSPAIR(_ZN7ee36421C1Ev),
+ NSPAIR(_ZN7ee36421D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc421;
+extern VTBL_ENTRY _ZTI5cc421[];
+extern VTBL_ENTRY _ZTV5cc421[];
+extern Class_Descriptor cd_dd6421;
+extern VTBL_ENTRY _ZTI6dd6421[];
+extern VTBL_ENTRY _ZTV6dd6421[];
+static Base_Class bases_ee36421[] = {
+ // 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_bb21, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc421, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6421, 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 _ZTI7ee36421[];
+extern void _ZN7ee364213fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee364213fooEv,_ZTv0_n12_N7ee364213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee364213fooEv,_ZThn8_N7ee364213fooEv)() __attribute__((weak));
+extern void _ZN6dd64213barEv();
+static VTBL_ENTRY vtc_ee36421[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36421[0]),
+ (VTBL_ENTRY)&_ZN7ee364213fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36421[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee364213fooEv,_ZTv0_n12_N7ee364213fooEv),
+ (VTBL_ENTRY)&_ZN6dd64213barEv,
+};
+extern VTBL_ENTRY _ZTV7ee36421[];
+static VTT_ENTRY vtt_ee36421[] = {
+ {&(_ZTV7ee36421[3]), 3,10},
+ {&(_ZTV7ee36421[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee36421[];
+extern VTBL_ENTRY _ZTV7ee36421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36421[];
+static VTBL_ENTRY alt_thunk_names660[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee364213fooEv,_ZTv0_n12_N7ee364213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee364213fooEv,_ZThn8_N7ee364213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36421 = { "ee36421", // class name
+ bases_ee36421, 4,
+ &(vtc_ee36421[0]), // expected_vtbl_contents
+ &(vtt_ee36421[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee36421),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36421),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36421),2, //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 ee46421 : dd6421 {
+ int e;
+ virtual void bar(); // _ZN7ee464213barEv
+ ~ee46421(); // tgen
+ ee46421(); // tgen
+};
+//SIG(1 ee46421) C1{ BC2{ BC3{ BC4{ BC5{ v2 Fi} v2 Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46421 ::bar(){vfunc_called(this, "_ZN7ee464213barEv");}
+ee46421 ::~ee46421(){ note_dtor("ee46421", this);} // tgen
+ee46421 ::ee46421(){ note_ctor("ee46421", this);} // tgen
+
+static void Test_ee46421()
+{
+ extern Class_Descriptor cd_ee46421;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee46421, buf);
+ ee46421 *dp, &lv = *(dp=new (buf) ee46421());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee46421)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46421)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc421*)(dd6421*), 0, "ee46421");
+ check_base_class_offset(lv, (bb21*)(cc421*)(dd6421*), 0, "ee46421");
+ check_base_class_offset(lv, (cc421*)(dd6421*), 0, "ee46421");
+ check_base_class_offset(lv, (dd6421*), 0, "ee46421");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee46421.e");
+ test_class_info(&lv, &cd_ee46421);
+ dp->~ee46421();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46421(Test_ee46421, "ee46421", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee46421C1Ev();
+extern void _ZN7ee46421D1Ev();
+Name_Map name_map_ee46421[] = {
+ NSPAIR(_ZN7ee46421C1Ev),
+ NSPAIR(_ZN7ee46421D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc421;
+extern VTBL_ENTRY _ZTI5cc421[];
+extern VTBL_ENTRY _ZTV5cc421[];
+extern Class_Descriptor cd_dd6421;
+extern VTBL_ENTRY _ZTI6dd6421[];
+extern VTBL_ENTRY _ZTV6dd6421[];
+static Base_Class bases_ee46421[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc421, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6421, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee46421[];
+extern void _ZN6dd64213fooEv();
+extern void _ZN7ee464213barEv();
+static VTBL_ENTRY vtc_ee46421[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46421[0]),
+ (VTBL_ENTRY)&_ZN6dd64213fooEv,
+ (VTBL_ENTRY)&_ZN7ee464213barEv,
+};
+extern VTBL_ENTRY _ZTI7ee46421[];
+extern VTBL_ENTRY _ZTV7ee46421[];
+Class_Descriptor cd_ee46421 = { "ee46421", // class name
+ bases_ee46421, 4,
+ &(vtc_ee46421[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee46421),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46421),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 ee56421 : virtual dd6421 {
+ int e;
+ virtual void bar(); // _ZN7ee564213barEv
+ ~ee56421(); // tgen
+ ee56421(); // tgen
+};
+//SIG(1 ee56421) C1{ VBC2{ BC3{ BC4{ BC5{ v2 Fi} v2 Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56421 ::bar(){vfunc_called(this, "_ZN7ee564213barEv");}
+ee56421 ::~ee56421(){ note_dtor("ee56421", this);} // tgen
+ee56421 ::ee56421(){ note_ctor("ee56421", this);} // tgen
+
+static void Test_ee56421()
+{
+ extern Class_Descriptor cd_ee56421;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee56421, buf);
+ ee56421 *dp, &lv = *(dp=new (buf) ee56421());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee56421)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56421)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc421*)(dd6421*), ABISELECT(16,8), "ee56421");
+ check_base_class_offset(lv, (bb21*)(cc421*)(dd6421*), ABISELECT(16,8), "ee56421");
+ check_base_class_offset(lv, (cc421*)(dd6421*), ABISELECT(16,8), "ee56421");
+ check_base_class_offset(lv, (dd6421*), ABISELECT(16,8), "ee56421");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56421.e");
+ test_class_info(&lv, &cd_ee56421);
+ dp->~ee56421();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56421(Test_ee56421, "ee56421", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee56421C1Ev();
+extern void _ZN7ee56421D1Ev();
+Name_Map name_map_ee56421[] = {
+ NSPAIR(_ZN7ee56421C1Ev),
+ NSPAIR(_ZN7ee56421D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc421;
+extern VTBL_ENTRY _ZTI5cc421[];
+extern VTBL_ENTRY _ZTV5cc421[];
+extern Class_Descriptor cd_dd6421;
+extern VTBL_ENTRY _ZTI6dd6421[];
+extern VTBL_ENTRY _ZTV6dd6421[];
+static Base_Class bases_ee56421[] = {
+ // 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_bb21, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc421, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6421, 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 _ZTI7ee56421[];
+extern void _ZN7ee564213barEv();
+extern void _ZN6dd64213fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee564213barEv,_ZTv0_n16_N7ee564213barEv)();
+extern void ABISELECT(_ZThn16_N7ee564213barEv,_ZThn8_N7ee564213barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56421[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56421[0]),
+ (VTBL_ENTRY)&_ZN7ee564213barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56421[0]),
+ (VTBL_ENTRY)&_ZN6dd64213fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee564213barEv,_ZTv0_n16_N7ee564213barEv),
+};
+extern VTBL_ENTRY _ZTV7ee56421[];
+static VTT_ENTRY vtt_ee56421[] = {
+ {&(_ZTV7ee56421[3]), 3,10},
+ {&(_ZTV7ee56421[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee56421[];
+extern VTBL_ENTRY _ZTV7ee56421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56421[];
+static VTBL_ENTRY alt_thunk_names661[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee564213barEv,_ZTv0_n16_N7ee564213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee564213barEv,_ZThn8_N7ee564213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56421 = { "ee56421", // class name
+ bases_ee56421, 4,
+ &(vtc_ee56421[0]), // expected_vtbl_contents
+ &(vtt_ee56421[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee56421),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56421),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56421),2, //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 ee66421 : dd6421 {
+ int e;
+ virtual void foo(); // _ZN7ee664213fooEv
+ virtual void bar(); // _ZN7ee664213barEv
+ ~ee66421(); // tgen
+ ee66421(); // tgen
+};
+//SIG(1 ee66421) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} v1 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66421 ::foo(){vfunc_called(this, "_ZN7ee664213fooEv");}
+void ee66421 ::bar(){vfunc_called(this, "_ZN7ee664213barEv");}
+ee66421 ::~ee66421(){ note_dtor("ee66421", this);} // tgen
+ee66421 ::ee66421(){ note_ctor("ee66421", this);} // tgen
+
+static void Test_ee66421()
+{
+ extern Class_Descriptor cd_ee66421;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee66421, buf);
+ ee66421 *dp, &lv = *(dp=new (buf) ee66421());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee66421)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66421)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc421*)(dd6421*), 0, "ee66421");
+ check_base_class_offset(lv, (bb21*)(cc421*)(dd6421*), 0, "ee66421");
+ check_base_class_offset(lv, (cc421*)(dd6421*), 0, "ee66421");
+ check_base_class_offset(lv, (dd6421*), 0, "ee66421");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee66421.e");
+ test_class_info(&lv, &cd_ee66421);
+ dp->~ee66421();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66421(Test_ee66421, "ee66421", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee66421C1Ev();
+extern void _ZN7ee66421D1Ev();
+Name_Map name_map_ee66421[] = {
+ NSPAIR(_ZN7ee66421C1Ev),
+ NSPAIR(_ZN7ee66421D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc421;
+extern VTBL_ENTRY _ZTI5cc421[];
+extern VTBL_ENTRY _ZTV5cc421[];
+extern Class_Descriptor cd_dd6421;
+extern VTBL_ENTRY _ZTI6dd6421[];
+extern VTBL_ENTRY _ZTV6dd6421[];
+static Base_Class bases_ee66421[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc421, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6421, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee66421[];
+extern void _ZN7ee664213fooEv();
+extern void _ZN7ee664213barEv();
+static VTBL_ENTRY vtc_ee66421[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66421[0]),
+ (VTBL_ENTRY)&_ZN7ee664213fooEv,
+ (VTBL_ENTRY)&_ZN7ee664213barEv,
+};
+extern VTBL_ENTRY _ZTI7ee66421[];
+extern VTBL_ENTRY _ZTV7ee66421[];
+Class_Descriptor cd_ee66421 = { "ee66421", // class name
+ bases_ee66421, 4,
+ &(vtc_ee66421[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee66421),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66421),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 ee76421 : virtual dd6421 {
+ int e;
+ virtual void foo(); // _ZN7ee764213fooEv
+ virtual void bar(); // _ZN7ee764213barEv
+ ~ee76421(); // tgen
+ ee76421(); // tgen
+};
+//SIG(1 ee76421) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} v1 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76421 ::foo(){vfunc_called(this, "_ZN7ee764213fooEv");}
+void ee76421 ::bar(){vfunc_called(this, "_ZN7ee764213barEv");}
+ee76421 ::~ee76421(){ note_dtor("ee76421", this);} // tgen
+ee76421 ::ee76421(){ note_ctor("ee76421", this);} // tgen
+
+static void Test_ee76421()
+{
+ extern Class_Descriptor cd_ee76421;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee76421, buf);
+ ee76421 *dp, &lv = *(dp=new (buf) ee76421());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee76421)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76421)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc421*)(dd6421*), ABISELECT(16,8), "ee76421");
+ check_base_class_offset(lv, (bb21*)(cc421*)(dd6421*), ABISELECT(16,8), "ee76421");
+ check_base_class_offset(lv, (cc421*)(dd6421*), ABISELECT(16,8), "ee76421");
+ check_base_class_offset(lv, (dd6421*), ABISELECT(16,8), "ee76421");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76421.e");
+ test_class_info(&lv, &cd_ee76421);
+ dp->~ee76421();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76421(Test_ee76421, "ee76421", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee76421C1Ev();
+extern void _ZN7ee76421D1Ev();
+Name_Map name_map_ee76421[] = {
+ NSPAIR(_ZN7ee76421C1Ev),
+ NSPAIR(_ZN7ee76421D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc421;
+extern VTBL_ENTRY _ZTI5cc421[];
+extern VTBL_ENTRY _ZTV5cc421[];
+extern Class_Descriptor cd_dd6421;
+extern VTBL_ENTRY _ZTI6dd6421[];
+extern VTBL_ENTRY _ZTV6dd6421[];
+static Base_Class bases_ee76421[] = {
+ // 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_bb21, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc421, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6421, 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 _ZTI7ee76421[];
+extern void _ZN7ee764213fooEv();
+extern void _ZN7ee764213barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee764213fooEv,_ZTv0_n12_N7ee764213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee764213fooEv,_ZThn8_N7ee764213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee764213barEv,_ZTv0_n16_N7ee764213barEv)();
+extern void ABISELECT(_ZThn16_N7ee764213barEv,_ZThn8_N7ee764213barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76421[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76421[0]),
+ (VTBL_ENTRY)&_ZN7ee764213fooEv,
+ (VTBL_ENTRY)&_ZN7ee764213barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76421[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee764213fooEv,_ZTv0_n12_N7ee764213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee764213barEv,_ZTv0_n16_N7ee764213barEv),
+};
+extern VTBL_ENTRY _ZTV7ee76421[];
+static VTT_ENTRY vtt_ee76421[] = {
+ {&(_ZTV7ee76421[3]), 3,11},
+ {&(_ZTV7ee76421[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee76421[];
+extern VTBL_ENTRY _ZTV7ee76421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76421[];
+static VTBL_ENTRY alt_thunk_names662[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee764213barEv,_ZTv0_n16_N7ee764213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee764213barEv,_ZThn8_N7ee764213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee764213fooEv,_ZTv0_n12_N7ee764213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee764213fooEv,_ZThn8_N7ee764213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76421 = { "ee76421", // class name
+ bases_ee76421, 4,
+ &(vtc_ee76421[0]), // expected_vtbl_contents
+ &(vtt_ee76421[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee76421),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76421),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76421),2, //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 dd7421 : virtual cc421 {
+ int d;
+ virtual void bar(); // _ZN6dd74213barEv
+ virtual void foo(); // _ZN6dd74213fooEv
+ ~dd7421(); // tgen
+ dd7421(); // tgen
+};
+//SIG(-1 dd7421) C1{ VBC2{ BC3{ BC4{ v2 Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void dd7421 ::bar(){vfunc_called(this, "_ZN6dd74213barEv");}
+void dd7421 ::foo(){vfunc_called(this, "_ZN6dd74213fooEv");}
+dd7421 ::~dd7421(){ note_dtor("dd7421", this);} // tgen
+dd7421 ::dd7421(){ note_ctor("dd7421", this);} // tgen
+
+static void Test_dd7421()
+{
+ extern Class_Descriptor cd_dd7421;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd7421, buf);
+ dd7421 *dp, &lv = *(dp=new (buf) dd7421());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd7421)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7421)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc421*), ABISELECT(16,8), "dd7421");
+ check_base_class_offset(lv, (bb21*)(cc421*), ABISELECT(16,8), "dd7421");
+ check_base_class_offset(lv, (cc421*), ABISELECT(16,8), "dd7421");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7421.d");
+ test_class_info(&lv, &cd_dd7421);
+ dp->~dd7421();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7421(Test_dd7421, "dd7421", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd7421C1Ev();
+extern void _ZN6dd7421D1Ev();
+Name_Map name_map_dd7421[] = {
+ NSPAIR(_ZN6dd7421C1Ev),
+ NSPAIR(_ZN6dd7421D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc421;
+extern VTBL_ENTRY _ZTI5cc421[];
+extern VTBL_ENTRY _ZTV5cc421[];
+static Base_Class bases_dd7421[] = {
+ // 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_bb21, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc421, 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 _ZTI6dd7421[];
+extern void _ZN6dd74213barEv();
+extern void _ZN6dd74213fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd74213fooEv,_ZTv0_n12_N6dd74213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74213fooEv,_ZThn8_N6dd74213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74213barEv,_ZTv0_n16_N6dd74213barEv)();
+extern void ABISELECT(_ZThn16_N6dd74213barEv,_ZThn8_N6dd74213barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7421[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7421[0]),
+ (VTBL_ENTRY)&_ZN6dd74213barEv,
+ (VTBL_ENTRY)&_ZN6dd74213fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7421[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74213fooEv,_ZTv0_n12_N6dd74213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74213barEv,_ZTv0_n16_N6dd74213barEv),
+};
+extern VTBL_ENTRY _ZTV6dd7421[];
+static VTT_ENTRY vtt_dd7421[] = {
+ {&(_ZTV6dd7421[3]), 3,11},
+ {&(_ZTV6dd7421[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd7421[];
+extern VTBL_ENTRY _ZTV6dd7421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7421[];
+static VTBL_ENTRY alt_thunk_names663[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74213barEv,_ZTv0_n16_N6dd74213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74213barEv,_ZThn8_N6dd74213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74213fooEv,_ZTv0_n12_N6dd74213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74213fooEv,_ZThn8_N6dd74213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7421 = { "dd7421", // class name
+ bases_dd7421, 3,
+ &(vtc_dd7421[0]), // expected_vtbl_contents
+ &(vtt_dd7421[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd7421),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7421),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7421),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names663,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07421 : dd7421 {
+ int e;
+ ~ee07421(); // tgen
+ ee07421(); // tgen
+};
+//SIG(1 ee07421) C1{ BC2{ VBC3{ BC4{ BC5{ v2 Fi} v2 Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee07421 ::~ee07421(){ note_dtor("ee07421", this);} // tgen
+ee07421 ::ee07421(){ note_ctor("ee07421", this);} // tgen
+
+static void Test_ee07421()
+{
+ extern Class_Descriptor cd_ee07421;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee07421, buf);
+ ee07421 *dp, &lv = *(dp=new (buf) ee07421());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee07421)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07421)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc421*), ABISELECT(16,12), "ee07421");
+ check_base_class_offset(lv, (bb21*)(cc421*), ABISELECT(16,12), "ee07421");
+ check_base_class_offset(lv, (cc421*)(dd7421*), ABISELECT(16,12), "ee07421");
+ check_base_class_offset(lv, (dd7421*), 0, "ee07421");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07421.e");
+ test_class_info(&lv, &cd_ee07421);
+ dp->~ee07421();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07421(Test_ee07421, "ee07421", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee07421C1Ev();
+extern void _ZN7ee07421D1Ev();
+Name_Map name_map_ee07421[] = {
+ NSPAIR(_ZN7ee07421C1Ev),
+ NSPAIR(_ZN7ee07421D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc421;
+extern VTBL_ENTRY _ZTI5cc421[];
+extern VTBL_ENTRY _ZTV5cc421[];
+extern Class_Descriptor cd_dd7421;
+extern VTBL_ENTRY _ZTI6dd7421[];
+extern VTBL_ENTRY _ZTV6dd7421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7421[];
+static Base_Class bases_ee07421[] = {
+ // 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_bb21, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc421, 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_dd7421, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07421[];
+extern void _ZN6dd74213barEv();
+extern void _ZN6dd74213fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd74213fooEv,_ZTv0_n12_N6dd74213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74213fooEv,_ZThn12_N6dd74213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74213barEv,_ZTv0_n16_N6dd74213barEv)();
+extern void ABISELECT(_ZThn16_N6dd74213barEv,_ZThn12_N6dd74213barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07421[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07421[0]),
+ (VTBL_ENTRY)&_ZN6dd74213barEv,
+ (VTBL_ENTRY)&_ZN6dd74213fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07421[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74213fooEv,_ZTv0_n12_N6dd74213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74213barEv,_ZTv0_n16_N6dd74213barEv),
+};
+extern VTBL_ENTRY _ZTV7ee07421[];
+extern void _ZN6dd74213barEv();
+extern void _ZN6dd74213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7421__7ee07421[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7421[0]),
+ (VTBL_ENTRY)&_ZN6dd74213barEv,
+ (VTBL_ENTRY)&_ZN6dd74213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74213fooEv,_ZTv0_n12_N6dd74213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74213fooEv,_ZThn12_N6dd74213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74213barEv,_ZTv0_n16_N6dd74213barEv)();
+extern void ABISELECT(_ZThn16_N6dd74213barEv,_ZThn12_N6dd74213barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc421__6dd7421__7ee07421[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7421[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74213fooEv,_ZTv0_n12_N6dd74213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74213barEv,_ZTv0_n16_N6dd74213barEv),
+};
+static VTT_ENTRY vtt_ee07421[] = {
+ {&(_ZTV7ee07421[3]), 3,11},
+ {&(_tg__ZTV6dd7421__7ee07421[3]), 3,5},
+ {&(_tg__ZTV5cc421__6dd7421__7ee07421[4]), 4,6},
+ {&(_ZTV7ee07421[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee07421[];
+extern VTBL_ENTRY _ZTV7ee07421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07421[];
+static VTBL_ENTRY alt_thunk_names664[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74213barEv,_ZTv0_n16_N6dd74213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74213barEv,_ZThn12_N6dd74213barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74213barEv,_ZThn12_N6dd74213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74213fooEv,_ZTv0_n12_N6dd74213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74213fooEv,_ZThn12_N6dd74213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74213fooEv,_ZThn12_N6dd74213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07421 = { "ee07421", // class name
+ bases_ee07421, 4,
+ &(vtc_ee07421[0]), // expected_vtbl_contents
+ &(vtt_ee07421[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee07421),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07421),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07421),4, //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 ee17421 : virtual dd7421 {
+ int e;
+ ~ee17421(); // tgen
+ ee17421(); // tgen
+};
+//SIG(1 ee17421) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 Fi} v2 Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee17421 ::~ee17421(){ note_dtor("ee17421", this);} // tgen
+ee17421 ::ee17421(){ note_ctor("ee17421", this);} // tgen
+
+static void Test_ee17421()
+{
+ extern Class_Descriptor cd_ee17421;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee17421, buf);
+ ee17421 *dp, &lv = *(dp=new (buf) ee17421());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee17421)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17421)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc421*), ABISELECT(32,16), "ee17421");
+ check_base_class_offset(lv, (bb21*)(cc421*), ABISELECT(32,16), "ee17421");
+ check_base_class_offset(lv, (cc421*)(dd7421*), ABISELECT(32,16), "ee17421");
+ check_base_class_offset(lv, (dd7421*), ABISELECT(16,8), "ee17421");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17421.e");
+ test_class_info(&lv, &cd_ee17421);
+ dp->~ee17421();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17421(Test_ee17421, "ee17421", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee17421C1Ev();
+extern void _ZN7ee17421D1Ev();
+Name_Map name_map_ee17421[] = {
+ NSPAIR(_ZN7ee17421C1Ev),
+ NSPAIR(_ZN7ee17421D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc421;
+extern VTBL_ENTRY _ZTI5cc421[];
+extern VTBL_ENTRY _ZTV5cc421[];
+extern Class_Descriptor cd_dd7421;
+extern VTBL_ENTRY _ZTI6dd7421[];
+extern VTBL_ENTRY _ZTV6dd7421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7421[];
+static Base_Class bases_ee17421[] = {
+ // 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_bb21, 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_cc421, 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_dd7421, 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 _ZTI7ee17421[];
+extern void _ZN6dd74213barEv();
+extern void _ZN6dd74213fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd74213fooEv,_ZTv0_n12_N6dd74213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74213fooEv,_ZThn8_N6dd74213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74213barEv,_ZTv0_n16_N6dd74213barEv)();
+extern void ABISELECT(_ZThn16_N6dd74213barEv,_ZThn8_N6dd74213barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17421[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17421[0]),
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17421[0]),
+ (VTBL_ENTRY)&_ZN6dd74213barEv,
+ (VTBL_ENTRY)&_ZN6dd74213fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17421[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74213fooEv,_ZTv0_n12_N6dd74213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74213barEv,_ZTv0_n16_N6dd74213barEv),
+};
+extern VTBL_ENTRY _ZTV7ee17421[];
+extern void _ZN6dd74213barEv();
+extern void _ZN6dd74213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7421__7ee17421[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7421[0]),
+ (VTBL_ENTRY)&_ZN6dd74213barEv,
+ (VTBL_ENTRY)&_ZN6dd74213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74213fooEv,_ZTv0_n12_N6dd74213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74213fooEv,_ZThn8_N6dd74213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74213barEv,_ZTv0_n16_N6dd74213barEv)();
+extern void ABISELECT(_ZThn16_N6dd74213barEv,_ZThn8_N6dd74213barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc421__6dd7421__7ee17421[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7421[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74213fooEv,_ZTv0_n12_N6dd74213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74213barEv,_ZTv0_n16_N6dd74213barEv),
+};
+static VTT_ENTRY vtt_ee17421[] = {
+ {&(_ZTV7ee17421[4]), 4,17},
+ {&(_ZTV7ee17421[9]), 9,17},
+ {&(_ZTV7ee17421[15]), 15,17},
+ {&(_tg__ZTV6dd7421__7ee17421[3]), 3,5},
+ {&(_tg__ZTV5cc421__6dd7421__7ee17421[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee17421[];
+extern VTBL_ENTRY _ZTV7ee17421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17421[];
+static VTBL_ENTRY alt_thunk_names665[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74213barEv,_ZTv0_n16_N6dd74213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74213barEv,_ZThn8_N6dd74213barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74213barEv,_ZThn8_N6dd74213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74213fooEv,_ZTv0_n12_N6dd74213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74213fooEv,_ZThn8_N6dd74213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74213fooEv,_ZThn8_N6dd74213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17421 = { "ee17421", // class name
+ bases_ee17421, 4,
+ &(vtc_ee17421[0]), // expected_vtbl_contents
+ &(vtt_ee17421[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee17421),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17421),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17421),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names665,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee27421 : dd7421 {
+ int e;
+ virtual void foo(); // _ZN7ee274213fooEv
+ ~ee27421(); // tgen
+ ee27421(); // tgen
+};
+//SIG(1 ee27421) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} v1 Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27421 ::foo(){vfunc_called(this, "_ZN7ee274213fooEv");}
+ee27421 ::~ee27421(){ note_dtor("ee27421", this);} // tgen
+ee27421 ::ee27421(){ note_ctor("ee27421", this);} // tgen
+
+static void Test_ee27421()
+{
+ extern Class_Descriptor cd_ee27421;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee27421, buf);
+ ee27421 *dp, &lv = *(dp=new (buf) ee27421());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee27421)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27421)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc421*), ABISELECT(16,12), "ee27421");
+ check_base_class_offset(lv, (bb21*)(cc421*), ABISELECT(16,12), "ee27421");
+ check_base_class_offset(lv, (cc421*)(dd7421*), ABISELECT(16,12), "ee27421");
+ check_base_class_offset(lv, (dd7421*), 0, "ee27421");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27421.e");
+ test_class_info(&lv, &cd_ee27421);
+ dp->~ee27421();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27421(Test_ee27421, "ee27421", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee27421C1Ev();
+extern void _ZN7ee27421D1Ev();
+Name_Map name_map_ee27421[] = {
+ NSPAIR(_ZN7ee27421C1Ev),
+ NSPAIR(_ZN7ee27421D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc421;
+extern VTBL_ENTRY _ZTI5cc421[];
+extern VTBL_ENTRY _ZTV5cc421[];
+extern Class_Descriptor cd_dd7421;
+extern VTBL_ENTRY _ZTI6dd7421[];
+extern VTBL_ENTRY _ZTV6dd7421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7421[];
+static Base_Class bases_ee27421[] = {
+ // 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_bb21, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc421, 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_dd7421, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27421[];
+extern void _ZN6dd74213barEv();
+extern void _ZN7ee274213fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee274213fooEv,_ZTv0_n12_N7ee274213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee274213fooEv,_ZThn12_N7ee274213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74213barEv,_ZTv0_n16_N6dd74213barEv)();
+extern void ABISELECT(_ZThn16_N6dd74213barEv,_ZThn12_N6dd74213barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27421[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27421[0]),
+ (VTBL_ENTRY)&_ZN6dd74213barEv,
+ (VTBL_ENTRY)&_ZN7ee274213fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27421[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee274213fooEv,_ZTv0_n12_N7ee274213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74213barEv,_ZTv0_n16_N6dd74213barEv),
+};
+extern VTBL_ENTRY _ZTV7ee27421[];
+extern void _ZN6dd74213barEv();
+extern void _ZN6dd74213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7421__7ee27421[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7421[0]),
+ (VTBL_ENTRY)&_ZN6dd74213barEv,
+ (VTBL_ENTRY)&_ZN6dd74213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74213fooEv,_ZTv0_n12_N6dd74213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74213fooEv,_ZThn12_N6dd74213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74213barEv,_ZTv0_n16_N6dd74213barEv)();
+extern void ABISELECT(_ZThn16_N6dd74213barEv,_ZThn12_N6dd74213barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc421__6dd7421__7ee27421[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7421[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74213fooEv,_ZTv0_n12_N6dd74213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74213barEv,_ZTv0_n16_N6dd74213barEv),
+};
+static VTT_ENTRY vtt_ee27421[] = {
+ {&(_ZTV7ee27421[3]), 3,11},
+ {&(_tg__ZTV6dd7421__7ee27421[3]), 3,5},
+ {&(_tg__ZTV5cc421__6dd7421__7ee27421[4]), 4,6},
+ {&(_ZTV7ee27421[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee27421[];
+extern VTBL_ENTRY _ZTV7ee27421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27421[];
+static VTBL_ENTRY alt_thunk_names666[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74213fooEv,_ZTv0_n12_N6dd74213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74213fooEv,_ZThn12_N6dd74213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74213barEv,_ZTv0_n16_N6dd74213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74213barEv,_ZThn12_N6dd74213barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74213barEv,_ZThn12_N6dd74213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee274213fooEv,_ZTv0_n12_N7ee274213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee274213fooEv,_ZThn12_N7ee274213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27421 = { "ee27421", // class name
+ bases_ee27421, 4,
+ &(vtc_ee27421[0]), // expected_vtbl_contents
+ &(vtt_ee27421[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee27421),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27421),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27421),4, //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 ee37421 : virtual dd7421 {
+ int e;
+ virtual void foo(); // _ZN7ee374213fooEv
+ ~ee37421(); // tgen
+ ee37421(); // tgen
+};
+//SIG(1 ee37421) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} v1 Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37421 ::foo(){vfunc_called(this, "_ZN7ee374213fooEv");}
+ee37421 ::~ee37421(){ note_dtor("ee37421", this);} // tgen
+ee37421 ::ee37421(){ note_ctor("ee37421", this);} // tgen
+
+static void Test_ee37421()
+{
+ extern Class_Descriptor cd_ee37421;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee37421, buf);
+ ee37421 *dp, &lv = *(dp=new (buf) ee37421());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee37421)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37421)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc421*), ABISELECT(32,16), "ee37421");
+ check_base_class_offset(lv, (bb21*)(cc421*), ABISELECT(32,16), "ee37421");
+ check_base_class_offset(lv, (cc421*)(dd7421*), ABISELECT(32,16), "ee37421");
+ check_base_class_offset(lv, (dd7421*), ABISELECT(16,8), "ee37421");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37421.e");
+ test_class_info(&lv, &cd_ee37421);
+ dp->~ee37421();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37421(Test_ee37421, "ee37421", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee37421C1Ev();
+extern void _ZN7ee37421D1Ev();
+Name_Map name_map_ee37421[] = {
+ NSPAIR(_ZN7ee37421C1Ev),
+ NSPAIR(_ZN7ee37421D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc421;
+extern VTBL_ENTRY _ZTI5cc421[];
+extern VTBL_ENTRY _ZTV5cc421[];
+extern Class_Descriptor cd_dd7421;
+extern VTBL_ENTRY _ZTI6dd7421[];
+extern VTBL_ENTRY _ZTV6dd7421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7421[];
+static Base_Class bases_ee37421[] = {
+ // 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_bb21, 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_cc421, 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_dd7421, 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 _ZTI7ee37421[];
+extern void _ZN7ee374213fooEv();
+extern void _ZN6dd74213barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee374213fooEv,_ZTv0_n20_N7ee374213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee374213fooEv,_ZThn8_N7ee374213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee374213fooEv,_ZTv0_n12_N7ee374213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee374213fooEv,_ZThn16_N7ee374213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74213barEv,_ZTv0_n16_N6dd74213barEv)();
+extern void ABISELECT(_ZThn16_N6dd74213barEv,_ZThn8_N6dd74213barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37421[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37421[0]),
+ (VTBL_ENTRY)&_ZN7ee374213fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37421[0]),
+ (VTBL_ENTRY)&_ZN6dd74213barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee374213fooEv,_ZTv0_n20_N7ee374213fooEv),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37421[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee374213fooEv,_ZTv0_n12_N7ee374213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74213barEv,_ZTv0_n16_N6dd74213barEv),
+};
+extern VTBL_ENTRY _ZTV7ee37421[];
+extern void _ZN6dd74213barEv();
+extern void _ZN6dd74213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7421__7ee37421[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7421[0]),
+ (VTBL_ENTRY)&_ZN6dd74213barEv,
+ (VTBL_ENTRY)&_ZN6dd74213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74213fooEv,_ZTv0_n12_N6dd74213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74213fooEv,_ZThn8_N6dd74213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74213barEv,_ZTv0_n16_N6dd74213barEv)();
+extern void ABISELECT(_ZThn16_N6dd74213barEv,_ZThn8_N6dd74213barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc421__6dd7421__7ee37421[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7421[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74213fooEv,_ZTv0_n12_N6dd74213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74213barEv,_ZTv0_n16_N6dd74213barEv),
+};
+static VTT_ENTRY vtt_ee37421[] = {
+ {&(_ZTV7ee37421[4]), 4,18},
+ {&(_ZTV7ee37421[10]), 10,18},
+ {&(_ZTV7ee37421[16]), 16,18},
+ {&(_tg__ZTV6dd7421__7ee37421[3]), 3,5},
+ {&(_tg__ZTV5cc421__6dd7421__7ee37421[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee37421[];
+extern VTBL_ENTRY _ZTV7ee37421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37421[];
+static VTBL_ENTRY alt_thunk_names667[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74213fooEv,_ZTv0_n12_N6dd74213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74213fooEv,_ZThn8_N6dd74213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74213barEv,_ZTv0_n16_N6dd74213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74213barEv,_ZThn8_N6dd74213barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74213barEv,_ZThn8_N6dd74213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee374213fooEv,_ZTv0_n12_N7ee374213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee374213fooEv,_ZThn16_N7ee374213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee374213fooEv,_ZTv0_n20_N7ee374213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee374213fooEv,_ZThn8_N7ee374213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37421 = { "ee37421", // class name
+ bases_ee37421, 4,
+ &(vtc_ee37421[0]), // expected_vtbl_contents
+ &(vtt_ee37421[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee37421),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37421),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37421),5, //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 ee47421 : dd7421 {
+ int e;
+ virtual void bar(); // _ZN7ee474213barEv
+ ~ee47421(); // tgen
+ ee47421(); // tgen
+};
+//SIG(1 ee47421) C1{ BC2{ VBC3{ BC4{ BC5{ v2 Fi} v2 Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47421 ::bar(){vfunc_called(this, "_ZN7ee474213barEv");}
+ee47421 ::~ee47421(){ note_dtor("ee47421", this);} // tgen
+ee47421 ::ee47421(){ note_ctor("ee47421", this);} // tgen
+
+static void Test_ee47421()
+{
+ extern Class_Descriptor cd_ee47421;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee47421, buf);
+ ee47421 *dp, &lv = *(dp=new (buf) ee47421());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee47421)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47421)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc421*), ABISELECT(16,12), "ee47421");
+ check_base_class_offset(lv, (bb21*)(cc421*), ABISELECT(16,12), "ee47421");
+ check_base_class_offset(lv, (cc421*)(dd7421*), ABISELECT(16,12), "ee47421");
+ check_base_class_offset(lv, (dd7421*), 0, "ee47421");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47421.e");
+ test_class_info(&lv, &cd_ee47421);
+ dp->~ee47421();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47421(Test_ee47421, "ee47421", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee47421C1Ev();
+extern void _ZN7ee47421D1Ev();
+Name_Map name_map_ee47421[] = {
+ NSPAIR(_ZN7ee47421C1Ev),
+ NSPAIR(_ZN7ee47421D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc421;
+extern VTBL_ENTRY _ZTI5cc421[];
+extern VTBL_ENTRY _ZTV5cc421[];
+extern Class_Descriptor cd_dd7421;
+extern VTBL_ENTRY _ZTI6dd7421[];
+extern VTBL_ENTRY _ZTV6dd7421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7421[];
+static Base_Class bases_ee47421[] = {
+ // 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_bb21, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc421, 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_dd7421, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47421[];
+extern void _ZN7ee474213barEv();
+extern void _ZN6dd74213fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd74213fooEv,_ZTv0_n12_N6dd74213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74213fooEv,_ZThn12_N6dd74213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee474213barEv,_ZTv0_n16_N7ee474213barEv)();
+extern void ABISELECT(_ZThn16_N7ee474213barEv,_ZThn12_N7ee474213barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47421[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47421[0]),
+ (VTBL_ENTRY)&_ZN7ee474213barEv,
+ (VTBL_ENTRY)&_ZN6dd74213fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47421[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74213fooEv,_ZTv0_n12_N6dd74213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee474213barEv,_ZTv0_n16_N7ee474213barEv),
+};
+extern VTBL_ENTRY _ZTV7ee47421[];
+extern void _ZN6dd74213barEv();
+extern void _ZN6dd74213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7421__7ee47421[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7421[0]),
+ (VTBL_ENTRY)&_ZN6dd74213barEv,
+ (VTBL_ENTRY)&_ZN6dd74213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74213fooEv,_ZTv0_n12_N6dd74213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74213fooEv,_ZThn12_N6dd74213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74213barEv,_ZTv0_n16_N6dd74213barEv)();
+extern void ABISELECT(_ZThn16_N6dd74213barEv,_ZThn12_N6dd74213barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc421__6dd7421__7ee47421[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7421[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74213fooEv,_ZTv0_n12_N6dd74213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74213barEv,_ZTv0_n16_N6dd74213barEv),
+};
+static VTT_ENTRY vtt_ee47421[] = {
+ {&(_ZTV7ee47421[3]), 3,11},
+ {&(_tg__ZTV6dd7421__7ee47421[3]), 3,5},
+ {&(_tg__ZTV5cc421__6dd7421__7ee47421[4]), 4,6},
+ {&(_ZTV7ee47421[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee47421[];
+extern VTBL_ENTRY _ZTV7ee47421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47421[];
+static VTBL_ENTRY alt_thunk_names668[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74213barEv,_ZTv0_n16_N6dd74213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74213barEv,_ZThn12_N6dd74213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee474213barEv,_ZTv0_n16_N7ee474213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee474213barEv,_ZThn12_N7ee474213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74213fooEv,_ZTv0_n12_N6dd74213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74213fooEv,_ZThn12_N6dd74213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74213fooEv,_ZThn12_N6dd74213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47421 = { "ee47421", // class name
+ bases_ee47421, 4,
+ &(vtc_ee47421[0]), // expected_vtbl_contents
+ &(vtt_ee47421[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee47421),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47421),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47421),4, //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 ee57421 : virtual dd7421 {
+ int e;
+ virtual void bar(); // _ZN7ee574213barEv
+ ~ee57421(); // tgen
+ ee57421(); // tgen
+};
+//SIG(1 ee57421) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 Fi} v2 Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57421 ::bar(){vfunc_called(this, "_ZN7ee574213barEv");}
+ee57421 ::~ee57421(){ note_dtor("ee57421", this);} // tgen
+ee57421 ::ee57421(){ note_ctor("ee57421", this);} // tgen
+
+static void Test_ee57421()
+{
+ extern Class_Descriptor cd_ee57421;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee57421, buf);
+ ee57421 *dp, &lv = *(dp=new (buf) ee57421());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee57421)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57421)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc421*), ABISELECT(32,16), "ee57421");
+ check_base_class_offset(lv, (bb21*)(cc421*), ABISELECT(32,16), "ee57421");
+ check_base_class_offset(lv, (cc421*)(dd7421*), ABISELECT(32,16), "ee57421");
+ check_base_class_offset(lv, (dd7421*), ABISELECT(16,8), "ee57421");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57421.e");
+ test_class_info(&lv, &cd_ee57421);
+ dp->~ee57421();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57421(Test_ee57421, "ee57421", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee57421C1Ev();
+extern void _ZN7ee57421D1Ev();
+Name_Map name_map_ee57421[] = {
+ NSPAIR(_ZN7ee57421C1Ev),
+ NSPAIR(_ZN7ee57421D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc421;
+extern VTBL_ENTRY _ZTI5cc421[];
+extern VTBL_ENTRY _ZTV5cc421[];
+extern Class_Descriptor cd_dd7421;
+extern VTBL_ENTRY _ZTI6dd7421[];
+extern VTBL_ENTRY _ZTV6dd7421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7421[];
+static Base_Class bases_ee57421[] = {
+ // 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_bb21, 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_cc421, 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_dd7421, 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 _ZTI7ee57421[];
+extern void _ZN7ee574213barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee574213barEv,_ZTv0_n16_N7ee574213barEv)();
+extern void ABISELECT(_ZThn16_N7ee574213barEv,_ZThn8_N7ee574213barEv)() __attribute__((weak));
+extern void _ZN6dd74213fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd74213fooEv,_ZTv0_n12_N6dd74213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74213fooEv,_ZThn8_N6dd74213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee574213barEv,_ZTv0_n16_N7ee574213barEv)();
+extern void ABISELECT(_ZThn32_N7ee574213barEv,_ZThn16_N7ee574213barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57421[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57421[0]),
+ (VTBL_ENTRY)&_ZN7ee574213barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57421[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee574213barEv,_ZTv0_n16_N7ee574213barEv),
+ (VTBL_ENTRY)&_ZN6dd74213fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57421[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74213fooEv,_ZTv0_n12_N6dd74213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee574213barEv,_ZTv0_n16_N7ee574213barEv),
+};
+extern VTBL_ENTRY _ZTV7ee57421[];
+extern void _ZN6dd74213barEv();
+extern void _ZN6dd74213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7421__7ee57421[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7421[0]),
+ (VTBL_ENTRY)&_ZN6dd74213barEv,
+ (VTBL_ENTRY)&_ZN6dd74213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74213fooEv,_ZTv0_n12_N6dd74213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74213fooEv,_ZThn8_N6dd74213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74213barEv,_ZTv0_n16_N6dd74213barEv)();
+extern void ABISELECT(_ZThn16_N6dd74213barEv,_ZThn8_N6dd74213barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc421__6dd7421__7ee57421[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7421[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74213fooEv,_ZTv0_n12_N6dd74213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74213barEv,_ZTv0_n16_N6dd74213barEv),
+};
+static VTT_ENTRY vtt_ee57421[] = {
+ {&(_ZTV7ee57421[4]), 4,18},
+ {&(_ZTV7ee57421[10]), 10,18},
+ {&(_ZTV7ee57421[16]), 16,18},
+ {&(_tg__ZTV6dd7421__7ee57421[3]), 3,5},
+ {&(_tg__ZTV5cc421__6dd7421__7ee57421[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee57421[];
+extern VTBL_ENTRY _ZTV7ee57421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57421[];
+static VTBL_ENTRY alt_thunk_names669[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74213barEv,_ZTv0_n16_N6dd74213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74213barEv,_ZThn8_N6dd74213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74213fooEv,_ZTv0_n12_N6dd74213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74213fooEv,_ZThn8_N6dd74213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74213fooEv,_ZThn8_N6dd74213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee574213barEv,_ZTv0_n16_N7ee574213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee574213barEv,_ZThn16_N7ee574213barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee574213barEv,_ZThn8_N7ee574213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57421 = { "ee57421", // class name
+ bases_ee57421, 4,
+ &(vtc_ee57421[0]), // expected_vtbl_contents
+ &(vtt_ee57421[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee57421),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57421),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57421),5, //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 ee67421 : dd7421 {
+ int e;
+ virtual void foo(); // _ZN7ee674213fooEv
+ virtual void bar(); // _ZN7ee674213barEv
+ ~ee67421(); // tgen
+ ee67421(); // tgen
+};
+//SIG(1 ee67421) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} v1 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67421 ::foo(){vfunc_called(this, "_ZN7ee674213fooEv");}
+void ee67421 ::bar(){vfunc_called(this, "_ZN7ee674213barEv");}
+ee67421 ::~ee67421(){ note_dtor("ee67421", this);} // tgen
+ee67421 ::ee67421(){ note_ctor("ee67421", this);} // tgen
+
+static void Test_ee67421()
+{
+ extern Class_Descriptor cd_ee67421;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee67421, buf);
+ ee67421 *dp, &lv = *(dp=new (buf) ee67421());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee67421)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67421)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc421*), ABISELECT(16,12), "ee67421");
+ check_base_class_offset(lv, (bb21*)(cc421*), ABISELECT(16,12), "ee67421");
+ check_base_class_offset(lv, (cc421*)(dd7421*), ABISELECT(16,12), "ee67421");
+ check_base_class_offset(lv, (dd7421*), 0, "ee67421");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67421.e");
+ test_class_info(&lv, &cd_ee67421);
+ dp->~ee67421();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67421(Test_ee67421, "ee67421", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee67421C1Ev();
+extern void _ZN7ee67421D1Ev();
+Name_Map name_map_ee67421[] = {
+ NSPAIR(_ZN7ee67421C1Ev),
+ NSPAIR(_ZN7ee67421D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc421;
+extern VTBL_ENTRY _ZTI5cc421[];
+extern VTBL_ENTRY _ZTV5cc421[];
+extern Class_Descriptor cd_dd7421;
+extern VTBL_ENTRY _ZTI6dd7421[];
+extern VTBL_ENTRY _ZTV6dd7421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7421[];
+static Base_Class bases_ee67421[] = {
+ // 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_bb21, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc421, 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_dd7421, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67421[];
+extern void _ZN7ee674213barEv();
+extern void _ZN7ee674213fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee674213fooEv,_ZTv0_n12_N7ee674213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee674213fooEv,_ZThn12_N7ee674213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee674213barEv,_ZTv0_n16_N7ee674213barEv)();
+extern void ABISELECT(_ZThn16_N7ee674213barEv,_ZThn12_N7ee674213barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67421[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67421[0]),
+ (VTBL_ENTRY)&_ZN7ee674213barEv,
+ (VTBL_ENTRY)&_ZN7ee674213fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67421[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee674213fooEv,_ZTv0_n12_N7ee674213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee674213barEv,_ZTv0_n16_N7ee674213barEv),
+};
+extern VTBL_ENTRY _ZTV7ee67421[];
+extern void _ZN6dd74213barEv();
+extern void _ZN6dd74213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7421__7ee67421[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7421[0]),
+ (VTBL_ENTRY)&_ZN6dd74213barEv,
+ (VTBL_ENTRY)&_ZN6dd74213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74213fooEv,_ZTv0_n12_N6dd74213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74213fooEv,_ZThn12_N6dd74213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74213barEv,_ZTv0_n16_N6dd74213barEv)();
+extern void ABISELECT(_ZThn16_N6dd74213barEv,_ZThn12_N6dd74213barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc421__6dd7421__7ee67421[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7421[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74213fooEv,_ZTv0_n12_N6dd74213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74213barEv,_ZTv0_n16_N6dd74213barEv),
+};
+static VTT_ENTRY vtt_ee67421[] = {
+ {&(_ZTV7ee67421[3]), 3,11},
+ {&(_tg__ZTV6dd7421__7ee67421[3]), 3,5},
+ {&(_tg__ZTV5cc421__6dd7421__7ee67421[4]), 4,6},
+ {&(_ZTV7ee67421[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee67421[];
+extern VTBL_ENTRY _ZTV7ee67421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67421[];
+static VTBL_ENTRY alt_thunk_names670[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74213barEv,_ZTv0_n16_N6dd74213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74213barEv,_ZThn12_N6dd74213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74213fooEv,_ZTv0_n12_N6dd74213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74213fooEv,_ZThn12_N6dd74213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee674213barEv,_ZTv0_n16_N7ee674213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee674213barEv,_ZThn12_N7ee674213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee674213fooEv,_ZTv0_n12_N7ee674213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee674213fooEv,_ZThn12_N7ee674213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67421 = { "ee67421", // class name
+ bases_ee67421, 4,
+ &(vtc_ee67421[0]), // expected_vtbl_contents
+ &(vtt_ee67421[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee67421),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67421),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67421),4, //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 ee77421 : virtual dd7421 {
+ int e;
+ virtual void foo(); // _ZN7ee774213fooEv
+ virtual void bar(); // _ZN7ee774213barEv
+ ~ee77421(); // tgen
+ ee77421(); // tgen
+};
+//SIG(1 ee77421) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} v1 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77421 ::foo(){vfunc_called(this, "_ZN7ee774213fooEv");}
+void ee77421 ::bar(){vfunc_called(this, "_ZN7ee774213barEv");}
+ee77421 ::~ee77421(){ note_dtor("ee77421", this);} // tgen
+ee77421 ::ee77421(){ note_ctor("ee77421", this);} // tgen
+
+static void Test_ee77421()
+{
+ extern Class_Descriptor cd_ee77421;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee77421, buf);
+ ee77421 *dp, &lv = *(dp=new (buf) ee77421());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee77421)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77421)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc421*), ABISELECT(32,16), "ee77421");
+ check_base_class_offset(lv, (bb21*)(cc421*), ABISELECT(32,16), "ee77421");
+ check_base_class_offset(lv, (cc421*)(dd7421*), ABISELECT(32,16), "ee77421");
+ check_base_class_offset(lv, (dd7421*), ABISELECT(16,8), "ee77421");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77421.e");
+ test_class_info(&lv, &cd_ee77421);
+ dp->~ee77421();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77421(Test_ee77421, "ee77421", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee77421C1Ev();
+extern void _ZN7ee77421D1Ev();
+Name_Map name_map_ee77421[] = {
+ NSPAIR(_ZN7ee77421C1Ev),
+ NSPAIR(_ZN7ee77421D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc421;
+extern VTBL_ENTRY _ZTI5cc421[];
+extern VTBL_ENTRY _ZTV5cc421[];
+extern Class_Descriptor cd_dd7421;
+extern VTBL_ENTRY _ZTI6dd7421[];
+extern VTBL_ENTRY _ZTV6dd7421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7421[];
+static Base_Class bases_ee77421[] = {
+ // 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_bb21, 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_cc421, 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_dd7421, ABISELECT(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 _ZTI7ee77421[];
+extern void _ZN7ee774213fooEv();
+extern void _ZN7ee774213barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee774213barEv,_ZTv0_n16_N7ee774213barEv)();
+extern void ABISELECT(_ZThn16_N7ee774213barEv,_ZThn8_N7ee774213barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee774213fooEv,_ZTv0_n20_N7ee774213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee774213fooEv,_ZThn8_N7ee774213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee774213fooEv,_ZTv0_n12_N7ee774213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee774213fooEv,_ZThn16_N7ee774213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee774213barEv,_ZTv0_n16_N7ee774213barEv)();
+extern void ABISELECT(_ZThn32_N7ee774213barEv,_ZThn16_N7ee774213barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77421[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77421[0]),
+ (VTBL_ENTRY)&_ZN7ee774213fooEv,
+ (VTBL_ENTRY)&_ZN7ee774213barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77421[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee774213barEv,_ZTv0_n16_N7ee774213barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee774213fooEv,_ZTv0_n20_N7ee774213fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77421[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee774213fooEv,_ZTv0_n12_N7ee774213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee774213barEv,_ZTv0_n16_N7ee774213barEv),
+};
+extern VTBL_ENTRY _ZTV7ee77421[];
+extern void _ZN6dd74213barEv();
+extern void _ZN6dd74213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7421__7ee77421[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7421[0]),
+ (VTBL_ENTRY)&_ZN6dd74213barEv,
+ (VTBL_ENTRY)&_ZN6dd74213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74213fooEv,_ZTv0_n12_N6dd74213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74213fooEv,_ZThn8_N6dd74213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74213barEv,_ZTv0_n16_N6dd74213barEv)();
+extern void ABISELECT(_ZThn16_N6dd74213barEv,_ZThn8_N6dd74213barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc421__6dd7421__7ee77421[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7421[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74213fooEv,_ZTv0_n12_N6dd74213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74213barEv,_ZTv0_n16_N6dd74213barEv),
+};
+static VTT_ENTRY vtt_ee77421[] = {
+ {&(_ZTV7ee77421[4]), 4,19},
+ {&(_ZTV7ee77421[11]), 11,19},
+ {&(_ZTV7ee77421[17]), 17,19},
+ {&(_tg__ZTV6dd7421__7ee77421[3]), 3,5},
+ {&(_tg__ZTV5cc421__6dd7421__7ee77421[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee77421[];
+extern VTBL_ENTRY _ZTV7ee77421[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77421[];
+static VTBL_ENTRY alt_thunk_names671[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74213barEv,_ZTv0_n16_N6dd74213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74213barEv,_ZThn8_N6dd74213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74213fooEv,_ZTv0_n12_N6dd74213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74213fooEv,_ZThn8_N6dd74213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee774213fooEv,_ZTv0_n12_N7ee774213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee774213fooEv,_ZThn16_N7ee774213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee774213fooEv,_ZTv0_n20_N7ee774213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee774213fooEv,_ZThn8_N7ee774213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee774213barEv,_ZTv0_n16_N7ee774213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee774213barEv,_ZThn16_N7ee774213barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee774213barEv,_ZThn8_N7ee774213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77421 = { "ee77421", // class name
+ bases_ee77421, 4,
+ &(vtc_ee77421[0]), // expected_vtbl_contents
+ &(vtt_ee77421[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee77421),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77421),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77421),5, //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 cc521 : virtual bb21 {
+ int c;
+ virtual void bar(); // _ZN5cc5213barEv
+ ~cc521(); // tgen
+ cc521(); // tgen
+};
+//SIG(-1 cc521) C1{ VBC2{ BC3{ v2 Fi} v2 Fi} v1 Fi}
+
+
+void cc521 ::bar(){vfunc_called(this, "_ZN5cc5213barEv");}
+cc521 ::~cc521(){ note_dtor("cc521", this);} // tgen
+cc521 ::cc521(){ note_ctor("cc521", this);} // tgen
+
+static void Test_cc521()
+{
+ extern Class_Descriptor cd_cc521;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_cc521, buf);
+ cc521 *dp, &lv = *(dp=new (buf) cc521());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(cc521)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc521)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(16,8), "cc521");
+ check_base_class_offset(lv, (bb21*), ABISELECT(16,8), "cc521");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc521.c");
+ test_class_info(&lv, &cd_cc521);
+ dp->~cc521();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc521(Test_cc521, "cc521", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN5cc521C1Ev();
+extern void _ZN5cc521D1Ev();
+Name_Map name_map_cc521[] = {
+ NSPAIR(_ZN5cc521C1Ev),
+ NSPAIR(_ZN5cc521D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+static Base_Class bases_cc521[] = {
+ // 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_bb21, 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 _ZTI5cc521[];
+extern void _ZN5cc5213barEv();
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY vtc_cc521[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern VTBL_ENTRY _ZTV5cc521[];
+static VTT_ENTRY vtt_cc521[] = {
+ {&(_ZTV5cc521[3]), 3,8},
+ {&(_ZTV5cc521[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI5cc521[];
+extern VTBL_ENTRY _ZTV5cc521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc521[];
+Class_Descriptor cd_cc521 = { "cc521", // class name
+ bases_cc521, 2,
+ &(vtc_cc521[0]), // expected_vtbl_contents
+ &(vtt_cc521[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI5cc521),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV5cc521),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5cc521),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 dd0521 : cc521 {
+ int d;
+ ~dd0521(); // tgen
+ dd0521(); // tgen
+};
+//SIG(-1 dd0521) C1{ BC2{ VBC3{ BC4{ v2 Fi} v2 Fi} v1 Fi} Fi}
+
+
+dd0521 ::~dd0521(){ note_dtor("dd0521", this);} // tgen
+dd0521 ::dd0521(){ note_ctor("dd0521", this);} // tgen
+
+static void Test_dd0521()
+{
+ extern Class_Descriptor cd_dd0521;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd0521, buf);
+ dd0521 *dp, &lv = *(dp=new (buf) dd0521());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd0521)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0521)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(16,12), "dd0521");
+ check_base_class_offset(lv, (bb21*)(cc521*), ABISELECT(16,12), "dd0521");
+ check_base_class_offset(lv, (cc521*), 0, "dd0521");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd0521.d");
+ test_class_info(&lv, &cd_dd0521);
+ dp->~dd0521();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0521(Test_dd0521, "dd0521", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd0521C1Ev();
+extern void _ZN6dd0521D1Ev();
+Name_Map name_map_dd0521[] = {
+ NSPAIR(_ZN6dd0521C1Ev),
+ NSPAIR(_ZN6dd0521D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc521;
+extern VTBL_ENTRY _ZTI5cc521[];
+extern VTBL_ENTRY _ZTV5cc521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc521[];
+static Base_Class bases_dd0521[] = {
+ // 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_bb21, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc521, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd0521[];
+extern void _ZN5cc5213barEv();
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY vtc_dd0521[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd0521[];
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc521__6dd0521[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc521__6dd0521[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_dd0521[] = {
+ {&(_ZTV6dd0521[3]), 3,8},
+ {&(_tg__ZTV5cc521__6dd0521[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc521__6dd0521[3]), 3,4},
+ {&(_ZTV6dd0521[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI6dd0521[];
+extern VTBL_ENTRY _ZTV6dd0521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0521[];
+Class_Descriptor cd_dd0521 = { "dd0521", // class name
+ bases_dd0521, 3,
+ &(vtc_dd0521[0]), // expected_vtbl_contents
+ &(vtt_dd0521[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd0521),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0521),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd0521),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 ee00521 : dd0521 {
+ int e;
+ ~ee00521(); // tgen
+ ee00521(); // tgen
+};
+//SIG(1 ee00521) C1{ BC2{ BC3{ VBC4{ BC5{ v2 Fi} v2 Fi} v1 Fi} Fi} Fi}
+
+
+ee00521 ::~ee00521(){ note_dtor("ee00521", this);} // tgen
+ee00521 ::ee00521(){ note_ctor("ee00521", this);} // tgen
+
+static void Test_ee00521()
+{
+ extern Class_Descriptor cd_ee00521;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee00521, buf);
+ ee00521 *dp, &lv = *(dp=new (buf) ee00521());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee00521)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00521)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(24,16), "ee00521");
+ check_base_class_offset(lv, (bb21*)(cc521*)(dd0521*), ABISELECT(24,16), "ee00521");
+ check_base_class_offset(lv, (cc521*)(dd0521*), 0, "ee00521");
+ check_base_class_offset(lv, (dd0521*), 0, "ee00521");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee00521.e");
+ test_class_info(&lv, &cd_ee00521);
+ dp->~ee00521();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00521(Test_ee00521, "ee00521", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee00521C1Ev();
+extern void _ZN7ee00521D1Ev();
+Name_Map name_map_ee00521[] = {
+ NSPAIR(_ZN7ee00521C1Ev),
+ NSPAIR(_ZN7ee00521D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc521;
+extern VTBL_ENTRY _ZTI5cc521[];
+extern VTBL_ENTRY _ZTV5cc521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc521[];
+extern Class_Descriptor cd_dd0521;
+extern VTBL_ENTRY _ZTI6dd0521[];
+extern VTBL_ENTRY _ZTV6dd0521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0521[];
+static Base_Class bases_ee00521[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc521, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0521, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee00521[];
+extern void _ZN5cc5213barEv();
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY vtc_ee00521[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee00521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee00521[];
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV6dd0521__7ee00521[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc5216dd0521__7ee00521[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc5216dd0521__7ee00521[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__6dd0521__7ee00521[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee00521[] = {
+ {&(_ZTV7ee00521[3]), 3,8},
+ {&(_tg__ZTV6dd0521__7ee00521[3]), 3,4},
+ {&(_tg__ZTV5cc5216dd0521__7ee00521[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc5216dd0521__7ee00521[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd0521__7ee00521[3]), 3,4},
+ {&(_ZTV7ee00521[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee00521[];
+extern VTBL_ENTRY _ZTV7ee00521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee00521[];
+Class_Descriptor cd_ee00521 = { "ee00521", // class name
+ bases_ee00521, 4,
+ &(vtc_ee00521[0]), // expected_vtbl_contents
+ &(vtt_ee00521[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee00521),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00521),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee00521),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 ee10521 : virtual dd0521 {
+ int e;
+ ~ee10521(); // tgen
+ ee10521(); // tgen
+};
+//SIG(1 ee10521) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 Fi} v2 Fi} v1 Fi} Fi} Fi}
+
+
+ee10521 ::~ee10521(){ note_dtor("ee10521", this);} // tgen
+ee10521 ::ee10521(){ note_ctor("ee10521", this);} // tgen
+
+static void Test_ee10521()
+{
+ extern Class_Descriptor cd_ee10521;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee10521, buf);
+ ee10521 *dp, &lv = *(dp=new (buf) ee10521());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee10521)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10521)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee10521");
+ check_base_class_offset(lv, (bb21*)(cc521*)(dd0521*), ABISELECT(32,20), "ee10521");
+ check_base_class_offset(lv, (cc521*)(dd0521*), ABISELECT(16,8), "ee10521");
+ check_base_class_offset(lv, (dd0521*), ABISELECT(16,8), "ee10521");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10521.e");
+ test_class_info(&lv, &cd_ee10521);
+ dp->~ee10521();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10521(Test_ee10521, "ee10521", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee10521C1Ev();
+extern void _ZN7ee10521D1Ev();
+Name_Map name_map_ee10521[] = {
+ NSPAIR(_ZN7ee10521C1Ev),
+ NSPAIR(_ZN7ee10521D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc521;
+extern VTBL_ENTRY _ZTI5cc521[];
+extern VTBL_ENTRY _ZTV5cc521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc521[];
+extern Class_Descriptor cd_dd0521;
+extern VTBL_ENTRY _ZTI6dd0521[];
+extern VTBL_ENTRY _ZTV6dd0521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0521[];
+static Base_Class bases_ee10521[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc521, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0521, 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 _ZTI7ee10521[];
+extern void _ZN5cc5213barEv();
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY vtc_ee10521[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10521[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee10521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee10521[];
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV6dd0521__7ee10521[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc5216dd0521__7ee10521[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc5216dd0521__7ee10521[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__6dd0521__7ee10521[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee10521[] = {
+ {&(_ZTV7ee10521[4]), 4,13},
+ {&(_ZTV7ee10521[8]), 8,13},
+ {&(_ZTV7ee10521[12]), 12,13},
+ {&(_tg__ZTV6dd0521__7ee10521[3]), 3,4},
+ {&(_tg__ZTV5cc5216dd0521__7ee10521[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc5216dd0521__7ee10521[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd0521__7ee10521[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee10521[];
+extern VTBL_ENTRY _ZTV7ee10521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10521[];
+Class_Descriptor cd_ee10521 = { "ee10521", // class name
+ bases_ee10521, 4,
+ &(vtc_ee10521[0]), // expected_vtbl_contents
+ &(vtt_ee10521[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee10521),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10521),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10521),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 ee20521 : dd0521 {
+ int e;
+ virtual void foo(); // _ZN7ee205213fooEv
+ ~ee20521(); // tgen
+ ee20521(); // tgen
+};
+//SIG(1 ee20521) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee20521 ::foo(){vfunc_called(this, "_ZN7ee205213fooEv");}
+ee20521 ::~ee20521(){ note_dtor("ee20521", this);} // tgen
+ee20521 ::ee20521(){ note_ctor("ee20521", this);} // tgen
+
+static void Test_ee20521()
+{
+ extern Class_Descriptor cd_ee20521;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee20521, buf);
+ ee20521 *dp, &lv = *(dp=new (buf) ee20521());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee20521)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20521)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(24,16), "ee20521");
+ check_base_class_offset(lv, (bb21*)(cc521*)(dd0521*), ABISELECT(24,16), "ee20521");
+ check_base_class_offset(lv, (cc521*)(dd0521*), 0, "ee20521");
+ check_base_class_offset(lv, (dd0521*), 0, "ee20521");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee20521.e");
+ test_class_info(&lv, &cd_ee20521);
+ dp->~ee20521();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20521(Test_ee20521, "ee20521", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee20521C1Ev();
+extern void _ZN7ee20521D1Ev();
+Name_Map name_map_ee20521[] = {
+ NSPAIR(_ZN7ee20521C1Ev),
+ NSPAIR(_ZN7ee20521D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc521;
+extern VTBL_ENTRY _ZTI5cc521[];
+extern VTBL_ENTRY _ZTV5cc521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc521[];
+extern Class_Descriptor cd_dd0521;
+extern VTBL_ENTRY _ZTI6dd0521[];
+extern VTBL_ENTRY _ZTV6dd0521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0521[];
+static Base_Class bases_ee20521[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc521, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0521, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee20521[];
+extern void _ZN5cc5213barEv();
+extern void _ZN7ee205213fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee205213fooEv,_ZTv0_n12_N7ee205213fooEv)();
+extern void ABISELECT(_ZThn24_N7ee205213fooEv,_ZThn16_N7ee205213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee20521[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+ (VTBL_ENTRY)&_ZN7ee205213fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee20521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee205213fooEv,_ZTv0_n12_N7ee205213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee20521[];
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV6dd0521__7ee20521[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc5216dd0521__7ee20521[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc5216dd0521__7ee20521[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__6dd0521__7ee20521[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee20521[] = {
+ {&(_ZTV7ee20521[3]), 3,9},
+ {&(_tg__ZTV6dd0521__7ee20521[3]), 3,4},
+ {&(_tg__ZTV5cc5216dd0521__7ee20521[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc5216dd0521__7ee20521[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd0521__7ee20521[3]), 3,4},
+ {&(_ZTV7ee20521[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee20521[];
+extern VTBL_ENTRY _ZTV7ee20521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee20521[];
+static VTBL_ENTRY alt_thunk_names672[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee205213fooEv,_ZTv0_n12_N7ee205213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee205213fooEv,_ZThn16_N7ee205213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee20521 = { "ee20521", // class name
+ bases_ee20521, 4,
+ &(vtc_ee20521[0]), // expected_vtbl_contents
+ &(vtt_ee20521[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee20521),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20521),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee20521),6, //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 ee30521 : virtual dd0521 {
+ int e;
+ virtual void foo(); // _ZN7ee305213fooEv
+ ~ee30521(); // tgen
+ ee30521(); // tgen
+};
+//SIG(1 ee30521) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee30521 ::foo(){vfunc_called(this, "_ZN7ee305213fooEv");}
+ee30521 ::~ee30521(){ note_dtor("ee30521", this);} // tgen
+ee30521 ::ee30521(){ note_ctor("ee30521", this);} // tgen
+
+static void Test_ee30521()
+{
+ extern Class_Descriptor cd_ee30521;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee30521, buf);
+ ee30521 *dp, &lv = *(dp=new (buf) ee30521());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee30521)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30521)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee30521");
+ check_base_class_offset(lv, (bb21*)(cc521*)(dd0521*), ABISELECT(32,20), "ee30521");
+ check_base_class_offset(lv, (cc521*)(dd0521*), ABISELECT(16,8), "ee30521");
+ check_base_class_offset(lv, (dd0521*), ABISELECT(16,8), "ee30521");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30521.e");
+ test_class_info(&lv, &cd_ee30521);
+ dp->~ee30521();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30521(Test_ee30521, "ee30521", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee30521C1Ev();
+extern void _ZN7ee30521D1Ev();
+Name_Map name_map_ee30521[] = {
+ NSPAIR(_ZN7ee30521C1Ev),
+ NSPAIR(_ZN7ee30521D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc521;
+extern VTBL_ENTRY _ZTI5cc521[];
+extern VTBL_ENTRY _ZTV5cc521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc521[];
+extern Class_Descriptor cd_dd0521;
+extern VTBL_ENTRY _ZTI6dd0521[];
+extern VTBL_ENTRY _ZTV6dd0521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0521[];
+static Base_Class bases_ee30521[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc521, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0521, 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 _ZTI7ee30521[];
+extern void _ZN7ee305213fooEv();
+extern void _ZN5cc5213barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee305213fooEv,_ZTv0_n12_N7ee305213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee305213fooEv,_ZThn20_N7ee305213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee30521[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30521[0]),
+ (VTBL_ENTRY)&_ZN7ee305213fooEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee30521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee305213fooEv,_ZTv0_n12_N7ee305213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee30521[];
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV6dd0521__7ee30521[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc5216dd0521__7ee30521[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc5216dd0521__7ee30521[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__6dd0521__7ee30521[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee30521[] = {
+ {&(_ZTV7ee30521[4]), 4,14},
+ {&(_ZTV7ee30521[9]), 9,14},
+ {&(_ZTV7ee30521[13]), 13,14},
+ {&(_tg__ZTV6dd0521__7ee30521[3]), 3,4},
+ {&(_tg__ZTV5cc5216dd0521__7ee30521[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc5216dd0521__7ee30521[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd0521__7ee30521[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee30521[];
+extern VTBL_ENTRY _ZTV7ee30521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30521[];
+static VTBL_ENTRY alt_thunk_names673[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee305213fooEv,_ZTv0_n12_N7ee305213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee305213fooEv,_ZThn20_N7ee305213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30521 = { "ee30521", // class name
+ bases_ee30521, 4,
+ &(vtc_ee30521[0]), // expected_vtbl_contents
+ &(vtt_ee30521[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee30521),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30521),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30521),7, //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 ee40521 : dd0521 {
+ int e;
+ virtual void bar(); // _ZN7ee405213barEv
+ ~ee40521(); // tgen
+ ee40521(); // tgen
+};
+//SIG(1 ee40521) C1{ BC2{ BC3{ VBC4{ BC5{ v2 Fi} v2 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee40521 ::bar(){vfunc_called(this, "_ZN7ee405213barEv");}
+ee40521 ::~ee40521(){ note_dtor("ee40521", this);} // tgen
+ee40521 ::ee40521(){ note_ctor("ee40521", this);} // tgen
+
+static void Test_ee40521()
+{
+ extern Class_Descriptor cd_ee40521;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee40521, buf);
+ ee40521 *dp, &lv = *(dp=new (buf) ee40521());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee40521)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40521)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(24,16), "ee40521");
+ check_base_class_offset(lv, (bb21*)(cc521*)(dd0521*), ABISELECT(24,16), "ee40521");
+ check_base_class_offset(lv, (cc521*)(dd0521*), 0, "ee40521");
+ check_base_class_offset(lv, (dd0521*), 0, "ee40521");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee40521.e");
+ test_class_info(&lv, &cd_ee40521);
+ dp->~ee40521();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40521(Test_ee40521, "ee40521", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee40521C1Ev();
+extern void _ZN7ee40521D1Ev();
+Name_Map name_map_ee40521[] = {
+ NSPAIR(_ZN7ee40521C1Ev),
+ NSPAIR(_ZN7ee40521D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc521;
+extern VTBL_ENTRY _ZTI5cc521[];
+extern VTBL_ENTRY _ZTV5cc521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc521[];
+extern Class_Descriptor cd_dd0521;
+extern VTBL_ENTRY _ZTI6dd0521[];
+extern VTBL_ENTRY _ZTV6dd0521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0521[];
+static Base_Class bases_ee40521[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc521, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0521, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee40521[];
+extern void _ZN7ee405213barEv();
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY vtc_ee40521[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40521[0]),
+ (VTBL_ENTRY)&_ZN7ee405213barEv,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee40521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee40521[];
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV6dd0521__7ee40521[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc5216dd0521__7ee40521[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc5216dd0521__7ee40521[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__6dd0521__7ee40521[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee40521[] = {
+ {&(_ZTV7ee40521[3]), 3,8},
+ {&(_tg__ZTV6dd0521__7ee40521[3]), 3,4},
+ {&(_tg__ZTV5cc5216dd0521__7ee40521[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc5216dd0521__7ee40521[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd0521__7ee40521[3]), 3,4},
+ {&(_ZTV7ee40521[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee40521[];
+extern VTBL_ENTRY _ZTV7ee40521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee40521[];
+Class_Descriptor cd_ee40521 = { "ee40521", // class name
+ bases_ee40521, 4,
+ &(vtc_ee40521[0]), // expected_vtbl_contents
+ &(vtt_ee40521[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee40521),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40521),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee40521),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 ee50521 : virtual dd0521 {
+ int e;
+ virtual void bar(); // _ZN7ee505213barEv
+ ~ee50521(); // tgen
+ ee50521(); // tgen
+};
+//SIG(1 ee50521) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 Fi} v2 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee50521 ::bar(){vfunc_called(this, "_ZN7ee505213barEv");}
+ee50521 ::~ee50521(){ note_dtor("ee50521", this);} // tgen
+ee50521 ::ee50521(){ note_ctor("ee50521", this);} // tgen
+
+static void Test_ee50521()
+{
+ extern Class_Descriptor cd_ee50521;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee50521, buf);
+ ee50521 *dp, &lv = *(dp=new (buf) ee50521());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee50521)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50521)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee50521");
+ check_base_class_offset(lv, (bb21*)(cc521*)(dd0521*), ABISELECT(32,20), "ee50521");
+ check_base_class_offset(lv, (cc521*)(dd0521*), ABISELECT(16,8), "ee50521");
+ check_base_class_offset(lv, (dd0521*), ABISELECT(16,8), "ee50521");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50521.e");
+ test_class_info(&lv, &cd_ee50521);
+ dp->~ee50521();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50521(Test_ee50521, "ee50521", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee50521C1Ev();
+extern void _ZN7ee50521D1Ev();
+Name_Map name_map_ee50521[] = {
+ NSPAIR(_ZN7ee50521C1Ev),
+ NSPAIR(_ZN7ee50521D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc521;
+extern VTBL_ENTRY _ZTI5cc521[];
+extern VTBL_ENTRY _ZTV5cc521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc521[];
+extern Class_Descriptor cd_dd0521;
+extern VTBL_ENTRY _ZTI6dd0521[];
+extern VTBL_ENTRY _ZTV6dd0521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0521[];
+static Base_Class bases_ee50521[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc521, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0521, 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 _ZTI7ee50521[];
+extern void _ZN7ee505213barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee505213barEv,_ZTv0_n16_N7ee505213barEv)();
+extern void ABISELECT(_ZThn16_N7ee505213barEv,_ZThn8_N7ee505213barEv)() __attribute__((weak));
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY vtc_ee50521[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50521[0]),
+ (VTBL_ENTRY)&_ZN7ee505213barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee505213barEv,_ZTv0_n16_N7ee505213barEv),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee50521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee50521[];
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV6dd0521__7ee50521[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc5216dd0521__7ee50521[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc5216dd0521__7ee50521[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__6dd0521__7ee50521[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee50521[] = {
+ {&(_ZTV7ee50521[4]), 4,14},
+ {&(_ZTV7ee50521[9]), 9,14},
+ {&(_ZTV7ee50521[13]), 13,14},
+ {&(_tg__ZTV6dd0521__7ee50521[3]), 3,4},
+ {&(_tg__ZTV5cc5216dd0521__7ee50521[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc5216dd0521__7ee50521[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd0521__7ee50521[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee50521[];
+extern VTBL_ENTRY _ZTV7ee50521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50521[];
+static VTBL_ENTRY alt_thunk_names674[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee505213barEv,_ZTv0_n16_N7ee505213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee505213barEv,_ZThn8_N7ee505213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50521 = { "ee50521", // class name
+ bases_ee50521, 4,
+ &(vtc_ee50521[0]), // expected_vtbl_contents
+ &(vtt_ee50521[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee50521),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50521),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50521),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names674,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee60521 : dd0521 {
+ int e;
+ virtual void foo(); // _ZN7ee605213fooEv
+ virtual void bar(); // _ZN7ee605213barEv
+ ~ee60521(); // tgen
+ ee60521(); // tgen
+};
+//SIG(1 ee60521) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee60521 ::foo(){vfunc_called(this, "_ZN7ee605213fooEv");}
+void ee60521 ::bar(){vfunc_called(this, "_ZN7ee605213barEv");}
+ee60521 ::~ee60521(){ note_dtor("ee60521", this);} // tgen
+ee60521 ::ee60521(){ note_ctor("ee60521", this);} // tgen
+
+static void Test_ee60521()
+{
+ extern Class_Descriptor cd_ee60521;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee60521, buf);
+ ee60521 *dp, &lv = *(dp=new (buf) ee60521());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee60521)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60521)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(24,16), "ee60521");
+ check_base_class_offset(lv, (bb21*)(cc521*)(dd0521*), ABISELECT(24,16), "ee60521");
+ check_base_class_offset(lv, (cc521*)(dd0521*), 0, "ee60521");
+ check_base_class_offset(lv, (dd0521*), 0, "ee60521");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee60521.e");
+ test_class_info(&lv, &cd_ee60521);
+ dp->~ee60521();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60521(Test_ee60521, "ee60521", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee60521C1Ev();
+extern void _ZN7ee60521D1Ev();
+Name_Map name_map_ee60521[] = {
+ NSPAIR(_ZN7ee60521C1Ev),
+ NSPAIR(_ZN7ee60521D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc521;
+extern VTBL_ENTRY _ZTI5cc521[];
+extern VTBL_ENTRY _ZTV5cc521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc521[];
+extern Class_Descriptor cd_dd0521;
+extern VTBL_ENTRY _ZTI6dd0521[];
+extern VTBL_ENTRY _ZTV6dd0521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0521[];
+static Base_Class bases_ee60521[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc521, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0521, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee60521[];
+extern void _ZN7ee605213barEv();
+extern void _ZN7ee605213fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee605213fooEv,_ZTv0_n12_N7ee605213fooEv)();
+extern void ABISELECT(_ZThn24_N7ee605213fooEv,_ZThn16_N7ee605213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee60521[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60521[0]),
+ (VTBL_ENTRY)&_ZN7ee605213barEv,
+ (VTBL_ENTRY)&_ZN7ee605213fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee60521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee605213fooEv,_ZTv0_n12_N7ee605213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee60521[];
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV6dd0521__7ee60521[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc5216dd0521__7ee60521[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc5216dd0521__7ee60521[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__6dd0521__7ee60521[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee60521[] = {
+ {&(_ZTV7ee60521[3]), 3,9},
+ {&(_tg__ZTV6dd0521__7ee60521[3]), 3,4},
+ {&(_tg__ZTV5cc5216dd0521__7ee60521[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc5216dd0521__7ee60521[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd0521__7ee60521[3]), 3,4},
+ {&(_ZTV7ee60521[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee60521[];
+extern VTBL_ENTRY _ZTV7ee60521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee60521[];
+static VTBL_ENTRY alt_thunk_names675[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee605213fooEv,_ZTv0_n12_N7ee605213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee605213fooEv,_ZThn16_N7ee605213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee60521 = { "ee60521", // class name
+ bases_ee60521, 4,
+ &(vtc_ee60521[0]), // expected_vtbl_contents
+ &(vtt_ee60521[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee60521),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60521),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee60521),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 ee70521 : virtual dd0521 {
+ int e;
+ virtual void foo(); // _ZN7ee705213fooEv
+ virtual void bar(); // _ZN7ee705213barEv
+ ~ee70521(); // tgen
+ ee70521(); // tgen
+};
+//SIG(1 ee70521) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee70521 ::foo(){vfunc_called(this, "_ZN7ee705213fooEv");}
+void ee70521 ::bar(){vfunc_called(this, "_ZN7ee705213barEv");}
+ee70521 ::~ee70521(){ note_dtor("ee70521", this);} // tgen
+ee70521 ::ee70521(){ note_ctor("ee70521", this);} // tgen
+
+static void Test_ee70521()
+{
+ extern Class_Descriptor cd_ee70521;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee70521, buf);
+ ee70521 *dp, &lv = *(dp=new (buf) ee70521());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee70521)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70521)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee70521");
+ check_base_class_offset(lv, (bb21*)(cc521*)(dd0521*), ABISELECT(32,20), "ee70521");
+ check_base_class_offset(lv, (cc521*)(dd0521*), ABISELECT(16,8), "ee70521");
+ check_base_class_offset(lv, (dd0521*), ABISELECT(16,8), "ee70521");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70521.e");
+ test_class_info(&lv, &cd_ee70521);
+ dp->~ee70521();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70521(Test_ee70521, "ee70521", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee70521C1Ev();
+extern void _ZN7ee70521D1Ev();
+Name_Map name_map_ee70521[] = {
+ NSPAIR(_ZN7ee70521C1Ev),
+ NSPAIR(_ZN7ee70521D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc521;
+extern VTBL_ENTRY _ZTI5cc521[];
+extern VTBL_ENTRY _ZTV5cc521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc521[];
+extern Class_Descriptor cd_dd0521;
+extern VTBL_ENTRY _ZTI6dd0521[];
+extern VTBL_ENTRY _ZTV6dd0521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0521[];
+static Base_Class bases_ee70521[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc521, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0521, 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 _ZTI7ee70521[];
+extern void _ZN7ee705213fooEv();
+extern void _ZN7ee705213barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee705213barEv,_ZTv0_n16_N7ee705213barEv)();
+extern void ABISELECT(_ZThn16_N7ee705213barEv,_ZThn8_N7ee705213barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee705213fooEv,_ZTv0_n12_N7ee705213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee705213fooEv,_ZThn20_N7ee705213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70521[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70521[0]),
+ (VTBL_ENTRY)&_ZN7ee705213fooEv,
+ (VTBL_ENTRY)&_ZN7ee705213barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee705213barEv,_ZTv0_n16_N7ee705213barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee70521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee705213fooEv,_ZTv0_n12_N7ee705213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee70521[];
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV6dd0521__7ee70521[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc5216dd0521__7ee70521[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc5216dd0521__7ee70521[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__6dd0521__7ee70521[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee70521[] = {
+ {&(_ZTV7ee70521[4]), 4,15},
+ {&(_ZTV7ee70521[10]), 10,15},
+ {&(_ZTV7ee70521[14]), 14,15},
+ {&(_tg__ZTV6dd0521__7ee70521[3]), 3,4},
+ {&(_tg__ZTV5cc5216dd0521__7ee70521[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc5216dd0521__7ee70521[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd0521__7ee70521[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee70521[];
+extern VTBL_ENTRY _ZTV7ee70521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70521[];
+static VTBL_ENTRY alt_thunk_names676[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee705213fooEv,_ZTv0_n12_N7ee705213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee705213fooEv,_ZThn20_N7ee705213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee705213barEv,_ZTv0_n16_N7ee705213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee705213barEv,_ZThn8_N7ee705213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70521 = { "ee70521", // class name
+ bases_ee70521, 4,
+ &(vtc_ee70521[0]), // expected_vtbl_contents
+ &(vtt_ee70521[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee70521),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70521),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70521),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 dd1521 : virtual cc521 {
+ int d;
+ ~dd1521(); // tgen
+ dd1521(); // tgen
+};
+//SIG(-1 dd1521) C1{ VBC2{ VBC3{ BC4{ v2 Fi} v2 Fi} v1 Fi} Fi}
+
+
+dd1521 ::~dd1521(){ note_dtor("dd1521", this);} // tgen
+dd1521 ::dd1521(){ note_ctor("dd1521", this);} // tgen
+
+static void Test_dd1521()
+{
+ extern Class_Descriptor cd_dd1521;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd1521, buf);
+ dd1521 *dp, &lv = *(dp=new (buf) dd1521());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd1521)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1521)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,16), "dd1521");
+ check_base_class_offset(lv, (bb21*)(cc521*), ABISELECT(32,16), "dd1521");
+ check_base_class_offset(lv, (cc521*), ABISELECT(16,8), "dd1521");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1521.d");
+ test_class_info(&lv, &cd_dd1521);
+ dp->~dd1521();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1521(Test_dd1521, "dd1521", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd1521C1Ev();
+extern void _ZN6dd1521D1Ev();
+Name_Map name_map_dd1521[] = {
+ NSPAIR(_ZN6dd1521C1Ev),
+ NSPAIR(_ZN6dd1521D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc521;
+extern VTBL_ENTRY _ZTI5cc521[];
+extern VTBL_ENTRY _ZTV5cc521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc521[];
+static Base_Class bases_dd1521[] = {
+ // 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_bb21, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc521, 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 _ZTI6dd1521[];
+extern void _ZN5cc5213barEv();
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY vtc_dd1521[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1521[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd1521[];
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc521__6dd1521[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc521__6dd1521[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_dd1521[] = {
+ {&(_ZTV6dd1521[4]), 4,13},
+ {&(_ZTV6dd1521[8]), 8,13},
+ {&(_ZTV6dd1521[12]), 12,13},
+ {&(_tg__ZTV5cc521__6dd1521[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc521__6dd1521[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd1521[];
+extern VTBL_ENTRY _ZTV6dd1521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1521[];
+Class_Descriptor cd_dd1521 = { "dd1521", // class name
+ bases_dd1521, 3,
+ &(vtc_dd1521[0]), // expected_vtbl_contents
+ &(vtt_dd1521[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd1521),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1521),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1521),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 ee01521 : dd1521 {
+ int e;
+ ~ee01521(); // tgen
+ ee01521(); // tgen
+};
+//SIG(1 ee01521) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 Fi} v2 Fi} v1 Fi} Fi} Fi}
+
+
+ee01521 ::~ee01521(){ note_dtor("ee01521", this);} // tgen
+ee01521 ::ee01521(){ note_ctor("ee01521", this);} // tgen
+
+static void Test_ee01521()
+{
+ extern Class_Descriptor cd_ee01521;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee01521, buf);
+ ee01521 *dp, &lv = *(dp=new (buf) ee01521());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee01521)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01521)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee01521");
+ check_base_class_offset(lv, (bb21*)(cc521*), ABISELECT(32,20), "ee01521");
+ check_base_class_offset(lv, (cc521*)(dd1521*), ABISELECT(16,12), "ee01521");
+ check_base_class_offset(lv, (dd1521*), 0, "ee01521");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01521.e");
+ test_class_info(&lv, &cd_ee01521);
+ dp->~ee01521();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01521(Test_ee01521, "ee01521", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee01521C1Ev();
+extern void _ZN7ee01521D1Ev();
+Name_Map name_map_ee01521[] = {
+ NSPAIR(_ZN7ee01521C1Ev),
+ NSPAIR(_ZN7ee01521D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc521;
+extern VTBL_ENTRY _ZTI5cc521[];
+extern VTBL_ENTRY _ZTV5cc521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc521[];
+extern Class_Descriptor cd_dd1521;
+extern VTBL_ENTRY _ZTI6dd1521[];
+extern VTBL_ENTRY _ZTV6dd1521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1521[];
+static Base_Class bases_ee01521[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc521, 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_dd1521, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01521[];
+extern void _ZN5cc5213barEv();
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY vtc_ee01521[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01521[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee01521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee01521[];
+static VTBL_ENTRY _tg__ZTV6dd1521__7ee01521[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1521[0]),
+};
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc521__6dd1521__7ee01521[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__6dd1521__7ee01521[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc521__7ee01521[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc521__7ee01521[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee01521[] = {
+ {&(_ZTV7ee01521[4]), 4,13},
+ {&(_tg__ZTV6dd1521__7ee01521[4]), 4,4},
+ {&(_tg__ZTV5cc521__6dd1521__7ee01521[4]), 4,5},
+ {&(_tg__ZTV4bb21__6dd1521__7ee01521[3]), 3,4},
+ {&(_ZTV7ee01521[8]), 8,13},
+ {&(_ZTV7ee01521[12]), 12,13},
+ {&(_tg__ZTV5cc521__7ee01521[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc521__7ee01521[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee01521[];
+extern VTBL_ENTRY _ZTV7ee01521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01521[];
+Class_Descriptor cd_ee01521 = { "ee01521", // class name
+ bases_ee01521, 4,
+ &(vtc_ee01521[0]), // expected_vtbl_contents
+ &(vtt_ee01521[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee01521),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01521),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01521),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 ee11521 : virtual dd1521 {
+ int e;
+ ~ee11521(); // tgen
+ ee11521(); // tgen
+};
+//SIG(1 ee11521) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 Fi} v2 Fi} v1 Fi} Fi} Fi}
+
+
+ee11521 ::~ee11521(){ note_dtor("ee11521", this);} // tgen
+ee11521 ::ee11521(){ note_ctor("ee11521", this);} // tgen
+
+static void Test_ee11521()
+{
+ extern Class_Descriptor cd_ee11521;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee11521, buf);
+ ee11521 *dp, &lv = *(dp=new (buf) ee11521());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee11521)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11521)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(48,24), "ee11521");
+ check_base_class_offset(lv, (bb21*)(cc521*), ABISELECT(48,24), "ee11521");
+ check_base_class_offset(lv, (cc521*)(dd1521*), ABISELECT(32,16), "ee11521");
+ check_base_class_offset(lv, (dd1521*), ABISELECT(16,8), "ee11521");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11521.e");
+ test_class_info(&lv, &cd_ee11521);
+ dp->~ee11521();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11521(Test_ee11521, "ee11521", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee11521C1Ev();
+extern void _ZN7ee11521D1Ev();
+Name_Map name_map_ee11521[] = {
+ NSPAIR(_ZN7ee11521C1Ev),
+ NSPAIR(_ZN7ee11521D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc521;
+extern VTBL_ENTRY _ZTI5cc521[];
+extern VTBL_ENTRY _ZTV5cc521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc521[];
+extern Class_Descriptor cd_dd1521;
+extern VTBL_ENTRY _ZTI6dd1521[];
+extern VTBL_ENTRY _ZTV6dd1521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1521[];
+static Base_Class bases_ee11521[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb21, ABISELECT(48,24), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc521, 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_dd1521, 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 _ZTI7ee11521[];
+extern void _ZN5cc5213barEv();
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY vtc_ee11521[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11521[0]),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11521[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee11521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee11521[];
+static VTBL_ENTRY _tg__ZTV6dd1521__7ee11521[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1521[0]),
+};
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc521__6dd1521__7ee11521[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__6dd1521__7ee11521[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc521__7ee11521[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc521__7ee11521[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee11521[] = {
+ {&(_ZTV7ee11521[5]), 5,18},
+ {&(_ZTV7ee11521[9]), 9,18},
+ {&(_ZTV7ee11521[13]), 13,18},
+ {&(_ZTV7ee11521[17]), 17,18},
+ {&(_tg__ZTV6dd1521__7ee11521[4]), 4,4},
+ {&(_tg__ZTV5cc521__6dd1521__7ee11521[4]), 4,5},
+ {&(_tg__ZTV4bb21__6dd1521__7ee11521[3]), 3,4},
+ {&(_tg__ZTV5cc521__7ee11521[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc521__7ee11521[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee11521[];
+extern VTBL_ENTRY _ZTV7ee11521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11521[];
+Class_Descriptor cd_ee11521 = { "ee11521", // class name
+ bases_ee11521, 4,
+ &(vtc_ee11521[0]), // expected_vtbl_contents
+ &(vtt_ee11521[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee11521),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11521),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11521),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 ee21521 : dd1521 {
+ int e;
+ virtual void foo(); // _ZN7ee215213fooEv
+ ~ee21521(); // tgen
+ ee21521(); // tgen
+};
+//SIG(1 ee21521) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee21521 ::foo(){vfunc_called(this, "_ZN7ee215213fooEv");}
+ee21521 ::~ee21521(){ note_dtor("ee21521", this);} // tgen
+ee21521 ::ee21521(){ note_ctor("ee21521", this);} // tgen
+
+static void Test_ee21521()
+{
+ extern Class_Descriptor cd_ee21521;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee21521, buf);
+ ee21521 *dp, &lv = *(dp=new (buf) ee21521());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee21521)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21521)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee21521");
+ check_base_class_offset(lv, (bb21*)(cc521*), ABISELECT(32,20), "ee21521");
+ check_base_class_offset(lv, (cc521*)(dd1521*), ABISELECT(16,12), "ee21521");
+ check_base_class_offset(lv, (dd1521*), 0, "ee21521");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21521.e");
+ test_class_info(&lv, &cd_ee21521);
+ dp->~ee21521();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21521(Test_ee21521, "ee21521", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee21521C1Ev();
+extern void _ZN7ee21521D1Ev();
+Name_Map name_map_ee21521[] = {
+ NSPAIR(_ZN7ee21521C1Ev),
+ NSPAIR(_ZN7ee21521D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc521;
+extern VTBL_ENTRY _ZTI5cc521[];
+extern VTBL_ENTRY _ZTV5cc521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc521[];
+extern Class_Descriptor cd_dd1521;
+extern VTBL_ENTRY _ZTI6dd1521[];
+extern VTBL_ENTRY _ZTV6dd1521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1521[];
+static Base_Class bases_ee21521[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc521, 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_dd1521, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21521[];
+extern void _ZN7ee215213fooEv();
+extern void _ZN5cc5213barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee215213fooEv,_ZTv0_n12_N7ee215213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee215213fooEv,_ZThn20_N7ee215213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee21521[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21521[0]),
+ (VTBL_ENTRY)&_ZN7ee215213fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee21521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee215213fooEv,_ZTv0_n12_N7ee215213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee21521[];
+static VTBL_ENTRY _tg__ZTV6dd1521__7ee21521[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1521[0]),
+};
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc521__6dd1521__7ee21521[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__6dd1521__7ee21521[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc521__7ee21521[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc521__7ee21521[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee21521[] = {
+ {&(_ZTV7ee21521[4]), 4,14},
+ {&(_tg__ZTV6dd1521__7ee21521[4]), 4,4},
+ {&(_tg__ZTV5cc521__6dd1521__7ee21521[4]), 4,5},
+ {&(_tg__ZTV4bb21__6dd1521__7ee21521[3]), 3,4},
+ {&(_ZTV7ee21521[9]), 9,14},
+ {&(_ZTV7ee21521[13]), 13,14},
+ {&(_tg__ZTV5cc521__7ee21521[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc521__7ee21521[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee21521[];
+extern VTBL_ENTRY _ZTV7ee21521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21521[];
+static VTBL_ENTRY alt_thunk_names677[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee215213fooEv,_ZTv0_n12_N7ee215213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee215213fooEv,_ZThn20_N7ee215213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21521 = { "ee21521", // class name
+ bases_ee21521, 4,
+ &(vtc_ee21521[0]), // expected_vtbl_contents
+ &(vtt_ee21521[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee21521),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21521),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21521),8, //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 ee31521 : virtual dd1521 {
+ int e;
+ virtual void foo(); // _ZN7ee315213fooEv
+ ~ee31521(); // tgen
+ ee31521(); // tgen
+};
+//SIG(1 ee31521) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee31521 ::foo(){vfunc_called(this, "_ZN7ee315213fooEv");}
+ee31521 ::~ee31521(){ note_dtor("ee31521", this);} // tgen
+ee31521 ::ee31521(){ note_ctor("ee31521", this);} // tgen
+
+static void Test_ee31521()
+{
+ extern Class_Descriptor cd_ee31521;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee31521, buf);
+ ee31521 *dp, &lv = *(dp=new (buf) ee31521());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee31521)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31521)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(48,24), "ee31521");
+ check_base_class_offset(lv, (bb21*)(cc521*), ABISELECT(48,24), "ee31521");
+ check_base_class_offset(lv, (cc521*)(dd1521*), ABISELECT(32,16), "ee31521");
+ check_base_class_offset(lv, (dd1521*), ABISELECT(16,8), "ee31521");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31521.e");
+ test_class_info(&lv, &cd_ee31521);
+ dp->~ee31521();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31521(Test_ee31521, "ee31521", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee31521C1Ev();
+extern void _ZN7ee31521D1Ev();
+Name_Map name_map_ee31521[] = {
+ NSPAIR(_ZN7ee31521C1Ev),
+ NSPAIR(_ZN7ee31521D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc521;
+extern VTBL_ENTRY _ZTI5cc521[];
+extern VTBL_ENTRY _ZTV5cc521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc521[];
+extern Class_Descriptor cd_dd1521;
+extern VTBL_ENTRY _ZTI6dd1521[];
+extern VTBL_ENTRY _ZTV6dd1521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1521[];
+static Base_Class bases_ee31521[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb21, ABISELECT(48,24), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc521, 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_dd1521, 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 _ZTI7ee31521[];
+extern void _ZN7ee315213fooEv();
+extern void _ZN5cc5213barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee315213fooEv,_ZTv0_n12_N7ee315213fooEv)();
+extern void ABISELECT(_ZThn48_N7ee315213fooEv,_ZThn24_N7ee315213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee31521[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31521[0]),
+ (VTBL_ENTRY)&_ZN7ee315213fooEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31521[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee31521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee315213fooEv,_ZTv0_n12_N7ee315213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee31521[];
+static VTBL_ENTRY _tg__ZTV6dd1521__7ee31521[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1521[0]),
+};
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc521__6dd1521__7ee31521[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__6dd1521__7ee31521[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc521__7ee31521[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc521__7ee31521[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee31521[] = {
+ {&(_ZTV7ee31521[5]), 5,19},
+ {&(_ZTV7ee31521[10]), 10,19},
+ {&(_ZTV7ee31521[14]), 14,19},
+ {&(_ZTV7ee31521[18]), 18,19},
+ {&(_tg__ZTV6dd1521__7ee31521[4]), 4,4},
+ {&(_tg__ZTV5cc521__6dd1521__7ee31521[4]), 4,5},
+ {&(_tg__ZTV4bb21__6dd1521__7ee31521[3]), 3,4},
+ {&(_tg__ZTV5cc521__7ee31521[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc521__7ee31521[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee31521[];
+extern VTBL_ENTRY _ZTV7ee31521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31521[];
+static VTBL_ENTRY alt_thunk_names678[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee315213fooEv,_ZTv0_n12_N7ee315213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee315213fooEv,_ZThn24_N7ee315213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31521 = { "ee31521", // class name
+ bases_ee31521, 4,
+ &(vtc_ee31521[0]), // expected_vtbl_contents
+ &(vtt_ee31521[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee31521),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31521),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31521),9, //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 ee41521 : dd1521 {
+ int e;
+ virtual void bar(); // _ZN7ee415213barEv
+ ~ee41521(); // tgen
+ ee41521(); // tgen
+};
+//SIG(1 ee41521) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 Fi} v2 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee41521 ::bar(){vfunc_called(this, "_ZN7ee415213barEv");}
+ee41521 ::~ee41521(){ note_dtor("ee41521", this);} // tgen
+ee41521 ::ee41521(){ note_ctor("ee41521", this);} // tgen
+
+static void Test_ee41521()
+{
+ extern Class_Descriptor cd_ee41521;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee41521, buf);
+ ee41521 *dp, &lv = *(dp=new (buf) ee41521());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee41521)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41521)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee41521");
+ check_base_class_offset(lv, (bb21*)(cc521*), ABISELECT(32,20), "ee41521");
+ check_base_class_offset(lv, (cc521*)(dd1521*), ABISELECT(16,12), "ee41521");
+ check_base_class_offset(lv, (dd1521*), 0, "ee41521");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41521.e");
+ test_class_info(&lv, &cd_ee41521);
+ dp->~ee41521();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41521(Test_ee41521, "ee41521", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee41521C1Ev();
+extern void _ZN7ee41521D1Ev();
+Name_Map name_map_ee41521[] = {
+ NSPAIR(_ZN7ee41521C1Ev),
+ NSPAIR(_ZN7ee41521D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc521;
+extern VTBL_ENTRY _ZTI5cc521[];
+extern VTBL_ENTRY _ZTV5cc521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc521[];
+extern Class_Descriptor cd_dd1521;
+extern VTBL_ENTRY _ZTI6dd1521[];
+extern VTBL_ENTRY _ZTV6dd1521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1521[];
+static Base_Class bases_ee41521[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc521, 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_dd1521, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41521[];
+extern void _ZN7ee415213barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee415213barEv,_ZTv0_n16_N7ee415213barEv)();
+extern void ABISELECT(_ZThn16_N7ee415213barEv,_ZThn12_N7ee415213barEv)() __attribute__((weak));
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY vtc_ee41521[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41521[0]),
+ (VTBL_ENTRY)&_ZN7ee415213barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee415213barEv,_ZTv0_n16_N7ee415213barEv),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee41521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee41521[];
+static VTBL_ENTRY _tg__ZTV6dd1521__7ee41521[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1521[0]),
+};
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc521__6dd1521__7ee41521[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__6dd1521__7ee41521[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc521__7ee41521[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc521__7ee41521[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee41521[] = {
+ {&(_ZTV7ee41521[4]), 4,14},
+ {&(_tg__ZTV6dd1521__7ee41521[4]), 4,4},
+ {&(_tg__ZTV5cc521__6dd1521__7ee41521[4]), 4,5},
+ {&(_tg__ZTV4bb21__6dd1521__7ee41521[3]), 3,4},
+ {&(_ZTV7ee41521[9]), 9,14},
+ {&(_ZTV7ee41521[13]), 13,14},
+ {&(_tg__ZTV5cc521__7ee41521[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc521__7ee41521[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee41521[];
+extern VTBL_ENTRY _ZTV7ee41521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41521[];
+static VTBL_ENTRY alt_thunk_names679[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee415213barEv,_ZTv0_n16_N7ee415213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee415213barEv,_ZThn12_N7ee415213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41521 = { "ee41521", // class name
+ bases_ee41521, 4,
+ &(vtc_ee41521[0]), // expected_vtbl_contents
+ &(vtt_ee41521[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee41521),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41521),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41521),8, //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 ee51521 : virtual dd1521 {
+ int e;
+ virtual void bar(); // _ZN7ee515213barEv
+ ~ee51521(); // tgen
+ ee51521(); // tgen
+};
+//SIG(1 ee51521) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 Fi} v2 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee51521 ::bar(){vfunc_called(this, "_ZN7ee515213barEv");}
+ee51521 ::~ee51521(){ note_dtor("ee51521", this);} // tgen
+ee51521 ::ee51521(){ note_ctor("ee51521", this);} // tgen
+
+static void Test_ee51521()
+{
+ extern Class_Descriptor cd_ee51521;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee51521, buf);
+ ee51521 *dp, &lv = *(dp=new (buf) ee51521());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee51521)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51521)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(48,24), "ee51521");
+ check_base_class_offset(lv, (bb21*)(cc521*), ABISELECT(48,24), "ee51521");
+ check_base_class_offset(lv, (cc521*)(dd1521*), ABISELECT(32,16), "ee51521");
+ check_base_class_offset(lv, (dd1521*), ABISELECT(16,8), "ee51521");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51521.e");
+ test_class_info(&lv, &cd_ee51521);
+ dp->~ee51521();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51521(Test_ee51521, "ee51521", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee51521C1Ev();
+extern void _ZN7ee51521D1Ev();
+Name_Map name_map_ee51521[] = {
+ NSPAIR(_ZN7ee51521C1Ev),
+ NSPAIR(_ZN7ee51521D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc521;
+extern VTBL_ENTRY _ZTI5cc521[];
+extern VTBL_ENTRY _ZTV5cc521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc521[];
+extern Class_Descriptor cd_dd1521;
+extern VTBL_ENTRY _ZTI6dd1521[];
+extern VTBL_ENTRY _ZTV6dd1521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1521[];
+static Base_Class bases_ee51521[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb21, ABISELECT(48,24), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc521, 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_dd1521, 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 _ZTI7ee51521[];
+extern void _ZN7ee515213barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee515213barEv,_ZTv0_n16_N7ee515213barEv)();
+extern void ABISELECT(_ZThn32_N7ee515213barEv,_ZThn16_N7ee515213barEv)() __attribute__((weak));
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY vtc_ee51521[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51521[0]),
+ (VTBL_ENTRY)&_ZN7ee515213barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51521[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee515213barEv,_ZTv0_n16_N7ee515213barEv),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee51521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee51521[];
+static VTBL_ENTRY _tg__ZTV6dd1521__7ee51521[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1521[0]),
+};
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc521__6dd1521__7ee51521[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__6dd1521__7ee51521[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc521__7ee51521[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc521__7ee51521[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee51521[] = {
+ {&(_ZTV7ee51521[5]), 5,19},
+ {&(_ZTV7ee51521[10]), 10,19},
+ {&(_ZTV7ee51521[14]), 14,19},
+ {&(_ZTV7ee51521[18]), 18,19},
+ {&(_tg__ZTV6dd1521__7ee51521[4]), 4,4},
+ {&(_tg__ZTV5cc521__6dd1521__7ee51521[4]), 4,5},
+ {&(_tg__ZTV4bb21__6dd1521__7ee51521[3]), 3,4},
+ {&(_tg__ZTV5cc521__7ee51521[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc521__7ee51521[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee51521[];
+extern VTBL_ENTRY _ZTV7ee51521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51521[];
+static VTBL_ENTRY alt_thunk_names680[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee515213barEv,_ZTv0_n16_N7ee515213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee515213barEv,_ZThn16_N7ee515213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51521 = { "ee51521", // class name
+ bases_ee51521, 4,
+ &(vtc_ee51521[0]), // expected_vtbl_contents
+ &(vtt_ee51521[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee51521),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51521),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51521),9, //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 ee61521 : dd1521 {
+ int e;
+ virtual void foo(); // _ZN7ee615213fooEv
+ virtual void bar(); // _ZN7ee615213barEv
+ ~ee61521(); // tgen
+ ee61521(); // tgen
+};
+//SIG(1 ee61521) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee61521 ::foo(){vfunc_called(this, "_ZN7ee615213fooEv");}
+void ee61521 ::bar(){vfunc_called(this, "_ZN7ee615213barEv");}
+ee61521 ::~ee61521(){ note_dtor("ee61521", this);} // tgen
+ee61521 ::ee61521(){ note_ctor("ee61521", this);} // tgen
+
+static void Test_ee61521()
+{
+ extern Class_Descriptor cd_ee61521;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee61521, buf);
+ ee61521 *dp, &lv = *(dp=new (buf) ee61521());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee61521)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61521)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee61521");
+ check_base_class_offset(lv, (bb21*)(cc521*), ABISELECT(32,20), "ee61521");
+ check_base_class_offset(lv, (cc521*)(dd1521*), ABISELECT(16,12), "ee61521");
+ check_base_class_offset(lv, (dd1521*), 0, "ee61521");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61521.e");
+ test_class_info(&lv, &cd_ee61521);
+ dp->~ee61521();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61521(Test_ee61521, "ee61521", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee61521C1Ev();
+extern void _ZN7ee61521D1Ev();
+Name_Map name_map_ee61521[] = {
+ NSPAIR(_ZN7ee61521C1Ev),
+ NSPAIR(_ZN7ee61521D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc521;
+extern VTBL_ENTRY _ZTI5cc521[];
+extern VTBL_ENTRY _ZTV5cc521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc521[];
+extern Class_Descriptor cd_dd1521;
+extern VTBL_ENTRY _ZTI6dd1521[];
+extern VTBL_ENTRY _ZTV6dd1521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1521[];
+static Base_Class bases_ee61521[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc521, 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_dd1521, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61521[];
+extern void _ZN7ee615213fooEv();
+extern void _ZN7ee615213barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee615213barEv,_ZTv0_n16_N7ee615213barEv)();
+extern void ABISELECT(_ZThn16_N7ee615213barEv,_ZThn12_N7ee615213barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee615213fooEv,_ZTv0_n12_N7ee615213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee615213fooEv,_ZThn20_N7ee615213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61521[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61521[0]),
+ (VTBL_ENTRY)&_ZN7ee615213fooEv,
+ (VTBL_ENTRY)&_ZN7ee615213barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee615213barEv,_ZTv0_n16_N7ee615213barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee61521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee615213fooEv,_ZTv0_n12_N7ee615213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee61521[];
+static VTBL_ENTRY _tg__ZTV6dd1521__7ee61521[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1521[0]),
+};
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc521__6dd1521__7ee61521[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__6dd1521__7ee61521[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc521__7ee61521[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc521__7ee61521[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee61521[] = {
+ {&(_ZTV7ee61521[4]), 4,15},
+ {&(_tg__ZTV6dd1521__7ee61521[4]), 4,4},
+ {&(_tg__ZTV5cc521__6dd1521__7ee61521[4]), 4,5},
+ {&(_tg__ZTV4bb21__6dd1521__7ee61521[3]), 3,4},
+ {&(_ZTV7ee61521[10]), 10,15},
+ {&(_ZTV7ee61521[14]), 14,15},
+ {&(_tg__ZTV5cc521__7ee61521[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc521__7ee61521[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee61521[];
+extern VTBL_ENTRY _ZTV7ee61521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61521[];
+static VTBL_ENTRY alt_thunk_names681[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee615213fooEv,_ZTv0_n12_N7ee615213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee615213fooEv,_ZThn20_N7ee615213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee615213barEv,_ZTv0_n16_N7ee615213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee615213barEv,_ZThn12_N7ee615213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61521 = { "ee61521", // class name
+ bases_ee61521, 4,
+ &(vtc_ee61521[0]), // expected_vtbl_contents
+ &(vtt_ee61521[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee61521),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61521),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61521),8, //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 ee71521 : virtual dd1521 {
+ int e;
+ virtual void foo(); // _ZN7ee715213fooEv
+ virtual void bar(); // _ZN7ee715213barEv
+ ~ee71521(); // tgen
+ ee71521(); // tgen
+};
+//SIG(1 ee71521) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee71521 ::foo(){vfunc_called(this, "_ZN7ee715213fooEv");}
+void ee71521 ::bar(){vfunc_called(this, "_ZN7ee715213barEv");}
+ee71521 ::~ee71521(){ note_dtor("ee71521", this);} // tgen
+ee71521 ::ee71521(){ note_ctor("ee71521", this);} // tgen
+
+static void Test_ee71521()
+{
+ extern Class_Descriptor cd_ee71521;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee71521, buf);
+ ee71521 *dp, &lv = *(dp=new (buf) ee71521());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee71521)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71521)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(48,24), "ee71521");
+ check_base_class_offset(lv, (bb21*)(cc521*), ABISELECT(48,24), "ee71521");
+ check_base_class_offset(lv, (cc521*)(dd1521*), ABISELECT(32,16), "ee71521");
+ check_base_class_offset(lv, (dd1521*), ABISELECT(16,8), "ee71521");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71521.e");
+ test_class_info(&lv, &cd_ee71521);
+ dp->~ee71521();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71521(Test_ee71521, "ee71521", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee71521C1Ev();
+extern void _ZN7ee71521D1Ev();
+Name_Map name_map_ee71521[] = {
+ NSPAIR(_ZN7ee71521C1Ev),
+ NSPAIR(_ZN7ee71521D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc521;
+extern VTBL_ENTRY _ZTI5cc521[];
+extern VTBL_ENTRY _ZTV5cc521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc521[];
+extern Class_Descriptor cd_dd1521;
+extern VTBL_ENTRY _ZTI6dd1521[];
+extern VTBL_ENTRY _ZTV6dd1521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1521[];
+static Base_Class bases_ee71521[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb21, ABISELECT(48,24), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc521, 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_dd1521, 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 _ZTI7ee71521[];
+extern void _ZN7ee715213fooEv();
+extern void _ZN7ee715213barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee715213barEv,_ZTv0_n16_N7ee715213barEv)();
+extern void ABISELECT(_ZThn32_N7ee715213barEv,_ZThn16_N7ee715213barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee715213fooEv,_ZTv0_n12_N7ee715213fooEv)();
+extern void ABISELECT(_ZThn48_N7ee715213fooEv,_ZThn24_N7ee715213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71521[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71521[0]),
+ (VTBL_ENTRY)&_ZN7ee715213fooEv,
+ (VTBL_ENTRY)&_ZN7ee715213barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71521[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee715213barEv,_ZTv0_n16_N7ee715213barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee71521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee715213fooEv,_ZTv0_n12_N7ee715213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee71521[];
+static VTBL_ENTRY _tg__ZTV6dd1521__7ee71521[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1521[0]),
+};
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc521__6dd1521__7ee71521[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__6dd1521__7ee71521[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc521__7ee71521[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc521__7ee71521[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee71521[] = {
+ {&(_ZTV7ee71521[5]), 5,20},
+ {&(_ZTV7ee71521[11]), 11,20},
+ {&(_ZTV7ee71521[15]), 15,20},
+ {&(_ZTV7ee71521[19]), 19,20},
+ {&(_tg__ZTV6dd1521__7ee71521[4]), 4,4},
+ {&(_tg__ZTV5cc521__6dd1521__7ee71521[4]), 4,5},
+ {&(_tg__ZTV4bb21__6dd1521__7ee71521[3]), 3,4},
+ {&(_tg__ZTV5cc521__7ee71521[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc521__7ee71521[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee71521[];
+extern VTBL_ENTRY _ZTV7ee71521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71521[];
+static VTBL_ENTRY alt_thunk_names682[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee715213fooEv,_ZTv0_n12_N7ee715213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee715213fooEv,_ZThn24_N7ee715213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee715213barEv,_ZTv0_n16_N7ee715213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee715213barEv,_ZThn16_N7ee715213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71521 = { "ee71521", // class name
+ bases_ee71521, 4,
+ &(vtc_ee71521[0]), // expected_vtbl_contents
+ &(vtt_ee71521[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee71521),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71521),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71521),9, //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 dd2521 : cc521 {
+ int d;
+ virtual void foo(); // _ZN6dd25213fooEv
+ ~dd2521(); // tgen
+ dd2521(); // tgen
+};
+//SIG(-1 dd2521) C1{ BC2{ VBC3{ BC4{ v1 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void dd2521 ::foo(){vfunc_called(this, "_ZN6dd25213fooEv");}
+dd2521 ::~dd2521(){ note_dtor("dd2521", this);} // tgen
+dd2521 ::dd2521(){ note_ctor("dd2521", this);} // tgen
+
+static void Test_dd2521()
+{
+ extern Class_Descriptor cd_dd2521;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd2521, buf);
+ dd2521 *dp, &lv = *(dp=new (buf) dd2521());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd2521)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2521)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(16,12), "dd2521");
+ check_base_class_offset(lv, (bb21*)(cc521*), ABISELECT(16,12), "dd2521");
+ check_base_class_offset(lv, (cc521*), 0, "dd2521");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd2521.d");
+ test_class_info(&lv, &cd_dd2521);
+ dp->~dd2521();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2521(Test_dd2521, "dd2521", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd2521C1Ev();
+extern void _ZN6dd2521D1Ev();
+Name_Map name_map_dd2521[] = {
+ NSPAIR(_ZN6dd2521C1Ev),
+ NSPAIR(_ZN6dd2521D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc521;
+extern VTBL_ENTRY _ZTI5cc521[];
+extern VTBL_ENTRY _ZTV5cc521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc521[];
+static Base_Class bases_dd2521[] = {
+ // 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_bb21, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc521, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd2521[];
+extern void _ZN5cc5213barEv();
+extern void _ZN6dd25213fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd25213fooEv,_ZTv0_n12_N6dd25213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd25213fooEv,_ZThn12_N6dd25213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd2521[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+ (VTBL_ENTRY)&_ZN6dd25213fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25213fooEv,_ZTv0_n12_N6dd25213fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd2521[];
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc521__6dd2521[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc521__6dd2521[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_dd2521[] = {
+ {&(_ZTV6dd2521[3]), 3,9},
+ {&(_tg__ZTV5cc521__6dd2521[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc521__6dd2521[3]), 3,4},
+ {&(_ZTV6dd2521[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI6dd2521[];
+extern VTBL_ENTRY _ZTV6dd2521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2521[];
+static VTBL_ENTRY alt_thunk_names683[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25213fooEv,_ZTv0_n12_N6dd25213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd25213fooEv,_ZThn12_N6dd25213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd2521 = { "dd2521", // class name
+ bases_dd2521, 3,
+ &(vtc_dd2521[0]), // expected_vtbl_contents
+ &(vtt_dd2521[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd2521),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2521),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd2521),4, //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 ee02521 : dd2521 {
+ int e;
+ ~ee02521(); // tgen
+ ee02521(); // tgen
+};
+//SIG(1 ee02521) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee02521 ::~ee02521(){ note_dtor("ee02521", this);} // tgen
+ee02521 ::ee02521(){ note_ctor("ee02521", this);} // tgen
+
+static void Test_ee02521()
+{
+ extern Class_Descriptor cd_ee02521;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee02521, buf);
+ ee02521 *dp, &lv = *(dp=new (buf) ee02521());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee02521)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02521)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(24,16), "ee02521");
+ check_base_class_offset(lv, (bb21*)(cc521*)(dd2521*), ABISELECT(24,16), "ee02521");
+ check_base_class_offset(lv, (cc521*)(dd2521*), 0, "ee02521");
+ check_base_class_offset(lv, (dd2521*), 0, "ee02521");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee02521.e");
+ test_class_info(&lv, &cd_ee02521);
+ dp->~ee02521();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02521(Test_ee02521, "ee02521", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee02521C1Ev();
+extern void _ZN7ee02521D1Ev();
+Name_Map name_map_ee02521[] = {
+ NSPAIR(_ZN7ee02521C1Ev),
+ NSPAIR(_ZN7ee02521D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc521;
+extern VTBL_ENTRY _ZTI5cc521[];
+extern VTBL_ENTRY _ZTV5cc521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc521[];
+extern Class_Descriptor cd_dd2521;
+extern VTBL_ENTRY _ZTI6dd2521[];
+extern VTBL_ENTRY _ZTV6dd2521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2521[];
+static Base_Class bases_ee02521[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc521, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2521, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee02521[];
+extern void _ZN5cc5213barEv();
+extern void _ZN6dd25213fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd25213fooEv,_ZTv0_n12_N6dd25213fooEv)();
+extern void ABISELECT(_ZThn24_N6dd25213fooEv,_ZThn16_N6dd25213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee02521[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+ (VTBL_ENTRY)&_ZN6dd25213fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee02521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25213fooEv,_ZTv0_n12_N6dd25213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee02521[];
+extern void _ZN5cc5213barEv();
+extern void _ZN6dd25213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2521__7ee02521[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+ (VTBL_ENTRY)&_ZN6dd25213fooEv,
+};
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc5216dd2521__7ee02521[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc5216dd2521__7ee02521[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd25213fooEv,_ZTv0_n12_N6dd25213fooEv)();
+extern void ABISELECT(_ZThn24_N6dd25213fooEv,_ZThn16_N6dd25213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd2521__7ee02521[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25213fooEv,_ZTv0_n12_N6dd25213fooEv),
+};
+static VTT_ENTRY vtt_ee02521[] = {
+ {&(_ZTV7ee02521[3]), 3,9},
+ {&(_tg__ZTV6dd2521__7ee02521[3]), 3,5},
+ {&(_tg__ZTV5cc5216dd2521__7ee02521[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc5216dd2521__7ee02521[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd2521__7ee02521[3]), 3,4},
+ {&(_ZTV7ee02521[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee02521[];
+extern VTBL_ENTRY _ZTV7ee02521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee02521[];
+static VTBL_ENTRY alt_thunk_names684[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25213fooEv,_ZTv0_n12_N6dd25213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd25213fooEv,_ZThn16_N6dd25213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd25213fooEv,_ZThn16_N6dd25213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee02521 = { "ee02521", // class name
+ bases_ee02521, 4,
+ &(vtc_ee02521[0]), // expected_vtbl_contents
+ &(vtt_ee02521[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee02521),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02521),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee02521),6, //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 ee12521 : virtual dd2521 {
+ int e;
+ ~ee12521(); // tgen
+ ee12521(); // tgen
+};
+//SIG(1 ee12521) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee12521 ::~ee12521(){ note_dtor("ee12521", this);} // tgen
+ee12521 ::ee12521(){ note_ctor("ee12521", this);} // tgen
+
+static void Test_ee12521()
+{
+ extern Class_Descriptor cd_ee12521;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee12521, buf);
+ ee12521 *dp, &lv = *(dp=new (buf) ee12521());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee12521)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12521)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee12521");
+ check_base_class_offset(lv, (bb21*)(cc521*)(dd2521*), ABISELECT(32,20), "ee12521");
+ check_base_class_offset(lv, (cc521*)(dd2521*), ABISELECT(16,8), "ee12521");
+ check_base_class_offset(lv, (dd2521*), ABISELECT(16,8), "ee12521");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12521.e");
+ test_class_info(&lv, &cd_ee12521);
+ dp->~ee12521();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12521(Test_ee12521, "ee12521", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee12521C1Ev();
+extern void _ZN7ee12521D1Ev();
+Name_Map name_map_ee12521[] = {
+ NSPAIR(_ZN7ee12521C1Ev),
+ NSPAIR(_ZN7ee12521D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc521;
+extern VTBL_ENTRY _ZTI5cc521[];
+extern VTBL_ENTRY _ZTV5cc521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc521[];
+extern Class_Descriptor cd_dd2521;
+extern VTBL_ENTRY _ZTI6dd2521[];
+extern VTBL_ENTRY _ZTV6dd2521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2521[];
+static Base_Class bases_ee12521[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc521, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2521, 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 _ZTI7ee12521[];
+extern void _ZN5cc5213barEv();
+extern void _ZN6dd25213fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd25213fooEv,_ZTv0_n12_N6dd25213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd25213fooEv,_ZThn12_N6dd25213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee12521[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12521[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+ (VTBL_ENTRY)&_ZN6dd25213fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee12521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25213fooEv,_ZTv0_n12_N6dd25213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee12521[];
+extern void _ZN5cc5213barEv();
+extern void _ZN6dd25213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2521__7ee12521[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+ (VTBL_ENTRY)&_ZN6dd25213fooEv,
+};
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc5216dd2521__7ee12521[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc5216dd2521__7ee12521[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd25213fooEv,_ZTv0_n12_N6dd25213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd25213fooEv,_ZThn12_N6dd25213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd2521__7ee12521[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25213fooEv,_ZTv0_n12_N6dd25213fooEv),
+};
+static VTT_ENTRY vtt_ee12521[] = {
+ {&(_ZTV7ee12521[4]), 4,15},
+ {&(_ZTV7ee12521[9]), 9,15},
+ {&(_ZTV7ee12521[14]), 14,15},
+ {&(_tg__ZTV6dd2521__7ee12521[3]), 3,5},
+ {&(_tg__ZTV5cc5216dd2521__7ee12521[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc5216dd2521__7ee12521[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd2521__7ee12521[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee12521[];
+extern VTBL_ENTRY _ZTV7ee12521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12521[];
+static VTBL_ENTRY alt_thunk_names685[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25213fooEv,_ZTv0_n12_N6dd25213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd25213fooEv,_ZThn12_N6dd25213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd25213fooEv,_ZThn12_N6dd25213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee12521 = { "ee12521", // class name
+ bases_ee12521, 4,
+ &(vtc_ee12521[0]), // expected_vtbl_contents
+ &(vtt_ee12521[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee12521),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12521),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12521),7, //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 ee22521 : dd2521 {
+ int e;
+ virtual void foo(); // _ZN7ee225213fooEv
+ ~ee22521(); // tgen
+ ee22521(); // tgen
+};
+//SIG(1 ee22521) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee22521 ::foo(){vfunc_called(this, "_ZN7ee225213fooEv");}
+ee22521 ::~ee22521(){ note_dtor("ee22521", this);} // tgen
+ee22521 ::ee22521(){ note_ctor("ee22521", this);} // tgen
+
+static void Test_ee22521()
+{
+ extern Class_Descriptor cd_ee22521;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee22521, buf);
+ ee22521 *dp, &lv = *(dp=new (buf) ee22521());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee22521)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22521)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(24,16), "ee22521");
+ check_base_class_offset(lv, (bb21*)(cc521*)(dd2521*), ABISELECT(24,16), "ee22521");
+ check_base_class_offset(lv, (cc521*)(dd2521*), 0, "ee22521");
+ check_base_class_offset(lv, (dd2521*), 0, "ee22521");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee22521.e");
+ test_class_info(&lv, &cd_ee22521);
+ dp->~ee22521();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22521(Test_ee22521, "ee22521", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee22521C1Ev();
+extern void _ZN7ee22521D1Ev();
+Name_Map name_map_ee22521[] = {
+ NSPAIR(_ZN7ee22521C1Ev),
+ NSPAIR(_ZN7ee22521D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc521;
+extern VTBL_ENTRY _ZTI5cc521[];
+extern VTBL_ENTRY _ZTV5cc521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc521[];
+extern Class_Descriptor cd_dd2521;
+extern VTBL_ENTRY _ZTI6dd2521[];
+extern VTBL_ENTRY _ZTV6dd2521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2521[];
+static Base_Class bases_ee22521[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc521, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2521, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee22521[];
+extern void _ZN5cc5213barEv();
+extern void _ZN7ee225213fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee225213fooEv,_ZTv0_n12_N7ee225213fooEv)();
+extern void ABISELECT(_ZThn24_N7ee225213fooEv,_ZThn16_N7ee225213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee22521[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+ (VTBL_ENTRY)&_ZN7ee225213fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee22521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee225213fooEv,_ZTv0_n12_N7ee225213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee22521[];
+extern void _ZN5cc5213barEv();
+extern void _ZN6dd25213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2521__7ee22521[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+ (VTBL_ENTRY)&_ZN6dd25213fooEv,
+};
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc5216dd2521__7ee22521[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc5216dd2521__7ee22521[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd25213fooEv,_ZTv0_n12_N6dd25213fooEv)();
+extern void ABISELECT(_ZThn24_N6dd25213fooEv,_ZThn16_N6dd25213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd2521__7ee22521[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25213fooEv,_ZTv0_n12_N6dd25213fooEv),
+};
+static VTT_ENTRY vtt_ee22521[] = {
+ {&(_ZTV7ee22521[3]), 3,9},
+ {&(_tg__ZTV6dd2521__7ee22521[3]), 3,5},
+ {&(_tg__ZTV5cc5216dd2521__7ee22521[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc5216dd2521__7ee22521[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd2521__7ee22521[3]), 3,4},
+ {&(_ZTV7ee22521[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee22521[];
+extern VTBL_ENTRY _ZTV7ee22521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee22521[];
+static VTBL_ENTRY alt_thunk_names686[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25213fooEv,_ZTv0_n12_N6dd25213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd25213fooEv,_ZThn16_N6dd25213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee225213fooEv,_ZTv0_n12_N7ee225213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee225213fooEv,_ZThn16_N7ee225213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee22521 = { "ee22521", // class name
+ bases_ee22521, 4,
+ &(vtc_ee22521[0]), // expected_vtbl_contents
+ &(vtt_ee22521[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee22521),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22521),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee22521),6, //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 ee32521 : virtual dd2521 {
+ int e;
+ virtual void foo(); // _ZN7ee325213fooEv
+ ~ee32521(); // tgen
+ ee32521(); // tgen
+};
+//SIG(1 ee32521) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee32521 ::foo(){vfunc_called(this, "_ZN7ee325213fooEv");}
+ee32521 ::~ee32521(){ note_dtor("ee32521", this);} // tgen
+ee32521 ::ee32521(){ note_ctor("ee32521", this);} // tgen
+
+static void Test_ee32521()
+{
+ extern Class_Descriptor cd_ee32521;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee32521, buf);
+ ee32521 *dp, &lv = *(dp=new (buf) ee32521());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee32521)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32521)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee32521");
+ check_base_class_offset(lv, (bb21*)(cc521*)(dd2521*), ABISELECT(32,20), "ee32521");
+ check_base_class_offset(lv, (cc521*)(dd2521*), ABISELECT(16,8), "ee32521");
+ check_base_class_offset(lv, (dd2521*), ABISELECT(16,8), "ee32521");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32521.e");
+ test_class_info(&lv, &cd_ee32521);
+ dp->~ee32521();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32521(Test_ee32521, "ee32521", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee32521C1Ev();
+extern void _ZN7ee32521D1Ev();
+Name_Map name_map_ee32521[] = {
+ NSPAIR(_ZN7ee32521C1Ev),
+ NSPAIR(_ZN7ee32521D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc521;
+extern VTBL_ENTRY _ZTI5cc521[];
+extern VTBL_ENTRY _ZTV5cc521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc521[];
+extern Class_Descriptor cd_dd2521;
+extern VTBL_ENTRY _ZTI6dd2521[];
+extern VTBL_ENTRY _ZTV6dd2521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2521[];
+static Base_Class bases_ee32521[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc521, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2521, 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 _ZTI7ee32521[];
+extern void _ZN7ee325213fooEv();
+extern void _ZN5cc5213barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee325213fooEv,_ZTv0_n20_N7ee325213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee325213fooEv,_ZThn8_N7ee325213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee325213fooEv,_ZTv0_n12_N7ee325213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee325213fooEv,_ZThn20_N7ee325213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee32521[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32521[0]),
+ (VTBL_ENTRY)&_ZN7ee325213fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee325213fooEv,_ZTv0_n20_N7ee325213fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee32521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee325213fooEv,_ZTv0_n12_N7ee325213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee32521[];
+extern void _ZN5cc5213barEv();
+extern void _ZN6dd25213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2521__7ee32521[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+ (VTBL_ENTRY)&_ZN6dd25213fooEv,
+};
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc5216dd2521__7ee32521[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc5216dd2521__7ee32521[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd25213fooEv,_ZTv0_n12_N6dd25213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd25213fooEv,_ZThn12_N6dd25213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd2521__7ee32521[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25213fooEv,_ZTv0_n12_N6dd25213fooEv),
+};
+static VTT_ENTRY vtt_ee32521[] = {
+ {&(_ZTV7ee32521[4]), 4,16},
+ {&(_ZTV7ee32521[10]), 10,16},
+ {&(_ZTV7ee32521[15]), 15,16},
+ {&(_tg__ZTV6dd2521__7ee32521[3]), 3,5},
+ {&(_tg__ZTV5cc5216dd2521__7ee32521[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc5216dd2521__7ee32521[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd2521__7ee32521[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee32521[];
+extern VTBL_ENTRY _ZTV7ee32521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32521[];
+static VTBL_ENTRY alt_thunk_names687[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25213fooEv,_ZTv0_n12_N6dd25213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd25213fooEv,_ZThn12_N6dd25213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee325213fooEv,_ZTv0_n12_N7ee325213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee325213fooEv,_ZThn20_N7ee325213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee325213fooEv,_ZTv0_n20_N7ee325213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee325213fooEv,_ZThn8_N7ee325213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32521 = { "ee32521", // class name
+ bases_ee32521, 4,
+ &(vtc_ee32521[0]), // expected_vtbl_contents
+ &(vtt_ee32521[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee32521),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32521),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32521),7, //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 ee42521 : dd2521 {
+ int e;
+ virtual void bar(); // _ZN7ee425213barEv
+ ~ee42521(); // tgen
+ ee42521(); // tgen
+};
+//SIG(1 ee42521) C1{ BC2{ BC3{ VBC4{ BC5{ v2 Fi} v2 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee42521 ::bar(){vfunc_called(this, "_ZN7ee425213barEv");}
+ee42521 ::~ee42521(){ note_dtor("ee42521", this);} // tgen
+ee42521 ::ee42521(){ note_ctor("ee42521", this);} // tgen
+
+static void Test_ee42521()
+{
+ extern Class_Descriptor cd_ee42521;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee42521, buf);
+ ee42521 *dp, &lv = *(dp=new (buf) ee42521());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee42521)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42521)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(24,16), "ee42521");
+ check_base_class_offset(lv, (bb21*)(cc521*)(dd2521*), ABISELECT(24,16), "ee42521");
+ check_base_class_offset(lv, (cc521*)(dd2521*), 0, "ee42521");
+ check_base_class_offset(lv, (dd2521*), 0, "ee42521");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee42521.e");
+ test_class_info(&lv, &cd_ee42521);
+ dp->~ee42521();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42521(Test_ee42521, "ee42521", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee42521C1Ev();
+extern void _ZN7ee42521D1Ev();
+Name_Map name_map_ee42521[] = {
+ NSPAIR(_ZN7ee42521C1Ev),
+ NSPAIR(_ZN7ee42521D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc521;
+extern VTBL_ENTRY _ZTI5cc521[];
+extern VTBL_ENTRY _ZTV5cc521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc521[];
+extern Class_Descriptor cd_dd2521;
+extern VTBL_ENTRY _ZTI6dd2521[];
+extern VTBL_ENTRY _ZTV6dd2521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2521[];
+static Base_Class bases_ee42521[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc521, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2521, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee42521[];
+extern void _ZN7ee425213barEv();
+extern void _ZN6dd25213fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd25213fooEv,_ZTv0_n12_N6dd25213fooEv)();
+extern void ABISELECT(_ZThn24_N6dd25213fooEv,_ZThn16_N6dd25213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee42521[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42521[0]),
+ (VTBL_ENTRY)&_ZN7ee425213barEv,
+ (VTBL_ENTRY)&_ZN6dd25213fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee42521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25213fooEv,_ZTv0_n12_N6dd25213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee42521[];
+extern void _ZN5cc5213barEv();
+extern void _ZN6dd25213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2521__7ee42521[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+ (VTBL_ENTRY)&_ZN6dd25213fooEv,
+};
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc5216dd2521__7ee42521[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc5216dd2521__7ee42521[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd25213fooEv,_ZTv0_n12_N6dd25213fooEv)();
+extern void ABISELECT(_ZThn24_N6dd25213fooEv,_ZThn16_N6dd25213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd2521__7ee42521[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25213fooEv,_ZTv0_n12_N6dd25213fooEv),
+};
+static VTT_ENTRY vtt_ee42521[] = {
+ {&(_ZTV7ee42521[3]), 3,9},
+ {&(_tg__ZTV6dd2521__7ee42521[3]), 3,5},
+ {&(_tg__ZTV5cc5216dd2521__7ee42521[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc5216dd2521__7ee42521[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd2521__7ee42521[3]), 3,4},
+ {&(_ZTV7ee42521[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee42521[];
+extern VTBL_ENTRY _ZTV7ee42521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee42521[];
+static VTBL_ENTRY alt_thunk_names688[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25213fooEv,_ZTv0_n12_N6dd25213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd25213fooEv,_ZThn16_N6dd25213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd25213fooEv,_ZThn16_N6dd25213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee42521 = { "ee42521", // class name
+ bases_ee42521, 4,
+ &(vtc_ee42521[0]), // expected_vtbl_contents
+ &(vtt_ee42521[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee42521),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42521),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee42521),6, //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 ee52521 : virtual dd2521 {
+ int e;
+ virtual void bar(); // _ZN7ee525213barEv
+ ~ee52521(); // tgen
+ ee52521(); // tgen
+};
+//SIG(1 ee52521) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 Fi} v2 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee52521 ::bar(){vfunc_called(this, "_ZN7ee525213barEv");}
+ee52521 ::~ee52521(){ note_dtor("ee52521", this);} // tgen
+ee52521 ::ee52521(){ note_ctor("ee52521", this);} // tgen
+
+static void Test_ee52521()
+{
+ extern Class_Descriptor cd_ee52521;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee52521, buf);
+ ee52521 *dp, &lv = *(dp=new (buf) ee52521());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee52521)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52521)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee52521");
+ check_base_class_offset(lv, (bb21*)(cc521*)(dd2521*), ABISELECT(32,20), "ee52521");
+ check_base_class_offset(lv, (cc521*)(dd2521*), ABISELECT(16,8), "ee52521");
+ check_base_class_offset(lv, (dd2521*), ABISELECT(16,8), "ee52521");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52521.e");
+ test_class_info(&lv, &cd_ee52521);
+ dp->~ee52521();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52521(Test_ee52521, "ee52521", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee52521C1Ev();
+extern void _ZN7ee52521D1Ev();
+Name_Map name_map_ee52521[] = {
+ NSPAIR(_ZN7ee52521C1Ev),
+ NSPAIR(_ZN7ee52521D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc521;
+extern VTBL_ENTRY _ZTI5cc521[];
+extern VTBL_ENTRY _ZTV5cc521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc521[];
+extern Class_Descriptor cd_dd2521;
+extern VTBL_ENTRY _ZTI6dd2521[];
+extern VTBL_ENTRY _ZTV6dd2521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2521[];
+static Base_Class bases_ee52521[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc521, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2521, 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 _ZTI7ee52521[];
+extern void _ZN7ee525213barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee525213barEv,_ZTv0_n16_N7ee525213barEv)();
+extern void ABISELECT(_ZThn16_N7ee525213barEv,_ZThn8_N7ee525213barEv)() __attribute__((weak));
+extern void _ZN6dd25213fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd25213fooEv,_ZTv0_n12_N6dd25213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd25213fooEv,_ZThn12_N6dd25213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee52521[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52521[0]),
+ (VTBL_ENTRY)&_ZN7ee525213barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee525213barEv,_ZTv0_n16_N7ee525213barEv),
+ (VTBL_ENTRY)&_ZN6dd25213fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee52521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25213fooEv,_ZTv0_n12_N6dd25213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee52521[];
+extern void _ZN5cc5213barEv();
+extern void _ZN6dd25213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2521__7ee52521[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+ (VTBL_ENTRY)&_ZN6dd25213fooEv,
+};
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc5216dd2521__7ee52521[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc5216dd2521__7ee52521[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd25213fooEv,_ZTv0_n12_N6dd25213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd25213fooEv,_ZThn12_N6dd25213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd2521__7ee52521[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25213fooEv,_ZTv0_n12_N6dd25213fooEv),
+};
+static VTT_ENTRY vtt_ee52521[] = {
+ {&(_ZTV7ee52521[4]), 4,16},
+ {&(_ZTV7ee52521[10]), 10,16},
+ {&(_ZTV7ee52521[15]), 15,16},
+ {&(_tg__ZTV6dd2521__7ee52521[3]), 3,5},
+ {&(_tg__ZTV5cc5216dd2521__7ee52521[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc5216dd2521__7ee52521[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd2521__7ee52521[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee52521[];
+extern VTBL_ENTRY _ZTV7ee52521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52521[];
+static VTBL_ENTRY alt_thunk_names689[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25213fooEv,_ZTv0_n12_N6dd25213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd25213fooEv,_ZThn12_N6dd25213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd25213fooEv,_ZThn12_N6dd25213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee525213barEv,_ZTv0_n16_N7ee525213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee525213barEv,_ZThn8_N7ee525213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52521 = { "ee52521", // class name
+ bases_ee52521, 4,
+ &(vtc_ee52521[0]), // expected_vtbl_contents
+ &(vtt_ee52521[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee52521),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52521),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52521),7, //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 ee62521 : dd2521 {
+ int e;
+ virtual void foo(); // _ZN7ee625213fooEv
+ virtual void bar(); // _ZN7ee625213barEv
+ ~ee62521(); // tgen
+ ee62521(); // tgen
+};
+//SIG(1 ee62521) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62521 ::foo(){vfunc_called(this, "_ZN7ee625213fooEv");}
+void ee62521 ::bar(){vfunc_called(this, "_ZN7ee625213barEv");}
+ee62521 ::~ee62521(){ note_dtor("ee62521", this);} // tgen
+ee62521 ::ee62521(){ note_ctor("ee62521", this);} // tgen
+
+static void Test_ee62521()
+{
+ extern Class_Descriptor cd_ee62521;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee62521, buf);
+ ee62521 *dp, &lv = *(dp=new (buf) ee62521());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee62521)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62521)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(24,16), "ee62521");
+ check_base_class_offset(lv, (bb21*)(cc521*)(dd2521*), ABISELECT(24,16), "ee62521");
+ check_base_class_offset(lv, (cc521*)(dd2521*), 0, "ee62521");
+ check_base_class_offset(lv, (dd2521*), 0, "ee62521");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee62521.e");
+ test_class_info(&lv, &cd_ee62521);
+ dp->~ee62521();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62521(Test_ee62521, "ee62521", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee62521C1Ev();
+extern void _ZN7ee62521D1Ev();
+Name_Map name_map_ee62521[] = {
+ NSPAIR(_ZN7ee62521C1Ev),
+ NSPAIR(_ZN7ee62521D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc521;
+extern VTBL_ENTRY _ZTI5cc521[];
+extern VTBL_ENTRY _ZTV5cc521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc521[];
+extern Class_Descriptor cd_dd2521;
+extern VTBL_ENTRY _ZTI6dd2521[];
+extern VTBL_ENTRY _ZTV6dd2521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2521[];
+static Base_Class bases_ee62521[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc521, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2521, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee62521[];
+extern void _ZN7ee625213barEv();
+extern void _ZN7ee625213fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee625213fooEv,_ZTv0_n12_N7ee625213fooEv)();
+extern void ABISELECT(_ZThn24_N7ee625213fooEv,_ZThn16_N7ee625213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee62521[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62521[0]),
+ (VTBL_ENTRY)&_ZN7ee625213barEv,
+ (VTBL_ENTRY)&_ZN7ee625213fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee62521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee625213fooEv,_ZTv0_n12_N7ee625213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee62521[];
+extern void _ZN5cc5213barEv();
+extern void _ZN6dd25213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2521__7ee62521[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+ (VTBL_ENTRY)&_ZN6dd25213fooEv,
+};
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc5216dd2521__7ee62521[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc5216dd2521__7ee62521[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd25213fooEv,_ZTv0_n12_N6dd25213fooEv)();
+extern void ABISELECT(_ZThn24_N6dd25213fooEv,_ZThn16_N6dd25213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd2521__7ee62521[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25213fooEv,_ZTv0_n12_N6dd25213fooEv),
+};
+static VTT_ENTRY vtt_ee62521[] = {
+ {&(_ZTV7ee62521[3]), 3,9},
+ {&(_tg__ZTV6dd2521__7ee62521[3]), 3,5},
+ {&(_tg__ZTV5cc5216dd2521__7ee62521[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc5216dd2521__7ee62521[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd2521__7ee62521[3]), 3,4},
+ {&(_ZTV7ee62521[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee62521[];
+extern VTBL_ENTRY _ZTV7ee62521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee62521[];
+static VTBL_ENTRY alt_thunk_names690[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25213fooEv,_ZTv0_n12_N6dd25213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd25213fooEv,_ZThn16_N6dd25213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee625213fooEv,_ZTv0_n12_N7ee625213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee625213fooEv,_ZThn16_N7ee625213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee62521 = { "ee62521", // class name
+ bases_ee62521, 4,
+ &(vtc_ee62521[0]), // expected_vtbl_contents
+ &(vtt_ee62521[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee62521),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62521),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee62521),6, //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 ee72521 : virtual dd2521 {
+ int e;
+ virtual void foo(); // _ZN7ee725213fooEv
+ virtual void bar(); // _ZN7ee725213barEv
+ ~ee72521(); // tgen
+ ee72521(); // tgen
+};
+//SIG(1 ee72521) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72521 ::foo(){vfunc_called(this, "_ZN7ee725213fooEv");}
+void ee72521 ::bar(){vfunc_called(this, "_ZN7ee725213barEv");}
+ee72521 ::~ee72521(){ note_dtor("ee72521", this);} // tgen
+ee72521 ::ee72521(){ note_ctor("ee72521", this);} // tgen
+
+static void Test_ee72521()
+{
+ extern Class_Descriptor cd_ee72521;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee72521, buf);
+ ee72521 *dp, &lv = *(dp=new (buf) ee72521());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee72521)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72521)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee72521");
+ check_base_class_offset(lv, (bb21*)(cc521*)(dd2521*), ABISELECT(32,20), "ee72521");
+ check_base_class_offset(lv, (cc521*)(dd2521*), ABISELECT(16,8), "ee72521");
+ check_base_class_offset(lv, (dd2521*), ABISELECT(16,8), "ee72521");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72521.e");
+ test_class_info(&lv, &cd_ee72521);
+ dp->~ee72521();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72521(Test_ee72521, "ee72521", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee72521C1Ev();
+extern void _ZN7ee72521D1Ev();
+Name_Map name_map_ee72521[] = {
+ NSPAIR(_ZN7ee72521C1Ev),
+ NSPAIR(_ZN7ee72521D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc521;
+extern VTBL_ENTRY _ZTI5cc521[];
+extern VTBL_ENTRY _ZTV5cc521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc521[];
+extern Class_Descriptor cd_dd2521;
+extern VTBL_ENTRY _ZTI6dd2521[];
+extern VTBL_ENTRY _ZTV6dd2521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2521[];
+static Base_Class bases_ee72521[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc521, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2521, ABISELECT(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 _ZTI7ee72521[];
+extern void _ZN7ee725213fooEv();
+extern void _ZN7ee725213barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee725213barEv,_ZTv0_n16_N7ee725213barEv)();
+extern void ABISELECT(_ZThn16_N7ee725213barEv,_ZThn8_N7ee725213barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee725213fooEv,_ZTv0_n20_N7ee725213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee725213fooEv,_ZThn8_N7ee725213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee725213fooEv,_ZTv0_n12_N7ee725213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee725213fooEv,_ZThn20_N7ee725213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72521[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72521[0]),
+ (VTBL_ENTRY)&_ZN7ee725213fooEv,
+ (VTBL_ENTRY)&_ZN7ee725213barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee725213barEv,_ZTv0_n16_N7ee725213barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee725213fooEv,_ZTv0_n20_N7ee725213fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee72521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee725213fooEv,_ZTv0_n12_N7ee725213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee72521[];
+extern void _ZN5cc5213barEv();
+extern void _ZN6dd25213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2521__7ee72521[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+ (VTBL_ENTRY)&_ZN6dd25213fooEv,
+};
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc5216dd2521__7ee72521[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc5216dd2521__7ee72521[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd25213fooEv,_ZTv0_n12_N6dd25213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd25213fooEv,_ZThn12_N6dd25213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd2521__7ee72521[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25213fooEv,_ZTv0_n12_N6dd25213fooEv),
+};
+static VTT_ENTRY vtt_ee72521[] = {
+ {&(_ZTV7ee72521[4]), 4,17},
+ {&(_ZTV7ee72521[11]), 11,17},
+ {&(_ZTV7ee72521[16]), 16,17},
+ {&(_tg__ZTV6dd2521__7ee72521[3]), 3,5},
+ {&(_tg__ZTV5cc5216dd2521__7ee72521[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc5216dd2521__7ee72521[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd2521__7ee72521[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee72521[];
+extern VTBL_ENTRY _ZTV7ee72521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72521[];
+static VTBL_ENTRY alt_thunk_names691[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25213fooEv,_ZTv0_n12_N6dd25213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd25213fooEv,_ZThn12_N6dd25213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee725213fooEv,_ZTv0_n12_N7ee725213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee725213fooEv,_ZThn20_N7ee725213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee725213fooEv,_ZTv0_n20_N7ee725213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee725213fooEv,_ZThn8_N7ee725213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee725213barEv,_ZTv0_n16_N7ee725213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee725213barEv,_ZThn8_N7ee725213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72521 = { "ee72521", // class name
+ bases_ee72521, 4,
+ &(vtc_ee72521[0]), // expected_vtbl_contents
+ &(vtt_ee72521[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee72521),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72521),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72521),7, //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 dd3521 : virtual cc521 {
+ int d;
+ virtual void foo(); // _ZN6dd35213fooEv
+ ~dd3521(); // tgen
+ dd3521(); // tgen
+};
+//SIG(-1 dd3521) C1{ VBC2{ VBC3{ BC4{ v1 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void dd3521 ::foo(){vfunc_called(this, "_ZN6dd35213fooEv");}
+dd3521 ::~dd3521(){ note_dtor("dd3521", this);} // tgen
+dd3521 ::dd3521(){ note_ctor("dd3521", this);} // tgen
+
+static void Test_dd3521()
+{
+ extern Class_Descriptor cd_dd3521;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd3521, buf);
+ dd3521 *dp, &lv = *(dp=new (buf) dd3521());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd3521)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3521)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,16), "dd3521");
+ check_base_class_offset(lv, (bb21*)(cc521*), ABISELECT(32,16), "dd3521");
+ check_base_class_offset(lv, (cc521*), ABISELECT(16,8), "dd3521");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3521.d");
+ test_class_info(&lv, &cd_dd3521);
+ dp->~dd3521();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3521(Test_dd3521, "dd3521", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd3521C1Ev();
+extern void _ZN6dd3521D1Ev();
+Name_Map name_map_dd3521[] = {
+ NSPAIR(_ZN6dd3521C1Ev),
+ NSPAIR(_ZN6dd3521D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc521;
+extern VTBL_ENTRY _ZTI5cc521[];
+extern VTBL_ENTRY _ZTV5cc521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc521[];
+static Base_Class bases_dd3521[] = {
+ // 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_bb21, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc521, 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 _ZTI6dd3521[];
+extern void _ZN6dd35213fooEv();
+extern void _ZN5cc5213barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd35213fooEv,_ZTv0_n12_N6dd35213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35213fooEv,_ZThn16_N6dd35213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd3521[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3521[0]),
+ (VTBL_ENTRY)&_ZN6dd35213fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35213fooEv,_ZTv0_n12_N6dd35213fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd3521[];
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc521__6dd3521[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc521__6dd3521[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_dd3521[] = {
+ {&(_ZTV6dd3521[4]), 4,14},
+ {&(_ZTV6dd3521[9]), 9,14},
+ {&(_ZTV6dd3521[13]), 13,14},
+ {&(_tg__ZTV5cc521__6dd3521[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc521__6dd3521[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd3521[];
+extern VTBL_ENTRY _ZTV6dd3521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3521[];
+static VTBL_ENTRY alt_thunk_names692[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35213fooEv,_ZTv0_n12_N6dd35213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35213fooEv,_ZThn16_N6dd35213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3521 = { "dd3521", // class name
+ bases_dd3521, 3,
+ &(vtc_dd3521[0]), // expected_vtbl_contents
+ &(vtt_dd3521[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd3521),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3521),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3521),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names692,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03521 : dd3521 {
+ int e;
+ ~ee03521(); // tgen
+ ee03521(); // tgen
+};
+//SIG(1 ee03521) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee03521 ::~ee03521(){ note_dtor("ee03521", this);} // tgen
+ee03521 ::ee03521(){ note_ctor("ee03521", this);} // tgen
+
+static void Test_ee03521()
+{
+ extern Class_Descriptor cd_ee03521;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee03521, buf);
+ ee03521 *dp, &lv = *(dp=new (buf) ee03521());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee03521)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03521)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee03521");
+ check_base_class_offset(lv, (bb21*)(cc521*), ABISELECT(32,20), "ee03521");
+ check_base_class_offset(lv, (cc521*)(dd3521*), ABISELECT(16,12), "ee03521");
+ check_base_class_offset(lv, (dd3521*), 0, "ee03521");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03521.e");
+ test_class_info(&lv, &cd_ee03521);
+ dp->~ee03521();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03521(Test_ee03521, "ee03521", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee03521C1Ev();
+extern void _ZN7ee03521D1Ev();
+Name_Map name_map_ee03521[] = {
+ NSPAIR(_ZN7ee03521C1Ev),
+ NSPAIR(_ZN7ee03521D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc521;
+extern VTBL_ENTRY _ZTI5cc521[];
+extern VTBL_ENTRY _ZTV5cc521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc521[];
+extern Class_Descriptor cd_dd3521;
+extern VTBL_ENTRY _ZTI6dd3521[];
+extern VTBL_ENTRY _ZTV6dd3521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3521[];
+static Base_Class bases_ee03521[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc521, 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_dd3521, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03521[];
+extern void _ZN6dd35213fooEv();
+extern void _ZN5cc5213barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd35213fooEv,_ZTv0_n12_N6dd35213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35213fooEv,_ZThn20_N6dd35213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee03521[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03521[0]),
+ (VTBL_ENTRY)&_ZN6dd35213fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee03521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35213fooEv,_ZTv0_n12_N6dd35213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee03521[];
+extern void _ZN6dd35213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3521__7ee03521[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3521[0]),
+ (VTBL_ENTRY)&_ZN6dd35213fooEv,
+};
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc521__6dd3521__7ee03521[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd35213fooEv,_ZTv0_n12_N6dd35213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35213fooEv,_ZThn20_N6dd35213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd3521__7ee03521[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35213fooEv,_ZTv0_n12_N6dd35213fooEv),
+};
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc521__7ee03521[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc521__7ee03521[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee03521[] = {
+ {&(_ZTV7ee03521[4]), 4,14},
+ {&(_tg__ZTV6dd3521__7ee03521[4]), 4,5},
+ {&(_tg__ZTV5cc521__6dd3521__7ee03521[4]), 4,5},
+ {&(_tg__ZTV4bb21__6dd3521__7ee03521[3]), 3,4},
+ {&(_ZTV7ee03521[9]), 9,14},
+ {&(_ZTV7ee03521[13]), 13,14},
+ {&(_tg__ZTV5cc521__7ee03521[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc521__7ee03521[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee03521[];
+extern VTBL_ENTRY _ZTV7ee03521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03521[];
+static VTBL_ENTRY alt_thunk_names693[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35213fooEv,_ZTv0_n12_N6dd35213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35213fooEv,_ZThn20_N6dd35213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35213fooEv,_ZThn20_N6dd35213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03521 = { "ee03521", // class name
+ bases_ee03521, 4,
+ &(vtc_ee03521[0]), // expected_vtbl_contents
+ &(vtt_ee03521[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee03521),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03521),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03521),8, //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 ee13521 : virtual dd3521 {
+ int e;
+ ~ee13521(); // tgen
+ ee13521(); // tgen
+};
+//SIG(1 ee13521) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee13521 ::~ee13521(){ note_dtor("ee13521", this);} // tgen
+ee13521 ::ee13521(){ note_ctor("ee13521", this);} // tgen
+
+static void Test_ee13521()
+{
+ extern Class_Descriptor cd_ee13521;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee13521, buf);
+ ee13521 *dp, &lv = *(dp=new (buf) ee13521());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee13521)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13521)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(48,24), "ee13521");
+ check_base_class_offset(lv, (bb21*)(cc521*), ABISELECT(48,24), "ee13521");
+ check_base_class_offset(lv, (cc521*)(dd3521*), ABISELECT(32,16), "ee13521");
+ check_base_class_offset(lv, (dd3521*), ABISELECT(16,8), "ee13521");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13521.e");
+ test_class_info(&lv, &cd_ee13521);
+ dp->~ee13521();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13521(Test_ee13521, "ee13521", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee13521C1Ev();
+extern void _ZN7ee13521D1Ev();
+Name_Map name_map_ee13521[] = {
+ NSPAIR(_ZN7ee13521C1Ev),
+ NSPAIR(_ZN7ee13521D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc521;
+extern VTBL_ENTRY _ZTI5cc521[];
+extern VTBL_ENTRY _ZTV5cc521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc521[];
+extern Class_Descriptor cd_dd3521;
+extern VTBL_ENTRY _ZTI6dd3521[];
+extern VTBL_ENTRY _ZTV6dd3521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3521[];
+static Base_Class bases_ee13521[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb21, ABISELECT(48,24), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc521, 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_dd3521, 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 _ZTI7ee13521[];
+extern void _ZN6dd35213fooEv();
+extern void _ZN5cc5213barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd35213fooEv,_ZTv0_n12_N6dd35213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35213fooEv,_ZThn16_N6dd35213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee13521[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13521[0]),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13521[0]),
+ (VTBL_ENTRY)&_ZN6dd35213fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee13521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35213fooEv,_ZTv0_n12_N6dd35213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee13521[];
+extern void _ZN6dd35213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3521__7ee13521[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3521[0]),
+ (VTBL_ENTRY)&_ZN6dd35213fooEv,
+};
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc521__6dd3521__7ee13521[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd35213fooEv,_ZTv0_n12_N6dd35213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35213fooEv,_ZThn16_N6dd35213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd3521__7ee13521[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35213fooEv,_ZTv0_n12_N6dd35213fooEv),
+};
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc521__7ee13521[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc521__7ee13521[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee13521[] = {
+ {&(_ZTV7ee13521[5]), 5,20},
+ {&(_ZTV7ee13521[10]), 10,20},
+ {&(_ZTV7ee13521[15]), 15,20},
+ {&(_ZTV7ee13521[19]), 19,20},
+ {&(_tg__ZTV6dd3521__7ee13521[4]), 4,5},
+ {&(_tg__ZTV5cc521__6dd3521__7ee13521[4]), 4,5},
+ {&(_tg__ZTV4bb21__6dd3521__7ee13521[3]), 3,4},
+ {&(_tg__ZTV5cc521__7ee13521[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc521__7ee13521[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee13521[];
+extern VTBL_ENTRY _ZTV7ee13521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13521[];
+static VTBL_ENTRY alt_thunk_names694[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35213fooEv,_ZTv0_n12_N6dd35213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35213fooEv,_ZThn16_N6dd35213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35213fooEv,_ZThn16_N6dd35213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13521 = { "ee13521", // class name
+ bases_ee13521, 4,
+ &(vtc_ee13521[0]), // expected_vtbl_contents
+ &(vtt_ee13521[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee13521),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13521),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13521),9, //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 ee23521 : dd3521 {
+ int e;
+ virtual void foo(); // _ZN7ee235213fooEv
+ ~ee23521(); // tgen
+ ee23521(); // tgen
+};
+//SIG(1 ee23521) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee23521 ::foo(){vfunc_called(this, "_ZN7ee235213fooEv");}
+ee23521 ::~ee23521(){ note_dtor("ee23521", this);} // tgen
+ee23521 ::ee23521(){ note_ctor("ee23521", this);} // tgen
+
+static void Test_ee23521()
+{
+ extern Class_Descriptor cd_ee23521;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee23521, buf);
+ ee23521 *dp, &lv = *(dp=new (buf) ee23521());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee23521)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23521)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee23521");
+ check_base_class_offset(lv, (bb21*)(cc521*), ABISELECT(32,20), "ee23521");
+ check_base_class_offset(lv, (cc521*)(dd3521*), ABISELECT(16,12), "ee23521");
+ check_base_class_offset(lv, (dd3521*), 0, "ee23521");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23521.e");
+ test_class_info(&lv, &cd_ee23521);
+ dp->~ee23521();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23521(Test_ee23521, "ee23521", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee23521C1Ev();
+extern void _ZN7ee23521D1Ev();
+Name_Map name_map_ee23521[] = {
+ NSPAIR(_ZN7ee23521C1Ev),
+ NSPAIR(_ZN7ee23521D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc521;
+extern VTBL_ENTRY _ZTI5cc521[];
+extern VTBL_ENTRY _ZTV5cc521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc521[];
+extern Class_Descriptor cd_dd3521;
+extern VTBL_ENTRY _ZTI6dd3521[];
+extern VTBL_ENTRY _ZTV6dd3521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3521[];
+static Base_Class bases_ee23521[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc521, 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_dd3521, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23521[];
+extern void _ZN7ee235213fooEv();
+extern void _ZN5cc5213barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee235213fooEv,_ZTv0_n12_N7ee235213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee235213fooEv,_ZThn20_N7ee235213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee23521[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23521[0]),
+ (VTBL_ENTRY)&_ZN7ee235213fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee23521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee235213fooEv,_ZTv0_n12_N7ee235213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee23521[];
+extern void _ZN6dd35213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3521__7ee23521[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3521[0]),
+ (VTBL_ENTRY)&_ZN6dd35213fooEv,
+};
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc521__6dd3521__7ee23521[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd35213fooEv,_ZTv0_n12_N6dd35213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35213fooEv,_ZThn20_N6dd35213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd3521__7ee23521[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35213fooEv,_ZTv0_n12_N6dd35213fooEv),
+};
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc521__7ee23521[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc521__7ee23521[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee23521[] = {
+ {&(_ZTV7ee23521[4]), 4,14},
+ {&(_tg__ZTV6dd3521__7ee23521[4]), 4,5},
+ {&(_tg__ZTV5cc521__6dd3521__7ee23521[4]), 4,5},
+ {&(_tg__ZTV4bb21__6dd3521__7ee23521[3]), 3,4},
+ {&(_ZTV7ee23521[9]), 9,14},
+ {&(_ZTV7ee23521[13]), 13,14},
+ {&(_tg__ZTV5cc521__7ee23521[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc521__7ee23521[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee23521[];
+extern VTBL_ENTRY _ZTV7ee23521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23521[];
+static VTBL_ENTRY alt_thunk_names695[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35213fooEv,_ZTv0_n12_N6dd35213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35213fooEv,_ZThn20_N6dd35213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee235213fooEv,_ZTv0_n12_N7ee235213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee235213fooEv,_ZThn20_N7ee235213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23521 = { "ee23521", // class name
+ bases_ee23521, 4,
+ &(vtc_ee23521[0]), // expected_vtbl_contents
+ &(vtt_ee23521[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee23521),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23521),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23521),8, //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 ee33521 : virtual dd3521 {
+ int e;
+ virtual void foo(); // _ZN7ee335213fooEv
+ ~ee33521(); // tgen
+ ee33521(); // tgen
+};
+//SIG(1 ee33521) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee33521 ::foo(){vfunc_called(this, "_ZN7ee335213fooEv");}
+ee33521 ::~ee33521(){ note_dtor("ee33521", this);} // tgen
+ee33521 ::ee33521(){ note_ctor("ee33521", this);} // tgen
+
+static void Test_ee33521()
+{
+ extern Class_Descriptor cd_ee33521;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee33521, buf);
+ ee33521 *dp, &lv = *(dp=new (buf) ee33521());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee33521)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33521)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(48,24), "ee33521");
+ check_base_class_offset(lv, (bb21*)(cc521*), ABISELECT(48,24), "ee33521");
+ check_base_class_offset(lv, (cc521*)(dd3521*), ABISELECT(32,16), "ee33521");
+ check_base_class_offset(lv, (dd3521*), ABISELECT(16,8), "ee33521");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33521.e");
+ test_class_info(&lv, &cd_ee33521);
+ dp->~ee33521();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33521(Test_ee33521, "ee33521", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee33521C1Ev();
+extern void _ZN7ee33521D1Ev();
+Name_Map name_map_ee33521[] = {
+ NSPAIR(_ZN7ee33521C1Ev),
+ NSPAIR(_ZN7ee33521D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc521;
+extern VTBL_ENTRY _ZTI5cc521[];
+extern VTBL_ENTRY _ZTV5cc521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc521[];
+extern Class_Descriptor cd_dd3521;
+extern VTBL_ENTRY _ZTI6dd3521[];
+extern VTBL_ENTRY _ZTV6dd3521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3521[];
+static Base_Class bases_ee33521[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb21, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc521, 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_dd3521, ABISELECT(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 _ZTI7ee33521[];
+extern void _ZN7ee335213fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee335213fooEv,_ZTv0_n20_N7ee335213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee335213fooEv,_ZThn8_N7ee335213fooEv)() __attribute__((weak));
+extern void _ZN5cc5213barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee335213fooEv,_ZTv0_n12_N7ee335213fooEv)();
+extern void ABISELECT(_ZThn48_N7ee335213fooEv,_ZThn24_N7ee335213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee33521[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33521[0]),
+ (VTBL_ENTRY)&_ZN7ee335213fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee335213fooEv,_ZTv0_n20_N7ee335213fooEv),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee33521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee335213fooEv,_ZTv0_n12_N7ee335213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee33521[];
+extern void _ZN6dd35213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3521__7ee33521[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3521[0]),
+ (VTBL_ENTRY)&_ZN6dd35213fooEv,
+};
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc521__6dd3521__7ee33521[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd35213fooEv,_ZTv0_n12_N6dd35213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35213fooEv,_ZThn16_N6dd35213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd3521__7ee33521[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35213fooEv,_ZTv0_n12_N6dd35213fooEv),
+};
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc521__7ee33521[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc521__7ee33521[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee33521[] = {
+ {&(_ZTV7ee33521[5]), 5,21},
+ {&(_ZTV7ee33521[11]), 11,21},
+ {&(_ZTV7ee33521[16]), 16,21},
+ {&(_ZTV7ee33521[20]), 20,21},
+ {&(_tg__ZTV6dd3521__7ee33521[4]), 4,5},
+ {&(_tg__ZTV5cc521__6dd3521__7ee33521[4]), 4,5},
+ {&(_tg__ZTV4bb21__6dd3521__7ee33521[3]), 3,4},
+ {&(_tg__ZTV5cc521__7ee33521[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc521__7ee33521[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee33521[];
+extern VTBL_ENTRY _ZTV7ee33521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33521[];
+static VTBL_ENTRY alt_thunk_names696[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35213fooEv,_ZTv0_n12_N6dd35213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35213fooEv,_ZThn16_N6dd35213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee335213fooEv,_ZTv0_n12_N7ee335213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee335213fooEv,_ZThn24_N7ee335213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee335213fooEv,_ZTv0_n20_N7ee335213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee335213fooEv,_ZThn8_N7ee335213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33521 = { "ee33521", // class name
+ bases_ee33521, 4,
+ &(vtc_ee33521[0]), // expected_vtbl_contents
+ &(vtt_ee33521[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee33521),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33521),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33521),9, //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 ee43521 : dd3521 {
+ int e;
+ virtual void bar(); // _ZN7ee435213barEv
+ ~ee43521(); // tgen
+ ee43521(); // tgen
+};
+//SIG(1 ee43521) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 Fi} v2 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee43521 ::bar(){vfunc_called(this, "_ZN7ee435213barEv");}
+ee43521 ::~ee43521(){ note_dtor("ee43521", this);} // tgen
+ee43521 ::ee43521(){ note_ctor("ee43521", this);} // tgen
+
+static void Test_ee43521()
+{
+ extern Class_Descriptor cd_ee43521;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee43521, buf);
+ ee43521 *dp, &lv = *(dp=new (buf) ee43521());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee43521)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43521)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee43521");
+ check_base_class_offset(lv, (bb21*)(cc521*), ABISELECT(32,20), "ee43521");
+ check_base_class_offset(lv, (cc521*)(dd3521*), ABISELECT(16,12), "ee43521");
+ check_base_class_offset(lv, (dd3521*), 0, "ee43521");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43521.e");
+ test_class_info(&lv, &cd_ee43521);
+ dp->~ee43521();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43521(Test_ee43521, "ee43521", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee43521C1Ev();
+extern void _ZN7ee43521D1Ev();
+Name_Map name_map_ee43521[] = {
+ NSPAIR(_ZN7ee43521C1Ev),
+ NSPAIR(_ZN7ee43521D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc521;
+extern VTBL_ENTRY _ZTI5cc521[];
+extern VTBL_ENTRY _ZTV5cc521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc521[];
+extern Class_Descriptor cd_dd3521;
+extern VTBL_ENTRY _ZTI6dd3521[];
+extern VTBL_ENTRY _ZTV6dd3521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3521[];
+static Base_Class bases_ee43521[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc521, 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_dd3521, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43521[];
+extern void _ZN6dd35213fooEv();
+extern void _ZN7ee435213barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee435213barEv,_ZTv0_n16_N7ee435213barEv)();
+extern void ABISELECT(_ZThn16_N7ee435213barEv,_ZThn12_N7ee435213barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd35213fooEv,_ZTv0_n12_N6dd35213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35213fooEv,_ZThn20_N6dd35213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43521[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43521[0]),
+ (VTBL_ENTRY)&_ZN6dd35213fooEv,
+ (VTBL_ENTRY)&_ZN7ee435213barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee435213barEv,_ZTv0_n16_N7ee435213barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee43521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35213fooEv,_ZTv0_n12_N6dd35213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee43521[];
+extern void _ZN6dd35213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3521__7ee43521[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3521[0]),
+ (VTBL_ENTRY)&_ZN6dd35213fooEv,
+};
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc521__6dd3521__7ee43521[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd35213fooEv,_ZTv0_n12_N6dd35213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35213fooEv,_ZThn20_N6dd35213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd3521__7ee43521[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35213fooEv,_ZTv0_n12_N6dd35213fooEv),
+};
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc521__7ee43521[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc521__7ee43521[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee43521[] = {
+ {&(_ZTV7ee43521[4]), 4,15},
+ {&(_tg__ZTV6dd3521__7ee43521[4]), 4,5},
+ {&(_tg__ZTV5cc521__6dd3521__7ee43521[4]), 4,5},
+ {&(_tg__ZTV4bb21__6dd3521__7ee43521[3]), 3,4},
+ {&(_ZTV7ee43521[10]), 10,15},
+ {&(_ZTV7ee43521[14]), 14,15},
+ {&(_tg__ZTV5cc521__7ee43521[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc521__7ee43521[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee43521[];
+extern VTBL_ENTRY _ZTV7ee43521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43521[];
+static VTBL_ENTRY alt_thunk_names697[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35213fooEv,_ZTv0_n12_N6dd35213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35213fooEv,_ZThn20_N6dd35213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35213fooEv,_ZThn20_N6dd35213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee435213barEv,_ZTv0_n16_N7ee435213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee435213barEv,_ZThn12_N7ee435213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43521 = { "ee43521", // class name
+ bases_ee43521, 4,
+ &(vtc_ee43521[0]), // expected_vtbl_contents
+ &(vtt_ee43521[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee43521),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43521),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43521),8, //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 ee53521 : virtual dd3521 {
+ int e;
+ virtual void bar(); // _ZN7ee535213barEv
+ ~ee53521(); // tgen
+ ee53521(); // tgen
+};
+//SIG(1 ee53521) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 Fi} v2 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee53521 ::bar(){vfunc_called(this, "_ZN7ee535213barEv");}
+ee53521 ::~ee53521(){ note_dtor("ee53521", this);} // tgen
+ee53521 ::ee53521(){ note_ctor("ee53521", this);} // tgen
+
+static void Test_ee53521()
+{
+ extern Class_Descriptor cd_ee53521;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee53521, buf);
+ ee53521 *dp, &lv = *(dp=new (buf) ee53521());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee53521)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53521)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(48,24), "ee53521");
+ check_base_class_offset(lv, (bb21*)(cc521*), ABISELECT(48,24), "ee53521");
+ check_base_class_offset(lv, (cc521*)(dd3521*), ABISELECT(32,16), "ee53521");
+ check_base_class_offset(lv, (dd3521*), ABISELECT(16,8), "ee53521");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53521.e");
+ test_class_info(&lv, &cd_ee53521);
+ dp->~ee53521();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53521(Test_ee53521, "ee53521", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee53521C1Ev();
+extern void _ZN7ee53521D1Ev();
+Name_Map name_map_ee53521[] = {
+ NSPAIR(_ZN7ee53521C1Ev),
+ NSPAIR(_ZN7ee53521D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc521;
+extern VTBL_ENTRY _ZTI5cc521[];
+extern VTBL_ENTRY _ZTV5cc521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc521[];
+extern Class_Descriptor cd_dd3521;
+extern VTBL_ENTRY _ZTI6dd3521[];
+extern VTBL_ENTRY _ZTV6dd3521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3521[];
+static Base_Class bases_ee53521[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb21, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc521, 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_dd3521, ABISELECT(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 _ZTI7ee53521[];
+extern void _ZN7ee535213barEv();
+extern void _ZN6dd35213fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee535213barEv,_ZTv0_n16_N7ee535213barEv)();
+extern void ABISELECT(_ZThn32_N7ee535213barEv,_ZThn16_N7ee535213barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd35213fooEv,_ZTv0_n12_N6dd35213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35213fooEv,_ZThn16_N6dd35213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53521[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53521[0]),
+ (VTBL_ENTRY)&_ZN7ee535213barEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53521[0]),
+ (VTBL_ENTRY)&_ZN6dd35213fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee535213barEv,_ZTv0_n16_N7ee535213barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee53521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35213fooEv,_ZTv0_n12_N6dd35213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee53521[];
+extern void _ZN6dd35213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3521__7ee53521[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3521[0]),
+ (VTBL_ENTRY)&_ZN6dd35213fooEv,
+};
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc521__6dd3521__7ee53521[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd35213fooEv,_ZTv0_n12_N6dd35213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35213fooEv,_ZThn16_N6dd35213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd3521__7ee53521[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35213fooEv,_ZTv0_n12_N6dd35213fooEv),
+};
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc521__7ee53521[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc521__7ee53521[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee53521[] = {
+ {&(_ZTV7ee53521[5]), 5,21},
+ {&(_ZTV7ee53521[11]), 11,21},
+ {&(_ZTV7ee53521[16]), 16,21},
+ {&(_ZTV7ee53521[20]), 20,21},
+ {&(_tg__ZTV6dd3521__7ee53521[4]), 4,5},
+ {&(_tg__ZTV5cc521__6dd3521__7ee53521[4]), 4,5},
+ {&(_tg__ZTV4bb21__6dd3521__7ee53521[3]), 3,4},
+ {&(_tg__ZTV5cc521__7ee53521[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc521__7ee53521[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee53521[];
+extern VTBL_ENTRY _ZTV7ee53521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53521[];
+static VTBL_ENTRY alt_thunk_names698[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35213fooEv,_ZTv0_n12_N6dd35213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35213fooEv,_ZThn16_N6dd35213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35213fooEv,_ZThn16_N6dd35213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee535213barEv,_ZTv0_n16_N7ee535213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee535213barEv,_ZThn16_N7ee535213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53521 = { "ee53521", // class name
+ bases_ee53521, 4,
+ &(vtc_ee53521[0]), // expected_vtbl_contents
+ &(vtt_ee53521[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee53521),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53521),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53521),9, //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 ee63521 : dd3521 {
+ int e;
+ virtual void foo(); // _ZN7ee635213fooEv
+ virtual void bar(); // _ZN7ee635213barEv
+ ~ee63521(); // tgen
+ ee63521(); // tgen
+};
+//SIG(1 ee63521) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63521 ::foo(){vfunc_called(this, "_ZN7ee635213fooEv");}
+void ee63521 ::bar(){vfunc_called(this, "_ZN7ee635213barEv");}
+ee63521 ::~ee63521(){ note_dtor("ee63521", this);} // tgen
+ee63521 ::ee63521(){ note_ctor("ee63521", this);} // tgen
+
+static void Test_ee63521()
+{
+ extern Class_Descriptor cd_ee63521;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee63521, buf);
+ ee63521 *dp, &lv = *(dp=new (buf) ee63521());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee63521)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63521)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee63521");
+ check_base_class_offset(lv, (bb21*)(cc521*), ABISELECT(32,20), "ee63521");
+ check_base_class_offset(lv, (cc521*)(dd3521*), ABISELECT(16,12), "ee63521");
+ check_base_class_offset(lv, (dd3521*), 0, "ee63521");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63521.e");
+ test_class_info(&lv, &cd_ee63521);
+ dp->~ee63521();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63521(Test_ee63521, "ee63521", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee63521C1Ev();
+extern void _ZN7ee63521D1Ev();
+Name_Map name_map_ee63521[] = {
+ NSPAIR(_ZN7ee63521C1Ev),
+ NSPAIR(_ZN7ee63521D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc521;
+extern VTBL_ENTRY _ZTI5cc521[];
+extern VTBL_ENTRY _ZTV5cc521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc521[];
+extern Class_Descriptor cd_dd3521;
+extern VTBL_ENTRY _ZTI6dd3521[];
+extern VTBL_ENTRY _ZTV6dd3521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3521[];
+static Base_Class bases_ee63521[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc521, 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_dd3521, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63521[];
+extern void _ZN7ee635213fooEv();
+extern void _ZN7ee635213barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee635213barEv,_ZTv0_n16_N7ee635213barEv)();
+extern void ABISELECT(_ZThn16_N7ee635213barEv,_ZThn12_N7ee635213barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee635213fooEv,_ZTv0_n12_N7ee635213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee635213fooEv,_ZThn20_N7ee635213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63521[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63521[0]),
+ (VTBL_ENTRY)&_ZN7ee635213fooEv,
+ (VTBL_ENTRY)&_ZN7ee635213barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee635213barEv,_ZTv0_n16_N7ee635213barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee63521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee635213fooEv,_ZTv0_n12_N7ee635213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee63521[];
+extern void _ZN6dd35213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3521__7ee63521[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3521[0]),
+ (VTBL_ENTRY)&_ZN6dd35213fooEv,
+};
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc521__6dd3521__7ee63521[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd35213fooEv,_ZTv0_n12_N6dd35213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35213fooEv,_ZThn20_N6dd35213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd3521__7ee63521[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35213fooEv,_ZTv0_n12_N6dd35213fooEv),
+};
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc521__7ee63521[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc521__7ee63521[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee63521[] = {
+ {&(_ZTV7ee63521[4]), 4,15},
+ {&(_tg__ZTV6dd3521__7ee63521[4]), 4,5},
+ {&(_tg__ZTV5cc521__6dd3521__7ee63521[4]), 4,5},
+ {&(_tg__ZTV4bb21__6dd3521__7ee63521[3]), 3,4},
+ {&(_ZTV7ee63521[10]), 10,15},
+ {&(_ZTV7ee63521[14]), 14,15},
+ {&(_tg__ZTV5cc521__7ee63521[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc521__7ee63521[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee63521[];
+extern VTBL_ENTRY _ZTV7ee63521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63521[];
+static VTBL_ENTRY alt_thunk_names699[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35213fooEv,_ZTv0_n12_N6dd35213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35213fooEv,_ZThn20_N6dd35213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee635213fooEv,_ZTv0_n12_N7ee635213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee635213fooEv,_ZThn20_N7ee635213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee635213barEv,_ZTv0_n16_N7ee635213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee635213barEv,_ZThn12_N7ee635213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63521 = { "ee63521", // class name
+ bases_ee63521, 4,
+ &(vtc_ee63521[0]), // expected_vtbl_contents
+ &(vtt_ee63521[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee63521),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63521),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63521),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names699,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee73521 : virtual dd3521 {
+ int e;
+ virtual void foo(); // _ZN7ee735213fooEv
+ virtual void bar(); // _ZN7ee735213barEv
+ ~ee73521(); // tgen
+ ee73521(); // tgen
+};
+//SIG(1 ee73521) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73521 ::foo(){vfunc_called(this, "_ZN7ee735213fooEv");}
+void ee73521 ::bar(){vfunc_called(this, "_ZN7ee735213barEv");}
+ee73521 ::~ee73521(){ note_dtor("ee73521", this);} // tgen
+ee73521 ::ee73521(){ note_ctor("ee73521", this);} // tgen
+
+static void Test_ee73521()
+{
+ extern Class_Descriptor cd_ee73521;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee73521, buf);
+ ee73521 *dp, &lv = *(dp=new (buf) ee73521());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee73521)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73521)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(48,24), "ee73521");
+ check_base_class_offset(lv, (bb21*)(cc521*), ABISELECT(48,24), "ee73521");
+ check_base_class_offset(lv, (cc521*)(dd3521*), ABISELECT(32,16), "ee73521");
+ check_base_class_offset(lv, (dd3521*), ABISELECT(16,8), "ee73521");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73521.e");
+ test_class_info(&lv, &cd_ee73521);
+ dp->~ee73521();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73521(Test_ee73521, "ee73521", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee73521C1Ev();
+extern void _ZN7ee73521D1Ev();
+Name_Map name_map_ee73521[] = {
+ NSPAIR(_ZN7ee73521C1Ev),
+ NSPAIR(_ZN7ee73521D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc521;
+extern VTBL_ENTRY _ZTI5cc521[];
+extern VTBL_ENTRY _ZTV5cc521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc521[];
+extern Class_Descriptor cd_dd3521;
+extern VTBL_ENTRY _ZTI6dd3521[];
+extern VTBL_ENTRY _ZTV6dd3521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3521[];
+static Base_Class bases_ee73521[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb21, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc521, 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_dd3521, 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 _ZTI7ee73521[];
+extern void _ZN7ee735213fooEv();
+extern void _ZN7ee735213barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee735213fooEv,_ZTv0_n20_N7ee735213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee735213fooEv,_ZThn8_N7ee735213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee735213barEv,_ZTv0_n16_N7ee735213barEv)();
+extern void ABISELECT(_ZThn32_N7ee735213barEv,_ZThn16_N7ee735213barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee735213fooEv,_ZTv0_n12_N7ee735213fooEv)();
+extern void ABISELECT(_ZThn48_N7ee735213fooEv,_ZThn24_N7ee735213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73521[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73521[0]),
+ (VTBL_ENTRY)&_ZN7ee735213fooEv,
+ (VTBL_ENTRY)&_ZN7ee735213barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee735213fooEv,_ZTv0_n20_N7ee735213fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee735213barEv,_ZTv0_n16_N7ee735213barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee73521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee735213fooEv,_ZTv0_n12_N7ee735213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee73521[];
+extern void _ZN6dd35213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3521__7ee73521[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3521[0]),
+ (VTBL_ENTRY)&_ZN6dd35213fooEv,
+};
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc521__6dd3521__7ee73521[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd35213fooEv,_ZTv0_n12_N6dd35213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35213fooEv,_ZThn16_N6dd35213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd3521__7ee73521[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35213fooEv,_ZTv0_n12_N6dd35213fooEv),
+};
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc521__7ee73521[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc521__7ee73521[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee73521[] = {
+ {&(_ZTV7ee73521[5]), 5,22},
+ {&(_ZTV7ee73521[12]), 12,22},
+ {&(_ZTV7ee73521[17]), 17,22},
+ {&(_ZTV7ee73521[21]), 21,22},
+ {&(_tg__ZTV6dd3521__7ee73521[4]), 4,5},
+ {&(_tg__ZTV5cc521__6dd3521__7ee73521[4]), 4,5},
+ {&(_tg__ZTV4bb21__6dd3521__7ee73521[3]), 3,4},
+ {&(_tg__ZTV5cc521__7ee73521[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc521__7ee73521[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee73521[];
+extern VTBL_ENTRY _ZTV7ee73521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73521[];
+static VTBL_ENTRY alt_thunk_names700[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35213fooEv,_ZTv0_n12_N6dd35213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35213fooEv,_ZThn16_N6dd35213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee735213fooEv,_ZTv0_n12_N7ee735213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee735213fooEv,_ZThn24_N7ee735213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee735213barEv,_ZTv0_n16_N7ee735213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee735213barEv,_ZThn16_N7ee735213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee735213fooEv,_ZTv0_n20_N7ee735213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee735213fooEv,_ZThn8_N7ee735213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73521 = { "ee73521", // class name
+ bases_ee73521, 4,
+ &(vtc_ee73521[0]), // expected_vtbl_contents
+ &(vtt_ee73521[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee73521),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73521),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73521),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names700,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd4521 : cc521 {
+ int d;
+ virtual void bar(); // _ZN6dd45213barEv
+ ~dd4521(); // tgen
+ dd4521(); // tgen
+};
+//SIG(-1 dd4521) C1{ BC2{ VBC3{ BC4{ v2 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void dd4521 ::bar(){vfunc_called(this, "_ZN6dd45213barEv");}
+dd4521 ::~dd4521(){ note_dtor("dd4521", this);} // tgen
+dd4521 ::dd4521(){ note_ctor("dd4521", this);} // tgen
+
+static void Test_dd4521()
+{
+ extern Class_Descriptor cd_dd4521;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd4521, buf);
+ dd4521 *dp, &lv = *(dp=new (buf) dd4521());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd4521)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4521)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(16,12), "dd4521");
+ check_base_class_offset(lv, (bb21*)(cc521*), ABISELECT(16,12), "dd4521");
+ check_base_class_offset(lv, (cc521*), 0, "dd4521");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd4521.d");
+ test_class_info(&lv, &cd_dd4521);
+ dp->~dd4521();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4521(Test_dd4521, "dd4521", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd4521C1Ev();
+extern void _ZN6dd4521D1Ev();
+Name_Map name_map_dd4521[] = {
+ NSPAIR(_ZN6dd4521C1Ev),
+ NSPAIR(_ZN6dd4521D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc521;
+extern VTBL_ENTRY _ZTI5cc521[];
+extern VTBL_ENTRY _ZTV5cc521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc521[];
+static Base_Class bases_dd4521[] = {
+ // 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_bb21, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc521, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd4521[];
+extern void _ZN6dd45213barEv();
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY vtc_dd4521[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4521[0]),
+ (VTBL_ENTRY)&_ZN6dd45213barEv,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd4521[];
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc521__6dd4521[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc521__6dd4521[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_dd4521[] = {
+ {&(_ZTV6dd4521[3]), 3,8},
+ {&(_tg__ZTV5cc521__6dd4521[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc521__6dd4521[3]), 3,4},
+ {&(_ZTV6dd4521[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI6dd4521[];
+extern VTBL_ENTRY _ZTV6dd4521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4521[];
+Class_Descriptor cd_dd4521 = { "dd4521", // class name
+ bases_dd4521, 3,
+ &(vtc_dd4521[0]), // expected_vtbl_contents
+ &(vtt_dd4521[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd4521),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4521),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd4521),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 ee04521 : dd4521 {
+ int e;
+ ~ee04521(); // tgen
+ ee04521(); // tgen
+};
+//SIG(1 ee04521) C1{ BC2{ BC3{ VBC4{ BC5{ v2 Fi} v2 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee04521 ::~ee04521(){ note_dtor("ee04521", this);} // tgen
+ee04521 ::ee04521(){ note_ctor("ee04521", this);} // tgen
+
+static void Test_ee04521()
+{
+ extern Class_Descriptor cd_ee04521;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee04521, buf);
+ ee04521 *dp, &lv = *(dp=new (buf) ee04521());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee04521)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04521)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(24,16), "ee04521");
+ check_base_class_offset(lv, (bb21*)(cc521*)(dd4521*), ABISELECT(24,16), "ee04521");
+ check_base_class_offset(lv, (cc521*)(dd4521*), 0, "ee04521");
+ check_base_class_offset(lv, (dd4521*), 0, "ee04521");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee04521.e");
+ test_class_info(&lv, &cd_ee04521);
+ dp->~ee04521();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04521(Test_ee04521, "ee04521", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee04521C1Ev();
+extern void _ZN7ee04521D1Ev();
+Name_Map name_map_ee04521[] = {
+ NSPAIR(_ZN7ee04521C1Ev),
+ NSPAIR(_ZN7ee04521D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc521;
+extern VTBL_ENTRY _ZTI5cc521[];
+extern VTBL_ENTRY _ZTV5cc521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc521[];
+extern Class_Descriptor cd_dd4521;
+extern VTBL_ENTRY _ZTI6dd4521[];
+extern VTBL_ENTRY _ZTV6dd4521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4521[];
+static Base_Class bases_ee04521[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc521, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4521, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee04521[];
+extern void _ZN6dd45213barEv();
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY vtc_ee04521[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04521[0]),
+ (VTBL_ENTRY)&_ZN6dd45213barEv,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee04521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee04521[];
+extern void _ZN6dd45213barEv();
+static VTBL_ENTRY _tg__ZTV6dd4521__7ee04521[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4521[0]),
+ (VTBL_ENTRY)&_ZN6dd45213barEv,
+};
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc5216dd4521__7ee04521[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc5216dd4521__7ee04521[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__6dd4521__7ee04521[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee04521[] = {
+ {&(_ZTV7ee04521[3]), 3,8},
+ {&(_tg__ZTV6dd4521__7ee04521[3]), 3,4},
+ {&(_tg__ZTV5cc5216dd4521__7ee04521[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc5216dd4521__7ee04521[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd4521__7ee04521[3]), 3,4},
+ {&(_ZTV7ee04521[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee04521[];
+extern VTBL_ENTRY _ZTV7ee04521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee04521[];
+Class_Descriptor cd_ee04521 = { "ee04521", // class name
+ bases_ee04521, 4,
+ &(vtc_ee04521[0]), // expected_vtbl_contents
+ &(vtt_ee04521[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee04521),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04521),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee04521),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 ee14521 : virtual dd4521 {
+ int e;
+ ~ee14521(); // tgen
+ ee14521(); // tgen
+};
+//SIG(1 ee14521) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 Fi} v2 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee14521 ::~ee14521(){ note_dtor("ee14521", this);} // tgen
+ee14521 ::ee14521(){ note_ctor("ee14521", this);} // tgen
+
+static void Test_ee14521()
+{
+ extern Class_Descriptor cd_ee14521;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee14521, buf);
+ ee14521 *dp, &lv = *(dp=new (buf) ee14521());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee14521)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14521)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee14521");
+ check_base_class_offset(lv, (bb21*)(cc521*)(dd4521*), ABISELECT(32,20), "ee14521");
+ check_base_class_offset(lv, (cc521*)(dd4521*), ABISELECT(16,8), "ee14521");
+ check_base_class_offset(lv, (dd4521*), ABISELECT(16,8), "ee14521");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14521.e");
+ test_class_info(&lv, &cd_ee14521);
+ dp->~ee14521();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14521(Test_ee14521, "ee14521", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee14521C1Ev();
+extern void _ZN7ee14521D1Ev();
+Name_Map name_map_ee14521[] = {
+ NSPAIR(_ZN7ee14521C1Ev),
+ NSPAIR(_ZN7ee14521D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc521;
+extern VTBL_ENTRY _ZTI5cc521[];
+extern VTBL_ENTRY _ZTV5cc521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc521[];
+extern Class_Descriptor cd_dd4521;
+extern VTBL_ENTRY _ZTI6dd4521[];
+extern VTBL_ENTRY _ZTV6dd4521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4521[];
+static Base_Class bases_ee14521[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc521, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4521, 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 _ZTI7ee14521[];
+extern void _ZN6dd45213barEv();
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY vtc_ee14521[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14521[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14521[0]),
+ (VTBL_ENTRY)&_ZN6dd45213barEv,
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee14521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee14521[];
+extern void _ZN6dd45213barEv();
+static VTBL_ENTRY _tg__ZTV6dd4521__7ee14521[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4521[0]),
+ (VTBL_ENTRY)&_ZN6dd45213barEv,
+};
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc5216dd4521__7ee14521[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc5216dd4521__7ee14521[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__6dd4521__7ee14521[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee14521[] = {
+ {&(_ZTV7ee14521[4]), 4,13},
+ {&(_ZTV7ee14521[8]), 8,13},
+ {&(_ZTV7ee14521[12]), 12,13},
+ {&(_tg__ZTV6dd4521__7ee14521[3]), 3,4},
+ {&(_tg__ZTV5cc5216dd4521__7ee14521[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc5216dd4521__7ee14521[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd4521__7ee14521[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee14521[];
+extern VTBL_ENTRY _ZTV7ee14521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14521[];
+Class_Descriptor cd_ee14521 = { "ee14521", // class name
+ bases_ee14521, 4,
+ &(vtc_ee14521[0]), // expected_vtbl_contents
+ &(vtt_ee14521[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee14521),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14521),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14521),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 ee24521 : dd4521 {
+ int e;
+ virtual void foo(); // _ZN7ee245213fooEv
+ ~ee24521(); // tgen
+ ee24521(); // tgen
+};
+//SIG(1 ee24521) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee24521 ::foo(){vfunc_called(this, "_ZN7ee245213fooEv");}
+ee24521 ::~ee24521(){ note_dtor("ee24521", this);} // tgen
+ee24521 ::ee24521(){ note_ctor("ee24521", this);} // tgen
+
+static void Test_ee24521()
+{
+ extern Class_Descriptor cd_ee24521;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee24521, buf);
+ ee24521 *dp, &lv = *(dp=new (buf) ee24521());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee24521)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24521)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(24,16), "ee24521");
+ check_base_class_offset(lv, (bb21*)(cc521*)(dd4521*), ABISELECT(24,16), "ee24521");
+ check_base_class_offset(lv, (cc521*)(dd4521*), 0, "ee24521");
+ check_base_class_offset(lv, (dd4521*), 0, "ee24521");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee24521.e");
+ test_class_info(&lv, &cd_ee24521);
+ dp->~ee24521();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24521(Test_ee24521, "ee24521", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee24521C1Ev();
+extern void _ZN7ee24521D1Ev();
+Name_Map name_map_ee24521[] = {
+ NSPAIR(_ZN7ee24521C1Ev),
+ NSPAIR(_ZN7ee24521D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc521;
+extern VTBL_ENTRY _ZTI5cc521[];
+extern VTBL_ENTRY _ZTV5cc521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc521[];
+extern Class_Descriptor cd_dd4521;
+extern VTBL_ENTRY _ZTI6dd4521[];
+extern VTBL_ENTRY _ZTV6dd4521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4521[];
+static Base_Class bases_ee24521[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc521, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4521, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee24521[];
+extern void _ZN6dd45213barEv();
+extern void _ZN7ee245213fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee245213fooEv,_ZTv0_n12_N7ee245213fooEv)();
+extern void ABISELECT(_ZThn24_N7ee245213fooEv,_ZThn16_N7ee245213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee24521[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24521[0]),
+ (VTBL_ENTRY)&_ZN6dd45213barEv,
+ (VTBL_ENTRY)&_ZN7ee245213fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee24521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee245213fooEv,_ZTv0_n12_N7ee245213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee24521[];
+extern void _ZN6dd45213barEv();
+static VTBL_ENTRY _tg__ZTV6dd4521__7ee24521[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4521[0]),
+ (VTBL_ENTRY)&_ZN6dd45213barEv,
+};
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc5216dd4521__7ee24521[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc5216dd4521__7ee24521[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__6dd4521__7ee24521[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee24521[] = {
+ {&(_ZTV7ee24521[3]), 3,9},
+ {&(_tg__ZTV6dd4521__7ee24521[3]), 3,4},
+ {&(_tg__ZTV5cc5216dd4521__7ee24521[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc5216dd4521__7ee24521[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd4521__7ee24521[3]), 3,4},
+ {&(_ZTV7ee24521[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee24521[];
+extern VTBL_ENTRY _ZTV7ee24521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee24521[];
+static VTBL_ENTRY alt_thunk_names701[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee245213fooEv,_ZTv0_n12_N7ee245213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee245213fooEv,_ZThn16_N7ee245213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee24521 = { "ee24521", // class name
+ bases_ee24521, 4,
+ &(vtc_ee24521[0]), // expected_vtbl_contents
+ &(vtt_ee24521[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee24521),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24521),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee24521),6, //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 ee34521 : virtual dd4521 {
+ int e;
+ virtual void foo(); // _ZN7ee345213fooEv
+ ~ee34521(); // tgen
+ ee34521(); // tgen
+};
+//SIG(1 ee34521) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee34521 ::foo(){vfunc_called(this, "_ZN7ee345213fooEv");}
+ee34521 ::~ee34521(){ note_dtor("ee34521", this);} // tgen
+ee34521 ::ee34521(){ note_ctor("ee34521", this);} // tgen
+
+static void Test_ee34521()
+{
+ extern Class_Descriptor cd_ee34521;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee34521, buf);
+ ee34521 *dp, &lv = *(dp=new (buf) ee34521());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee34521)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34521)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee34521");
+ check_base_class_offset(lv, (bb21*)(cc521*)(dd4521*), ABISELECT(32,20), "ee34521");
+ check_base_class_offset(lv, (cc521*)(dd4521*), ABISELECT(16,8), "ee34521");
+ check_base_class_offset(lv, (dd4521*), ABISELECT(16,8), "ee34521");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34521.e");
+ test_class_info(&lv, &cd_ee34521);
+ dp->~ee34521();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34521(Test_ee34521, "ee34521", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee34521C1Ev();
+extern void _ZN7ee34521D1Ev();
+Name_Map name_map_ee34521[] = {
+ NSPAIR(_ZN7ee34521C1Ev),
+ NSPAIR(_ZN7ee34521D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc521;
+extern VTBL_ENTRY _ZTI5cc521[];
+extern VTBL_ENTRY _ZTV5cc521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc521[];
+extern Class_Descriptor cd_dd4521;
+extern VTBL_ENTRY _ZTI6dd4521[];
+extern VTBL_ENTRY _ZTV6dd4521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4521[];
+static Base_Class bases_ee34521[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc521, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4521, 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 _ZTI7ee34521[];
+extern void _ZN7ee345213fooEv();
+extern void _ZN6dd45213barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee345213fooEv,_ZTv0_n12_N7ee345213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee345213fooEv,_ZThn20_N7ee345213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee34521[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34521[0]),
+ (VTBL_ENTRY)&_ZN7ee345213fooEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34521[0]),
+ (VTBL_ENTRY)&_ZN6dd45213barEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee34521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee345213fooEv,_ZTv0_n12_N7ee345213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee34521[];
+extern void _ZN6dd45213barEv();
+static VTBL_ENTRY _tg__ZTV6dd4521__7ee34521[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4521[0]),
+ (VTBL_ENTRY)&_ZN6dd45213barEv,
+};
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc5216dd4521__7ee34521[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc5216dd4521__7ee34521[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__6dd4521__7ee34521[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee34521[] = {
+ {&(_ZTV7ee34521[4]), 4,14},
+ {&(_ZTV7ee34521[9]), 9,14},
+ {&(_ZTV7ee34521[13]), 13,14},
+ {&(_tg__ZTV6dd4521__7ee34521[3]), 3,4},
+ {&(_tg__ZTV5cc5216dd4521__7ee34521[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc5216dd4521__7ee34521[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd4521__7ee34521[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee34521[];
+extern VTBL_ENTRY _ZTV7ee34521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34521[];
+static VTBL_ENTRY alt_thunk_names702[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee345213fooEv,_ZTv0_n12_N7ee345213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee345213fooEv,_ZThn20_N7ee345213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34521 = { "ee34521", // class name
+ bases_ee34521, 4,
+ &(vtc_ee34521[0]), // expected_vtbl_contents
+ &(vtt_ee34521[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee34521),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34521),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34521),7, //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 ee44521 : dd4521 {
+ int e;
+ virtual void bar(); // _ZN7ee445213barEv
+ ~ee44521(); // tgen
+ ee44521(); // tgen
+};
+//SIG(1 ee44521) C1{ BC2{ BC3{ VBC4{ BC5{ v2 Fi} v2 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee44521 ::bar(){vfunc_called(this, "_ZN7ee445213barEv");}
+ee44521 ::~ee44521(){ note_dtor("ee44521", this);} // tgen
+ee44521 ::ee44521(){ note_ctor("ee44521", this);} // tgen
+
+static void Test_ee44521()
+{
+ extern Class_Descriptor cd_ee44521;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee44521, buf);
+ ee44521 *dp, &lv = *(dp=new (buf) ee44521());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee44521)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44521)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(24,16), "ee44521");
+ check_base_class_offset(lv, (bb21*)(cc521*)(dd4521*), ABISELECT(24,16), "ee44521");
+ check_base_class_offset(lv, (cc521*)(dd4521*), 0, "ee44521");
+ check_base_class_offset(lv, (dd4521*), 0, "ee44521");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee44521.e");
+ test_class_info(&lv, &cd_ee44521);
+ dp->~ee44521();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44521(Test_ee44521, "ee44521", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee44521C1Ev();
+extern void _ZN7ee44521D1Ev();
+Name_Map name_map_ee44521[] = {
+ NSPAIR(_ZN7ee44521C1Ev),
+ NSPAIR(_ZN7ee44521D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc521;
+extern VTBL_ENTRY _ZTI5cc521[];
+extern VTBL_ENTRY _ZTV5cc521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc521[];
+extern Class_Descriptor cd_dd4521;
+extern VTBL_ENTRY _ZTI6dd4521[];
+extern VTBL_ENTRY _ZTV6dd4521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4521[];
+static Base_Class bases_ee44521[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc521, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4521, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee44521[];
+extern void _ZN7ee445213barEv();
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY vtc_ee44521[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44521[0]),
+ (VTBL_ENTRY)&_ZN7ee445213barEv,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee44521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee44521[];
+extern void _ZN6dd45213barEv();
+static VTBL_ENTRY _tg__ZTV6dd4521__7ee44521[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4521[0]),
+ (VTBL_ENTRY)&_ZN6dd45213barEv,
+};
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc5216dd4521__7ee44521[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc5216dd4521__7ee44521[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__6dd4521__7ee44521[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee44521[] = {
+ {&(_ZTV7ee44521[3]), 3,8},
+ {&(_tg__ZTV6dd4521__7ee44521[3]), 3,4},
+ {&(_tg__ZTV5cc5216dd4521__7ee44521[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc5216dd4521__7ee44521[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd4521__7ee44521[3]), 3,4},
+ {&(_ZTV7ee44521[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee44521[];
+extern VTBL_ENTRY _ZTV7ee44521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee44521[];
+Class_Descriptor cd_ee44521 = { "ee44521", // class name
+ bases_ee44521, 4,
+ &(vtc_ee44521[0]), // expected_vtbl_contents
+ &(vtt_ee44521[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee44521),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44521),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee44521),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 ee54521 : virtual dd4521 {
+ int e;
+ virtual void bar(); // _ZN7ee545213barEv
+ ~ee54521(); // tgen
+ ee54521(); // tgen
+};
+//SIG(1 ee54521) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 Fi} v2 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee54521 ::bar(){vfunc_called(this, "_ZN7ee545213barEv");}
+ee54521 ::~ee54521(){ note_dtor("ee54521", this);} // tgen
+ee54521 ::ee54521(){ note_ctor("ee54521", this);} // tgen
+
+static void Test_ee54521()
+{
+ extern Class_Descriptor cd_ee54521;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee54521, buf);
+ ee54521 *dp, &lv = *(dp=new (buf) ee54521());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee54521)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54521)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee54521");
+ check_base_class_offset(lv, (bb21*)(cc521*)(dd4521*), ABISELECT(32,20), "ee54521");
+ check_base_class_offset(lv, (cc521*)(dd4521*), ABISELECT(16,8), "ee54521");
+ check_base_class_offset(lv, (dd4521*), ABISELECT(16,8), "ee54521");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54521.e");
+ test_class_info(&lv, &cd_ee54521);
+ dp->~ee54521();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54521(Test_ee54521, "ee54521", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee54521C1Ev();
+extern void _ZN7ee54521D1Ev();
+Name_Map name_map_ee54521[] = {
+ NSPAIR(_ZN7ee54521C1Ev),
+ NSPAIR(_ZN7ee54521D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc521;
+extern VTBL_ENTRY _ZTI5cc521[];
+extern VTBL_ENTRY _ZTV5cc521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc521[];
+extern Class_Descriptor cd_dd4521;
+extern VTBL_ENTRY _ZTI6dd4521[];
+extern VTBL_ENTRY _ZTV6dd4521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4521[];
+static Base_Class bases_ee54521[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc521, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4521, 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 _ZTI7ee54521[];
+extern void _ZN7ee545213barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee545213barEv,_ZTv0_n16_N7ee545213barEv)();
+extern void ABISELECT(_ZThn16_N7ee545213barEv,_ZThn8_N7ee545213barEv)() __attribute__((weak));
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY vtc_ee54521[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54521[0]),
+ (VTBL_ENTRY)&_ZN7ee545213barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee545213barEv,_ZTv0_n16_N7ee545213barEv),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee54521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee54521[];
+extern void _ZN6dd45213barEv();
+static VTBL_ENTRY _tg__ZTV6dd4521__7ee54521[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4521[0]),
+ (VTBL_ENTRY)&_ZN6dd45213barEv,
+};
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc5216dd4521__7ee54521[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc5216dd4521__7ee54521[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__6dd4521__7ee54521[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee54521[] = {
+ {&(_ZTV7ee54521[4]), 4,14},
+ {&(_ZTV7ee54521[9]), 9,14},
+ {&(_ZTV7ee54521[13]), 13,14},
+ {&(_tg__ZTV6dd4521__7ee54521[3]), 3,4},
+ {&(_tg__ZTV5cc5216dd4521__7ee54521[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc5216dd4521__7ee54521[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd4521__7ee54521[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee54521[];
+extern VTBL_ENTRY _ZTV7ee54521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54521[];
+static VTBL_ENTRY alt_thunk_names703[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee545213barEv,_ZTv0_n16_N7ee545213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee545213barEv,_ZThn8_N7ee545213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54521 = { "ee54521", // class name
+ bases_ee54521, 4,
+ &(vtc_ee54521[0]), // expected_vtbl_contents
+ &(vtt_ee54521[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee54521),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54521),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54521),7, //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 ee64521 : dd4521 {
+ int e;
+ virtual void foo(); // _ZN7ee645213fooEv
+ virtual void bar(); // _ZN7ee645213barEv
+ ~ee64521(); // tgen
+ ee64521(); // tgen
+};
+//SIG(1 ee64521) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64521 ::foo(){vfunc_called(this, "_ZN7ee645213fooEv");}
+void ee64521 ::bar(){vfunc_called(this, "_ZN7ee645213barEv");}
+ee64521 ::~ee64521(){ note_dtor("ee64521", this);} // tgen
+ee64521 ::ee64521(){ note_ctor("ee64521", this);} // tgen
+
+static void Test_ee64521()
+{
+ extern Class_Descriptor cd_ee64521;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee64521, buf);
+ ee64521 *dp, &lv = *(dp=new (buf) ee64521());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee64521)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64521)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(24,16), "ee64521");
+ check_base_class_offset(lv, (bb21*)(cc521*)(dd4521*), ABISELECT(24,16), "ee64521");
+ check_base_class_offset(lv, (cc521*)(dd4521*), 0, "ee64521");
+ check_base_class_offset(lv, (dd4521*), 0, "ee64521");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee64521.e");
+ test_class_info(&lv, &cd_ee64521);
+ dp->~ee64521();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64521(Test_ee64521, "ee64521", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee64521C1Ev();
+extern void _ZN7ee64521D1Ev();
+Name_Map name_map_ee64521[] = {
+ NSPAIR(_ZN7ee64521C1Ev),
+ NSPAIR(_ZN7ee64521D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc521;
+extern VTBL_ENTRY _ZTI5cc521[];
+extern VTBL_ENTRY _ZTV5cc521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc521[];
+extern Class_Descriptor cd_dd4521;
+extern VTBL_ENTRY _ZTI6dd4521[];
+extern VTBL_ENTRY _ZTV6dd4521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4521[];
+static Base_Class bases_ee64521[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc521, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4521, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee64521[];
+extern void _ZN7ee645213barEv();
+extern void _ZN7ee645213fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee645213fooEv,_ZTv0_n12_N7ee645213fooEv)();
+extern void ABISELECT(_ZThn24_N7ee645213fooEv,_ZThn16_N7ee645213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee64521[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64521[0]),
+ (VTBL_ENTRY)&_ZN7ee645213barEv,
+ (VTBL_ENTRY)&_ZN7ee645213fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee64521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee645213fooEv,_ZTv0_n12_N7ee645213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee64521[];
+extern void _ZN6dd45213barEv();
+static VTBL_ENTRY _tg__ZTV6dd4521__7ee64521[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4521[0]),
+ (VTBL_ENTRY)&_ZN6dd45213barEv,
+};
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc5216dd4521__7ee64521[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc5216dd4521__7ee64521[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__6dd4521__7ee64521[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee64521[] = {
+ {&(_ZTV7ee64521[3]), 3,9},
+ {&(_tg__ZTV6dd4521__7ee64521[3]), 3,4},
+ {&(_tg__ZTV5cc5216dd4521__7ee64521[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc5216dd4521__7ee64521[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd4521__7ee64521[3]), 3,4},
+ {&(_ZTV7ee64521[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee64521[];
+extern VTBL_ENTRY _ZTV7ee64521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee64521[];
+static VTBL_ENTRY alt_thunk_names704[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee645213fooEv,_ZTv0_n12_N7ee645213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee645213fooEv,_ZThn16_N7ee645213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee64521 = { "ee64521", // class name
+ bases_ee64521, 4,
+ &(vtc_ee64521[0]), // expected_vtbl_contents
+ &(vtt_ee64521[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee64521),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64521),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee64521),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names704,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee74521 : virtual dd4521 {
+ int e;
+ virtual void foo(); // _ZN7ee745213fooEv
+ virtual void bar(); // _ZN7ee745213barEv
+ ~ee74521(); // tgen
+ ee74521(); // tgen
+};
+//SIG(1 ee74521) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74521 ::foo(){vfunc_called(this, "_ZN7ee745213fooEv");}
+void ee74521 ::bar(){vfunc_called(this, "_ZN7ee745213barEv");}
+ee74521 ::~ee74521(){ note_dtor("ee74521", this);} // tgen
+ee74521 ::ee74521(){ note_ctor("ee74521", this);} // tgen
+
+static void Test_ee74521()
+{
+ extern Class_Descriptor cd_ee74521;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee74521, buf);
+ ee74521 *dp, &lv = *(dp=new (buf) ee74521());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee74521)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74521)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee74521");
+ check_base_class_offset(lv, (bb21*)(cc521*)(dd4521*), ABISELECT(32,20), "ee74521");
+ check_base_class_offset(lv, (cc521*)(dd4521*), ABISELECT(16,8), "ee74521");
+ check_base_class_offset(lv, (dd4521*), ABISELECT(16,8), "ee74521");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74521.e");
+ test_class_info(&lv, &cd_ee74521);
+ dp->~ee74521();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74521(Test_ee74521, "ee74521", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee74521C1Ev();
+extern void _ZN7ee74521D1Ev();
+Name_Map name_map_ee74521[] = {
+ NSPAIR(_ZN7ee74521C1Ev),
+ NSPAIR(_ZN7ee74521D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc521;
+extern VTBL_ENTRY _ZTI5cc521[];
+extern VTBL_ENTRY _ZTV5cc521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc521[];
+extern Class_Descriptor cd_dd4521;
+extern VTBL_ENTRY _ZTI6dd4521[];
+extern VTBL_ENTRY _ZTV6dd4521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4521[];
+static Base_Class bases_ee74521[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc521, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4521, 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 _ZTI7ee74521[];
+extern void _ZN7ee745213fooEv();
+extern void _ZN7ee745213barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee745213barEv,_ZTv0_n16_N7ee745213barEv)();
+extern void ABISELECT(_ZThn16_N7ee745213barEv,_ZThn8_N7ee745213barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee745213fooEv,_ZTv0_n12_N7ee745213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee745213fooEv,_ZThn20_N7ee745213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74521[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74521[0]),
+ (VTBL_ENTRY)&_ZN7ee745213fooEv,
+ (VTBL_ENTRY)&_ZN7ee745213barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee745213barEv,_ZTv0_n16_N7ee745213barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee74521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee745213fooEv,_ZTv0_n12_N7ee745213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee74521[];
+extern void _ZN6dd45213barEv();
+static VTBL_ENTRY _tg__ZTV6dd4521__7ee74521[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4521[0]),
+ (VTBL_ENTRY)&_ZN6dd45213barEv,
+};
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc5216dd4521__7ee74521[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc5216dd4521__7ee74521[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__6dd4521__7ee74521[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee74521[] = {
+ {&(_ZTV7ee74521[4]), 4,15},
+ {&(_ZTV7ee74521[10]), 10,15},
+ {&(_ZTV7ee74521[14]), 14,15},
+ {&(_tg__ZTV6dd4521__7ee74521[3]), 3,4},
+ {&(_tg__ZTV5cc5216dd4521__7ee74521[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc5216dd4521__7ee74521[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd4521__7ee74521[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee74521[];
+extern VTBL_ENTRY _ZTV7ee74521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74521[];
+static VTBL_ENTRY alt_thunk_names705[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee745213fooEv,_ZTv0_n12_N7ee745213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee745213fooEv,_ZThn20_N7ee745213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee745213barEv,_ZTv0_n16_N7ee745213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee745213barEv,_ZThn8_N7ee745213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74521 = { "ee74521", // class name
+ bases_ee74521, 4,
+ &(vtc_ee74521[0]), // expected_vtbl_contents
+ &(vtt_ee74521[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee74521),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74521),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74521),7, //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 dd5521 : virtual cc521 {
+ int d;
+ virtual void bar(); // _ZN6dd55213barEv
+ ~dd5521(); // tgen
+ dd5521(); // tgen
+};
+//SIG(-1 dd5521) C1{ VBC2{ VBC3{ BC4{ v2 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void dd5521 ::bar(){vfunc_called(this, "_ZN6dd55213barEv");}
+dd5521 ::~dd5521(){ note_dtor("dd5521", this);} // tgen
+dd5521 ::dd5521(){ note_ctor("dd5521", this);} // tgen
+
+static void Test_dd5521()
+{
+ extern Class_Descriptor cd_dd5521;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd5521, buf);
+ dd5521 *dp, &lv = *(dp=new (buf) dd5521());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd5521)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5521)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,16), "dd5521");
+ check_base_class_offset(lv, (bb21*)(cc521*), ABISELECT(32,16), "dd5521");
+ check_base_class_offset(lv, (cc521*), ABISELECT(16,8), "dd5521");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5521.d");
+ test_class_info(&lv, &cd_dd5521);
+ dp->~dd5521();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5521(Test_dd5521, "dd5521", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd5521C1Ev();
+extern void _ZN6dd5521D1Ev();
+Name_Map name_map_dd5521[] = {
+ NSPAIR(_ZN6dd5521C1Ev),
+ NSPAIR(_ZN6dd5521D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc521;
+extern VTBL_ENTRY _ZTI5cc521[];
+extern VTBL_ENTRY _ZTV5cc521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc521[];
+static Base_Class bases_dd5521[] = {
+ // 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_bb21, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc521, 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 _ZTI6dd5521[];
+extern void _ZN6dd55213barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55213barEv,_ZTv0_n16_N6dd55213barEv)();
+extern void ABISELECT(_ZThn16_N6dd55213barEv,_ZThn8_N6dd55213barEv)() __attribute__((weak));
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY vtc_dd5521[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5521[0]),
+ (VTBL_ENTRY)&_ZN6dd55213barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55213barEv,_ZTv0_n16_N6dd55213barEv),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd5521[];
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc521__6dd5521[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc521__6dd5521[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_dd5521[] = {
+ {&(_ZTV6dd5521[4]), 4,14},
+ {&(_ZTV6dd5521[9]), 9,14},
+ {&(_ZTV6dd5521[13]), 13,14},
+ {&(_tg__ZTV5cc521__6dd5521[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc521__6dd5521[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd5521[];
+extern VTBL_ENTRY _ZTV6dd5521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5521[];
+static VTBL_ENTRY alt_thunk_names706[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55213barEv,_ZTv0_n16_N6dd55213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55213barEv,_ZThn8_N6dd55213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5521 = { "dd5521", // class name
+ bases_dd5521, 3,
+ &(vtc_dd5521[0]), // expected_vtbl_contents
+ &(vtt_dd5521[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd5521),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5521),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5521),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names706,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05521 : dd5521 {
+ int e;
+ ~ee05521(); // tgen
+ ee05521(); // tgen
+};
+//SIG(1 ee05521) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 Fi} v2 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee05521 ::~ee05521(){ note_dtor("ee05521", this);} // tgen
+ee05521 ::ee05521(){ note_ctor("ee05521", this);} // tgen
+
+static void Test_ee05521()
+{
+ extern Class_Descriptor cd_ee05521;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee05521, buf);
+ ee05521 *dp, &lv = *(dp=new (buf) ee05521());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee05521)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05521)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee05521");
+ check_base_class_offset(lv, (bb21*)(cc521*), ABISELECT(32,20), "ee05521");
+ check_base_class_offset(lv, (cc521*)(dd5521*), ABISELECT(16,12), "ee05521");
+ check_base_class_offset(lv, (dd5521*), 0, "ee05521");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05521.e");
+ test_class_info(&lv, &cd_ee05521);
+ dp->~ee05521();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05521(Test_ee05521, "ee05521", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee05521C1Ev();
+extern void _ZN7ee05521D1Ev();
+Name_Map name_map_ee05521[] = {
+ NSPAIR(_ZN7ee05521C1Ev),
+ NSPAIR(_ZN7ee05521D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc521;
+extern VTBL_ENTRY _ZTI5cc521[];
+extern VTBL_ENTRY _ZTV5cc521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc521[];
+extern Class_Descriptor cd_dd5521;
+extern VTBL_ENTRY _ZTI6dd5521[];
+extern VTBL_ENTRY _ZTV6dd5521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5521[];
+static Base_Class bases_ee05521[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc521, 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_dd5521, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05521[];
+extern void _ZN6dd55213barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55213barEv,_ZTv0_n16_N6dd55213barEv)();
+extern void ABISELECT(_ZThn16_N6dd55213barEv,_ZThn12_N6dd55213barEv)() __attribute__((weak));
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY vtc_ee05521[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05521[0]),
+ (VTBL_ENTRY)&_ZN6dd55213barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55213barEv,_ZTv0_n16_N6dd55213barEv),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee05521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee05521[];
+extern void _ZN6dd55213barEv();
+static VTBL_ENTRY _tg__ZTV6dd5521__7ee05521[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5521[0]),
+ (VTBL_ENTRY)&_ZN6dd55213barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55213barEv,_ZTv0_n16_N6dd55213barEv)();
+extern void ABISELECT(_ZThn16_N6dd55213barEv,_ZThn12_N6dd55213barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc521__6dd5521__7ee05521[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55213barEv,_ZTv0_n16_N6dd55213barEv),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__6dd5521__7ee05521[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc521__7ee05521[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc521__7ee05521[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee05521[] = {
+ {&(_ZTV7ee05521[4]), 4,14},
+ {&(_tg__ZTV6dd5521__7ee05521[4]), 4,5},
+ {&(_tg__ZTV5cc521__6dd5521__7ee05521[4]), 4,5},
+ {&(_tg__ZTV4bb21__6dd5521__7ee05521[3]), 3,4},
+ {&(_ZTV7ee05521[9]), 9,14},
+ {&(_ZTV7ee05521[13]), 13,14},
+ {&(_tg__ZTV5cc521__7ee05521[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc521__7ee05521[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee05521[];
+extern VTBL_ENTRY _ZTV7ee05521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05521[];
+static VTBL_ENTRY alt_thunk_names707[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55213barEv,_ZTv0_n16_N6dd55213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55213barEv,_ZThn12_N6dd55213barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55213barEv,_ZThn12_N6dd55213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05521 = { "ee05521", // class name
+ bases_ee05521, 4,
+ &(vtc_ee05521[0]), // expected_vtbl_contents
+ &(vtt_ee05521[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee05521),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05521),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05521),8, //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 ee15521 : virtual dd5521 {
+ int e;
+ ~ee15521(); // tgen
+ ee15521(); // tgen
+};
+//SIG(1 ee15521) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 Fi} v2 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee15521 ::~ee15521(){ note_dtor("ee15521", this);} // tgen
+ee15521 ::ee15521(){ note_ctor("ee15521", this);} // tgen
+
+static void Test_ee15521()
+{
+ extern Class_Descriptor cd_ee15521;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee15521, buf);
+ ee15521 *dp, &lv = *(dp=new (buf) ee15521());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee15521)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15521)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(48,24), "ee15521");
+ check_base_class_offset(lv, (bb21*)(cc521*), ABISELECT(48,24), "ee15521");
+ check_base_class_offset(lv, (cc521*)(dd5521*), ABISELECT(32,16), "ee15521");
+ check_base_class_offset(lv, (dd5521*), ABISELECT(16,8), "ee15521");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15521.e");
+ test_class_info(&lv, &cd_ee15521);
+ dp->~ee15521();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15521(Test_ee15521, "ee15521", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee15521C1Ev();
+extern void _ZN7ee15521D1Ev();
+Name_Map name_map_ee15521[] = {
+ NSPAIR(_ZN7ee15521C1Ev),
+ NSPAIR(_ZN7ee15521D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc521;
+extern VTBL_ENTRY _ZTI5cc521[];
+extern VTBL_ENTRY _ZTV5cc521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc521[];
+extern Class_Descriptor cd_dd5521;
+extern VTBL_ENTRY _ZTI6dd5521[];
+extern VTBL_ENTRY _ZTV6dd5521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5521[];
+static Base_Class bases_ee15521[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb21, ABISELECT(48,24), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc521, 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_dd5521, 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 _ZTI7ee15521[];
+extern void _ZN6dd55213barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55213barEv,_ZTv0_n16_N6dd55213barEv)();
+extern void ABISELECT(_ZThn16_N6dd55213barEv,_ZThn8_N6dd55213barEv)() __attribute__((weak));
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY vtc_ee15521[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15521[0]),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15521[0]),
+ (VTBL_ENTRY)&_ZN6dd55213barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55213barEv,_ZTv0_n16_N6dd55213barEv),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee15521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee15521[];
+extern void _ZN6dd55213barEv();
+static VTBL_ENTRY _tg__ZTV6dd5521__7ee15521[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5521[0]),
+ (VTBL_ENTRY)&_ZN6dd55213barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55213barEv,_ZTv0_n16_N6dd55213barEv)();
+extern void ABISELECT(_ZThn16_N6dd55213barEv,_ZThn8_N6dd55213barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc521__6dd5521__7ee15521[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55213barEv,_ZTv0_n16_N6dd55213barEv),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__6dd5521__7ee15521[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc521__7ee15521[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc521__7ee15521[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee15521[] = {
+ {&(_ZTV7ee15521[5]), 5,20},
+ {&(_ZTV7ee15521[10]), 10,20},
+ {&(_ZTV7ee15521[15]), 15,20},
+ {&(_ZTV7ee15521[19]), 19,20},
+ {&(_tg__ZTV6dd5521__7ee15521[4]), 4,5},
+ {&(_tg__ZTV5cc521__6dd5521__7ee15521[4]), 4,5},
+ {&(_tg__ZTV4bb21__6dd5521__7ee15521[3]), 3,4},
+ {&(_tg__ZTV5cc521__7ee15521[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc521__7ee15521[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee15521[];
+extern VTBL_ENTRY _ZTV7ee15521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15521[];
+static VTBL_ENTRY alt_thunk_names708[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55213barEv,_ZTv0_n16_N6dd55213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55213barEv,_ZThn8_N6dd55213barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55213barEv,_ZThn8_N6dd55213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15521 = { "ee15521", // class name
+ bases_ee15521, 4,
+ &(vtc_ee15521[0]), // expected_vtbl_contents
+ &(vtt_ee15521[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee15521),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15521),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15521),9, //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 ee25521 : dd5521 {
+ int e;
+ virtual void foo(); // _ZN7ee255213fooEv
+ ~ee25521(); // tgen
+ ee25521(); // tgen
+};
+//SIG(1 ee25521) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee25521 ::foo(){vfunc_called(this, "_ZN7ee255213fooEv");}
+ee25521 ::~ee25521(){ note_dtor("ee25521", this);} // tgen
+ee25521 ::ee25521(){ note_ctor("ee25521", this);} // tgen
+
+static void Test_ee25521()
+{
+ extern Class_Descriptor cd_ee25521;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee25521, buf);
+ ee25521 *dp, &lv = *(dp=new (buf) ee25521());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee25521)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25521)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee25521");
+ check_base_class_offset(lv, (bb21*)(cc521*), ABISELECT(32,20), "ee25521");
+ check_base_class_offset(lv, (cc521*)(dd5521*), ABISELECT(16,12), "ee25521");
+ check_base_class_offset(lv, (dd5521*), 0, "ee25521");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25521.e");
+ test_class_info(&lv, &cd_ee25521);
+ dp->~ee25521();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25521(Test_ee25521, "ee25521", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee25521C1Ev();
+extern void _ZN7ee25521D1Ev();
+Name_Map name_map_ee25521[] = {
+ NSPAIR(_ZN7ee25521C1Ev),
+ NSPAIR(_ZN7ee25521D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc521;
+extern VTBL_ENTRY _ZTI5cc521[];
+extern VTBL_ENTRY _ZTV5cc521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc521[];
+extern Class_Descriptor cd_dd5521;
+extern VTBL_ENTRY _ZTI6dd5521[];
+extern VTBL_ENTRY _ZTV6dd5521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5521[];
+static Base_Class bases_ee25521[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc521, 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_dd5521, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25521[];
+extern void _ZN6dd55213barEv();
+extern void _ZN7ee255213fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55213barEv,_ZTv0_n16_N6dd55213barEv)();
+extern void ABISELECT(_ZThn16_N6dd55213barEv,_ZThn12_N6dd55213barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee255213fooEv,_ZTv0_n12_N7ee255213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee255213fooEv,_ZThn20_N7ee255213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25521[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25521[0]),
+ (VTBL_ENTRY)&_ZN6dd55213barEv,
+ (VTBL_ENTRY)&_ZN7ee255213fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55213barEv,_ZTv0_n16_N6dd55213barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee25521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee255213fooEv,_ZTv0_n12_N7ee255213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee25521[];
+extern void _ZN6dd55213barEv();
+static VTBL_ENTRY _tg__ZTV6dd5521__7ee25521[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5521[0]),
+ (VTBL_ENTRY)&_ZN6dd55213barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55213barEv,_ZTv0_n16_N6dd55213barEv)();
+extern void ABISELECT(_ZThn16_N6dd55213barEv,_ZThn12_N6dd55213barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc521__6dd5521__7ee25521[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55213barEv,_ZTv0_n16_N6dd55213barEv),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__6dd5521__7ee25521[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc521__7ee25521[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc521__7ee25521[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee25521[] = {
+ {&(_ZTV7ee25521[4]), 4,15},
+ {&(_tg__ZTV6dd5521__7ee25521[4]), 4,5},
+ {&(_tg__ZTV5cc521__6dd5521__7ee25521[4]), 4,5},
+ {&(_tg__ZTV4bb21__6dd5521__7ee25521[3]), 3,4},
+ {&(_ZTV7ee25521[10]), 10,15},
+ {&(_ZTV7ee25521[14]), 14,15},
+ {&(_tg__ZTV5cc521__7ee25521[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc521__7ee25521[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee25521[];
+extern VTBL_ENTRY _ZTV7ee25521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25521[];
+static VTBL_ENTRY alt_thunk_names709[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee255213fooEv,_ZTv0_n12_N7ee255213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee255213fooEv,_ZThn20_N7ee255213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55213barEv,_ZTv0_n16_N6dd55213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55213barEv,_ZThn12_N6dd55213barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55213barEv,_ZThn12_N6dd55213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25521 = { "ee25521", // class name
+ bases_ee25521, 4,
+ &(vtc_ee25521[0]), // expected_vtbl_contents
+ &(vtt_ee25521[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee25521),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25521),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25521),8, //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 ee35521 : virtual dd5521 {
+ int e;
+ virtual void foo(); // _ZN7ee355213fooEv
+ ~ee35521(); // tgen
+ ee35521(); // tgen
+};
+//SIG(1 ee35521) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee35521 ::foo(){vfunc_called(this, "_ZN7ee355213fooEv");}
+ee35521 ::~ee35521(){ note_dtor("ee35521", this);} // tgen
+ee35521 ::ee35521(){ note_ctor("ee35521", this);} // tgen
+
+static void Test_ee35521()
+{
+ extern Class_Descriptor cd_ee35521;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee35521, buf);
+ ee35521 *dp, &lv = *(dp=new (buf) ee35521());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee35521)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35521)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(48,24), "ee35521");
+ check_base_class_offset(lv, (bb21*)(cc521*), ABISELECT(48,24), "ee35521");
+ check_base_class_offset(lv, (cc521*)(dd5521*), ABISELECT(32,16), "ee35521");
+ check_base_class_offset(lv, (dd5521*), ABISELECT(16,8), "ee35521");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35521.e");
+ test_class_info(&lv, &cd_ee35521);
+ dp->~ee35521();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35521(Test_ee35521, "ee35521", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee35521C1Ev();
+extern void _ZN7ee35521D1Ev();
+Name_Map name_map_ee35521[] = {
+ NSPAIR(_ZN7ee35521C1Ev),
+ NSPAIR(_ZN7ee35521D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc521;
+extern VTBL_ENTRY _ZTI5cc521[];
+extern VTBL_ENTRY _ZTV5cc521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc521[];
+extern Class_Descriptor cd_dd5521;
+extern VTBL_ENTRY _ZTI6dd5521[];
+extern VTBL_ENTRY _ZTV6dd5521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5521[];
+static Base_Class bases_ee35521[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb21, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc521, 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_dd5521, ABISELECT(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 _ZTI7ee35521[];
+extern void _ZN7ee355213fooEv();
+extern void _ZN6dd55213barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55213barEv,_ZTv0_n16_N6dd55213barEv)();
+extern void ABISELECT(_ZThn16_N6dd55213barEv,_ZThn8_N6dd55213barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee355213fooEv,_ZTv0_n12_N7ee355213fooEv)();
+extern void ABISELECT(_ZThn48_N7ee355213fooEv,_ZThn24_N7ee355213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35521[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35521[0]),
+ (VTBL_ENTRY)&_ZN7ee355213fooEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35521[0]),
+ (VTBL_ENTRY)&_ZN6dd55213barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55213barEv,_ZTv0_n16_N6dd55213barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee35521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee355213fooEv,_ZTv0_n12_N7ee355213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee35521[];
+extern void _ZN6dd55213barEv();
+static VTBL_ENTRY _tg__ZTV6dd5521__7ee35521[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5521[0]),
+ (VTBL_ENTRY)&_ZN6dd55213barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55213barEv,_ZTv0_n16_N6dd55213barEv)();
+extern void ABISELECT(_ZThn16_N6dd55213barEv,_ZThn8_N6dd55213barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc521__6dd5521__7ee35521[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55213barEv,_ZTv0_n16_N6dd55213barEv),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__6dd5521__7ee35521[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc521__7ee35521[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc521__7ee35521[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee35521[] = {
+ {&(_ZTV7ee35521[5]), 5,21},
+ {&(_ZTV7ee35521[11]), 11,21},
+ {&(_ZTV7ee35521[16]), 16,21},
+ {&(_ZTV7ee35521[20]), 20,21},
+ {&(_tg__ZTV6dd5521__7ee35521[4]), 4,5},
+ {&(_tg__ZTV5cc521__6dd5521__7ee35521[4]), 4,5},
+ {&(_tg__ZTV4bb21__6dd5521__7ee35521[3]), 3,4},
+ {&(_tg__ZTV5cc521__7ee35521[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc521__7ee35521[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee35521[];
+extern VTBL_ENTRY _ZTV7ee35521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35521[];
+static VTBL_ENTRY alt_thunk_names710[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee355213fooEv,_ZTv0_n12_N7ee355213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee355213fooEv,_ZThn24_N7ee355213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55213barEv,_ZTv0_n16_N6dd55213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55213barEv,_ZThn8_N6dd55213barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55213barEv,_ZThn8_N6dd55213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35521 = { "ee35521", // class name
+ bases_ee35521, 4,
+ &(vtc_ee35521[0]), // expected_vtbl_contents
+ &(vtt_ee35521[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee35521),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35521),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35521),9, //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 ee45521 : dd5521 {
+ int e;
+ virtual void bar(); // _ZN7ee455213barEv
+ ~ee45521(); // tgen
+ ee45521(); // tgen
+};
+//SIG(1 ee45521) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 Fi} v2 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee45521 ::bar(){vfunc_called(this, "_ZN7ee455213barEv");}
+ee45521 ::~ee45521(){ note_dtor("ee45521", this);} // tgen
+ee45521 ::ee45521(){ note_ctor("ee45521", this);} // tgen
+
+static void Test_ee45521()
+{
+ extern Class_Descriptor cd_ee45521;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee45521, buf);
+ ee45521 *dp, &lv = *(dp=new (buf) ee45521());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee45521)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45521)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee45521");
+ check_base_class_offset(lv, (bb21*)(cc521*), ABISELECT(32,20), "ee45521");
+ check_base_class_offset(lv, (cc521*)(dd5521*), ABISELECT(16,12), "ee45521");
+ check_base_class_offset(lv, (dd5521*), 0, "ee45521");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45521.e");
+ test_class_info(&lv, &cd_ee45521);
+ dp->~ee45521();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45521(Test_ee45521, "ee45521", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee45521C1Ev();
+extern void _ZN7ee45521D1Ev();
+Name_Map name_map_ee45521[] = {
+ NSPAIR(_ZN7ee45521C1Ev),
+ NSPAIR(_ZN7ee45521D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc521;
+extern VTBL_ENTRY _ZTI5cc521[];
+extern VTBL_ENTRY _ZTV5cc521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc521[];
+extern Class_Descriptor cd_dd5521;
+extern VTBL_ENTRY _ZTI6dd5521[];
+extern VTBL_ENTRY _ZTV6dd5521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5521[];
+static Base_Class bases_ee45521[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc521, 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_dd5521, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45521[];
+extern void _ZN7ee455213barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee455213barEv,_ZTv0_n16_N7ee455213barEv)();
+extern void ABISELECT(_ZThn16_N7ee455213barEv,_ZThn12_N7ee455213barEv)() __attribute__((weak));
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY vtc_ee45521[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45521[0]),
+ (VTBL_ENTRY)&_ZN7ee455213barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee455213barEv,_ZTv0_n16_N7ee455213barEv),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee45521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee45521[];
+extern void _ZN6dd55213barEv();
+static VTBL_ENTRY _tg__ZTV6dd5521__7ee45521[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5521[0]),
+ (VTBL_ENTRY)&_ZN6dd55213barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55213barEv,_ZTv0_n16_N6dd55213barEv)();
+extern void ABISELECT(_ZThn16_N6dd55213barEv,_ZThn12_N6dd55213barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc521__6dd5521__7ee45521[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55213barEv,_ZTv0_n16_N6dd55213barEv),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__6dd5521__7ee45521[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc521__7ee45521[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc521__7ee45521[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee45521[] = {
+ {&(_ZTV7ee45521[4]), 4,14},
+ {&(_tg__ZTV6dd5521__7ee45521[4]), 4,5},
+ {&(_tg__ZTV5cc521__6dd5521__7ee45521[4]), 4,5},
+ {&(_tg__ZTV4bb21__6dd5521__7ee45521[3]), 3,4},
+ {&(_ZTV7ee45521[9]), 9,14},
+ {&(_ZTV7ee45521[13]), 13,14},
+ {&(_tg__ZTV5cc521__7ee45521[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc521__7ee45521[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee45521[];
+extern VTBL_ENTRY _ZTV7ee45521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45521[];
+static VTBL_ENTRY alt_thunk_names711[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55213barEv,_ZTv0_n16_N6dd55213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55213barEv,_ZThn12_N6dd55213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee455213barEv,_ZTv0_n16_N7ee455213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee455213barEv,_ZThn12_N7ee455213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45521 = { "ee45521", // class name
+ bases_ee45521, 4,
+ &(vtc_ee45521[0]), // expected_vtbl_contents
+ &(vtt_ee45521[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee45521),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45521),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45521),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names711,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee55521 : virtual dd5521 {
+ int e;
+ virtual void bar(); // _ZN7ee555213barEv
+ ~ee55521(); // tgen
+ ee55521(); // tgen
+};
+//SIG(1 ee55521) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 Fi} v2 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee55521 ::bar(){vfunc_called(this, "_ZN7ee555213barEv");}
+ee55521 ::~ee55521(){ note_dtor("ee55521", this);} // tgen
+ee55521 ::ee55521(){ note_ctor("ee55521", this);} // tgen
+
+static void Test_ee55521()
+{
+ extern Class_Descriptor cd_ee55521;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee55521, buf);
+ ee55521 *dp, &lv = *(dp=new (buf) ee55521());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee55521)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55521)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(48,24), "ee55521");
+ check_base_class_offset(lv, (bb21*)(cc521*), ABISELECT(48,24), "ee55521");
+ check_base_class_offset(lv, (cc521*)(dd5521*), ABISELECT(32,16), "ee55521");
+ check_base_class_offset(lv, (dd5521*), ABISELECT(16,8), "ee55521");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55521.e");
+ test_class_info(&lv, &cd_ee55521);
+ dp->~ee55521();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55521(Test_ee55521, "ee55521", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee55521C1Ev();
+extern void _ZN7ee55521D1Ev();
+Name_Map name_map_ee55521[] = {
+ NSPAIR(_ZN7ee55521C1Ev),
+ NSPAIR(_ZN7ee55521D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc521;
+extern VTBL_ENTRY _ZTI5cc521[];
+extern VTBL_ENTRY _ZTV5cc521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc521[];
+extern Class_Descriptor cd_dd5521;
+extern VTBL_ENTRY _ZTI6dd5521[];
+extern VTBL_ENTRY _ZTV6dd5521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5521[];
+static Base_Class bases_ee55521[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb21, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc521, 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_dd5521, ABISELECT(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 _ZTI7ee55521[];
+extern void _ZN7ee555213barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee555213barEv,_ZTv0_n20_N7ee555213barEv)();
+extern void ABISELECT(_ZThn16_N7ee555213barEv,_ZThn8_N7ee555213barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee555213barEv,_ZTv0_n16_N7ee555213barEv)();
+extern void ABISELECT(_ZThn32_N7ee555213barEv,_ZThn16_N7ee555213barEv)() __attribute__((weak));
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY vtc_ee55521[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55521[0]),
+ (VTBL_ENTRY)&_ZN7ee555213barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee555213barEv,_ZTv0_n20_N7ee555213barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee555213barEv,_ZTv0_n16_N7ee555213barEv),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee55521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee55521[];
+extern void _ZN6dd55213barEv();
+static VTBL_ENTRY _tg__ZTV6dd5521__7ee55521[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5521[0]),
+ (VTBL_ENTRY)&_ZN6dd55213barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55213barEv,_ZTv0_n16_N6dd55213barEv)();
+extern void ABISELECT(_ZThn16_N6dd55213barEv,_ZThn8_N6dd55213barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc521__6dd5521__7ee55521[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55213barEv,_ZTv0_n16_N6dd55213barEv),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__6dd5521__7ee55521[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc521__7ee55521[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc521__7ee55521[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee55521[] = {
+ {&(_ZTV7ee55521[5]), 5,21},
+ {&(_ZTV7ee55521[11]), 11,21},
+ {&(_ZTV7ee55521[16]), 16,21},
+ {&(_ZTV7ee55521[20]), 20,21},
+ {&(_tg__ZTV6dd5521__7ee55521[4]), 4,5},
+ {&(_tg__ZTV5cc521__6dd5521__7ee55521[4]), 4,5},
+ {&(_tg__ZTV4bb21__6dd5521__7ee55521[3]), 3,4},
+ {&(_tg__ZTV5cc521__7ee55521[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc521__7ee55521[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee55521[];
+extern VTBL_ENTRY _ZTV7ee55521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55521[];
+static VTBL_ENTRY alt_thunk_names712[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55213barEv,_ZTv0_n16_N6dd55213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55213barEv,_ZThn8_N6dd55213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee555213barEv,_ZTv0_n16_N7ee555213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee555213barEv,_ZThn16_N7ee555213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee555213barEv,_ZTv0_n20_N7ee555213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee555213barEv,_ZThn8_N7ee555213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55521 = { "ee55521", // class name
+ bases_ee55521, 4,
+ &(vtc_ee55521[0]), // expected_vtbl_contents
+ &(vtt_ee55521[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee55521),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55521),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55521),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names712,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee65521 : dd5521 {
+ int e;
+ virtual void foo(); // _ZN7ee655213fooEv
+ virtual void bar(); // _ZN7ee655213barEv
+ ~ee65521(); // tgen
+ ee65521(); // tgen
+};
+//SIG(1 ee65521) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65521 ::foo(){vfunc_called(this, "_ZN7ee655213fooEv");}
+void ee65521 ::bar(){vfunc_called(this, "_ZN7ee655213barEv");}
+ee65521 ::~ee65521(){ note_dtor("ee65521", this);} // tgen
+ee65521 ::ee65521(){ note_ctor("ee65521", this);} // tgen
+
+static void Test_ee65521()
+{
+ extern Class_Descriptor cd_ee65521;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee65521, buf);
+ ee65521 *dp, &lv = *(dp=new (buf) ee65521());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee65521)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65521)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee65521");
+ check_base_class_offset(lv, (bb21*)(cc521*), ABISELECT(32,20), "ee65521");
+ check_base_class_offset(lv, (cc521*)(dd5521*), ABISELECT(16,12), "ee65521");
+ check_base_class_offset(lv, (dd5521*), 0, "ee65521");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65521.e");
+ test_class_info(&lv, &cd_ee65521);
+ dp->~ee65521();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65521(Test_ee65521, "ee65521", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee65521C1Ev();
+extern void _ZN7ee65521D1Ev();
+Name_Map name_map_ee65521[] = {
+ NSPAIR(_ZN7ee65521C1Ev),
+ NSPAIR(_ZN7ee65521D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc521;
+extern VTBL_ENTRY _ZTI5cc521[];
+extern VTBL_ENTRY _ZTV5cc521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc521[];
+extern Class_Descriptor cd_dd5521;
+extern VTBL_ENTRY _ZTI6dd5521[];
+extern VTBL_ENTRY _ZTV6dd5521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5521[];
+static Base_Class bases_ee65521[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc521, 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_dd5521, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65521[];
+extern void _ZN7ee655213barEv();
+extern void _ZN7ee655213fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee655213barEv,_ZTv0_n16_N7ee655213barEv)();
+extern void ABISELECT(_ZThn16_N7ee655213barEv,_ZThn12_N7ee655213barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee655213fooEv,_ZTv0_n12_N7ee655213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee655213fooEv,_ZThn20_N7ee655213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65521[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65521[0]),
+ (VTBL_ENTRY)&_ZN7ee655213barEv,
+ (VTBL_ENTRY)&_ZN7ee655213fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee655213barEv,_ZTv0_n16_N7ee655213barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee65521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee655213fooEv,_ZTv0_n12_N7ee655213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee65521[];
+extern void _ZN6dd55213barEv();
+static VTBL_ENTRY _tg__ZTV6dd5521__7ee65521[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5521[0]),
+ (VTBL_ENTRY)&_ZN6dd55213barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55213barEv,_ZTv0_n16_N6dd55213barEv)();
+extern void ABISELECT(_ZThn16_N6dd55213barEv,_ZThn12_N6dd55213barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc521__6dd5521__7ee65521[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55213barEv,_ZTv0_n16_N6dd55213barEv),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__6dd5521__7ee65521[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc521__7ee65521[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc521__7ee65521[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee65521[] = {
+ {&(_ZTV7ee65521[4]), 4,15},
+ {&(_tg__ZTV6dd5521__7ee65521[4]), 4,5},
+ {&(_tg__ZTV5cc521__6dd5521__7ee65521[4]), 4,5},
+ {&(_tg__ZTV4bb21__6dd5521__7ee65521[3]), 3,4},
+ {&(_ZTV7ee65521[10]), 10,15},
+ {&(_ZTV7ee65521[14]), 14,15},
+ {&(_tg__ZTV5cc521__7ee65521[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc521__7ee65521[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee65521[];
+extern VTBL_ENTRY _ZTV7ee65521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65521[];
+static VTBL_ENTRY alt_thunk_names713[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55213barEv,_ZTv0_n16_N6dd55213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55213barEv,_ZThn12_N6dd55213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee655213fooEv,_ZTv0_n12_N7ee655213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee655213fooEv,_ZThn20_N7ee655213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee655213barEv,_ZTv0_n16_N7ee655213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee655213barEv,_ZThn12_N7ee655213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65521 = { "ee65521", // class name
+ bases_ee65521, 4,
+ &(vtc_ee65521[0]), // expected_vtbl_contents
+ &(vtt_ee65521[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee65521),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65521),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65521),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names713,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee75521 : virtual dd5521 {
+ int e;
+ virtual void foo(); // _ZN7ee755213fooEv
+ virtual void bar(); // _ZN7ee755213barEv
+ ~ee75521(); // tgen
+ ee75521(); // tgen
+};
+//SIG(1 ee75521) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75521 ::foo(){vfunc_called(this, "_ZN7ee755213fooEv");}
+void ee75521 ::bar(){vfunc_called(this, "_ZN7ee755213barEv");}
+ee75521 ::~ee75521(){ note_dtor("ee75521", this);} // tgen
+ee75521 ::ee75521(){ note_ctor("ee75521", this);} // tgen
+
+static void Test_ee75521()
+{
+ extern Class_Descriptor cd_ee75521;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee75521, buf);
+ ee75521 *dp, &lv = *(dp=new (buf) ee75521());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee75521)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75521)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(48,24), "ee75521");
+ check_base_class_offset(lv, (bb21*)(cc521*), ABISELECT(48,24), "ee75521");
+ check_base_class_offset(lv, (cc521*)(dd5521*), ABISELECT(32,16), "ee75521");
+ check_base_class_offset(lv, (dd5521*), ABISELECT(16,8), "ee75521");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75521.e");
+ test_class_info(&lv, &cd_ee75521);
+ dp->~ee75521();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75521(Test_ee75521, "ee75521", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee75521C1Ev();
+extern void _ZN7ee75521D1Ev();
+Name_Map name_map_ee75521[] = {
+ NSPAIR(_ZN7ee75521C1Ev),
+ NSPAIR(_ZN7ee75521D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc521;
+extern VTBL_ENTRY _ZTI5cc521[];
+extern VTBL_ENTRY _ZTV5cc521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc521[];
+extern Class_Descriptor cd_dd5521;
+extern VTBL_ENTRY _ZTI6dd5521[];
+extern VTBL_ENTRY _ZTV6dd5521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5521[];
+static Base_Class bases_ee75521[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb21, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc521, 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_dd5521, 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 _ZTI7ee75521[];
+extern void _ZN7ee755213fooEv();
+extern void _ZN7ee755213barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee755213barEv,_ZTv0_n20_N7ee755213barEv)();
+extern void ABISELECT(_ZThn16_N7ee755213barEv,_ZThn8_N7ee755213barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee755213barEv,_ZTv0_n16_N7ee755213barEv)();
+extern void ABISELECT(_ZThn32_N7ee755213barEv,_ZThn16_N7ee755213barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee755213fooEv,_ZTv0_n12_N7ee755213fooEv)();
+extern void ABISELECT(_ZThn48_N7ee755213fooEv,_ZThn24_N7ee755213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75521[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75521[0]),
+ (VTBL_ENTRY)&_ZN7ee755213fooEv,
+ (VTBL_ENTRY)&_ZN7ee755213barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee755213barEv,_ZTv0_n20_N7ee755213barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee755213barEv,_ZTv0_n16_N7ee755213barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee75521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee755213fooEv,_ZTv0_n12_N7ee755213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee75521[];
+extern void _ZN6dd55213barEv();
+static VTBL_ENTRY _tg__ZTV6dd5521__7ee75521[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5521[0]),
+ (VTBL_ENTRY)&_ZN6dd55213barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55213barEv,_ZTv0_n16_N6dd55213barEv)();
+extern void ABISELECT(_ZThn16_N6dd55213barEv,_ZThn8_N6dd55213barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc521__6dd5521__7ee75521[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55213barEv,_ZTv0_n16_N6dd55213barEv),
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__6dd5521__7ee75521[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc521__7ee75521[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc521__7ee75521[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee75521[] = {
+ {&(_ZTV7ee75521[5]), 5,22},
+ {&(_ZTV7ee75521[12]), 12,22},
+ {&(_ZTV7ee75521[17]), 17,22},
+ {&(_ZTV7ee75521[21]), 21,22},
+ {&(_tg__ZTV6dd5521__7ee75521[4]), 4,5},
+ {&(_tg__ZTV5cc521__6dd5521__7ee75521[4]), 4,5},
+ {&(_tg__ZTV4bb21__6dd5521__7ee75521[3]), 3,4},
+ {&(_tg__ZTV5cc521__7ee75521[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc521__7ee75521[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee75521[];
+extern VTBL_ENTRY _ZTV7ee75521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75521[];
+static VTBL_ENTRY alt_thunk_names714[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55213barEv,_ZTv0_n16_N6dd55213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55213barEv,_ZThn8_N6dd55213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee755213fooEv,_ZTv0_n12_N7ee755213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee755213fooEv,_ZThn24_N7ee755213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee755213barEv,_ZTv0_n16_N7ee755213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee755213barEv,_ZThn16_N7ee755213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee755213barEv,_ZTv0_n20_N7ee755213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee755213barEv,_ZThn8_N7ee755213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75521 = { "ee75521", // class name
+ bases_ee75521, 4,
+ &(vtc_ee75521[0]), // expected_vtbl_contents
+ &(vtt_ee75521[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee75521),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75521),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75521),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names714,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd6521 : cc521 {
+ int d;
+ virtual void bar(); // _ZN6dd65213barEv
+ virtual void foo(); // _ZN6dd65213fooEv
+ ~dd6521(); // tgen
+ dd6521(); // tgen
+};
+//SIG(-1 dd6521) C1{ BC2{ VBC3{ BC4{ v2 Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void dd6521 ::bar(){vfunc_called(this, "_ZN6dd65213barEv");}
+void dd6521 ::foo(){vfunc_called(this, "_ZN6dd65213fooEv");}
+dd6521 ::~dd6521(){ note_dtor("dd6521", this);} // tgen
+dd6521 ::dd6521(){ note_ctor("dd6521", this);} // tgen
+
+static void Test_dd6521()
+{
+ extern Class_Descriptor cd_dd6521;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd6521, buf);
+ dd6521 *dp, &lv = *(dp=new (buf) dd6521());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd6521)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6521)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(16,12), "dd6521");
+ check_base_class_offset(lv, (bb21*)(cc521*), ABISELECT(16,12), "dd6521");
+ check_base_class_offset(lv, (cc521*), 0, "dd6521");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd6521.d");
+ test_class_info(&lv, &cd_dd6521);
+ dp->~dd6521();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6521(Test_dd6521, "dd6521", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd6521C1Ev();
+extern void _ZN6dd6521D1Ev();
+Name_Map name_map_dd6521[] = {
+ NSPAIR(_ZN6dd6521C1Ev),
+ NSPAIR(_ZN6dd6521D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc521;
+extern VTBL_ENTRY _ZTI5cc521[];
+extern VTBL_ENTRY _ZTV5cc521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc521[];
+static Base_Class bases_dd6521[] = {
+ // 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_bb21, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc521, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd6521[];
+extern void _ZN6dd65213barEv();
+extern void _ZN6dd65213fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd65213fooEv,_ZTv0_n12_N6dd65213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd65213fooEv,_ZThn12_N6dd65213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd6521[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6521[0]),
+ (VTBL_ENTRY)&_ZN6dd65213barEv,
+ (VTBL_ENTRY)&_ZN6dd65213fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65213fooEv,_ZTv0_n12_N6dd65213fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd6521[];
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc521__6dd6521[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc521__6dd6521[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_dd6521[] = {
+ {&(_ZTV6dd6521[3]), 3,9},
+ {&(_tg__ZTV5cc521__6dd6521[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc521__6dd6521[3]), 3,4},
+ {&(_ZTV6dd6521[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI6dd6521[];
+extern VTBL_ENTRY _ZTV6dd6521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6521[];
+static VTBL_ENTRY alt_thunk_names715[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65213fooEv,_ZTv0_n12_N6dd65213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65213fooEv,_ZThn12_N6dd65213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd6521 = { "dd6521", // class name
+ bases_dd6521, 3,
+ &(vtc_dd6521[0]), // expected_vtbl_contents
+ &(vtt_dd6521[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd6521),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6521),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd6521),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names715,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee06521 : dd6521 {
+ int e;
+ ~ee06521(); // tgen
+ ee06521(); // tgen
+};
+//SIG(1 ee06521) C1{ BC2{ BC3{ VBC4{ BC5{ v2 Fi} v2 Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee06521 ::~ee06521(){ note_dtor("ee06521", this);} // tgen
+ee06521 ::ee06521(){ note_ctor("ee06521", this);} // tgen
+
+static void Test_ee06521()
+{
+ extern Class_Descriptor cd_ee06521;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee06521, buf);
+ ee06521 *dp, &lv = *(dp=new (buf) ee06521());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee06521)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06521)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(24,16), "ee06521");
+ check_base_class_offset(lv, (bb21*)(cc521*)(dd6521*), ABISELECT(24,16), "ee06521");
+ check_base_class_offset(lv, (cc521*)(dd6521*), 0, "ee06521");
+ check_base_class_offset(lv, (dd6521*), 0, "ee06521");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee06521.e");
+ test_class_info(&lv, &cd_ee06521);
+ dp->~ee06521();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06521(Test_ee06521, "ee06521", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee06521C1Ev();
+extern void _ZN7ee06521D1Ev();
+Name_Map name_map_ee06521[] = {
+ NSPAIR(_ZN7ee06521C1Ev),
+ NSPAIR(_ZN7ee06521D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc521;
+extern VTBL_ENTRY _ZTI5cc521[];
+extern VTBL_ENTRY _ZTV5cc521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc521[];
+extern Class_Descriptor cd_dd6521;
+extern VTBL_ENTRY _ZTI6dd6521[];
+extern VTBL_ENTRY _ZTV6dd6521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6521[];
+static Base_Class bases_ee06521[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc521, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6521, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee06521[];
+extern void _ZN6dd65213barEv();
+extern void _ZN6dd65213fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd65213fooEv,_ZTv0_n12_N6dd65213fooEv)();
+extern void ABISELECT(_ZThn24_N6dd65213fooEv,_ZThn16_N6dd65213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee06521[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06521[0]),
+ (VTBL_ENTRY)&_ZN6dd65213barEv,
+ (VTBL_ENTRY)&_ZN6dd65213fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee06521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65213fooEv,_ZTv0_n12_N6dd65213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee06521[];
+extern void _ZN6dd65213barEv();
+extern void _ZN6dd65213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6521__7ee06521[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6521[0]),
+ (VTBL_ENTRY)&_ZN6dd65213barEv,
+ (VTBL_ENTRY)&_ZN6dd65213fooEv,
+};
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc5216dd6521__7ee06521[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc5216dd6521__7ee06521[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd65213fooEv,_ZTv0_n12_N6dd65213fooEv)();
+extern void ABISELECT(_ZThn24_N6dd65213fooEv,_ZThn16_N6dd65213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd6521__7ee06521[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65213fooEv,_ZTv0_n12_N6dd65213fooEv),
+};
+static VTT_ENTRY vtt_ee06521[] = {
+ {&(_ZTV7ee06521[3]), 3,9},
+ {&(_tg__ZTV6dd6521__7ee06521[3]), 3,5},
+ {&(_tg__ZTV5cc5216dd6521__7ee06521[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc5216dd6521__7ee06521[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd6521__7ee06521[3]), 3,4},
+ {&(_ZTV7ee06521[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee06521[];
+extern VTBL_ENTRY _ZTV7ee06521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee06521[];
+static VTBL_ENTRY alt_thunk_names716[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65213fooEv,_ZTv0_n12_N6dd65213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65213fooEv,_ZThn16_N6dd65213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65213fooEv,_ZThn16_N6dd65213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee06521 = { "ee06521", // class name
+ bases_ee06521, 4,
+ &(vtc_ee06521[0]), // expected_vtbl_contents
+ &(vtt_ee06521[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee06521),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06521),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee06521),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names716,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee16521 : virtual dd6521 {
+ int e;
+ ~ee16521(); // tgen
+ ee16521(); // tgen
+};
+//SIG(1 ee16521) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 Fi} v2 Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee16521 ::~ee16521(){ note_dtor("ee16521", this);} // tgen
+ee16521 ::ee16521(){ note_ctor("ee16521", this);} // tgen
+
+static void Test_ee16521()
+{
+ extern Class_Descriptor cd_ee16521;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee16521, buf);
+ ee16521 *dp, &lv = *(dp=new (buf) ee16521());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee16521)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16521)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee16521");
+ check_base_class_offset(lv, (bb21*)(cc521*)(dd6521*), ABISELECT(32,20), "ee16521");
+ check_base_class_offset(lv, (cc521*)(dd6521*), ABISELECT(16,8), "ee16521");
+ check_base_class_offset(lv, (dd6521*), ABISELECT(16,8), "ee16521");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16521.e");
+ test_class_info(&lv, &cd_ee16521);
+ dp->~ee16521();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16521(Test_ee16521, "ee16521", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee16521C1Ev();
+extern void _ZN7ee16521D1Ev();
+Name_Map name_map_ee16521[] = {
+ NSPAIR(_ZN7ee16521C1Ev),
+ NSPAIR(_ZN7ee16521D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc521;
+extern VTBL_ENTRY _ZTI5cc521[];
+extern VTBL_ENTRY _ZTV5cc521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc521[];
+extern Class_Descriptor cd_dd6521;
+extern VTBL_ENTRY _ZTI6dd6521[];
+extern VTBL_ENTRY _ZTV6dd6521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6521[];
+static Base_Class bases_ee16521[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc521, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6521, 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 _ZTI7ee16521[];
+extern void _ZN6dd65213barEv();
+extern void _ZN6dd65213fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd65213fooEv,_ZTv0_n12_N6dd65213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd65213fooEv,_ZThn12_N6dd65213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee16521[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16521[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16521[0]),
+ (VTBL_ENTRY)&_ZN6dd65213barEv,
+ (VTBL_ENTRY)&_ZN6dd65213fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee16521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65213fooEv,_ZTv0_n12_N6dd65213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee16521[];
+extern void _ZN6dd65213barEv();
+extern void _ZN6dd65213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6521__7ee16521[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6521[0]),
+ (VTBL_ENTRY)&_ZN6dd65213barEv,
+ (VTBL_ENTRY)&_ZN6dd65213fooEv,
+};
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc5216dd6521__7ee16521[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc5216dd6521__7ee16521[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd65213fooEv,_ZTv0_n12_N6dd65213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd65213fooEv,_ZThn12_N6dd65213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd6521__7ee16521[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65213fooEv,_ZTv0_n12_N6dd65213fooEv),
+};
+static VTT_ENTRY vtt_ee16521[] = {
+ {&(_ZTV7ee16521[4]), 4,15},
+ {&(_ZTV7ee16521[9]), 9,15},
+ {&(_ZTV7ee16521[14]), 14,15},
+ {&(_tg__ZTV6dd6521__7ee16521[3]), 3,5},
+ {&(_tg__ZTV5cc5216dd6521__7ee16521[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc5216dd6521__7ee16521[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd6521__7ee16521[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee16521[];
+extern VTBL_ENTRY _ZTV7ee16521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16521[];
+static VTBL_ENTRY alt_thunk_names717[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65213fooEv,_ZTv0_n12_N6dd65213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65213fooEv,_ZThn12_N6dd65213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65213fooEv,_ZThn12_N6dd65213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee16521 = { "ee16521", // class name
+ bases_ee16521, 4,
+ &(vtc_ee16521[0]), // expected_vtbl_contents
+ &(vtt_ee16521[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee16521),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16521),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16521),7, //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 ee26521 : dd6521 {
+ int e;
+ virtual void foo(); // _ZN7ee265213fooEv
+ ~ee26521(); // tgen
+ ee26521(); // tgen
+};
+//SIG(1 ee26521) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26521 ::foo(){vfunc_called(this, "_ZN7ee265213fooEv");}
+ee26521 ::~ee26521(){ note_dtor("ee26521", this);} // tgen
+ee26521 ::ee26521(){ note_ctor("ee26521", this);} // tgen
+
+static void Test_ee26521()
+{
+ extern Class_Descriptor cd_ee26521;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee26521, buf);
+ ee26521 *dp, &lv = *(dp=new (buf) ee26521());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee26521)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26521)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(24,16), "ee26521");
+ check_base_class_offset(lv, (bb21*)(cc521*)(dd6521*), ABISELECT(24,16), "ee26521");
+ check_base_class_offset(lv, (cc521*)(dd6521*), 0, "ee26521");
+ check_base_class_offset(lv, (dd6521*), 0, "ee26521");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee26521.e");
+ test_class_info(&lv, &cd_ee26521);
+ dp->~ee26521();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26521(Test_ee26521, "ee26521", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee26521C1Ev();
+extern void _ZN7ee26521D1Ev();
+Name_Map name_map_ee26521[] = {
+ NSPAIR(_ZN7ee26521C1Ev),
+ NSPAIR(_ZN7ee26521D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc521;
+extern VTBL_ENTRY _ZTI5cc521[];
+extern VTBL_ENTRY _ZTV5cc521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc521[];
+extern Class_Descriptor cd_dd6521;
+extern VTBL_ENTRY _ZTI6dd6521[];
+extern VTBL_ENTRY _ZTV6dd6521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6521[];
+static Base_Class bases_ee26521[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc521, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6521, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee26521[];
+extern void _ZN6dd65213barEv();
+extern void _ZN7ee265213fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee265213fooEv,_ZTv0_n12_N7ee265213fooEv)();
+extern void ABISELECT(_ZThn24_N7ee265213fooEv,_ZThn16_N7ee265213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee26521[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26521[0]),
+ (VTBL_ENTRY)&_ZN6dd65213barEv,
+ (VTBL_ENTRY)&_ZN7ee265213fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee26521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee265213fooEv,_ZTv0_n12_N7ee265213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee26521[];
+extern void _ZN6dd65213barEv();
+extern void _ZN6dd65213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6521__7ee26521[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6521[0]),
+ (VTBL_ENTRY)&_ZN6dd65213barEv,
+ (VTBL_ENTRY)&_ZN6dd65213fooEv,
+};
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc5216dd6521__7ee26521[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc5216dd6521__7ee26521[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd65213fooEv,_ZTv0_n12_N6dd65213fooEv)();
+extern void ABISELECT(_ZThn24_N6dd65213fooEv,_ZThn16_N6dd65213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd6521__7ee26521[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65213fooEv,_ZTv0_n12_N6dd65213fooEv),
+};
+static VTT_ENTRY vtt_ee26521[] = {
+ {&(_ZTV7ee26521[3]), 3,9},
+ {&(_tg__ZTV6dd6521__7ee26521[3]), 3,5},
+ {&(_tg__ZTV5cc5216dd6521__7ee26521[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc5216dd6521__7ee26521[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd6521__7ee26521[3]), 3,4},
+ {&(_ZTV7ee26521[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee26521[];
+extern VTBL_ENTRY _ZTV7ee26521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee26521[];
+static VTBL_ENTRY alt_thunk_names718[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65213fooEv,_ZTv0_n12_N6dd65213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65213fooEv,_ZThn16_N6dd65213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee265213fooEv,_ZTv0_n12_N7ee265213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee265213fooEv,_ZThn16_N7ee265213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee26521 = { "ee26521", // class name
+ bases_ee26521, 4,
+ &(vtc_ee26521[0]), // expected_vtbl_contents
+ &(vtt_ee26521[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee26521),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26521),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee26521),6, //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 ee36521 : virtual dd6521 {
+ int e;
+ virtual void foo(); // _ZN7ee365213fooEv
+ ~ee36521(); // tgen
+ ee36521(); // tgen
+};
+//SIG(1 ee36521) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36521 ::foo(){vfunc_called(this, "_ZN7ee365213fooEv");}
+ee36521 ::~ee36521(){ note_dtor("ee36521", this);} // tgen
+ee36521 ::ee36521(){ note_ctor("ee36521", this);} // tgen
+
+static void Test_ee36521()
+{
+ extern Class_Descriptor cd_ee36521;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee36521, buf);
+ ee36521 *dp, &lv = *(dp=new (buf) ee36521());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee36521)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36521)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee36521");
+ check_base_class_offset(lv, (bb21*)(cc521*)(dd6521*), ABISELECT(32,20), "ee36521");
+ check_base_class_offset(lv, (cc521*)(dd6521*), ABISELECT(16,8), "ee36521");
+ check_base_class_offset(lv, (dd6521*), ABISELECT(16,8), "ee36521");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36521.e");
+ test_class_info(&lv, &cd_ee36521);
+ dp->~ee36521();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36521(Test_ee36521, "ee36521", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee36521C1Ev();
+extern void _ZN7ee36521D1Ev();
+Name_Map name_map_ee36521[] = {
+ NSPAIR(_ZN7ee36521C1Ev),
+ NSPAIR(_ZN7ee36521D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc521;
+extern VTBL_ENTRY _ZTI5cc521[];
+extern VTBL_ENTRY _ZTV5cc521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc521[];
+extern Class_Descriptor cd_dd6521;
+extern VTBL_ENTRY _ZTI6dd6521[];
+extern VTBL_ENTRY _ZTV6dd6521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6521[];
+static Base_Class bases_ee36521[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc521, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6521, 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 _ZTI7ee36521[];
+extern void _ZN7ee365213fooEv();
+extern void _ZN6dd65213barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee365213fooEv,_ZTv0_n20_N7ee365213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee365213fooEv,_ZThn8_N7ee365213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee365213fooEv,_ZTv0_n12_N7ee365213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee365213fooEv,_ZThn20_N7ee365213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee36521[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36521[0]),
+ (VTBL_ENTRY)&_ZN7ee365213fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36521[0]),
+ (VTBL_ENTRY)&_ZN6dd65213barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee365213fooEv,_ZTv0_n20_N7ee365213fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee36521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee365213fooEv,_ZTv0_n12_N7ee365213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee36521[];
+extern void _ZN6dd65213barEv();
+extern void _ZN6dd65213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6521__7ee36521[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6521[0]),
+ (VTBL_ENTRY)&_ZN6dd65213barEv,
+ (VTBL_ENTRY)&_ZN6dd65213fooEv,
+};
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc5216dd6521__7ee36521[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc5216dd6521__7ee36521[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd65213fooEv,_ZTv0_n12_N6dd65213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd65213fooEv,_ZThn12_N6dd65213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd6521__7ee36521[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65213fooEv,_ZTv0_n12_N6dd65213fooEv),
+};
+static VTT_ENTRY vtt_ee36521[] = {
+ {&(_ZTV7ee36521[4]), 4,16},
+ {&(_ZTV7ee36521[10]), 10,16},
+ {&(_ZTV7ee36521[15]), 15,16},
+ {&(_tg__ZTV6dd6521__7ee36521[3]), 3,5},
+ {&(_tg__ZTV5cc5216dd6521__7ee36521[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc5216dd6521__7ee36521[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd6521__7ee36521[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee36521[];
+extern VTBL_ENTRY _ZTV7ee36521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36521[];
+static VTBL_ENTRY alt_thunk_names719[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65213fooEv,_ZTv0_n12_N6dd65213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65213fooEv,_ZThn12_N6dd65213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee365213fooEv,_ZTv0_n12_N7ee365213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee365213fooEv,_ZThn20_N7ee365213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee365213fooEv,_ZTv0_n20_N7ee365213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee365213fooEv,_ZThn8_N7ee365213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36521 = { "ee36521", // class name
+ bases_ee36521, 4,
+ &(vtc_ee36521[0]), // expected_vtbl_contents
+ &(vtt_ee36521[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee36521),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36521),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36521),7, //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 ee46521 : dd6521 {
+ int e;
+ virtual void bar(); // _ZN7ee465213barEv
+ ~ee46521(); // tgen
+ ee46521(); // tgen
+};
+//SIG(1 ee46521) C1{ BC2{ BC3{ VBC4{ BC5{ v2 Fi} v2 Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46521 ::bar(){vfunc_called(this, "_ZN7ee465213barEv");}
+ee46521 ::~ee46521(){ note_dtor("ee46521", this);} // tgen
+ee46521 ::ee46521(){ note_ctor("ee46521", this);} // tgen
+
+static void Test_ee46521()
+{
+ extern Class_Descriptor cd_ee46521;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee46521, buf);
+ ee46521 *dp, &lv = *(dp=new (buf) ee46521());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee46521)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46521)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(24,16), "ee46521");
+ check_base_class_offset(lv, (bb21*)(cc521*)(dd6521*), ABISELECT(24,16), "ee46521");
+ check_base_class_offset(lv, (cc521*)(dd6521*), 0, "ee46521");
+ check_base_class_offset(lv, (dd6521*), 0, "ee46521");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee46521.e");
+ test_class_info(&lv, &cd_ee46521);
+ dp->~ee46521();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46521(Test_ee46521, "ee46521", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee46521C1Ev();
+extern void _ZN7ee46521D1Ev();
+Name_Map name_map_ee46521[] = {
+ NSPAIR(_ZN7ee46521C1Ev),
+ NSPAIR(_ZN7ee46521D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc521;
+extern VTBL_ENTRY _ZTI5cc521[];
+extern VTBL_ENTRY _ZTV5cc521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc521[];
+extern Class_Descriptor cd_dd6521;
+extern VTBL_ENTRY _ZTI6dd6521[];
+extern VTBL_ENTRY _ZTV6dd6521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6521[];
+static Base_Class bases_ee46521[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc521, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6521, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee46521[];
+extern void _ZN7ee465213barEv();
+extern void _ZN6dd65213fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd65213fooEv,_ZTv0_n12_N6dd65213fooEv)();
+extern void ABISELECT(_ZThn24_N6dd65213fooEv,_ZThn16_N6dd65213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee46521[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46521[0]),
+ (VTBL_ENTRY)&_ZN7ee465213barEv,
+ (VTBL_ENTRY)&_ZN6dd65213fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee46521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65213fooEv,_ZTv0_n12_N6dd65213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee46521[];
+extern void _ZN6dd65213barEv();
+extern void _ZN6dd65213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6521__7ee46521[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6521[0]),
+ (VTBL_ENTRY)&_ZN6dd65213barEv,
+ (VTBL_ENTRY)&_ZN6dd65213fooEv,
+};
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc5216dd6521__7ee46521[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc5216dd6521__7ee46521[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd65213fooEv,_ZTv0_n12_N6dd65213fooEv)();
+extern void ABISELECT(_ZThn24_N6dd65213fooEv,_ZThn16_N6dd65213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd6521__7ee46521[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65213fooEv,_ZTv0_n12_N6dd65213fooEv),
+};
+static VTT_ENTRY vtt_ee46521[] = {
+ {&(_ZTV7ee46521[3]), 3,9},
+ {&(_tg__ZTV6dd6521__7ee46521[3]), 3,5},
+ {&(_tg__ZTV5cc5216dd6521__7ee46521[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc5216dd6521__7ee46521[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd6521__7ee46521[3]), 3,4},
+ {&(_ZTV7ee46521[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee46521[];
+extern VTBL_ENTRY _ZTV7ee46521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee46521[];
+static VTBL_ENTRY alt_thunk_names720[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65213fooEv,_ZTv0_n12_N6dd65213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65213fooEv,_ZThn16_N6dd65213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65213fooEv,_ZThn16_N6dd65213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee46521 = { "ee46521", // class name
+ bases_ee46521, 4,
+ &(vtc_ee46521[0]), // expected_vtbl_contents
+ &(vtt_ee46521[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee46521),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46521),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee46521),6, //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 ee56521 : virtual dd6521 {
+ int e;
+ virtual void bar(); // _ZN7ee565213barEv
+ ~ee56521(); // tgen
+ ee56521(); // tgen
+};
+//SIG(1 ee56521) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 Fi} v2 Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56521 ::bar(){vfunc_called(this, "_ZN7ee565213barEv");}
+ee56521 ::~ee56521(){ note_dtor("ee56521", this);} // tgen
+ee56521 ::ee56521(){ note_ctor("ee56521", this);} // tgen
+
+static void Test_ee56521()
+{
+ extern Class_Descriptor cd_ee56521;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee56521, buf);
+ ee56521 *dp, &lv = *(dp=new (buf) ee56521());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee56521)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56521)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee56521");
+ check_base_class_offset(lv, (bb21*)(cc521*)(dd6521*), ABISELECT(32,20), "ee56521");
+ check_base_class_offset(lv, (cc521*)(dd6521*), ABISELECT(16,8), "ee56521");
+ check_base_class_offset(lv, (dd6521*), ABISELECT(16,8), "ee56521");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56521.e");
+ test_class_info(&lv, &cd_ee56521);
+ dp->~ee56521();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56521(Test_ee56521, "ee56521", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee56521C1Ev();
+extern void _ZN7ee56521D1Ev();
+Name_Map name_map_ee56521[] = {
+ NSPAIR(_ZN7ee56521C1Ev),
+ NSPAIR(_ZN7ee56521D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc521;
+extern VTBL_ENTRY _ZTI5cc521[];
+extern VTBL_ENTRY _ZTV5cc521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc521[];
+extern Class_Descriptor cd_dd6521;
+extern VTBL_ENTRY _ZTI6dd6521[];
+extern VTBL_ENTRY _ZTV6dd6521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6521[];
+static Base_Class bases_ee56521[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc521, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6521, 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 _ZTI7ee56521[];
+extern void _ZN7ee565213barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee565213barEv,_ZTv0_n16_N7ee565213barEv)();
+extern void ABISELECT(_ZThn16_N7ee565213barEv,_ZThn8_N7ee565213barEv)() __attribute__((weak));
+extern void _ZN6dd65213fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd65213fooEv,_ZTv0_n12_N6dd65213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd65213fooEv,_ZThn12_N6dd65213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56521[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56521[0]),
+ (VTBL_ENTRY)&_ZN7ee565213barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee565213barEv,_ZTv0_n16_N7ee565213barEv),
+ (VTBL_ENTRY)&_ZN6dd65213fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee56521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65213fooEv,_ZTv0_n12_N6dd65213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee56521[];
+extern void _ZN6dd65213barEv();
+extern void _ZN6dd65213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6521__7ee56521[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6521[0]),
+ (VTBL_ENTRY)&_ZN6dd65213barEv,
+ (VTBL_ENTRY)&_ZN6dd65213fooEv,
+};
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc5216dd6521__7ee56521[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc5216dd6521__7ee56521[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd65213fooEv,_ZTv0_n12_N6dd65213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd65213fooEv,_ZThn12_N6dd65213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd6521__7ee56521[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65213fooEv,_ZTv0_n12_N6dd65213fooEv),
+};
+static VTT_ENTRY vtt_ee56521[] = {
+ {&(_ZTV7ee56521[4]), 4,16},
+ {&(_ZTV7ee56521[10]), 10,16},
+ {&(_ZTV7ee56521[15]), 15,16},
+ {&(_tg__ZTV6dd6521__7ee56521[3]), 3,5},
+ {&(_tg__ZTV5cc5216dd6521__7ee56521[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc5216dd6521__7ee56521[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd6521__7ee56521[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee56521[];
+extern VTBL_ENTRY _ZTV7ee56521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56521[];
+static VTBL_ENTRY alt_thunk_names721[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65213fooEv,_ZTv0_n12_N6dd65213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65213fooEv,_ZThn12_N6dd65213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65213fooEv,_ZThn12_N6dd65213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee565213barEv,_ZTv0_n16_N7ee565213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee565213barEv,_ZThn8_N7ee565213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56521 = { "ee56521", // class name
+ bases_ee56521, 4,
+ &(vtc_ee56521[0]), // expected_vtbl_contents
+ &(vtt_ee56521[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee56521),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56521),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56521),7, //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 ee66521 : dd6521 {
+ int e;
+ virtual void foo(); // _ZN7ee665213fooEv
+ virtual void bar(); // _ZN7ee665213barEv
+ ~ee66521(); // tgen
+ ee66521(); // tgen
+};
+//SIG(1 ee66521) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66521 ::foo(){vfunc_called(this, "_ZN7ee665213fooEv");}
+void ee66521 ::bar(){vfunc_called(this, "_ZN7ee665213barEv");}
+ee66521 ::~ee66521(){ note_dtor("ee66521", this);} // tgen
+ee66521 ::ee66521(){ note_ctor("ee66521", this);} // tgen
+
+static void Test_ee66521()
+{
+ extern Class_Descriptor cd_ee66521;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee66521, buf);
+ ee66521 *dp, &lv = *(dp=new (buf) ee66521());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee66521)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66521)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(24,16), "ee66521");
+ check_base_class_offset(lv, (bb21*)(cc521*)(dd6521*), ABISELECT(24,16), "ee66521");
+ check_base_class_offset(lv, (cc521*)(dd6521*), 0, "ee66521");
+ check_base_class_offset(lv, (dd6521*), 0, "ee66521");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee66521.e");
+ test_class_info(&lv, &cd_ee66521);
+ dp->~ee66521();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66521(Test_ee66521, "ee66521", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee66521C1Ev();
+extern void _ZN7ee66521D1Ev();
+Name_Map name_map_ee66521[] = {
+ NSPAIR(_ZN7ee66521C1Ev),
+ NSPAIR(_ZN7ee66521D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc521;
+extern VTBL_ENTRY _ZTI5cc521[];
+extern VTBL_ENTRY _ZTV5cc521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc521[];
+extern Class_Descriptor cd_dd6521;
+extern VTBL_ENTRY _ZTI6dd6521[];
+extern VTBL_ENTRY _ZTV6dd6521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6521[];
+static Base_Class bases_ee66521[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc521, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6521, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee66521[];
+extern void _ZN7ee665213barEv();
+extern void _ZN7ee665213fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee665213fooEv,_ZTv0_n12_N7ee665213fooEv)();
+extern void ABISELECT(_ZThn24_N7ee665213fooEv,_ZThn16_N7ee665213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee66521[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66521[0]),
+ (VTBL_ENTRY)&_ZN7ee665213barEv,
+ (VTBL_ENTRY)&_ZN7ee665213fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee66521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee665213fooEv,_ZTv0_n12_N7ee665213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee66521[];
+extern void _ZN6dd65213barEv();
+extern void _ZN6dd65213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6521__7ee66521[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6521[0]),
+ (VTBL_ENTRY)&_ZN6dd65213barEv,
+ (VTBL_ENTRY)&_ZN6dd65213fooEv,
+};
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc5216dd6521__7ee66521[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc5216dd6521__7ee66521[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd65213fooEv,_ZTv0_n12_N6dd65213fooEv)();
+extern void ABISELECT(_ZThn24_N6dd65213fooEv,_ZThn16_N6dd65213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd6521__7ee66521[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65213fooEv,_ZTv0_n12_N6dd65213fooEv),
+};
+static VTT_ENTRY vtt_ee66521[] = {
+ {&(_ZTV7ee66521[3]), 3,9},
+ {&(_tg__ZTV6dd6521__7ee66521[3]), 3,5},
+ {&(_tg__ZTV5cc5216dd6521__7ee66521[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc5216dd6521__7ee66521[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd6521__7ee66521[3]), 3,4},
+ {&(_ZTV7ee66521[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee66521[];
+extern VTBL_ENTRY _ZTV7ee66521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee66521[];
+static VTBL_ENTRY alt_thunk_names722[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65213fooEv,_ZTv0_n12_N6dd65213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65213fooEv,_ZThn16_N6dd65213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee665213fooEv,_ZTv0_n12_N7ee665213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee665213fooEv,_ZThn16_N7ee665213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee66521 = { "ee66521", // class name
+ bases_ee66521, 4,
+ &(vtc_ee66521[0]), // expected_vtbl_contents
+ &(vtt_ee66521[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee66521),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66521),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee66521),6, //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 ee76521 : virtual dd6521 {
+ int e;
+ virtual void foo(); // _ZN7ee765213fooEv
+ virtual void bar(); // _ZN7ee765213barEv
+ ~ee76521(); // tgen
+ ee76521(); // tgen
+};
+//SIG(1 ee76521) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76521 ::foo(){vfunc_called(this, "_ZN7ee765213fooEv");}
+void ee76521 ::bar(){vfunc_called(this, "_ZN7ee765213barEv");}
+ee76521 ::~ee76521(){ note_dtor("ee76521", this);} // tgen
+ee76521 ::ee76521(){ note_ctor("ee76521", this);} // tgen
+
+static void Test_ee76521()
+{
+ extern Class_Descriptor cd_ee76521;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee76521, buf);
+ ee76521 *dp, &lv = *(dp=new (buf) ee76521());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee76521)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76521)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee76521");
+ check_base_class_offset(lv, (bb21*)(cc521*)(dd6521*), ABISELECT(32,20), "ee76521");
+ check_base_class_offset(lv, (cc521*)(dd6521*), ABISELECT(16,8), "ee76521");
+ check_base_class_offset(lv, (dd6521*), ABISELECT(16,8), "ee76521");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76521.e");
+ test_class_info(&lv, &cd_ee76521);
+ dp->~ee76521();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76521(Test_ee76521, "ee76521", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee76521C1Ev();
+extern void _ZN7ee76521D1Ev();
+Name_Map name_map_ee76521[] = {
+ NSPAIR(_ZN7ee76521C1Ev),
+ NSPAIR(_ZN7ee76521D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc521;
+extern VTBL_ENTRY _ZTI5cc521[];
+extern VTBL_ENTRY _ZTV5cc521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc521[];
+extern Class_Descriptor cd_dd6521;
+extern VTBL_ENTRY _ZTI6dd6521[];
+extern VTBL_ENTRY _ZTV6dd6521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6521[];
+static Base_Class bases_ee76521[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc521, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6521, ABISELECT(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 _ZTI7ee76521[];
+extern void _ZN7ee765213fooEv();
+extern void _ZN7ee765213barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee765213barEv,_ZTv0_n16_N7ee765213barEv)();
+extern void ABISELECT(_ZThn16_N7ee765213barEv,_ZThn8_N7ee765213barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee765213fooEv,_ZTv0_n20_N7ee765213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee765213fooEv,_ZThn8_N7ee765213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee765213fooEv,_ZTv0_n12_N7ee765213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee765213fooEv,_ZThn20_N7ee765213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76521[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76521[0]),
+ (VTBL_ENTRY)&_ZN7ee765213fooEv,
+ (VTBL_ENTRY)&_ZN7ee765213barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee765213barEv,_ZTv0_n16_N7ee765213barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee765213fooEv,_ZTv0_n20_N7ee765213fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee76521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee765213fooEv,_ZTv0_n12_N7ee765213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee76521[];
+extern void _ZN6dd65213barEv();
+extern void _ZN6dd65213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6521__7ee76521[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6521[0]),
+ (VTBL_ENTRY)&_ZN6dd65213barEv,
+ (VTBL_ENTRY)&_ZN6dd65213fooEv,
+};
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc5216dd6521__7ee76521[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc5216dd6521__7ee76521[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd65213fooEv,_ZTv0_n12_N6dd65213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd65213fooEv,_ZThn12_N6dd65213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd6521__7ee76521[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65213fooEv,_ZTv0_n12_N6dd65213fooEv),
+};
+static VTT_ENTRY vtt_ee76521[] = {
+ {&(_ZTV7ee76521[4]), 4,17},
+ {&(_ZTV7ee76521[11]), 11,17},
+ {&(_ZTV7ee76521[16]), 16,17},
+ {&(_tg__ZTV6dd6521__7ee76521[3]), 3,5},
+ {&(_tg__ZTV5cc5216dd6521__7ee76521[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc5216dd6521__7ee76521[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd6521__7ee76521[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee76521[];
+extern VTBL_ENTRY _ZTV7ee76521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76521[];
+static VTBL_ENTRY alt_thunk_names723[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65213fooEv,_ZTv0_n12_N6dd65213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65213fooEv,_ZThn12_N6dd65213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee765213fooEv,_ZTv0_n12_N7ee765213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee765213fooEv,_ZThn20_N7ee765213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee765213fooEv,_ZTv0_n20_N7ee765213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee765213fooEv,_ZThn8_N7ee765213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee765213barEv,_ZTv0_n16_N7ee765213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee765213barEv,_ZThn8_N7ee765213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76521 = { "ee76521", // class name
+ bases_ee76521, 4,
+ &(vtc_ee76521[0]), // expected_vtbl_contents
+ &(vtt_ee76521[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee76521),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76521),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76521),7, //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 dd7521 : virtual cc521 {
+ int d;
+ virtual void bar(); // _ZN6dd75213barEv
+ virtual void foo(); // _ZN6dd75213fooEv
+ ~dd7521(); // tgen
+ dd7521(); // tgen
+};
+//SIG(-1 dd7521) C1{ VBC2{ VBC3{ BC4{ v2 Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void dd7521 ::bar(){vfunc_called(this, "_ZN6dd75213barEv");}
+void dd7521 ::foo(){vfunc_called(this, "_ZN6dd75213fooEv");}
+dd7521 ::~dd7521(){ note_dtor("dd7521", this);} // tgen
+dd7521 ::dd7521(){ note_ctor("dd7521", this);} // tgen
+
+static void Test_dd7521()
+{
+ extern Class_Descriptor cd_dd7521;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd7521, buf);
+ dd7521 *dp, &lv = *(dp=new (buf) dd7521());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd7521)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7521)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,16), "dd7521");
+ check_base_class_offset(lv, (bb21*)(cc521*), ABISELECT(32,16), "dd7521");
+ check_base_class_offset(lv, (cc521*), ABISELECT(16,8), "dd7521");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7521.d");
+ test_class_info(&lv, &cd_dd7521);
+ dp->~dd7521();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7521(Test_dd7521, "dd7521", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd7521C1Ev();
+extern void _ZN6dd7521D1Ev();
+Name_Map name_map_dd7521[] = {
+ NSPAIR(_ZN6dd7521C1Ev),
+ NSPAIR(_ZN6dd7521D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc521;
+extern VTBL_ENTRY _ZTI5cc521[];
+extern VTBL_ENTRY _ZTV5cc521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc521[];
+static Base_Class bases_dd7521[] = {
+ // 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_bb21, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc521, 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 _ZTI6dd7521[];
+extern void _ZN6dd75213barEv();
+extern void _ZN6dd75213fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd75213barEv,_ZTv0_n16_N6dd75213barEv)();
+extern void ABISELECT(_ZThn16_N6dd75213barEv,_ZThn8_N6dd75213barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd75213fooEv,_ZTv0_n12_N6dd75213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75213fooEv,_ZThn16_N6dd75213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7521[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7521[0]),
+ (VTBL_ENTRY)&_ZN6dd75213barEv,
+ (VTBL_ENTRY)&_ZN6dd75213fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75213barEv,_ZTv0_n16_N6dd75213barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75213fooEv,_ZTv0_n12_N6dd75213fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd7521[];
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc521__6dd7521[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc521__6dd7521[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_dd7521[] = {
+ {&(_ZTV6dd7521[4]), 4,15},
+ {&(_ZTV6dd7521[10]), 10,15},
+ {&(_ZTV6dd7521[14]), 14,15},
+ {&(_tg__ZTV5cc521__6dd7521[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc521__6dd7521[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd7521[];
+extern VTBL_ENTRY _ZTV6dd7521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7521[];
+static VTBL_ENTRY alt_thunk_names724[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75213fooEv,_ZTv0_n12_N6dd75213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75213fooEv,_ZThn16_N6dd75213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75213barEv,_ZTv0_n16_N6dd75213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75213barEv,_ZThn8_N6dd75213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7521 = { "dd7521", // class name
+ bases_dd7521, 3,
+ &(vtc_dd7521[0]), // expected_vtbl_contents
+ &(vtt_dd7521[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd7521),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7521),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7521),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names724,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07521 : dd7521 {
+ int e;
+ ~ee07521(); // tgen
+ ee07521(); // tgen
+};
+//SIG(1 ee07521) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 Fi} v2 Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee07521 ::~ee07521(){ note_dtor("ee07521", this);} // tgen
+ee07521 ::ee07521(){ note_ctor("ee07521", this);} // tgen
+
+static void Test_ee07521()
+{
+ extern Class_Descriptor cd_ee07521;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee07521, buf);
+ ee07521 *dp, &lv = *(dp=new (buf) ee07521());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee07521)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07521)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee07521");
+ check_base_class_offset(lv, (bb21*)(cc521*), ABISELECT(32,20), "ee07521");
+ check_base_class_offset(lv, (cc521*)(dd7521*), ABISELECT(16,12), "ee07521");
+ check_base_class_offset(lv, (dd7521*), 0, "ee07521");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07521.e");
+ test_class_info(&lv, &cd_ee07521);
+ dp->~ee07521();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07521(Test_ee07521, "ee07521", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee07521C1Ev();
+extern void _ZN7ee07521D1Ev();
+Name_Map name_map_ee07521[] = {
+ NSPAIR(_ZN7ee07521C1Ev),
+ NSPAIR(_ZN7ee07521D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc521;
+extern VTBL_ENTRY _ZTI5cc521[];
+extern VTBL_ENTRY _ZTV5cc521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc521[];
+extern Class_Descriptor cd_dd7521;
+extern VTBL_ENTRY _ZTI6dd7521[];
+extern VTBL_ENTRY _ZTV6dd7521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7521[];
+static Base_Class bases_ee07521[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc521, 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_dd7521, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07521[];
+extern void _ZN6dd75213barEv();
+extern void _ZN6dd75213fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd75213barEv,_ZTv0_n16_N6dd75213barEv)();
+extern void ABISELECT(_ZThn16_N6dd75213barEv,_ZThn12_N6dd75213barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd75213fooEv,_ZTv0_n12_N6dd75213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75213fooEv,_ZThn20_N6dd75213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07521[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07521[0]),
+ (VTBL_ENTRY)&_ZN6dd75213barEv,
+ (VTBL_ENTRY)&_ZN6dd75213fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75213barEv,_ZTv0_n16_N6dd75213barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee07521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75213fooEv,_ZTv0_n12_N6dd75213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee07521[];
+extern void _ZN6dd75213barEv();
+extern void _ZN6dd75213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7521__7ee07521[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7521[0]),
+ (VTBL_ENTRY)&_ZN6dd75213barEv,
+ (VTBL_ENTRY)&_ZN6dd75213fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75213barEv,_ZTv0_n16_N6dd75213barEv)();
+extern void ABISELECT(_ZThn16_N6dd75213barEv,_ZThn12_N6dd75213barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc521__6dd7521__7ee07521[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75213barEv,_ZTv0_n16_N6dd75213barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd75213fooEv,_ZTv0_n12_N6dd75213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75213fooEv,_ZThn20_N6dd75213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd7521__7ee07521[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75213fooEv,_ZTv0_n12_N6dd75213fooEv),
+};
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc521__7ee07521[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc521__7ee07521[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee07521[] = {
+ {&(_ZTV7ee07521[4]), 4,15},
+ {&(_tg__ZTV6dd7521__7ee07521[4]), 4,6},
+ {&(_tg__ZTV5cc521__6dd7521__7ee07521[4]), 4,5},
+ {&(_tg__ZTV4bb21__6dd7521__7ee07521[3]), 3,4},
+ {&(_ZTV7ee07521[10]), 10,15},
+ {&(_ZTV7ee07521[14]), 14,15},
+ {&(_tg__ZTV5cc521__7ee07521[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc521__7ee07521[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee07521[];
+extern VTBL_ENTRY _ZTV7ee07521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07521[];
+static VTBL_ENTRY alt_thunk_names725[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75213fooEv,_ZTv0_n12_N6dd75213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75213fooEv,_ZThn20_N6dd75213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75213fooEv,_ZThn20_N6dd75213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75213barEv,_ZTv0_n16_N6dd75213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75213barEv,_ZThn12_N6dd75213barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75213barEv,_ZThn12_N6dd75213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07521 = { "ee07521", // class name
+ bases_ee07521, 4,
+ &(vtc_ee07521[0]), // expected_vtbl_contents
+ &(vtt_ee07521[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee07521),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07521),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07521),8, //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 ee17521 : virtual dd7521 {
+ int e;
+ ~ee17521(); // tgen
+ ee17521(); // tgen
+};
+//SIG(1 ee17521) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 Fi} v2 Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee17521 ::~ee17521(){ note_dtor("ee17521", this);} // tgen
+ee17521 ::ee17521(){ note_ctor("ee17521", this);} // tgen
+
+static void Test_ee17521()
+{
+ extern Class_Descriptor cd_ee17521;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee17521, buf);
+ ee17521 *dp, &lv = *(dp=new (buf) ee17521());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee17521)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17521)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(48,24), "ee17521");
+ check_base_class_offset(lv, (bb21*)(cc521*), ABISELECT(48,24), "ee17521");
+ check_base_class_offset(lv, (cc521*)(dd7521*), ABISELECT(32,16), "ee17521");
+ check_base_class_offset(lv, (dd7521*), ABISELECT(16,8), "ee17521");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17521.e");
+ test_class_info(&lv, &cd_ee17521);
+ dp->~ee17521();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17521(Test_ee17521, "ee17521", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee17521C1Ev();
+extern void _ZN7ee17521D1Ev();
+Name_Map name_map_ee17521[] = {
+ NSPAIR(_ZN7ee17521C1Ev),
+ NSPAIR(_ZN7ee17521D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc521;
+extern VTBL_ENTRY _ZTI5cc521[];
+extern VTBL_ENTRY _ZTV5cc521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc521[];
+extern Class_Descriptor cd_dd7521;
+extern VTBL_ENTRY _ZTI6dd7521[];
+extern VTBL_ENTRY _ZTV6dd7521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7521[];
+static Base_Class bases_ee17521[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb21, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc521, 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_dd7521, 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 _ZTI7ee17521[];
+extern void _ZN6dd75213barEv();
+extern void _ZN6dd75213fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd75213barEv,_ZTv0_n16_N6dd75213barEv)();
+extern void ABISELECT(_ZThn16_N6dd75213barEv,_ZThn8_N6dd75213barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd75213fooEv,_ZTv0_n12_N6dd75213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75213fooEv,_ZThn16_N6dd75213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17521[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17521[0]),
+ 0,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17521[0]),
+ (VTBL_ENTRY)&_ZN6dd75213barEv,
+ (VTBL_ENTRY)&_ZN6dd75213fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75213barEv,_ZTv0_n16_N6dd75213barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee17521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75213fooEv,_ZTv0_n12_N6dd75213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee17521[];
+extern void _ZN6dd75213barEv();
+extern void _ZN6dd75213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7521__7ee17521[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7521[0]),
+ (VTBL_ENTRY)&_ZN6dd75213barEv,
+ (VTBL_ENTRY)&_ZN6dd75213fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75213barEv,_ZTv0_n16_N6dd75213barEv)();
+extern void ABISELECT(_ZThn16_N6dd75213barEv,_ZThn8_N6dd75213barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc521__6dd7521__7ee17521[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75213barEv,_ZTv0_n16_N6dd75213barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd75213fooEv,_ZTv0_n12_N6dd75213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75213fooEv,_ZThn16_N6dd75213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd7521__7ee17521[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75213fooEv,_ZTv0_n12_N6dd75213fooEv),
+};
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc521__7ee17521[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc521__7ee17521[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee17521[] = {
+ {&(_ZTV7ee17521[5]), 5,22},
+ {&(_ZTV7ee17521[11]), 11,22},
+ {&(_ZTV7ee17521[17]), 17,22},
+ {&(_ZTV7ee17521[21]), 21,22},
+ {&(_tg__ZTV6dd7521__7ee17521[4]), 4,6},
+ {&(_tg__ZTV5cc521__6dd7521__7ee17521[4]), 4,5},
+ {&(_tg__ZTV4bb21__6dd7521__7ee17521[3]), 3,4},
+ {&(_tg__ZTV5cc521__7ee17521[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc521__7ee17521[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee17521[];
+extern VTBL_ENTRY _ZTV7ee17521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17521[];
+static VTBL_ENTRY alt_thunk_names726[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75213fooEv,_ZTv0_n12_N6dd75213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75213fooEv,_ZThn16_N6dd75213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75213fooEv,_ZThn16_N6dd75213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75213barEv,_ZTv0_n16_N6dd75213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75213barEv,_ZThn8_N6dd75213barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75213barEv,_ZThn8_N6dd75213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17521 = { "ee17521", // class name
+ bases_ee17521, 4,
+ &(vtc_ee17521[0]), // expected_vtbl_contents
+ &(vtt_ee17521[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee17521),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17521),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17521),9, //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 ee27521 : dd7521 {
+ int e;
+ virtual void foo(); // _ZN7ee275213fooEv
+ ~ee27521(); // tgen
+ ee27521(); // tgen
+};
+//SIG(1 ee27521) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27521 ::foo(){vfunc_called(this, "_ZN7ee275213fooEv");}
+ee27521 ::~ee27521(){ note_dtor("ee27521", this);} // tgen
+ee27521 ::ee27521(){ note_ctor("ee27521", this);} // tgen
+
+static void Test_ee27521()
+{
+ extern Class_Descriptor cd_ee27521;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee27521, buf);
+ ee27521 *dp, &lv = *(dp=new (buf) ee27521());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee27521)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27521)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee27521");
+ check_base_class_offset(lv, (bb21*)(cc521*), ABISELECT(32,20), "ee27521");
+ check_base_class_offset(lv, (cc521*)(dd7521*), ABISELECT(16,12), "ee27521");
+ check_base_class_offset(lv, (dd7521*), 0, "ee27521");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27521.e");
+ test_class_info(&lv, &cd_ee27521);
+ dp->~ee27521();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27521(Test_ee27521, "ee27521", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee27521C1Ev();
+extern void _ZN7ee27521D1Ev();
+Name_Map name_map_ee27521[] = {
+ NSPAIR(_ZN7ee27521C1Ev),
+ NSPAIR(_ZN7ee27521D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc521;
+extern VTBL_ENTRY _ZTI5cc521[];
+extern VTBL_ENTRY _ZTV5cc521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc521[];
+extern Class_Descriptor cd_dd7521;
+extern VTBL_ENTRY _ZTI6dd7521[];
+extern VTBL_ENTRY _ZTV6dd7521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7521[];
+static Base_Class bases_ee27521[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc521, 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_dd7521, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27521[];
+extern void _ZN6dd75213barEv();
+extern void _ZN7ee275213fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd75213barEv,_ZTv0_n16_N6dd75213barEv)();
+extern void ABISELECT(_ZThn16_N6dd75213barEv,_ZThn12_N6dd75213barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee275213fooEv,_ZTv0_n12_N7ee275213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee275213fooEv,_ZThn20_N7ee275213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27521[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27521[0]),
+ (VTBL_ENTRY)&_ZN6dd75213barEv,
+ (VTBL_ENTRY)&_ZN7ee275213fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75213barEv,_ZTv0_n16_N6dd75213barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee27521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee275213fooEv,_ZTv0_n12_N7ee275213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee27521[];
+extern void _ZN6dd75213barEv();
+extern void _ZN6dd75213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7521__7ee27521[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7521[0]),
+ (VTBL_ENTRY)&_ZN6dd75213barEv,
+ (VTBL_ENTRY)&_ZN6dd75213fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75213barEv,_ZTv0_n16_N6dd75213barEv)();
+extern void ABISELECT(_ZThn16_N6dd75213barEv,_ZThn12_N6dd75213barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc521__6dd7521__7ee27521[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75213barEv,_ZTv0_n16_N6dd75213barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd75213fooEv,_ZTv0_n12_N6dd75213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75213fooEv,_ZThn20_N6dd75213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd7521__7ee27521[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75213fooEv,_ZTv0_n12_N6dd75213fooEv),
+};
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc521__7ee27521[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc521__7ee27521[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee27521[] = {
+ {&(_ZTV7ee27521[4]), 4,15},
+ {&(_tg__ZTV6dd7521__7ee27521[4]), 4,6},
+ {&(_tg__ZTV5cc521__6dd7521__7ee27521[4]), 4,5},
+ {&(_tg__ZTV4bb21__6dd7521__7ee27521[3]), 3,4},
+ {&(_ZTV7ee27521[10]), 10,15},
+ {&(_ZTV7ee27521[14]), 14,15},
+ {&(_tg__ZTV5cc521__7ee27521[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc521__7ee27521[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee27521[];
+extern VTBL_ENTRY _ZTV7ee27521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27521[];
+static VTBL_ENTRY alt_thunk_names727[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75213fooEv,_ZTv0_n12_N6dd75213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75213fooEv,_ZThn20_N6dd75213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee275213fooEv,_ZTv0_n12_N7ee275213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee275213fooEv,_ZThn20_N7ee275213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75213barEv,_ZTv0_n16_N6dd75213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75213barEv,_ZThn12_N6dd75213barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75213barEv,_ZThn12_N6dd75213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27521 = { "ee27521", // class name
+ bases_ee27521, 4,
+ &(vtc_ee27521[0]), // expected_vtbl_contents
+ &(vtt_ee27521[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee27521),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27521),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27521),8, //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 ee37521 : virtual dd7521 {
+ int e;
+ virtual void foo(); // _ZN7ee375213fooEv
+ ~ee37521(); // tgen
+ ee37521(); // tgen
+};
+//SIG(1 ee37521) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37521 ::foo(){vfunc_called(this, "_ZN7ee375213fooEv");}
+ee37521 ::~ee37521(){ note_dtor("ee37521", this);} // tgen
+ee37521 ::ee37521(){ note_ctor("ee37521", this);} // tgen
+
+static void Test_ee37521()
+{
+ extern Class_Descriptor cd_ee37521;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee37521, buf);
+ ee37521 *dp, &lv = *(dp=new (buf) ee37521());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee37521)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37521)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(48,24), "ee37521");
+ check_base_class_offset(lv, (bb21*)(cc521*), ABISELECT(48,24), "ee37521");
+ check_base_class_offset(lv, (cc521*)(dd7521*), ABISELECT(32,16), "ee37521");
+ check_base_class_offset(lv, (dd7521*), ABISELECT(16,8), "ee37521");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37521.e");
+ test_class_info(&lv, &cd_ee37521);
+ dp->~ee37521();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37521(Test_ee37521, "ee37521", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee37521C1Ev();
+extern void _ZN7ee37521D1Ev();
+Name_Map name_map_ee37521[] = {
+ NSPAIR(_ZN7ee37521C1Ev),
+ NSPAIR(_ZN7ee37521D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc521;
+extern VTBL_ENTRY _ZTI5cc521[];
+extern VTBL_ENTRY _ZTV5cc521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc521[];
+extern Class_Descriptor cd_dd7521;
+extern VTBL_ENTRY _ZTI6dd7521[];
+extern VTBL_ENTRY _ZTV6dd7521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7521[];
+static Base_Class bases_ee37521[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb21, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc521, 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_dd7521, 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 _ZTI7ee37521[];
+extern void _ZN7ee375213fooEv();
+extern void _ZN6dd75213barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee375213fooEv,_ZTv0_n24_N7ee375213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee375213fooEv,_ZThn8_N7ee375213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75213barEv,_ZTv0_n16_N6dd75213barEv)();
+extern void ABISELECT(_ZThn16_N6dd75213barEv,_ZThn8_N6dd75213barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee375213fooEv,_ZTv0_n12_N7ee375213fooEv)();
+extern void ABISELECT(_ZThn48_N7ee375213fooEv,_ZThn24_N7ee375213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37521[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37521[0]),
+ (VTBL_ENTRY)&_ZN7ee375213fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37521[0]),
+ (VTBL_ENTRY)&_ZN6dd75213barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee375213fooEv,_ZTv0_n24_N7ee375213fooEv),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75213barEv,_ZTv0_n16_N6dd75213barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee37521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee375213fooEv,_ZTv0_n12_N7ee375213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee37521[];
+extern void _ZN6dd75213barEv();
+extern void _ZN6dd75213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7521__7ee37521[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7521[0]),
+ (VTBL_ENTRY)&_ZN6dd75213barEv,
+ (VTBL_ENTRY)&_ZN6dd75213fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75213barEv,_ZTv0_n16_N6dd75213barEv)();
+extern void ABISELECT(_ZThn16_N6dd75213barEv,_ZThn8_N6dd75213barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc521__6dd7521__7ee37521[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75213barEv,_ZTv0_n16_N6dd75213barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd75213fooEv,_ZTv0_n12_N6dd75213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75213fooEv,_ZThn16_N6dd75213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd7521__7ee37521[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75213fooEv,_ZTv0_n12_N6dd75213fooEv),
+};
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc521__7ee37521[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc521__7ee37521[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee37521[] = {
+ {&(_ZTV7ee37521[5]), 5,23},
+ {&(_ZTV7ee37521[12]), 12,23},
+ {&(_ZTV7ee37521[18]), 18,23},
+ {&(_ZTV7ee37521[22]), 22,23},
+ {&(_tg__ZTV6dd7521__7ee37521[4]), 4,6},
+ {&(_tg__ZTV5cc521__6dd7521__7ee37521[4]), 4,5},
+ {&(_tg__ZTV4bb21__6dd7521__7ee37521[3]), 3,4},
+ {&(_tg__ZTV5cc521__7ee37521[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc521__7ee37521[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee37521[];
+extern VTBL_ENTRY _ZTV7ee37521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37521[];
+static VTBL_ENTRY alt_thunk_names728[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75213fooEv,_ZTv0_n12_N6dd75213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75213fooEv,_ZThn16_N6dd75213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee375213fooEv,_ZTv0_n12_N7ee375213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee375213fooEv,_ZThn24_N7ee375213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75213barEv,_ZTv0_n16_N6dd75213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75213barEv,_ZThn8_N6dd75213barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75213barEv,_ZThn8_N6dd75213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee375213fooEv,_ZTv0_n24_N7ee375213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee375213fooEv,_ZThn8_N7ee375213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37521 = { "ee37521", // class name
+ bases_ee37521, 4,
+ &(vtc_ee37521[0]), // expected_vtbl_contents
+ &(vtt_ee37521[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee37521),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37521),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37521),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names728,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee47521 : dd7521 {
+ int e;
+ virtual void bar(); // _ZN7ee475213barEv
+ ~ee47521(); // tgen
+ ee47521(); // tgen
+};
+//SIG(1 ee47521) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 Fi} v2 Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47521 ::bar(){vfunc_called(this, "_ZN7ee475213barEv");}
+ee47521 ::~ee47521(){ note_dtor("ee47521", this);} // tgen
+ee47521 ::ee47521(){ note_ctor("ee47521", this);} // tgen
+
+static void Test_ee47521()
+{
+ extern Class_Descriptor cd_ee47521;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee47521, buf);
+ ee47521 *dp, &lv = *(dp=new (buf) ee47521());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee47521)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47521)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee47521");
+ check_base_class_offset(lv, (bb21*)(cc521*), ABISELECT(32,20), "ee47521");
+ check_base_class_offset(lv, (cc521*)(dd7521*), ABISELECT(16,12), "ee47521");
+ check_base_class_offset(lv, (dd7521*), 0, "ee47521");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47521.e");
+ test_class_info(&lv, &cd_ee47521);
+ dp->~ee47521();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47521(Test_ee47521, "ee47521", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee47521C1Ev();
+extern void _ZN7ee47521D1Ev();
+Name_Map name_map_ee47521[] = {
+ NSPAIR(_ZN7ee47521C1Ev),
+ NSPAIR(_ZN7ee47521D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc521;
+extern VTBL_ENTRY _ZTI5cc521[];
+extern VTBL_ENTRY _ZTV5cc521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc521[];
+extern Class_Descriptor cd_dd7521;
+extern VTBL_ENTRY _ZTI6dd7521[];
+extern VTBL_ENTRY _ZTV6dd7521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7521[];
+static Base_Class bases_ee47521[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc521, 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_dd7521, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47521[];
+extern void _ZN7ee475213barEv();
+extern void _ZN6dd75213fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee475213barEv,_ZTv0_n16_N7ee475213barEv)();
+extern void ABISELECT(_ZThn16_N7ee475213barEv,_ZThn12_N7ee475213barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd75213fooEv,_ZTv0_n12_N6dd75213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75213fooEv,_ZThn20_N6dd75213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47521[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47521[0]),
+ (VTBL_ENTRY)&_ZN7ee475213barEv,
+ (VTBL_ENTRY)&_ZN6dd75213fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee475213barEv,_ZTv0_n16_N7ee475213barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee47521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75213fooEv,_ZTv0_n12_N6dd75213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee47521[];
+extern void _ZN6dd75213barEv();
+extern void _ZN6dd75213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7521__7ee47521[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7521[0]),
+ (VTBL_ENTRY)&_ZN6dd75213barEv,
+ (VTBL_ENTRY)&_ZN6dd75213fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75213barEv,_ZTv0_n16_N6dd75213barEv)();
+extern void ABISELECT(_ZThn16_N6dd75213barEv,_ZThn12_N6dd75213barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc521__6dd7521__7ee47521[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75213barEv,_ZTv0_n16_N6dd75213barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd75213fooEv,_ZTv0_n12_N6dd75213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75213fooEv,_ZThn20_N6dd75213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd7521__7ee47521[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75213fooEv,_ZTv0_n12_N6dd75213fooEv),
+};
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc521__7ee47521[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc521__7ee47521[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee47521[] = {
+ {&(_ZTV7ee47521[4]), 4,15},
+ {&(_tg__ZTV6dd7521__7ee47521[4]), 4,6},
+ {&(_tg__ZTV5cc521__6dd7521__7ee47521[4]), 4,5},
+ {&(_tg__ZTV4bb21__6dd7521__7ee47521[3]), 3,4},
+ {&(_ZTV7ee47521[10]), 10,15},
+ {&(_ZTV7ee47521[14]), 14,15},
+ {&(_tg__ZTV5cc521__7ee47521[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc521__7ee47521[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee47521[];
+extern VTBL_ENTRY _ZTV7ee47521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47521[];
+static VTBL_ENTRY alt_thunk_names729[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75213barEv,_ZTv0_n16_N6dd75213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75213barEv,_ZThn12_N6dd75213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75213fooEv,_ZTv0_n12_N6dd75213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75213fooEv,_ZThn20_N6dd75213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75213fooEv,_ZThn20_N6dd75213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee475213barEv,_ZTv0_n16_N7ee475213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee475213barEv,_ZThn12_N7ee475213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47521 = { "ee47521", // class name
+ bases_ee47521, 4,
+ &(vtc_ee47521[0]), // expected_vtbl_contents
+ &(vtt_ee47521[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee47521),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47521),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47521),8, //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 ee57521 : virtual dd7521 {
+ int e;
+ virtual void bar(); // _ZN7ee575213barEv
+ ~ee57521(); // tgen
+ ee57521(); // tgen
+};
+//SIG(1 ee57521) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 Fi} v2 Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57521 ::bar(){vfunc_called(this, "_ZN7ee575213barEv");}
+ee57521 ::~ee57521(){ note_dtor("ee57521", this);} // tgen
+ee57521 ::ee57521(){ note_ctor("ee57521", this);} // tgen
+
+static void Test_ee57521()
+{
+ extern Class_Descriptor cd_ee57521;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee57521, buf);
+ ee57521 *dp, &lv = *(dp=new (buf) ee57521());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee57521)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57521)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(48,24), "ee57521");
+ check_base_class_offset(lv, (bb21*)(cc521*), ABISELECT(48,24), "ee57521");
+ check_base_class_offset(lv, (cc521*)(dd7521*), ABISELECT(32,16), "ee57521");
+ check_base_class_offset(lv, (dd7521*), ABISELECT(16,8), "ee57521");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57521.e");
+ test_class_info(&lv, &cd_ee57521);
+ dp->~ee57521();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57521(Test_ee57521, "ee57521", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee57521C1Ev();
+extern void _ZN7ee57521D1Ev();
+Name_Map name_map_ee57521[] = {
+ NSPAIR(_ZN7ee57521C1Ev),
+ NSPAIR(_ZN7ee57521D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc521;
+extern VTBL_ENTRY _ZTI5cc521[];
+extern VTBL_ENTRY _ZTV5cc521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc521[];
+extern Class_Descriptor cd_dd7521;
+extern VTBL_ENTRY _ZTI6dd7521[];
+extern VTBL_ENTRY _ZTV6dd7521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7521[];
+static Base_Class bases_ee57521[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb21, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc521, 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_dd7521, 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 _ZTI7ee57521[];
+extern void _ZN7ee575213barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee575213barEv,_ZTv0_n20_N7ee575213barEv)();
+extern void ABISELECT(_ZThn16_N7ee575213barEv,_ZThn8_N7ee575213barEv)() __attribute__((weak));
+extern void _ZN6dd75213fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee575213barEv,_ZTv0_n16_N7ee575213barEv)();
+extern void ABISELECT(_ZThn32_N7ee575213barEv,_ZThn16_N7ee575213barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd75213fooEv,_ZTv0_n12_N6dd75213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75213fooEv,_ZThn16_N6dd75213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57521[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57521[0]),
+ (VTBL_ENTRY)&_ZN7ee575213barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee575213barEv,_ZTv0_n20_N7ee575213barEv),
+ (VTBL_ENTRY)&_ZN6dd75213fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee575213barEv,_ZTv0_n16_N7ee575213barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee57521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75213fooEv,_ZTv0_n12_N6dd75213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee57521[];
+extern void _ZN6dd75213barEv();
+extern void _ZN6dd75213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7521__7ee57521[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7521[0]),
+ (VTBL_ENTRY)&_ZN6dd75213barEv,
+ (VTBL_ENTRY)&_ZN6dd75213fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75213barEv,_ZTv0_n16_N6dd75213barEv)();
+extern void ABISELECT(_ZThn16_N6dd75213barEv,_ZThn8_N6dd75213barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc521__6dd7521__7ee57521[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75213barEv,_ZTv0_n16_N6dd75213barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd75213fooEv,_ZTv0_n12_N6dd75213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75213fooEv,_ZThn16_N6dd75213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd7521__7ee57521[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75213fooEv,_ZTv0_n12_N6dd75213fooEv),
+};
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc521__7ee57521[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc521__7ee57521[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee57521[] = {
+ {&(_ZTV7ee57521[5]), 5,23},
+ {&(_ZTV7ee57521[12]), 12,23},
+ {&(_ZTV7ee57521[18]), 18,23},
+ {&(_ZTV7ee57521[22]), 22,23},
+ {&(_tg__ZTV6dd7521__7ee57521[4]), 4,6},
+ {&(_tg__ZTV5cc521__6dd7521__7ee57521[4]), 4,5},
+ {&(_tg__ZTV4bb21__6dd7521__7ee57521[3]), 3,4},
+ {&(_tg__ZTV5cc521__7ee57521[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc521__7ee57521[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee57521[];
+extern VTBL_ENTRY _ZTV7ee57521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57521[];
+static VTBL_ENTRY alt_thunk_names730[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75213barEv,_ZTv0_n16_N6dd75213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75213barEv,_ZThn8_N6dd75213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75213fooEv,_ZTv0_n12_N6dd75213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75213fooEv,_ZThn16_N6dd75213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75213fooEv,_ZThn16_N6dd75213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee575213barEv,_ZTv0_n16_N7ee575213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee575213barEv,_ZThn16_N7ee575213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee575213barEv,_ZTv0_n20_N7ee575213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee575213barEv,_ZThn8_N7ee575213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57521 = { "ee57521", // class name
+ bases_ee57521, 4,
+ &(vtc_ee57521[0]), // expected_vtbl_contents
+ &(vtt_ee57521[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee57521),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57521),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57521),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names730,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee67521 : dd7521 {
+ int e;
+ virtual void foo(); // _ZN7ee675213fooEv
+ virtual void bar(); // _ZN7ee675213barEv
+ ~ee67521(); // tgen
+ ee67521(); // tgen
+};
+//SIG(1 ee67521) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67521 ::foo(){vfunc_called(this, "_ZN7ee675213fooEv");}
+void ee67521 ::bar(){vfunc_called(this, "_ZN7ee675213barEv");}
+ee67521 ::~ee67521(){ note_dtor("ee67521", this);} // tgen
+ee67521 ::ee67521(){ note_ctor("ee67521", this);} // tgen
+
+static void Test_ee67521()
+{
+ extern Class_Descriptor cd_ee67521;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee67521, buf);
+ ee67521 *dp, &lv = *(dp=new (buf) ee67521());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee67521)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67521)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee67521");
+ check_base_class_offset(lv, (bb21*)(cc521*), ABISELECT(32,20), "ee67521");
+ check_base_class_offset(lv, (cc521*)(dd7521*), ABISELECT(16,12), "ee67521");
+ check_base_class_offset(lv, (dd7521*), 0, "ee67521");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67521.e");
+ test_class_info(&lv, &cd_ee67521);
+ dp->~ee67521();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67521(Test_ee67521, "ee67521", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee67521C1Ev();
+extern void _ZN7ee67521D1Ev();
+Name_Map name_map_ee67521[] = {
+ NSPAIR(_ZN7ee67521C1Ev),
+ NSPAIR(_ZN7ee67521D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc521;
+extern VTBL_ENTRY _ZTI5cc521[];
+extern VTBL_ENTRY _ZTV5cc521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc521[];
+extern Class_Descriptor cd_dd7521;
+extern VTBL_ENTRY _ZTI6dd7521[];
+extern VTBL_ENTRY _ZTV6dd7521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7521[];
+static Base_Class bases_ee67521[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc521, 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_dd7521, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67521[];
+extern void _ZN7ee675213barEv();
+extern void _ZN7ee675213fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee675213barEv,_ZTv0_n16_N7ee675213barEv)();
+extern void ABISELECT(_ZThn16_N7ee675213barEv,_ZThn12_N7ee675213barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee675213fooEv,_ZTv0_n12_N7ee675213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee675213fooEv,_ZThn20_N7ee675213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67521[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67521[0]),
+ (VTBL_ENTRY)&_ZN7ee675213barEv,
+ (VTBL_ENTRY)&_ZN7ee675213fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee675213barEv,_ZTv0_n16_N7ee675213barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee67521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee675213fooEv,_ZTv0_n12_N7ee675213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee67521[];
+extern void _ZN6dd75213barEv();
+extern void _ZN6dd75213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7521__7ee67521[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7521[0]),
+ (VTBL_ENTRY)&_ZN6dd75213barEv,
+ (VTBL_ENTRY)&_ZN6dd75213fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75213barEv,_ZTv0_n16_N6dd75213barEv)();
+extern void ABISELECT(_ZThn16_N6dd75213barEv,_ZThn12_N6dd75213barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc521__6dd7521__7ee67521[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75213barEv,_ZTv0_n16_N6dd75213barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd75213fooEv,_ZTv0_n12_N6dd75213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75213fooEv,_ZThn20_N6dd75213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd7521__7ee67521[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75213fooEv,_ZTv0_n12_N6dd75213fooEv),
+};
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc521__7ee67521[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc521__7ee67521[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee67521[] = {
+ {&(_ZTV7ee67521[4]), 4,15},
+ {&(_tg__ZTV6dd7521__7ee67521[4]), 4,6},
+ {&(_tg__ZTV5cc521__6dd7521__7ee67521[4]), 4,5},
+ {&(_tg__ZTV4bb21__6dd7521__7ee67521[3]), 3,4},
+ {&(_ZTV7ee67521[10]), 10,15},
+ {&(_ZTV7ee67521[14]), 14,15},
+ {&(_tg__ZTV5cc521__7ee67521[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc521__7ee67521[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee67521[];
+extern VTBL_ENTRY _ZTV7ee67521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67521[];
+static VTBL_ENTRY alt_thunk_names731[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75213fooEv,_ZTv0_n12_N6dd75213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75213fooEv,_ZThn20_N6dd75213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75213barEv,_ZTv0_n16_N6dd75213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75213barEv,_ZThn12_N6dd75213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee675213fooEv,_ZTv0_n12_N7ee675213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee675213fooEv,_ZThn20_N7ee675213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee675213barEv,_ZTv0_n16_N7ee675213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee675213barEv,_ZThn12_N7ee675213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67521 = { "ee67521", // class name
+ bases_ee67521, 4,
+ &(vtc_ee67521[0]), // expected_vtbl_contents
+ &(vtt_ee67521[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee67521),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67521),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67521),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names731,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee77521 : virtual dd7521 {
+ int e;
+ virtual void foo(); // _ZN7ee775213fooEv
+ virtual void bar(); // _ZN7ee775213barEv
+ ~ee77521(); // tgen
+ ee77521(); // tgen
+};
+//SIG(1 ee77521) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77521 ::foo(){vfunc_called(this, "_ZN7ee775213fooEv");}
+void ee77521 ::bar(){vfunc_called(this, "_ZN7ee775213barEv");}
+ee77521 ::~ee77521(){ note_dtor("ee77521", this);} // tgen
+ee77521 ::ee77521(){ note_ctor("ee77521", this);} // tgen
+
+static void Test_ee77521()
+{
+ extern Class_Descriptor cd_ee77521;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee77521, buf);
+ ee77521 *dp, &lv = *(dp=new (buf) ee77521());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee77521)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77521)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(48,24), "ee77521");
+ check_base_class_offset(lv, (bb21*)(cc521*), ABISELECT(48,24), "ee77521");
+ check_base_class_offset(lv, (cc521*)(dd7521*), ABISELECT(32,16), "ee77521");
+ check_base_class_offset(lv, (dd7521*), ABISELECT(16,8), "ee77521");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77521.e");
+ test_class_info(&lv, &cd_ee77521);
+ dp->~ee77521();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77521(Test_ee77521, "ee77521", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee77521C1Ev();
+extern void _ZN7ee77521D1Ev();
+Name_Map name_map_ee77521[] = {
+ NSPAIR(_ZN7ee77521C1Ev),
+ NSPAIR(_ZN7ee77521D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc521;
+extern VTBL_ENTRY _ZTI5cc521[];
+extern VTBL_ENTRY _ZTV5cc521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc521[];
+extern Class_Descriptor cd_dd7521;
+extern VTBL_ENTRY _ZTI6dd7521[];
+extern VTBL_ENTRY _ZTV6dd7521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7521[];
+static Base_Class bases_ee77521[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb21, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc521, 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_dd7521, 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 _ZTI7ee77521[];
+extern void _ZN7ee775213fooEv();
+extern void _ZN7ee775213barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee775213barEv,_ZTv0_n20_N7ee775213barEv)();
+extern void ABISELECT(_ZThn16_N7ee775213barEv,_ZThn8_N7ee775213barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee775213fooEv,_ZTv0_n24_N7ee775213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee775213fooEv,_ZThn8_N7ee775213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee775213barEv,_ZTv0_n16_N7ee775213barEv)();
+extern void ABISELECT(_ZThn32_N7ee775213barEv,_ZThn16_N7ee775213barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee775213fooEv,_ZTv0_n12_N7ee775213fooEv)();
+extern void ABISELECT(_ZThn48_N7ee775213fooEv,_ZThn24_N7ee775213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77521[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77521[0]),
+ (VTBL_ENTRY)&_ZN7ee775213fooEv,
+ (VTBL_ENTRY)&_ZN7ee775213barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee775213barEv,_ZTv0_n20_N7ee775213barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee775213fooEv,_ZTv0_n24_N7ee775213fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee775213barEv,_ZTv0_n16_N7ee775213barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee77521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee775213fooEv,_ZTv0_n12_N7ee775213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee77521[];
+extern void _ZN6dd75213barEv();
+extern void _ZN6dd75213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7521__7ee77521[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7521[0]),
+ (VTBL_ENTRY)&_ZN6dd75213barEv,
+ (VTBL_ENTRY)&_ZN6dd75213fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75213barEv,_ZTv0_n16_N6dd75213barEv)();
+extern void ABISELECT(_ZThn16_N6dd75213barEv,_ZThn8_N6dd75213barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc521__6dd7521__7ee77521[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75213barEv,_ZTv0_n16_N6dd75213barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd75213fooEv,_ZTv0_n12_N6dd75213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75213fooEv,_ZThn16_N6dd75213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd7521__7ee77521[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7521[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75213fooEv,_ZTv0_n12_N6dd75213fooEv),
+};
+extern void _ZN5cc5213barEv();
+static VTBL_ENTRY _tg__ZTV5cc521__7ee77521[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN5cc5213barEv,
+};
+extern void _ZN4bb213fooEv();
+static VTBL_ENTRY _tg__ZTV4bb21__5cc521__7ee77521[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc521[0]),
+ (VTBL_ENTRY)&_ZN4bb213fooEv,
+};
+static VTT_ENTRY vtt_ee77521[] = {
+ {&(_ZTV7ee77521[5]), 5,24},
+ {&(_ZTV7ee77521[13]), 13,24},
+ {&(_ZTV7ee77521[19]), 19,24},
+ {&(_ZTV7ee77521[23]), 23,24},
+ {&(_tg__ZTV6dd7521__7ee77521[4]), 4,6},
+ {&(_tg__ZTV5cc521__6dd7521__7ee77521[4]), 4,5},
+ {&(_tg__ZTV4bb21__6dd7521__7ee77521[3]), 3,4},
+ {&(_tg__ZTV5cc521__7ee77521[3]), 3,4},
+ {&(_tg__ZTV4bb21__5cc521__7ee77521[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee77521[];
+extern VTBL_ENTRY _ZTV7ee77521[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77521[];
+static VTBL_ENTRY alt_thunk_names732[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75213fooEv,_ZTv0_n12_N6dd75213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75213fooEv,_ZThn16_N6dd75213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75213barEv,_ZTv0_n16_N6dd75213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75213barEv,_ZThn8_N6dd75213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee775213fooEv,_ZTv0_n12_N7ee775213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee775213fooEv,_ZThn24_N7ee775213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee775213barEv,_ZTv0_n16_N7ee775213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee775213barEv,_ZThn16_N7ee775213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee775213fooEv,_ZTv0_n24_N7ee775213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee775213fooEv,_ZThn8_N7ee775213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee775213barEv,_ZTv0_n20_N7ee775213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee775213barEv,_ZThn8_N7ee775213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77521 = { "ee77521", // class name
+ bases_ee77521, 4,
+ &(vtc_ee77521[0]), // expected_vtbl_contents
+ &(vtt_ee77521[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee77521),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77521),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77521),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names732,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc621 : bb21 {
+ int c;
+ virtual void foo(); // _ZN5cc6213fooEv
+ virtual void bar(); // _ZN5cc6213barEv
+ ~cc621(); // tgen
+ cc621(); // tgen
+};
+//SIG(-1 cc621) C1{ BC2{ BC3{ v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void cc621 ::foo(){vfunc_called(this, "_ZN5cc6213fooEv");}
+void cc621 ::bar(){vfunc_called(this, "_ZN5cc6213barEv");}
+cc621 ::~cc621(){ note_dtor("cc621", this);} // tgen
+cc621 ::cc621(){ note_ctor("cc621", this);} // tgen
+
+static void Test_cc621()
+{
+ extern Class_Descriptor cd_cc621;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,5)];
+ init_test(&cd_cc621, buf);
+ cc621 *dp, &lv = *(dp=new (buf) cc621());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,16), "sizeof(cc621)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc621)");
+ check_base_class_offset(lv, (aa1*)(bb21*), 0, "cc621");
+ check_base_class_offset(lv, (bb21*), 0, "cc621");
+ check_field_offset(lv, c, ABISELECT(16,12), "cc621.c");
+ test_class_info(&lv, &cd_cc621);
+ dp->~cc621();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc621(Test_cc621, "cc621", ABISELECT(24,16));
+
+#else // __cplusplus
+
+extern void _ZN5cc621C1Ev();
+extern void _ZN5cc621D1Ev();
+Name_Map name_map_cc621[] = {
+ NSPAIR(_ZN5cc621C1Ev),
+ NSPAIR(_ZN5cc621D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+static Base_Class bases_cc621[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI5cc621[];
+extern void _ZN5cc6213fooEv();
+extern void _ZN5cc6213barEv();
+static VTBL_ENTRY vtc_cc621[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc621[0]),
+ (VTBL_ENTRY)&_ZN5cc6213fooEv,
+ (VTBL_ENTRY)&_ZN5cc6213barEv,
+};
+extern VTBL_ENTRY _ZTI5cc621[];
+extern VTBL_ENTRY _ZTV5cc621[];
+Class_Descriptor cd_cc621 = { "cc621", // class name
+ bases_cc621, 2,
+ &(vtc_cc621[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,16), // object size
+ NSPAIRA(_ZTI5cc621),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV5cc621),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 dd0621 : cc621 {
+ int d;
+ ~dd0621(); // tgen
+ dd0621(); // tgen
+};
+//SIG(-1 dd0621) C1{ BC2{ BC3{ BC4{ v1 Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+dd0621 ::~dd0621(){ note_dtor("dd0621", this);} // tgen
+dd0621 ::dd0621(){ note_ctor("dd0621", this);} // tgen
+
+static void Test_dd0621()
+{
+ extern Class_Descriptor cd_dd0621;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd0621, buf);
+ dd0621 *dp, &lv = *(dp=new (buf) dd0621());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd0621)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0621)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc621*), 0, "dd0621");
+ check_base_class_offset(lv, (bb21*)(cc621*), 0, "dd0621");
+ check_base_class_offset(lv, (cc621*), 0, "dd0621");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd0621.d");
+ test_class_info(&lv, &cd_dd0621);
+ dp->~dd0621();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0621(Test_dd0621, "dd0621", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd0621C1Ev();
+extern void _ZN6dd0621D1Ev();
+Name_Map name_map_dd0621[] = {
+ NSPAIR(_ZN6dd0621C1Ev),
+ NSPAIR(_ZN6dd0621D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc621;
+extern VTBL_ENTRY _ZTI5cc621[];
+extern VTBL_ENTRY _ZTV5cc621[];
+static Base_Class bases_dd0621[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc621, 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 _ZTI6dd0621[];
+extern void _ZN5cc6213fooEv();
+extern void _ZN5cc6213barEv();
+static VTBL_ENTRY vtc_dd0621[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0621[0]),
+ (VTBL_ENTRY)&_ZN5cc6213fooEv,
+ (VTBL_ENTRY)&_ZN5cc6213barEv,
+};
+extern VTBL_ENTRY _ZTI6dd0621[];
+extern VTBL_ENTRY _ZTV6dd0621[];
+Class_Descriptor cd_dd0621 = { "dd0621", // class name
+ bases_dd0621, 3,
+ &(vtc_dd0621[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd0621),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0621),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 ee00621 : dd0621 {
+ int e;
+ ~ee00621(); // tgen
+ ee00621(); // tgen
+};
+//SIG(1 ee00621) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} v1 Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee00621 ::~ee00621(){ note_dtor("ee00621", this);} // tgen
+ee00621 ::ee00621(){ note_ctor("ee00621", this);} // tgen
+
+static void Test_ee00621()
+{
+ extern Class_Descriptor cd_ee00621;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee00621, buf);
+ ee00621 *dp, &lv = *(dp=new (buf) ee00621());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee00621)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00621)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc621*)(dd0621*), 0, "ee00621");
+ check_base_class_offset(lv, (bb21*)(cc621*)(dd0621*), 0, "ee00621");
+ check_base_class_offset(lv, (cc621*)(dd0621*), 0, "ee00621");
+ check_base_class_offset(lv, (dd0621*), 0, "ee00621");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee00621.e");
+ test_class_info(&lv, &cd_ee00621);
+ dp->~ee00621();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00621(Test_ee00621, "ee00621", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee00621C1Ev();
+extern void _ZN7ee00621D1Ev();
+Name_Map name_map_ee00621[] = {
+ NSPAIR(_ZN7ee00621C1Ev),
+ NSPAIR(_ZN7ee00621D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc621;
+extern VTBL_ENTRY _ZTI5cc621[];
+extern VTBL_ENTRY _ZTV5cc621[];
+extern Class_Descriptor cd_dd0621;
+extern VTBL_ENTRY _ZTI6dd0621[];
+extern VTBL_ENTRY _ZTV6dd0621[];
+static Base_Class bases_ee00621[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc621, 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_dd0621, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee00621[];
+extern void _ZN5cc6213fooEv();
+extern void _ZN5cc6213barEv();
+static VTBL_ENTRY vtc_ee00621[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00621[0]),
+ (VTBL_ENTRY)&_ZN5cc6213fooEv,
+ (VTBL_ENTRY)&_ZN5cc6213barEv,
+};
+extern VTBL_ENTRY _ZTI7ee00621[];
+extern VTBL_ENTRY _ZTV7ee00621[];
+Class_Descriptor cd_ee00621 = { "ee00621", // class name
+ bases_ee00621, 4,
+ &(vtc_ee00621[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee00621),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00621),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 ee10621 : virtual dd0621 {
+ int e;
+ ~ee10621(); // tgen
+ ee10621(); // tgen
+};
+//SIG(1 ee10621) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} v1 Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee10621 ::~ee10621(){ note_dtor("ee10621", this);} // tgen
+ee10621 ::ee10621(){ note_ctor("ee10621", this);} // tgen
+
+static void Test_ee10621()
+{
+ extern Class_Descriptor cd_ee10621;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee10621, buf);
+ ee10621 *dp, &lv = *(dp=new (buf) ee10621());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee10621)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10621)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc621*)(dd0621*), ABISELECT(16,8), "ee10621");
+ check_base_class_offset(lv, (bb21*)(cc621*)(dd0621*), ABISELECT(16,8), "ee10621");
+ check_base_class_offset(lv, (cc621*)(dd0621*), ABISELECT(16,8), "ee10621");
+ check_base_class_offset(lv, (dd0621*), ABISELECT(16,8), "ee10621");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10621.e");
+ test_class_info(&lv, &cd_ee10621);
+ dp->~ee10621();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10621(Test_ee10621, "ee10621", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee10621C1Ev();
+extern void _ZN7ee10621D1Ev();
+Name_Map name_map_ee10621[] = {
+ NSPAIR(_ZN7ee10621C1Ev),
+ NSPAIR(_ZN7ee10621D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc621;
+extern VTBL_ENTRY _ZTI5cc621[];
+extern VTBL_ENTRY _ZTV5cc621[];
+extern Class_Descriptor cd_dd0621;
+extern VTBL_ENTRY _ZTI6dd0621[];
+extern VTBL_ENTRY _ZTV6dd0621[];
+static Base_Class bases_ee10621[] = {
+ // 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_bb21, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc621, 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_dd0621, 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 _ZTI7ee10621[];
+extern void _ZN5cc6213fooEv();
+extern void _ZN5cc6213barEv();
+static VTBL_ENTRY vtc_ee10621[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10621[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10621[0]),
+ (VTBL_ENTRY)&_ZN5cc6213fooEv,
+ (VTBL_ENTRY)&_ZN5cc6213barEv,
+};
+extern VTBL_ENTRY _ZTV7ee10621[];
+static VTT_ENTRY vtt_ee10621[] = {
+ {&(_ZTV7ee10621[3]), 3,9},
+ {&(_ZTV7ee10621[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee10621[];
+extern VTBL_ENTRY _ZTV7ee10621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10621[];
+Class_Descriptor cd_ee10621 = { "ee10621", // class name
+ bases_ee10621, 4,
+ &(vtc_ee10621[0]), // expected_vtbl_contents
+ &(vtt_ee10621[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee10621),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10621),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10621),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 ee20621 : dd0621 {
+ int e;
+ virtual void foo(); // _ZN7ee206213fooEv
+ ~ee20621(); // tgen
+ ee20621(); // tgen
+};
+//SIG(1 ee20621) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} v1 Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee20621 ::foo(){vfunc_called(this, "_ZN7ee206213fooEv");}
+ee20621 ::~ee20621(){ note_dtor("ee20621", this);} // tgen
+ee20621 ::ee20621(){ note_ctor("ee20621", this);} // tgen
+
+static void Test_ee20621()
+{
+ extern Class_Descriptor cd_ee20621;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee20621, buf);
+ ee20621 *dp, &lv = *(dp=new (buf) ee20621());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee20621)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20621)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc621*)(dd0621*), 0, "ee20621");
+ check_base_class_offset(lv, (bb21*)(cc621*)(dd0621*), 0, "ee20621");
+ check_base_class_offset(lv, (cc621*)(dd0621*), 0, "ee20621");
+ check_base_class_offset(lv, (dd0621*), 0, "ee20621");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee20621.e");
+ test_class_info(&lv, &cd_ee20621);
+ dp->~ee20621();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20621(Test_ee20621, "ee20621", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee20621C1Ev();
+extern void _ZN7ee20621D1Ev();
+Name_Map name_map_ee20621[] = {
+ NSPAIR(_ZN7ee20621C1Ev),
+ NSPAIR(_ZN7ee20621D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc621;
+extern VTBL_ENTRY _ZTI5cc621[];
+extern VTBL_ENTRY _ZTV5cc621[];
+extern Class_Descriptor cd_dd0621;
+extern VTBL_ENTRY _ZTI6dd0621[];
+extern VTBL_ENTRY _ZTV6dd0621[];
+static Base_Class bases_ee20621[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc621, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd0621, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee20621[];
+extern void _ZN7ee206213fooEv();
+extern void _ZN5cc6213barEv();
+static VTBL_ENTRY vtc_ee20621[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20621[0]),
+ (VTBL_ENTRY)&_ZN7ee206213fooEv,
+ (VTBL_ENTRY)&_ZN5cc6213barEv,
+};
+extern VTBL_ENTRY _ZTI7ee20621[];
+extern VTBL_ENTRY _ZTV7ee20621[];
+Class_Descriptor cd_ee20621 = { "ee20621", // class name
+ bases_ee20621, 4,
+ &(vtc_ee20621[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee20621),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20621),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 ee30621 : virtual dd0621 {
+ int e;
+ virtual void foo(); // _ZN7ee306213fooEv
+ ~ee30621(); // tgen
+ ee30621(); // tgen
+};
+//SIG(1 ee30621) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} v1 Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee30621 ::foo(){vfunc_called(this, "_ZN7ee306213fooEv");}
+ee30621 ::~ee30621(){ note_dtor("ee30621", this);} // tgen
+ee30621 ::ee30621(){ note_ctor("ee30621", this);} // tgen
+
+static void Test_ee30621()
+{
+ extern Class_Descriptor cd_ee30621;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee30621, buf);
+ ee30621 *dp, &lv = *(dp=new (buf) ee30621());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee30621)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30621)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc621*)(dd0621*), ABISELECT(16,8), "ee30621");
+ check_base_class_offset(lv, (bb21*)(cc621*)(dd0621*), ABISELECT(16,8), "ee30621");
+ check_base_class_offset(lv, (cc621*)(dd0621*), ABISELECT(16,8), "ee30621");
+ check_base_class_offset(lv, (dd0621*), ABISELECT(16,8), "ee30621");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30621.e");
+ test_class_info(&lv, &cd_ee30621);
+ dp->~ee30621();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30621(Test_ee30621, "ee30621", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee30621C1Ev();
+extern void _ZN7ee30621D1Ev();
+Name_Map name_map_ee30621[] = {
+ NSPAIR(_ZN7ee30621C1Ev),
+ NSPAIR(_ZN7ee30621D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc621;
+extern VTBL_ENTRY _ZTI5cc621[];
+extern VTBL_ENTRY _ZTV5cc621[];
+extern Class_Descriptor cd_dd0621;
+extern VTBL_ENTRY _ZTI6dd0621[];
+extern VTBL_ENTRY _ZTV6dd0621[];
+static Base_Class bases_ee30621[] = {
+ // 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_bb21, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc621, 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_dd0621, 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 _ZTI7ee30621[];
+extern void _ZN7ee306213fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee306213fooEv,_ZTv0_n12_N7ee306213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee306213fooEv,_ZThn8_N7ee306213fooEv)() __attribute__((weak));
+extern void _ZN5cc6213barEv();
+static VTBL_ENTRY vtc_ee30621[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30621[0]),
+ (VTBL_ENTRY)&_ZN7ee306213fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30621[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee306213fooEv,_ZTv0_n12_N7ee306213fooEv),
+ (VTBL_ENTRY)&_ZN5cc6213barEv,
+};
+extern VTBL_ENTRY _ZTV7ee30621[];
+static VTT_ENTRY vtt_ee30621[] = {
+ {&(_ZTV7ee30621[3]), 3,10},
+ {&(_ZTV7ee30621[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee30621[];
+extern VTBL_ENTRY _ZTV7ee30621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30621[];
+static VTBL_ENTRY alt_thunk_names733[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee306213fooEv,_ZTv0_n12_N7ee306213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee306213fooEv,_ZThn8_N7ee306213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30621 = { "ee30621", // class name
+ bases_ee30621, 4,
+ &(vtc_ee30621[0]), // expected_vtbl_contents
+ &(vtt_ee30621[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee30621),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30621),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30621),2, //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 ee40621 : dd0621 {
+ int e;
+ virtual void bar(); // _ZN7ee406213barEv
+ ~ee40621(); // tgen
+ ee40621(); // tgen
+};
+//SIG(1 ee40621) C1{ BC2{ BC3{ BC4{ BC5{ v2 Fi} v2 Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee40621 ::bar(){vfunc_called(this, "_ZN7ee406213barEv");}
+ee40621 ::~ee40621(){ note_dtor("ee40621", this);} // tgen
+ee40621 ::ee40621(){ note_ctor("ee40621", this);} // tgen
+
+static void Test_ee40621()
+{
+ extern Class_Descriptor cd_ee40621;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee40621, buf);
+ ee40621 *dp, &lv = *(dp=new (buf) ee40621());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee40621)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40621)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc621*)(dd0621*), 0, "ee40621");
+ check_base_class_offset(lv, (bb21*)(cc621*)(dd0621*), 0, "ee40621");
+ check_base_class_offset(lv, (cc621*)(dd0621*), 0, "ee40621");
+ check_base_class_offset(lv, (dd0621*), 0, "ee40621");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee40621.e");
+ test_class_info(&lv, &cd_ee40621);
+ dp->~ee40621();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40621(Test_ee40621, "ee40621", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee40621C1Ev();
+extern void _ZN7ee40621D1Ev();
+Name_Map name_map_ee40621[] = {
+ NSPAIR(_ZN7ee40621C1Ev),
+ NSPAIR(_ZN7ee40621D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc621;
+extern VTBL_ENTRY _ZTI5cc621[];
+extern VTBL_ENTRY _ZTV5cc621[];
+extern Class_Descriptor cd_dd0621;
+extern VTBL_ENTRY _ZTI6dd0621[];
+extern VTBL_ENTRY _ZTV6dd0621[];
+static Base_Class bases_ee40621[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc621, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd0621, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee40621[];
+extern void _ZN5cc6213fooEv();
+extern void _ZN7ee406213barEv();
+static VTBL_ENTRY vtc_ee40621[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40621[0]),
+ (VTBL_ENTRY)&_ZN5cc6213fooEv,
+ (VTBL_ENTRY)&_ZN7ee406213barEv,
+};
+extern VTBL_ENTRY _ZTI7ee40621[];
+extern VTBL_ENTRY _ZTV7ee40621[];
+Class_Descriptor cd_ee40621 = { "ee40621", // class name
+ bases_ee40621, 4,
+ &(vtc_ee40621[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee40621),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40621),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 ee50621 : virtual dd0621 {
+ int e;
+ virtual void bar(); // _ZN7ee506213barEv
+ ~ee50621(); // tgen
+ ee50621(); // tgen
+};
+//SIG(1 ee50621) C1{ VBC2{ BC3{ BC4{ BC5{ v2 Fi} v2 Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee50621 ::bar(){vfunc_called(this, "_ZN7ee506213barEv");}
+ee50621 ::~ee50621(){ note_dtor("ee50621", this);} // tgen
+ee50621 ::ee50621(){ note_ctor("ee50621", this);} // tgen
+
+static void Test_ee50621()
+{
+ extern Class_Descriptor cd_ee50621;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee50621, buf);
+ ee50621 *dp, &lv = *(dp=new (buf) ee50621());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee50621)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50621)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc621*)(dd0621*), ABISELECT(16,8), "ee50621");
+ check_base_class_offset(lv, (bb21*)(cc621*)(dd0621*), ABISELECT(16,8), "ee50621");
+ check_base_class_offset(lv, (cc621*)(dd0621*), ABISELECT(16,8), "ee50621");
+ check_base_class_offset(lv, (dd0621*), ABISELECT(16,8), "ee50621");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50621.e");
+ test_class_info(&lv, &cd_ee50621);
+ dp->~ee50621();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50621(Test_ee50621, "ee50621", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee50621C1Ev();
+extern void _ZN7ee50621D1Ev();
+Name_Map name_map_ee50621[] = {
+ NSPAIR(_ZN7ee50621C1Ev),
+ NSPAIR(_ZN7ee50621D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc621;
+extern VTBL_ENTRY _ZTI5cc621[];
+extern VTBL_ENTRY _ZTV5cc621[];
+extern Class_Descriptor cd_dd0621;
+extern VTBL_ENTRY _ZTI6dd0621[];
+extern VTBL_ENTRY _ZTV6dd0621[];
+static Base_Class bases_ee50621[] = {
+ // 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_bb21, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc621, 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_dd0621, 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 _ZTI7ee50621[];
+extern void _ZN7ee506213barEv();
+extern void _ZN5cc6213fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee506213barEv,_ZTv0_n16_N7ee506213barEv)();
+extern void ABISELECT(_ZThn16_N7ee506213barEv,_ZThn8_N7ee506213barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee50621[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50621[0]),
+ (VTBL_ENTRY)&_ZN7ee506213barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50621[0]),
+ (VTBL_ENTRY)&_ZN5cc6213fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee506213barEv,_ZTv0_n16_N7ee506213barEv),
+};
+extern VTBL_ENTRY _ZTV7ee50621[];
+static VTT_ENTRY vtt_ee50621[] = {
+ {&(_ZTV7ee50621[3]), 3,10},
+ {&(_ZTV7ee50621[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee50621[];
+extern VTBL_ENTRY _ZTV7ee50621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50621[];
+static VTBL_ENTRY alt_thunk_names734[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee506213barEv,_ZTv0_n16_N7ee506213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee506213barEv,_ZThn8_N7ee506213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50621 = { "ee50621", // class name
+ bases_ee50621, 4,
+ &(vtc_ee50621[0]), // expected_vtbl_contents
+ &(vtt_ee50621[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee50621),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50621),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50621),2, //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 ee60621 : dd0621 {
+ int e;
+ virtual void foo(); // _ZN7ee606213fooEv
+ virtual void bar(); // _ZN7ee606213barEv
+ ~ee60621(); // tgen
+ ee60621(); // tgen
+};
+//SIG(1 ee60621) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} v1 Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee60621 ::foo(){vfunc_called(this, "_ZN7ee606213fooEv");}
+void ee60621 ::bar(){vfunc_called(this, "_ZN7ee606213barEv");}
+ee60621 ::~ee60621(){ note_dtor("ee60621", this);} // tgen
+ee60621 ::ee60621(){ note_ctor("ee60621", this);} // tgen
+
+static void Test_ee60621()
+{
+ extern Class_Descriptor cd_ee60621;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee60621, buf);
+ ee60621 *dp, &lv = *(dp=new (buf) ee60621());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee60621)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60621)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc621*)(dd0621*), 0, "ee60621");
+ check_base_class_offset(lv, (bb21*)(cc621*)(dd0621*), 0, "ee60621");
+ check_base_class_offset(lv, (cc621*)(dd0621*), 0, "ee60621");
+ check_base_class_offset(lv, (dd0621*), 0, "ee60621");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee60621.e");
+ test_class_info(&lv, &cd_ee60621);
+ dp->~ee60621();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60621(Test_ee60621, "ee60621", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee60621C1Ev();
+extern void _ZN7ee60621D1Ev();
+Name_Map name_map_ee60621[] = {
+ NSPAIR(_ZN7ee60621C1Ev),
+ NSPAIR(_ZN7ee60621D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc621;
+extern VTBL_ENTRY _ZTI5cc621[];
+extern VTBL_ENTRY _ZTV5cc621[];
+extern Class_Descriptor cd_dd0621;
+extern VTBL_ENTRY _ZTI6dd0621[];
+extern VTBL_ENTRY _ZTV6dd0621[];
+static Base_Class bases_ee60621[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc621, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd0621, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee60621[];
+extern void _ZN7ee606213fooEv();
+extern void _ZN7ee606213barEv();
+static VTBL_ENTRY vtc_ee60621[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60621[0]),
+ (VTBL_ENTRY)&_ZN7ee606213fooEv,
+ (VTBL_ENTRY)&_ZN7ee606213barEv,
+};
+extern VTBL_ENTRY _ZTI7ee60621[];
+extern VTBL_ENTRY _ZTV7ee60621[];
+Class_Descriptor cd_ee60621 = { "ee60621", // class name
+ bases_ee60621, 4,
+ &(vtc_ee60621[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee60621),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60621),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 ee70621 : virtual dd0621 {
+ int e;
+ virtual void foo(); // _ZN7ee706213fooEv
+ virtual void bar(); // _ZN7ee706213barEv
+ ~ee70621(); // tgen
+ ee70621(); // tgen
+};
+//SIG(1 ee70621) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} v1 Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee70621 ::foo(){vfunc_called(this, "_ZN7ee706213fooEv");}
+void ee70621 ::bar(){vfunc_called(this, "_ZN7ee706213barEv");}
+ee70621 ::~ee70621(){ note_dtor("ee70621", this);} // tgen
+ee70621 ::ee70621(){ note_ctor("ee70621", this);} // tgen
+
+static void Test_ee70621()
+{
+ extern Class_Descriptor cd_ee70621;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee70621, buf);
+ ee70621 *dp, &lv = *(dp=new (buf) ee70621());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee70621)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70621)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc621*)(dd0621*), ABISELECT(16,8), "ee70621");
+ check_base_class_offset(lv, (bb21*)(cc621*)(dd0621*), ABISELECT(16,8), "ee70621");
+ check_base_class_offset(lv, (cc621*)(dd0621*), ABISELECT(16,8), "ee70621");
+ check_base_class_offset(lv, (dd0621*), ABISELECT(16,8), "ee70621");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70621.e");
+ test_class_info(&lv, &cd_ee70621);
+ dp->~ee70621();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70621(Test_ee70621, "ee70621", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee70621C1Ev();
+extern void _ZN7ee70621D1Ev();
+Name_Map name_map_ee70621[] = {
+ NSPAIR(_ZN7ee70621C1Ev),
+ NSPAIR(_ZN7ee70621D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc621;
+extern VTBL_ENTRY _ZTI5cc621[];
+extern VTBL_ENTRY _ZTV5cc621[];
+extern Class_Descriptor cd_dd0621;
+extern VTBL_ENTRY _ZTI6dd0621[];
+extern VTBL_ENTRY _ZTV6dd0621[];
+static Base_Class bases_ee70621[] = {
+ // 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_bb21, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc621, 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_dd0621, 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 _ZTI7ee70621[];
+extern void _ZN7ee706213fooEv();
+extern void _ZN7ee706213barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee706213fooEv,_ZTv0_n12_N7ee706213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee706213fooEv,_ZThn8_N7ee706213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee706213barEv,_ZTv0_n16_N7ee706213barEv)();
+extern void ABISELECT(_ZThn16_N7ee706213barEv,_ZThn8_N7ee706213barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70621[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70621[0]),
+ (VTBL_ENTRY)&_ZN7ee706213fooEv,
+ (VTBL_ENTRY)&_ZN7ee706213barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70621[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee706213fooEv,_ZTv0_n12_N7ee706213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee706213barEv,_ZTv0_n16_N7ee706213barEv),
+};
+extern VTBL_ENTRY _ZTV7ee70621[];
+static VTT_ENTRY vtt_ee70621[] = {
+ {&(_ZTV7ee70621[3]), 3,11},
+ {&(_ZTV7ee70621[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee70621[];
+extern VTBL_ENTRY _ZTV7ee70621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70621[];
+static VTBL_ENTRY alt_thunk_names735[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee706213barEv,_ZTv0_n16_N7ee706213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee706213barEv,_ZThn8_N7ee706213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee706213fooEv,_ZTv0_n12_N7ee706213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee706213fooEv,_ZThn8_N7ee706213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70621 = { "ee70621", // class name
+ bases_ee70621, 4,
+ &(vtc_ee70621[0]), // expected_vtbl_contents
+ &(vtt_ee70621[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee70621),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70621),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70621),2, //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 dd1621 : virtual cc621 {
+ int d;
+ ~dd1621(); // tgen
+ dd1621(); // tgen
+};
+//SIG(-1 dd1621) C1{ VBC2{ BC3{ BC4{ v1 Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+dd1621 ::~dd1621(){ note_dtor("dd1621", this);} // tgen
+dd1621 ::dd1621(){ note_ctor("dd1621", this);} // tgen
+
+static void Test_dd1621()
+{
+ extern Class_Descriptor cd_dd1621;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd1621, buf);
+ dd1621 *dp, &lv = *(dp=new (buf) dd1621());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd1621)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1621)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc621*), ABISELECT(16,8), "dd1621");
+ check_base_class_offset(lv, (bb21*)(cc621*), ABISELECT(16,8), "dd1621");
+ check_base_class_offset(lv, (cc621*), ABISELECT(16,8), "dd1621");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1621.d");
+ test_class_info(&lv, &cd_dd1621);
+ dp->~dd1621();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1621(Test_dd1621, "dd1621", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd1621C1Ev();
+extern void _ZN6dd1621D1Ev();
+Name_Map name_map_dd1621[] = {
+ NSPAIR(_ZN6dd1621C1Ev),
+ NSPAIR(_ZN6dd1621D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc621;
+extern VTBL_ENTRY _ZTI5cc621[];
+extern VTBL_ENTRY _ZTV5cc621[];
+static Base_Class bases_dd1621[] = {
+ // 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_bb21, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc621, 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 _ZTI6dd1621[];
+extern void _ZN5cc6213fooEv();
+extern void _ZN5cc6213barEv();
+static VTBL_ENTRY vtc_dd1621[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1621[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1621[0]),
+ (VTBL_ENTRY)&_ZN5cc6213fooEv,
+ (VTBL_ENTRY)&_ZN5cc6213barEv,
+};
+extern VTBL_ENTRY _ZTV6dd1621[];
+static VTT_ENTRY vtt_dd1621[] = {
+ {&(_ZTV6dd1621[3]), 3,9},
+ {&(_ZTV6dd1621[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI6dd1621[];
+extern VTBL_ENTRY _ZTV6dd1621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1621[];
+Class_Descriptor cd_dd1621 = { "dd1621", // class name
+ bases_dd1621, 3,
+ &(vtc_dd1621[0]), // expected_vtbl_contents
+ &(vtt_dd1621[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd1621),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1621),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1621),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 ee01621 : dd1621 {
+ int e;
+ ~ee01621(); // tgen
+ ee01621(); // tgen
+};
+//SIG(1 ee01621) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} v1 Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee01621 ::~ee01621(){ note_dtor("ee01621", this);} // tgen
+ee01621 ::ee01621(){ note_ctor("ee01621", this);} // tgen
+
+static void Test_ee01621()
+{
+ extern Class_Descriptor cd_ee01621;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee01621, buf);
+ ee01621 *dp, &lv = *(dp=new (buf) ee01621());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee01621)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01621)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc621*), ABISELECT(16,12), "ee01621");
+ check_base_class_offset(lv, (bb21*)(cc621*), ABISELECT(16,12), "ee01621");
+ check_base_class_offset(lv, (cc621*)(dd1621*), ABISELECT(16,12), "ee01621");
+ check_base_class_offset(lv, (dd1621*), 0, "ee01621");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01621.e");
+ test_class_info(&lv, &cd_ee01621);
+ dp->~ee01621();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01621(Test_ee01621, "ee01621", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee01621C1Ev();
+extern void _ZN7ee01621D1Ev();
+Name_Map name_map_ee01621[] = {
+ NSPAIR(_ZN7ee01621C1Ev),
+ NSPAIR(_ZN7ee01621D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc621;
+extern VTBL_ENTRY _ZTI5cc621[];
+extern VTBL_ENTRY _ZTV5cc621[];
+extern Class_Descriptor cd_dd1621;
+extern VTBL_ENTRY _ZTI6dd1621[];
+extern VTBL_ENTRY _ZTV6dd1621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1621[];
+static Base_Class bases_ee01621[] = {
+ // 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_bb21, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc621, 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_dd1621, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01621[];
+extern void _ZN5cc6213fooEv();
+extern void _ZN5cc6213barEv();
+static VTBL_ENTRY vtc_ee01621[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01621[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01621[0]),
+ (VTBL_ENTRY)&_ZN5cc6213fooEv,
+ (VTBL_ENTRY)&_ZN5cc6213barEv,
+};
+extern VTBL_ENTRY _ZTV7ee01621[];
+static VTBL_ENTRY _tg__ZTV6dd1621__7ee01621[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1621[0]),
+};
+extern void _ZN5cc6213fooEv();
+extern void _ZN5cc6213barEv();
+static VTBL_ENTRY _tg__ZTV5cc621__6dd1621__7ee01621[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1621[0]),
+ (VTBL_ENTRY)&_ZN5cc6213fooEv,
+ (VTBL_ENTRY)&_ZN5cc6213barEv,
+};
+static VTT_ENTRY vtt_ee01621[] = {
+ {&(_ZTV7ee01621[3]), 3,9},
+ {&(_tg__ZTV6dd1621__7ee01621[3]), 3,3},
+ {&(_tg__ZTV5cc621__6dd1621__7ee01621[4]), 4,6},
+ {&(_ZTV7ee01621[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee01621[];
+extern VTBL_ENTRY _ZTV7ee01621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01621[];
+Class_Descriptor cd_ee01621 = { "ee01621", // class name
+ bases_ee01621, 4,
+ &(vtc_ee01621[0]), // expected_vtbl_contents
+ &(vtt_ee01621[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee01621),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01621),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01621),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 ee11621 : virtual dd1621 {
+ int e;
+ ~ee11621(); // tgen
+ ee11621(); // tgen
+};
+//SIG(1 ee11621) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} v1 Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee11621 ::~ee11621(){ note_dtor("ee11621", this);} // tgen
+ee11621 ::ee11621(){ note_ctor("ee11621", this);} // tgen
+
+static void Test_ee11621()
+{
+ extern Class_Descriptor cd_ee11621;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee11621, buf);
+ ee11621 *dp, &lv = *(dp=new (buf) ee11621());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee11621)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11621)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc621*), ABISELECT(32,16), "ee11621");
+ check_base_class_offset(lv, (bb21*)(cc621*), ABISELECT(32,16), "ee11621");
+ check_base_class_offset(lv, (cc621*)(dd1621*), ABISELECT(32,16), "ee11621");
+ check_base_class_offset(lv, (dd1621*), ABISELECT(16,8), "ee11621");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11621.e");
+ test_class_info(&lv, &cd_ee11621);
+ dp->~ee11621();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11621(Test_ee11621, "ee11621", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee11621C1Ev();
+extern void _ZN7ee11621D1Ev();
+Name_Map name_map_ee11621[] = {
+ NSPAIR(_ZN7ee11621C1Ev),
+ NSPAIR(_ZN7ee11621D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc621;
+extern VTBL_ENTRY _ZTI5cc621[];
+extern VTBL_ENTRY _ZTV5cc621[];
+extern Class_Descriptor cd_dd1621;
+extern VTBL_ENTRY _ZTI6dd1621[];
+extern VTBL_ENTRY _ZTV6dd1621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1621[];
+static Base_Class bases_ee11621[] = {
+ // 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_bb21, 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_cc621, 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_dd1621, 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 _ZTI7ee11621[];
+extern void _ZN5cc6213fooEv();
+extern void _ZN5cc6213barEv();
+static VTBL_ENTRY vtc_ee11621[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11621[0]),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11621[0]),
+ 0,
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11621[0]),
+ (VTBL_ENTRY)&_ZN5cc6213fooEv,
+ (VTBL_ENTRY)&_ZN5cc6213barEv,
+};
+extern VTBL_ENTRY _ZTV7ee11621[];
+static VTBL_ENTRY _tg__ZTV6dd1621__7ee11621[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1621[0]),
+};
+extern void _ZN5cc6213fooEv();
+extern void _ZN5cc6213barEv();
+static VTBL_ENTRY _tg__ZTV5cc621__6dd1621__7ee11621[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1621[0]),
+ (VTBL_ENTRY)&_ZN5cc6213fooEv,
+ (VTBL_ENTRY)&_ZN5cc6213barEv,
+};
+static VTT_ENTRY vtt_ee11621[] = {
+ {&(_ZTV7ee11621[4]), 4,13},
+ {&(_ZTV7ee11621[7]), 7,13},
+ {&(_ZTV7ee11621[11]), 11,13},
+ {&(_tg__ZTV6dd1621__7ee11621[3]), 3,3},
+ {&(_tg__ZTV5cc621__6dd1621__7ee11621[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee11621[];
+extern VTBL_ENTRY _ZTV7ee11621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11621[];
+Class_Descriptor cd_ee11621 = { "ee11621", // class name
+ bases_ee11621, 4,
+ &(vtc_ee11621[0]), // expected_vtbl_contents
+ &(vtt_ee11621[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee11621),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11621),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11621),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 ee21621 : dd1621 {
+ int e;
+ virtual void foo(); // _ZN7ee216213fooEv
+ ~ee21621(); // tgen
+ ee21621(); // tgen
+};
+//SIG(1 ee21621) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} v1 Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee21621 ::foo(){vfunc_called(this, "_ZN7ee216213fooEv");}
+ee21621 ::~ee21621(){ note_dtor("ee21621", this);} // tgen
+ee21621 ::ee21621(){ note_ctor("ee21621", this);} // tgen
+
+static void Test_ee21621()
+{
+ extern Class_Descriptor cd_ee21621;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee21621, buf);
+ ee21621 *dp, &lv = *(dp=new (buf) ee21621());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee21621)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21621)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc621*), ABISELECT(16,12), "ee21621");
+ check_base_class_offset(lv, (bb21*)(cc621*), ABISELECT(16,12), "ee21621");
+ check_base_class_offset(lv, (cc621*)(dd1621*), ABISELECT(16,12), "ee21621");
+ check_base_class_offset(lv, (dd1621*), 0, "ee21621");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21621.e");
+ test_class_info(&lv, &cd_ee21621);
+ dp->~ee21621();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21621(Test_ee21621, "ee21621", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee21621C1Ev();
+extern void _ZN7ee21621D1Ev();
+Name_Map name_map_ee21621[] = {
+ NSPAIR(_ZN7ee21621C1Ev),
+ NSPAIR(_ZN7ee21621D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc621;
+extern VTBL_ENTRY _ZTI5cc621[];
+extern VTBL_ENTRY _ZTV5cc621[];
+extern Class_Descriptor cd_dd1621;
+extern VTBL_ENTRY _ZTI6dd1621[];
+extern VTBL_ENTRY _ZTV6dd1621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1621[];
+static Base_Class bases_ee21621[] = {
+ // 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_bb21, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc621, 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_dd1621, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21621[];
+extern void _ZN7ee216213fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee216213fooEv,_ZTv0_n12_N7ee216213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee216213fooEv,_ZThn12_N7ee216213fooEv)() __attribute__((weak));
+extern void _ZN5cc6213barEv();
+static VTBL_ENTRY vtc_ee21621[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21621[0]),
+ (VTBL_ENTRY)&_ZN7ee216213fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21621[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee216213fooEv,_ZTv0_n12_N7ee216213fooEv),
+ (VTBL_ENTRY)&_ZN5cc6213barEv,
+};
+extern VTBL_ENTRY _ZTV7ee21621[];
+static VTBL_ENTRY _tg__ZTV6dd1621__7ee21621[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1621[0]),
+};
+extern void _ZN5cc6213fooEv();
+extern void _ZN5cc6213barEv();
+static VTBL_ENTRY _tg__ZTV5cc621__6dd1621__7ee21621[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1621[0]),
+ (VTBL_ENTRY)&_ZN5cc6213fooEv,
+ (VTBL_ENTRY)&_ZN5cc6213barEv,
+};
+static VTT_ENTRY vtt_ee21621[] = {
+ {&(_ZTV7ee21621[3]), 3,10},
+ {&(_tg__ZTV6dd1621__7ee21621[3]), 3,3},
+ {&(_tg__ZTV5cc621__6dd1621__7ee21621[4]), 4,6},
+ {&(_ZTV7ee21621[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee21621[];
+extern VTBL_ENTRY _ZTV7ee21621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21621[];
+static VTBL_ENTRY alt_thunk_names736[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee216213fooEv,_ZTv0_n12_N7ee216213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee216213fooEv,_ZThn12_N7ee216213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21621 = { "ee21621", // class name
+ bases_ee21621, 4,
+ &(vtc_ee21621[0]), // expected_vtbl_contents
+ &(vtt_ee21621[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee21621),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21621),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21621),4, //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 ee31621 : virtual dd1621 {
+ int e;
+ virtual void foo(); // _ZN7ee316213fooEv
+ ~ee31621(); // tgen
+ ee31621(); // tgen
+};
+//SIG(1 ee31621) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} v1 Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee31621 ::foo(){vfunc_called(this, "_ZN7ee316213fooEv");}
+ee31621 ::~ee31621(){ note_dtor("ee31621", this);} // tgen
+ee31621 ::ee31621(){ note_ctor("ee31621", this);} // tgen
+
+static void Test_ee31621()
+{
+ extern Class_Descriptor cd_ee31621;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee31621, buf);
+ ee31621 *dp, &lv = *(dp=new (buf) ee31621());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee31621)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31621)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc621*), ABISELECT(32,16), "ee31621");
+ check_base_class_offset(lv, (bb21*)(cc621*), ABISELECT(32,16), "ee31621");
+ check_base_class_offset(lv, (cc621*)(dd1621*), ABISELECT(32,16), "ee31621");
+ check_base_class_offset(lv, (dd1621*), ABISELECT(16,8), "ee31621");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31621.e");
+ test_class_info(&lv, &cd_ee31621);
+ dp->~ee31621();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31621(Test_ee31621, "ee31621", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee31621C1Ev();
+extern void _ZN7ee31621D1Ev();
+Name_Map name_map_ee31621[] = {
+ NSPAIR(_ZN7ee31621C1Ev),
+ NSPAIR(_ZN7ee31621D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc621;
+extern VTBL_ENTRY _ZTI5cc621[];
+extern VTBL_ENTRY _ZTV5cc621[];
+extern Class_Descriptor cd_dd1621;
+extern VTBL_ENTRY _ZTI6dd1621[];
+extern VTBL_ENTRY _ZTV6dd1621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1621[];
+static Base_Class bases_ee31621[] = {
+ // 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_bb21, 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_cc621, 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_dd1621, 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 _ZTI7ee31621[];
+extern void _ZN7ee316213fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee316213fooEv,_ZTv0_n12_N7ee316213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee316213fooEv,_ZThn16_N7ee316213fooEv)() __attribute__((weak));
+extern void _ZN5cc6213barEv();
+static VTBL_ENTRY vtc_ee31621[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31621[0]),
+ (VTBL_ENTRY)&_ZN7ee316213fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31621[0]),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31621[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee316213fooEv,_ZTv0_n12_N7ee316213fooEv),
+ (VTBL_ENTRY)&_ZN5cc6213barEv,
+};
+extern VTBL_ENTRY _ZTV7ee31621[];
+static VTBL_ENTRY _tg__ZTV6dd1621__7ee31621[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1621[0]),
+};
+extern void _ZN5cc6213fooEv();
+extern void _ZN5cc6213barEv();
+static VTBL_ENTRY _tg__ZTV5cc621__6dd1621__7ee31621[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1621[0]),
+ (VTBL_ENTRY)&_ZN5cc6213fooEv,
+ (VTBL_ENTRY)&_ZN5cc6213barEv,
+};
+static VTT_ENTRY vtt_ee31621[] = {
+ {&(_ZTV7ee31621[4]), 4,14},
+ {&(_ZTV7ee31621[8]), 8,14},
+ {&(_ZTV7ee31621[12]), 12,14},
+ {&(_tg__ZTV6dd1621__7ee31621[3]), 3,3},
+ {&(_tg__ZTV5cc621__6dd1621__7ee31621[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee31621[];
+extern VTBL_ENTRY _ZTV7ee31621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31621[];
+static VTBL_ENTRY alt_thunk_names737[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee316213fooEv,_ZTv0_n12_N7ee316213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee316213fooEv,_ZThn16_N7ee316213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31621 = { "ee31621", // class name
+ bases_ee31621, 4,
+ &(vtc_ee31621[0]), // expected_vtbl_contents
+ &(vtt_ee31621[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee31621),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31621),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31621),5, //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 ee41621 : dd1621 {
+ int e;
+ virtual void bar(); // _ZN7ee416213barEv
+ ~ee41621(); // tgen
+ ee41621(); // tgen
+};
+//SIG(1 ee41621) C1{ BC2{ VBC3{ BC4{ BC5{ v2 Fi} v2 Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee41621 ::bar(){vfunc_called(this, "_ZN7ee416213barEv");}
+ee41621 ::~ee41621(){ note_dtor("ee41621", this);} // tgen
+ee41621 ::ee41621(){ note_ctor("ee41621", this);} // tgen
+
+static void Test_ee41621()
+{
+ extern Class_Descriptor cd_ee41621;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee41621, buf);
+ ee41621 *dp, &lv = *(dp=new (buf) ee41621());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee41621)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41621)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc621*), ABISELECT(16,12), "ee41621");
+ check_base_class_offset(lv, (bb21*)(cc621*), ABISELECT(16,12), "ee41621");
+ check_base_class_offset(lv, (cc621*)(dd1621*), ABISELECT(16,12), "ee41621");
+ check_base_class_offset(lv, (dd1621*), 0, "ee41621");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41621.e");
+ test_class_info(&lv, &cd_ee41621);
+ dp->~ee41621();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41621(Test_ee41621, "ee41621", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee41621C1Ev();
+extern void _ZN7ee41621D1Ev();
+Name_Map name_map_ee41621[] = {
+ NSPAIR(_ZN7ee41621C1Ev),
+ NSPAIR(_ZN7ee41621D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc621;
+extern VTBL_ENTRY _ZTI5cc621[];
+extern VTBL_ENTRY _ZTV5cc621[];
+extern Class_Descriptor cd_dd1621;
+extern VTBL_ENTRY _ZTI6dd1621[];
+extern VTBL_ENTRY _ZTV6dd1621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1621[];
+static Base_Class bases_ee41621[] = {
+ // 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_bb21, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc621, 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_dd1621, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41621[];
+extern void _ZN7ee416213barEv();
+extern void _ZN5cc6213fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee416213barEv,_ZTv0_n16_N7ee416213barEv)();
+extern void ABISELECT(_ZThn16_N7ee416213barEv,_ZThn12_N7ee416213barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee41621[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41621[0]),
+ (VTBL_ENTRY)&_ZN7ee416213barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41621[0]),
+ (VTBL_ENTRY)&_ZN5cc6213fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee416213barEv,_ZTv0_n16_N7ee416213barEv),
+};
+extern VTBL_ENTRY _ZTV7ee41621[];
+static VTBL_ENTRY _tg__ZTV6dd1621__7ee41621[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1621[0]),
+};
+extern void _ZN5cc6213fooEv();
+extern void _ZN5cc6213barEv();
+static VTBL_ENTRY _tg__ZTV5cc621__6dd1621__7ee41621[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1621[0]),
+ (VTBL_ENTRY)&_ZN5cc6213fooEv,
+ (VTBL_ENTRY)&_ZN5cc6213barEv,
+};
+static VTT_ENTRY vtt_ee41621[] = {
+ {&(_ZTV7ee41621[3]), 3,10},
+ {&(_tg__ZTV6dd1621__7ee41621[3]), 3,3},
+ {&(_tg__ZTV5cc621__6dd1621__7ee41621[4]), 4,6},
+ {&(_ZTV7ee41621[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee41621[];
+extern VTBL_ENTRY _ZTV7ee41621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41621[];
+static VTBL_ENTRY alt_thunk_names738[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee416213barEv,_ZTv0_n16_N7ee416213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee416213barEv,_ZThn12_N7ee416213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41621 = { "ee41621", // class name
+ bases_ee41621, 4,
+ &(vtc_ee41621[0]), // expected_vtbl_contents
+ &(vtt_ee41621[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee41621),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41621),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41621),4, //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 ee51621 : virtual dd1621 {
+ int e;
+ virtual void bar(); // _ZN7ee516213barEv
+ ~ee51621(); // tgen
+ ee51621(); // tgen
+};
+//SIG(1 ee51621) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 Fi} v2 Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee51621 ::bar(){vfunc_called(this, "_ZN7ee516213barEv");}
+ee51621 ::~ee51621(){ note_dtor("ee51621", this);} // tgen
+ee51621 ::ee51621(){ note_ctor("ee51621", this);} // tgen
+
+static void Test_ee51621()
+{
+ extern Class_Descriptor cd_ee51621;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee51621, buf);
+ ee51621 *dp, &lv = *(dp=new (buf) ee51621());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee51621)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51621)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc621*), ABISELECT(32,16), "ee51621");
+ check_base_class_offset(lv, (bb21*)(cc621*), ABISELECT(32,16), "ee51621");
+ check_base_class_offset(lv, (cc621*)(dd1621*), ABISELECT(32,16), "ee51621");
+ check_base_class_offset(lv, (dd1621*), ABISELECT(16,8), "ee51621");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51621.e");
+ test_class_info(&lv, &cd_ee51621);
+ dp->~ee51621();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51621(Test_ee51621, "ee51621", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee51621C1Ev();
+extern void _ZN7ee51621D1Ev();
+Name_Map name_map_ee51621[] = {
+ NSPAIR(_ZN7ee51621C1Ev),
+ NSPAIR(_ZN7ee51621D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc621;
+extern VTBL_ENTRY _ZTI5cc621[];
+extern VTBL_ENTRY _ZTV5cc621[];
+extern Class_Descriptor cd_dd1621;
+extern VTBL_ENTRY _ZTI6dd1621[];
+extern VTBL_ENTRY _ZTV6dd1621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1621[];
+static Base_Class bases_ee51621[] = {
+ // 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_bb21, 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_cc621, 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_dd1621, 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 _ZTI7ee51621[];
+extern void _ZN7ee516213barEv();
+extern void _ZN5cc6213fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee516213barEv,_ZTv0_n16_N7ee516213barEv)();
+extern void ABISELECT(_ZThn32_N7ee516213barEv,_ZThn16_N7ee516213barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee51621[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51621[0]),
+ (VTBL_ENTRY)&_ZN7ee516213barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51621[0]),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51621[0]),
+ (VTBL_ENTRY)&_ZN5cc6213fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee516213barEv,_ZTv0_n16_N7ee516213barEv),
+};
+extern VTBL_ENTRY _ZTV7ee51621[];
+static VTBL_ENTRY _tg__ZTV6dd1621__7ee51621[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1621[0]),
+};
+extern void _ZN5cc6213fooEv();
+extern void _ZN5cc6213barEv();
+static VTBL_ENTRY _tg__ZTV5cc621__6dd1621__7ee51621[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1621[0]),
+ (VTBL_ENTRY)&_ZN5cc6213fooEv,
+ (VTBL_ENTRY)&_ZN5cc6213barEv,
+};
+static VTT_ENTRY vtt_ee51621[] = {
+ {&(_ZTV7ee51621[4]), 4,14},
+ {&(_ZTV7ee51621[8]), 8,14},
+ {&(_ZTV7ee51621[12]), 12,14},
+ {&(_tg__ZTV6dd1621__7ee51621[3]), 3,3},
+ {&(_tg__ZTV5cc621__6dd1621__7ee51621[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee51621[];
+extern VTBL_ENTRY _ZTV7ee51621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51621[];
+static VTBL_ENTRY alt_thunk_names739[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee516213barEv,_ZTv0_n16_N7ee516213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee516213barEv,_ZThn16_N7ee516213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51621 = { "ee51621", // class name
+ bases_ee51621, 4,
+ &(vtc_ee51621[0]), // expected_vtbl_contents
+ &(vtt_ee51621[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee51621),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51621),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51621),5, //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 ee61621 : dd1621 {
+ int e;
+ virtual void foo(); // _ZN7ee616213fooEv
+ virtual void bar(); // _ZN7ee616213barEv
+ ~ee61621(); // tgen
+ ee61621(); // tgen
+};
+//SIG(1 ee61621) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} v1 Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee61621 ::foo(){vfunc_called(this, "_ZN7ee616213fooEv");}
+void ee61621 ::bar(){vfunc_called(this, "_ZN7ee616213barEv");}
+ee61621 ::~ee61621(){ note_dtor("ee61621", this);} // tgen
+ee61621 ::ee61621(){ note_ctor("ee61621", this);} // tgen
+
+static void Test_ee61621()
+{
+ extern Class_Descriptor cd_ee61621;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee61621, buf);
+ ee61621 *dp, &lv = *(dp=new (buf) ee61621());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee61621)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61621)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc621*), ABISELECT(16,12), "ee61621");
+ check_base_class_offset(lv, (bb21*)(cc621*), ABISELECT(16,12), "ee61621");
+ check_base_class_offset(lv, (cc621*)(dd1621*), ABISELECT(16,12), "ee61621");
+ check_base_class_offset(lv, (dd1621*), 0, "ee61621");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61621.e");
+ test_class_info(&lv, &cd_ee61621);
+ dp->~ee61621();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61621(Test_ee61621, "ee61621", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee61621C1Ev();
+extern void _ZN7ee61621D1Ev();
+Name_Map name_map_ee61621[] = {
+ NSPAIR(_ZN7ee61621C1Ev),
+ NSPAIR(_ZN7ee61621D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc621;
+extern VTBL_ENTRY _ZTI5cc621[];
+extern VTBL_ENTRY _ZTV5cc621[];
+extern Class_Descriptor cd_dd1621;
+extern VTBL_ENTRY _ZTI6dd1621[];
+extern VTBL_ENTRY _ZTV6dd1621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1621[];
+static Base_Class bases_ee61621[] = {
+ // 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_bb21, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc621, 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_dd1621, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61621[];
+extern void _ZN7ee616213fooEv();
+extern void _ZN7ee616213barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee616213fooEv,_ZTv0_n12_N7ee616213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee616213fooEv,_ZThn12_N7ee616213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee616213barEv,_ZTv0_n16_N7ee616213barEv)();
+extern void ABISELECT(_ZThn16_N7ee616213barEv,_ZThn12_N7ee616213barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61621[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61621[0]),
+ (VTBL_ENTRY)&_ZN7ee616213fooEv,
+ (VTBL_ENTRY)&_ZN7ee616213barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61621[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee616213fooEv,_ZTv0_n12_N7ee616213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee616213barEv,_ZTv0_n16_N7ee616213barEv),
+};
+extern VTBL_ENTRY _ZTV7ee61621[];
+static VTBL_ENTRY _tg__ZTV6dd1621__7ee61621[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1621[0]),
+};
+extern void _ZN5cc6213fooEv();
+extern void _ZN5cc6213barEv();
+static VTBL_ENTRY _tg__ZTV5cc621__6dd1621__7ee61621[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1621[0]),
+ (VTBL_ENTRY)&_ZN5cc6213fooEv,
+ (VTBL_ENTRY)&_ZN5cc6213barEv,
+};
+static VTT_ENTRY vtt_ee61621[] = {
+ {&(_ZTV7ee61621[3]), 3,11},
+ {&(_tg__ZTV6dd1621__7ee61621[3]), 3,3},
+ {&(_tg__ZTV5cc621__6dd1621__7ee61621[4]), 4,6},
+ {&(_ZTV7ee61621[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee61621[];
+extern VTBL_ENTRY _ZTV7ee61621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61621[];
+static VTBL_ENTRY alt_thunk_names740[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee616213barEv,_ZTv0_n16_N7ee616213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee616213barEv,_ZThn12_N7ee616213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee616213fooEv,_ZTv0_n12_N7ee616213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee616213fooEv,_ZThn12_N7ee616213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61621 = { "ee61621", // class name
+ bases_ee61621, 4,
+ &(vtc_ee61621[0]), // expected_vtbl_contents
+ &(vtt_ee61621[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee61621),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61621),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61621),4, //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 ee71621 : virtual dd1621 {
+ int e;
+ virtual void foo(); // _ZN7ee716213fooEv
+ virtual void bar(); // _ZN7ee716213barEv
+ ~ee71621(); // tgen
+ ee71621(); // tgen
+};
+//SIG(1 ee71621) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} v1 Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee71621 ::foo(){vfunc_called(this, "_ZN7ee716213fooEv");}
+void ee71621 ::bar(){vfunc_called(this, "_ZN7ee716213barEv");}
+ee71621 ::~ee71621(){ note_dtor("ee71621", this);} // tgen
+ee71621 ::ee71621(){ note_ctor("ee71621", this);} // tgen
+
+static void Test_ee71621()
+{
+ extern Class_Descriptor cd_ee71621;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee71621, buf);
+ ee71621 *dp, &lv = *(dp=new (buf) ee71621());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee71621)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71621)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc621*), ABISELECT(32,16), "ee71621");
+ check_base_class_offset(lv, (bb21*)(cc621*), ABISELECT(32,16), "ee71621");
+ check_base_class_offset(lv, (cc621*)(dd1621*), ABISELECT(32,16), "ee71621");
+ check_base_class_offset(lv, (dd1621*), ABISELECT(16,8), "ee71621");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71621.e");
+ test_class_info(&lv, &cd_ee71621);
+ dp->~ee71621();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71621(Test_ee71621, "ee71621", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee71621C1Ev();
+extern void _ZN7ee71621D1Ev();
+Name_Map name_map_ee71621[] = {
+ NSPAIR(_ZN7ee71621C1Ev),
+ NSPAIR(_ZN7ee71621D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc621;
+extern VTBL_ENTRY _ZTI5cc621[];
+extern VTBL_ENTRY _ZTV5cc621[];
+extern Class_Descriptor cd_dd1621;
+extern VTBL_ENTRY _ZTI6dd1621[];
+extern VTBL_ENTRY _ZTV6dd1621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1621[];
+static Base_Class bases_ee71621[] = {
+ // 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_bb21, 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_cc621, 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_dd1621, 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 _ZTI7ee71621[];
+extern void _ZN7ee716213fooEv();
+extern void _ZN7ee716213barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee716213fooEv,_ZTv0_n12_N7ee716213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee716213fooEv,_ZThn16_N7ee716213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee716213barEv,_ZTv0_n16_N7ee716213barEv)();
+extern void ABISELECT(_ZThn32_N7ee716213barEv,_ZThn16_N7ee716213barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71621[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71621[0]),
+ (VTBL_ENTRY)&_ZN7ee716213fooEv,
+ (VTBL_ENTRY)&_ZN7ee716213barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71621[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71621[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee716213fooEv,_ZTv0_n12_N7ee716213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee716213barEv,_ZTv0_n16_N7ee716213barEv),
+};
+extern VTBL_ENTRY _ZTV7ee71621[];
+static VTBL_ENTRY _tg__ZTV6dd1621__7ee71621[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1621[0]),
+};
+extern void _ZN5cc6213fooEv();
+extern void _ZN5cc6213barEv();
+static VTBL_ENTRY _tg__ZTV5cc621__6dd1621__7ee71621[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1621[0]),
+ (VTBL_ENTRY)&_ZN5cc6213fooEv,
+ (VTBL_ENTRY)&_ZN5cc6213barEv,
+};
+static VTT_ENTRY vtt_ee71621[] = {
+ {&(_ZTV7ee71621[4]), 4,15},
+ {&(_ZTV7ee71621[9]), 9,15},
+ {&(_ZTV7ee71621[13]), 13,15},
+ {&(_tg__ZTV6dd1621__7ee71621[3]), 3,3},
+ {&(_tg__ZTV5cc621__6dd1621__7ee71621[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee71621[];
+extern VTBL_ENTRY _ZTV7ee71621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71621[];
+static VTBL_ENTRY alt_thunk_names741[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee716213barEv,_ZTv0_n16_N7ee716213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee716213barEv,_ZThn16_N7ee716213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee716213fooEv,_ZTv0_n12_N7ee716213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee716213fooEv,_ZThn16_N7ee716213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71621 = { "ee71621", // class name
+ bases_ee71621, 4,
+ &(vtc_ee71621[0]), // expected_vtbl_contents
+ &(vtt_ee71621[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee71621),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71621),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71621),5, //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 dd2621 : cc621 {
+ int d;
+ virtual void foo(); // _ZN6dd26213fooEv
+ ~dd2621(); // tgen
+ dd2621(); // tgen
+};
+//SIG(-1 dd2621) C1{ BC2{ BC3{ BC4{ v1 Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void dd2621 ::foo(){vfunc_called(this, "_ZN6dd26213fooEv");}
+dd2621 ::~dd2621(){ note_dtor("dd2621", this);} // tgen
+dd2621 ::dd2621(){ note_ctor("dd2621", this);} // tgen
+
+static void Test_dd2621()
+{
+ extern Class_Descriptor cd_dd2621;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd2621, buf);
+ dd2621 *dp, &lv = *(dp=new (buf) dd2621());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd2621)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2621)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc621*), 0, "dd2621");
+ check_base_class_offset(lv, (bb21*)(cc621*), 0, "dd2621");
+ check_base_class_offset(lv, (cc621*), 0, "dd2621");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd2621.d");
+ test_class_info(&lv, &cd_dd2621);
+ dp->~dd2621();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2621(Test_dd2621, "dd2621", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd2621C1Ev();
+extern void _ZN6dd2621D1Ev();
+Name_Map name_map_dd2621[] = {
+ NSPAIR(_ZN6dd2621C1Ev),
+ NSPAIR(_ZN6dd2621D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc621;
+extern VTBL_ENTRY _ZTI5cc621[];
+extern VTBL_ENTRY _ZTV5cc621[];
+static Base_Class bases_dd2621[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc621, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI6dd2621[];
+extern void _ZN6dd26213fooEv();
+extern void _ZN5cc6213barEv();
+static VTBL_ENTRY vtc_dd2621[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2621[0]),
+ (VTBL_ENTRY)&_ZN6dd26213fooEv,
+ (VTBL_ENTRY)&_ZN5cc6213barEv,
+};
+extern VTBL_ENTRY _ZTI6dd2621[];
+extern VTBL_ENTRY _ZTV6dd2621[];
+Class_Descriptor cd_dd2621 = { "dd2621", // class name
+ bases_dd2621, 3,
+ &(vtc_dd2621[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd2621),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2621),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 ee02621 : dd2621 {
+ int e;
+ ~ee02621(); // tgen
+ ee02621(); // tgen
+};
+//SIG(1 ee02621) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} v1 Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee02621 ::~ee02621(){ note_dtor("ee02621", this);} // tgen
+ee02621 ::ee02621(){ note_ctor("ee02621", this);} // tgen
+
+static void Test_ee02621()
+{
+ extern Class_Descriptor cd_ee02621;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee02621, buf);
+ ee02621 *dp, &lv = *(dp=new (buf) ee02621());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee02621)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02621)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc621*)(dd2621*), 0, "ee02621");
+ check_base_class_offset(lv, (bb21*)(cc621*)(dd2621*), 0, "ee02621");
+ check_base_class_offset(lv, (cc621*)(dd2621*), 0, "ee02621");
+ check_base_class_offset(lv, (dd2621*), 0, "ee02621");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee02621.e");
+ test_class_info(&lv, &cd_ee02621);
+ dp->~ee02621();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02621(Test_ee02621, "ee02621", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee02621C1Ev();
+extern void _ZN7ee02621D1Ev();
+Name_Map name_map_ee02621[] = {
+ NSPAIR(_ZN7ee02621C1Ev),
+ NSPAIR(_ZN7ee02621D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc621;
+extern VTBL_ENTRY _ZTI5cc621[];
+extern VTBL_ENTRY _ZTV5cc621[];
+extern Class_Descriptor cd_dd2621;
+extern VTBL_ENTRY _ZTI6dd2621[];
+extern VTBL_ENTRY _ZTV6dd2621[];
+static Base_Class bases_ee02621[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc621, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2621, 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 _ZTI7ee02621[];
+extern void _ZN6dd26213fooEv();
+extern void _ZN5cc6213barEv();
+static VTBL_ENTRY vtc_ee02621[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02621[0]),
+ (VTBL_ENTRY)&_ZN6dd26213fooEv,
+ (VTBL_ENTRY)&_ZN5cc6213barEv,
+};
+extern VTBL_ENTRY _ZTI7ee02621[];
+extern VTBL_ENTRY _ZTV7ee02621[];
+Class_Descriptor cd_ee02621 = { "ee02621", // class name
+ bases_ee02621, 4,
+ &(vtc_ee02621[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee02621),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02621),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 ee12621 : virtual dd2621 {
+ int e;
+ ~ee12621(); // tgen
+ ee12621(); // tgen
+};
+//SIG(1 ee12621) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} v1 Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee12621 ::~ee12621(){ note_dtor("ee12621", this);} // tgen
+ee12621 ::ee12621(){ note_ctor("ee12621", this);} // tgen
+
+static void Test_ee12621()
+{
+ extern Class_Descriptor cd_ee12621;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee12621, buf);
+ ee12621 *dp, &lv = *(dp=new (buf) ee12621());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee12621)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12621)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc621*)(dd2621*), ABISELECT(16,8), "ee12621");
+ check_base_class_offset(lv, (bb21*)(cc621*)(dd2621*), ABISELECT(16,8), "ee12621");
+ check_base_class_offset(lv, (cc621*)(dd2621*), ABISELECT(16,8), "ee12621");
+ check_base_class_offset(lv, (dd2621*), ABISELECT(16,8), "ee12621");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12621.e");
+ test_class_info(&lv, &cd_ee12621);
+ dp->~ee12621();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12621(Test_ee12621, "ee12621", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee12621C1Ev();
+extern void _ZN7ee12621D1Ev();
+Name_Map name_map_ee12621[] = {
+ NSPAIR(_ZN7ee12621C1Ev),
+ NSPAIR(_ZN7ee12621D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc621;
+extern VTBL_ENTRY _ZTI5cc621[];
+extern VTBL_ENTRY _ZTV5cc621[];
+extern Class_Descriptor cd_dd2621;
+extern VTBL_ENTRY _ZTI6dd2621[];
+extern VTBL_ENTRY _ZTV6dd2621[];
+static Base_Class bases_ee12621[] = {
+ // 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_bb21, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc621, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2621, 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 _ZTI7ee12621[];
+extern void _ZN6dd26213fooEv();
+extern void _ZN5cc6213barEv();
+static VTBL_ENTRY vtc_ee12621[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12621[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12621[0]),
+ (VTBL_ENTRY)&_ZN6dd26213fooEv,
+ (VTBL_ENTRY)&_ZN5cc6213barEv,
+};
+extern VTBL_ENTRY _ZTV7ee12621[];
+static VTT_ENTRY vtt_ee12621[] = {
+ {&(_ZTV7ee12621[3]), 3,9},
+ {&(_ZTV7ee12621[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee12621[];
+extern VTBL_ENTRY _ZTV7ee12621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12621[];
+Class_Descriptor cd_ee12621 = { "ee12621", // class name
+ bases_ee12621, 4,
+ &(vtc_ee12621[0]), // expected_vtbl_contents
+ &(vtt_ee12621[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee12621),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12621),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12621),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 ee22621 : dd2621 {
+ int e;
+ virtual void foo(); // _ZN7ee226213fooEv
+ ~ee22621(); // tgen
+ ee22621(); // tgen
+};
+//SIG(1 ee22621) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} v1 Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee22621 ::foo(){vfunc_called(this, "_ZN7ee226213fooEv");}
+ee22621 ::~ee22621(){ note_dtor("ee22621", this);} // tgen
+ee22621 ::ee22621(){ note_ctor("ee22621", this);} // tgen
+
+static void Test_ee22621()
+{
+ extern Class_Descriptor cd_ee22621;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee22621, buf);
+ ee22621 *dp, &lv = *(dp=new (buf) ee22621());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee22621)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22621)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc621*)(dd2621*), 0, "ee22621");
+ check_base_class_offset(lv, (bb21*)(cc621*)(dd2621*), 0, "ee22621");
+ check_base_class_offset(lv, (cc621*)(dd2621*), 0, "ee22621");
+ check_base_class_offset(lv, (dd2621*), 0, "ee22621");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee22621.e");
+ test_class_info(&lv, &cd_ee22621);
+ dp->~ee22621();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22621(Test_ee22621, "ee22621", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee22621C1Ev();
+extern void _ZN7ee22621D1Ev();
+Name_Map name_map_ee22621[] = {
+ NSPAIR(_ZN7ee22621C1Ev),
+ NSPAIR(_ZN7ee22621D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc621;
+extern VTBL_ENTRY _ZTI5cc621[];
+extern VTBL_ENTRY _ZTV5cc621[];
+extern Class_Descriptor cd_dd2621;
+extern VTBL_ENTRY _ZTI6dd2621[];
+extern VTBL_ENTRY _ZTV6dd2621[];
+static Base_Class bases_ee22621[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc621, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2621, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee22621[];
+extern void _ZN7ee226213fooEv();
+extern void _ZN5cc6213barEv();
+static VTBL_ENTRY vtc_ee22621[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22621[0]),
+ (VTBL_ENTRY)&_ZN7ee226213fooEv,
+ (VTBL_ENTRY)&_ZN5cc6213barEv,
+};
+extern VTBL_ENTRY _ZTI7ee22621[];
+extern VTBL_ENTRY _ZTV7ee22621[];
+Class_Descriptor cd_ee22621 = { "ee22621", // class name
+ bases_ee22621, 4,
+ &(vtc_ee22621[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee22621),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22621),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 ee32621 : virtual dd2621 {
+ int e;
+ virtual void foo(); // _ZN7ee326213fooEv
+ ~ee32621(); // tgen
+ ee32621(); // tgen
+};
+//SIG(1 ee32621) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} v1 Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee32621 ::foo(){vfunc_called(this, "_ZN7ee326213fooEv");}
+ee32621 ::~ee32621(){ note_dtor("ee32621", this);} // tgen
+ee32621 ::ee32621(){ note_ctor("ee32621", this);} // tgen
+
+static void Test_ee32621()
+{
+ extern Class_Descriptor cd_ee32621;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee32621, buf);
+ ee32621 *dp, &lv = *(dp=new (buf) ee32621());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee32621)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32621)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc621*)(dd2621*), ABISELECT(16,8), "ee32621");
+ check_base_class_offset(lv, (bb21*)(cc621*)(dd2621*), ABISELECT(16,8), "ee32621");
+ check_base_class_offset(lv, (cc621*)(dd2621*), ABISELECT(16,8), "ee32621");
+ check_base_class_offset(lv, (dd2621*), ABISELECT(16,8), "ee32621");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32621.e");
+ test_class_info(&lv, &cd_ee32621);
+ dp->~ee32621();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32621(Test_ee32621, "ee32621", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee32621C1Ev();
+extern void _ZN7ee32621D1Ev();
+Name_Map name_map_ee32621[] = {
+ NSPAIR(_ZN7ee32621C1Ev),
+ NSPAIR(_ZN7ee32621D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc621;
+extern VTBL_ENTRY _ZTI5cc621[];
+extern VTBL_ENTRY _ZTV5cc621[];
+extern Class_Descriptor cd_dd2621;
+extern VTBL_ENTRY _ZTI6dd2621[];
+extern VTBL_ENTRY _ZTV6dd2621[];
+static Base_Class bases_ee32621[] = {
+ // 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_bb21, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc621, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2621, 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 _ZTI7ee32621[];
+extern void _ZN7ee326213fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee326213fooEv,_ZTv0_n12_N7ee326213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee326213fooEv,_ZThn8_N7ee326213fooEv)() __attribute__((weak));
+extern void _ZN5cc6213barEv();
+static VTBL_ENTRY vtc_ee32621[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32621[0]),
+ (VTBL_ENTRY)&_ZN7ee326213fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32621[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee326213fooEv,_ZTv0_n12_N7ee326213fooEv),
+ (VTBL_ENTRY)&_ZN5cc6213barEv,
+};
+extern VTBL_ENTRY _ZTV7ee32621[];
+static VTT_ENTRY vtt_ee32621[] = {
+ {&(_ZTV7ee32621[3]), 3,10},
+ {&(_ZTV7ee32621[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee32621[];
+extern VTBL_ENTRY _ZTV7ee32621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32621[];
+static VTBL_ENTRY alt_thunk_names742[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee326213fooEv,_ZTv0_n12_N7ee326213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee326213fooEv,_ZThn8_N7ee326213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32621 = { "ee32621", // class name
+ bases_ee32621, 4,
+ &(vtc_ee32621[0]), // expected_vtbl_contents
+ &(vtt_ee32621[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee32621),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32621),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32621),2, //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 ee42621 : dd2621 {
+ int e;
+ virtual void bar(); // _ZN7ee426213barEv
+ ~ee42621(); // tgen
+ ee42621(); // tgen
+};
+//SIG(1 ee42621) C1{ BC2{ BC3{ BC4{ BC5{ v2 Fi} v2 Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee42621 ::bar(){vfunc_called(this, "_ZN7ee426213barEv");}
+ee42621 ::~ee42621(){ note_dtor("ee42621", this);} // tgen
+ee42621 ::ee42621(){ note_ctor("ee42621", this);} // tgen
+
+static void Test_ee42621()
+{
+ extern Class_Descriptor cd_ee42621;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee42621, buf);
+ ee42621 *dp, &lv = *(dp=new (buf) ee42621());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee42621)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42621)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc621*)(dd2621*), 0, "ee42621");
+ check_base_class_offset(lv, (bb21*)(cc621*)(dd2621*), 0, "ee42621");
+ check_base_class_offset(lv, (cc621*)(dd2621*), 0, "ee42621");
+ check_base_class_offset(lv, (dd2621*), 0, "ee42621");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee42621.e");
+ test_class_info(&lv, &cd_ee42621);
+ dp->~ee42621();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42621(Test_ee42621, "ee42621", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee42621C1Ev();
+extern void _ZN7ee42621D1Ev();
+Name_Map name_map_ee42621[] = {
+ NSPAIR(_ZN7ee42621C1Ev),
+ NSPAIR(_ZN7ee42621D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc621;
+extern VTBL_ENTRY _ZTI5cc621[];
+extern VTBL_ENTRY _ZTV5cc621[];
+extern Class_Descriptor cd_dd2621;
+extern VTBL_ENTRY _ZTI6dd2621[];
+extern VTBL_ENTRY _ZTV6dd2621[];
+static Base_Class bases_ee42621[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc621, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2621, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee42621[];
+extern void _ZN6dd26213fooEv();
+extern void _ZN7ee426213barEv();
+static VTBL_ENTRY vtc_ee42621[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42621[0]),
+ (VTBL_ENTRY)&_ZN6dd26213fooEv,
+ (VTBL_ENTRY)&_ZN7ee426213barEv,
+};
+extern VTBL_ENTRY _ZTI7ee42621[];
+extern VTBL_ENTRY _ZTV7ee42621[];
+Class_Descriptor cd_ee42621 = { "ee42621", // class name
+ bases_ee42621, 4,
+ &(vtc_ee42621[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee42621),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42621),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 ee52621 : virtual dd2621 {
+ int e;
+ virtual void bar(); // _ZN7ee526213barEv
+ ~ee52621(); // tgen
+ ee52621(); // tgen
+};
+//SIG(1 ee52621) C1{ VBC2{ BC3{ BC4{ BC5{ v2 Fi} v2 Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee52621 ::bar(){vfunc_called(this, "_ZN7ee526213barEv");}
+ee52621 ::~ee52621(){ note_dtor("ee52621", this);} // tgen
+ee52621 ::ee52621(){ note_ctor("ee52621", this);} // tgen
+
+static void Test_ee52621()
+{
+ extern Class_Descriptor cd_ee52621;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee52621, buf);
+ ee52621 *dp, &lv = *(dp=new (buf) ee52621());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee52621)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52621)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc621*)(dd2621*), ABISELECT(16,8), "ee52621");
+ check_base_class_offset(lv, (bb21*)(cc621*)(dd2621*), ABISELECT(16,8), "ee52621");
+ check_base_class_offset(lv, (cc621*)(dd2621*), ABISELECT(16,8), "ee52621");
+ check_base_class_offset(lv, (dd2621*), ABISELECT(16,8), "ee52621");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52621.e");
+ test_class_info(&lv, &cd_ee52621);
+ dp->~ee52621();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52621(Test_ee52621, "ee52621", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee52621C1Ev();
+extern void _ZN7ee52621D1Ev();
+Name_Map name_map_ee52621[] = {
+ NSPAIR(_ZN7ee52621C1Ev),
+ NSPAIR(_ZN7ee52621D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc621;
+extern VTBL_ENTRY _ZTI5cc621[];
+extern VTBL_ENTRY _ZTV5cc621[];
+extern Class_Descriptor cd_dd2621;
+extern VTBL_ENTRY _ZTI6dd2621[];
+extern VTBL_ENTRY _ZTV6dd2621[];
+static Base_Class bases_ee52621[] = {
+ // 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_bb21, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc621, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2621, 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 _ZTI7ee52621[];
+extern void _ZN7ee526213barEv();
+extern void _ZN6dd26213fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee526213barEv,_ZTv0_n16_N7ee526213barEv)();
+extern void ABISELECT(_ZThn16_N7ee526213barEv,_ZThn8_N7ee526213barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee52621[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52621[0]),
+ (VTBL_ENTRY)&_ZN7ee526213barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52621[0]),
+ (VTBL_ENTRY)&_ZN6dd26213fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee526213barEv,_ZTv0_n16_N7ee526213barEv),
+};
+extern VTBL_ENTRY _ZTV7ee52621[];
+static VTT_ENTRY vtt_ee52621[] = {
+ {&(_ZTV7ee52621[3]), 3,10},
+ {&(_ZTV7ee52621[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee52621[];
+extern VTBL_ENTRY _ZTV7ee52621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52621[];
+static VTBL_ENTRY alt_thunk_names743[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee526213barEv,_ZTv0_n16_N7ee526213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee526213barEv,_ZThn8_N7ee526213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52621 = { "ee52621", // class name
+ bases_ee52621, 4,
+ &(vtc_ee52621[0]), // expected_vtbl_contents
+ &(vtt_ee52621[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee52621),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52621),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52621),2, //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 ee62621 : dd2621 {
+ int e;
+ virtual void foo(); // _ZN7ee626213fooEv
+ virtual void bar(); // _ZN7ee626213barEv
+ ~ee62621(); // tgen
+ ee62621(); // tgen
+};
+//SIG(1 ee62621) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} v1 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62621 ::foo(){vfunc_called(this, "_ZN7ee626213fooEv");}
+void ee62621 ::bar(){vfunc_called(this, "_ZN7ee626213barEv");}
+ee62621 ::~ee62621(){ note_dtor("ee62621", this);} // tgen
+ee62621 ::ee62621(){ note_ctor("ee62621", this);} // tgen
+
+static void Test_ee62621()
+{
+ extern Class_Descriptor cd_ee62621;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee62621, buf);
+ ee62621 *dp, &lv = *(dp=new (buf) ee62621());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee62621)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62621)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc621*)(dd2621*), 0, "ee62621");
+ check_base_class_offset(lv, (bb21*)(cc621*)(dd2621*), 0, "ee62621");
+ check_base_class_offset(lv, (cc621*)(dd2621*), 0, "ee62621");
+ check_base_class_offset(lv, (dd2621*), 0, "ee62621");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee62621.e");
+ test_class_info(&lv, &cd_ee62621);
+ dp->~ee62621();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62621(Test_ee62621, "ee62621", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee62621C1Ev();
+extern void _ZN7ee62621D1Ev();
+Name_Map name_map_ee62621[] = {
+ NSPAIR(_ZN7ee62621C1Ev),
+ NSPAIR(_ZN7ee62621D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc621;
+extern VTBL_ENTRY _ZTI5cc621[];
+extern VTBL_ENTRY _ZTV5cc621[];
+extern Class_Descriptor cd_dd2621;
+extern VTBL_ENTRY _ZTI6dd2621[];
+extern VTBL_ENTRY _ZTV6dd2621[];
+static Base_Class bases_ee62621[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc621, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2621, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee62621[];
+extern void _ZN7ee626213fooEv();
+extern void _ZN7ee626213barEv();
+static VTBL_ENTRY vtc_ee62621[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62621[0]),
+ (VTBL_ENTRY)&_ZN7ee626213fooEv,
+ (VTBL_ENTRY)&_ZN7ee626213barEv,
+};
+extern VTBL_ENTRY _ZTI7ee62621[];
+extern VTBL_ENTRY _ZTV7ee62621[];
+Class_Descriptor cd_ee62621 = { "ee62621", // class name
+ bases_ee62621, 4,
+ &(vtc_ee62621[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee62621),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62621),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 ee72621 : virtual dd2621 {
+ int e;
+ virtual void foo(); // _ZN7ee726213fooEv
+ virtual void bar(); // _ZN7ee726213barEv
+ ~ee72621(); // tgen
+ ee72621(); // tgen
+};
+//SIG(1 ee72621) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} v1 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72621 ::foo(){vfunc_called(this, "_ZN7ee726213fooEv");}
+void ee72621 ::bar(){vfunc_called(this, "_ZN7ee726213barEv");}
+ee72621 ::~ee72621(){ note_dtor("ee72621", this);} // tgen
+ee72621 ::ee72621(){ note_ctor("ee72621", this);} // tgen
+
+static void Test_ee72621()
+{
+ extern Class_Descriptor cd_ee72621;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee72621, buf);
+ ee72621 *dp, &lv = *(dp=new (buf) ee72621());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee72621)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72621)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc621*)(dd2621*), ABISELECT(16,8), "ee72621");
+ check_base_class_offset(lv, (bb21*)(cc621*)(dd2621*), ABISELECT(16,8), "ee72621");
+ check_base_class_offset(lv, (cc621*)(dd2621*), ABISELECT(16,8), "ee72621");
+ check_base_class_offset(lv, (dd2621*), ABISELECT(16,8), "ee72621");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72621.e");
+ test_class_info(&lv, &cd_ee72621);
+ dp->~ee72621();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72621(Test_ee72621, "ee72621", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee72621C1Ev();
+extern void _ZN7ee72621D1Ev();
+Name_Map name_map_ee72621[] = {
+ NSPAIR(_ZN7ee72621C1Ev),
+ NSPAIR(_ZN7ee72621D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc621;
+extern VTBL_ENTRY _ZTI5cc621[];
+extern VTBL_ENTRY _ZTV5cc621[];
+extern Class_Descriptor cd_dd2621;
+extern VTBL_ENTRY _ZTI6dd2621[];
+extern VTBL_ENTRY _ZTV6dd2621[];
+static Base_Class bases_ee72621[] = {
+ // 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_bb21, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc621, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2621, 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 _ZTI7ee72621[];
+extern void _ZN7ee726213fooEv();
+extern void _ZN7ee726213barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee726213fooEv,_ZTv0_n12_N7ee726213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee726213fooEv,_ZThn8_N7ee726213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee726213barEv,_ZTv0_n16_N7ee726213barEv)();
+extern void ABISELECT(_ZThn16_N7ee726213barEv,_ZThn8_N7ee726213barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72621[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72621[0]),
+ (VTBL_ENTRY)&_ZN7ee726213fooEv,
+ (VTBL_ENTRY)&_ZN7ee726213barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72621[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee726213fooEv,_ZTv0_n12_N7ee726213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee726213barEv,_ZTv0_n16_N7ee726213barEv),
+};
+extern VTBL_ENTRY _ZTV7ee72621[];
+static VTT_ENTRY vtt_ee72621[] = {
+ {&(_ZTV7ee72621[3]), 3,11},
+ {&(_ZTV7ee72621[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee72621[];
+extern VTBL_ENTRY _ZTV7ee72621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72621[];
+static VTBL_ENTRY alt_thunk_names744[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee726213barEv,_ZTv0_n16_N7ee726213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee726213barEv,_ZThn8_N7ee726213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee726213fooEv,_ZTv0_n12_N7ee726213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee726213fooEv,_ZThn8_N7ee726213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72621 = { "ee72621", // class name
+ bases_ee72621, 4,
+ &(vtc_ee72621[0]), // expected_vtbl_contents
+ &(vtt_ee72621[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee72621),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72621),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72621),2, //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 dd3621 : virtual cc621 {
+ int d;
+ virtual void foo(); // _ZN6dd36213fooEv
+ ~dd3621(); // tgen
+ dd3621(); // tgen
+};
+//SIG(-1 dd3621) C1{ VBC2{ BC3{ BC4{ v1 Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void dd3621 ::foo(){vfunc_called(this, "_ZN6dd36213fooEv");}
+dd3621 ::~dd3621(){ note_dtor("dd3621", this);} // tgen
+dd3621 ::dd3621(){ note_ctor("dd3621", this);} // tgen
+
+static void Test_dd3621()
+{
+ extern Class_Descriptor cd_dd3621;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd3621, buf);
+ dd3621 *dp, &lv = *(dp=new (buf) dd3621());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd3621)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3621)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc621*), ABISELECT(16,8), "dd3621");
+ check_base_class_offset(lv, (bb21*)(cc621*), ABISELECT(16,8), "dd3621");
+ check_base_class_offset(lv, (cc621*), ABISELECT(16,8), "dd3621");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3621.d");
+ test_class_info(&lv, &cd_dd3621);
+ dp->~dd3621();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3621(Test_dd3621, "dd3621", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd3621C1Ev();
+extern void _ZN6dd3621D1Ev();
+Name_Map name_map_dd3621[] = {
+ NSPAIR(_ZN6dd3621C1Ev),
+ NSPAIR(_ZN6dd3621D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc621;
+extern VTBL_ENTRY _ZTI5cc621[];
+extern VTBL_ENTRY _ZTV5cc621[];
+static Base_Class bases_dd3621[] = {
+ // 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_bb21, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc621, 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 _ZTI6dd3621[];
+extern void _ZN6dd36213fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd36213fooEv,_ZTv0_n12_N6dd36213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36213fooEv,_ZThn8_N6dd36213fooEv)() __attribute__((weak));
+extern void _ZN5cc6213barEv();
+static VTBL_ENTRY vtc_dd3621[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3621[0]),
+ (VTBL_ENTRY)&_ZN6dd36213fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3621[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36213fooEv,_ZTv0_n12_N6dd36213fooEv),
+ (VTBL_ENTRY)&_ZN5cc6213barEv,
+};
+extern VTBL_ENTRY _ZTV6dd3621[];
+static VTT_ENTRY vtt_dd3621[] = {
+ {&(_ZTV6dd3621[3]), 3,10},
+ {&(_ZTV6dd3621[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd3621[];
+extern VTBL_ENTRY _ZTV6dd3621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3621[];
+static VTBL_ENTRY alt_thunk_names745[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36213fooEv,_ZTv0_n12_N6dd36213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36213fooEv,_ZThn8_N6dd36213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3621 = { "dd3621", // class name
+ bases_dd3621, 3,
+ &(vtc_dd3621[0]), // expected_vtbl_contents
+ &(vtt_dd3621[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd3621),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3621),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3621),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names745,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03621 : dd3621 {
+ int e;
+ ~ee03621(); // tgen
+ ee03621(); // tgen
+};
+//SIG(1 ee03621) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} v1 Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee03621 ::~ee03621(){ note_dtor("ee03621", this);} // tgen
+ee03621 ::ee03621(){ note_ctor("ee03621", this);} // tgen
+
+static void Test_ee03621()
+{
+ extern Class_Descriptor cd_ee03621;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee03621, buf);
+ ee03621 *dp, &lv = *(dp=new (buf) ee03621());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee03621)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03621)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc621*), ABISELECT(16,12), "ee03621");
+ check_base_class_offset(lv, (bb21*)(cc621*), ABISELECT(16,12), "ee03621");
+ check_base_class_offset(lv, (cc621*)(dd3621*), ABISELECT(16,12), "ee03621");
+ check_base_class_offset(lv, (dd3621*), 0, "ee03621");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03621.e");
+ test_class_info(&lv, &cd_ee03621);
+ dp->~ee03621();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03621(Test_ee03621, "ee03621", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee03621C1Ev();
+extern void _ZN7ee03621D1Ev();
+Name_Map name_map_ee03621[] = {
+ NSPAIR(_ZN7ee03621C1Ev),
+ NSPAIR(_ZN7ee03621D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc621;
+extern VTBL_ENTRY _ZTI5cc621[];
+extern VTBL_ENTRY _ZTV5cc621[];
+extern Class_Descriptor cd_dd3621;
+extern VTBL_ENTRY _ZTI6dd3621[];
+extern VTBL_ENTRY _ZTV6dd3621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3621[];
+static Base_Class bases_ee03621[] = {
+ // 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_bb21, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc621, 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_dd3621, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03621[];
+extern void _ZN6dd36213fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd36213fooEv,_ZTv0_n12_N6dd36213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36213fooEv,_ZThn12_N6dd36213fooEv)() __attribute__((weak));
+extern void _ZN5cc6213barEv();
+static VTBL_ENTRY vtc_ee03621[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03621[0]),
+ (VTBL_ENTRY)&_ZN6dd36213fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03621[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36213fooEv,_ZTv0_n12_N6dd36213fooEv),
+ (VTBL_ENTRY)&_ZN5cc6213barEv,
+};
+extern VTBL_ENTRY _ZTV7ee03621[];
+extern void _ZN6dd36213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3621__7ee03621[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3621[0]),
+ (VTBL_ENTRY)&_ZN6dd36213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd36213fooEv,_ZTv0_n12_N6dd36213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36213fooEv,_ZThn12_N6dd36213fooEv)() __attribute__((weak));
+extern void _ZN5cc6213barEv();
+static VTBL_ENTRY _tg__ZTV5cc621__6dd3621__7ee03621[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3621[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36213fooEv,_ZTv0_n12_N6dd36213fooEv),
+ (VTBL_ENTRY)&_ZN5cc6213barEv,
+};
+static VTT_ENTRY vtt_ee03621[] = {
+ {&(_ZTV7ee03621[3]), 3,10},
+ {&(_tg__ZTV6dd3621__7ee03621[3]), 3,4},
+ {&(_tg__ZTV5cc621__6dd3621__7ee03621[4]), 4,6},
+ {&(_ZTV7ee03621[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee03621[];
+extern VTBL_ENTRY _ZTV7ee03621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03621[];
+static VTBL_ENTRY alt_thunk_names746[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36213fooEv,_ZTv0_n12_N6dd36213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36213fooEv,_ZThn12_N6dd36213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36213fooEv,_ZThn12_N6dd36213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03621 = { "ee03621", // class name
+ bases_ee03621, 4,
+ &(vtc_ee03621[0]), // expected_vtbl_contents
+ &(vtt_ee03621[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee03621),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03621),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03621),4, //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 ee13621 : virtual dd3621 {
+ int e;
+ ~ee13621(); // tgen
+ ee13621(); // tgen
+};
+//SIG(1 ee13621) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} v1 Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee13621 ::~ee13621(){ note_dtor("ee13621", this);} // tgen
+ee13621 ::ee13621(){ note_ctor("ee13621", this);} // tgen
+
+static void Test_ee13621()
+{
+ extern Class_Descriptor cd_ee13621;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee13621, buf);
+ ee13621 *dp, &lv = *(dp=new (buf) ee13621());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee13621)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13621)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc621*), ABISELECT(32,16), "ee13621");
+ check_base_class_offset(lv, (bb21*)(cc621*), ABISELECT(32,16), "ee13621");
+ check_base_class_offset(lv, (cc621*)(dd3621*), ABISELECT(32,16), "ee13621");
+ check_base_class_offset(lv, (dd3621*), ABISELECT(16,8), "ee13621");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13621.e");
+ test_class_info(&lv, &cd_ee13621);
+ dp->~ee13621();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13621(Test_ee13621, "ee13621", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee13621C1Ev();
+extern void _ZN7ee13621D1Ev();
+Name_Map name_map_ee13621[] = {
+ NSPAIR(_ZN7ee13621C1Ev),
+ NSPAIR(_ZN7ee13621D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc621;
+extern VTBL_ENTRY _ZTI5cc621[];
+extern VTBL_ENTRY _ZTV5cc621[];
+extern Class_Descriptor cd_dd3621;
+extern VTBL_ENTRY _ZTI6dd3621[];
+extern VTBL_ENTRY _ZTV6dd3621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3621[];
+static Base_Class bases_ee13621[] = {
+ // 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_bb21, 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_cc621, 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_dd3621, 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 _ZTI7ee13621[];
+extern void _ZN6dd36213fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd36213fooEv,_ZTv0_n12_N6dd36213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36213fooEv,_ZThn8_N6dd36213fooEv)() __attribute__((weak));
+extern void _ZN5cc6213barEv();
+static VTBL_ENTRY vtc_ee13621[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13621[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13621[0]),
+ (VTBL_ENTRY)&_ZN6dd36213fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13621[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36213fooEv,_ZTv0_n12_N6dd36213fooEv),
+ (VTBL_ENTRY)&_ZN5cc6213barEv,
+};
+extern VTBL_ENTRY _ZTV7ee13621[];
+extern void _ZN6dd36213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3621__7ee13621[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3621[0]),
+ (VTBL_ENTRY)&_ZN6dd36213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd36213fooEv,_ZTv0_n12_N6dd36213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36213fooEv,_ZThn8_N6dd36213fooEv)() __attribute__((weak));
+extern void _ZN5cc6213barEv();
+static VTBL_ENTRY _tg__ZTV5cc621__6dd3621__7ee13621[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3621[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36213fooEv,_ZTv0_n12_N6dd36213fooEv),
+ (VTBL_ENTRY)&_ZN5cc6213barEv,
+};
+static VTT_ENTRY vtt_ee13621[] = {
+ {&(_ZTV7ee13621[4]), 4,15},
+ {&(_ZTV7ee13621[8]), 8,15},
+ {&(_ZTV7ee13621[13]), 13,15},
+ {&(_tg__ZTV6dd3621__7ee13621[3]), 3,4},
+ {&(_tg__ZTV5cc621__6dd3621__7ee13621[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee13621[];
+extern VTBL_ENTRY _ZTV7ee13621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13621[];
+static VTBL_ENTRY alt_thunk_names747[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36213fooEv,_ZTv0_n12_N6dd36213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36213fooEv,_ZThn8_N6dd36213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36213fooEv,_ZThn8_N6dd36213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13621 = { "ee13621", // class name
+ bases_ee13621, 4,
+ &(vtc_ee13621[0]), // expected_vtbl_contents
+ &(vtt_ee13621[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee13621),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13621),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13621),5, //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 ee23621 : dd3621 {
+ int e;
+ virtual void foo(); // _ZN7ee236213fooEv
+ ~ee23621(); // tgen
+ ee23621(); // tgen
+};
+//SIG(1 ee23621) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} v1 Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee23621 ::foo(){vfunc_called(this, "_ZN7ee236213fooEv");}
+ee23621 ::~ee23621(){ note_dtor("ee23621", this);} // tgen
+ee23621 ::ee23621(){ note_ctor("ee23621", this);} // tgen
+
+static void Test_ee23621()
+{
+ extern Class_Descriptor cd_ee23621;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee23621, buf);
+ ee23621 *dp, &lv = *(dp=new (buf) ee23621());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee23621)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23621)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc621*), ABISELECT(16,12), "ee23621");
+ check_base_class_offset(lv, (bb21*)(cc621*), ABISELECT(16,12), "ee23621");
+ check_base_class_offset(lv, (cc621*)(dd3621*), ABISELECT(16,12), "ee23621");
+ check_base_class_offset(lv, (dd3621*), 0, "ee23621");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23621.e");
+ test_class_info(&lv, &cd_ee23621);
+ dp->~ee23621();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23621(Test_ee23621, "ee23621", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee23621C1Ev();
+extern void _ZN7ee23621D1Ev();
+Name_Map name_map_ee23621[] = {
+ NSPAIR(_ZN7ee23621C1Ev),
+ NSPAIR(_ZN7ee23621D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc621;
+extern VTBL_ENTRY _ZTI5cc621[];
+extern VTBL_ENTRY _ZTV5cc621[];
+extern Class_Descriptor cd_dd3621;
+extern VTBL_ENTRY _ZTI6dd3621[];
+extern VTBL_ENTRY _ZTV6dd3621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3621[];
+static Base_Class bases_ee23621[] = {
+ // 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_bb21, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc621, 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_dd3621, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23621[];
+extern void _ZN7ee236213fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee236213fooEv,_ZTv0_n12_N7ee236213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee236213fooEv,_ZThn12_N7ee236213fooEv)() __attribute__((weak));
+extern void _ZN5cc6213barEv();
+static VTBL_ENTRY vtc_ee23621[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23621[0]),
+ (VTBL_ENTRY)&_ZN7ee236213fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23621[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee236213fooEv,_ZTv0_n12_N7ee236213fooEv),
+ (VTBL_ENTRY)&_ZN5cc6213barEv,
+};
+extern VTBL_ENTRY _ZTV7ee23621[];
+extern void _ZN6dd36213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3621__7ee23621[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3621[0]),
+ (VTBL_ENTRY)&_ZN6dd36213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd36213fooEv,_ZTv0_n12_N6dd36213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36213fooEv,_ZThn12_N6dd36213fooEv)() __attribute__((weak));
+extern void _ZN5cc6213barEv();
+static VTBL_ENTRY _tg__ZTV5cc621__6dd3621__7ee23621[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3621[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36213fooEv,_ZTv0_n12_N6dd36213fooEv),
+ (VTBL_ENTRY)&_ZN5cc6213barEv,
+};
+static VTT_ENTRY vtt_ee23621[] = {
+ {&(_ZTV7ee23621[3]), 3,10},
+ {&(_tg__ZTV6dd3621__7ee23621[3]), 3,4},
+ {&(_tg__ZTV5cc621__6dd3621__7ee23621[4]), 4,6},
+ {&(_ZTV7ee23621[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee23621[];
+extern VTBL_ENTRY _ZTV7ee23621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23621[];
+static VTBL_ENTRY alt_thunk_names748[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36213fooEv,_ZTv0_n12_N6dd36213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36213fooEv,_ZThn12_N6dd36213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee236213fooEv,_ZTv0_n12_N7ee236213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee236213fooEv,_ZThn12_N7ee236213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23621 = { "ee23621", // class name
+ bases_ee23621, 4,
+ &(vtc_ee23621[0]), // expected_vtbl_contents
+ &(vtt_ee23621[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee23621),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23621),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23621),4, //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 ee33621 : virtual dd3621 {
+ int e;
+ virtual void foo(); // _ZN7ee336213fooEv
+ ~ee33621(); // tgen
+ ee33621(); // tgen
+};
+//SIG(1 ee33621) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} v1 Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee33621 ::foo(){vfunc_called(this, "_ZN7ee336213fooEv");}
+ee33621 ::~ee33621(){ note_dtor("ee33621", this);} // tgen
+ee33621 ::ee33621(){ note_ctor("ee33621", this);} // tgen
+
+static void Test_ee33621()
+{
+ extern Class_Descriptor cd_ee33621;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee33621, buf);
+ ee33621 *dp, &lv = *(dp=new (buf) ee33621());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee33621)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33621)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc621*), ABISELECT(32,16), "ee33621");
+ check_base_class_offset(lv, (bb21*)(cc621*), ABISELECT(32,16), "ee33621");
+ check_base_class_offset(lv, (cc621*)(dd3621*), ABISELECT(32,16), "ee33621");
+ check_base_class_offset(lv, (dd3621*), ABISELECT(16,8), "ee33621");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33621.e");
+ test_class_info(&lv, &cd_ee33621);
+ dp->~ee33621();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33621(Test_ee33621, "ee33621", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee33621C1Ev();
+extern void _ZN7ee33621D1Ev();
+Name_Map name_map_ee33621[] = {
+ NSPAIR(_ZN7ee33621C1Ev),
+ NSPAIR(_ZN7ee33621D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc621;
+extern VTBL_ENTRY _ZTI5cc621[];
+extern VTBL_ENTRY _ZTV5cc621[];
+extern Class_Descriptor cd_dd3621;
+extern VTBL_ENTRY _ZTI6dd3621[];
+extern VTBL_ENTRY _ZTV6dd3621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3621[];
+static Base_Class bases_ee33621[] = {
+ // 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_bb21, 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_cc621, 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_dd3621, 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 _ZTI7ee33621[];
+extern void _ZN7ee336213fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee336213fooEv,_ZTv0_n16_N7ee336213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee336213fooEv,_ZThn8_N7ee336213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee336213fooEv,_ZTv0_n12_N7ee336213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee336213fooEv,_ZThn16_N7ee336213fooEv)() __attribute__((weak));
+extern void _ZN5cc6213barEv();
+static VTBL_ENTRY vtc_ee33621[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33621[0]),
+ (VTBL_ENTRY)&_ZN7ee336213fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33621[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee336213fooEv,_ZTv0_n16_N7ee336213fooEv),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33621[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee336213fooEv,_ZTv0_n12_N7ee336213fooEv),
+ (VTBL_ENTRY)&_ZN5cc6213barEv,
+};
+extern VTBL_ENTRY _ZTV7ee33621[];
+extern void _ZN6dd36213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3621__7ee33621[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3621[0]),
+ (VTBL_ENTRY)&_ZN6dd36213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd36213fooEv,_ZTv0_n12_N6dd36213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36213fooEv,_ZThn8_N6dd36213fooEv)() __attribute__((weak));
+extern void _ZN5cc6213barEv();
+static VTBL_ENTRY _tg__ZTV5cc621__6dd3621__7ee33621[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3621[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36213fooEv,_ZTv0_n12_N6dd36213fooEv),
+ (VTBL_ENTRY)&_ZN5cc6213barEv,
+};
+static VTT_ENTRY vtt_ee33621[] = {
+ {&(_ZTV7ee33621[4]), 4,16},
+ {&(_ZTV7ee33621[9]), 9,16},
+ {&(_ZTV7ee33621[14]), 14,16},
+ {&(_tg__ZTV6dd3621__7ee33621[3]), 3,4},
+ {&(_tg__ZTV5cc621__6dd3621__7ee33621[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee33621[];
+extern VTBL_ENTRY _ZTV7ee33621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33621[];
+static VTBL_ENTRY alt_thunk_names749[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36213fooEv,_ZTv0_n12_N6dd36213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36213fooEv,_ZThn8_N6dd36213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee336213fooEv,_ZTv0_n12_N7ee336213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee336213fooEv,_ZThn16_N7ee336213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee336213fooEv,_ZTv0_n16_N7ee336213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee336213fooEv,_ZThn8_N7ee336213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33621 = { "ee33621", // class name
+ bases_ee33621, 4,
+ &(vtc_ee33621[0]), // expected_vtbl_contents
+ &(vtt_ee33621[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee33621),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33621),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33621),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names749,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee43621 : dd3621 {
+ int e;
+ virtual void bar(); // _ZN7ee436213barEv
+ ~ee43621(); // tgen
+ ee43621(); // tgen
+};
+//SIG(1 ee43621) C1{ BC2{ VBC3{ BC4{ BC5{ v2 Fi} v2 Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee43621 ::bar(){vfunc_called(this, "_ZN7ee436213barEv");}
+ee43621 ::~ee43621(){ note_dtor("ee43621", this);} // tgen
+ee43621 ::ee43621(){ note_ctor("ee43621", this);} // tgen
+
+static void Test_ee43621()
+{
+ extern Class_Descriptor cd_ee43621;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee43621, buf);
+ ee43621 *dp, &lv = *(dp=new (buf) ee43621());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee43621)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43621)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc621*), ABISELECT(16,12), "ee43621");
+ check_base_class_offset(lv, (bb21*)(cc621*), ABISELECT(16,12), "ee43621");
+ check_base_class_offset(lv, (cc621*)(dd3621*), ABISELECT(16,12), "ee43621");
+ check_base_class_offset(lv, (dd3621*), 0, "ee43621");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43621.e");
+ test_class_info(&lv, &cd_ee43621);
+ dp->~ee43621();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43621(Test_ee43621, "ee43621", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee43621C1Ev();
+extern void _ZN7ee43621D1Ev();
+Name_Map name_map_ee43621[] = {
+ NSPAIR(_ZN7ee43621C1Ev),
+ NSPAIR(_ZN7ee43621D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc621;
+extern VTBL_ENTRY _ZTI5cc621[];
+extern VTBL_ENTRY _ZTV5cc621[];
+extern Class_Descriptor cd_dd3621;
+extern VTBL_ENTRY _ZTI6dd3621[];
+extern VTBL_ENTRY _ZTV6dd3621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3621[];
+static Base_Class bases_ee43621[] = {
+ // 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_bb21, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc621, 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_dd3621, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43621[];
+extern void _ZN6dd36213fooEv();
+extern void _ZN7ee436213barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd36213fooEv,_ZTv0_n12_N6dd36213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36213fooEv,_ZThn12_N6dd36213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee436213barEv,_ZTv0_n16_N7ee436213barEv)();
+extern void ABISELECT(_ZThn16_N7ee436213barEv,_ZThn12_N7ee436213barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43621[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43621[0]),
+ (VTBL_ENTRY)&_ZN6dd36213fooEv,
+ (VTBL_ENTRY)&_ZN7ee436213barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43621[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36213fooEv,_ZTv0_n12_N6dd36213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee436213barEv,_ZTv0_n16_N7ee436213barEv),
+};
+extern VTBL_ENTRY _ZTV7ee43621[];
+extern void _ZN6dd36213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3621__7ee43621[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3621[0]),
+ (VTBL_ENTRY)&_ZN6dd36213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd36213fooEv,_ZTv0_n12_N6dd36213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36213fooEv,_ZThn12_N6dd36213fooEv)() __attribute__((weak));
+extern void _ZN5cc6213barEv();
+static VTBL_ENTRY _tg__ZTV5cc621__6dd3621__7ee43621[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3621[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36213fooEv,_ZTv0_n12_N6dd36213fooEv),
+ (VTBL_ENTRY)&_ZN5cc6213barEv,
+};
+static VTT_ENTRY vtt_ee43621[] = {
+ {&(_ZTV7ee43621[3]), 3,11},
+ {&(_tg__ZTV6dd3621__7ee43621[3]), 3,4},
+ {&(_tg__ZTV5cc621__6dd3621__7ee43621[4]), 4,6},
+ {&(_ZTV7ee43621[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee43621[];
+extern VTBL_ENTRY _ZTV7ee43621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43621[];
+static VTBL_ENTRY alt_thunk_names750[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee436213barEv,_ZTv0_n16_N7ee436213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee436213barEv,_ZThn12_N7ee436213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36213fooEv,_ZTv0_n12_N6dd36213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36213fooEv,_ZThn12_N6dd36213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36213fooEv,_ZThn12_N6dd36213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43621 = { "ee43621", // class name
+ bases_ee43621, 4,
+ &(vtc_ee43621[0]), // expected_vtbl_contents
+ &(vtt_ee43621[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee43621),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43621),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43621),4, //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 ee53621 : virtual dd3621 {
+ int e;
+ virtual void bar(); // _ZN7ee536213barEv
+ ~ee53621(); // tgen
+ ee53621(); // tgen
+};
+//SIG(1 ee53621) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 Fi} v2 Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee53621 ::bar(){vfunc_called(this, "_ZN7ee536213barEv");}
+ee53621 ::~ee53621(){ note_dtor("ee53621", this);} // tgen
+ee53621 ::ee53621(){ note_ctor("ee53621", this);} // tgen
+
+static void Test_ee53621()
+{
+ extern Class_Descriptor cd_ee53621;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee53621, buf);
+ ee53621 *dp, &lv = *(dp=new (buf) ee53621());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee53621)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53621)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc621*), ABISELECT(32,16), "ee53621");
+ check_base_class_offset(lv, (bb21*)(cc621*), ABISELECT(32,16), "ee53621");
+ check_base_class_offset(lv, (cc621*)(dd3621*), ABISELECT(32,16), "ee53621");
+ check_base_class_offset(lv, (dd3621*), ABISELECT(16,8), "ee53621");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53621.e");
+ test_class_info(&lv, &cd_ee53621);
+ dp->~ee53621();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53621(Test_ee53621, "ee53621", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee53621C1Ev();
+extern void _ZN7ee53621D1Ev();
+Name_Map name_map_ee53621[] = {
+ NSPAIR(_ZN7ee53621C1Ev),
+ NSPAIR(_ZN7ee53621D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc621;
+extern VTBL_ENTRY _ZTI5cc621[];
+extern VTBL_ENTRY _ZTV5cc621[];
+extern Class_Descriptor cd_dd3621;
+extern VTBL_ENTRY _ZTI6dd3621[];
+extern VTBL_ENTRY _ZTV6dd3621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3621[];
+static Base_Class bases_ee53621[] = {
+ // 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_bb21, 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_cc621, 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_dd3621, 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 _ZTI7ee53621[];
+extern void _ZN7ee536213barEv();
+extern void _ZN6dd36213fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd36213fooEv,_ZTv0_n12_N6dd36213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36213fooEv,_ZThn8_N6dd36213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee536213barEv,_ZTv0_n16_N7ee536213barEv)();
+extern void ABISELECT(_ZThn32_N7ee536213barEv,_ZThn16_N7ee536213barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53621[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53621[0]),
+ (VTBL_ENTRY)&_ZN7ee536213barEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53621[0]),
+ (VTBL_ENTRY)&_ZN6dd36213fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53621[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36213fooEv,_ZTv0_n12_N6dd36213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee536213barEv,_ZTv0_n16_N7ee536213barEv),
+};
+extern VTBL_ENTRY _ZTV7ee53621[];
+extern void _ZN6dd36213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3621__7ee53621[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3621[0]),
+ (VTBL_ENTRY)&_ZN6dd36213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd36213fooEv,_ZTv0_n12_N6dd36213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36213fooEv,_ZThn8_N6dd36213fooEv)() __attribute__((weak));
+extern void _ZN5cc6213barEv();
+static VTBL_ENTRY _tg__ZTV5cc621__6dd3621__7ee53621[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3621[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36213fooEv,_ZTv0_n12_N6dd36213fooEv),
+ (VTBL_ENTRY)&_ZN5cc6213barEv,
+};
+static VTT_ENTRY vtt_ee53621[] = {
+ {&(_ZTV7ee53621[4]), 4,16},
+ {&(_ZTV7ee53621[9]), 9,16},
+ {&(_ZTV7ee53621[14]), 14,16},
+ {&(_tg__ZTV6dd3621__7ee53621[3]), 3,4},
+ {&(_tg__ZTV5cc621__6dd3621__7ee53621[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee53621[];
+extern VTBL_ENTRY _ZTV7ee53621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53621[];
+static VTBL_ENTRY alt_thunk_names751[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee536213barEv,_ZTv0_n16_N7ee536213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee536213barEv,_ZThn16_N7ee536213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36213fooEv,_ZTv0_n12_N6dd36213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36213fooEv,_ZThn8_N6dd36213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36213fooEv,_ZThn8_N6dd36213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53621 = { "ee53621", // class name
+ bases_ee53621, 4,
+ &(vtc_ee53621[0]), // expected_vtbl_contents
+ &(vtt_ee53621[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee53621),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53621),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53621),5, //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 ee63621 : dd3621 {
+ int e;
+ virtual void foo(); // _ZN7ee636213fooEv
+ virtual void bar(); // _ZN7ee636213barEv
+ ~ee63621(); // tgen
+ ee63621(); // tgen
+};
+//SIG(1 ee63621) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} v1 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63621 ::foo(){vfunc_called(this, "_ZN7ee636213fooEv");}
+void ee63621 ::bar(){vfunc_called(this, "_ZN7ee636213barEv");}
+ee63621 ::~ee63621(){ note_dtor("ee63621", this);} // tgen
+ee63621 ::ee63621(){ note_ctor("ee63621", this);} // tgen
+
+static void Test_ee63621()
+{
+ extern Class_Descriptor cd_ee63621;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee63621, buf);
+ ee63621 *dp, &lv = *(dp=new (buf) ee63621());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee63621)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63621)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc621*), ABISELECT(16,12), "ee63621");
+ check_base_class_offset(lv, (bb21*)(cc621*), ABISELECT(16,12), "ee63621");
+ check_base_class_offset(lv, (cc621*)(dd3621*), ABISELECT(16,12), "ee63621");
+ check_base_class_offset(lv, (dd3621*), 0, "ee63621");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63621.e");
+ test_class_info(&lv, &cd_ee63621);
+ dp->~ee63621();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63621(Test_ee63621, "ee63621", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee63621C1Ev();
+extern void _ZN7ee63621D1Ev();
+Name_Map name_map_ee63621[] = {
+ NSPAIR(_ZN7ee63621C1Ev),
+ NSPAIR(_ZN7ee63621D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc621;
+extern VTBL_ENTRY _ZTI5cc621[];
+extern VTBL_ENTRY _ZTV5cc621[];
+extern Class_Descriptor cd_dd3621;
+extern VTBL_ENTRY _ZTI6dd3621[];
+extern VTBL_ENTRY _ZTV6dd3621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3621[];
+static Base_Class bases_ee63621[] = {
+ // 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_bb21, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc621, 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_dd3621, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63621[];
+extern void _ZN7ee636213fooEv();
+extern void _ZN7ee636213barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee636213fooEv,_ZTv0_n12_N7ee636213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee636213fooEv,_ZThn12_N7ee636213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee636213barEv,_ZTv0_n16_N7ee636213barEv)();
+extern void ABISELECT(_ZThn16_N7ee636213barEv,_ZThn12_N7ee636213barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63621[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63621[0]),
+ (VTBL_ENTRY)&_ZN7ee636213fooEv,
+ (VTBL_ENTRY)&_ZN7ee636213barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63621[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee636213fooEv,_ZTv0_n12_N7ee636213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee636213barEv,_ZTv0_n16_N7ee636213barEv),
+};
+extern VTBL_ENTRY _ZTV7ee63621[];
+extern void _ZN6dd36213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3621__7ee63621[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3621[0]),
+ (VTBL_ENTRY)&_ZN6dd36213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd36213fooEv,_ZTv0_n12_N6dd36213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36213fooEv,_ZThn12_N6dd36213fooEv)() __attribute__((weak));
+extern void _ZN5cc6213barEv();
+static VTBL_ENTRY _tg__ZTV5cc621__6dd3621__7ee63621[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3621[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36213fooEv,_ZTv0_n12_N6dd36213fooEv),
+ (VTBL_ENTRY)&_ZN5cc6213barEv,
+};
+static VTT_ENTRY vtt_ee63621[] = {
+ {&(_ZTV7ee63621[3]), 3,11},
+ {&(_tg__ZTV6dd3621__7ee63621[3]), 3,4},
+ {&(_tg__ZTV5cc621__6dd3621__7ee63621[4]), 4,6},
+ {&(_ZTV7ee63621[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee63621[];
+extern VTBL_ENTRY _ZTV7ee63621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63621[];
+static VTBL_ENTRY alt_thunk_names752[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36213fooEv,_ZTv0_n12_N6dd36213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36213fooEv,_ZThn12_N6dd36213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee636213barEv,_ZTv0_n16_N7ee636213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee636213barEv,_ZThn12_N7ee636213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee636213fooEv,_ZTv0_n12_N7ee636213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee636213fooEv,_ZThn12_N7ee636213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63621 = { "ee63621", // class name
+ bases_ee63621, 4,
+ &(vtc_ee63621[0]), // expected_vtbl_contents
+ &(vtt_ee63621[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee63621),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63621),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63621),4, //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 ee73621 : virtual dd3621 {
+ int e;
+ virtual void foo(); // _ZN7ee736213fooEv
+ virtual void bar(); // _ZN7ee736213barEv
+ ~ee73621(); // tgen
+ ee73621(); // tgen
+};
+//SIG(1 ee73621) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} v1 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73621 ::foo(){vfunc_called(this, "_ZN7ee736213fooEv");}
+void ee73621 ::bar(){vfunc_called(this, "_ZN7ee736213barEv");}
+ee73621 ::~ee73621(){ note_dtor("ee73621", this);} // tgen
+ee73621 ::ee73621(){ note_ctor("ee73621", this);} // tgen
+
+static void Test_ee73621()
+{
+ extern Class_Descriptor cd_ee73621;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee73621, buf);
+ ee73621 *dp, &lv = *(dp=new (buf) ee73621());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee73621)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73621)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc621*), ABISELECT(32,16), "ee73621");
+ check_base_class_offset(lv, (bb21*)(cc621*), ABISELECT(32,16), "ee73621");
+ check_base_class_offset(lv, (cc621*)(dd3621*), ABISELECT(32,16), "ee73621");
+ check_base_class_offset(lv, (dd3621*), ABISELECT(16,8), "ee73621");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73621.e");
+ test_class_info(&lv, &cd_ee73621);
+ dp->~ee73621();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73621(Test_ee73621, "ee73621", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee73621C1Ev();
+extern void _ZN7ee73621D1Ev();
+Name_Map name_map_ee73621[] = {
+ NSPAIR(_ZN7ee73621C1Ev),
+ NSPAIR(_ZN7ee73621D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc621;
+extern VTBL_ENTRY _ZTI5cc621[];
+extern VTBL_ENTRY _ZTV5cc621[];
+extern Class_Descriptor cd_dd3621;
+extern VTBL_ENTRY _ZTI6dd3621[];
+extern VTBL_ENTRY _ZTV6dd3621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3621[];
+static Base_Class bases_ee73621[] = {
+ // 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_bb21, 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_cc621, 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_dd3621, 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 _ZTI7ee73621[];
+extern void _ZN7ee736213fooEv();
+extern void _ZN7ee736213barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee736213fooEv,_ZTv0_n16_N7ee736213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee736213fooEv,_ZThn8_N7ee736213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee736213fooEv,_ZTv0_n12_N7ee736213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee736213fooEv,_ZThn16_N7ee736213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee736213barEv,_ZTv0_n16_N7ee736213barEv)();
+extern void ABISELECT(_ZThn32_N7ee736213barEv,_ZThn16_N7ee736213barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73621[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73621[0]),
+ (VTBL_ENTRY)&_ZN7ee736213fooEv,
+ (VTBL_ENTRY)&_ZN7ee736213barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73621[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee736213fooEv,_ZTv0_n16_N7ee736213fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73621[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee736213fooEv,_ZTv0_n12_N7ee736213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee736213barEv,_ZTv0_n16_N7ee736213barEv),
+};
+extern VTBL_ENTRY _ZTV7ee73621[];
+extern void _ZN6dd36213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3621__7ee73621[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3621[0]),
+ (VTBL_ENTRY)&_ZN6dd36213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd36213fooEv,_ZTv0_n12_N6dd36213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36213fooEv,_ZThn8_N6dd36213fooEv)() __attribute__((weak));
+extern void _ZN5cc6213barEv();
+static VTBL_ENTRY _tg__ZTV5cc621__6dd3621__7ee73621[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3621[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36213fooEv,_ZTv0_n12_N6dd36213fooEv),
+ (VTBL_ENTRY)&_ZN5cc6213barEv,
+};
+static VTT_ENTRY vtt_ee73621[] = {
+ {&(_ZTV7ee73621[4]), 4,17},
+ {&(_ZTV7ee73621[10]), 10,17},
+ {&(_ZTV7ee73621[15]), 15,17},
+ {&(_tg__ZTV6dd3621__7ee73621[3]), 3,4},
+ {&(_tg__ZTV5cc621__6dd3621__7ee73621[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee73621[];
+extern VTBL_ENTRY _ZTV7ee73621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73621[];
+static VTBL_ENTRY alt_thunk_names753[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36213fooEv,_ZTv0_n12_N6dd36213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36213fooEv,_ZThn8_N6dd36213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee736213barEv,_ZTv0_n16_N7ee736213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee736213barEv,_ZThn16_N7ee736213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee736213fooEv,_ZTv0_n12_N7ee736213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee736213fooEv,_ZThn16_N7ee736213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee736213fooEv,_ZTv0_n16_N7ee736213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee736213fooEv,_ZThn8_N7ee736213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73621 = { "ee73621", // class name
+ bases_ee73621, 4,
+ &(vtc_ee73621[0]), // expected_vtbl_contents
+ &(vtt_ee73621[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee73621),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73621),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73621),5, //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 dd4621 : cc621 {
+ int d;
+ virtual void bar(); // _ZN6dd46213barEv
+ ~dd4621(); // tgen
+ dd4621(); // tgen
+};
+//SIG(-1 dd4621) C1{ BC2{ BC3{ BC4{ v2 Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void dd4621 ::bar(){vfunc_called(this, "_ZN6dd46213barEv");}
+dd4621 ::~dd4621(){ note_dtor("dd4621", this);} // tgen
+dd4621 ::dd4621(){ note_ctor("dd4621", this);} // tgen
+
+static void Test_dd4621()
+{
+ extern Class_Descriptor cd_dd4621;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd4621, buf);
+ dd4621 *dp, &lv = *(dp=new (buf) dd4621());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd4621)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4621)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc621*), 0, "dd4621");
+ check_base_class_offset(lv, (bb21*)(cc621*), 0, "dd4621");
+ check_base_class_offset(lv, (cc621*), 0, "dd4621");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd4621.d");
+ test_class_info(&lv, &cd_dd4621);
+ dp->~dd4621();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4621(Test_dd4621, "dd4621", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd4621C1Ev();
+extern void _ZN6dd4621D1Ev();
+Name_Map name_map_dd4621[] = {
+ NSPAIR(_ZN6dd4621C1Ev),
+ NSPAIR(_ZN6dd4621D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc621;
+extern VTBL_ENTRY _ZTI5cc621[];
+extern VTBL_ENTRY _ZTV5cc621[];
+static Base_Class bases_dd4621[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc621, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI6dd4621[];
+extern void _ZN5cc6213fooEv();
+extern void _ZN6dd46213barEv();
+static VTBL_ENTRY vtc_dd4621[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4621[0]),
+ (VTBL_ENTRY)&_ZN5cc6213fooEv,
+ (VTBL_ENTRY)&_ZN6dd46213barEv,
+};
+extern VTBL_ENTRY _ZTI6dd4621[];
+extern VTBL_ENTRY _ZTV6dd4621[];
+Class_Descriptor cd_dd4621 = { "dd4621", // class name
+ bases_dd4621, 3,
+ &(vtc_dd4621[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd4621),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4621),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 ee04621 : dd4621 {
+ int e;
+ ~ee04621(); // tgen
+ ee04621(); // tgen
+};
+//SIG(1 ee04621) C1{ BC2{ BC3{ BC4{ BC5{ v2 Fi} v2 Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee04621 ::~ee04621(){ note_dtor("ee04621", this);} // tgen
+ee04621 ::ee04621(){ note_ctor("ee04621", this);} // tgen
+
+static void Test_ee04621()
+{
+ extern Class_Descriptor cd_ee04621;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee04621, buf);
+ ee04621 *dp, &lv = *(dp=new (buf) ee04621());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee04621)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04621)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc621*)(dd4621*), 0, "ee04621");
+ check_base_class_offset(lv, (bb21*)(cc621*)(dd4621*), 0, "ee04621");
+ check_base_class_offset(lv, (cc621*)(dd4621*), 0, "ee04621");
+ check_base_class_offset(lv, (dd4621*), 0, "ee04621");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee04621.e");
+ test_class_info(&lv, &cd_ee04621);
+ dp->~ee04621();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04621(Test_ee04621, "ee04621", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee04621C1Ev();
+extern void _ZN7ee04621D1Ev();
+Name_Map name_map_ee04621[] = {
+ NSPAIR(_ZN7ee04621C1Ev),
+ NSPAIR(_ZN7ee04621D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc621;
+extern VTBL_ENTRY _ZTI5cc621[];
+extern VTBL_ENTRY _ZTV5cc621[];
+extern Class_Descriptor cd_dd4621;
+extern VTBL_ENTRY _ZTI6dd4621[];
+extern VTBL_ENTRY _ZTV6dd4621[];
+static Base_Class bases_ee04621[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc621, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4621, 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 _ZTI7ee04621[];
+extern void _ZN5cc6213fooEv();
+extern void _ZN6dd46213barEv();
+static VTBL_ENTRY vtc_ee04621[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04621[0]),
+ (VTBL_ENTRY)&_ZN5cc6213fooEv,
+ (VTBL_ENTRY)&_ZN6dd46213barEv,
+};
+extern VTBL_ENTRY _ZTI7ee04621[];
+extern VTBL_ENTRY _ZTV7ee04621[];
+Class_Descriptor cd_ee04621 = { "ee04621", // class name
+ bases_ee04621, 4,
+ &(vtc_ee04621[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee04621),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04621),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 ee14621 : virtual dd4621 {
+ int e;
+ ~ee14621(); // tgen
+ ee14621(); // tgen
+};
+//SIG(1 ee14621) C1{ VBC2{ BC3{ BC4{ BC5{ v2 Fi} v2 Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee14621 ::~ee14621(){ note_dtor("ee14621", this);} // tgen
+ee14621 ::ee14621(){ note_ctor("ee14621", this);} // tgen
+
+static void Test_ee14621()
+{
+ extern Class_Descriptor cd_ee14621;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee14621, buf);
+ ee14621 *dp, &lv = *(dp=new (buf) ee14621());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee14621)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14621)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc621*)(dd4621*), ABISELECT(16,8), "ee14621");
+ check_base_class_offset(lv, (bb21*)(cc621*)(dd4621*), ABISELECT(16,8), "ee14621");
+ check_base_class_offset(lv, (cc621*)(dd4621*), ABISELECT(16,8), "ee14621");
+ check_base_class_offset(lv, (dd4621*), ABISELECT(16,8), "ee14621");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14621.e");
+ test_class_info(&lv, &cd_ee14621);
+ dp->~ee14621();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14621(Test_ee14621, "ee14621", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee14621C1Ev();
+extern void _ZN7ee14621D1Ev();
+Name_Map name_map_ee14621[] = {
+ NSPAIR(_ZN7ee14621C1Ev),
+ NSPAIR(_ZN7ee14621D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc621;
+extern VTBL_ENTRY _ZTI5cc621[];
+extern VTBL_ENTRY _ZTV5cc621[];
+extern Class_Descriptor cd_dd4621;
+extern VTBL_ENTRY _ZTI6dd4621[];
+extern VTBL_ENTRY _ZTV6dd4621[];
+static Base_Class bases_ee14621[] = {
+ // 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_bb21, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc621, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4621, 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 _ZTI7ee14621[];
+extern void _ZN5cc6213fooEv();
+extern void _ZN6dd46213barEv();
+static VTBL_ENTRY vtc_ee14621[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14621[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14621[0]),
+ (VTBL_ENTRY)&_ZN5cc6213fooEv,
+ (VTBL_ENTRY)&_ZN6dd46213barEv,
+};
+extern VTBL_ENTRY _ZTV7ee14621[];
+static VTT_ENTRY vtt_ee14621[] = {
+ {&(_ZTV7ee14621[3]), 3,9},
+ {&(_ZTV7ee14621[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee14621[];
+extern VTBL_ENTRY _ZTV7ee14621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14621[];
+Class_Descriptor cd_ee14621 = { "ee14621", // class name
+ bases_ee14621, 4,
+ &(vtc_ee14621[0]), // expected_vtbl_contents
+ &(vtt_ee14621[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee14621),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14621),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14621),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 ee24621 : dd4621 {
+ int e;
+ virtual void foo(); // _ZN7ee246213fooEv
+ ~ee24621(); // tgen
+ ee24621(); // tgen
+};
+//SIG(1 ee24621) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} v1 Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee24621 ::foo(){vfunc_called(this, "_ZN7ee246213fooEv");}
+ee24621 ::~ee24621(){ note_dtor("ee24621", this);} // tgen
+ee24621 ::ee24621(){ note_ctor("ee24621", this);} // tgen
+
+static void Test_ee24621()
+{
+ extern Class_Descriptor cd_ee24621;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee24621, buf);
+ ee24621 *dp, &lv = *(dp=new (buf) ee24621());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee24621)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24621)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc621*)(dd4621*), 0, "ee24621");
+ check_base_class_offset(lv, (bb21*)(cc621*)(dd4621*), 0, "ee24621");
+ check_base_class_offset(lv, (cc621*)(dd4621*), 0, "ee24621");
+ check_base_class_offset(lv, (dd4621*), 0, "ee24621");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee24621.e");
+ test_class_info(&lv, &cd_ee24621);
+ dp->~ee24621();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24621(Test_ee24621, "ee24621", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee24621C1Ev();
+extern void _ZN7ee24621D1Ev();
+Name_Map name_map_ee24621[] = {
+ NSPAIR(_ZN7ee24621C1Ev),
+ NSPAIR(_ZN7ee24621D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc621;
+extern VTBL_ENTRY _ZTI5cc621[];
+extern VTBL_ENTRY _ZTV5cc621[];
+extern Class_Descriptor cd_dd4621;
+extern VTBL_ENTRY _ZTI6dd4621[];
+extern VTBL_ENTRY _ZTV6dd4621[];
+static Base_Class bases_ee24621[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc621, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4621, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee24621[];
+extern void _ZN7ee246213fooEv();
+extern void _ZN6dd46213barEv();
+static VTBL_ENTRY vtc_ee24621[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24621[0]),
+ (VTBL_ENTRY)&_ZN7ee246213fooEv,
+ (VTBL_ENTRY)&_ZN6dd46213barEv,
+};
+extern VTBL_ENTRY _ZTI7ee24621[];
+extern VTBL_ENTRY _ZTV7ee24621[];
+Class_Descriptor cd_ee24621 = { "ee24621", // class name
+ bases_ee24621, 4,
+ &(vtc_ee24621[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee24621),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24621),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 ee34621 : virtual dd4621 {
+ int e;
+ virtual void foo(); // _ZN7ee346213fooEv
+ ~ee34621(); // tgen
+ ee34621(); // tgen
+};
+//SIG(1 ee34621) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} v1 Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee34621 ::foo(){vfunc_called(this, "_ZN7ee346213fooEv");}
+ee34621 ::~ee34621(){ note_dtor("ee34621", this);} // tgen
+ee34621 ::ee34621(){ note_ctor("ee34621", this);} // tgen
+
+static void Test_ee34621()
+{
+ extern Class_Descriptor cd_ee34621;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee34621, buf);
+ ee34621 *dp, &lv = *(dp=new (buf) ee34621());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee34621)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34621)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc621*)(dd4621*), ABISELECT(16,8), "ee34621");
+ check_base_class_offset(lv, (bb21*)(cc621*)(dd4621*), ABISELECT(16,8), "ee34621");
+ check_base_class_offset(lv, (cc621*)(dd4621*), ABISELECT(16,8), "ee34621");
+ check_base_class_offset(lv, (dd4621*), ABISELECT(16,8), "ee34621");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34621.e");
+ test_class_info(&lv, &cd_ee34621);
+ dp->~ee34621();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34621(Test_ee34621, "ee34621", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee34621C1Ev();
+extern void _ZN7ee34621D1Ev();
+Name_Map name_map_ee34621[] = {
+ NSPAIR(_ZN7ee34621C1Ev),
+ NSPAIR(_ZN7ee34621D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc621;
+extern VTBL_ENTRY _ZTI5cc621[];
+extern VTBL_ENTRY _ZTV5cc621[];
+extern Class_Descriptor cd_dd4621;
+extern VTBL_ENTRY _ZTI6dd4621[];
+extern VTBL_ENTRY _ZTV6dd4621[];
+static Base_Class bases_ee34621[] = {
+ // 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_bb21, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc621, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4621, 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 _ZTI7ee34621[];
+extern void _ZN7ee346213fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee346213fooEv,_ZTv0_n12_N7ee346213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee346213fooEv,_ZThn8_N7ee346213fooEv)() __attribute__((weak));
+extern void _ZN6dd46213barEv();
+static VTBL_ENTRY vtc_ee34621[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34621[0]),
+ (VTBL_ENTRY)&_ZN7ee346213fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34621[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee346213fooEv,_ZTv0_n12_N7ee346213fooEv),
+ (VTBL_ENTRY)&_ZN6dd46213barEv,
+};
+extern VTBL_ENTRY _ZTV7ee34621[];
+static VTT_ENTRY vtt_ee34621[] = {
+ {&(_ZTV7ee34621[3]), 3,10},
+ {&(_ZTV7ee34621[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee34621[];
+extern VTBL_ENTRY _ZTV7ee34621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34621[];
+static VTBL_ENTRY alt_thunk_names754[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee346213fooEv,_ZTv0_n12_N7ee346213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee346213fooEv,_ZThn8_N7ee346213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34621 = { "ee34621", // class name
+ bases_ee34621, 4,
+ &(vtc_ee34621[0]), // expected_vtbl_contents
+ &(vtt_ee34621[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee34621),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34621),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34621),2, //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 ee44621 : dd4621 {
+ int e;
+ virtual void bar(); // _ZN7ee446213barEv
+ ~ee44621(); // tgen
+ ee44621(); // tgen
+};
+//SIG(1 ee44621) C1{ BC2{ BC3{ BC4{ BC5{ v2 Fi} v2 Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee44621 ::bar(){vfunc_called(this, "_ZN7ee446213barEv");}
+ee44621 ::~ee44621(){ note_dtor("ee44621", this);} // tgen
+ee44621 ::ee44621(){ note_ctor("ee44621", this);} // tgen
+
+static void Test_ee44621()
+{
+ extern Class_Descriptor cd_ee44621;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee44621, buf);
+ ee44621 *dp, &lv = *(dp=new (buf) ee44621());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee44621)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44621)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc621*)(dd4621*), 0, "ee44621");
+ check_base_class_offset(lv, (bb21*)(cc621*)(dd4621*), 0, "ee44621");
+ check_base_class_offset(lv, (cc621*)(dd4621*), 0, "ee44621");
+ check_base_class_offset(lv, (dd4621*), 0, "ee44621");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee44621.e");
+ test_class_info(&lv, &cd_ee44621);
+ dp->~ee44621();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44621(Test_ee44621, "ee44621", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee44621C1Ev();
+extern void _ZN7ee44621D1Ev();
+Name_Map name_map_ee44621[] = {
+ NSPAIR(_ZN7ee44621C1Ev),
+ NSPAIR(_ZN7ee44621D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc621;
+extern VTBL_ENTRY _ZTI5cc621[];
+extern VTBL_ENTRY _ZTV5cc621[];
+extern Class_Descriptor cd_dd4621;
+extern VTBL_ENTRY _ZTI6dd4621[];
+extern VTBL_ENTRY _ZTV6dd4621[];
+static Base_Class bases_ee44621[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc621, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4621, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee44621[];
+extern void _ZN5cc6213fooEv();
+extern void _ZN7ee446213barEv();
+static VTBL_ENTRY vtc_ee44621[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44621[0]),
+ (VTBL_ENTRY)&_ZN5cc6213fooEv,
+ (VTBL_ENTRY)&_ZN7ee446213barEv,
+};
+extern VTBL_ENTRY _ZTI7ee44621[];
+extern VTBL_ENTRY _ZTV7ee44621[];
+Class_Descriptor cd_ee44621 = { "ee44621", // class name
+ bases_ee44621, 4,
+ &(vtc_ee44621[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee44621),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44621),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 ee54621 : virtual dd4621 {
+ int e;
+ virtual void bar(); // _ZN7ee546213barEv
+ ~ee54621(); // tgen
+ ee54621(); // tgen
+};
+//SIG(1 ee54621) C1{ VBC2{ BC3{ BC4{ BC5{ v2 Fi} v2 Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee54621 ::bar(){vfunc_called(this, "_ZN7ee546213barEv");}
+ee54621 ::~ee54621(){ note_dtor("ee54621", this);} // tgen
+ee54621 ::ee54621(){ note_ctor("ee54621", this);} // tgen
+
+static void Test_ee54621()
+{
+ extern Class_Descriptor cd_ee54621;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee54621, buf);
+ ee54621 *dp, &lv = *(dp=new (buf) ee54621());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee54621)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54621)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc621*)(dd4621*), ABISELECT(16,8), "ee54621");
+ check_base_class_offset(lv, (bb21*)(cc621*)(dd4621*), ABISELECT(16,8), "ee54621");
+ check_base_class_offset(lv, (cc621*)(dd4621*), ABISELECT(16,8), "ee54621");
+ check_base_class_offset(lv, (dd4621*), ABISELECT(16,8), "ee54621");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54621.e");
+ test_class_info(&lv, &cd_ee54621);
+ dp->~ee54621();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54621(Test_ee54621, "ee54621", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee54621C1Ev();
+extern void _ZN7ee54621D1Ev();
+Name_Map name_map_ee54621[] = {
+ NSPAIR(_ZN7ee54621C1Ev),
+ NSPAIR(_ZN7ee54621D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc621;
+extern VTBL_ENTRY _ZTI5cc621[];
+extern VTBL_ENTRY _ZTV5cc621[];
+extern Class_Descriptor cd_dd4621;
+extern VTBL_ENTRY _ZTI6dd4621[];
+extern VTBL_ENTRY _ZTV6dd4621[];
+static Base_Class bases_ee54621[] = {
+ // 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_bb21, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc621, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4621, 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 _ZTI7ee54621[];
+extern void _ZN7ee546213barEv();
+extern void _ZN5cc6213fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee546213barEv,_ZTv0_n16_N7ee546213barEv)();
+extern void ABISELECT(_ZThn16_N7ee546213barEv,_ZThn8_N7ee546213barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54621[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54621[0]),
+ (VTBL_ENTRY)&_ZN7ee546213barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54621[0]),
+ (VTBL_ENTRY)&_ZN5cc6213fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee546213barEv,_ZTv0_n16_N7ee546213barEv),
+};
+extern VTBL_ENTRY _ZTV7ee54621[];
+static VTT_ENTRY vtt_ee54621[] = {
+ {&(_ZTV7ee54621[3]), 3,10},
+ {&(_ZTV7ee54621[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee54621[];
+extern VTBL_ENTRY _ZTV7ee54621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54621[];
+static VTBL_ENTRY alt_thunk_names755[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee546213barEv,_ZTv0_n16_N7ee546213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee546213barEv,_ZThn8_N7ee546213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54621 = { "ee54621", // class name
+ bases_ee54621, 4,
+ &(vtc_ee54621[0]), // expected_vtbl_contents
+ &(vtt_ee54621[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee54621),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54621),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54621),2, //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 ee64621 : dd4621 {
+ int e;
+ virtual void foo(); // _ZN7ee646213fooEv
+ virtual void bar(); // _ZN7ee646213barEv
+ ~ee64621(); // tgen
+ ee64621(); // tgen
+};
+//SIG(1 ee64621) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} v1 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64621 ::foo(){vfunc_called(this, "_ZN7ee646213fooEv");}
+void ee64621 ::bar(){vfunc_called(this, "_ZN7ee646213barEv");}
+ee64621 ::~ee64621(){ note_dtor("ee64621", this);} // tgen
+ee64621 ::ee64621(){ note_ctor("ee64621", this);} // tgen
+
+static void Test_ee64621()
+{
+ extern Class_Descriptor cd_ee64621;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee64621, buf);
+ ee64621 *dp, &lv = *(dp=new (buf) ee64621());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee64621)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64621)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc621*)(dd4621*), 0, "ee64621");
+ check_base_class_offset(lv, (bb21*)(cc621*)(dd4621*), 0, "ee64621");
+ check_base_class_offset(lv, (cc621*)(dd4621*), 0, "ee64621");
+ check_base_class_offset(lv, (dd4621*), 0, "ee64621");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee64621.e");
+ test_class_info(&lv, &cd_ee64621);
+ dp->~ee64621();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64621(Test_ee64621, "ee64621", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee64621C1Ev();
+extern void _ZN7ee64621D1Ev();
+Name_Map name_map_ee64621[] = {
+ NSPAIR(_ZN7ee64621C1Ev),
+ NSPAIR(_ZN7ee64621D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc621;
+extern VTBL_ENTRY _ZTI5cc621[];
+extern VTBL_ENTRY _ZTV5cc621[];
+extern Class_Descriptor cd_dd4621;
+extern VTBL_ENTRY _ZTI6dd4621[];
+extern VTBL_ENTRY _ZTV6dd4621[];
+static Base_Class bases_ee64621[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc621, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4621, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee64621[];
+extern void _ZN7ee646213fooEv();
+extern void _ZN7ee646213barEv();
+static VTBL_ENTRY vtc_ee64621[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64621[0]),
+ (VTBL_ENTRY)&_ZN7ee646213fooEv,
+ (VTBL_ENTRY)&_ZN7ee646213barEv,
+};
+extern VTBL_ENTRY _ZTI7ee64621[];
+extern VTBL_ENTRY _ZTV7ee64621[];
+Class_Descriptor cd_ee64621 = { "ee64621", // class name
+ bases_ee64621, 4,
+ &(vtc_ee64621[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee64621),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64621),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 ee74621 : virtual dd4621 {
+ int e;
+ virtual void foo(); // _ZN7ee746213fooEv
+ virtual void bar(); // _ZN7ee746213barEv
+ ~ee74621(); // tgen
+ ee74621(); // tgen
+};
+//SIG(1 ee74621) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} v1 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74621 ::foo(){vfunc_called(this, "_ZN7ee746213fooEv");}
+void ee74621 ::bar(){vfunc_called(this, "_ZN7ee746213barEv");}
+ee74621 ::~ee74621(){ note_dtor("ee74621", this);} // tgen
+ee74621 ::ee74621(){ note_ctor("ee74621", this);} // tgen
+
+static void Test_ee74621()
+{
+ extern Class_Descriptor cd_ee74621;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee74621, buf);
+ ee74621 *dp, &lv = *(dp=new (buf) ee74621());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee74621)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74621)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc621*)(dd4621*), ABISELECT(16,8), "ee74621");
+ check_base_class_offset(lv, (bb21*)(cc621*)(dd4621*), ABISELECT(16,8), "ee74621");
+ check_base_class_offset(lv, (cc621*)(dd4621*), ABISELECT(16,8), "ee74621");
+ check_base_class_offset(lv, (dd4621*), ABISELECT(16,8), "ee74621");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74621.e");
+ test_class_info(&lv, &cd_ee74621);
+ dp->~ee74621();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74621(Test_ee74621, "ee74621", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee74621C1Ev();
+extern void _ZN7ee74621D1Ev();
+Name_Map name_map_ee74621[] = {
+ NSPAIR(_ZN7ee74621C1Ev),
+ NSPAIR(_ZN7ee74621D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc621;
+extern VTBL_ENTRY _ZTI5cc621[];
+extern VTBL_ENTRY _ZTV5cc621[];
+extern Class_Descriptor cd_dd4621;
+extern VTBL_ENTRY _ZTI6dd4621[];
+extern VTBL_ENTRY _ZTV6dd4621[];
+static Base_Class bases_ee74621[] = {
+ // 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_bb21, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc621, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4621, 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 _ZTI7ee74621[];
+extern void _ZN7ee746213fooEv();
+extern void _ZN7ee746213barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee746213fooEv,_ZTv0_n12_N7ee746213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee746213fooEv,_ZThn8_N7ee746213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee746213barEv,_ZTv0_n16_N7ee746213barEv)();
+extern void ABISELECT(_ZThn16_N7ee746213barEv,_ZThn8_N7ee746213barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74621[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74621[0]),
+ (VTBL_ENTRY)&_ZN7ee746213fooEv,
+ (VTBL_ENTRY)&_ZN7ee746213barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74621[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee746213fooEv,_ZTv0_n12_N7ee746213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee746213barEv,_ZTv0_n16_N7ee746213barEv),
+};
+extern VTBL_ENTRY _ZTV7ee74621[];
+static VTT_ENTRY vtt_ee74621[] = {
+ {&(_ZTV7ee74621[3]), 3,11},
+ {&(_ZTV7ee74621[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee74621[];
+extern VTBL_ENTRY _ZTV7ee74621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74621[];
+static VTBL_ENTRY alt_thunk_names756[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee746213barEv,_ZTv0_n16_N7ee746213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee746213barEv,_ZThn8_N7ee746213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee746213fooEv,_ZTv0_n12_N7ee746213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee746213fooEv,_ZThn8_N7ee746213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74621 = { "ee74621", // class name
+ bases_ee74621, 4,
+ &(vtc_ee74621[0]), // expected_vtbl_contents
+ &(vtt_ee74621[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee74621),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74621),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74621),2, //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 dd5621 : virtual cc621 {
+ int d;
+ virtual void bar(); // _ZN6dd56213barEv
+ ~dd5621(); // tgen
+ dd5621(); // tgen
+};
+//SIG(-1 dd5621) C1{ VBC2{ BC3{ BC4{ v2 Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void dd5621 ::bar(){vfunc_called(this, "_ZN6dd56213barEv");}
+dd5621 ::~dd5621(){ note_dtor("dd5621", this);} // tgen
+dd5621 ::dd5621(){ note_ctor("dd5621", this);} // tgen
+
+static void Test_dd5621()
+{
+ extern Class_Descriptor cd_dd5621;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd5621, buf);
+ dd5621 *dp, &lv = *(dp=new (buf) dd5621());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd5621)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5621)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc621*), ABISELECT(16,8), "dd5621");
+ check_base_class_offset(lv, (bb21*)(cc621*), ABISELECT(16,8), "dd5621");
+ check_base_class_offset(lv, (cc621*), ABISELECT(16,8), "dd5621");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5621.d");
+ test_class_info(&lv, &cd_dd5621);
+ dp->~dd5621();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5621(Test_dd5621, "dd5621", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd5621C1Ev();
+extern void _ZN6dd5621D1Ev();
+Name_Map name_map_dd5621[] = {
+ NSPAIR(_ZN6dd5621C1Ev),
+ NSPAIR(_ZN6dd5621D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc621;
+extern VTBL_ENTRY _ZTI5cc621[];
+extern VTBL_ENTRY _ZTV5cc621[];
+static Base_Class bases_dd5621[] = {
+ // 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_bb21, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc621, 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 _ZTI6dd5621[];
+extern void _ZN6dd56213barEv();
+extern void _ZN5cc6213fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56213barEv,_ZTv0_n16_N6dd56213barEv)();
+extern void ABISELECT(_ZThn16_N6dd56213barEv,_ZThn8_N6dd56213barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd5621[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5621[0]),
+ (VTBL_ENTRY)&_ZN6dd56213barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5621[0]),
+ (VTBL_ENTRY)&_ZN5cc6213fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56213barEv,_ZTv0_n16_N6dd56213barEv),
+};
+extern VTBL_ENTRY _ZTV6dd5621[];
+static VTT_ENTRY vtt_dd5621[] = {
+ {&(_ZTV6dd5621[3]), 3,10},
+ {&(_ZTV6dd5621[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd5621[];
+extern VTBL_ENTRY _ZTV6dd5621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5621[];
+static VTBL_ENTRY alt_thunk_names757[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56213barEv,_ZTv0_n16_N6dd56213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56213barEv,_ZThn8_N6dd56213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5621 = { "dd5621", // class name
+ bases_dd5621, 3,
+ &(vtc_dd5621[0]), // expected_vtbl_contents
+ &(vtt_dd5621[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd5621),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5621),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5621),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names757,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05621 : dd5621 {
+ int e;
+ ~ee05621(); // tgen
+ ee05621(); // tgen
+};
+//SIG(1 ee05621) C1{ BC2{ VBC3{ BC4{ BC5{ v2 Fi} v2 Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee05621 ::~ee05621(){ note_dtor("ee05621", this);} // tgen
+ee05621 ::ee05621(){ note_ctor("ee05621", this);} // tgen
+
+static void Test_ee05621()
+{
+ extern Class_Descriptor cd_ee05621;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee05621, buf);
+ ee05621 *dp, &lv = *(dp=new (buf) ee05621());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee05621)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05621)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc621*), ABISELECT(16,12), "ee05621");
+ check_base_class_offset(lv, (bb21*)(cc621*), ABISELECT(16,12), "ee05621");
+ check_base_class_offset(lv, (cc621*)(dd5621*), ABISELECT(16,12), "ee05621");
+ check_base_class_offset(lv, (dd5621*), 0, "ee05621");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05621.e");
+ test_class_info(&lv, &cd_ee05621);
+ dp->~ee05621();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05621(Test_ee05621, "ee05621", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee05621C1Ev();
+extern void _ZN7ee05621D1Ev();
+Name_Map name_map_ee05621[] = {
+ NSPAIR(_ZN7ee05621C1Ev),
+ NSPAIR(_ZN7ee05621D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc621;
+extern VTBL_ENTRY _ZTI5cc621[];
+extern VTBL_ENTRY _ZTV5cc621[];
+extern Class_Descriptor cd_dd5621;
+extern VTBL_ENTRY _ZTI6dd5621[];
+extern VTBL_ENTRY _ZTV6dd5621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5621[];
+static Base_Class bases_ee05621[] = {
+ // 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_bb21, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc621, 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_dd5621, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05621[];
+extern void _ZN6dd56213barEv();
+extern void _ZN5cc6213fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56213barEv,_ZTv0_n16_N6dd56213barEv)();
+extern void ABISELECT(_ZThn16_N6dd56213barEv,_ZThn12_N6dd56213barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee05621[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05621[0]),
+ (VTBL_ENTRY)&_ZN6dd56213barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05621[0]),
+ (VTBL_ENTRY)&_ZN5cc6213fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56213barEv,_ZTv0_n16_N6dd56213barEv),
+};
+extern VTBL_ENTRY _ZTV7ee05621[];
+extern void _ZN6dd56213barEv();
+static VTBL_ENTRY _tg__ZTV6dd5621__7ee05621[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5621[0]),
+ (VTBL_ENTRY)&_ZN6dd56213barEv,
+};
+extern void _ZN5cc6213fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56213barEv,_ZTv0_n16_N6dd56213barEv)();
+extern void ABISELECT(_ZThn16_N6dd56213barEv,_ZThn12_N6dd56213barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc621__6dd5621__7ee05621[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5621[0]),
+ (VTBL_ENTRY)&_ZN5cc6213fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56213barEv,_ZTv0_n16_N6dd56213barEv),
+};
+static VTT_ENTRY vtt_ee05621[] = {
+ {&(_ZTV7ee05621[3]), 3,10},
+ {&(_tg__ZTV6dd5621__7ee05621[3]), 3,4},
+ {&(_tg__ZTV5cc621__6dd5621__7ee05621[4]), 4,6},
+ {&(_ZTV7ee05621[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee05621[];
+extern VTBL_ENTRY _ZTV7ee05621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05621[];
+static VTBL_ENTRY alt_thunk_names758[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56213barEv,_ZTv0_n16_N6dd56213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56213barEv,_ZThn12_N6dd56213barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56213barEv,_ZThn12_N6dd56213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05621 = { "ee05621", // class name
+ bases_ee05621, 4,
+ &(vtc_ee05621[0]), // expected_vtbl_contents
+ &(vtt_ee05621[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee05621),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05621),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05621),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names758,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee15621 : virtual dd5621 {
+ int e;
+ ~ee15621(); // tgen
+ ee15621(); // tgen
+};
+//SIG(1 ee15621) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 Fi} v2 Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee15621 ::~ee15621(){ note_dtor("ee15621", this);} // tgen
+ee15621 ::ee15621(){ note_ctor("ee15621", this);} // tgen
+
+static void Test_ee15621()
+{
+ extern Class_Descriptor cd_ee15621;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee15621, buf);
+ ee15621 *dp, &lv = *(dp=new (buf) ee15621());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee15621)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15621)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc621*), ABISELECT(32,16), "ee15621");
+ check_base_class_offset(lv, (bb21*)(cc621*), ABISELECT(32,16), "ee15621");
+ check_base_class_offset(lv, (cc621*)(dd5621*), ABISELECT(32,16), "ee15621");
+ check_base_class_offset(lv, (dd5621*), ABISELECT(16,8), "ee15621");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15621.e");
+ test_class_info(&lv, &cd_ee15621);
+ dp->~ee15621();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15621(Test_ee15621, "ee15621", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee15621C1Ev();
+extern void _ZN7ee15621D1Ev();
+Name_Map name_map_ee15621[] = {
+ NSPAIR(_ZN7ee15621C1Ev),
+ NSPAIR(_ZN7ee15621D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc621;
+extern VTBL_ENTRY _ZTI5cc621[];
+extern VTBL_ENTRY _ZTV5cc621[];
+extern Class_Descriptor cd_dd5621;
+extern VTBL_ENTRY _ZTI6dd5621[];
+extern VTBL_ENTRY _ZTV6dd5621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5621[];
+static Base_Class bases_ee15621[] = {
+ // 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_bb21, 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_cc621, 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_dd5621, 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 _ZTI7ee15621[];
+extern void _ZN6dd56213barEv();
+extern void _ZN5cc6213fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56213barEv,_ZTv0_n16_N6dd56213barEv)();
+extern void ABISELECT(_ZThn16_N6dd56213barEv,_ZThn8_N6dd56213barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee15621[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15621[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15621[0]),
+ (VTBL_ENTRY)&_ZN6dd56213barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15621[0]),
+ (VTBL_ENTRY)&_ZN5cc6213fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56213barEv,_ZTv0_n16_N6dd56213barEv),
+};
+extern VTBL_ENTRY _ZTV7ee15621[];
+extern void _ZN6dd56213barEv();
+static VTBL_ENTRY _tg__ZTV6dd5621__7ee15621[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5621[0]),
+ (VTBL_ENTRY)&_ZN6dd56213barEv,
+};
+extern void _ZN5cc6213fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56213barEv,_ZTv0_n16_N6dd56213barEv)();
+extern void ABISELECT(_ZThn16_N6dd56213barEv,_ZThn8_N6dd56213barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc621__6dd5621__7ee15621[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5621[0]),
+ (VTBL_ENTRY)&_ZN5cc6213fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56213barEv,_ZTv0_n16_N6dd56213barEv),
+};
+static VTT_ENTRY vtt_ee15621[] = {
+ {&(_ZTV7ee15621[4]), 4,15},
+ {&(_ZTV7ee15621[8]), 8,15},
+ {&(_ZTV7ee15621[13]), 13,15},
+ {&(_tg__ZTV6dd5621__7ee15621[3]), 3,4},
+ {&(_tg__ZTV5cc621__6dd5621__7ee15621[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee15621[];
+extern VTBL_ENTRY _ZTV7ee15621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15621[];
+static VTBL_ENTRY alt_thunk_names759[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56213barEv,_ZTv0_n16_N6dd56213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56213barEv,_ZThn8_N6dd56213barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56213barEv,_ZThn8_N6dd56213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15621 = { "ee15621", // class name
+ bases_ee15621, 4,
+ &(vtc_ee15621[0]), // expected_vtbl_contents
+ &(vtt_ee15621[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee15621),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15621),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15621),5, //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 ee25621 : dd5621 {
+ int e;
+ virtual void foo(); // _ZN7ee256213fooEv
+ ~ee25621(); // tgen
+ ee25621(); // tgen
+};
+//SIG(1 ee25621) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} v1 Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee25621 ::foo(){vfunc_called(this, "_ZN7ee256213fooEv");}
+ee25621 ::~ee25621(){ note_dtor("ee25621", this);} // tgen
+ee25621 ::ee25621(){ note_ctor("ee25621", this);} // tgen
+
+static void Test_ee25621()
+{
+ extern Class_Descriptor cd_ee25621;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee25621, buf);
+ ee25621 *dp, &lv = *(dp=new (buf) ee25621());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee25621)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25621)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc621*), ABISELECT(16,12), "ee25621");
+ check_base_class_offset(lv, (bb21*)(cc621*), ABISELECT(16,12), "ee25621");
+ check_base_class_offset(lv, (cc621*)(dd5621*), ABISELECT(16,12), "ee25621");
+ check_base_class_offset(lv, (dd5621*), 0, "ee25621");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25621.e");
+ test_class_info(&lv, &cd_ee25621);
+ dp->~ee25621();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25621(Test_ee25621, "ee25621", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee25621C1Ev();
+extern void _ZN7ee25621D1Ev();
+Name_Map name_map_ee25621[] = {
+ NSPAIR(_ZN7ee25621C1Ev),
+ NSPAIR(_ZN7ee25621D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc621;
+extern VTBL_ENTRY _ZTI5cc621[];
+extern VTBL_ENTRY _ZTV5cc621[];
+extern Class_Descriptor cd_dd5621;
+extern VTBL_ENTRY _ZTI6dd5621[];
+extern VTBL_ENTRY _ZTV6dd5621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5621[];
+static Base_Class bases_ee25621[] = {
+ // 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_bb21, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc621, 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_dd5621, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25621[];
+extern void _ZN6dd56213barEv();
+extern void _ZN7ee256213fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee256213fooEv,_ZTv0_n12_N7ee256213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee256213fooEv,_ZThn12_N7ee256213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd56213barEv,_ZTv0_n16_N6dd56213barEv)();
+extern void ABISELECT(_ZThn16_N6dd56213barEv,_ZThn12_N6dd56213barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25621[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25621[0]),
+ (VTBL_ENTRY)&_ZN6dd56213barEv,
+ (VTBL_ENTRY)&_ZN7ee256213fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25621[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee256213fooEv,_ZTv0_n12_N7ee256213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56213barEv,_ZTv0_n16_N6dd56213barEv),
+};
+extern VTBL_ENTRY _ZTV7ee25621[];
+extern void _ZN6dd56213barEv();
+static VTBL_ENTRY _tg__ZTV6dd5621__7ee25621[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5621[0]),
+ (VTBL_ENTRY)&_ZN6dd56213barEv,
+};
+extern void _ZN5cc6213fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56213barEv,_ZTv0_n16_N6dd56213barEv)();
+extern void ABISELECT(_ZThn16_N6dd56213barEv,_ZThn12_N6dd56213barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc621__6dd5621__7ee25621[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5621[0]),
+ (VTBL_ENTRY)&_ZN5cc6213fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56213barEv,_ZTv0_n16_N6dd56213barEv),
+};
+static VTT_ENTRY vtt_ee25621[] = {
+ {&(_ZTV7ee25621[3]), 3,11},
+ {&(_tg__ZTV6dd5621__7ee25621[3]), 3,4},
+ {&(_tg__ZTV5cc621__6dd5621__7ee25621[4]), 4,6},
+ {&(_ZTV7ee25621[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee25621[];
+extern VTBL_ENTRY _ZTV7ee25621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25621[];
+static VTBL_ENTRY alt_thunk_names760[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56213barEv,_ZTv0_n16_N6dd56213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56213barEv,_ZThn12_N6dd56213barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56213barEv,_ZThn12_N6dd56213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee256213fooEv,_ZTv0_n12_N7ee256213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee256213fooEv,_ZThn12_N7ee256213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25621 = { "ee25621", // class name
+ bases_ee25621, 4,
+ &(vtc_ee25621[0]), // expected_vtbl_contents
+ &(vtt_ee25621[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee25621),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25621),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25621),4, //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 ee35621 : virtual dd5621 {
+ int e;
+ virtual void foo(); // _ZN7ee356213fooEv
+ ~ee35621(); // tgen
+ ee35621(); // tgen
+};
+//SIG(1 ee35621) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} v1 Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee35621 ::foo(){vfunc_called(this, "_ZN7ee356213fooEv");}
+ee35621 ::~ee35621(){ note_dtor("ee35621", this);} // tgen
+ee35621 ::ee35621(){ note_ctor("ee35621", this);} // tgen
+
+static void Test_ee35621()
+{
+ extern Class_Descriptor cd_ee35621;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee35621, buf);
+ ee35621 *dp, &lv = *(dp=new (buf) ee35621());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee35621)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35621)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc621*), ABISELECT(32,16), "ee35621");
+ check_base_class_offset(lv, (bb21*)(cc621*), ABISELECT(32,16), "ee35621");
+ check_base_class_offset(lv, (cc621*)(dd5621*), ABISELECT(32,16), "ee35621");
+ check_base_class_offset(lv, (dd5621*), ABISELECT(16,8), "ee35621");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35621.e");
+ test_class_info(&lv, &cd_ee35621);
+ dp->~ee35621();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35621(Test_ee35621, "ee35621", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee35621C1Ev();
+extern void _ZN7ee35621D1Ev();
+Name_Map name_map_ee35621[] = {
+ NSPAIR(_ZN7ee35621C1Ev),
+ NSPAIR(_ZN7ee35621D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc621;
+extern VTBL_ENTRY _ZTI5cc621[];
+extern VTBL_ENTRY _ZTV5cc621[];
+extern Class_Descriptor cd_dd5621;
+extern VTBL_ENTRY _ZTI6dd5621[];
+extern VTBL_ENTRY _ZTV6dd5621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5621[];
+static Base_Class bases_ee35621[] = {
+ // 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_bb21, 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_cc621, 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_dd5621, 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 _ZTI7ee35621[];
+extern void _ZN7ee356213fooEv();
+extern void _ZN6dd56213barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee356213fooEv,_ZTv0_n12_N7ee356213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee356213fooEv,_ZThn16_N7ee356213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd56213barEv,_ZTv0_n16_N6dd56213barEv)();
+extern void ABISELECT(_ZThn16_N6dd56213barEv,_ZThn8_N6dd56213barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35621[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35621[0]),
+ (VTBL_ENTRY)&_ZN7ee356213fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35621[0]),
+ (VTBL_ENTRY)&_ZN6dd56213barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35621[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee356213fooEv,_ZTv0_n12_N7ee356213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56213barEv,_ZTv0_n16_N6dd56213barEv),
+};
+extern VTBL_ENTRY _ZTV7ee35621[];
+extern void _ZN6dd56213barEv();
+static VTBL_ENTRY _tg__ZTV6dd5621__7ee35621[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5621[0]),
+ (VTBL_ENTRY)&_ZN6dd56213barEv,
+};
+extern void _ZN5cc6213fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56213barEv,_ZTv0_n16_N6dd56213barEv)();
+extern void ABISELECT(_ZThn16_N6dd56213barEv,_ZThn8_N6dd56213barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc621__6dd5621__7ee35621[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5621[0]),
+ (VTBL_ENTRY)&_ZN5cc6213fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56213barEv,_ZTv0_n16_N6dd56213barEv),
+};
+static VTT_ENTRY vtt_ee35621[] = {
+ {&(_ZTV7ee35621[4]), 4,16},
+ {&(_ZTV7ee35621[9]), 9,16},
+ {&(_ZTV7ee35621[14]), 14,16},
+ {&(_tg__ZTV6dd5621__7ee35621[3]), 3,4},
+ {&(_tg__ZTV5cc621__6dd5621__7ee35621[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee35621[];
+extern VTBL_ENTRY _ZTV7ee35621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35621[];
+static VTBL_ENTRY alt_thunk_names761[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56213barEv,_ZTv0_n16_N6dd56213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56213barEv,_ZThn8_N6dd56213barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56213barEv,_ZThn8_N6dd56213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee356213fooEv,_ZTv0_n12_N7ee356213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee356213fooEv,_ZThn16_N7ee356213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35621 = { "ee35621", // class name
+ bases_ee35621, 4,
+ &(vtc_ee35621[0]), // expected_vtbl_contents
+ &(vtt_ee35621[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee35621),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35621),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35621),5, //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 ee45621 : dd5621 {
+ int e;
+ virtual void bar(); // _ZN7ee456213barEv
+ ~ee45621(); // tgen
+ ee45621(); // tgen
+};
+//SIG(1 ee45621) C1{ BC2{ VBC3{ BC4{ BC5{ v2 Fi} v2 Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee45621 ::bar(){vfunc_called(this, "_ZN7ee456213barEv");}
+ee45621 ::~ee45621(){ note_dtor("ee45621", this);} // tgen
+ee45621 ::ee45621(){ note_ctor("ee45621", this);} // tgen
+
+static void Test_ee45621()
+{
+ extern Class_Descriptor cd_ee45621;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee45621, buf);
+ ee45621 *dp, &lv = *(dp=new (buf) ee45621());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee45621)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45621)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc621*), ABISELECT(16,12), "ee45621");
+ check_base_class_offset(lv, (bb21*)(cc621*), ABISELECT(16,12), "ee45621");
+ check_base_class_offset(lv, (cc621*)(dd5621*), ABISELECT(16,12), "ee45621");
+ check_base_class_offset(lv, (dd5621*), 0, "ee45621");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45621.e");
+ test_class_info(&lv, &cd_ee45621);
+ dp->~ee45621();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45621(Test_ee45621, "ee45621", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee45621C1Ev();
+extern void _ZN7ee45621D1Ev();
+Name_Map name_map_ee45621[] = {
+ NSPAIR(_ZN7ee45621C1Ev),
+ NSPAIR(_ZN7ee45621D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc621;
+extern VTBL_ENTRY _ZTI5cc621[];
+extern VTBL_ENTRY _ZTV5cc621[];
+extern Class_Descriptor cd_dd5621;
+extern VTBL_ENTRY _ZTI6dd5621[];
+extern VTBL_ENTRY _ZTV6dd5621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5621[];
+static Base_Class bases_ee45621[] = {
+ // 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_bb21, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc621, 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_dd5621, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45621[];
+extern void _ZN7ee456213barEv();
+extern void _ZN5cc6213fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee456213barEv,_ZTv0_n16_N7ee456213barEv)();
+extern void ABISELECT(_ZThn16_N7ee456213barEv,_ZThn12_N7ee456213barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee45621[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45621[0]),
+ (VTBL_ENTRY)&_ZN7ee456213barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45621[0]),
+ (VTBL_ENTRY)&_ZN5cc6213fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee456213barEv,_ZTv0_n16_N7ee456213barEv),
+};
+extern VTBL_ENTRY _ZTV7ee45621[];
+extern void _ZN6dd56213barEv();
+static VTBL_ENTRY _tg__ZTV6dd5621__7ee45621[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5621[0]),
+ (VTBL_ENTRY)&_ZN6dd56213barEv,
+};
+extern void _ZN5cc6213fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56213barEv,_ZTv0_n16_N6dd56213barEv)();
+extern void ABISELECT(_ZThn16_N6dd56213barEv,_ZThn12_N6dd56213barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc621__6dd5621__7ee45621[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5621[0]),
+ (VTBL_ENTRY)&_ZN5cc6213fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56213barEv,_ZTv0_n16_N6dd56213barEv),
+};
+static VTT_ENTRY vtt_ee45621[] = {
+ {&(_ZTV7ee45621[3]), 3,10},
+ {&(_tg__ZTV6dd5621__7ee45621[3]), 3,4},
+ {&(_tg__ZTV5cc621__6dd5621__7ee45621[4]), 4,6},
+ {&(_ZTV7ee45621[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee45621[];
+extern VTBL_ENTRY _ZTV7ee45621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45621[];
+static VTBL_ENTRY alt_thunk_names762[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56213barEv,_ZTv0_n16_N6dd56213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56213barEv,_ZThn12_N6dd56213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee456213barEv,_ZTv0_n16_N7ee456213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee456213barEv,_ZThn12_N7ee456213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45621 = { "ee45621", // class name
+ bases_ee45621, 4,
+ &(vtc_ee45621[0]), // expected_vtbl_contents
+ &(vtt_ee45621[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee45621),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45621),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45621),4, //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 ee55621 : virtual dd5621 {
+ int e;
+ virtual void bar(); // _ZN7ee556213barEv
+ ~ee55621(); // tgen
+ ee55621(); // tgen
+};
+//SIG(1 ee55621) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 Fi} v2 Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee55621 ::bar(){vfunc_called(this, "_ZN7ee556213barEv");}
+ee55621 ::~ee55621(){ note_dtor("ee55621", this);} // tgen
+ee55621 ::ee55621(){ note_ctor("ee55621", this);} // tgen
+
+static void Test_ee55621()
+{
+ extern Class_Descriptor cd_ee55621;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee55621, buf);
+ ee55621 *dp, &lv = *(dp=new (buf) ee55621());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee55621)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55621)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc621*), ABISELECT(32,16), "ee55621");
+ check_base_class_offset(lv, (bb21*)(cc621*), ABISELECT(32,16), "ee55621");
+ check_base_class_offset(lv, (cc621*)(dd5621*), ABISELECT(32,16), "ee55621");
+ check_base_class_offset(lv, (dd5621*), ABISELECT(16,8), "ee55621");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55621.e");
+ test_class_info(&lv, &cd_ee55621);
+ dp->~ee55621();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55621(Test_ee55621, "ee55621", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee55621C1Ev();
+extern void _ZN7ee55621D1Ev();
+Name_Map name_map_ee55621[] = {
+ NSPAIR(_ZN7ee55621C1Ev),
+ NSPAIR(_ZN7ee55621D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc621;
+extern VTBL_ENTRY _ZTI5cc621[];
+extern VTBL_ENTRY _ZTV5cc621[];
+extern Class_Descriptor cd_dd5621;
+extern VTBL_ENTRY _ZTI6dd5621[];
+extern VTBL_ENTRY _ZTV6dd5621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5621[];
+static Base_Class bases_ee55621[] = {
+ // 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_bb21, 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_cc621, 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_dd5621, 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 _ZTI7ee55621[];
+extern void _ZN7ee556213barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee556213barEv,_ZTv0_n16_N7ee556213barEv)();
+extern void ABISELECT(_ZThn16_N7ee556213barEv,_ZThn8_N7ee556213barEv)() __attribute__((weak));
+extern void _ZN5cc6213fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee556213barEv,_ZTv0_n16_N7ee556213barEv)();
+extern void ABISELECT(_ZThn32_N7ee556213barEv,_ZThn16_N7ee556213barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee55621[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55621[0]),
+ (VTBL_ENTRY)&_ZN7ee556213barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55621[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee556213barEv,_ZTv0_n16_N7ee556213barEv),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55621[0]),
+ (VTBL_ENTRY)&_ZN5cc6213fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee556213barEv,_ZTv0_n16_N7ee556213barEv),
+};
+extern VTBL_ENTRY _ZTV7ee55621[];
+extern void _ZN6dd56213barEv();
+static VTBL_ENTRY _tg__ZTV6dd5621__7ee55621[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5621[0]),
+ (VTBL_ENTRY)&_ZN6dd56213barEv,
+};
+extern void _ZN5cc6213fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56213barEv,_ZTv0_n16_N6dd56213barEv)();
+extern void ABISELECT(_ZThn16_N6dd56213barEv,_ZThn8_N6dd56213barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc621__6dd5621__7ee55621[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5621[0]),
+ (VTBL_ENTRY)&_ZN5cc6213fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56213barEv,_ZTv0_n16_N6dd56213barEv),
+};
+static VTT_ENTRY vtt_ee55621[] = {
+ {&(_ZTV7ee55621[4]), 4,16},
+ {&(_ZTV7ee55621[9]), 9,16},
+ {&(_ZTV7ee55621[14]), 14,16},
+ {&(_tg__ZTV6dd5621__7ee55621[3]), 3,4},
+ {&(_tg__ZTV5cc621__6dd5621__7ee55621[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee55621[];
+extern VTBL_ENTRY _ZTV7ee55621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55621[];
+static VTBL_ENTRY alt_thunk_names763[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56213barEv,_ZTv0_n16_N6dd56213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56213barEv,_ZThn8_N6dd56213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee556213barEv,_ZTv0_n16_N7ee556213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee556213barEv,_ZThn16_N7ee556213barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee556213barEv,_ZThn8_N7ee556213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55621 = { "ee55621", // class name
+ bases_ee55621, 4,
+ &(vtc_ee55621[0]), // expected_vtbl_contents
+ &(vtt_ee55621[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee55621),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55621),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55621),5, //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 ee65621 : dd5621 {
+ int e;
+ virtual void foo(); // _ZN7ee656213fooEv
+ virtual void bar(); // _ZN7ee656213barEv
+ ~ee65621(); // tgen
+ ee65621(); // tgen
+};
+//SIG(1 ee65621) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} v1 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65621 ::foo(){vfunc_called(this, "_ZN7ee656213fooEv");}
+void ee65621 ::bar(){vfunc_called(this, "_ZN7ee656213barEv");}
+ee65621 ::~ee65621(){ note_dtor("ee65621", this);} // tgen
+ee65621 ::ee65621(){ note_ctor("ee65621", this);} // tgen
+
+static void Test_ee65621()
+{
+ extern Class_Descriptor cd_ee65621;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee65621, buf);
+ ee65621 *dp, &lv = *(dp=new (buf) ee65621());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee65621)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65621)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc621*), ABISELECT(16,12), "ee65621");
+ check_base_class_offset(lv, (bb21*)(cc621*), ABISELECT(16,12), "ee65621");
+ check_base_class_offset(lv, (cc621*)(dd5621*), ABISELECT(16,12), "ee65621");
+ check_base_class_offset(lv, (dd5621*), 0, "ee65621");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65621.e");
+ test_class_info(&lv, &cd_ee65621);
+ dp->~ee65621();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65621(Test_ee65621, "ee65621", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee65621C1Ev();
+extern void _ZN7ee65621D1Ev();
+Name_Map name_map_ee65621[] = {
+ NSPAIR(_ZN7ee65621C1Ev),
+ NSPAIR(_ZN7ee65621D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc621;
+extern VTBL_ENTRY _ZTI5cc621[];
+extern VTBL_ENTRY _ZTV5cc621[];
+extern Class_Descriptor cd_dd5621;
+extern VTBL_ENTRY _ZTI6dd5621[];
+extern VTBL_ENTRY _ZTV6dd5621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5621[];
+static Base_Class bases_ee65621[] = {
+ // 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_bb21, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc621, 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_dd5621, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65621[];
+extern void _ZN7ee656213barEv();
+extern void _ZN7ee656213fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee656213fooEv,_ZTv0_n12_N7ee656213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee656213fooEv,_ZThn12_N7ee656213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee656213barEv,_ZTv0_n16_N7ee656213barEv)();
+extern void ABISELECT(_ZThn16_N7ee656213barEv,_ZThn12_N7ee656213barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65621[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65621[0]),
+ (VTBL_ENTRY)&_ZN7ee656213barEv,
+ (VTBL_ENTRY)&_ZN7ee656213fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65621[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee656213fooEv,_ZTv0_n12_N7ee656213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee656213barEv,_ZTv0_n16_N7ee656213barEv),
+};
+extern VTBL_ENTRY _ZTV7ee65621[];
+extern void _ZN6dd56213barEv();
+static VTBL_ENTRY _tg__ZTV6dd5621__7ee65621[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5621[0]),
+ (VTBL_ENTRY)&_ZN6dd56213barEv,
+};
+extern void _ZN5cc6213fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56213barEv,_ZTv0_n16_N6dd56213barEv)();
+extern void ABISELECT(_ZThn16_N6dd56213barEv,_ZThn12_N6dd56213barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc621__6dd5621__7ee65621[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5621[0]),
+ (VTBL_ENTRY)&_ZN5cc6213fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56213barEv,_ZTv0_n16_N6dd56213barEv),
+};
+static VTT_ENTRY vtt_ee65621[] = {
+ {&(_ZTV7ee65621[3]), 3,11},
+ {&(_tg__ZTV6dd5621__7ee65621[3]), 3,4},
+ {&(_tg__ZTV5cc621__6dd5621__7ee65621[4]), 4,6},
+ {&(_ZTV7ee65621[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee65621[];
+extern VTBL_ENTRY _ZTV7ee65621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65621[];
+static VTBL_ENTRY alt_thunk_names764[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56213barEv,_ZTv0_n16_N6dd56213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56213barEv,_ZThn12_N6dd56213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee656213barEv,_ZTv0_n16_N7ee656213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee656213barEv,_ZThn12_N7ee656213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee656213fooEv,_ZTv0_n12_N7ee656213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee656213fooEv,_ZThn12_N7ee656213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65621 = { "ee65621", // class name
+ bases_ee65621, 4,
+ &(vtc_ee65621[0]), // expected_vtbl_contents
+ &(vtt_ee65621[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee65621),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65621),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65621),4, //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 ee75621 : virtual dd5621 {
+ int e;
+ virtual void foo(); // _ZN7ee756213fooEv
+ virtual void bar(); // _ZN7ee756213barEv
+ ~ee75621(); // tgen
+ ee75621(); // tgen
+};
+//SIG(1 ee75621) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} v1 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75621 ::foo(){vfunc_called(this, "_ZN7ee756213fooEv");}
+void ee75621 ::bar(){vfunc_called(this, "_ZN7ee756213barEv");}
+ee75621 ::~ee75621(){ note_dtor("ee75621", this);} // tgen
+ee75621 ::ee75621(){ note_ctor("ee75621", this);} // tgen
+
+static void Test_ee75621()
+{
+ extern Class_Descriptor cd_ee75621;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee75621, buf);
+ ee75621 *dp, &lv = *(dp=new (buf) ee75621());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee75621)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75621)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc621*), ABISELECT(32,16), "ee75621");
+ check_base_class_offset(lv, (bb21*)(cc621*), ABISELECT(32,16), "ee75621");
+ check_base_class_offset(lv, (cc621*)(dd5621*), ABISELECT(32,16), "ee75621");
+ check_base_class_offset(lv, (dd5621*), ABISELECT(16,8), "ee75621");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75621.e");
+ test_class_info(&lv, &cd_ee75621);
+ dp->~ee75621();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75621(Test_ee75621, "ee75621", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee75621C1Ev();
+extern void _ZN7ee75621D1Ev();
+Name_Map name_map_ee75621[] = {
+ NSPAIR(_ZN7ee75621C1Ev),
+ NSPAIR(_ZN7ee75621D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc621;
+extern VTBL_ENTRY _ZTI5cc621[];
+extern VTBL_ENTRY _ZTV5cc621[];
+extern Class_Descriptor cd_dd5621;
+extern VTBL_ENTRY _ZTI6dd5621[];
+extern VTBL_ENTRY _ZTV6dd5621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5621[];
+static Base_Class bases_ee75621[] = {
+ // 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_bb21, 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_cc621, 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_dd5621, 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 _ZTI7ee75621[];
+extern void _ZN7ee756213fooEv();
+extern void _ZN7ee756213barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee756213barEv,_ZTv0_n16_N7ee756213barEv)();
+extern void ABISELECT(_ZThn16_N7ee756213barEv,_ZThn8_N7ee756213barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee756213fooEv,_ZTv0_n12_N7ee756213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee756213fooEv,_ZThn16_N7ee756213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee756213barEv,_ZTv0_n16_N7ee756213barEv)();
+extern void ABISELECT(_ZThn32_N7ee756213barEv,_ZThn16_N7ee756213barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75621[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75621[0]),
+ (VTBL_ENTRY)&_ZN7ee756213fooEv,
+ (VTBL_ENTRY)&_ZN7ee756213barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75621[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee756213barEv,_ZTv0_n16_N7ee756213barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75621[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee756213fooEv,_ZTv0_n12_N7ee756213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee756213barEv,_ZTv0_n16_N7ee756213barEv),
+};
+extern VTBL_ENTRY _ZTV7ee75621[];
+extern void _ZN6dd56213barEv();
+static VTBL_ENTRY _tg__ZTV6dd5621__7ee75621[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5621[0]),
+ (VTBL_ENTRY)&_ZN6dd56213barEv,
+};
+extern void _ZN5cc6213fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56213barEv,_ZTv0_n16_N6dd56213barEv)();
+extern void ABISELECT(_ZThn16_N6dd56213barEv,_ZThn8_N6dd56213barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc621__6dd5621__7ee75621[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5621[0]),
+ (VTBL_ENTRY)&_ZN5cc6213fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56213barEv,_ZTv0_n16_N6dd56213barEv),
+};
+static VTT_ENTRY vtt_ee75621[] = {
+ {&(_ZTV7ee75621[4]), 4,17},
+ {&(_ZTV7ee75621[10]), 10,17},
+ {&(_ZTV7ee75621[15]), 15,17},
+ {&(_tg__ZTV6dd5621__7ee75621[3]), 3,4},
+ {&(_tg__ZTV5cc621__6dd5621__7ee75621[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee75621[];
+extern VTBL_ENTRY _ZTV7ee75621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75621[];
+static VTBL_ENTRY alt_thunk_names765[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56213barEv,_ZTv0_n16_N6dd56213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56213barEv,_ZThn8_N6dd56213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee756213fooEv,_ZTv0_n12_N7ee756213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee756213fooEv,_ZThn16_N7ee756213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee756213barEv,_ZTv0_n16_N7ee756213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee756213barEv,_ZThn16_N7ee756213barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee756213barEv,_ZThn8_N7ee756213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75621 = { "ee75621", // class name
+ bases_ee75621, 4,
+ &(vtc_ee75621[0]), // expected_vtbl_contents
+ &(vtt_ee75621[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee75621),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75621),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75621),5, //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 dd6621 : cc621 {
+ int d;
+ virtual void bar(); // _ZN6dd66213barEv
+ virtual void foo(); // _ZN6dd66213fooEv
+ ~dd6621(); // tgen
+ dd6621(); // tgen
+};
+//SIG(-1 dd6621) C1{ BC2{ BC3{ BC4{ v2 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void dd6621 ::bar(){vfunc_called(this, "_ZN6dd66213barEv");}
+void dd6621 ::foo(){vfunc_called(this, "_ZN6dd66213fooEv");}
+dd6621 ::~dd6621(){ note_dtor("dd6621", this);} // tgen
+dd6621 ::dd6621(){ note_ctor("dd6621", this);} // tgen
+
+static void Test_dd6621()
+{
+ extern Class_Descriptor cd_dd6621;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd6621, buf);
+ dd6621 *dp, &lv = *(dp=new (buf) dd6621());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd6621)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6621)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc621*), 0, "dd6621");
+ check_base_class_offset(lv, (bb21*)(cc621*), 0, "dd6621");
+ check_base_class_offset(lv, (cc621*), 0, "dd6621");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd6621.d");
+ test_class_info(&lv, &cd_dd6621);
+ dp->~dd6621();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6621(Test_dd6621, "dd6621", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd6621C1Ev();
+extern void _ZN6dd6621D1Ev();
+Name_Map name_map_dd6621[] = {
+ NSPAIR(_ZN6dd6621C1Ev),
+ NSPAIR(_ZN6dd6621D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc621;
+extern VTBL_ENTRY _ZTI5cc621[];
+extern VTBL_ENTRY _ZTV5cc621[];
+static Base_Class bases_dd6621[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc621, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI6dd6621[];
+extern void _ZN6dd66213fooEv();
+extern void _ZN6dd66213barEv();
+static VTBL_ENTRY vtc_dd6621[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6621[0]),
+ (VTBL_ENTRY)&_ZN6dd66213fooEv,
+ (VTBL_ENTRY)&_ZN6dd66213barEv,
+};
+extern VTBL_ENTRY _ZTI6dd6621[];
+extern VTBL_ENTRY _ZTV6dd6621[];
+Class_Descriptor cd_dd6621 = { "dd6621", // class name
+ bases_dd6621, 3,
+ &(vtc_dd6621[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd6621),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6621),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 ee06621 : dd6621 {
+ int e;
+ ~ee06621(); // tgen
+ ee06621(); // tgen
+};
+//SIG(1 ee06621) C1{ BC2{ BC3{ BC4{ BC5{ v2 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee06621 ::~ee06621(){ note_dtor("ee06621", this);} // tgen
+ee06621 ::ee06621(){ note_ctor("ee06621", this);} // tgen
+
+static void Test_ee06621()
+{
+ extern Class_Descriptor cd_ee06621;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee06621, buf);
+ ee06621 *dp, &lv = *(dp=new (buf) ee06621());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee06621)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06621)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc621*)(dd6621*), 0, "ee06621");
+ check_base_class_offset(lv, (bb21*)(cc621*)(dd6621*), 0, "ee06621");
+ check_base_class_offset(lv, (cc621*)(dd6621*), 0, "ee06621");
+ check_base_class_offset(lv, (dd6621*), 0, "ee06621");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee06621.e");
+ test_class_info(&lv, &cd_ee06621);
+ dp->~ee06621();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06621(Test_ee06621, "ee06621", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee06621C1Ev();
+extern void _ZN7ee06621D1Ev();
+Name_Map name_map_ee06621[] = {
+ NSPAIR(_ZN7ee06621C1Ev),
+ NSPAIR(_ZN7ee06621D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc621;
+extern VTBL_ENTRY _ZTI5cc621[];
+extern VTBL_ENTRY _ZTV5cc621[];
+extern Class_Descriptor cd_dd6621;
+extern VTBL_ENTRY _ZTI6dd6621[];
+extern VTBL_ENTRY _ZTV6dd6621[];
+static Base_Class bases_ee06621[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc621, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6621, 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 _ZTI7ee06621[];
+extern void _ZN6dd66213fooEv();
+extern void _ZN6dd66213barEv();
+static VTBL_ENTRY vtc_ee06621[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06621[0]),
+ (VTBL_ENTRY)&_ZN6dd66213fooEv,
+ (VTBL_ENTRY)&_ZN6dd66213barEv,
+};
+extern VTBL_ENTRY _ZTI7ee06621[];
+extern VTBL_ENTRY _ZTV7ee06621[];
+Class_Descriptor cd_ee06621 = { "ee06621", // class name
+ bases_ee06621, 4,
+ &(vtc_ee06621[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee06621),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06621),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 ee16621 : virtual dd6621 {
+ int e;
+ ~ee16621(); // tgen
+ ee16621(); // tgen
+};
+//SIG(1 ee16621) C1{ VBC2{ BC3{ BC4{ BC5{ v2 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee16621 ::~ee16621(){ note_dtor("ee16621", this);} // tgen
+ee16621 ::ee16621(){ note_ctor("ee16621", this);} // tgen
+
+static void Test_ee16621()
+{
+ extern Class_Descriptor cd_ee16621;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee16621, buf);
+ ee16621 *dp, &lv = *(dp=new (buf) ee16621());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee16621)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16621)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc621*)(dd6621*), ABISELECT(16,8), "ee16621");
+ check_base_class_offset(lv, (bb21*)(cc621*)(dd6621*), ABISELECT(16,8), "ee16621");
+ check_base_class_offset(lv, (cc621*)(dd6621*), ABISELECT(16,8), "ee16621");
+ check_base_class_offset(lv, (dd6621*), ABISELECT(16,8), "ee16621");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16621.e");
+ test_class_info(&lv, &cd_ee16621);
+ dp->~ee16621();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16621(Test_ee16621, "ee16621", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee16621C1Ev();
+extern void _ZN7ee16621D1Ev();
+Name_Map name_map_ee16621[] = {
+ NSPAIR(_ZN7ee16621C1Ev),
+ NSPAIR(_ZN7ee16621D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc621;
+extern VTBL_ENTRY _ZTI5cc621[];
+extern VTBL_ENTRY _ZTV5cc621[];
+extern Class_Descriptor cd_dd6621;
+extern VTBL_ENTRY _ZTI6dd6621[];
+extern VTBL_ENTRY _ZTV6dd6621[];
+static Base_Class bases_ee16621[] = {
+ // 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_bb21, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc621, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6621, 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 _ZTI7ee16621[];
+extern void _ZN6dd66213fooEv();
+extern void _ZN6dd66213barEv();
+static VTBL_ENTRY vtc_ee16621[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16621[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16621[0]),
+ (VTBL_ENTRY)&_ZN6dd66213fooEv,
+ (VTBL_ENTRY)&_ZN6dd66213barEv,
+};
+extern VTBL_ENTRY _ZTV7ee16621[];
+static VTT_ENTRY vtt_ee16621[] = {
+ {&(_ZTV7ee16621[3]), 3,9},
+ {&(_ZTV7ee16621[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee16621[];
+extern VTBL_ENTRY _ZTV7ee16621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16621[];
+Class_Descriptor cd_ee16621 = { "ee16621", // class name
+ bases_ee16621, 4,
+ &(vtc_ee16621[0]), // expected_vtbl_contents
+ &(vtt_ee16621[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee16621),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16621),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16621),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 ee26621 : dd6621 {
+ int e;
+ virtual void foo(); // _ZN7ee266213fooEv
+ ~ee26621(); // tgen
+ ee26621(); // tgen
+};
+//SIG(1 ee26621) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26621 ::foo(){vfunc_called(this, "_ZN7ee266213fooEv");}
+ee26621 ::~ee26621(){ note_dtor("ee26621", this);} // tgen
+ee26621 ::ee26621(){ note_ctor("ee26621", this);} // tgen
+
+static void Test_ee26621()
+{
+ extern Class_Descriptor cd_ee26621;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee26621, buf);
+ ee26621 *dp, &lv = *(dp=new (buf) ee26621());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee26621)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26621)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc621*)(dd6621*), 0, "ee26621");
+ check_base_class_offset(lv, (bb21*)(cc621*)(dd6621*), 0, "ee26621");
+ check_base_class_offset(lv, (cc621*)(dd6621*), 0, "ee26621");
+ check_base_class_offset(lv, (dd6621*), 0, "ee26621");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee26621.e");
+ test_class_info(&lv, &cd_ee26621);
+ dp->~ee26621();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26621(Test_ee26621, "ee26621", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee26621C1Ev();
+extern void _ZN7ee26621D1Ev();
+Name_Map name_map_ee26621[] = {
+ NSPAIR(_ZN7ee26621C1Ev),
+ NSPAIR(_ZN7ee26621D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc621;
+extern VTBL_ENTRY _ZTI5cc621[];
+extern VTBL_ENTRY _ZTV5cc621[];
+extern Class_Descriptor cd_dd6621;
+extern VTBL_ENTRY _ZTI6dd6621[];
+extern VTBL_ENTRY _ZTV6dd6621[];
+static Base_Class bases_ee26621[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc621, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6621, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee26621[];
+extern void _ZN7ee266213fooEv();
+extern void _ZN6dd66213barEv();
+static VTBL_ENTRY vtc_ee26621[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26621[0]),
+ (VTBL_ENTRY)&_ZN7ee266213fooEv,
+ (VTBL_ENTRY)&_ZN6dd66213barEv,
+};
+extern VTBL_ENTRY _ZTI7ee26621[];
+extern VTBL_ENTRY _ZTV7ee26621[];
+Class_Descriptor cd_ee26621 = { "ee26621", // class name
+ bases_ee26621, 4,
+ &(vtc_ee26621[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee26621),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26621),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 ee36621 : virtual dd6621 {
+ int e;
+ virtual void foo(); // _ZN7ee366213fooEv
+ ~ee36621(); // tgen
+ ee36621(); // tgen
+};
+//SIG(1 ee36621) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36621 ::foo(){vfunc_called(this, "_ZN7ee366213fooEv");}
+ee36621 ::~ee36621(){ note_dtor("ee36621", this);} // tgen
+ee36621 ::ee36621(){ note_ctor("ee36621", this);} // tgen
+
+static void Test_ee36621()
+{
+ extern Class_Descriptor cd_ee36621;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee36621, buf);
+ ee36621 *dp, &lv = *(dp=new (buf) ee36621());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee36621)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36621)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc621*)(dd6621*), ABISELECT(16,8), "ee36621");
+ check_base_class_offset(lv, (bb21*)(cc621*)(dd6621*), ABISELECT(16,8), "ee36621");
+ check_base_class_offset(lv, (cc621*)(dd6621*), ABISELECT(16,8), "ee36621");
+ check_base_class_offset(lv, (dd6621*), ABISELECT(16,8), "ee36621");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36621.e");
+ test_class_info(&lv, &cd_ee36621);
+ dp->~ee36621();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36621(Test_ee36621, "ee36621", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee36621C1Ev();
+extern void _ZN7ee36621D1Ev();
+Name_Map name_map_ee36621[] = {
+ NSPAIR(_ZN7ee36621C1Ev),
+ NSPAIR(_ZN7ee36621D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc621;
+extern VTBL_ENTRY _ZTI5cc621[];
+extern VTBL_ENTRY _ZTV5cc621[];
+extern Class_Descriptor cd_dd6621;
+extern VTBL_ENTRY _ZTI6dd6621[];
+extern VTBL_ENTRY _ZTV6dd6621[];
+static Base_Class bases_ee36621[] = {
+ // 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_bb21, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc621, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6621, 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 _ZTI7ee36621[];
+extern void _ZN7ee366213fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee366213fooEv,_ZTv0_n12_N7ee366213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee366213fooEv,_ZThn8_N7ee366213fooEv)() __attribute__((weak));
+extern void _ZN6dd66213barEv();
+static VTBL_ENTRY vtc_ee36621[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36621[0]),
+ (VTBL_ENTRY)&_ZN7ee366213fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36621[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee366213fooEv,_ZTv0_n12_N7ee366213fooEv),
+ (VTBL_ENTRY)&_ZN6dd66213barEv,
+};
+extern VTBL_ENTRY _ZTV7ee36621[];
+static VTT_ENTRY vtt_ee36621[] = {
+ {&(_ZTV7ee36621[3]), 3,10},
+ {&(_ZTV7ee36621[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee36621[];
+extern VTBL_ENTRY _ZTV7ee36621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36621[];
+static VTBL_ENTRY alt_thunk_names766[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee366213fooEv,_ZTv0_n12_N7ee366213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee366213fooEv,_ZThn8_N7ee366213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36621 = { "ee36621", // class name
+ bases_ee36621, 4,
+ &(vtc_ee36621[0]), // expected_vtbl_contents
+ &(vtt_ee36621[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee36621),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36621),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36621),2, //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 ee46621 : dd6621 {
+ int e;
+ virtual void bar(); // _ZN7ee466213barEv
+ ~ee46621(); // tgen
+ ee46621(); // tgen
+};
+//SIG(1 ee46621) C1{ BC2{ BC3{ BC4{ BC5{ v2 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46621 ::bar(){vfunc_called(this, "_ZN7ee466213barEv");}
+ee46621 ::~ee46621(){ note_dtor("ee46621", this);} // tgen
+ee46621 ::ee46621(){ note_ctor("ee46621", this);} // tgen
+
+static void Test_ee46621()
+{
+ extern Class_Descriptor cd_ee46621;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee46621, buf);
+ ee46621 *dp, &lv = *(dp=new (buf) ee46621());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee46621)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46621)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc621*)(dd6621*), 0, "ee46621");
+ check_base_class_offset(lv, (bb21*)(cc621*)(dd6621*), 0, "ee46621");
+ check_base_class_offset(lv, (cc621*)(dd6621*), 0, "ee46621");
+ check_base_class_offset(lv, (dd6621*), 0, "ee46621");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee46621.e");
+ test_class_info(&lv, &cd_ee46621);
+ dp->~ee46621();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46621(Test_ee46621, "ee46621", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee46621C1Ev();
+extern void _ZN7ee46621D1Ev();
+Name_Map name_map_ee46621[] = {
+ NSPAIR(_ZN7ee46621C1Ev),
+ NSPAIR(_ZN7ee46621D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc621;
+extern VTBL_ENTRY _ZTI5cc621[];
+extern VTBL_ENTRY _ZTV5cc621[];
+extern Class_Descriptor cd_dd6621;
+extern VTBL_ENTRY _ZTI6dd6621[];
+extern VTBL_ENTRY _ZTV6dd6621[];
+static Base_Class bases_ee46621[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc621, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6621, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee46621[];
+extern void _ZN6dd66213fooEv();
+extern void _ZN7ee466213barEv();
+static VTBL_ENTRY vtc_ee46621[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46621[0]),
+ (VTBL_ENTRY)&_ZN6dd66213fooEv,
+ (VTBL_ENTRY)&_ZN7ee466213barEv,
+};
+extern VTBL_ENTRY _ZTI7ee46621[];
+extern VTBL_ENTRY _ZTV7ee46621[];
+Class_Descriptor cd_ee46621 = { "ee46621", // class name
+ bases_ee46621, 4,
+ &(vtc_ee46621[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee46621),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46621),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 ee56621 : virtual dd6621 {
+ int e;
+ virtual void bar(); // _ZN7ee566213barEv
+ ~ee56621(); // tgen
+ ee56621(); // tgen
+};
+//SIG(1 ee56621) C1{ VBC2{ BC3{ BC4{ BC5{ v2 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56621 ::bar(){vfunc_called(this, "_ZN7ee566213barEv");}
+ee56621 ::~ee56621(){ note_dtor("ee56621", this);} // tgen
+ee56621 ::ee56621(){ note_ctor("ee56621", this);} // tgen
+
+static void Test_ee56621()
+{
+ extern Class_Descriptor cd_ee56621;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee56621, buf);
+ ee56621 *dp, &lv = *(dp=new (buf) ee56621());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee56621)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56621)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc621*)(dd6621*), ABISELECT(16,8), "ee56621");
+ check_base_class_offset(lv, (bb21*)(cc621*)(dd6621*), ABISELECT(16,8), "ee56621");
+ check_base_class_offset(lv, (cc621*)(dd6621*), ABISELECT(16,8), "ee56621");
+ check_base_class_offset(lv, (dd6621*), ABISELECT(16,8), "ee56621");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56621.e");
+ test_class_info(&lv, &cd_ee56621);
+ dp->~ee56621();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56621(Test_ee56621, "ee56621", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee56621C1Ev();
+extern void _ZN7ee56621D1Ev();
+Name_Map name_map_ee56621[] = {
+ NSPAIR(_ZN7ee56621C1Ev),
+ NSPAIR(_ZN7ee56621D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc621;
+extern VTBL_ENTRY _ZTI5cc621[];
+extern VTBL_ENTRY _ZTV5cc621[];
+extern Class_Descriptor cd_dd6621;
+extern VTBL_ENTRY _ZTI6dd6621[];
+extern VTBL_ENTRY _ZTV6dd6621[];
+static Base_Class bases_ee56621[] = {
+ // 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_bb21, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc621, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6621, 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 _ZTI7ee56621[];
+extern void _ZN7ee566213barEv();
+extern void _ZN6dd66213fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee566213barEv,_ZTv0_n16_N7ee566213barEv)();
+extern void ABISELECT(_ZThn16_N7ee566213barEv,_ZThn8_N7ee566213barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56621[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56621[0]),
+ (VTBL_ENTRY)&_ZN7ee566213barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56621[0]),
+ (VTBL_ENTRY)&_ZN6dd66213fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee566213barEv,_ZTv0_n16_N7ee566213barEv),
+};
+extern VTBL_ENTRY _ZTV7ee56621[];
+static VTT_ENTRY vtt_ee56621[] = {
+ {&(_ZTV7ee56621[3]), 3,10},
+ {&(_ZTV7ee56621[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee56621[];
+extern VTBL_ENTRY _ZTV7ee56621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56621[];
+static VTBL_ENTRY alt_thunk_names767[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee566213barEv,_ZTv0_n16_N7ee566213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee566213barEv,_ZThn8_N7ee566213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56621 = { "ee56621", // class name
+ bases_ee56621, 4,
+ &(vtc_ee56621[0]), // expected_vtbl_contents
+ &(vtt_ee56621[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee56621),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56621),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56621),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names767,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee66621 : dd6621 {
+ int e;
+ virtual void foo(); // _ZN7ee666213fooEv
+ virtual void bar(); // _ZN7ee666213barEv
+ ~ee66621(); // tgen
+ ee66621(); // tgen
+};
+//SIG(1 ee66621) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66621 ::foo(){vfunc_called(this, "_ZN7ee666213fooEv");}
+void ee66621 ::bar(){vfunc_called(this, "_ZN7ee666213barEv");}
+ee66621 ::~ee66621(){ note_dtor("ee66621", this);} // tgen
+ee66621 ::ee66621(){ note_ctor("ee66621", this);} // tgen
+
+static void Test_ee66621()
+{
+ extern Class_Descriptor cd_ee66621;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee66621, buf);
+ ee66621 *dp, &lv = *(dp=new (buf) ee66621());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee66621)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66621)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc621*)(dd6621*), 0, "ee66621");
+ check_base_class_offset(lv, (bb21*)(cc621*)(dd6621*), 0, "ee66621");
+ check_base_class_offset(lv, (cc621*)(dd6621*), 0, "ee66621");
+ check_base_class_offset(lv, (dd6621*), 0, "ee66621");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee66621.e");
+ test_class_info(&lv, &cd_ee66621);
+ dp->~ee66621();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66621(Test_ee66621, "ee66621", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee66621C1Ev();
+extern void _ZN7ee66621D1Ev();
+Name_Map name_map_ee66621[] = {
+ NSPAIR(_ZN7ee66621C1Ev),
+ NSPAIR(_ZN7ee66621D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc621;
+extern VTBL_ENTRY _ZTI5cc621[];
+extern VTBL_ENTRY _ZTV5cc621[];
+extern Class_Descriptor cd_dd6621;
+extern VTBL_ENTRY _ZTI6dd6621[];
+extern VTBL_ENTRY _ZTV6dd6621[];
+static Base_Class bases_ee66621[] = {
+ // 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_bb21, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc621, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6621, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee66621[];
+extern void _ZN7ee666213fooEv();
+extern void _ZN7ee666213barEv();
+static VTBL_ENTRY vtc_ee66621[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66621[0]),
+ (VTBL_ENTRY)&_ZN7ee666213fooEv,
+ (VTBL_ENTRY)&_ZN7ee666213barEv,
+};
+extern VTBL_ENTRY _ZTI7ee66621[];
+extern VTBL_ENTRY _ZTV7ee66621[];
+Class_Descriptor cd_ee66621 = { "ee66621", // class name
+ bases_ee66621, 4,
+ &(vtc_ee66621[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee66621),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66621),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 ee76621 : virtual dd6621 {
+ int e;
+ virtual void foo(); // _ZN7ee766213fooEv
+ virtual void bar(); // _ZN7ee766213barEv
+ ~ee76621(); // tgen
+ ee76621(); // tgen
+};
+//SIG(1 ee76621) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76621 ::foo(){vfunc_called(this, "_ZN7ee766213fooEv");}
+void ee76621 ::bar(){vfunc_called(this, "_ZN7ee766213barEv");}
+ee76621 ::~ee76621(){ note_dtor("ee76621", this);} // tgen
+ee76621 ::ee76621(){ note_ctor("ee76621", this);} // tgen
+
+static void Test_ee76621()
+{
+ extern Class_Descriptor cd_ee76621;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee76621, buf);
+ ee76621 *dp, &lv = *(dp=new (buf) ee76621());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee76621)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76621)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc621*)(dd6621*), ABISELECT(16,8), "ee76621");
+ check_base_class_offset(lv, (bb21*)(cc621*)(dd6621*), ABISELECT(16,8), "ee76621");
+ check_base_class_offset(lv, (cc621*)(dd6621*), ABISELECT(16,8), "ee76621");
+ check_base_class_offset(lv, (dd6621*), ABISELECT(16,8), "ee76621");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76621.e");
+ test_class_info(&lv, &cd_ee76621);
+ dp->~ee76621();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76621(Test_ee76621, "ee76621", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee76621C1Ev();
+extern void _ZN7ee76621D1Ev();
+Name_Map name_map_ee76621[] = {
+ NSPAIR(_ZN7ee76621C1Ev),
+ NSPAIR(_ZN7ee76621D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc621;
+extern VTBL_ENTRY _ZTI5cc621[];
+extern VTBL_ENTRY _ZTV5cc621[];
+extern Class_Descriptor cd_dd6621;
+extern VTBL_ENTRY _ZTI6dd6621[];
+extern VTBL_ENTRY _ZTV6dd6621[];
+static Base_Class bases_ee76621[] = {
+ // 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_bb21, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc621, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6621, 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 _ZTI7ee76621[];
+extern void _ZN7ee766213fooEv();
+extern void _ZN7ee766213barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee766213fooEv,_ZTv0_n12_N7ee766213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee766213fooEv,_ZThn8_N7ee766213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee766213barEv,_ZTv0_n16_N7ee766213barEv)();
+extern void ABISELECT(_ZThn16_N7ee766213barEv,_ZThn8_N7ee766213barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76621[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76621[0]),
+ (VTBL_ENTRY)&_ZN7ee766213fooEv,
+ (VTBL_ENTRY)&_ZN7ee766213barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76621[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee766213fooEv,_ZTv0_n12_N7ee766213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee766213barEv,_ZTv0_n16_N7ee766213barEv),
+};
+extern VTBL_ENTRY _ZTV7ee76621[];
+static VTT_ENTRY vtt_ee76621[] = {
+ {&(_ZTV7ee76621[3]), 3,11},
+ {&(_ZTV7ee76621[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee76621[];
+extern VTBL_ENTRY _ZTV7ee76621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76621[];
+static VTBL_ENTRY alt_thunk_names768[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee766213barEv,_ZTv0_n16_N7ee766213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee766213barEv,_ZThn8_N7ee766213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee766213fooEv,_ZTv0_n12_N7ee766213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee766213fooEv,_ZThn8_N7ee766213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76621 = { "ee76621", // class name
+ bases_ee76621, 4,
+ &(vtc_ee76621[0]), // expected_vtbl_contents
+ &(vtt_ee76621[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee76621),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76621),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76621),2, //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 dd7621 : virtual cc621 {
+ int d;
+ virtual void bar(); // _ZN6dd76213barEv
+ virtual void foo(); // _ZN6dd76213fooEv
+ ~dd7621(); // tgen
+ dd7621(); // tgen
+};
+//SIG(-1 dd7621) C1{ VBC2{ BC3{ BC4{ v2 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void dd7621 ::bar(){vfunc_called(this, "_ZN6dd76213barEv");}
+void dd7621 ::foo(){vfunc_called(this, "_ZN6dd76213fooEv");}
+dd7621 ::~dd7621(){ note_dtor("dd7621", this);} // tgen
+dd7621 ::dd7621(){ note_ctor("dd7621", this);} // tgen
+
+static void Test_dd7621()
+{
+ extern Class_Descriptor cd_dd7621;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd7621, buf);
+ dd7621 *dp, &lv = *(dp=new (buf) dd7621());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd7621)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7621)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc621*), ABISELECT(16,8), "dd7621");
+ check_base_class_offset(lv, (bb21*)(cc621*), ABISELECT(16,8), "dd7621");
+ check_base_class_offset(lv, (cc621*), ABISELECT(16,8), "dd7621");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7621.d");
+ test_class_info(&lv, &cd_dd7621);
+ dp->~dd7621();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7621(Test_dd7621, "dd7621", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd7621C1Ev();
+extern void _ZN6dd7621D1Ev();
+Name_Map name_map_dd7621[] = {
+ NSPAIR(_ZN6dd7621C1Ev),
+ NSPAIR(_ZN6dd7621D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc621;
+extern VTBL_ENTRY _ZTI5cc621[];
+extern VTBL_ENTRY _ZTV5cc621[];
+static Base_Class bases_dd7621[] = {
+ // 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_bb21, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc621, 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 _ZTI6dd7621[];
+extern void _ZN6dd76213barEv();
+extern void _ZN6dd76213fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd76213fooEv,_ZTv0_n12_N6dd76213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76213fooEv,_ZThn8_N6dd76213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76213barEv,_ZTv0_n16_N6dd76213barEv)();
+extern void ABISELECT(_ZThn16_N6dd76213barEv,_ZThn8_N6dd76213barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7621[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7621[0]),
+ (VTBL_ENTRY)&_ZN6dd76213barEv,
+ (VTBL_ENTRY)&_ZN6dd76213fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7621[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76213fooEv,_ZTv0_n12_N6dd76213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76213barEv,_ZTv0_n16_N6dd76213barEv),
+};
+extern VTBL_ENTRY _ZTV6dd7621[];
+static VTT_ENTRY vtt_dd7621[] = {
+ {&(_ZTV6dd7621[3]), 3,11},
+ {&(_ZTV6dd7621[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd7621[];
+extern VTBL_ENTRY _ZTV6dd7621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7621[];
+static VTBL_ENTRY alt_thunk_names769[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76213barEv,_ZTv0_n16_N6dd76213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76213barEv,_ZThn8_N6dd76213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76213fooEv,_ZTv0_n12_N6dd76213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76213fooEv,_ZThn8_N6dd76213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7621 = { "dd7621", // class name
+ bases_dd7621, 3,
+ &(vtc_dd7621[0]), // expected_vtbl_contents
+ &(vtt_dd7621[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd7621),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7621),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7621),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names769,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07621 : dd7621 {
+ int e;
+ ~ee07621(); // tgen
+ ee07621(); // tgen
+};
+//SIG(1 ee07621) C1{ BC2{ VBC3{ BC4{ BC5{ v2 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee07621 ::~ee07621(){ note_dtor("ee07621", this);} // tgen
+ee07621 ::ee07621(){ note_ctor("ee07621", this);} // tgen
+
+static void Test_ee07621()
+{
+ extern Class_Descriptor cd_ee07621;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee07621, buf);
+ ee07621 *dp, &lv = *(dp=new (buf) ee07621());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee07621)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07621)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc621*), ABISELECT(16,12), "ee07621");
+ check_base_class_offset(lv, (bb21*)(cc621*), ABISELECT(16,12), "ee07621");
+ check_base_class_offset(lv, (cc621*)(dd7621*), ABISELECT(16,12), "ee07621");
+ check_base_class_offset(lv, (dd7621*), 0, "ee07621");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07621.e");
+ test_class_info(&lv, &cd_ee07621);
+ dp->~ee07621();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07621(Test_ee07621, "ee07621", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee07621C1Ev();
+extern void _ZN7ee07621D1Ev();
+Name_Map name_map_ee07621[] = {
+ NSPAIR(_ZN7ee07621C1Ev),
+ NSPAIR(_ZN7ee07621D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc621;
+extern VTBL_ENTRY _ZTI5cc621[];
+extern VTBL_ENTRY _ZTV5cc621[];
+extern Class_Descriptor cd_dd7621;
+extern VTBL_ENTRY _ZTI6dd7621[];
+extern VTBL_ENTRY _ZTV6dd7621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7621[];
+static Base_Class bases_ee07621[] = {
+ // 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_bb21, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc621, 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_dd7621, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07621[];
+extern void _ZN6dd76213barEv();
+extern void _ZN6dd76213fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd76213fooEv,_ZTv0_n12_N6dd76213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76213fooEv,_ZThn12_N6dd76213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76213barEv,_ZTv0_n16_N6dd76213barEv)();
+extern void ABISELECT(_ZThn16_N6dd76213barEv,_ZThn12_N6dd76213barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07621[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07621[0]),
+ (VTBL_ENTRY)&_ZN6dd76213barEv,
+ (VTBL_ENTRY)&_ZN6dd76213fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07621[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76213fooEv,_ZTv0_n12_N6dd76213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76213barEv,_ZTv0_n16_N6dd76213barEv),
+};
+extern VTBL_ENTRY _ZTV7ee07621[];
+extern void _ZN6dd76213barEv();
+extern void _ZN6dd76213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7621__7ee07621[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7621[0]),
+ (VTBL_ENTRY)&_ZN6dd76213barEv,
+ (VTBL_ENTRY)&_ZN6dd76213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76213fooEv,_ZTv0_n12_N6dd76213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76213fooEv,_ZThn12_N6dd76213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76213barEv,_ZTv0_n16_N6dd76213barEv)();
+extern void ABISELECT(_ZThn16_N6dd76213barEv,_ZThn12_N6dd76213barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc621__6dd7621__7ee07621[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7621[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76213fooEv,_ZTv0_n12_N6dd76213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76213barEv,_ZTv0_n16_N6dd76213barEv),
+};
+static VTT_ENTRY vtt_ee07621[] = {
+ {&(_ZTV7ee07621[3]), 3,11},
+ {&(_tg__ZTV6dd7621__7ee07621[3]), 3,5},
+ {&(_tg__ZTV5cc621__6dd7621__7ee07621[4]), 4,6},
+ {&(_ZTV7ee07621[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee07621[];
+extern VTBL_ENTRY _ZTV7ee07621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07621[];
+static VTBL_ENTRY alt_thunk_names770[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76213barEv,_ZTv0_n16_N6dd76213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76213barEv,_ZThn12_N6dd76213barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76213barEv,_ZThn12_N6dd76213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76213fooEv,_ZTv0_n12_N6dd76213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76213fooEv,_ZThn12_N6dd76213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76213fooEv,_ZThn12_N6dd76213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07621 = { "ee07621", // class name
+ bases_ee07621, 4,
+ &(vtc_ee07621[0]), // expected_vtbl_contents
+ &(vtt_ee07621[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee07621),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07621),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07621),4, //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 ee17621 : virtual dd7621 {
+ int e;
+ ~ee17621(); // tgen
+ ee17621(); // tgen
+};
+//SIG(1 ee17621) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee17621 ::~ee17621(){ note_dtor("ee17621", this);} // tgen
+ee17621 ::ee17621(){ note_ctor("ee17621", this);} // tgen
+
+static void Test_ee17621()
+{
+ extern Class_Descriptor cd_ee17621;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee17621, buf);
+ ee17621 *dp, &lv = *(dp=new (buf) ee17621());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee17621)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17621)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc621*), ABISELECT(32,16), "ee17621");
+ check_base_class_offset(lv, (bb21*)(cc621*), ABISELECT(32,16), "ee17621");
+ check_base_class_offset(lv, (cc621*)(dd7621*), ABISELECT(32,16), "ee17621");
+ check_base_class_offset(lv, (dd7621*), ABISELECT(16,8), "ee17621");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17621.e");
+ test_class_info(&lv, &cd_ee17621);
+ dp->~ee17621();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17621(Test_ee17621, "ee17621", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee17621C1Ev();
+extern void _ZN7ee17621D1Ev();
+Name_Map name_map_ee17621[] = {
+ NSPAIR(_ZN7ee17621C1Ev),
+ NSPAIR(_ZN7ee17621D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc621;
+extern VTBL_ENTRY _ZTI5cc621[];
+extern VTBL_ENTRY _ZTV5cc621[];
+extern Class_Descriptor cd_dd7621;
+extern VTBL_ENTRY _ZTI6dd7621[];
+extern VTBL_ENTRY _ZTV6dd7621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7621[];
+static Base_Class bases_ee17621[] = {
+ // 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_bb21, 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_cc621, 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_dd7621, 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 _ZTI7ee17621[];
+extern void _ZN6dd76213barEv();
+extern void _ZN6dd76213fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd76213fooEv,_ZTv0_n12_N6dd76213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76213fooEv,_ZThn8_N6dd76213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76213barEv,_ZTv0_n16_N6dd76213barEv)();
+extern void ABISELECT(_ZThn16_N6dd76213barEv,_ZThn8_N6dd76213barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17621[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17621[0]),
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17621[0]),
+ (VTBL_ENTRY)&_ZN6dd76213barEv,
+ (VTBL_ENTRY)&_ZN6dd76213fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17621[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76213fooEv,_ZTv0_n12_N6dd76213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76213barEv,_ZTv0_n16_N6dd76213barEv),
+};
+extern VTBL_ENTRY _ZTV7ee17621[];
+extern void _ZN6dd76213barEv();
+extern void _ZN6dd76213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7621__7ee17621[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7621[0]),
+ (VTBL_ENTRY)&_ZN6dd76213barEv,
+ (VTBL_ENTRY)&_ZN6dd76213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76213fooEv,_ZTv0_n12_N6dd76213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76213fooEv,_ZThn8_N6dd76213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76213barEv,_ZTv0_n16_N6dd76213barEv)();
+extern void ABISELECT(_ZThn16_N6dd76213barEv,_ZThn8_N6dd76213barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc621__6dd7621__7ee17621[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7621[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76213fooEv,_ZTv0_n12_N6dd76213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76213barEv,_ZTv0_n16_N6dd76213barEv),
+};
+static VTT_ENTRY vtt_ee17621[] = {
+ {&(_ZTV7ee17621[4]), 4,17},
+ {&(_ZTV7ee17621[9]), 9,17},
+ {&(_ZTV7ee17621[15]), 15,17},
+ {&(_tg__ZTV6dd7621__7ee17621[3]), 3,5},
+ {&(_tg__ZTV5cc621__6dd7621__7ee17621[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee17621[];
+extern VTBL_ENTRY _ZTV7ee17621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17621[];
+static VTBL_ENTRY alt_thunk_names771[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76213barEv,_ZTv0_n16_N6dd76213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76213barEv,_ZThn8_N6dd76213barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76213barEv,_ZThn8_N6dd76213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76213fooEv,_ZTv0_n12_N6dd76213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76213fooEv,_ZThn8_N6dd76213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76213fooEv,_ZThn8_N6dd76213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17621 = { "ee17621", // class name
+ bases_ee17621, 4,
+ &(vtc_ee17621[0]), // expected_vtbl_contents
+ &(vtt_ee17621[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee17621),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17621),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17621),5, //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 ee27621 : dd7621 {
+ int e;
+ virtual void foo(); // _ZN7ee276213fooEv
+ ~ee27621(); // tgen
+ ee27621(); // tgen
+};
+//SIG(1 ee27621) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27621 ::foo(){vfunc_called(this, "_ZN7ee276213fooEv");}
+ee27621 ::~ee27621(){ note_dtor("ee27621", this);} // tgen
+ee27621 ::ee27621(){ note_ctor("ee27621", this);} // tgen
+
+static void Test_ee27621()
+{
+ extern Class_Descriptor cd_ee27621;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee27621, buf);
+ ee27621 *dp, &lv = *(dp=new (buf) ee27621());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee27621)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27621)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc621*), ABISELECT(16,12), "ee27621");
+ check_base_class_offset(lv, (bb21*)(cc621*), ABISELECT(16,12), "ee27621");
+ check_base_class_offset(lv, (cc621*)(dd7621*), ABISELECT(16,12), "ee27621");
+ check_base_class_offset(lv, (dd7621*), 0, "ee27621");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27621.e");
+ test_class_info(&lv, &cd_ee27621);
+ dp->~ee27621();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27621(Test_ee27621, "ee27621", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee27621C1Ev();
+extern void _ZN7ee27621D1Ev();
+Name_Map name_map_ee27621[] = {
+ NSPAIR(_ZN7ee27621C1Ev),
+ NSPAIR(_ZN7ee27621D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc621;
+extern VTBL_ENTRY _ZTI5cc621[];
+extern VTBL_ENTRY _ZTV5cc621[];
+extern Class_Descriptor cd_dd7621;
+extern VTBL_ENTRY _ZTI6dd7621[];
+extern VTBL_ENTRY _ZTV6dd7621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7621[];
+static Base_Class bases_ee27621[] = {
+ // 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_bb21, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc621, 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_dd7621, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27621[];
+extern void _ZN6dd76213barEv();
+extern void _ZN7ee276213fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee276213fooEv,_ZTv0_n12_N7ee276213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee276213fooEv,_ZThn12_N7ee276213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76213barEv,_ZTv0_n16_N6dd76213barEv)();
+extern void ABISELECT(_ZThn16_N6dd76213barEv,_ZThn12_N6dd76213barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27621[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27621[0]),
+ (VTBL_ENTRY)&_ZN6dd76213barEv,
+ (VTBL_ENTRY)&_ZN7ee276213fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27621[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee276213fooEv,_ZTv0_n12_N7ee276213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76213barEv,_ZTv0_n16_N6dd76213barEv),
+};
+extern VTBL_ENTRY _ZTV7ee27621[];
+extern void _ZN6dd76213barEv();
+extern void _ZN6dd76213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7621__7ee27621[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7621[0]),
+ (VTBL_ENTRY)&_ZN6dd76213barEv,
+ (VTBL_ENTRY)&_ZN6dd76213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76213fooEv,_ZTv0_n12_N6dd76213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76213fooEv,_ZThn12_N6dd76213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76213barEv,_ZTv0_n16_N6dd76213barEv)();
+extern void ABISELECT(_ZThn16_N6dd76213barEv,_ZThn12_N6dd76213barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc621__6dd7621__7ee27621[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7621[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76213fooEv,_ZTv0_n12_N6dd76213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76213barEv,_ZTv0_n16_N6dd76213barEv),
+};
+static VTT_ENTRY vtt_ee27621[] = {
+ {&(_ZTV7ee27621[3]), 3,11},
+ {&(_tg__ZTV6dd7621__7ee27621[3]), 3,5},
+ {&(_tg__ZTV5cc621__6dd7621__7ee27621[4]), 4,6},
+ {&(_ZTV7ee27621[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee27621[];
+extern VTBL_ENTRY _ZTV7ee27621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27621[];
+static VTBL_ENTRY alt_thunk_names772[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76213fooEv,_ZTv0_n12_N6dd76213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76213fooEv,_ZThn12_N6dd76213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76213barEv,_ZTv0_n16_N6dd76213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76213barEv,_ZThn12_N6dd76213barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76213barEv,_ZThn12_N6dd76213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee276213fooEv,_ZTv0_n12_N7ee276213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee276213fooEv,_ZThn12_N7ee276213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27621 = { "ee27621", // class name
+ bases_ee27621, 4,
+ &(vtc_ee27621[0]), // expected_vtbl_contents
+ &(vtt_ee27621[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee27621),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27621),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27621),4, //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 ee37621 : virtual dd7621 {
+ int e;
+ virtual void foo(); // _ZN7ee376213fooEv
+ ~ee37621(); // tgen
+ ee37621(); // tgen
+};
+//SIG(1 ee37621) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37621 ::foo(){vfunc_called(this, "_ZN7ee376213fooEv");}
+ee37621 ::~ee37621(){ note_dtor("ee37621", this);} // tgen
+ee37621 ::ee37621(){ note_ctor("ee37621", this);} // tgen
+
+static void Test_ee37621()
+{
+ extern Class_Descriptor cd_ee37621;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee37621, buf);
+ ee37621 *dp, &lv = *(dp=new (buf) ee37621());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee37621)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37621)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc621*), ABISELECT(32,16), "ee37621");
+ check_base_class_offset(lv, (bb21*)(cc621*), ABISELECT(32,16), "ee37621");
+ check_base_class_offset(lv, (cc621*)(dd7621*), ABISELECT(32,16), "ee37621");
+ check_base_class_offset(lv, (dd7621*), ABISELECT(16,8), "ee37621");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37621.e");
+ test_class_info(&lv, &cd_ee37621);
+ dp->~ee37621();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37621(Test_ee37621, "ee37621", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee37621C1Ev();
+extern void _ZN7ee37621D1Ev();
+Name_Map name_map_ee37621[] = {
+ NSPAIR(_ZN7ee37621C1Ev),
+ NSPAIR(_ZN7ee37621D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc621;
+extern VTBL_ENTRY _ZTI5cc621[];
+extern VTBL_ENTRY _ZTV5cc621[];
+extern Class_Descriptor cd_dd7621;
+extern VTBL_ENTRY _ZTI6dd7621[];
+extern VTBL_ENTRY _ZTV6dd7621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7621[];
+static Base_Class bases_ee37621[] = {
+ // 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_bb21, 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_cc621, 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_dd7621, 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 _ZTI7ee37621[];
+extern void _ZN7ee376213fooEv();
+extern void _ZN6dd76213barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee376213fooEv,_ZTv0_n20_N7ee376213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee376213fooEv,_ZThn8_N7ee376213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee376213fooEv,_ZTv0_n12_N7ee376213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee376213fooEv,_ZThn16_N7ee376213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76213barEv,_ZTv0_n16_N6dd76213barEv)();
+extern void ABISELECT(_ZThn16_N6dd76213barEv,_ZThn8_N6dd76213barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37621[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37621[0]),
+ (VTBL_ENTRY)&_ZN7ee376213fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37621[0]),
+ (VTBL_ENTRY)&_ZN6dd76213barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee376213fooEv,_ZTv0_n20_N7ee376213fooEv),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37621[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee376213fooEv,_ZTv0_n12_N7ee376213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76213barEv,_ZTv0_n16_N6dd76213barEv),
+};
+extern VTBL_ENTRY _ZTV7ee37621[];
+extern void _ZN6dd76213barEv();
+extern void _ZN6dd76213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7621__7ee37621[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7621[0]),
+ (VTBL_ENTRY)&_ZN6dd76213barEv,
+ (VTBL_ENTRY)&_ZN6dd76213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76213fooEv,_ZTv0_n12_N6dd76213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76213fooEv,_ZThn8_N6dd76213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76213barEv,_ZTv0_n16_N6dd76213barEv)();
+extern void ABISELECT(_ZThn16_N6dd76213barEv,_ZThn8_N6dd76213barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc621__6dd7621__7ee37621[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7621[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76213fooEv,_ZTv0_n12_N6dd76213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76213barEv,_ZTv0_n16_N6dd76213barEv),
+};
+static VTT_ENTRY vtt_ee37621[] = {
+ {&(_ZTV7ee37621[4]), 4,18},
+ {&(_ZTV7ee37621[10]), 10,18},
+ {&(_ZTV7ee37621[16]), 16,18},
+ {&(_tg__ZTV6dd7621__7ee37621[3]), 3,5},
+ {&(_tg__ZTV5cc621__6dd7621__7ee37621[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee37621[];
+extern VTBL_ENTRY _ZTV7ee37621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37621[];
+static VTBL_ENTRY alt_thunk_names773[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76213fooEv,_ZTv0_n12_N6dd76213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76213fooEv,_ZThn8_N6dd76213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76213barEv,_ZTv0_n16_N6dd76213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76213barEv,_ZThn8_N6dd76213barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76213barEv,_ZThn8_N6dd76213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee376213fooEv,_ZTv0_n12_N7ee376213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee376213fooEv,_ZThn16_N7ee376213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee376213fooEv,_ZTv0_n20_N7ee376213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee376213fooEv,_ZThn8_N7ee376213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37621 = { "ee37621", // class name
+ bases_ee37621, 4,
+ &(vtc_ee37621[0]), // expected_vtbl_contents
+ &(vtt_ee37621[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee37621),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37621),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37621),5, //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 ee47621 : dd7621 {
+ int e;
+ virtual void bar(); // _ZN7ee476213barEv
+ ~ee47621(); // tgen
+ ee47621(); // tgen
+};
+//SIG(1 ee47621) C1{ BC2{ VBC3{ BC4{ BC5{ v2 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47621 ::bar(){vfunc_called(this, "_ZN7ee476213barEv");}
+ee47621 ::~ee47621(){ note_dtor("ee47621", this);} // tgen
+ee47621 ::ee47621(){ note_ctor("ee47621", this);} // tgen
+
+static void Test_ee47621()
+{
+ extern Class_Descriptor cd_ee47621;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee47621, buf);
+ ee47621 *dp, &lv = *(dp=new (buf) ee47621());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee47621)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47621)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc621*), ABISELECT(16,12), "ee47621");
+ check_base_class_offset(lv, (bb21*)(cc621*), ABISELECT(16,12), "ee47621");
+ check_base_class_offset(lv, (cc621*)(dd7621*), ABISELECT(16,12), "ee47621");
+ check_base_class_offset(lv, (dd7621*), 0, "ee47621");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47621.e");
+ test_class_info(&lv, &cd_ee47621);
+ dp->~ee47621();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47621(Test_ee47621, "ee47621", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee47621C1Ev();
+extern void _ZN7ee47621D1Ev();
+Name_Map name_map_ee47621[] = {
+ NSPAIR(_ZN7ee47621C1Ev),
+ NSPAIR(_ZN7ee47621D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc621;
+extern VTBL_ENTRY _ZTI5cc621[];
+extern VTBL_ENTRY _ZTV5cc621[];
+extern Class_Descriptor cd_dd7621;
+extern VTBL_ENTRY _ZTI6dd7621[];
+extern VTBL_ENTRY _ZTV6dd7621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7621[];
+static Base_Class bases_ee47621[] = {
+ // 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_bb21, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc621, 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_dd7621, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47621[];
+extern void _ZN7ee476213barEv();
+extern void _ZN6dd76213fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd76213fooEv,_ZTv0_n12_N6dd76213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76213fooEv,_ZThn12_N6dd76213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee476213barEv,_ZTv0_n16_N7ee476213barEv)();
+extern void ABISELECT(_ZThn16_N7ee476213barEv,_ZThn12_N7ee476213barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47621[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47621[0]),
+ (VTBL_ENTRY)&_ZN7ee476213barEv,
+ (VTBL_ENTRY)&_ZN6dd76213fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47621[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76213fooEv,_ZTv0_n12_N6dd76213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee476213barEv,_ZTv0_n16_N7ee476213barEv),
+};
+extern VTBL_ENTRY _ZTV7ee47621[];
+extern void _ZN6dd76213barEv();
+extern void _ZN6dd76213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7621__7ee47621[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7621[0]),
+ (VTBL_ENTRY)&_ZN6dd76213barEv,
+ (VTBL_ENTRY)&_ZN6dd76213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76213fooEv,_ZTv0_n12_N6dd76213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76213fooEv,_ZThn12_N6dd76213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76213barEv,_ZTv0_n16_N6dd76213barEv)();
+extern void ABISELECT(_ZThn16_N6dd76213barEv,_ZThn12_N6dd76213barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc621__6dd7621__7ee47621[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7621[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76213fooEv,_ZTv0_n12_N6dd76213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76213barEv,_ZTv0_n16_N6dd76213barEv),
+};
+static VTT_ENTRY vtt_ee47621[] = {
+ {&(_ZTV7ee47621[3]), 3,11},
+ {&(_tg__ZTV6dd7621__7ee47621[3]), 3,5},
+ {&(_tg__ZTV5cc621__6dd7621__7ee47621[4]), 4,6},
+ {&(_ZTV7ee47621[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee47621[];
+extern VTBL_ENTRY _ZTV7ee47621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47621[];
+static VTBL_ENTRY alt_thunk_names774[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76213barEv,_ZTv0_n16_N6dd76213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76213barEv,_ZThn12_N6dd76213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee476213barEv,_ZTv0_n16_N7ee476213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee476213barEv,_ZThn12_N7ee476213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76213fooEv,_ZTv0_n12_N6dd76213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76213fooEv,_ZThn12_N6dd76213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76213fooEv,_ZThn12_N6dd76213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47621 = { "ee47621", // class name
+ bases_ee47621, 4,
+ &(vtc_ee47621[0]), // expected_vtbl_contents
+ &(vtt_ee47621[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee47621),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47621),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47621),4, //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 ee57621 : virtual dd7621 {
+ int e;
+ virtual void bar(); // _ZN7ee576213barEv
+ ~ee57621(); // tgen
+ ee57621(); // tgen
+};
+//SIG(1 ee57621) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57621 ::bar(){vfunc_called(this, "_ZN7ee576213barEv");}
+ee57621 ::~ee57621(){ note_dtor("ee57621", this);} // tgen
+ee57621 ::ee57621(){ note_ctor("ee57621", this);} // tgen
+
+static void Test_ee57621()
+{
+ extern Class_Descriptor cd_ee57621;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee57621, buf);
+ ee57621 *dp, &lv = *(dp=new (buf) ee57621());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee57621)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57621)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc621*), ABISELECT(32,16), "ee57621");
+ check_base_class_offset(lv, (bb21*)(cc621*), ABISELECT(32,16), "ee57621");
+ check_base_class_offset(lv, (cc621*)(dd7621*), ABISELECT(32,16), "ee57621");
+ check_base_class_offset(lv, (dd7621*), ABISELECT(16,8), "ee57621");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57621.e");
+ test_class_info(&lv, &cd_ee57621);
+ dp->~ee57621();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57621(Test_ee57621, "ee57621", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee57621C1Ev();
+extern void _ZN7ee57621D1Ev();
+Name_Map name_map_ee57621[] = {
+ NSPAIR(_ZN7ee57621C1Ev),
+ NSPAIR(_ZN7ee57621D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc621;
+extern VTBL_ENTRY _ZTI5cc621[];
+extern VTBL_ENTRY _ZTV5cc621[];
+extern Class_Descriptor cd_dd7621;
+extern VTBL_ENTRY _ZTI6dd7621[];
+extern VTBL_ENTRY _ZTV6dd7621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7621[];
+static Base_Class bases_ee57621[] = {
+ // 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_bb21, 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_cc621, 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_dd7621, 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 _ZTI7ee57621[];
+extern void _ZN7ee576213barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee576213barEv,_ZTv0_n16_N7ee576213barEv)();
+extern void ABISELECT(_ZThn16_N7ee576213barEv,_ZThn8_N7ee576213barEv)() __attribute__((weak));
+extern void _ZN6dd76213fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd76213fooEv,_ZTv0_n12_N6dd76213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76213fooEv,_ZThn8_N6dd76213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee576213barEv,_ZTv0_n16_N7ee576213barEv)();
+extern void ABISELECT(_ZThn32_N7ee576213barEv,_ZThn16_N7ee576213barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57621[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57621[0]),
+ (VTBL_ENTRY)&_ZN7ee576213barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57621[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee576213barEv,_ZTv0_n16_N7ee576213barEv),
+ (VTBL_ENTRY)&_ZN6dd76213fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57621[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76213fooEv,_ZTv0_n12_N6dd76213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee576213barEv,_ZTv0_n16_N7ee576213barEv),
+};
+extern VTBL_ENTRY _ZTV7ee57621[];
+extern void _ZN6dd76213barEv();
+extern void _ZN6dd76213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7621__7ee57621[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7621[0]),
+ (VTBL_ENTRY)&_ZN6dd76213barEv,
+ (VTBL_ENTRY)&_ZN6dd76213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76213fooEv,_ZTv0_n12_N6dd76213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76213fooEv,_ZThn8_N6dd76213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76213barEv,_ZTv0_n16_N6dd76213barEv)();
+extern void ABISELECT(_ZThn16_N6dd76213barEv,_ZThn8_N6dd76213barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc621__6dd7621__7ee57621[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7621[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76213fooEv,_ZTv0_n12_N6dd76213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76213barEv,_ZTv0_n16_N6dd76213barEv),
+};
+static VTT_ENTRY vtt_ee57621[] = {
+ {&(_ZTV7ee57621[4]), 4,18},
+ {&(_ZTV7ee57621[10]), 10,18},
+ {&(_ZTV7ee57621[16]), 16,18},
+ {&(_tg__ZTV6dd7621__7ee57621[3]), 3,5},
+ {&(_tg__ZTV5cc621__6dd7621__7ee57621[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee57621[];
+extern VTBL_ENTRY _ZTV7ee57621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57621[];
+static VTBL_ENTRY alt_thunk_names775[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76213barEv,_ZTv0_n16_N6dd76213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76213barEv,_ZThn8_N6dd76213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76213fooEv,_ZTv0_n12_N6dd76213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76213fooEv,_ZThn8_N6dd76213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76213fooEv,_ZThn8_N6dd76213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee576213barEv,_ZTv0_n16_N7ee576213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee576213barEv,_ZThn16_N7ee576213barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee576213barEv,_ZThn8_N7ee576213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57621 = { "ee57621", // class name
+ bases_ee57621, 4,
+ &(vtc_ee57621[0]), // expected_vtbl_contents
+ &(vtt_ee57621[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee57621),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57621),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57621),5, //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 ee67621 : dd7621 {
+ int e;
+ virtual void foo(); // _ZN7ee676213fooEv
+ virtual void bar(); // _ZN7ee676213barEv
+ ~ee67621(); // tgen
+ ee67621(); // tgen
+};
+//SIG(1 ee67621) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67621 ::foo(){vfunc_called(this, "_ZN7ee676213fooEv");}
+void ee67621 ::bar(){vfunc_called(this, "_ZN7ee676213barEv");}
+ee67621 ::~ee67621(){ note_dtor("ee67621", this);} // tgen
+ee67621 ::ee67621(){ note_ctor("ee67621", this);} // tgen
+
+static void Test_ee67621()
+{
+ extern Class_Descriptor cd_ee67621;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee67621, buf);
+ ee67621 *dp, &lv = *(dp=new (buf) ee67621());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee67621)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67621)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc621*), ABISELECT(16,12), "ee67621");
+ check_base_class_offset(lv, (bb21*)(cc621*), ABISELECT(16,12), "ee67621");
+ check_base_class_offset(lv, (cc621*)(dd7621*), ABISELECT(16,12), "ee67621");
+ check_base_class_offset(lv, (dd7621*), 0, "ee67621");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67621.e");
+ test_class_info(&lv, &cd_ee67621);
+ dp->~ee67621();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67621(Test_ee67621, "ee67621", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee67621C1Ev();
+extern void _ZN7ee67621D1Ev();
+Name_Map name_map_ee67621[] = {
+ NSPAIR(_ZN7ee67621C1Ev),
+ NSPAIR(_ZN7ee67621D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc621;
+extern VTBL_ENTRY _ZTI5cc621[];
+extern VTBL_ENTRY _ZTV5cc621[];
+extern Class_Descriptor cd_dd7621;
+extern VTBL_ENTRY _ZTI6dd7621[];
+extern VTBL_ENTRY _ZTV6dd7621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7621[];
+static Base_Class bases_ee67621[] = {
+ // 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_bb21, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc621, 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_dd7621, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67621[];
+extern void _ZN7ee676213barEv();
+extern void _ZN7ee676213fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee676213fooEv,_ZTv0_n12_N7ee676213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee676213fooEv,_ZThn12_N7ee676213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee676213barEv,_ZTv0_n16_N7ee676213barEv)();
+extern void ABISELECT(_ZThn16_N7ee676213barEv,_ZThn12_N7ee676213barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67621[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67621[0]),
+ (VTBL_ENTRY)&_ZN7ee676213barEv,
+ (VTBL_ENTRY)&_ZN7ee676213fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67621[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee676213fooEv,_ZTv0_n12_N7ee676213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee676213barEv,_ZTv0_n16_N7ee676213barEv),
+};
+extern VTBL_ENTRY _ZTV7ee67621[];
+extern void _ZN6dd76213barEv();
+extern void _ZN6dd76213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7621__7ee67621[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7621[0]),
+ (VTBL_ENTRY)&_ZN6dd76213barEv,
+ (VTBL_ENTRY)&_ZN6dd76213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76213fooEv,_ZTv0_n12_N6dd76213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76213fooEv,_ZThn12_N6dd76213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76213barEv,_ZTv0_n16_N6dd76213barEv)();
+extern void ABISELECT(_ZThn16_N6dd76213barEv,_ZThn12_N6dd76213barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc621__6dd7621__7ee67621[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7621[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76213fooEv,_ZTv0_n12_N6dd76213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76213barEv,_ZTv0_n16_N6dd76213barEv),
+};
+static VTT_ENTRY vtt_ee67621[] = {
+ {&(_ZTV7ee67621[3]), 3,11},
+ {&(_tg__ZTV6dd7621__7ee67621[3]), 3,5},
+ {&(_tg__ZTV5cc621__6dd7621__7ee67621[4]), 4,6},
+ {&(_ZTV7ee67621[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee67621[];
+extern VTBL_ENTRY _ZTV7ee67621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67621[];
+static VTBL_ENTRY alt_thunk_names776[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76213barEv,_ZTv0_n16_N6dd76213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76213barEv,_ZThn12_N6dd76213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76213fooEv,_ZTv0_n12_N6dd76213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76213fooEv,_ZThn12_N6dd76213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee676213barEv,_ZTv0_n16_N7ee676213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee676213barEv,_ZThn12_N7ee676213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee676213fooEv,_ZTv0_n12_N7ee676213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee676213fooEv,_ZThn12_N7ee676213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67621 = { "ee67621", // class name
+ bases_ee67621, 4,
+ &(vtc_ee67621[0]), // expected_vtbl_contents
+ &(vtt_ee67621[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee67621),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67621),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67621),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names776,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee77621 : virtual dd7621 {
+ int e;
+ virtual void foo(); // _ZN7ee776213fooEv
+ virtual void bar(); // _ZN7ee776213barEv
+ ~ee77621(); // tgen
+ ee77621(); // tgen
+};
+//SIG(1 ee77621) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77621 ::foo(){vfunc_called(this, "_ZN7ee776213fooEv");}
+void ee77621 ::bar(){vfunc_called(this, "_ZN7ee776213barEv");}
+ee77621 ::~ee77621(){ note_dtor("ee77621", this);} // tgen
+ee77621 ::ee77621(){ note_ctor("ee77621", this);} // tgen
+
+static void Test_ee77621()
+{
+ extern Class_Descriptor cd_ee77621;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee77621, buf);
+ ee77621 *dp, &lv = *(dp=new (buf) ee77621());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee77621)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77621)");
+ check_base_class_offset(lv, (aa1*)(bb21*)(cc621*), ABISELECT(32,16), "ee77621");
+ check_base_class_offset(lv, (bb21*)(cc621*), ABISELECT(32,16), "ee77621");
+ check_base_class_offset(lv, (cc621*)(dd7621*), ABISELECT(32,16), "ee77621");
+ check_base_class_offset(lv, (dd7621*), ABISELECT(16,8), "ee77621");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77621.e");
+ test_class_info(&lv, &cd_ee77621);
+ dp->~ee77621();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77621(Test_ee77621, "ee77621", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee77621C1Ev();
+extern void _ZN7ee77621D1Ev();
+Name_Map name_map_ee77621[] = {
+ NSPAIR(_ZN7ee77621C1Ev),
+ NSPAIR(_ZN7ee77621D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc621;
+extern VTBL_ENTRY _ZTI5cc621[];
+extern VTBL_ENTRY _ZTV5cc621[];
+extern Class_Descriptor cd_dd7621;
+extern VTBL_ENTRY _ZTI6dd7621[];
+extern VTBL_ENTRY _ZTV6dd7621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7621[];
+static Base_Class bases_ee77621[] = {
+ // 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_bb21, 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_cc621, 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_dd7621, ABISELECT(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 _ZTI7ee77621[];
+extern void _ZN7ee776213fooEv();
+extern void _ZN7ee776213barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee776213barEv,_ZTv0_n16_N7ee776213barEv)();
+extern void ABISELECT(_ZThn16_N7ee776213barEv,_ZThn8_N7ee776213barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee776213fooEv,_ZTv0_n20_N7ee776213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee776213fooEv,_ZThn8_N7ee776213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee776213fooEv,_ZTv0_n12_N7ee776213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee776213fooEv,_ZThn16_N7ee776213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee776213barEv,_ZTv0_n16_N7ee776213barEv)();
+extern void ABISELECT(_ZThn32_N7ee776213barEv,_ZThn16_N7ee776213barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77621[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77621[0]),
+ (VTBL_ENTRY)&_ZN7ee776213fooEv,
+ (VTBL_ENTRY)&_ZN7ee776213barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77621[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee776213barEv,_ZTv0_n16_N7ee776213barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee776213fooEv,_ZTv0_n20_N7ee776213fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77621[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee776213fooEv,_ZTv0_n12_N7ee776213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee776213barEv,_ZTv0_n16_N7ee776213barEv),
+};
+extern VTBL_ENTRY _ZTV7ee77621[];
+extern void _ZN6dd76213barEv();
+extern void _ZN6dd76213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7621__7ee77621[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7621[0]),
+ (VTBL_ENTRY)&_ZN6dd76213barEv,
+ (VTBL_ENTRY)&_ZN6dd76213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76213fooEv,_ZTv0_n12_N6dd76213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76213fooEv,_ZThn8_N6dd76213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76213barEv,_ZTv0_n16_N6dd76213barEv)();
+extern void ABISELECT(_ZThn16_N6dd76213barEv,_ZThn8_N6dd76213barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc621__6dd7621__7ee77621[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7621[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76213fooEv,_ZTv0_n12_N6dd76213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76213barEv,_ZTv0_n16_N6dd76213barEv),
+};
+static VTT_ENTRY vtt_ee77621[] = {
+ {&(_ZTV7ee77621[4]), 4,19},
+ {&(_ZTV7ee77621[11]), 11,19},
+ {&(_ZTV7ee77621[17]), 17,19},
+ {&(_tg__ZTV6dd7621__7ee77621[3]), 3,5},
+ {&(_tg__ZTV5cc621__6dd7621__7ee77621[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee77621[];
+extern VTBL_ENTRY _ZTV7ee77621[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77621[];
+static VTBL_ENTRY alt_thunk_names777[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76213barEv,_ZTv0_n16_N6dd76213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76213barEv,_ZThn8_N6dd76213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76213fooEv,_ZTv0_n12_N6dd76213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76213fooEv,_ZThn8_N6dd76213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee776213fooEv,_ZTv0_n12_N7ee776213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee776213fooEv,_ZThn16_N7ee776213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee776213fooEv,_ZTv0_n20_N7ee776213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee776213fooEv,_ZThn8_N7ee776213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee776213barEv,_ZTv0_n16_N7ee776213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee776213barEv,_ZThn16_N7ee776213barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee776213barEv,_ZThn8_N7ee776213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77621 = { "ee77621", // class name
+ bases_ee77621, 4,
+ &(vtc_ee77621[0]), // expected_vtbl_contents
+ &(vtt_ee77621[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee77621),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77621),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77621),5, //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 cc721 : virtual bb21 {
+ int c;
+ virtual void foo(); // _ZN5cc7213fooEv
+ virtual void bar(); // _ZN5cc7213barEv
+ ~cc721(); // tgen
+ cc721(); // tgen
+};
+//SIG(-1 cc721) C1{ VBC2{ BC3{ v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void cc721 ::foo(){vfunc_called(this, "_ZN5cc7213fooEv");}
+void cc721 ::bar(){vfunc_called(this, "_ZN5cc7213barEv");}
+cc721 ::~cc721(){ note_dtor("cc721", this);} // tgen
+cc721 ::cc721(){ note_ctor("cc721", this);} // tgen
+
+static void Test_cc721()
+{
+ extern Class_Descriptor cd_cc721;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_cc721, buf);
+ cc721 *dp, &lv = *(dp=new (buf) cc721());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(cc721)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc721)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(16,8), "cc721");
+ check_base_class_offset(lv, (bb21*), ABISELECT(16,8), "cc721");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc721.c");
+ test_class_info(&lv, &cd_cc721);
+ dp->~cc721();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc721(Test_cc721, "cc721", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN5cc721C1Ev();
+extern void _ZN5cc721D1Ev();
+Name_Map name_map_cc721[] = {
+ NSPAIR(_ZN5cc721C1Ev),
+ NSPAIR(_ZN5cc721D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+static Base_Class bases_cc721[] = {
+ // 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_bb21, 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 _ZTI5cc721[];
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_cc721[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+extern VTBL_ENTRY _ZTV5cc721[];
+static VTT_ENTRY vtt_cc721[] = {
+ {&(_ZTV5cc721[3]), 3,9},
+ {&(_ZTV5cc721[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI5cc721[];
+extern VTBL_ENTRY _ZTV5cc721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc721[];
+static VTBL_ENTRY alt_thunk_names778[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_cc721 = { "cc721", // class name
+ bases_cc721, 2,
+ &(vtc_cc721[0]), // expected_vtbl_contents
+ &(vtt_cc721[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI5cc721),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV5cc721),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5cc721),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names778,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd0721 : cc721 {
+ int d;
+ ~dd0721(); // tgen
+ dd0721(); // tgen
+};
+//SIG(-1 dd0721) C1{ BC2{ VBC3{ BC4{ v1 Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+dd0721 ::~dd0721(){ note_dtor("dd0721", this);} // tgen
+dd0721 ::dd0721(){ note_ctor("dd0721", this);} // tgen
+
+static void Test_dd0721()
+{
+ extern Class_Descriptor cd_dd0721;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd0721, buf);
+ dd0721 *dp, &lv = *(dp=new (buf) dd0721());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd0721)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0721)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(16,12), "dd0721");
+ check_base_class_offset(lv, (bb21*)(cc721*), ABISELECT(16,12), "dd0721");
+ check_base_class_offset(lv, (cc721*), 0, "dd0721");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd0721.d");
+ test_class_info(&lv, &cd_dd0721);
+ dp->~dd0721();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0721(Test_dd0721, "dd0721", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd0721C1Ev();
+extern void _ZN6dd0721D1Ev();
+Name_Map name_map_dd0721[] = {
+ NSPAIR(_ZN6dd0721C1Ev),
+ NSPAIR(_ZN6dd0721D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc721;
+extern VTBL_ENTRY _ZTI5cc721[];
+extern VTBL_ENTRY _ZTV5cc721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc721[];
+static Base_Class bases_dd0721[] = {
+ // 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_bb21, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc721, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd0721[];
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn12_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd0721[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd0721[];
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc721__6dd0721[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn12_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc721__6dd0721[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+static VTT_ENTRY vtt_dd0721[] = {
+ {&(_ZTV6dd0721[3]), 3,9},
+ {&(_tg__ZTV5cc721__6dd0721[3]), 3,5},
+ {&(_tg__ZTV4bb21__5cc721__6dd0721[3]), 3,4},
+ {&(_ZTV6dd0721[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI6dd0721[];
+extern VTBL_ENTRY _ZTV6dd0721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0721[];
+static VTBL_ENTRY alt_thunk_names779[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn12_N5cc7213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn12_N5cc7213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd0721 = { "dd0721", // class name
+ bases_dd0721, 3,
+ &(vtc_dd0721[0]), // expected_vtbl_contents
+ &(vtt_dd0721[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd0721),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0721),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd0721),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names779,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee00721 : dd0721 {
+ int e;
+ ~ee00721(); // tgen
+ ee00721(); // tgen
+};
+//SIG(1 ee00721) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee00721 ::~ee00721(){ note_dtor("ee00721", this);} // tgen
+ee00721 ::ee00721(){ note_ctor("ee00721", this);} // tgen
+
+static void Test_ee00721()
+{
+ extern Class_Descriptor cd_ee00721;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee00721, buf);
+ ee00721 *dp, &lv = *(dp=new (buf) ee00721());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee00721)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00721)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(24,16), "ee00721");
+ check_base_class_offset(lv, (bb21*)(cc721*)(dd0721*), ABISELECT(24,16), "ee00721");
+ check_base_class_offset(lv, (cc721*)(dd0721*), 0, "ee00721");
+ check_base_class_offset(lv, (dd0721*), 0, "ee00721");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee00721.e");
+ test_class_info(&lv, &cd_ee00721);
+ dp->~ee00721();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00721(Test_ee00721, "ee00721", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee00721C1Ev();
+extern void _ZN7ee00721D1Ev();
+Name_Map name_map_ee00721[] = {
+ NSPAIR(_ZN7ee00721C1Ev),
+ NSPAIR(_ZN7ee00721D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc721;
+extern VTBL_ENTRY _ZTI5cc721[];
+extern VTBL_ENTRY _ZTV5cc721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc721[];
+extern Class_Descriptor cd_dd0721;
+extern VTBL_ENTRY _ZTI6dd0721[];
+extern VTBL_ENTRY _ZTV6dd0721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0721[];
+static Base_Class bases_ee00721[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc721, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0721, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee00721[];
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7213fooEv,_ZThn16_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee00721[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee00721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee00721[];
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV6dd0721__7ee00721[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc7216dd0721__7ee00721[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7213fooEv,_ZThn16_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc7216dd0721__7ee00721[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7213fooEv,_ZThn16_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd0721__7ee00721[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+static VTT_ENTRY vtt_ee00721[] = {
+ {&(_ZTV7ee00721[3]), 3,9},
+ {&(_tg__ZTV6dd0721__7ee00721[3]), 3,5},
+ {&(_tg__ZTV5cc7216dd0721__7ee00721[3]), 3,5},
+ {&(_tg__ZTV4bb21__5cc7216dd0721__7ee00721[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd0721__7ee00721[3]), 3,4},
+ {&(_ZTV7ee00721[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee00721[];
+extern VTBL_ENTRY _ZTV7ee00721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee00721[];
+static VTBL_ENTRY alt_thunk_names780[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7213fooEv,_ZThn16_N5cc7213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7213fooEv,_ZThn16_N5cc7213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7213fooEv,_ZThn16_N5cc7213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee00721 = { "ee00721", // class name
+ bases_ee00721, 4,
+ &(vtc_ee00721[0]), // expected_vtbl_contents
+ &(vtt_ee00721[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee00721),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00721),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee00721),6, //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 ee10721 : virtual dd0721 {
+ int e;
+ ~ee10721(); // tgen
+ ee10721(); // tgen
+};
+//SIG(1 ee10721) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee10721 ::~ee10721(){ note_dtor("ee10721", this);} // tgen
+ee10721 ::ee10721(){ note_ctor("ee10721", this);} // tgen
+
+static void Test_ee10721()
+{
+ extern Class_Descriptor cd_ee10721;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee10721, buf);
+ ee10721 *dp, &lv = *(dp=new (buf) ee10721());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee10721)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10721)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee10721");
+ check_base_class_offset(lv, (bb21*)(cc721*)(dd0721*), ABISELECT(32,20), "ee10721");
+ check_base_class_offset(lv, (cc721*)(dd0721*), ABISELECT(16,8), "ee10721");
+ check_base_class_offset(lv, (dd0721*), ABISELECT(16,8), "ee10721");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10721.e");
+ test_class_info(&lv, &cd_ee10721);
+ dp->~ee10721();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10721(Test_ee10721, "ee10721", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee10721C1Ev();
+extern void _ZN7ee10721D1Ev();
+Name_Map name_map_ee10721[] = {
+ NSPAIR(_ZN7ee10721C1Ev),
+ NSPAIR(_ZN7ee10721D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc721;
+extern VTBL_ENTRY _ZTI5cc721[];
+extern VTBL_ENTRY _ZTV5cc721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc721[];
+extern Class_Descriptor cd_dd0721;
+extern VTBL_ENTRY _ZTI6dd0721[];
+extern VTBL_ENTRY _ZTV6dd0721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0721[];
+static Base_Class bases_ee10721[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc721, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0721, 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 _ZTI7ee10721[];
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn12_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee10721[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10721[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee10721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee10721[];
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV6dd0721__7ee10721[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc7216dd0721__7ee10721[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn12_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc7216dd0721__7ee10721[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn12_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd0721__7ee10721[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+static VTT_ENTRY vtt_ee10721[] = {
+ {&(_ZTV7ee10721[4]), 4,15},
+ {&(_ZTV7ee10721[9]), 9,15},
+ {&(_ZTV7ee10721[14]), 14,15},
+ {&(_tg__ZTV6dd0721__7ee10721[3]), 3,5},
+ {&(_tg__ZTV5cc7216dd0721__7ee10721[3]), 3,5},
+ {&(_tg__ZTV4bb21__5cc7216dd0721__7ee10721[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd0721__7ee10721[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee10721[];
+extern VTBL_ENTRY _ZTV7ee10721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10721[];
+static VTBL_ENTRY alt_thunk_names781[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn12_N5cc7213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn12_N5cc7213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn12_N5cc7213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee10721 = { "ee10721", // class name
+ bases_ee10721, 4,
+ &(vtc_ee10721[0]), // expected_vtbl_contents
+ &(vtt_ee10721[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee10721),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10721),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10721),7, //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 ee20721 : dd0721 {
+ int e;
+ virtual void foo(); // _ZN7ee207213fooEv
+ ~ee20721(); // tgen
+ ee20721(); // tgen
+};
+//SIG(1 ee20721) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee20721 ::foo(){vfunc_called(this, "_ZN7ee207213fooEv");}
+ee20721 ::~ee20721(){ note_dtor("ee20721", this);} // tgen
+ee20721 ::ee20721(){ note_ctor("ee20721", this);} // tgen
+
+static void Test_ee20721()
+{
+ extern Class_Descriptor cd_ee20721;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee20721, buf);
+ ee20721 *dp, &lv = *(dp=new (buf) ee20721());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee20721)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20721)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(24,16), "ee20721");
+ check_base_class_offset(lv, (bb21*)(cc721*)(dd0721*), ABISELECT(24,16), "ee20721");
+ check_base_class_offset(lv, (cc721*)(dd0721*), 0, "ee20721");
+ check_base_class_offset(lv, (dd0721*), 0, "ee20721");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee20721.e");
+ test_class_info(&lv, &cd_ee20721);
+ dp->~ee20721();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20721(Test_ee20721, "ee20721", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee20721C1Ev();
+extern void _ZN7ee20721D1Ev();
+Name_Map name_map_ee20721[] = {
+ NSPAIR(_ZN7ee20721C1Ev),
+ NSPAIR(_ZN7ee20721D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc721;
+extern VTBL_ENTRY _ZTI5cc721[];
+extern VTBL_ENTRY _ZTV5cc721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc721[];
+extern Class_Descriptor cd_dd0721;
+extern VTBL_ENTRY _ZTI6dd0721[];
+extern VTBL_ENTRY _ZTV6dd0721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0721[];
+static Base_Class bases_ee20721[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc721, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0721, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee20721[];
+extern void _ZN7ee207213fooEv();
+extern void _ZN5cc7213barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee207213fooEv,_ZTv0_n12_N7ee207213fooEv)();
+extern void ABISELECT(_ZThn24_N7ee207213fooEv,_ZThn16_N7ee207213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee20721[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20721[0]),
+ (VTBL_ENTRY)&_ZN7ee207213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee20721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee207213fooEv,_ZTv0_n12_N7ee207213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee20721[];
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV6dd0721__7ee20721[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc7216dd0721__7ee20721[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7213fooEv,_ZThn16_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc7216dd0721__7ee20721[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7213fooEv,_ZThn16_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd0721__7ee20721[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+static VTT_ENTRY vtt_ee20721[] = {
+ {&(_ZTV7ee20721[3]), 3,9},
+ {&(_tg__ZTV6dd0721__7ee20721[3]), 3,5},
+ {&(_tg__ZTV5cc7216dd0721__7ee20721[3]), 3,5},
+ {&(_tg__ZTV4bb21__5cc7216dd0721__7ee20721[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd0721__7ee20721[3]), 3,4},
+ {&(_ZTV7ee20721[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee20721[];
+extern VTBL_ENTRY _ZTV7ee20721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee20721[];
+static VTBL_ENTRY alt_thunk_names782[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7213fooEv,_ZThn16_N5cc7213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7213fooEv,_ZThn16_N5cc7213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee207213fooEv,_ZTv0_n12_N7ee207213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee207213fooEv,_ZThn16_N7ee207213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee20721 = { "ee20721", // class name
+ bases_ee20721, 4,
+ &(vtc_ee20721[0]), // expected_vtbl_contents
+ &(vtt_ee20721[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee20721),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20721),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee20721),6, //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 ee30721 : virtual dd0721 {
+ int e;
+ virtual void foo(); // _ZN7ee307213fooEv
+ ~ee30721(); // tgen
+ ee30721(); // tgen
+};
+//SIG(1 ee30721) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee30721 ::foo(){vfunc_called(this, "_ZN7ee307213fooEv");}
+ee30721 ::~ee30721(){ note_dtor("ee30721", this);} // tgen
+ee30721 ::ee30721(){ note_ctor("ee30721", this);} // tgen
+
+static void Test_ee30721()
+{
+ extern Class_Descriptor cd_ee30721;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee30721, buf);
+ ee30721 *dp, &lv = *(dp=new (buf) ee30721());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee30721)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30721)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee30721");
+ check_base_class_offset(lv, (bb21*)(cc721*)(dd0721*), ABISELECT(32,20), "ee30721");
+ check_base_class_offset(lv, (cc721*)(dd0721*), ABISELECT(16,8), "ee30721");
+ check_base_class_offset(lv, (dd0721*), ABISELECT(16,8), "ee30721");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30721.e");
+ test_class_info(&lv, &cd_ee30721);
+ dp->~ee30721();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30721(Test_ee30721, "ee30721", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee30721C1Ev();
+extern void _ZN7ee30721D1Ev();
+Name_Map name_map_ee30721[] = {
+ NSPAIR(_ZN7ee30721C1Ev),
+ NSPAIR(_ZN7ee30721D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc721;
+extern VTBL_ENTRY _ZTI5cc721[];
+extern VTBL_ENTRY _ZTV5cc721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc721[];
+extern Class_Descriptor cd_dd0721;
+extern VTBL_ENTRY _ZTI6dd0721[];
+extern VTBL_ENTRY _ZTV6dd0721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0721[];
+static Base_Class bases_ee30721[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc721, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0721, 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 _ZTI7ee30721[];
+extern void _ZN7ee307213fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee307213fooEv,_ZTv0_n16_N7ee307213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee307213fooEv,_ZThn8_N7ee307213fooEv)() __attribute__((weak));
+extern void _ZN5cc7213barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee307213fooEv,_ZTv0_n12_N7ee307213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee307213fooEv,_ZThn20_N7ee307213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee30721[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30721[0]),
+ (VTBL_ENTRY)&_ZN7ee307213fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee307213fooEv,_ZTv0_n16_N7ee307213fooEv),
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee30721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee307213fooEv,_ZTv0_n12_N7ee307213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee30721[];
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV6dd0721__7ee30721[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc7216dd0721__7ee30721[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn12_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc7216dd0721__7ee30721[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn12_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd0721__7ee30721[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+static VTT_ENTRY vtt_ee30721[] = {
+ {&(_ZTV7ee30721[4]), 4,16},
+ {&(_ZTV7ee30721[10]), 10,16},
+ {&(_ZTV7ee30721[15]), 15,16},
+ {&(_tg__ZTV6dd0721__7ee30721[3]), 3,5},
+ {&(_tg__ZTV5cc7216dd0721__7ee30721[3]), 3,5},
+ {&(_tg__ZTV4bb21__5cc7216dd0721__7ee30721[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd0721__7ee30721[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee30721[];
+extern VTBL_ENTRY _ZTV7ee30721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30721[];
+static VTBL_ENTRY alt_thunk_names783[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn12_N5cc7213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn12_N5cc7213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee307213fooEv,_ZTv0_n12_N7ee307213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee307213fooEv,_ZThn20_N7ee307213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee307213fooEv,_ZTv0_n16_N7ee307213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee307213fooEv,_ZThn8_N7ee307213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30721 = { "ee30721", // class name
+ bases_ee30721, 4,
+ &(vtc_ee30721[0]), // expected_vtbl_contents
+ &(vtt_ee30721[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee30721),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30721),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30721),7, //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 ee40721 : dd0721 {
+ int e;
+ virtual void bar(); // _ZN7ee407213barEv
+ ~ee40721(); // tgen
+ ee40721(); // tgen
+};
+//SIG(1 ee40721) C1{ BC2{ BC3{ VBC4{ BC5{ v2 Fi} v2 Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee40721 ::bar(){vfunc_called(this, "_ZN7ee407213barEv");}
+ee40721 ::~ee40721(){ note_dtor("ee40721", this);} // tgen
+ee40721 ::ee40721(){ note_ctor("ee40721", this);} // tgen
+
+static void Test_ee40721()
+{
+ extern Class_Descriptor cd_ee40721;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee40721, buf);
+ ee40721 *dp, &lv = *(dp=new (buf) ee40721());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee40721)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40721)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(24,16), "ee40721");
+ check_base_class_offset(lv, (bb21*)(cc721*)(dd0721*), ABISELECT(24,16), "ee40721");
+ check_base_class_offset(lv, (cc721*)(dd0721*), 0, "ee40721");
+ check_base_class_offset(lv, (dd0721*), 0, "ee40721");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee40721.e");
+ test_class_info(&lv, &cd_ee40721);
+ dp->~ee40721();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40721(Test_ee40721, "ee40721", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee40721C1Ev();
+extern void _ZN7ee40721D1Ev();
+Name_Map name_map_ee40721[] = {
+ NSPAIR(_ZN7ee40721C1Ev),
+ NSPAIR(_ZN7ee40721D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc721;
+extern VTBL_ENTRY _ZTI5cc721[];
+extern VTBL_ENTRY _ZTV5cc721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc721[];
+extern Class_Descriptor cd_dd0721;
+extern VTBL_ENTRY _ZTI6dd0721[];
+extern VTBL_ENTRY _ZTV6dd0721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0721[];
+static Base_Class bases_ee40721[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc721, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0721, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee40721[];
+extern void _ZN5cc7213fooEv();
+extern void _ZN7ee407213barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7213fooEv,_ZThn16_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee40721[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN7ee407213barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee40721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee40721[];
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV6dd0721__7ee40721[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc7216dd0721__7ee40721[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7213fooEv,_ZThn16_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc7216dd0721__7ee40721[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7213fooEv,_ZThn16_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd0721__7ee40721[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+static VTT_ENTRY vtt_ee40721[] = {
+ {&(_ZTV7ee40721[3]), 3,9},
+ {&(_tg__ZTV6dd0721__7ee40721[3]), 3,5},
+ {&(_tg__ZTV5cc7216dd0721__7ee40721[3]), 3,5},
+ {&(_tg__ZTV4bb21__5cc7216dd0721__7ee40721[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd0721__7ee40721[3]), 3,4},
+ {&(_ZTV7ee40721[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee40721[];
+extern VTBL_ENTRY _ZTV7ee40721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee40721[];
+static VTBL_ENTRY alt_thunk_names784[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7213fooEv,_ZThn16_N5cc7213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7213fooEv,_ZThn16_N5cc7213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7213fooEv,_ZThn16_N5cc7213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee40721 = { "ee40721", // class name
+ bases_ee40721, 4,
+ &(vtc_ee40721[0]), // expected_vtbl_contents
+ &(vtt_ee40721[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee40721),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40721),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee40721),6, //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 ee50721 : virtual dd0721 {
+ int e;
+ virtual void bar(); // _ZN7ee507213barEv
+ ~ee50721(); // tgen
+ ee50721(); // tgen
+};
+//SIG(1 ee50721) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 Fi} v2 Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee50721 ::bar(){vfunc_called(this, "_ZN7ee507213barEv");}
+ee50721 ::~ee50721(){ note_dtor("ee50721", this);} // tgen
+ee50721 ::ee50721(){ note_ctor("ee50721", this);} // tgen
+
+static void Test_ee50721()
+{
+ extern Class_Descriptor cd_ee50721;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee50721, buf);
+ ee50721 *dp, &lv = *(dp=new (buf) ee50721());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee50721)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50721)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee50721");
+ check_base_class_offset(lv, (bb21*)(cc721*)(dd0721*), ABISELECT(32,20), "ee50721");
+ check_base_class_offset(lv, (cc721*)(dd0721*), ABISELECT(16,8), "ee50721");
+ check_base_class_offset(lv, (dd0721*), ABISELECT(16,8), "ee50721");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50721.e");
+ test_class_info(&lv, &cd_ee50721);
+ dp->~ee50721();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50721(Test_ee50721, "ee50721", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee50721C1Ev();
+extern void _ZN7ee50721D1Ev();
+Name_Map name_map_ee50721[] = {
+ NSPAIR(_ZN7ee50721C1Ev),
+ NSPAIR(_ZN7ee50721D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc721;
+extern VTBL_ENTRY _ZTI5cc721[];
+extern VTBL_ENTRY _ZTV5cc721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc721[];
+extern Class_Descriptor cd_dd0721;
+extern VTBL_ENTRY _ZTI6dd0721[];
+extern VTBL_ENTRY _ZTV6dd0721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0721[];
+static Base_Class bases_ee50721[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc721, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0721, 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 _ZTI7ee50721[];
+extern void _ZN7ee507213barEv();
+extern void _ZN5cc7213fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee507213barEv,_ZTv0_n20_N7ee507213barEv)();
+extern void ABISELECT(_ZThn16_N7ee507213barEv,_ZThn8_N7ee507213barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn12_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee50721[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50721[0]),
+ (VTBL_ENTRY)&_ZN7ee507213barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee507213barEv,_ZTv0_n20_N7ee507213barEv),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee50721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee50721[];
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV6dd0721__7ee50721[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc7216dd0721__7ee50721[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn12_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc7216dd0721__7ee50721[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn12_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd0721__7ee50721[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+static VTT_ENTRY vtt_ee50721[] = {
+ {&(_ZTV7ee50721[4]), 4,16},
+ {&(_ZTV7ee50721[10]), 10,16},
+ {&(_ZTV7ee50721[15]), 15,16},
+ {&(_tg__ZTV6dd0721__7ee50721[3]), 3,5},
+ {&(_tg__ZTV5cc7216dd0721__7ee50721[3]), 3,5},
+ {&(_tg__ZTV4bb21__5cc7216dd0721__7ee50721[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd0721__7ee50721[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee50721[];
+extern VTBL_ENTRY _ZTV7ee50721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50721[];
+static VTBL_ENTRY alt_thunk_names785[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn12_N5cc7213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn12_N5cc7213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn12_N5cc7213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee507213barEv,_ZTv0_n20_N7ee507213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee507213barEv,_ZThn8_N7ee507213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50721 = { "ee50721", // class name
+ bases_ee50721, 4,
+ &(vtc_ee50721[0]), // expected_vtbl_contents
+ &(vtt_ee50721[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee50721),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50721),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50721),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names785,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee60721 : dd0721 {
+ int e;
+ virtual void foo(); // _ZN7ee607213fooEv
+ virtual void bar(); // _ZN7ee607213barEv
+ ~ee60721(); // tgen
+ ee60721(); // tgen
+};
+//SIG(1 ee60721) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee60721 ::foo(){vfunc_called(this, "_ZN7ee607213fooEv");}
+void ee60721 ::bar(){vfunc_called(this, "_ZN7ee607213barEv");}
+ee60721 ::~ee60721(){ note_dtor("ee60721", this);} // tgen
+ee60721 ::ee60721(){ note_ctor("ee60721", this);} // tgen
+
+static void Test_ee60721()
+{
+ extern Class_Descriptor cd_ee60721;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee60721, buf);
+ ee60721 *dp, &lv = *(dp=new (buf) ee60721());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee60721)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60721)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(24,16), "ee60721");
+ check_base_class_offset(lv, (bb21*)(cc721*)(dd0721*), ABISELECT(24,16), "ee60721");
+ check_base_class_offset(lv, (cc721*)(dd0721*), 0, "ee60721");
+ check_base_class_offset(lv, (dd0721*), 0, "ee60721");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee60721.e");
+ test_class_info(&lv, &cd_ee60721);
+ dp->~ee60721();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60721(Test_ee60721, "ee60721", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee60721C1Ev();
+extern void _ZN7ee60721D1Ev();
+Name_Map name_map_ee60721[] = {
+ NSPAIR(_ZN7ee60721C1Ev),
+ NSPAIR(_ZN7ee60721D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc721;
+extern VTBL_ENTRY _ZTI5cc721[];
+extern VTBL_ENTRY _ZTV5cc721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc721[];
+extern Class_Descriptor cd_dd0721;
+extern VTBL_ENTRY _ZTI6dd0721[];
+extern VTBL_ENTRY _ZTV6dd0721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0721[];
+static Base_Class bases_ee60721[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc721, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0721, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee60721[];
+extern void _ZN7ee607213fooEv();
+extern void _ZN7ee607213barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee607213fooEv,_ZTv0_n12_N7ee607213fooEv)();
+extern void ABISELECT(_ZThn24_N7ee607213fooEv,_ZThn16_N7ee607213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee60721[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60721[0]),
+ (VTBL_ENTRY)&_ZN7ee607213fooEv,
+ (VTBL_ENTRY)&_ZN7ee607213barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee60721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee607213fooEv,_ZTv0_n12_N7ee607213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee60721[];
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV6dd0721__7ee60721[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc7216dd0721__7ee60721[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7213fooEv,_ZThn16_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc7216dd0721__7ee60721[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7213fooEv,_ZThn16_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd0721__7ee60721[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+static VTT_ENTRY vtt_ee60721[] = {
+ {&(_ZTV7ee60721[3]), 3,9},
+ {&(_tg__ZTV6dd0721__7ee60721[3]), 3,5},
+ {&(_tg__ZTV5cc7216dd0721__7ee60721[3]), 3,5},
+ {&(_tg__ZTV4bb21__5cc7216dd0721__7ee60721[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd0721__7ee60721[3]), 3,4},
+ {&(_ZTV7ee60721[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee60721[];
+extern VTBL_ENTRY _ZTV7ee60721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee60721[];
+static VTBL_ENTRY alt_thunk_names786[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7213fooEv,_ZThn16_N5cc7213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7213fooEv,_ZThn16_N5cc7213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee607213fooEv,_ZTv0_n12_N7ee607213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee607213fooEv,_ZThn16_N7ee607213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee60721 = { "ee60721", // class name
+ bases_ee60721, 4,
+ &(vtc_ee60721[0]), // expected_vtbl_contents
+ &(vtt_ee60721[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee60721),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60721),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee60721),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 ee70721 : virtual dd0721 {
+ int e;
+ virtual void foo(); // _ZN7ee707213fooEv
+ virtual void bar(); // _ZN7ee707213barEv
+ ~ee70721(); // tgen
+ ee70721(); // tgen
+};
+//SIG(1 ee70721) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee70721 ::foo(){vfunc_called(this, "_ZN7ee707213fooEv");}
+void ee70721 ::bar(){vfunc_called(this, "_ZN7ee707213barEv");}
+ee70721 ::~ee70721(){ note_dtor("ee70721", this);} // tgen
+ee70721 ::ee70721(){ note_ctor("ee70721", this);} // tgen
+
+static void Test_ee70721()
+{
+ extern Class_Descriptor cd_ee70721;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee70721, buf);
+ ee70721 *dp, &lv = *(dp=new (buf) ee70721());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee70721)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70721)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee70721");
+ check_base_class_offset(lv, (bb21*)(cc721*)(dd0721*), ABISELECT(32,20), "ee70721");
+ check_base_class_offset(lv, (cc721*)(dd0721*), ABISELECT(16,8), "ee70721");
+ check_base_class_offset(lv, (dd0721*), ABISELECT(16,8), "ee70721");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70721.e");
+ test_class_info(&lv, &cd_ee70721);
+ dp->~ee70721();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70721(Test_ee70721, "ee70721", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee70721C1Ev();
+extern void _ZN7ee70721D1Ev();
+Name_Map name_map_ee70721[] = {
+ NSPAIR(_ZN7ee70721C1Ev),
+ NSPAIR(_ZN7ee70721D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc721;
+extern VTBL_ENTRY _ZTI5cc721[];
+extern VTBL_ENTRY _ZTV5cc721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc721[];
+extern Class_Descriptor cd_dd0721;
+extern VTBL_ENTRY _ZTI6dd0721[];
+extern VTBL_ENTRY _ZTV6dd0721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0721[];
+static Base_Class bases_ee70721[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc721, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0721, ABISELECT(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 _ZTI7ee70721[];
+extern void _ZN7ee707213fooEv();
+extern void _ZN7ee707213barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee707213fooEv,_ZTv0_n16_N7ee707213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee707213fooEv,_ZThn8_N7ee707213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee707213barEv,_ZTv0_n20_N7ee707213barEv)();
+extern void ABISELECT(_ZThn16_N7ee707213barEv,_ZThn8_N7ee707213barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee707213fooEv,_ZTv0_n12_N7ee707213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee707213fooEv,_ZThn20_N7ee707213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70721[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70721[0]),
+ (VTBL_ENTRY)&_ZN7ee707213fooEv,
+ (VTBL_ENTRY)&_ZN7ee707213barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee707213fooEv,_ZTv0_n16_N7ee707213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee707213barEv,_ZTv0_n20_N7ee707213barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee70721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee707213fooEv,_ZTv0_n12_N7ee707213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee70721[];
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV6dd0721__7ee70721[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc7216dd0721__7ee70721[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn12_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc7216dd0721__7ee70721[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn12_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd0721__7ee70721[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+static VTT_ENTRY vtt_ee70721[] = {
+ {&(_ZTV7ee70721[4]), 4,17},
+ {&(_ZTV7ee70721[11]), 11,17},
+ {&(_ZTV7ee70721[16]), 16,17},
+ {&(_tg__ZTV6dd0721__7ee70721[3]), 3,5},
+ {&(_tg__ZTV5cc7216dd0721__7ee70721[3]), 3,5},
+ {&(_tg__ZTV4bb21__5cc7216dd0721__7ee70721[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd0721__7ee70721[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee70721[];
+extern VTBL_ENTRY _ZTV7ee70721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70721[];
+static VTBL_ENTRY alt_thunk_names787[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn12_N5cc7213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn12_N5cc7213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee707213fooEv,_ZTv0_n12_N7ee707213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee707213fooEv,_ZThn20_N7ee707213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee707213barEv,_ZTv0_n20_N7ee707213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee707213barEv,_ZThn8_N7ee707213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee707213fooEv,_ZTv0_n16_N7ee707213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee707213fooEv,_ZThn8_N7ee707213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70721 = { "ee70721", // class name
+ bases_ee70721, 4,
+ &(vtc_ee70721[0]), // expected_vtbl_contents
+ &(vtt_ee70721[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee70721),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70721),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70721),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 dd1721 : virtual cc721 {
+ int d;
+ ~dd1721(); // tgen
+ dd1721(); // tgen
+};
+//SIG(-1 dd1721) C1{ VBC2{ VBC3{ BC4{ v1 Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+dd1721 ::~dd1721(){ note_dtor("dd1721", this);} // tgen
+dd1721 ::dd1721(){ note_ctor("dd1721", this);} // tgen
+
+static void Test_dd1721()
+{
+ extern Class_Descriptor cd_dd1721;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd1721, buf);
+ dd1721 *dp, &lv = *(dp=new (buf) dd1721());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd1721)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1721)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,16), "dd1721");
+ check_base_class_offset(lv, (bb21*)(cc721*), ABISELECT(32,16), "dd1721");
+ check_base_class_offset(lv, (cc721*), ABISELECT(16,8), "dd1721");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1721.d");
+ test_class_info(&lv, &cd_dd1721);
+ dp->~dd1721();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1721(Test_dd1721, "dd1721", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd1721C1Ev();
+extern void _ZN6dd1721D1Ev();
+Name_Map name_map_dd1721[] = {
+ NSPAIR(_ZN6dd1721C1Ev),
+ NSPAIR(_ZN6dd1721D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc721;
+extern VTBL_ENTRY _ZTI5cc721[];
+extern VTBL_ENTRY _ZTV5cc721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc721[];
+static Base_Class bases_dd1721[] = {
+ // 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_bb21, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc721, 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 _ZTI6dd1721[];
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd1721[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1721[0]),
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd1721[];
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc721__6dd1721[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc721__6dd1721[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+static VTT_ENTRY vtt_dd1721[] = {
+ {&(_ZTV6dd1721[4]), 4,15},
+ {&(_ZTV6dd1721[9]), 9,15},
+ {&(_ZTV6dd1721[14]), 14,15},
+ {&(_tg__ZTV5cc721__6dd1721[3]), 3,5},
+ {&(_tg__ZTV4bb21__5cc721__6dd1721[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd1721[];
+extern VTBL_ENTRY _ZTV6dd1721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1721[];
+static VTBL_ENTRY alt_thunk_names788[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd1721 = { "dd1721", // class name
+ bases_dd1721, 3,
+ &(vtc_dd1721[0]), // expected_vtbl_contents
+ &(vtt_dd1721[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd1721),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1721),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1721),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names788,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee01721 : dd1721 {
+ int e;
+ ~ee01721(); // tgen
+ ee01721(); // tgen
+};
+//SIG(1 ee01721) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee01721 ::~ee01721(){ note_dtor("ee01721", this);} // tgen
+ee01721 ::ee01721(){ note_ctor("ee01721", this);} // tgen
+
+static void Test_ee01721()
+{
+ extern Class_Descriptor cd_ee01721;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee01721, buf);
+ ee01721 *dp, &lv = *(dp=new (buf) ee01721());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee01721)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01721)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee01721");
+ check_base_class_offset(lv, (bb21*)(cc721*), ABISELECT(32,20), "ee01721");
+ check_base_class_offset(lv, (cc721*)(dd1721*), ABISELECT(16,12), "ee01721");
+ check_base_class_offset(lv, (dd1721*), 0, "ee01721");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01721.e");
+ test_class_info(&lv, &cd_ee01721);
+ dp->~ee01721();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01721(Test_ee01721, "ee01721", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee01721C1Ev();
+extern void _ZN7ee01721D1Ev();
+Name_Map name_map_ee01721[] = {
+ NSPAIR(_ZN7ee01721C1Ev),
+ NSPAIR(_ZN7ee01721D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc721;
+extern VTBL_ENTRY _ZTI5cc721[];
+extern VTBL_ENTRY _ZTV5cc721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc721[];
+extern Class_Descriptor cd_dd1721;
+extern VTBL_ENTRY _ZTI6dd1721[];
+extern VTBL_ENTRY _ZTV6dd1721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1721[];
+static Base_Class bases_ee01721[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc721, 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_dd1721, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01721[];
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee01721[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01721[0]),
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee01721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee01721[];
+static VTBL_ENTRY _tg__ZTV6dd1721__7ee01721[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1721[0]),
+};
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc721__6dd1721__7ee01721[] = {
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd1721__7ee01721[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc721__7ee01721[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc721__7ee01721[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+static VTT_ENTRY vtt_ee01721[] = {
+ {&(_ZTV7ee01721[4]), 4,15},
+ {&(_tg__ZTV6dd1721__7ee01721[4]), 4,4},
+ {&(_tg__ZTV5cc721__6dd1721__7ee01721[5]), 5,7},
+ {&(_tg__ZTV4bb21__6dd1721__7ee01721[3]), 3,4},
+ {&(_ZTV7ee01721[9]), 9,15},
+ {&(_ZTV7ee01721[14]), 14,15},
+ {&(_tg__ZTV5cc721__7ee01721[3]), 3,5},
+ {&(_tg__ZTV4bb21__5cc721__7ee01721[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee01721[];
+extern VTBL_ENTRY _ZTV7ee01721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01721[];
+static VTBL_ENTRY alt_thunk_names789[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee01721 = { "ee01721", // class name
+ bases_ee01721, 4,
+ &(vtc_ee01721[0]), // expected_vtbl_contents
+ &(vtt_ee01721[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee01721),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01721),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01721),8, //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 ee11721 : virtual dd1721 {
+ int e;
+ ~ee11721(); // tgen
+ ee11721(); // tgen
+};
+//SIG(1 ee11721) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee11721 ::~ee11721(){ note_dtor("ee11721", this);} // tgen
+ee11721 ::ee11721(){ note_ctor("ee11721", this);} // tgen
+
+static void Test_ee11721()
+{
+ extern Class_Descriptor cd_ee11721;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee11721, buf);
+ ee11721 *dp, &lv = *(dp=new (buf) ee11721());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee11721)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11721)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(48,24), "ee11721");
+ check_base_class_offset(lv, (bb21*)(cc721*), ABISELECT(48,24), "ee11721");
+ check_base_class_offset(lv, (cc721*)(dd1721*), ABISELECT(32,16), "ee11721");
+ check_base_class_offset(lv, (dd1721*), ABISELECT(16,8), "ee11721");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11721.e");
+ test_class_info(&lv, &cd_ee11721);
+ dp->~ee11721();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11721(Test_ee11721, "ee11721", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee11721C1Ev();
+extern void _ZN7ee11721D1Ev();
+Name_Map name_map_ee11721[] = {
+ NSPAIR(_ZN7ee11721C1Ev),
+ NSPAIR(_ZN7ee11721D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc721;
+extern VTBL_ENTRY _ZTI5cc721[];
+extern VTBL_ENTRY _ZTV5cc721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc721[];
+extern Class_Descriptor cd_dd1721;
+extern VTBL_ENTRY _ZTI6dd1721[];
+extern VTBL_ENTRY _ZTV6dd1721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1721[];
+static Base_Class bases_ee11721[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb21, ABISELECT(48,24), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc721, 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_dd1721, 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 _ZTI7ee11721[];
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee11721[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11721[0]),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11721[0]),
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee11721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee11721[];
+static VTBL_ENTRY _tg__ZTV6dd1721__7ee11721[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1721[0]),
+};
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc721__6dd1721__7ee11721[] = {
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd1721__7ee11721[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc721__7ee11721[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc721__7ee11721[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+static VTT_ENTRY vtt_ee11721[] = {
+ {&(_ZTV7ee11721[5]), 5,20},
+ {&(_ZTV7ee11721[9]), 9,20},
+ {&(_ZTV7ee11721[14]), 14,20},
+ {&(_ZTV7ee11721[19]), 19,20},
+ {&(_tg__ZTV6dd1721__7ee11721[4]), 4,4},
+ {&(_tg__ZTV5cc721__6dd1721__7ee11721[5]), 5,7},
+ {&(_tg__ZTV4bb21__6dd1721__7ee11721[3]), 3,4},
+ {&(_tg__ZTV5cc721__7ee11721[3]), 3,5},
+ {&(_tg__ZTV4bb21__5cc721__7ee11721[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee11721[];
+extern VTBL_ENTRY _ZTV7ee11721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11721[];
+static VTBL_ENTRY alt_thunk_names790[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee11721 = { "ee11721", // class name
+ bases_ee11721, 4,
+ &(vtc_ee11721[0]), // expected_vtbl_contents
+ &(vtt_ee11721[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee11721),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11721),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11721),9, //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 ee21721 : dd1721 {
+ int e;
+ virtual void foo(); // _ZN7ee217213fooEv
+ ~ee21721(); // tgen
+ ee21721(); // tgen
+};
+//SIG(1 ee21721) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee21721 ::foo(){vfunc_called(this, "_ZN7ee217213fooEv");}
+ee21721 ::~ee21721(){ note_dtor("ee21721", this);} // tgen
+ee21721 ::ee21721(){ note_ctor("ee21721", this);} // tgen
+
+static void Test_ee21721()
+{
+ extern Class_Descriptor cd_ee21721;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee21721, buf);
+ ee21721 *dp, &lv = *(dp=new (buf) ee21721());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee21721)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21721)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee21721");
+ check_base_class_offset(lv, (bb21*)(cc721*), ABISELECT(32,20), "ee21721");
+ check_base_class_offset(lv, (cc721*)(dd1721*), ABISELECT(16,12), "ee21721");
+ check_base_class_offset(lv, (dd1721*), 0, "ee21721");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21721.e");
+ test_class_info(&lv, &cd_ee21721);
+ dp->~ee21721();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21721(Test_ee21721, "ee21721", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee21721C1Ev();
+extern void _ZN7ee21721D1Ev();
+Name_Map name_map_ee21721[] = {
+ NSPAIR(_ZN7ee21721C1Ev),
+ NSPAIR(_ZN7ee21721D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc721;
+extern VTBL_ENTRY _ZTI5cc721[];
+extern VTBL_ENTRY _ZTV5cc721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc721[];
+extern Class_Descriptor cd_dd1721;
+extern VTBL_ENTRY _ZTI6dd1721[];
+extern VTBL_ENTRY _ZTV6dd1721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1721[];
+static Base_Class bases_ee21721[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc721, 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_dd1721, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21721[];
+extern void _ZN7ee217213fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee217213fooEv,_ZTv0_n16_N7ee217213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee217213fooEv,_ZThn12_N7ee217213fooEv)() __attribute__((weak));
+extern void _ZN5cc7213barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee217213fooEv,_ZTv0_n12_N7ee217213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee217213fooEv,_ZThn20_N7ee217213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee21721[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21721[0]),
+ (VTBL_ENTRY)&_ZN7ee217213fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee217213fooEv,_ZTv0_n16_N7ee217213fooEv),
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee21721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee217213fooEv,_ZTv0_n12_N7ee217213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee21721[];
+static VTBL_ENTRY _tg__ZTV6dd1721__7ee21721[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1721[0]),
+};
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc721__6dd1721__7ee21721[] = {
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd1721__7ee21721[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc721__7ee21721[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc721__7ee21721[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+static VTT_ENTRY vtt_ee21721[] = {
+ {&(_ZTV7ee21721[4]), 4,16},
+ {&(_tg__ZTV6dd1721__7ee21721[4]), 4,4},
+ {&(_tg__ZTV5cc721__6dd1721__7ee21721[5]), 5,7},
+ {&(_tg__ZTV4bb21__6dd1721__7ee21721[3]), 3,4},
+ {&(_ZTV7ee21721[10]), 10,16},
+ {&(_ZTV7ee21721[15]), 15,16},
+ {&(_tg__ZTV5cc721__7ee21721[3]), 3,5},
+ {&(_tg__ZTV4bb21__5cc721__7ee21721[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee21721[];
+extern VTBL_ENTRY _ZTV7ee21721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21721[];
+static VTBL_ENTRY alt_thunk_names791[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee217213fooEv,_ZTv0_n12_N7ee217213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee217213fooEv,_ZThn20_N7ee217213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee217213fooEv,_ZTv0_n16_N7ee217213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee217213fooEv,_ZThn12_N7ee217213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21721 = { "ee21721", // class name
+ bases_ee21721, 4,
+ &(vtc_ee21721[0]), // expected_vtbl_contents
+ &(vtt_ee21721[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee21721),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21721),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21721),8, //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 ee31721 : virtual dd1721 {
+ int e;
+ virtual void foo(); // _ZN7ee317213fooEv
+ ~ee31721(); // tgen
+ ee31721(); // tgen
+};
+//SIG(1 ee31721) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee31721 ::foo(){vfunc_called(this, "_ZN7ee317213fooEv");}
+ee31721 ::~ee31721(){ note_dtor("ee31721", this);} // tgen
+ee31721 ::ee31721(){ note_ctor("ee31721", this);} // tgen
+
+static void Test_ee31721()
+{
+ extern Class_Descriptor cd_ee31721;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee31721, buf);
+ ee31721 *dp, &lv = *(dp=new (buf) ee31721());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee31721)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31721)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(48,24), "ee31721");
+ check_base_class_offset(lv, (bb21*)(cc721*), ABISELECT(48,24), "ee31721");
+ check_base_class_offset(lv, (cc721*)(dd1721*), ABISELECT(32,16), "ee31721");
+ check_base_class_offset(lv, (dd1721*), ABISELECT(16,8), "ee31721");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31721.e");
+ test_class_info(&lv, &cd_ee31721);
+ dp->~ee31721();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31721(Test_ee31721, "ee31721", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee31721C1Ev();
+extern void _ZN7ee31721D1Ev();
+Name_Map name_map_ee31721[] = {
+ NSPAIR(_ZN7ee31721C1Ev),
+ NSPAIR(_ZN7ee31721D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc721;
+extern VTBL_ENTRY _ZTI5cc721[];
+extern VTBL_ENTRY _ZTV5cc721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc721[];
+extern Class_Descriptor cd_dd1721;
+extern VTBL_ENTRY _ZTI6dd1721[];
+extern VTBL_ENTRY _ZTV6dd1721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1721[];
+static Base_Class bases_ee31721[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb21, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc721, 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_dd1721, 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 _ZTI7ee31721[];
+extern void _ZN7ee317213fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee317213fooEv,_ZTv0_n16_N7ee317213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee317213fooEv,_ZThn16_N7ee317213fooEv)() __attribute__((weak));
+extern void _ZN5cc7213barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee317213fooEv,_ZTv0_n12_N7ee317213fooEv)();
+extern void ABISELECT(_ZThn48_N7ee317213fooEv,_ZThn24_N7ee317213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee31721[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31721[0]),
+ (VTBL_ENTRY)&_ZN7ee317213fooEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31721[0]),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee317213fooEv,_ZTv0_n16_N7ee317213fooEv),
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee31721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee317213fooEv,_ZTv0_n12_N7ee317213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee31721[];
+static VTBL_ENTRY _tg__ZTV6dd1721__7ee31721[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1721[0]),
+};
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc721__6dd1721__7ee31721[] = {
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd1721__7ee31721[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc721__7ee31721[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc721__7ee31721[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+static VTT_ENTRY vtt_ee31721[] = {
+ {&(_ZTV7ee31721[5]), 5,21},
+ {&(_ZTV7ee31721[10]), 10,21},
+ {&(_ZTV7ee31721[15]), 15,21},
+ {&(_ZTV7ee31721[20]), 20,21},
+ {&(_tg__ZTV6dd1721__7ee31721[4]), 4,4},
+ {&(_tg__ZTV5cc721__6dd1721__7ee31721[5]), 5,7},
+ {&(_tg__ZTV4bb21__6dd1721__7ee31721[3]), 3,4},
+ {&(_tg__ZTV5cc721__7ee31721[3]), 3,5},
+ {&(_tg__ZTV4bb21__5cc721__7ee31721[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee31721[];
+extern VTBL_ENTRY _ZTV7ee31721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31721[];
+static VTBL_ENTRY alt_thunk_names792[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee317213fooEv,_ZTv0_n12_N7ee317213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee317213fooEv,_ZThn24_N7ee317213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee317213fooEv,_ZTv0_n16_N7ee317213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee317213fooEv,_ZThn16_N7ee317213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31721 = { "ee31721", // class name
+ bases_ee31721, 4,
+ &(vtc_ee31721[0]), // expected_vtbl_contents
+ &(vtt_ee31721[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee31721),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31721),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31721),9, //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 ee41721 : dd1721 {
+ int e;
+ virtual void bar(); // _ZN7ee417213barEv
+ ~ee41721(); // tgen
+ ee41721(); // tgen
+};
+//SIG(1 ee41721) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 Fi} v2 Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee41721 ::bar(){vfunc_called(this, "_ZN7ee417213barEv");}
+ee41721 ::~ee41721(){ note_dtor("ee41721", this);} // tgen
+ee41721 ::ee41721(){ note_ctor("ee41721", this);} // tgen
+
+static void Test_ee41721()
+{
+ extern Class_Descriptor cd_ee41721;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee41721, buf);
+ ee41721 *dp, &lv = *(dp=new (buf) ee41721());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee41721)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41721)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee41721");
+ check_base_class_offset(lv, (bb21*)(cc721*), ABISELECT(32,20), "ee41721");
+ check_base_class_offset(lv, (cc721*)(dd1721*), ABISELECT(16,12), "ee41721");
+ check_base_class_offset(lv, (dd1721*), 0, "ee41721");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41721.e");
+ test_class_info(&lv, &cd_ee41721);
+ dp->~ee41721();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41721(Test_ee41721, "ee41721", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee41721C1Ev();
+extern void _ZN7ee41721D1Ev();
+Name_Map name_map_ee41721[] = {
+ NSPAIR(_ZN7ee41721C1Ev),
+ NSPAIR(_ZN7ee41721D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc721;
+extern VTBL_ENTRY _ZTI5cc721[];
+extern VTBL_ENTRY _ZTV5cc721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc721[];
+extern Class_Descriptor cd_dd1721;
+extern VTBL_ENTRY _ZTI6dd1721[];
+extern VTBL_ENTRY _ZTV6dd1721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1721[];
+static Base_Class bases_ee41721[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc721, 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_dd1721, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41721[];
+extern void _ZN7ee417213barEv();
+extern void _ZN5cc7213fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee417213barEv,_ZTv0_n20_N7ee417213barEv)();
+extern void ABISELECT(_ZThn16_N7ee417213barEv,_ZThn12_N7ee417213barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee41721[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41721[0]),
+ (VTBL_ENTRY)&_ZN7ee417213barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee417213barEv,_ZTv0_n20_N7ee417213barEv),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee41721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee41721[];
+static VTBL_ENTRY _tg__ZTV6dd1721__7ee41721[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1721[0]),
+};
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc721__6dd1721__7ee41721[] = {
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd1721__7ee41721[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc721__7ee41721[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc721__7ee41721[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+static VTT_ENTRY vtt_ee41721[] = {
+ {&(_ZTV7ee41721[4]), 4,16},
+ {&(_tg__ZTV6dd1721__7ee41721[4]), 4,4},
+ {&(_tg__ZTV5cc721__6dd1721__7ee41721[5]), 5,7},
+ {&(_tg__ZTV4bb21__6dd1721__7ee41721[3]), 3,4},
+ {&(_ZTV7ee41721[10]), 10,16},
+ {&(_ZTV7ee41721[15]), 15,16},
+ {&(_tg__ZTV5cc721__7ee41721[3]), 3,5},
+ {&(_tg__ZTV4bb21__5cc721__7ee41721[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee41721[];
+extern VTBL_ENTRY _ZTV7ee41721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41721[];
+static VTBL_ENTRY alt_thunk_names793[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee417213barEv,_ZTv0_n20_N7ee417213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee417213barEv,_ZThn12_N7ee417213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41721 = { "ee41721", // class name
+ bases_ee41721, 4,
+ &(vtc_ee41721[0]), // expected_vtbl_contents
+ &(vtt_ee41721[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee41721),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41721),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41721),8, //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 ee51721 : virtual dd1721 {
+ int e;
+ virtual void bar(); // _ZN7ee517213barEv
+ ~ee51721(); // tgen
+ ee51721(); // tgen
+};
+//SIG(1 ee51721) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 Fi} v2 Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee51721 ::bar(){vfunc_called(this, "_ZN7ee517213barEv");}
+ee51721 ::~ee51721(){ note_dtor("ee51721", this);} // tgen
+ee51721 ::ee51721(){ note_ctor("ee51721", this);} // tgen
+
+static void Test_ee51721()
+{
+ extern Class_Descriptor cd_ee51721;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee51721, buf);
+ ee51721 *dp, &lv = *(dp=new (buf) ee51721());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee51721)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51721)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(48,24), "ee51721");
+ check_base_class_offset(lv, (bb21*)(cc721*), ABISELECT(48,24), "ee51721");
+ check_base_class_offset(lv, (cc721*)(dd1721*), ABISELECT(32,16), "ee51721");
+ check_base_class_offset(lv, (dd1721*), ABISELECT(16,8), "ee51721");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51721.e");
+ test_class_info(&lv, &cd_ee51721);
+ dp->~ee51721();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51721(Test_ee51721, "ee51721", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee51721C1Ev();
+extern void _ZN7ee51721D1Ev();
+Name_Map name_map_ee51721[] = {
+ NSPAIR(_ZN7ee51721C1Ev),
+ NSPAIR(_ZN7ee51721D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc721;
+extern VTBL_ENTRY _ZTI5cc721[];
+extern VTBL_ENTRY _ZTV5cc721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc721[];
+extern Class_Descriptor cd_dd1721;
+extern VTBL_ENTRY _ZTI6dd1721[];
+extern VTBL_ENTRY _ZTV6dd1721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1721[];
+static Base_Class bases_ee51721[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb21, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc721, 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_dd1721, 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 _ZTI7ee51721[];
+extern void _ZN7ee517213barEv();
+extern void _ZN5cc7213fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee517213barEv,_ZTv0_n20_N7ee517213barEv)();
+extern void ABISELECT(_ZThn32_N7ee517213barEv,_ZThn16_N7ee517213barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee51721[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51721[0]),
+ (VTBL_ENTRY)&_ZN7ee517213barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51721[0]),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee517213barEv,_ZTv0_n20_N7ee517213barEv),
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee51721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee51721[];
+static VTBL_ENTRY _tg__ZTV6dd1721__7ee51721[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1721[0]),
+};
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc721__6dd1721__7ee51721[] = {
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd1721__7ee51721[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc721__7ee51721[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc721__7ee51721[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+static VTT_ENTRY vtt_ee51721[] = {
+ {&(_ZTV7ee51721[5]), 5,21},
+ {&(_ZTV7ee51721[10]), 10,21},
+ {&(_ZTV7ee51721[15]), 15,21},
+ {&(_ZTV7ee51721[20]), 20,21},
+ {&(_tg__ZTV6dd1721__7ee51721[4]), 4,4},
+ {&(_tg__ZTV5cc721__6dd1721__7ee51721[5]), 5,7},
+ {&(_tg__ZTV4bb21__6dd1721__7ee51721[3]), 3,4},
+ {&(_tg__ZTV5cc721__7ee51721[3]), 3,5},
+ {&(_tg__ZTV4bb21__5cc721__7ee51721[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee51721[];
+extern VTBL_ENTRY _ZTV7ee51721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51721[];
+static VTBL_ENTRY alt_thunk_names794[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee517213barEv,_ZTv0_n20_N7ee517213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee517213barEv,_ZThn16_N7ee517213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51721 = { "ee51721", // class name
+ bases_ee51721, 4,
+ &(vtc_ee51721[0]), // expected_vtbl_contents
+ &(vtt_ee51721[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee51721),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51721),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51721),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names794,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee61721 : dd1721 {
+ int e;
+ virtual void foo(); // _ZN7ee617213fooEv
+ virtual void bar(); // _ZN7ee617213barEv
+ ~ee61721(); // tgen
+ ee61721(); // tgen
+};
+//SIG(1 ee61721) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee61721 ::foo(){vfunc_called(this, "_ZN7ee617213fooEv");}
+void ee61721 ::bar(){vfunc_called(this, "_ZN7ee617213barEv");}
+ee61721 ::~ee61721(){ note_dtor("ee61721", this);} // tgen
+ee61721 ::ee61721(){ note_ctor("ee61721", this);} // tgen
+
+static void Test_ee61721()
+{
+ extern Class_Descriptor cd_ee61721;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee61721, buf);
+ ee61721 *dp, &lv = *(dp=new (buf) ee61721());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee61721)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61721)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee61721");
+ check_base_class_offset(lv, (bb21*)(cc721*), ABISELECT(32,20), "ee61721");
+ check_base_class_offset(lv, (cc721*)(dd1721*), ABISELECT(16,12), "ee61721");
+ check_base_class_offset(lv, (dd1721*), 0, "ee61721");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61721.e");
+ test_class_info(&lv, &cd_ee61721);
+ dp->~ee61721();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61721(Test_ee61721, "ee61721", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee61721C1Ev();
+extern void _ZN7ee61721D1Ev();
+Name_Map name_map_ee61721[] = {
+ NSPAIR(_ZN7ee61721C1Ev),
+ NSPAIR(_ZN7ee61721D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc721;
+extern VTBL_ENTRY _ZTI5cc721[];
+extern VTBL_ENTRY _ZTV5cc721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc721[];
+extern Class_Descriptor cd_dd1721;
+extern VTBL_ENTRY _ZTI6dd1721[];
+extern VTBL_ENTRY _ZTV6dd1721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1721[];
+static Base_Class bases_ee61721[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc721, 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_dd1721, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61721[];
+extern void _ZN7ee617213fooEv();
+extern void _ZN7ee617213barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee617213fooEv,_ZTv0_n16_N7ee617213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee617213fooEv,_ZThn12_N7ee617213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee617213barEv,_ZTv0_n20_N7ee617213barEv)();
+extern void ABISELECT(_ZThn16_N7ee617213barEv,_ZThn12_N7ee617213barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee617213fooEv,_ZTv0_n12_N7ee617213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee617213fooEv,_ZThn20_N7ee617213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61721[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61721[0]),
+ (VTBL_ENTRY)&_ZN7ee617213fooEv,
+ (VTBL_ENTRY)&_ZN7ee617213barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee617213fooEv,_ZTv0_n16_N7ee617213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee617213barEv,_ZTv0_n20_N7ee617213barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee61721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee617213fooEv,_ZTv0_n12_N7ee617213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee61721[];
+static VTBL_ENTRY _tg__ZTV6dd1721__7ee61721[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1721[0]),
+};
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc721__6dd1721__7ee61721[] = {
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd1721__7ee61721[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc721__7ee61721[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc721__7ee61721[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+static VTT_ENTRY vtt_ee61721[] = {
+ {&(_ZTV7ee61721[4]), 4,17},
+ {&(_tg__ZTV6dd1721__7ee61721[4]), 4,4},
+ {&(_tg__ZTV5cc721__6dd1721__7ee61721[5]), 5,7},
+ {&(_tg__ZTV4bb21__6dd1721__7ee61721[3]), 3,4},
+ {&(_ZTV7ee61721[11]), 11,17},
+ {&(_ZTV7ee61721[16]), 16,17},
+ {&(_tg__ZTV5cc721__7ee61721[3]), 3,5},
+ {&(_tg__ZTV4bb21__5cc721__7ee61721[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee61721[];
+extern VTBL_ENTRY _ZTV7ee61721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61721[];
+static VTBL_ENTRY alt_thunk_names795[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee617213fooEv,_ZTv0_n12_N7ee617213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee617213fooEv,_ZThn20_N7ee617213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee617213barEv,_ZTv0_n20_N7ee617213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee617213barEv,_ZThn12_N7ee617213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee617213fooEv,_ZTv0_n16_N7ee617213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee617213fooEv,_ZThn12_N7ee617213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61721 = { "ee61721", // class name
+ bases_ee61721, 4,
+ &(vtc_ee61721[0]), // expected_vtbl_contents
+ &(vtt_ee61721[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee61721),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61721),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61721),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 ee71721 : virtual dd1721 {
+ int e;
+ virtual void foo(); // _ZN7ee717213fooEv
+ virtual void bar(); // _ZN7ee717213barEv
+ ~ee71721(); // tgen
+ ee71721(); // tgen
+};
+//SIG(1 ee71721) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee71721 ::foo(){vfunc_called(this, "_ZN7ee717213fooEv");}
+void ee71721 ::bar(){vfunc_called(this, "_ZN7ee717213barEv");}
+ee71721 ::~ee71721(){ note_dtor("ee71721", this);} // tgen
+ee71721 ::ee71721(){ note_ctor("ee71721", this);} // tgen
+
+static void Test_ee71721()
+{
+ extern Class_Descriptor cd_ee71721;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee71721, buf);
+ ee71721 *dp, &lv = *(dp=new (buf) ee71721());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee71721)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71721)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(48,24), "ee71721");
+ check_base_class_offset(lv, (bb21*)(cc721*), ABISELECT(48,24), "ee71721");
+ check_base_class_offset(lv, (cc721*)(dd1721*), ABISELECT(32,16), "ee71721");
+ check_base_class_offset(lv, (dd1721*), ABISELECT(16,8), "ee71721");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71721.e");
+ test_class_info(&lv, &cd_ee71721);
+ dp->~ee71721();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71721(Test_ee71721, "ee71721", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee71721C1Ev();
+extern void _ZN7ee71721D1Ev();
+Name_Map name_map_ee71721[] = {
+ NSPAIR(_ZN7ee71721C1Ev),
+ NSPAIR(_ZN7ee71721D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc721;
+extern VTBL_ENTRY _ZTI5cc721[];
+extern VTBL_ENTRY _ZTV5cc721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc721[];
+extern Class_Descriptor cd_dd1721;
+extern VTBL_ENTRY _ZTI6dd1721[];
+extern VTBL_ENTRY _ZTV6dd1721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1721[];
+static Base_Class bases_ee71721[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb21, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc721, 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_dd1721, 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 _ZTI7ee71721[];
+extern void _ZN7ee717213fooEv();
+extern void _ZN7ee717213barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee717213fooEv,_ZTv0_n16_N7ee717213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee717213fooEv,_ZThn16_N7ee717213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee717213barEv,_ZTv0_n20_N7ee717213barEv)();
+extern void ABISELECT(_ZThn32_N7ee717213barEv,_ZThn16_N7ee717213barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee717213fooEv,_ZTv0_n12_N7ee717213fooEv)();
+extern void ABISELECT(_ZThn48_N7ee717213fooEv,_ZThn24_N7ee717213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71721[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71721[0]),
+ (VTBL_ENTRY)&_ZN7ee717213fooEv,
+ (VTBL_ENTRY)&_ZN7ee717213barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71721[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee717213fooEv,_ZTv0_n16_N7ee717213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee717213barEv,_ZTv0_n20_N7ee717213barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee71721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee717213fooEv,_ZTv0_n12_N7ee717213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee71721[];
+static VTBL_ENTRY _tg__ZTV6dd1721__7ee71721[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1721[0]),
+};
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc721__6dd1721__7ee71721[] = {
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd1721__7ee71721[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc721__7ee71721[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc721__7ee71721[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+static VTT_ENTRY vtt_ee71721[] = {
+ {&(_ZTV7ee71721[5]), 5,22},
+ {&(_ZTV7ee71721[11]), 11,22},
+ {&(_ZTV7ee71721[16]), 16,22},
+ {&(_ZTV7ee71721[21]), 21,22},
+ {&(_tg__ZTV6dd1721__7ee71721[4]), 4,4},
+ {&(_tg__ZTV5cc721__6dd1721__7ee71721[5]), 5,7},
+ {&(_tg__ZTV4bb21__6dd1721__7ee71721[3]), 3,4},
+ {&(_tg__ZTV5cc721__7ee71721[3]), 3,5},
+ {&(_tg__ZTV4bb21__5cc721__7ee71721[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee71721[];
+extern VTBL_ENTRY _ZTV7ee71721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71721[];
+static VTBL_ENTRY alt_thunk_names796[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee717213fooEv,_ZTv0_n12_N7ee717213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee717213fooEv,_ZThn24_N7ee717213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee717213barEv,_ZTv0_n20_N7ee717213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee717213barEv,_ZThn16_N7ee717213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee717213fooEv,_ZTv0_n16_N7ee717213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee717213fooEv,_ZThn16_N7ee717213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71721 = { "ee71721", // class name
+ bases_ee71721, 4,
+ &(vtc_ee71721[0]), // expected_vtbl_contents
+ &(vtt_ee71721[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee71721),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71721),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71721),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 dd2721 : cc721 {
+ int d;
+ virtual void foo(); // _ZN6dd27213fooEv
+ ~dd2721(); // tgen
+ dd2721(); // tgen
+};
+//SIG(-1 dd2721) C1{ BC2{ VBC3{ BC4{ v1 Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void dd2721 ::foo(){vfunc_called(this, "_ZN6dd27213fooEv");}
+dd2721 ::~dd2721(){ note_dtor("dd2721", this);} // tgen
+dd2721 ::dd2721(){ note_ctor("dd2721", this);} // tgen
+
+static void Test_dd2721()
+{
+ extern Class_Descriptor cd_dd2721;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd2721, buf);
+ dd2721 *dp, &lv = *(dp=new (buf) dd2721());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd2721)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2721)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(16,12), "dd2721");
+ check_base_class_offset(lv, (bb21*)(cc721*), ABISELECT(16,12), "dd2721");
+ check_base_class_offset(lv, (cc721*), 0, "dd2721");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd2721.d");
+ test_class_info(&lv, &cd_dd2721);
+ dp->~dd2721();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2721(Test_dd2721, "dd2721", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd2721C1Ev();
+extern void _ZN6dd2721D1Ev();
+Name_Map name_map_dd2721[] = {
+ NSPAIR(_ZN6dd2721C1Ev),
+ NSPAIR(_ZN6dd2721D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc721;
+extern VTBL_ENTRY _ZTI5cc721[];
+extern VTBL_ENTRY _ZTV5cc721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc721[];
+static Base_Class bases_dd2721[] = {
+ // 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_bb21, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc721, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd2721[];
+extern void _ZN6dd27213fooEv();
+extern void _ZN5cc7213barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd27213fooEv,_ZTv0_n12_N6dd27213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd27213fooEv,_ZThn12_N6dd27213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd2721[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2721[0]),
+ (VTBL_ENTRY)&_ZN6dd27213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27213fooEv,_ZTv0_n12_N6dd27213fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd2721[];
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc721__6dd2721[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn12_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc721__6dd2721[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+static VTT_ENTRY vtt_dd2721[] = {
+ {&(_ZTV6dd2721[3]), 3,9},
+ {&(_tg__ZTV5cc721__6dd2721[3]), 3,5},
+ {&(_tg__ZTV4bb21__5cc721__6dd2721[3]), 3,4},
+ {&(_ZTV6dd2721[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI6dd2721[];
+extern VTBL_ENTRY _ZTV6dd2721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2721[];
+static VTBL_ENTRY alt_thunk_names797[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn12_N5cc7213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27213fooEv,_ZTv0_n12_N6dd27213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd27213fooEv,_ZThn12_N6dd27213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd2721 = { "dd2721", // class name
+ bases_dd2721, 3,
+ &(vtc_dd2721[0]), // expected_vtbl_contents
+ &(vtt_dd2721[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd2721),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2721),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd2721),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names797,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee02721 : dd2721 {
+ int e;
+ ~ee02721(); // tgen
+ ee02721(); // tgen
+};
+//SIG(1 ee02721) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee02721 ::~ee02721(){ note_dtor("ee02721", this);} // tgen
+ee02721 ::ee02721(){ note_ctor("ee02721", this);} // tgen
+
+static void Test_ee02721()
+{
+ extern Class_Descriptor cd_ee02721;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee02721, buf);
+ ee02721 *dp, &lv = *(dp=new (buf) ee02721());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee02721)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02721)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(24,16), "ee02721");
+ check_base_class_offset(lv, (bb21*)(cc721*)(dd2721*), ABISELECT(24,16), "ee02721");
+ check_base_class_offset(lv, (cc721*)(dd2721*), 0, "ee02721");
+ check_base_class_offset(lv, (dd2721*), 0, "ee02721");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee02721.e");
+ test_class_info(&lv, &cd_ee02721);
+ dp->~ee02721();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02721(Test_ee02721, "ee02721", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee02721C1Ev();
+extern void _ZN7ee02721D1Ev();
+Name_Map name_map_ee02721[] = {
+ NSPAIR(_ZN7ee02721C1Ev),
+ NSPAIR(_ZN7ee02721D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc721;
+extern VTBL_ENTRY _ZTI5cc721[];
+extern VTBL_ENTRY _ZTV5cc721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc721[];
+extern Class_Descriptor cd_dd2721;
+extern VTBL_ENTRY _ZTI6dd2721[];
+extern VTBL_ENTRY _ZTV6dd2721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2721[];
+static Base_Class bases_ee02721[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc721, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2721, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee02721[];
+extern void _ZN6dd27213fooEv();
+extern void _ZN5cc7213barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd27213fooEv,_ZTv0_n12_N6dd27213fooEv)();
+extern void ABISELECT(_ZThn24_N6dd27213fooEv,_ZThn16_N6dd27213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee02721[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02721[0]),
+ (VTBL_ENTRY)&_ZN6dd27213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee02721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27213fooEv,_ZTv0_n12_N6dd27213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee02721[];
+extern void _ZN6dd27213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV6dd2721__7ee02721[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2721[0]),
+ (VTBL_ENTRY)&_ZN6dd27213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc7216dd2721__7ee02721[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7213fooEv,_ZThn16_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc7216dd2721__7ee02721[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd27213fooEv,_ZTv0_n12_N6dd27213fooEv)();
+extern void ABISELECT(_ZThn24_N6dd27213fooEv,_ZThn16_N6dd27213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd2721__7ee02721[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27213fooEv,_ZTv0_n12_N6dd27213fooEv),
+};
+static VTT_ENTRY vtt_ee02721[] = {
+ {&(_ZTV7ee02721[3]), 3,9},
+ {&(_tg__ZTV6dd2721__7ee02721[3]), 3,5},
+ {&(_tg__ZTV5cc7216dd2721__7ee02721[3]), 3,5},
+ {&(_tg__ZTV4bb21__5cc7216dd2721__7ee02721[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd2721__7ee02721[3]), 3,4},
+ {&(_ZTV7ee02721[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee02721[];
+extern VTBL_ENTRY _ZTV7ee02721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee02721[];
+static VTBL_ENTRY alt_thunk_names798[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7213fooEv,_ZThn16_N5cc7213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27213fooEv,_ZTv0_n12_N6dd27213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd27213fooEv,_ZThn16_N6dd27213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd27213fooEv,_ZThn16_N6dd27213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee02721 = { "ee02721", // class name
+ bases_ee02721, 4,
+ &(vtc_ee02721[0]), // expected_vtbl_contents
+ &(vtt_ee02721[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee02721),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02721),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee02721),6, //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 ee12721 : virtual dd2721 {
+ int e;
+ ~ee12721(); // tgen
+ ee12721(); // tgen
+};
+//SIG(1 ee12721) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee12721 ::~ee12721(){ note_dtor("ee12721", this);} // tgen
+ee12721 ::ee12721(){ note_ctor("ee12721", this);} // tgen
+
+static void Test_ee12721()
+{
+ extern Class_Descriptor cd_ee12721;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee12721, buf);
+ ee12721 *dp, &lv = *(dp=new (buf) ee12721());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee12721)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12721)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee12721");
+ check_base_class_offset(lv, (bb21*)(cc721*)(dd2721*), ABISELECT(32,20), "ee12721");
+ check_base_class_offset(lv, (cc721*)(dd2721*), ABISELECT(16,8), "ee12721");
+ check_base_class_offset(lv, (dd2721*), ABISELECT(16,8), "ee12721");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12721.e");
+ test_class_info(&lv, &cd_ee12721);
+ dp->~ee12721();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12721(Test_ee12721, "ee12721", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee12721C1Ev();
+extern void _ZN7ee12721D1Ev();
+Name_Map name_map_ee12721[] = {
+ NSPAIR(_ZN7ee12721C1Ev),
+ NSPAIR(_ZN7ee12721D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc721;
+extern VTBL_ENTRY _ZTI5cc721[];
+extern VTBL_ENTRY _ZTV5cc721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc721[];
+extern Class_Descriptor cd_dd2721;
+extern VTBL_ENTRY _ZTI6dd2721[];
+extern VTBL_ENTRY _ZTV6dd2721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2721[];
+static Base_Class bases_ee12721[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc721, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2721, 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 _ZTI7ee12721[];
+extern void _ZN6dd27213fooEv();
+extern void _ZN5cc7213barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd27213fooEv,_ZTv0_n12_N6dd27213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd27213fooEv,_ZThn12_N6dd27213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee12721[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12721[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12721[0]),
+ (VTBL_ENTRY)&_ZN6dd27213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee12721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27213fooEv,_ZTv0_n12_N6dd27213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee12721[];
+extern void _ZN6dd27213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV6dd2721__7ee12721[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2721[0]),
+ (VTBL_ENTRY)&_ZN6dd27213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc7216dd2721__7ee12721[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn12_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc7216dd2721__7ee12721[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd27213fooEv,_ZTv0_n12_N6dd27213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd27213fooEv,_ZThn12_N6dd27213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd2721__7ee12721[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27213fooEv,_ZTv0_n12_N6dd27213fooEv),
+};
+static VTT_ENTRY vtt_ee12721[] = {
+ {&(_ZTV7ee12721[4]), 4,15},
+ {&(_ZTV7ee12721[9]), 9,15},
+ {&(_ZTV7ee12721[14]), 14,15},
+ {&(_tg__ZTV6dd2721__7ee12721[3]), 3,5},
+ {&(_tg__ZTV5cc7216dd2721__7ee12721[3]), 3,5},
+ {&(_tg__ZTV4bb21__5cc7216dd2721__7ee12721[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd2721__7ee12721[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee12721[];
+extern VTBL_ENTRY _ZTV7ee12721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12721[];
+static VTBL_ENTRY alt_thunk_names799[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn12_N5cc7213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27213fooEv,_ZTv0_n12_N6dd27213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd27213fooEv,_ZThn12_N6dd27213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd27213fooEv,_ZThn12_N6dd27213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee12721 = { "ee12721", // class name
+ bases_ee12721, 4,
+ &(vtc_ee12721[0]), // expected_vtbl_contents
+ &(vtt_ee12721[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee12721),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12721),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12721),7, //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 ee22721 : dd2721 {
+ int e;
+ virtual void foo(); // _ZN7ee227213fooEv
+ ~ee22721(); // tgen
+ ee22721(); // tgen
+};
+//SIG(1 ee22721) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee22721 ::foo(){vfunc_called(this, "_ZN7ee227213fooEv");}
+ee22721 ::~ee22721(){ note_dtor("ee22721", this);} // tgen
+ee22721 ::ee22721(){ note_ctor("ee22721", this);} // tgen
+
+static void Test_ee22721()
+{
+ extern Class_Descriptor cd_ee22721;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee22721, buf);
+ ee22721 *dp, &lv = *(dp=new (buf) ee22721());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee22721)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22721)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(24,16), "ee22721");
+ check_base_class_offset(lv, (bb21*)(cc721*)(dd2721*), ABISELECT(24,16), "ee22721");
+ check_base_class_offset(lv, (cc721*)(dd2721*), 0, "ee22721");
+ check_base_class_offset(lv, (dd2721*), 0, "ee22721");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee22721.e");
+ test_class_info(&lv, &cd_ee22721);
+ dp->~ee22721();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22721(Test_ee22721, "ee22721", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee22721C1Ev();
+extern void _ZN7ee22721D1Ev();
+Name_Map name_map_ee22721[] = {
+ NSPAIR(_ZN7ee22721C1Ev),
+ NSPAIR(_ZN7ee22721D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc721;
+extern VTBL_ENTRY _ZTI5cc721[];
+extern VTBL_ENTRY _ZTV5cc721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc721[];
+extern Class_Descriptor cd_dd2721;
+extern VTBL_ENTRY _ZTI6dd2721[];
+extern VTBL_ENTRY _ZTV6dd2721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2721[];
+static Base_Class bases_ee22721[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc721, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2721, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee22721[];
+extern void _ZN7ee227213fooEv();
+extern void _ZN5cc7213barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee227213fooEv,_ZTv0_n12_N7ee227213fooEv)();
+extern void ABISELECT(_ZThn24_N7ee227213fooEv,_ZThn16_N7ee227213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee22721[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22721[0]),
+ (VTBL_ENTRY)&_ZN7ee227213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee22721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee227213fooEv,_ZTv0_n12_N7ee227213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee22721[];
+extern void _ZN6dd27213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV6dd2721__7ee22721[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2721[0]),
+ (VTBL_ENTRY)&_ZN6dd27213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc7216dd2721__7ee22721[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7213fooEv,_ZThn16_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc7216dd2721__7ee22721[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd27213fooEv,_ZTv0_n12_N6dd27213fooEv)();
+extern void ABISELECT(_ZThn24_N6dd27213fooEv,_ZThn16_N6dd27213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd2721__7ee22721[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27213fooEv,_ZTv0_n12_N6dd27213fooEv),
+};
+static VTT_ENTRY vtt_ee22721[] = {
+ {&(_ZTV7ee22721[3]), 3,9},
+ {&(_tg__ZTV6dd2721__7ee22721[3]), 3,5},
+ {&(_tg__ZTV5cc7216dd2721__7ee22721[3]), 3,5},
+ {&(_tg__ZTV4bb21__5cc7216dd2721__7ee22721[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd2721__7ee22721[3]), 3,4},
+ {&(_ZTV7ee22721[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee22721[];
+extern VTBL_ENTRY _ZTV7ee22721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee22721[];
+static VTBL_ENTRY alt_thunk_names800[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27213fooEv,_ZTv0_n12_N6dd27213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd27213fooEv,_ZThn16_N6dd27213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7213fooEv,_ZThn16_N5cc7213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee227213fooEv,_ZTv0_n12_N7ee227213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee227213fooEv,_ZThn16_N7ee227213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee22721 = { "ee22721", // class name
+ bases_ee22721, 4,
+ &(vtc_ee22721[0]), // expected_vtbl_contents
+ &(vtt_ee22721[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee22721),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22721),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee22721),6, //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 ee32721 : virtual dd2721 {
+ int e;
+ virtual void foo(); // _ZN7ee327213fooEv
+ ~ee32721(); // tgen
+ ee32721(); // tgen
+};
+//SIG(1 ee32721) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee32721 ::foo(){vfunc_called(this, "_ZN7ee327213fooEv");}
+ee32721 ::~ee32721(){ note_dtor("ee32721", this);} // tgen
+ee32721 ::ee32721(){ note_ctor("ee32721", this);} // tgen
+
+static void Test_ee32721()
+{
+ extern Class_Descriptor cd_ee32721;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee32721, buf);
+ ee32721 *dp, &lv = *(dp=new (buf) ee32721());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee32721)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32721)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee32721");
+ check_base_class_offset(lv, (bb21*)(cc721*)(dd2721*), ABISELECT(32,20), "ee32721");
+ check_base_class_offset(lv, (cc721*)(dd2721*), ABISELECT(16,8), "ee32721");
+ check_base_class_offset(lv, (dd2721*), ABISELECT(16,8), "ee32721");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32721.e");
+ test_class_info(&lv, &cd_ee32721);
+ dp->~ee32721();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32721(Test_ee32721, "ee32721", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee32721C1Ev();
+extern void _ZN7ee32721D1Ev();
+Name_Map name_map_ee32721[] = {
+ NSPAIR(_ZN7ee32721C1Ev),
+ NSPAIR(_ZN7ee32721D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc721;
+extern VTBL_ENTRY _ZTI5cc721[];
+extern VTBL_ENTRY _ZTV5cc721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc721[];
+extern Class_Descriptor cd_dd2721;
+extern VTBL_ENTRY _ZTI6dd2721[];
+extern VTBL_ENTRY _ZTV6dd2721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2721[];
+static Base_Class bases_ee32721[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc721, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2721, 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 _ZTI7ee32721[];
+extern void _ZN7ee327213fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee327213fooEv,_ZTv0_n16_N7ee327213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee327213fooEv,_ZThn8_N7ee327213fooEv)() __attribute__((weak));
+extern void _ZN5cc7213barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee327213fooEv,_ZTv0_n12_N7ee327213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee327213fooEv,_ZThn20_N7ee327213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee32721[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32721[0]),
+ (VTBL_ENTRY)&_ZN7ee327213fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee327213fooEv,_ZTv0_n16_N7ee327213fooEv),
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee32721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee327213fooEv,_ZTv0_n12_N7ee327213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee32721[];
+extern void _ZN6dd27213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV6dd2721__7ee32721[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2721[0]),
+ (VTBL_ENTRY)&_ZN6dd27213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc7216dd2721__7ee32721[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn12_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc7216dd2721__7ee32721[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd27213fooEv,_ZTv0_n12_N6dd27213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd27213fooEv,_ZThn12_N6dd27213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd2721__7ee32721[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27213fooEv,_ZTv0_n12_N6dd27213fooEv),
+};
+static VTT_ENTRY vtt_ee32721[] = {
+ {&(_ZTV7ee32721[4]), 4,16},
+ {&(_ZTV7ee32721[10]), 10,16},
+ {&(_ZTV7ee32721[15]), 15,16},
+ {&(_tg__ZTV6dd2721__7ee32721[3]), 3,5},
+ {&(_tg__ZTV5cc7216dd2721__7ee32721[3]), 3,5},
+ {&(_tg__ZTV4bb21__5cc7216dd2721__7ee32721[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd2721__7ee32721[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee32721[];
+extern VTBL_ENTRY _ZTV7ee32721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32721[];
+static VTBL_ENTRY alt_thunk_names801[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27213fooEv,_ZTv0_n12_N6dd27213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd27213fooEv,_ZThn12_N6dd27213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn12_N5cc7213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee327213fooEv,_ZTv0_n12_N7ee327213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee327213fooEv,_ZThn20_N7ee327213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee327213fooEv,_ZTv0_n16_N7ee327213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee327213fooEv,_ZThn8_N7ee327213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32721 = { "ee32721", // class name
+ bases_ee32721, 4,
+ &(vtc_ee32721[0]), // expected_vtbl_contents
+ &(vtt_ee32721[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee32721),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32721),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32721),7, //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 ee42721 : dd2721 {
+ int e;
+ virtual void bar(); // _ZN7ee427213barEv
+ ~ee42721(); // tgen
+ ee42721(); // tgen
+};
+//SIG(1 ee42721) C1{ BC2{ BC3{ VBC4{ BC5{ v2 Fi} v2 Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee42721 ::bar(){vfunc_called(this, "_ZN7ee427213barEv");}
+ee42721 ::~ee42721(){ note_dtor("ee42721", this);} // tgen
+ee42721 ::ee42721(){ note_ctor("ee42721", this);} // tgen
+
+static void Test_ee42721()
+{
+ extern Class_Descriptor cd_ee42721;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee42721, buf);
+ ee42721 *dp, &lv = *(dp=new (buf) ee42721());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee42721)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42721)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(24,16), "ee42721");
+ check_base_class_offset(lv, (bb21*)(cc721*)(dd2721*), ABISELECT(24,16), "ee42721");
+ check_base_class_offset(lv, (cc721*)(dd2721*), 0, "ee42721");
+ check_base_class_offset(lv, (dd2721*), 0, "ee42721");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee42721.e");
+ test_class_info(&lv, &cd_ee42721);
+ dp->~ee42721();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42721(Test_ee42721, "ee42721", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee42721C1Ev();
+extern void _ZN7ee42721D1Ev();
+Name_Map name_map_ee42721[] = {
+ NSPAIR(_ZN7ee42721C1Ev),
+ NSPAIR(_ZN7ee42721D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc721;
+extern VTBL_ENTRY _ZTI5cc721[];
+extern VTBL_ENTRY _ZTV5cc721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc721[];
+extern Class_Descriptor cd_dd2721;
+extern VTBL_ENTRY _ZTI6dd2721[];
+extern VTBL_ENTRY _ZTV6dd2721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2721[];
+static Base_Class bases_ee42721[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc721, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2721, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee42721[];
+extern void _ZN6dd27213fooEv();
+extern void _ZN7ee427213barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd27213fooEv,_ZTv0_n12_N6dd27213fooEv)();
+extern void ABISELECT(_ZThn24_N6dd27213fooEv,_ZThn16_N6dd27213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee42721[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42721[0]),
+ (VTBL_ENTRY)&_ZN6dd27213fooEv,
+ (VTBL_ENTRY)&_ZN7ee427213barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee42721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27213fooEv,_ZTv0_n12_N6dd27213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee42721[];
+extern void _ZN6dd27213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV6dd2721__7ee42721[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2721[0]),
+ (VTBL_ENTRY)&_ZN6dd27213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc7216dd2721__7ee42721[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7213fooEv,_ZThn16_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc7216dd2721__7ee42721[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd27213fooEv,_ZTv0_n12_N6dd27213fooEv)();
+extern void ABISELECT(_ZThn24_N6dd27213fooEv,_ZThn16_N6dd27213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd2721__7ee42721[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27213fooEv,_ZTv0_n12_N6dd27213fooEv),
+};
+static VTT_ENTRY vtt_ee42721[] = {
+ {&(_ZTV7ee42721[3]), 3,9},
+ {&(_tg__ZTV6dd2721__7ee42721[3]), 3,5},
+ {&(_tg__ZTV5cc7216dd2721__7ee42721[3]), 3,5},
+ {&(_tg__ZTV4bb21__5cc7216dd2721__7ee42721[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd2721__7ee42721[3]), 3,4},
+ {&(_ZTV7ee42721[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee42721[];
+extern VTBL_ENTRY _ZTV7ee42721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee42721[];
+static VTBL_ENTRY alt_thunk_names802[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7213fooEv,_ZThn16_N5cc7213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27213fooEv,_ZTv0_n12_N6dd27213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd27213fooEv,_ZThn16_N6dd27213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd27213fooEv,_ZThn16_N6dd27213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee42721 = { "ee42721", // class name
+ bases_ee42721, 4,
+ &(vtc_ee42721[0]), // expected_vtbl_contents
+ &(vtt_ee42721[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee42721),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42721),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee42721),6, //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 ee52721 : virtual dd2721 {
+ int e;
+ virtual void bar(); // _ZN7ee527213barEv
+ ~ee52721(); // tgen
+ ee52721(); // tgen
+};
+//SIG(1 ee52721) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 Fi} v2 Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee52721 ::bar(){vfunc_called(this, "_ZN7ee527213barEv");}
+ee52721 ::~ee52721(){ note_dtor("ee52721", this);} // tgen
+ee52721 ::ee52721(){ note_ctor("ee52721", this);} // tgen
+
+static void Test_ee52721()
+{
+ extern Class_Descriptor cd_ee52721;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee52721, buf);
+ ee52721 *dp, &lv = *(dp=new (buf) ee52721());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee52721)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52721)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee52721");
+ check_base_class_offset(lv, (bb21*)(cc721*)(dd2721*), ABISELECT(32,20), "ee52721");
+ check_base_class_offset(lv, (cc721*)(dd2721*), ABISELECT(16,8), "ee52721");
+ check_base_class_offset(lv, (dd2721*), ABISELECT(16,8), "ee52721");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52721.e");
+ test_class_info(&lv, &cd_ee52721);
+ dp->~ee52721();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52721(Test_ee52721, "ee52721", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee52721C1Ev();
+extern void _ZN7ee52721D1Ev();
+Name_Map name_map_ee52721[] = {
+ NSPAIR(_ZN7ee52721C1Ev),
+ NSPAIR(_ZN7ee52721D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc721;
+extern VTBL_ENTRY _ZTI5cc721[];
+extern VTBL_ENTRY _ZTV5cc721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc721[];
+extern Class_Descriptor cd_dd2721;
+extern VTBL_ENTRY _ZTI6dd2721[];
+extern VTBL_ENTRY _ZTV6dd2721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2721[];
+static Base_Class bases_ee52721[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc721, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2721, 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 _ZTI7ee52721[];
+extern void _ZN7ee527213barEv();
+extern void _ZN6dd27213fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee527213barEv,_ZTv0_n20_N7ee527213barEv)();
+extern void ABISELECT(_ZThn16_N7ee527213barEv,_ZThn8_N7ee527213barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd27213fooEv,_ZTv0_n12_N6dd27213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd27213fooEv,_ZThn12_N6dd27213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee52721[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52721[0]),
+ (VTBL_ENTRY)&_ZN7ee527213barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52721[0]),
+ (VTBL_ENTRY)&_ZN6dd27213fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee527213barEv,_ZTv0_n20_N7ee527213barEv),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee52721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27213fooEv,_ZTv0_n12_N6dd27213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee52721[];
+extern void _ZN6dd27213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV6dd2721__7ee52721[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2721[0]),
+ (VTBL_ENTRY)&_ZN6dd27213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc7216dd2721__7ee52721[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn12_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc7216dd2721__7ee52721[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd27213fooEv,_ZTv0_n12_N6dd27213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd27213fooEv,_ZThn12_N6dd27213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd2721__7ee52721[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27213fooEv,_ZTv0_n12_N6dd27213fooEv),
+};
+static VTT_ENTRY vtt_ee52721[] = {
+ {&(_ZTV7ee52721[4]), 4,16},
+ {&(_ZTV7ee52721[10]), 10,16},
+ {&(_ZTV7ee52721[15]), 15,16},
+ {&(_tg__ZTV6dd2721__7ee52721[3]), 3,5},
+ {&(_tg__ZTV5cc7216dd2721__7ee52721[3]), 3,5},
+ {&(_tg__ZTV4bb21__5cc7216dd2721__7ee52721[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd2721__7ee52721[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee52721[];
+extern VTBL_ENTRY _ZTV7ee52721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52721[];
+static VTBL_ENTRY alt_thunk_names803[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn12_N5cc7213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27213fooEv,_ZTv0_n12_N6dd27213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd27213fooEv,_ZThn12_N6dd27213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd27213fooEv,_ZThn12_N6dd27213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee527213barEv,_ZTv0_n20_N7ee527213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee527213barEv,_ZThn8_N7ee527213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52721 = { "ee52721", // class name
+ bases_ee52721, 4,
+ &(vtc_ee52721[0]), // expected_vtbl_contents
+ &(vtt_ee52721[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee52721),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52721),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52721),7, //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 ee62721 : dd2721 {
+ int e;
+ virtual void foo(); // _ZN7ee627213fooEv
+ virtual void bar(); // _ZN7ee627213barEv
+ ~ee62721(); // tgen
+ ee62721(); // tgen
+};
+//SIG(1 ee62721) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62721 ::foo(){vfunc_called(this, "_ZN7ee627213fooEv");}
+void ee62721 ::bar(){vfunc_called(this, "_ZN7ee627213barEv");}
+ee62721 ::~ee62721(){ note_dtor("ee62721", this);} // tgen
+ee62721 ::ee62721(){ note_ctor("ee62721", this);} // tgen
+
+static void Test_ee62721()
+{
+ extern Class_Descriptor cd_ee62721;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee62721, buf);
+ ee62721 *dp, &lv = *(dp=new (buf) ee62721());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee62721)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62721)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(24,16), "ee62721");
+ check_base_class_offset(lv, (bb21*)(cc721*)(dd2721*), ABISELECT(24,16), "ee62721");
+ check_base_class_offset(lv, (cc721*)(dd2721*), 0, "ee62721");
+ check_base_class_offset(lv, (dd2721*), 0, "ee62721");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee62721.e");
+ test_class_info(&lv, &cd_ee62721);
+ dp->~ee62721();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62721(Test_ee62721, "ee62721", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee62721C1Ev();
+extern void _ZN7ee62721D1Ev();
+Name_Map name_map_ee62721[] = {
+ NSPAIR(_ZN7ee62721C1Ev),
+ NSPAIR(_ZN7ee62721D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc721;
+extern VTBL_ENTRY _ZTI5cc721[];
+extern VTBL_ENTRY _ZTV5cc721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc721[];
+extern Class_Descriptor cd_dd2721;
+extern VTBL_ENTRY _ZTI6dd2721[];
+extern VTBL_ENTRY _ZTV6dd2721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2721[];
+static Base_Class bases_ee62721[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc721, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2721, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee62721[];
+extern void _ZN7ee627213fooEv();
+extern void _ZN7ee627213barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee627213fooEv,_ZTv0_n12_N7ee627213fooEv)();
+extern void ABISELECT(_ZThn24_N7ee627213fooEv,_ZThn16_N7ee627213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee62721[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62721[0]),
+ (VTBL_ENTRY)&_ZN7ee627213fooEv,
+ (VTBL_ENTRY)&_ZN7ee627213barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee62721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee627213fooEv,_ZTv0_n12_N7ee627213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee62721[];
+extern void _ZN6dd27213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV6dd2721__7ee62721[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2721[0]),
+ (VTBL_ENTRY)&_ZN6dd27213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc7216dd2721__7ee62721[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7213fooEv,_ZThn16_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc7216dd2721__7ee62721[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd27213fooEv,_ZTv0_n12_N6dd27213fooEv)();
+extern void ABISELECT(_ZThn24_N6dd27213fooEv,_ZThn16_N6dd27213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd2721__7ee62721[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27213fooEv,_ZTv0_n12_N6dd27213fooEv),
+};
+static VTT_ENTRY vtt_ee62721[] = {
+ {&(_ZTV7ee62721[3]), 3,9},
+ {&(_tg__ZTV6dd2721__7ee62721[3]), 3,5},
+ {&(_tg__ZTV5cc7216dd2721__7ee62721[3]), 3,5},
+ {&(_tg__ZTV4bb21__5cc7216dd2721__7ee62721[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd2721__7ee62721[3]), 3,4},
+ {&(_ZTV7ee62721[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee62721[];
+extern VTBL_ENTRY _ZTV7ee62721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee62721[];
+static VTBL_ENTRY alt_thunk_names804[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27213fooEv,_ZTv0_n12_N6dd27213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd27213fooEv,_ZThn16_N6dd27213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7213fooEv,_ZThn16_N5cc7213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee627213fooEv,_ZTv0_n12_N7ee627213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee627213fooEv,_ZThn16_N7ee627213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee62721 = { "ee62721", // class name
+ bases_ee62721, 4,
+ &(vtc_ee62721[0]), // expected_vtbl_contents
+ &(vtt_ee62721[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee62721),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62721),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee62721),6, //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 ee72721 : virtual dd2721 {
+ int e;
+ virtual void foo(); // _ZN7ee727213fooEv
+ virtual void bar(); // _ZN7ee727213barEv
+ ~ee72721(); // tgen
+ ee72721(); // tgen
+};
+//SIG(1 ee72721) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72721 ::foo(){vfunc_called(this, "_ZN7ee727213fooEv");}
+void ee72721 ::bar(){vfunc_called(this, "_ZN7ee727213barEv");}
+ee72721 ::~ee72721(){ note_dtor("ee72721", this);} // tgen
+ee72721 ::ee72721(){ note_ctor("ee72721", this);} // tgen
+
+static void Test_ee72721()
+{
+ extern Class_Descriptor cd_ee72721;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee72721, buf);
+ ee72721 *dp, &lv = *(dp=new (buf) ee72721());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee72721)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72721)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee72721");
+ check_base_class_offset(lv, (bb21*)(cc721*)(dd2721*), ABISELECT(32,20), "ee72721");
+ check_base_class_offset(lv, (cc721*)(dd2721*), ABISELECT(16,8), "ee72721");
+ check_base_class_offset(lv, (dd2721*), ABISELECT(16,8), "ee72721");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72721.e");
+ test_class_info(&lv, &cd_ee72721);
+ dp->~ee72721();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72721(Test_ee72721, "ee72721", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee72721C1Ev();
+extern void _ZN7ee72721D1Ev();
+Name_Map name_map_ee72721[] = {
+ NSPAIR(_ZN7ee72721C1Ev),
+ NSPAIR(_ZN7ee72721D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc721;
+extern VTBL_ENTRY _ZTI5cc721[];
+extern VTBL_ENTRY _ZTV5cc721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc721[];
+extern Class_Descriptor cd_dd2721;
+extern VTBL_ENTRY _ZTI6dd2721[];
+extern VTBL_ENTRY _ZTV6dd2721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2721[];
+static Base_Class bases_ee72721[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc721, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2721, ABISELECT(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 _ZTI7ee72721[];
+extern void _ZN7ee727213fooEv();
+extern void _ZN7ee727213barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee727213fooEv,_ZTv0_n16_N7ee727213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee727213fooEv,_ZThn8_N7ee727213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee727213barEv,_ZTv0_n20_N7ee727213barEv)();
+extern void ABISELECT(_ZThn16_N7ee727213barEv,_ZThn8_N7ee727213barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee727213fooEv,_ZTv0_n12_N7ee727213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee727213fooEv,_ZThn20_N7ee727213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72721[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72721[0]),
+ (VTBL_ENTRY)&_ZN7ee727213fooEv,
+ (VTBL_ENTRY)&_ZN7ee727213barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee727213fooEv,_ZTv0_n16_N7ee727213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee727213barEv,_ZTv0_n20_N7ee727213barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee72721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee727213fooEv,_ZTv0_n12_N7ee727213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee72721[];
+extern void _ZN6dd27213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV6dd2721__7ee72721[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2721[0]),
+ (VTBL_ENTRY)&_ZN6dd27213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc7216dd2721__7ee72721[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn12_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc7216dd2721__7ee72721[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd27213fooEv,_ZTv0_n12_N6dd27213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd27213fooEv,_ZThn12_N6dd27213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd2721__7ee72721[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27213fooEv,_ZTv0_n12_N6dd27213fooEv),
+};
+static VTT_ENTRY vtt_ee72721[] = {
+ {&(_ZTV7ee72721[4]), 4,17},
+ {&(_ZTV7ee72721[11]), 11,17},
+ {&(_ZTV7ee72721[16]), 16,17},
+ {&(_tg__ZTV6dd2721__7ee72721[3]), 3,5},
+ {&(_tg__ZTV5cc7216dd2721__7ee72721[3]), 3,5},
+ {&(_tg__ZTV4bb21__5cc7216dd2721__7ee72721[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd2721__7ee72721[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee72721[];
+extern VTBL_ENTRY _ZTV7ee72721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72721[];
+static VTBL_ENTRY alt_thunk_names805[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27213fooEv,_ZTv0_n12_N6dd27213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd27213fooEv,_ZThn12_N6dd27213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn12_N5cc7213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee727213fooEv,_ZTv0_n12_N7ee727213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee727213fooEv,_ZThn20_N7ee727213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee727213barEv,_ZTv0_n20_N7ee727213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee727213barEv,_ZThn8_N7ee727213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee727213fooEv,_ZTv0_n16_N7ee727213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee727213fooEv,_ZThn8_N7ee727213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72721 = { "ee72721", // class name
+ bases_ee72721, 4,
+ &(vtc_ee72721[0]), // expected_vtbl_contents
+ &(vtt_ee72721[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee72721),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72721),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72721),7, //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 dd3721 : virtual cc721 {
+ int d;
+ virtual void foo(); // _ZN6dd37213fooEv
+ ~dd3721(); // tgen
+ dd3721(); // tgen
+};
+//SIG(-1 dd3721) C1{ VBC2{ VBC3{ BC4{ v1 Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void dd3721 ::foo(){vfunc_called(this, "_ZN6dd37213fooEv");}
+dd3721 ::~dd3721(){ note_dtor("dd3721", this);} // tgen
+dd3721 ::dd3721(){ note_ctor("dd3721", this);} // tgen
+
+static void Test_dd3721()
+{
+ extern Class_Descriptor cd_dd3721;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd3721, buf);
+ dd3721 *dp, &lv = *(dp=new (buf) dd3721());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd3721)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3721)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,16), "dd3721");
+ check_base_class_offset(lv, (bb21*)(cc721*), ABISELECT(32,16), "dd3721");
+ check_base_class_offset(lv, (cc721*), ABISELECT(16,8), "dd3721");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3721.d");
+ test_class_info(&lv, &cd_dd3721);
+ dp->~dd3721();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3721(Test_dd3721, "dd3721", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd3721C1Ev();
+extern void _ZN6dd3721D1Ev();
+Name_Map name_map_dd3721[] = {
+ NSPAIR(_ZN6dd3721C1Ev),
+ NSPAIR(_ZN6dd3721D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc721;
+extern VTBL_ENTRY _ZTI5cc721[];
+extern VTBL_ENTRY _ZTV5cc721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc721[];
+static Base_Class bases_dd3721[] = {
+ // 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_bb21, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc721, 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 _ZTI6dd3721[];
+extern void _ZN6dd37213fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd37213fooEv,_ZTv0_n16_N6dd37213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37213fooEv,_ZThn8_N6dd37213fooEv)() __attribute__((weak));
+extern void _ZN5cc7213barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd37213fooEv,_ZTv0_n12_N6dd37213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37213fooEv,_ZThn16_N6dd37213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd3721[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3721[0]),
+ (VTBL_ENTRY)&_ZN6dd37213fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37213fooEv,_ZTv0_n16_N6dd37213fooEv),
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37213fooEv,_ZTv0_n12_N6dd37213fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd3721[];
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc721__6dd3721[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc721__6dd3721[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+static VTT_ENTRY vtt_dd3721[] = {
+ {&(_ZTV6dd3721[4]), 4,16},
+ {&(_ZTV6dd3721[10]), 10,16},
+ {&(_ZTV6dd3721[15]), 15,16},
+ {&(_tg__ZTV5cc721__6dd3721[3]), 3,5},
+ {&(_tg__ZTV4bb21__5cc721__6dd3721[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd3721[];
+extern VTBL_ENTRY _ZTV6dd3721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3721[];
+static VTBL_ENTRY alt_thunk_names806[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37213fooEv,_ZTv0_n12_N6dd37213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37213fooEv,_ZThn16_N6dd37213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37213fooEv,_ZTv0_n16_N6dd37213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37213fooEv,_ZThn8_N6dd37213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3721 = { "dd3721", // class name
+ bases_dd3721, 3,
+ &(vtc_dd3721[0]), // expected_vtbl_contents
+ &(vtt_dd3721[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd3721),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3721),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3721),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names806,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03721 : dd3721 {
+ int e;
+ ~ee03721(); // tgen
+ ee03721(); // tgen
+};
+//SIG(1 ee03721) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee03721 ::~ee03721(){ note_dtor("ee03721", this);} // tgen
+ee03721 ::ee03721(){ note_ctor("ee03721", this);} // tgen
+
+static void Test_ee03721()
+{
+ extern Class_Descriptor cd_ee03721;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee03721, buf);
+ ee03721 *dp, &lv = *(dp=new (buf) ee03721());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee03721)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03721)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee03721");
+ check_base_class_offset(lv, (bb21*)(cc721*), ABISELECT(32,20), "ee03721");
+ check_base_class_offset(lv, (cc721*)(dd3721*), ABISELECT(16,12), "ee03721");
+ check_base_class_offset(lv, (dd3721*), 0, "ee03721");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03721.e");
+ test_class_info(&lv, &cd_ee03721);
+ dp->~ee03721();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03721(Test_ee03721, "ee03721", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee03721C1Ev();
+extern void _ZN7ee03721D1Ev();
+Name_Map name_map_ee03721[] = {
+ NSPAIR(_ZN7ee03721C1Ev),
+ NSPAIR(_ZN7ee03721D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc721;
+extern VTBL_ENTRY _ZTI5cc721[];
+extern VTBL_ENTRY _ZTV5cc721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc721[];
+extern Class_Descriptor cd_dd3721;
+extern VTBL_ENTRY _ZTI6dd3721[];
+extern VTBL_ENTRY _ZTV6dd3721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3721[];
+static Base_Class bases_ee03721[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc721, 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_dd3721, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03721[];
+extern void _ZN6dd37213fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd37213fooEv,_ZTv0_n16_N6dd37213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37213fooEv,_ZThn12_N6dd37213fooEv)() __attribute__((weak));
+extern void _ZN5cc7213barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd37213fooEv,_ZTv0_n12_N6dd37213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37213fooEv,_ZThn20_N6dd37213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee03721[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03721[0]),
+ (VTBL_ENTRY)&_ZN6dd37213fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37213fooEv,_ZTv0_n16_N6dd37213fooEv),
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee03721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37213fooEv,_ZTv0_n12_N6dd37213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee03721[];
+extern void _ZN6dd37213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3721__7ee03721[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3721[0]),
+ (VTBL_ENTRY)&_ZN6dd37213fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd37213fooEv,_ZTv0_n16_N6dd37213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37213fooEv,_ZThn12_N6dd37213fooEv)() __attribute__((weak));
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc721__6dd3721__7ee03721[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37213fooEv,_ZTv0_n16_N6dd37213fooEv),
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd37213fooEv,_ZTv0_n12_N6dd37213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37213fooEv,_ZThn20_N6dd37213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd3721__7ee03721[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37213fooEv,_ZTv0_n12_N6dd37213fooEv),
+};
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc721__7ee03721[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc721__7ee03721[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+static VTT_ENTRY vtt_ee03721[] = {
+ {&(_ZTV7ee03721[4]), 4,16},
+ {&(_tg__ZTV6dd3721__7ee03721[4]), 4,5},
+ {&(_tg__ZTV5cc721__6dd3721__7ee03721[5]), 5,7},
+ {&(_tg__ZTV4bb21__6dd3721__7ee03721[3]), 3,4},
+ {&(_ZTV7ee03721[10]), 10,16},
+ {&(_ZTV7ee03721[15]), 15,16},
+ {&(_tg__ZTV5cc721__7ee03721[3]), 3,5},
+ {&(_tg__ZTV4bb21__5cc721__7ee03721[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee03721[];
+extern VTBL_ENTRY _ZTV7ee03721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03721[];
+static VTBL_ENTRY alt_thunk_names807[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37213fooEv,_ZTv0_n12_N6dd37213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37213fooEv,_ZThn20_N6dd37213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37213fooEv,_ZThn20_N6dd37213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37213fooEv,_ZTv0_n16_N6dd37213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37213fooEv,_ZThn12_N6dd37213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37213fooEv,_ZThn12_N6dd37213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03721 = { "ee03721", // class name
+ bases_ee03721, 4,
+ &(vtc_ee03721[0]), // expected_vtbl_contents
+ &(vtt_ee03721[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee03721),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03721),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03721),8, //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 ee13721 : virtual dd3721 {
+ int e;
+ ~ee13721(); // tgen
+ ee13721(); // tgen
+};
+//SIG(1 ee13721) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee13721 ::~ee13721(){ note_dtor("ee13721", this);} // tgen
+ee13721 ::ee13721(){ note_ctor("ee13721", this);} // tgen
+
+static void Test_ee13721()
+{
+ extern Class_Descriptor cd_ee13721;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee13721, buf);
+ ee13721 *dp, &lv = *(dp=new (buf) ee13721());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee13721)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13721)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(48,24), "ee13721");
+ check_base_class_offset(lv, (bb21*)(cc721*), ABISELECT(48,24), "ee13721");
+ check_base_class_offset(lv, (cc721*)(dd3721*), ABISELECT(32,16), "ee13721");
+ check_base_class_offset(lv, (dd3721*), ABISELECT(16,8), "ee13721");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13721.e");
+ test_class_info(&lv, &cd_ee13721);
+ dp->~ee13721();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13721(Test_ee13721, "ee13721", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee13721C1Ev();
+extern void _ZN7ee13721D1Ev();
+Name_Map name_map_ee13721[] = {
+ NSPAIR(_ZN7ee13721C1Ev),
+ NSPAIR(_ZN7ee13721D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc721;
+extern VTBL_ENTRY _ZTI5cc721[];
+extern VTBL_ENTRY _ZTV5cc721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc721[];
+extern Class_Descriptor cd_dd3721;
+extern VTBL_ENTRY _ZTI6dd3721[];
+extern VTBL_ENTRY _ZTV6dd3721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3721[];
+static Base_Class bases_ee13721[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb21, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc721, 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_dd3721, 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 _ZTI7ee13721[];
+extern void _ZN6dd37213fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd37213fooEv,_ZTv0_n16_N6dd37213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37213fooEv,_ZThn8_N6dd37213fooEv)() __attribute__((weak));
+extern void _ZN5cc7213barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd37213fooEv,_ZTv0_n12_N6dd37213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37213fooEv,_ZThn16_N6dd37213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee13721[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13721[0]),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13721[0]),
+ (VTBL_ENTRY)&_ZN6dd37213fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37213fooEv,_ZTv0_n16_N6dd37213fooEv),
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee13721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37213fooEv,_ZTv0_n12_N6dd37213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee13721[];
+extern void _ZN6dd37213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3721__7ee13721[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3721[0]),
+ (VTBL_ENTRY)&_ZN6dd37213fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd37213fooEv,_ZTv0_n16_N6dd37213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37213fooEv,_ZThn8_N6dd37213fooEv)() __attribute__((weak));
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc721__6dd3721__7ee13721[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37213fooEv,_ZTv0_n16_N6dd37213fooEv),
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd37213fooEv,_ZTv0_n12_N6dd37213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37213fooEv,_ZThn16_N6dd37213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd3721__7ee13721[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37213fooEv,_ZTv0_n12_N6dd37213fooEv),
+};
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc721__7ee13721[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc721__7ee13721[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+static VTT_ENTRY vtt_ee13721[] = {
+ {&(_ZTV7ee13721[5]), 5,22},
+ {&(_ZTV7ee13721[10]), 10,22},
+ {&(_ZTV7ee13721[16]), 16,22},
+ {&(_ZTV7ee13721[21]), 21,22},
+ {&(_tg__ZTV6dd3721__7ee13721[4]), 4,5},
+ {&(_tg__ZTV5cc721__6dd3721__7ee13721[5]), 5,7},
+ {&(_tg__ZTV4bb21__6dd3721__7ee13721[3]), 3,4},
+ {&(_tg__ZTV5cc721__7ee13721[3]), 3,5},
+ {&(_tg__ZTV4bb21__5cc721__7ee13721[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee13721[];
+extern VTBL_ENTRY _ZTV7ee13721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13721[];
+static VTBL_ENTRY alt_thunk_names808[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37213fooEv,_ZTv0_n12_N6dd37213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37213fooEv,_ZThn16_N6dd37213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37213fooEv,_ZThn16_N6dd37213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37213fooEv,_ZTv0_n16_N6dd37213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37213fooEv,_ZThn8_N6dd37213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37213fooEv,_ZThn8_N6dd37213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13721 = { "ee13721", // class name
+ bases_ee13721, 4,
+ &(vtc_ee13721[0]), // expected_vtbl_contents
+ &(vtt_ee13721[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee13721),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13721),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13721),9, //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 ee23721 : dd3721 {
+ int e;
+ virtual void foo(); // _ZN7ee237213fooEv
+ ~ee23721(); // tgen
+ ee23721(); // tgen
+};
+//SIG(1 ee23721) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee23721 ::foo(){vfunc_called(this, "_ZN7ee237213fooEv");}
+ee23721 ::~ee23721(){ note_dtor("ee23721", this);} // tgen
+ee23721 ::ee23721(){ note_ctor("ee23721", this);} // tgen
+
+static void Test_ee23721()
+{
+ extern Class_Descriptor cd_ee23721;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee23721, buf);
+ ee23721 *dp, &lv = *(dp=new (buf) ee23721());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee23721)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23721)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee23721");
+ check_base_class_offset(lv, (bb21*)(cc721*), ABISELECT(32,20), "ee23721");
+ check_base_class_offset(lv, (cc721*)(dd3721*), ABISELECT(16,12), "ee23721");
+ check_base_class_offset(lv, (dd3721*), 0, "ee23721");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23721.e");
+ test_class_info(&lv, &cd_ee23721);
+ dp->~ee23721();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23721(Test_ee23721, "ee23721", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee23721C1Ev();
+extern void _ZN7ee23721D1Ev();
+Name_Map name_map_ee23721[] = {
+ NSPAIR(_ZN7ee23721C1Ev),
+ NSPAIR(_ZN7ee23721D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc721;
+extern VTBL_ENTRY _ZTI5cc721[];
+extern VTBL_ENTRY _ZTV5cc721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc721[];
+extern Class_Descriptor cd_dd3721;
+extern VTBL_ENTRY _ZTI6dd3721[];
+extern VTBL_ENTRY _ZTV6dd3721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3721[];
+static Base_Class bases_ee23721[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc721, 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_dd3721, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23721[];
+extern void _ZN7ee237213fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee237213fooEv,_ZTv0_n16_N7ee237213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee237213fooEv,_ZThn12_N7ee237213fooEv)() __attribute__((weak));
+extern void _ZN5cc7213barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee237213fooEv,_ZTv0_n12_N7ee237213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee237213fooEv,_ZThn20_N7ee237213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee23721[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23721[0]),
+ (VTBL_ENTRY)&_ZN7ee237213fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee237213fooEv,_ZTv0_n16_N7ee237213fooEv),
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee23721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee237213fooEv,_ZTv0_n12_N7ee237213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee23721[];
+extern void _ZN6dd37213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3721__7ee23721[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3721[0]),
+ (VTBL_ENTRY)&_ZN6dd37213fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd37213fooEv,_ZTv0_n16_N6dd37213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37213fooEv,_ZThn12_N6dd37213fooEv)() __attribute__((weak));
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc721__6dd3721__7ee23721[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37213fooEv,_ZTv0_n16_N6dd37213fooEv),
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd37213fooEv,_ZTv0_n12_N6dd37213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37213fooEv,_ZThn20_N6dd37213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd3721__7ee23721[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37213fooEv,_ZTv0_n12_N6dd37213fooEv),
+};
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc721__7ee23721[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc721__7ee23721[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+static VTT_ENTRY vtt_ee23721[] = {
+ {&(_ZTV7ee23721[4]), 4,16},
+ {&(_tg__ZTV6dd3721__7ee23721[4]), 4,5},
+ {&(_tg__ZTV5cc721__6dd3721__7ee23721[5]), 5,7},
+ {&(_tg__ZTV4bb21__6dd3721__7ee23721[3]), 3,4},
+ {&(_ZTV7ee23721[10]), 10,16},
+ {&(_ZTV7ee23721[15]), 15,16},
+ {&(_tg__ZTV5cc721__7ee23721[3]), 3,5},
+ {&(_tg__ZTV4bb21__5cc721__7ee23721[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee23721[];
+extern VTBL_ENTRY _ZTV7ee23721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23721[];
+static VTBL_ENTRY alt_thunk_names809[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37213fooEv,_ZTv0_n12_N6dd37213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37213fooEv,_ZThn20_N6dd37213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37213fooEv,_ZTv0_n16_N6dd37213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37213fooEv,_ZThn12_N6dd37213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee237213fooEv,_ZTv0_n12_N7ee237213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee237213fooEv,_ZThn20_N7ee237213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee237213fooEv,_ZTv0_n16_N7ee237213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee237213fooEv,_ZThn12_N7ee237213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23721 = { "ee23721", // class name
+ bases_ee23721, 4,
+ &(vtc_ee23721[0]), // expected_vtbl_contents
+ &(vtt_ee23721[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee23721),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23721),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23721),8, //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 ee33721 : virtual dd3721 {
+ int e;
+ virtual void foo(); // _ZN7ee337213fooEv
+ ~ee33721(); // tgen
+ ee33721(); // tgen
+};
+//SIG(1 ee33721) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee33721 ::foo(){vfunc_called(this, "_ZN7ee337213fooEv");}
+ee33721 ::~ee33721(){ note_dtor("ee33721", this);} // tgen
+ee33721 ::ee33721(){ note_ctor("ee33721", this);} // tgen
+
+static void Test_ee33721()
+{
+ extern Class_Descriptor cd_ee33721;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee33721, buf);
+ ee33721 *dp, &lv = *(dp=new (buf) ee33721());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee33721)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33721)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(48,24), "ee33721");
+ check_base_class_offset(lv, (bb21*)(cc721*), ABISELECT(48,24), "ee33721");
+ check_base_class_offset(lv, (cc721*)(dd3721*), ABISELECT(32,16), "ee33721");
+ check_base_class_offset(lv, (dd3721*), ABISELECT(16,8), "ee33721");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33721.e");
+ test_class_info(&lv, &cd_ee33721);
+ dp->~ee33721();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33721(Test_ee33721, "ee33721", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee33721C1Ev();
+extern void _ZN7ee33721D1Ev();
+Name_Map name_map_ee33721[] = {
+ NSPAIR(_ZN7ee33721C1Ev),
+ NSPAIR(_ZN7ee33721D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc721;
+extern VTBL_ENTRY _ZTI5cc721[];
+extern VTBL_ENTRY _ZTV5cc721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc721[];
+extern Class_Descriptor cd_dd3721;
+extern VTBL_ENTRY _ZTI6dd3721[];
+extern VTBL_ENTRY _ZTV6dd3721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3721[];
+static Base_Class bases_ee33721[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb21, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc721, 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_dd3721, ABISELECT(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 _ZTI7ee33721[];
+extern void _ZN7ee337213fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee337213fooEv,_ZTv0_n20_N7ee337213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee337213fooEv,_ZThn8_N7ee337213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee337213fooEv,_ZTv0_n16_N7ee337213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee337213fooEv,_ZThn16_N7ee337213fooEv)() __attribute__((weak));
+extern void _ZN5cc7213barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee337213fooEv,_ZTv0_n12_N7ee337213fooEv)();
+extern void ABISELECT(_ZThn48_N7ee337213fooEv,_ZThn24_N7ee337213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee33721[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33721[0]),
+ (VTBL_ENTRY)&_ZN7ee337213fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee337213fooEv,_ZTv0_n20_N7ee337213fooEv),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee337213fooEv,_ZTv0_n16_N7ee337213fooEv),
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee33721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee337213fooEv,_ZTv0_n12_N7ee337213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee33721[];
+extern void _ZN6dd37213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3721__7ee33721[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3721[0]),
+ (VTBL_ENTRY)&_ZN6dd37213fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd37213fooEv,_ZTv0_n16_N6dd37213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37213fooEv,_ZThn8_N6dd37213fooEv)() __attribute__((weak));
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc721__6dd3721__7ee33721[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37213fooEv,_ZTv0_n16_N6dd37213fooEv),
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd37213fooEv,_ZTv0_n12_N6dd37213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37213fooEv,_ZThn16_N6dd37213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd3721__7ee33721[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37213fooEv,_ZTv0_n12_N6dd37213fooEv),
+};
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc721__7ee33721[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc721__7ee33721[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+static VTT_ENTRY vtt_ee33721[] = {
+ {&(_ZTV7ee33721[5]), 5,23},
+ {&(_ZTV7ee33721[11]), 11,23},
+ {&(_ZTV7ee33721[17]), 17,23},
+ {&(_ZTV7ee33721[22]), 22,23},
+ {&(_tg__ZTV6dd3721__7ee33721[4]), 4,5},
+ {&(_tg__ZTV5cc721__6dd3721__7ee33721[5]), 5,7},
+ {&(_tg__ZTV4bb21__6dd3721__7ee33721[3]), 3,4},
+ {&(_tg__ZTV5cc721__7ee33721[3]), 3,5},
+ {&(_tg__ZTV4bb21__5cc721__7ee33721[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee33721[];
+extern VTBL_ENTRY _ZTV7ee33721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33721[];
+static VTBL_ENTRY alt_thunk_names810[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37213fooEv,_ZTv0_n12_N6dd37213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37213fooEv,_ZThn16_N6dd37213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37213fooEv,_ZTv0_n16_N6dd37213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37213fooEv,_ZThn8_N6dd37213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee337213fooEv,_ZTv0_n12_N7ee337213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee337213fooEv,_ZThn24_N7ee337213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee337213fooEv,_ZTv0_n16_N7ee337213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee337213fooEv,_ZThn16_N7ee337213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee337213fooEv,_ZTv0_n20_N7ee337213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee337213fooEv,_ZThn8_N7ee337213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33721 = { "ee33721", // class name
+ bases_ee33721, 4,
+ &(vtc_ee33721[0]), // expected_vtbl_contents
+ &(vtt_ee33721[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee33721),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33721),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33721),9, //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 ee43721 : dd3721 {
+ int e;
+ virtual void bar(); // _ZN7ee437213barEv
+ ~ee43721(); // tgen
+ ee43721(); // tgen
+};
+//SIG(1 ee43721) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 Fi} v2 Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee43721 ::bar(){vfunc_called(this, "_ZN7ee437213barEv");}
+ee43721 ::~ee43721(){ note_dtor("ee43721", this);} // tgen
+ee43721 ::ee43721(){ note_ctor("ee43721", this);} // tgen
+
+static void Test_ee43721()
+{
+ extern Class_Descriptor cd_ee43721;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee43721, buf);
+ ee43721 *dp, &lv = *(dp=new (buf) ee43721());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee43721)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43721)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee43721");
+ check_base_class_offset(lv, (bb21*)(cc721*), ABISELECT(32,20), "ee43721");
+ check_base_class_offset(lv, (cc721*)(dd3721*), ABISELECT(16,12), "ee43721");
+ check_base_class_offset(lv, (dd3721*), 0, "ee43721");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43721.e");
+ test_class_info(&lv, &cd_ee43721);
+ dp->~ee43721();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43721(Test_ee43721, "ee43721", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee43721C1Ev();
+extern void _ZN7ee43721D1Ev();
+Name_Map name_map_ee43721[] = {
+ NSPAIR(_ZN7ee43721C1Ev),
+ NSPAIR(_ZN7ee43721D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc721;
+extern VTBL_ENTRY _ZTI5cc721[];
+extern VTBL_ENTRY _ZTV5cc721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc721[];
+extern Class_Descriptor cd_dd3721;
+extern VTBL_ENTRY _ZTI6dd3721[];
+extern VTBL_ENTRY _ZTV6dd3721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3721[];
+static Base_Class bases_ee43721[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc721, 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_dd3721, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43721[];
+extern void _ZN6dd37213fooEv();
+extern void _ZN7ee437213barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd37213fooEv,_ZTv0_n16_N6dd37213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37213fooEv,_ZThn12_N6dd37213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee437213barEv,_ZTv0_n20_N7ee437213barEv)();
+extern void ABISELECT(_ZThn16_N7ee437213barEv,_ZThn12_N7ee437213barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd37213fooEv,_ZTv0_n12_N6dd37213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37213fooEv,_ZThn20_N6dd37213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43721[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43721[0]),
+ (VTBL_ENTRY)&_ZN6dd37213fooEv,
+ (VTBL_ENTRY)&_ZN7ee437213barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37213fooEv,_ZTv0_n16_N6dd37213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee437213barEv,_ZTv0_n20_N7ee437213barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee43721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37213fooEv,_ZTv0_n12_N6dd37213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee43721[];
+extern void _ZN6dd37213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3721__7ee43721[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3721[0]),
+ (VTBL_ENTRY)&_ZN6dd37213fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd37213fooEv,_ZTv0_n16_N6dd37213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37213fooEv,_ZThn12_N6dd37213fooEv)() __attribute__((weak));
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc721__6dd3721__7ee43721[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37213fooEv,_ZTv0_n16_N6dd37213fooEv),
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd37213fooEv,_ZTv0_n12_N6dd37213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37213fooEv,_ZThn20_N6dd37213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd3721__7ee43721[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37213fooEv,_ZTv0_n12_N6dd37213fooEv),
+};
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc721__7ee43721[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc721__7ee43721[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+static VTT_ENTRY vtt_ee43721[] = {
+ {&(_ZTV7ee43721[4]), 4,17},
+ {&(_tg__ZTV6dd3721__7ee43721[4]), 4,5},
+ {&(_tg__ZTV5cc721__6dd3721__7ee43721[5]), 5,7},
+ {&(_tg__ZTV4bb21__6dd3721__7ee43721[3]), 3,4},
+ {&(_ZTV7ee43721[11]), 11,17},
+ {&(_ZTV7ee43721[16]), 16,17},
+ {&(_tg__ZTV5cc721__7ee43721[3]), 3,5},
+ {&(_tg__ZTV4bb21__5cc721__7ee43721[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee43721[];
+extern VTBL_ENTRY _ZTV7ee43721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43721[];
+static VTBL_ENTRY alt_thunk_names811[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37213fooEv,_ZTv0_n12_N6dd37213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37213fooEv,_ZThn20_N6dd37213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37213fooEv,_ZThn20_N6dd37213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee437213barEv,_ZTv0_n20_N7ee437213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee437213barEv,_ZThn12_N7ee437213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37213fooEv,_ZTv0_n16_N6dd37213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37213fooEv,_ZThn12_N6dd37213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37213fooEv,_ZThn12_N6dd37213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43721 = { "ee43721", // class name
+ bases_ee43721, 4,
+ &(vtc_ee43721[0]), // expected_vtbl_contents
+ &(vtt_ee43721[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee43721),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43721),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43721),8, //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 ee53721 : virtual dd3721 {
+ int e;
+ virtual void bar(); // _ZN7ee537213barEv
+ ~ee53721(); // tgen
+ ee53721(); // tgen
+};
+//SIG(1 ee53721) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 Fi} v2 Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee53721 ::bar(){vfunc_called(this, "_ZN7ee537213barEv");}
+ee53721 ::~ee53721(){ note_dtor("ee53721", this);} // tgen
+ee53721 ::ee53721(){ note_ctor("ee53721", this);} // tgen
+
+static void Test_ee53721()
+{
+ extern Class_Descriptor cd_ee53721;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee53721, buf);
+ ee53721 *dp, &lv = *(dp=new (buf) ee53721());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee53721)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53721)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(48,24), "ee53721");
+ check_base_class_offset(lv, (bb21*)(cc721*), ABISELECT(48,24), "ee53721");
+ check_base_class_offset(lv, (cc721*)(dd3721*), ABISELECT(32,16), "ee53721");
+ check_base_class_offset(lv, (dd3721*), ABISELECT(16,8), "ee53721");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53721.e");
+ test_class_info(&lv, &cd_ee53721);
+ dp->~ee53721();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53721(Test_ee53721, "ee53721", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee53721C1Ev();
+extern void _ZN7ee53721D1Ev();
+Name_Map name_map_ee53721[] = {
+ NSPAIR(_ZN7ee53721C1Ev),
+ NSPAIR(_ZN7ee53721D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc721;
+extern VTBL_ENTRY _ZTI5cc721[];
+extern VTBL_ENTRY _ZTV5cc721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc721[];
+extern Class_Descriptor cd_dd3721;
+extern VTBL_ENTRY _ZTI6dd3721[];
+extern VTBL_ENTRY _ZTV6dd3721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3721[];
+static Base_Class bases_ee53721[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb21, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc721, 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_dd3721, ABISELECT(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 _ZTI7ee53721[];
+extern void _ZN7ee537213barEv();
+extern void _ZN6dd37213fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd37213fooEv,_ZTv0_n16_N6dd37213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37213fooEv,_ZThn8_N6dd37213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee537213barEv,_ZTv0_n20_N7ee537213barEv)();
+extern void ABISELECT(_ZThn32_N7ee537213barEv,_ZThn16_N7ee537213barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd37213fooEv,_ZTv0_n12_N6dd37213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37213fooEv,_ZThn16_N6dd37213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53721[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53721[0]),
+ (VTBL_ENTRY)&_ZN7ee537213barEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53721[0]),
+ (VTBL_ENTRY)&_ZN6dd37213fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37213fooEv,_ZTv0_n16_N6dd37213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee537213barEv,_ZTv0_n20_N7ee537213barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee53721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37213fooEv,_ZTv0_n12_N6dd37213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee53721[];
+extern void _ZN6dd37213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3721__7ee53721[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3721[0]),
+ (VTBL_ENTRY)&_ZN6dd37213fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd37213fooEv,_ZTv0_n16_N6dd37213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37213fooEv,_ZThn8_N6dd37213fooEv)() __attribute__((weak));
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc721__6dd3721__7ee53721[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37213fooEv,_ZTv0_n16_N6dd37213fooEv),
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd37213fooEv,_ZTv0_n12_N6dd37213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37213fooEv,_ZThn16_N6dd37213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd3721__7ee53721[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37213fooEv,_ZTv0_n12_N6dd37213fooEv),
+};
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc721__7ee53721[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc721__7ee53721[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+static VTT_ENTRY vtt_ee53721[] = {
+ {&(_ZTV7ee53721[5]), 5,23},
+ {&(_ZTV7ee53721[11]), 11,23},
+ {&(_ZTV7ee53721[17]), 17,23},
+ {&(_ZTV7ee53721[22]), 22,23},
+ {&(_tg__ZTV6dd3721__7ee53721[4]), 4,5},
+ {&(_tg__ZTV5cc721__6dd3721__7ee53721[5]), 5,7},
+ {&(_tg__ZTV4bb21__6dd3721__7ee53721[3]), 3,4},
+ {&(_tg__ZTV5cc721__7ee53721[3]), 3,5},
+ {&(_tg__ZTV4bb21__5cc721__7ee53721[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee53721[];
+extern VTBL_ENTRY _ZTV7ee53721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53721[];
+static VTBL_ENTRY alt_thunk_names812[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37213fooEv,_ZTv0_n12_N6dd37213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37213fooEv,_ZThn16_N6dd37213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37213fooEv,_ZThn16_N6dd37213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee537213barEv,_ZTv0_n20_N7ee537213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee537213barEv,_ZThn16_N7ee537213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37213fooEv,_ZTv0_n16_N6dd37213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37213fooEv,_ZThn8_N6dd37213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37213fooEv,_ZThn8_N6dd37213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53721 = { "ee53721", // class name
+ bases_ee53721, 4,
+ &(vtc_ee53721[0]), // expected_vtbl_contents
+ &(vtt_ee53721[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee53721),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53721),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53721),9, //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 ee63721 : dd3721 {
+ int e;
+ virtual void foo(); // _ZN7ee637213fooEv
+ virtual void bar(); // _ZN7ee637213barEv
+ ~ee63721(); // tgen
+ ee63721(); // tgen
+};
+//SIG(1 ee63721) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63721 ::foo(){vfunc_called(this, "_ZN7ee637213fooEv");}
+void ee63721 ::bar(){vfunc_called(this, "_ZN7ee637213barEv");}
+ee63721 ::~ee63721(){ note_dtor("ee63721", this);} // tgen
+ee63721 ::ee63721(){ note_ctor("ee63721", this);} // tgen
+
+static void Test_ee63721()
+{
+ extern Class_Descriptor cd_ee63721;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee63721, buf);
+ ee63721 *dp, &lv = *(dp=new (buf) ee63721());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee63721)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63721)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee63721");
+ check_base_class_offset(lv, (bb21*)(cc721*), ABISELECT(32,20), "ee63721");
+ check_base_class_offset(lv, (cc721*)(dd3721*), ABISELECT(16,12), "ee63721");
+ check_base_class_offset(lv, (dd3721*), 0, "ee63721");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63721.e");
+ test_class_info(&lv, &cd_ee63721);
+ dp->~ee63721();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63721(Test_ee63721, "ee63721", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee63721C1Ev();
+extern void _ZN7ee63721D1Ev();
+Name_Map name_map_ee63721[] = {
+ NSPAIR(_ZN7ee63721C1Ev),
+ NSPAIR(_ZN7ee63721D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc721;
+extern VTBL_ENTRY _ZTI5cc721[];
+extern VTBL_ENTRY _ZTV5cc721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc721[];
+extern Class_Descriptor cd_dd3721;
+extern VTBL_ENTRY _ZTI6dd3721[];
+extern VTBL_ENTRY _ZTV6dd3721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3721[];
+static Base_Class bases_ee63721[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc721, 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_dd3721, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63721[];
+extern void _ZN7ee637213fooEv();
+extern void _ZN7ee637213barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee637213fooEv,_ZTv0_n16_N7ee637213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee637213fooEv,_ZThn12_N7ee637213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee637213barEv,_ZTv0_n20_N7ee637213barEv)();
+extern void ABISELECT(_ZThn16_N7ee637213barEv,_ZThn12_N7ee637213barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee637213fooEv,_ZTv0_n12_N7ee637213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee637213fooEv,_ZThn20_N7ee637213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63721[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63721[0]),
+ (VTBL_ENTRY)&_ZN7ee637213fooEv,
+ (VTBL_ENTRY)&_ZN7ee637213barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee637213fooEv,_ZTv0_n16_N7ee637213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee637213barEv,_ZTv0_n20_N7ee637213barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee63721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee637213fooEv,_ZTv0_n12_N7ee637213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee63721[];
+extern void _ZN6dd37213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3721__7ee63721[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3721[0]),
+ (VTBL_ENTRY)&_ZN6dd37213fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd37213fooEv,_ZTv0_n16_N6dd37213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37213fooEv,_ZThn12_N6dd37213fooEv)() __attribute__((weak));
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc721__6dd3721__7ee63721[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37213fooEv,_ZTv0_n16_N6dd37213fooEv),
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd37213fooEv,_ZTv0_n12_N6dd37213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37213fooEv,_ZThn20_N6dd37213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd3721__7ee63721[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37213fooEv,_ZTv0_n12_N6dd37213fooEv),
+};
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc721__7ee63721[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc721__7ee63721[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+static VTT_ENTRY vtt_ee63721[] = {
+ {&(_ZTV7ee63721[4]), 4,17},
+ {&(_tg__ZTV6dd3721__7ee63721[4]), 4,5},
+ {&(_tg__ZTV5cc721__6dd3721__7ee63721[5]), 5,7},
+ {&(_tg__ZTV4bb21__6dd3721__7ee63721[3]), 3,4},
+ {&(_ZTV7ee63721[11]), 11,17},
+ {&(_ZTV7ee63721[16]), 16,17},
+ {&(_tg__ZTV5cc721__7ee63721[3]), 3,5},
+ {&(_tg__ZTV4bb21__5cc721__7ee63721[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee63721[];
+extern VTBL_ENTRY _ZTV7ee63721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63721[];
+static VTBL_ENTRY alt_thunk_names813[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37213fooEv,_ZTv0_n12_N6dd37213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37213fooEv,_ZThn20_N6dd37213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37213fooEv,_ZTv0_n16_N6dd37213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37213fooEv,_ZThn12_N6dd37213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee637213fooEv,_ZTv0_n12_N7ee637213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee637213fooEv,_ZThn20_N7ee637213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee637213barEv,_ZTv0_n20_N7ee637213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee637213barEv,_ZThn12_N7ee637213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee637213fooEv,_ZTv0_n16_N7ee637213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee637213fooEv,_ZThn12_N7ee637213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63721 = { "ee63721", // class name
+ bases_ee63721, 4,
+ &(vtc_ee63721[0]), // expected_vtbl_contents
+ &(vtt_ee63721[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee63721),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63721),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63721),8, //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 ee73721 : virtual dd3721 {
+ int e;
+ virtual void foo(); // _ZN7ee737213fooEv
+ virtual void bar(); // _ZN7ee737213barEv
+ ~ee73721(); // tgen
+ ee73721(); // tgen
+};
+//SIG(1 ee73721) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73721 ::foo(){vfunc_called(this, "_ZN7ee737213fooEv");}
+void ee73721 ::bar(){vfunc_called(this, "_ZN7ee737213barEv");}
+ee73721 ::~ee73721(){ note_dtor("ee73721", this);} // tgen
+ee73721 ::ee73721(){ note_ctor("ee73721", this);} // tgen
+
+static void Test_ee73721()
+{
+ extern Class_Descriptor cd_ee73721;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee73721, buf);
+ ee73721 *dp, &lv = *(dp=new (buf) ee73721());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee73721)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73721)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(48,24), "ee73721");
+ check_base_class_offset(lv, (bb21*)(cc721*), ABISELECT(48,24), "ee73721");
+ check_base_class_offset(lv, (cc721*)(dd3721*), ABISELECT(32,16), "ee73721");
+ check_base_class_offset(lv, (dd3721*), ABISELECT(16,8), "ee73721");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73721.e");
+ test_class_info(&lv, &cd_ee73721);
+ dp->~ee73721();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73721(Test_ee73721, "ee73721", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee73721C1Ev();
+extern void _ZN7ee73721D1Ev();
+Name_Map name_map_ee73721[] = {
+ NSPAIR(_ZN7ee73721C1Ev),
+ NSPAIR(_ZN7ee73721D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc721;
+extern VTBL_ENTRY _ZTI5cc721[];
+extern VTBL_ENTRY _ZTV5cc721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc721[];
+extern Class_Descriptor cd_dd3721;
+extern VTBL_ENTRY _ZTI6dd3721[];
+extern VTBL_ENTRY _ZTV6dd3721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3721[];
+static Base_Class bases_ee73721[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb21, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc721, 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_dd3721, 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 _ZTI7ee73721[];
+extern void _ZN7ee737213fooEv();
+extern void _ZN7ee737213barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee737213fooEv,_ZTv0_n20_N7ee737213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee737213fooEv,_ZThn8_N7ee737213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee737213fooEv,_ZTv0_n16_N7ee737213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee737213fooEv,_ZThn16_N7ee737213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee737213barEv,_ZTv0_n20_N7ee737213barEv)();
+extern void ABISELECT(_ZThn32_N7ee737213barEv,_ZThn16_N7ee737213barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee737213fooEv,_ZTv0_n12_N7ee737213fooEv)();
+extern void ABISELECT(_ZThn48_N7ee737213fooEv,_ZThn24_N7ee737213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73721[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73721[0]),
+ (VTBL_ENTRY)&_ZN7ee737213fooEv,
+ (VTBL_ENTRY)&_ZN7ee737213barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee737213fooEv,_ZTv0_n20_N7ee737213fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee737213fooEv,_ZTv0_n16_N7ee737213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee737213barEv,_ZTv0_n20_N7ee737213barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee73721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee737213fooEv,_ZTv0_n12_N7ee737213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee73721[];
+extern void _ZN6dd37213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3721__7ee73721[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3721[0]),
+ (VTBL_ENTRY)&_ZN6dd37213fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd37213fooEv,_ZTv0_n16_N6dd37213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37213fooEv,_ZThn8_N6dd37213fooEv)() __attribute__((weak));
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc721__6dd3721__7ee73721[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37213fooEv,_ZTv0_n16_N6dd37213fooEv),
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd37213fooEv,_ZTv0_n12_N6dd37213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37213fooEv,_ZThn16_N6dd37213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd3721__7ee73721[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37213fooEv,_ZTv0_n12_N6dd37213fooEv),
+};
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc721__7ee73721[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc721__7ee73721[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+static VTT_ENTRY vtt_ee73721[] = {
+ {&(_ZTV7ee73721[5]), 5,24},
+ {&(_ZTV7ee73721[12]), 12,24},
+ {&(_ZTV7ee73721[18]), 18,24},
+ {&(_ZTV7ee73721[23]), 23,24},
+ {&(_tg__ZTV6dd3721__7ee73721[4]), 4,5},
+ {&(_tg__ZTV5cc721__6dd3721__7ee73721[5]), 5,7},
+ {&(_tg__ZTV4bb21__6dd3721__7ee73721[3]), 3,4},
+ {&(_tg__ZTV5cc721__7ee73721[3]), 3,5},
+ {&(_tg__ZTV4bb21__5cc721__7ee73721[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee73721[];
+extern VTBL_ENTRY _ZTV7ee73721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73721[];
+static VTBL_ENTRY alt_thunk_names814[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37213fooEv,_ZTv0_n12_N6dd37213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37213fooEv,_ZThn16_N6dd37213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37213fooEv,_ZTv0_n16_N6dd37213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37213fooEv,_ZThn8_N6dd37213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee737213fooEv,_ZTv0_n12_N7ee737213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee737213fooEv,_ZThn24_N7ee737213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee737213barEv,_ZTv0_n20_N7ee737213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee737213barEv,_ZThn16_N7ee737213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee737213fooEv,_ZTv0_n16_N7ee737213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee737213fooEv,_ZThn16_N7ee737213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee737213fooEv,_ZTv0_n20_N7ee737213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee737213fooEv,_ZThn8_N7ee737213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73721 = { "ee73721", // class name
+ bases_ee73721, 4,
+ &(vtc_ee73721[0]), // expected_vtbl_contents
+ &(vtt_ee73721[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee73721),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73721),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73721),9, //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 dd4721 : cc721 {
+ int d;
+ virtual void bar(); // _ZN6dd47213barEv
+ ~dd4721(); // tgen
+ dd4721(); // tgen
+};
+//SIG(-1 dd4721) C1{ BC2{ VBC3{ BC4{ v2 Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void dd4721 ::bar(){vfunc_called(this, "_ZN6dd47213barEv");}
+dd4721 ::~dd4721(){ note_dtor("dd4721", this);} // tgen
+dd4721 ::dd4721(){ note_ctor("dd4721", this);} // tgen
+
+static void Test_dd4721()
+{
+ extern Class_Descriptor cd_dd4721;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd4721, buf);
+ dd4721 *dp, &lv = *(dp=new (buf) dd4721());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd4721)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4721)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(16,12), "dd4721");
+ check_base_class_offset(lv, (bb21*)(cc721*), ABISELECT(16,12), "dd4721");
+ check_base_class_offset(lv, (cc721*), 0, "dd4721");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd4721.d");
+ test_class_info(&lv, &cd_dd4721);
+ dp->~dd4721();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4721(Test_dd4721, "dd4721", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd4721C1Ev();
+extern void _ZN6dd4721D1Ev();
+Name_Map name_map_dd4721[] = {
+ NSPAIR(_ZN6dd4721C1Ev),
+ NSPAIR(_ZN6dd4721D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc721;
+extern VTBL_ENTRY _ZTI5cc721[];
+extern VTBL_ENTRY _ZTV5cc721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc721[];
+static Base_Class bases_dd4721[] = {
+ // 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_bb21, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc721, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd4721[];
+extern void _ZN5cc7213fooEv();
+extern void _ZN6dd47213barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn12_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd4721[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN6dd47213barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd4721[];
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc721__6dd4721[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn12_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc721__6dd4721[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+static VTT_ENTRY vtt_dd4721[] = {
+ {&(_ZTV6dd4721[3]), 3,9},
+ {&(_tg__ZTV5cc721__6dd4721[3]), 3,5},
+ {&(_tg__ZTV4bb21__5cc721__6dd4721[3]), 3,4},
+ {&(_ZTV6dd4721[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI6dd4721[];
+extern VTBL_ENTRY _ZTV6dd4721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4721[];
+static VTBL_ENTRY alt_thunk_names815[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn12_N5cc7213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn12_N5cc7213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd4721 = { "dd4721", // class name
+ bases_dd4721, 3,
+ &(vtc_dd4721[0]), // expected_vtbl_contents
+ &(vtt_dd4721[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd4721),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4721),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd4721),4, //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 ee04721 : dd4721 {
+ int e;
+ ~ee04721(); // tgen
+ ee04721(); // tgen
+};
+//SIG(1 ee04721) C1{ BC2{ BC3{ VBC4{ BC5{ v2 Fi} v2 Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee04721 ::~ee04721(){ note_dtor("ee04721", this);} // tgen
+ee04721 ::ee04721(){ note_ctor("ee04721", this);} // tgen
+
+static void Test_ee04721()
+{
+ extern Class_Descriptor cd_ee04721;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee04721, buf);
+ ee04721 *dp, &lv = *(dp=new (buf) ee04721());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee04721)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04721)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(24,16), "ee04721");
+ check_base_class_offset(lv, (bb21*)(cc721*)(dd4721*), ABISELECT(24,16), "ee04721");
+ check_base_class_offset(lv, (cc721*)(dd4721*), 0, "ee04721");
+ check_base_class_offset(lv, (dd4721*), 0, "ee04721");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee04721.e");
+ test_class_info(&lv, &cd_ee04721);
+ dp->~ee04721();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04721(Test_ee04721, "ee04721", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee04721C1Ev();
+extern void _ZN7ee04721D1Ev();
+Name_Map name_map_ee04721[] = {
+ NSPAIR(_ZN7ee04721C1Ev),
+ NSPAIR(_ZN7ee04721D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc721;
+extern VTBL_ENTRY _ZTI5cc721[];
+extern VTBL_ENTRY _ZTV5cc721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc721[];
+extern Class_Descriptor cd_dd4721;
+extern VTBL_ENTRY _ZTI6dd4721[];
+extern VTBL_ENTRY _ZTV6dd4721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4721[];
+static Base_Class bases_ee04721[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc721, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4721, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee04721[];
+extern void _ZN5cc7213fooEv();
+extern void _ZN6dd47213barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7213fooEv,_ZThn16_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee04721[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN6dd47213barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee04721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee04721[];
+extern void _ZN5cc7213fooEv();
+extern void _ZN6dd47213barEv();
+static VTBL_ENTRY _tg__ZTV6dd4721__7ee04721[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN6dd47213barEv,
+};
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc7216dd4721__7ee04721[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7213fooEv,_ZThn16_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc7216dd4721__7ee04721[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7213fooEv,_ZThn16_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd4721__7ee04721[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+static VTT_ENTRY vtt_ee04721[] = {
+ {&(_ZTV7ee04721[3]), 3,9},
+ {&(_tg__ZTV6dd4721__7ee04721[3]), 3,5},
+ {&(_tg__ZTV5cc7216dd4721__7ee04721[3]), 3,5},
+ {&(_tg__ZTV4bb21__5cc7216dd4721__7ee04721[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd4721__7ee04721[3]), 3,4},
+ {&(_ZTV7ee04721[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee04721[];
+extern VTBL_ENTRY _ZTV7ee04721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee04721[];
+static VTBL_ENTRY alt_thunk_names816[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7213fooEv,_ZThn16_N5cc7213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7213fooEv,_ZThn16_N5cc7213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7213fooEv,_ZThn16_N5cc7213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee04721 = { "ee04721", // class name
+ bases_ee04721, 4,
+ &(vtc_ee04721[0]), // expected_vtbl_contents
+ &(vtt_ee04721[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee04721),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04721),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee04721),6, //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 ee14721 : virtual dd4721 {
+ int e;
+ ~ee14721(); // tgen
+ ee14721(); // tgen
+};
+//SIG(1 ee14721) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 Fi} v2 Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee14721 ::~ee14721(){ note_dtor("ee14721", this);} // tgen
+ee14721 ::ee14721(){ note_ctor("ee14721", this);} // tgen
+
+static void Test_ee14721()
+{
+ extern Class_Descriptor cd_ee14721;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee14721, buf);
+ ee14721 *dp, &lv = *(dp=new (buf) ee14721());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee14721)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14721)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee14721");
+ check_base_class_offset(lv, (bb21*)(cc721*)(dd4721*), ABISELECT(32,20), "ee14721");
+ check_base_class_offset(lv, (cc721*)(dd4721*), ABISELECT(16,8), "ee14721");
+ check_base_class_offset(lv, (dd4721*), ABISELECT(16,8), "ee14721");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14721.e");
+ test_class_info(&lv, &cd_ee14721);
+ dp->~ee14721();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14721(Test_ee14721, "ee14721", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee14721C1Ev();
+extern void _ZN7ee14721D1Ev();
+Name_Map name_map_ee14721[] = {
+ NSPAIR(_ZN7ee14721C1Ev),
+ NSPAIR(_ZN7ee14721D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc721;
+extern VTBL_ENTRY _ZTI5cc721[];
+extern VTBL_ENTRY _ZTV5cc721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc721[];
+extern Class_Descriptor cd_dd4721;
+extern VTBL_ENTRY _ZTI6dd4721[];
+extern VTBL_ENTRY _ZTV6dd4721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4721[];
+static Base_Class bases_ee14721[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc721, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4721, 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 _ZTI7ee14721[];
+extern void _ZN5cc7213fooEv();
+extern void _ZN6dd47213barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn12_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee14721[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14721[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN6dd47213barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee14721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee14721[];
+extern void _ZN5cc7213fooEv();
+extern void _ZN6dd47213barEv();
+static VTBL_ENTRY _tg__ZTV6dd4721__7ee14721[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN6dd47213barEv,
+};
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc7216dd4721__7ee14721[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn12_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc7216dd4721__7ee14721[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn12_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd4721__7ee14721[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+static VTT_ENTRY vtt_ee14721[] = {
+ {&(_ZTV7ee14721[4]), 4,15},
+ {&(_ZTV7ee14721[9]), 9,15},
+ {&(_ZTV7ee14721[14]), 14,15},
+ {&(_tg__ZTV6dd4721__7ee14721[3]), 3,5},
+ {&(_tg__ZTV5cc7216dd4721__7ee14721[3]), 3,5},
+ {&(_tg__ZTV4bb21__5cc7216dd4721__7ee14721[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd4721__7ee14721[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee14721[];
+extern VTBL_ENTRY _ZTV7ee14721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14721[];
+static VTBL_ENTRY alt_thunk_names817[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn12_N5cc7213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn12_N5cc7213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn12_N5cc7213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee14721 = { "ee14721", // class name
+ bases_ee14721, 4,
+ &(vtc_ee14721[0]), // expected_vtbl_contents
+ &(vtt_ee14721[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee14721),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14721),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14721),7, //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 ee24721 : dd4721 {
+ int e;
+ virtual void foo(); // _ZN7ee247213fooEv
+ ~ee24721(); // tgen
+ ee24721(); // tgen
+};
+//SIG(1 ee24721) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee24721 ::foo(){vfunc_called(this, "_ZN7ee247213fooEv");}
+ee24721 ::~ee24721(){ note_dtor("ee24721", this);} // tgen
+ee24721 ::ee24721(){ note_ctor("ee24721", this);} // tgen
+
+static void Test_ee24721()
+{
+ extern Class_Descriptor cd_ee24721;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee24721, buf);
+ ee24721 *dp, &lv = *(dp=new (buf) ee24721());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee24721)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24721)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(24,16), "ee24721");
+ check_base_class_offset(lv, (bb21*)(cc721*)(dd4721*), ABISELECT(24,16), "ee24721");
+ check_base_class_offset(lv, (cc721*)(dd4721*), 0, "ee24721");
+ check_base_class_offset(lv, (dd4721*), 0, "ee24721");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee24721.e");
+ test_class_info(&lv, &cd_ee24721);
+ dp->~ee24721();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24721(Test_ee24721, "ee24721", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee24721C1Ev();
+extern void _ZN7ee24721D1Ev();
+Name_Map name_map_ee24721[] = {
+ NSPAIR(_ZN7ee24721C1Ev),
+ NSPAIR(_ZN7ee24721D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc721;
+extern VTBL_ENTRY _ZTI5cc721[];
+extern VTBL_ENTRY _ZTV5cc721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc721[];
+extern Class_Descriptor cd_dd4721;
+extern VTBL_ENTRY _ZTI6dd4721[];
+extern VTBL_ENTRY _ZTV6dd4721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4721[];
+static Base_Class bases_ee24721[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc721, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4721, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee24721[];
+extern void _ZN7ee247213fooEv();
+extern void _ZN6dd47213barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee247213fooEv,_ZTv0_n12_N7ee247213fooEv)();
+extern void ABISELECT(_ZThn24_N7ee247213fooEv,_ZThn16_N7ee247213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee24721[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24721[0]),
+ (VTBL_ENTRY)&_ZN7ee247213fooEv,
+ (VTBL_ENTRY)&_ZN6dd47213barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee24721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee247213fooEv,_ZTv0_n12_N7ee247213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee24721[];
+extern void _ZN5cc7213fooEv();
+extern void _ZN6dd47213barEv();
+static VTBL_ENTRY _tg__ZTV6dd4721__7ee24721[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN6dd47213barEv,
+};
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc7216dd4721__7ee24721[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7213fooEv,_ZThn16_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc7216dd4721__7ee24721[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7213fooEv,_ZThn16_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd4721__7ee24721[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+static VTT_ENTRY vtt_ee24721[] = {
+ {&(_ZTV7ee24721[3]), 3,9},
+ {&(_tg__ZTV6dd4721__7ee24721[3]), 3,5},
+ {&(_tg__ZTV5cc7216dd4721__7ee24721[3]), 3,5},
+ {&(_tg__ZTV4bb21__5cc7216dd4721__7ee24721[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd4721__7ee24721[3]), 3,4},
+ {&(_ZTV7ee24721[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee24721[];
+extern VTBL_ENTRY _ZTV7ee24721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee24721[];
+static VTBL_ENTRY alt_thunk_names818[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7213fooEv,_ZThn16_N5cc7213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7213fooEv,_ZThn16_N5cc7213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee247213fooEv,_ZTv0_n12_N7ee247213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee247213fooEv,_ZThn16_N7ee247213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee24721 = { "ee24721", // class name
+ bases_ee24721, 4,
+ &(vtc_ee24721[0]), // expected_vtbl_contents
+ &(vtt_ee24721[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee24721),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24721),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee24721),6, //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 ee34721 : virtual dd4721 {
+ int e;
+ virtual void foo(); // _ZN7ee347213fooEv
+ ~ee34721(); // tgen
+ ee34721(); // tgen
+};
+//SIG(1 ee34721) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee34721 ::foo(){vfunc_called(this, "_ZN7ee347213fooEv");}
+ee34721 ::~ee34721(){ note_dtor("ee34721", this);} // tgen
+ee34721 ::ee34721(){ note_ctor("ee34721", this);} // tgen
+
+static void Test_ee34721()
+{
+ extern Class_Descriptor cd_ee34721;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee34721, buf);
+ ee34721 *dp, &lv = *(dp=new (buf) ee34721());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee34721)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34721)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee34721");
+ check_base_class_offset(lv, (bb21*)(cc721*)(dd4721*), ABISELECT(32,20), "ee34721");
+ check_base_class_offset(lv, (cc721*)(dd4721*), ABISELECT(16,8), "ee34721");
+ check_base_class_offset(lv, (dd4721*), ABISELECT(16,8), "ee34721");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34721.e");
+ test_class_info(&lv, &cd_ee34721);
+ dp->~ee34721();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34721(Test_ee34721, "ee34721", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee34721C1Ev();
+extern void _ZN7ee34721D1Ev();
+Name_Map name_map_ee34721[] = {
+ NSPAIR(_ZN7ee34721C1Ev),
+ NSPAIR(_ZN7ee34721D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc721;
+extern VTBL_ENTRY _ZTI5cc721[];
+extern VTBL_ENTRY _ZTV5cc721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc721[];
+extern Class_Descriptor cd_dd4721;
+extern VTBL_ENTRY _ZTI6dd4721[];
+extern VTBL_ENTRY _ZTV6dd4721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4721[];
+static Base_Class bases_ee34721[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc721, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4721, 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 _ZTI7ee34721[];
+extern void _ZN7ee347213fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee347213fooEv,_ZTv0_n16_N7ee347213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee347213fooEv,_ZThn8_N7ee347213fooEv)() __attribute__((weak));
+extern void _ZN6dd47213barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee347213fooEv,_ZTv0_n12_N7ee347213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee347213fooEv,_ZThn20_N7ee347213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee34721[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34721[0]),
+ (VTBL_ENTRY)&_ZN7ee347213fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee347213fooEv,_ZTv0_n16_N7ee347213fooEv),
+ (VTBL_ENTRY)&_ZN6dd47213barEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee34721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee347213fooEv,_ZTv0_n12_N7ee347213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee34721[];
+extern void _ZN5cc7213fooEv();
+extern void _ZN6dd47213barEv();
+static VTBL_ENTRY _tg__ZTV6dd4721__7ee34721[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN6dd47213barEv,
+};
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc7216dd4721__7ee34721[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn12_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc7216dd4721__7ee34721[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn12_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd4721__7ee34721[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+static VTT_ENTRY vtt_ee34721[] = {
+ {&(_ZTV7ee34721[4]), 4,16},
+ {&(_ZTV7ee34721[10]), 10,16},
+ {&(_ZTV7ee34721[15]), 15,16},
+ {&(_tg__ZTV6dd4721__7ee34721[3]), 3,5},
+ {&(_tg__ZTV5cc7216dd4721__7ee34721[3]), 3,5},
+ {&(_tg__ZTV4bb21__5cc7216dd4721__7ee34721[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd4721__7ee34721[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee34721[];
+extern VTBL_ENTRY _ZTV7ee34721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34721[];
+static VTBL_ENTRY alt_thunk_names819[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn12_N5cc7213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn12_N5cc7213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee347213fooEv,_ZTv0_n12_N7ee347213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee347213fooEv,_ZThn20_N7ee347213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee347213fooEv,_ZTv0_n16_N7ee347213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee347213fooEv,_ZThn8_N7ee347213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34721 = { "ee34721", // class name
+ bases_ee34721, 4,
+ &(vtc_ee34721[0]), // expected_vtbl_contents
+ &(vtt_ee34721[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee34721),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34721),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34721),7, //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 ee44721 : dd4721 {
+ int e;
+ virtual void bar(); // _ZN7ee447213barEv
+ ~ee44721(); // tgen
+ ee44721(); // tgen
+};
+//SIG(1 ee44721) C1{ BC2{ BC3{ VBC4{ BC5{ v2 Fi} v2 Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee44721 ::bar(){vfunc_called(this, "_ZN7ee447213barEv");}
+ee44721 ::~ee44721(){ note_dtor("ee44721", this);} // tgen
+ee44721 ::ee44721(){ note_ctor("ee44721", this);} // tgen
+
+static void Test_ee44721()
+{
+ extern Class_Descriptor cd_ee44721;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee44721, buf);
+ ee44721 *dp, &lv = *(dp=new (buf) ee44721());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee44721)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44721)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(24,16), "ee44721");
+ check_base_class_offset(lv, (bb21*)(cc721*)(dd4721*), ABISELECT(24,16), "ee44721");
+ check_base_class_offset(lv, (cc721*)(dd4721*), 0, "ee44721");
+ check_base_class_offset(lv, (dd4721*), 0, "ee44721");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee44721.e");
+ test_class_info(&lv, &cd_ee44721);
+ dp->~ee44721();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44721(Test_ee44721, "ee44721", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee44721C1Ev();
+extern void _ZN7ee44721D1Ev();
+Name_Map name_map_ee44721[] = {
+ NSPAIR(_ZN7ee44721C1Ev),
+ NSPAIR(_ZN7ee44721D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc721;
+extern VTBL_ENTRY _ZTI5cc721[];
+extern VTBL_ENTRY _ZTV5cc721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc721[];
+extern Class_Descriptor cd_dd4721;
+extern VTBL_ENTRY _ZTI6dd4721[];
+extern VTBL_ENTRY _ZTV6dd4721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4721[];
+static Base_Class bases_ee44721[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc721, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4721, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee44721[];
+extern void _ZN5cc7213fooEv();
+extern void _ZN7ee447213barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7213fooEv,_ZThn16_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee44721[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN7ee447213barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee44721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee44721[];
+extern void _ZN5cc7213fooEv();
+extern void _ZN6dd47213barEv();
+static VTBL_ENTRY _tg__ZTV6dd4721__7ee44721[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN6dd47213barEv,
+};
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc7216dd4721__7ee44721[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7213fooEv,_ZThn16_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc7216dd4721__7ee44721[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7213fooEv,_ZThn16_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd4721__7ee44721[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+static VTT_ENTRY vtt_ee44721[] = {
+ {&(_ZTV7ee44721[3]), 3,9},
+ {&(_tg__ZTV6dd4721__7ee44721[3]), 3,5},
+ {&(_tg__ZTV5cc7216dd4721__7ee44721[3]), 3,5},
+ {&(_tg__ZTV4bb21__5cc7216dd4721__7ee44721[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd4721__7ee44721[3]), 3,4},
+ {&(_ZTV7ee44721[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee44721[];
+extern VTBL_ENTRY _ZTV7ee44721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee44721[];
+static VTBL_ENTRY alt_thunk_names820[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7213fooEv,_ZThn16_N5cc7213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7213fooEv,_ZThn16_N5cc7213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7213fooEv,_ZThn16_N5cc7213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee44721 = { "ee44721", // class name
+ bases_ee44721, 4,
+ &(vtc_ee44721[0]), // expected_vtbl_contents
+ &(vtt_ee44721[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee44721),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44721),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee44721),6, //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 ee54721 : virtual dd4721 {
+ int e;
+ virtual void bar(); // _ZN7ee547213barEv
+ ~ee54721(); // tgen
+ ee54721(); // tgen
+};
+//SIG(1 ee54721) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 Fi} v2 Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee54721 ::bar(){vfunc_called(this, "_ZN7ee547213barEv");}
+ee54721 ::~ee54721(){ note_dtor("ee54721", this);} // tgen
+ee54721 ::ee54721(){ note_ctor("ee54721", this);} // tgen
+
+static void Test_ee54721()
+{
+ extern Class_Descriptor cd_ee54721;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee54721, buf);
+ ee54721 *dp, &lv = *(dp=new (buf) ee54721());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee54721)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54721)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee54721");
+ check_base_class_offset(lv, (bb21*)(cc721*)(dd4721*), ABISELECT(32,20), "ee54721");
+ check_base_class_offset(lv, (cc721*)(dd4721*), ABISELECT(16,8), "ee54721");
+ check_base_class_offset(lv, (dd4721*), ABISELECT(16,8), "ee54721");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54721.e");
+ test_class_info(&lv, &cd_ee54721);
+ dp->~ee54721();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54721(Test_ee54721, "ee54721", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee54721C1Ev();
+extern void _ZN7ee54721D1Ev();
+Name_Map name_map_ee54721[] = {
+ NSPAIR(_ZN7ee54721C1Ev),
+ NSPAIR(_ZN7ee54721D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc721;
+extern VTBL_ENTRY _ZTI5cc721[];
+extern VTBL_ENTRY _ZTV5cc721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc721[];
+extern Class_Descriptor cd_dd4721;
+extern VTBL_ENTRY _ZTI6dd4721[];
+extern VTBL_ENTRY _ZTV6dd4721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4721[];
+static Base_Class bases_ee54721[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc721, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4721, 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 _ZTI7ee54721[];
+extern void _ZN7ee547213barEv();
+extern void _ZN5cc7213fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee547213barEv,_ZTv0_n20_N7ee547213barEv)();
+extern void ABISELECT(_ZThn16_N7ee547213barEv,_ZThn8_N7ee547213barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn12_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54721[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54721[0]),
+ (VTBL_ENTRY)&_ZN7ee547213barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee547213barEv,_ZTv0_n20_N7ee547213barEv),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee54721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee54721[];
+extern void _ZN5cc7213fooEv();
+extern void _ZN6dd47213barEv();
+static VTBL_ENTRY _tg__ZTV6dd4721__7ee54721[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN6dd47213barEv,
+};
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc7216dd4721__7ee54721[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn12_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc7216dd4721__7ee54721[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn12_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd4721__7ee54721[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+static VTT_ENTRY vtt_ee54721[] = {
+ {&(_ZTV7ee54721[4]), 4,16},
+ {&(_ZTV7ee54721[10]), 10,16},
+ {&(_ZTV7ee54721[15]), 15,16},
+ {&(_tg__ZTV6dd4721__7ee54721[3]), 3,5},
+ {&(_tg__ZTV5cc7216dd4721__7ee54721[3]), 3,5},
+ {&(_tg__ZTV4bb21__5cc7216dd4721__7ee54721[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd4721__7ee54721[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee54721[];
+extern VTBL_ENTRY _ZTV7ee54721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54721[];
+static VTBL_ENTRY alt_thunk_names821[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn12_N5cc7213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn12_N5cc7213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn12_N5cc7213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee547213barEv,_ZTv0_n20_N7ee547213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee547213barEv,_ZThn8_N7ee547213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54721 = { "ee54721", // class name
+ bases_ee54721, 4,
+ &(vtc_ee54721[0]), // expected_vtbl_contents
+ &(vtt_ee54721[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee54721),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54721),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54721),7, //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 ee64721 : dd4721 {
+ int e;
+ virtual void foo(); // _ZN7ee647213fooEv
+ virtual void bar(); // _ZN7ee647213barEv
+ ~ee64721(); // tgen
+ ee64721(); // tgen
+};
+//SIG(1 ee64721) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64721 ::foo(){vfunc_called(this, "_ZN7ee647213fooEv");}
+void ee64721 ::bar(){vfunc_called(this, "_ZN7ee647213barEv");}
+ee64721 ::~ee64721(){ note_dtor("ee64721", this);} // tgen
+ee64721 ::ee64721(){ note_ctor("ee64721", this);} // tgen
+
+static void Test_ee64721()
+{
+ extern Class_Descriptor cd_ee64721;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee64721, buf);
+ ee64721 *dp, &lv = *(dp=new (buf) ee64721());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee64721)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64721)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(24,16), "ee64721");
+ check_base_class_offset(lv, (bb21*)(cc721*)(dd4721*), ABISELECT(24,16), "ee64721");
+ check_base_class_offset(lv, (cc721*)(dd4721*), 0, "ee64721");
+ check_base_class_offset(lv, (dd4721*), 0, "ee64721");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee64721.e");
+ test_class_info(&lv, &cd_ee64721);
+ dp->~ee64721();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64721(Test_ee64721, "ee64721", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee64721C1Ev();
+extern void _ZN7ee64721D1Ev();
+Name_Map name_map_ee64721[] = {
+ NSPAIR(_ZN7ee64721C1Ev),
+ NSPAIR(_ZN7ee64721D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc721;
+extern VTBL_ENTRY _ZTI5cc721[];
+extern VTBL_ENTRY _ZTV5cc721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc721[];
+extern Class_Descriptor cd_dd4721;
+extern VTBL_ENTRY _ZTI6dd4721[];
+extern VTBL_ENTRY _ZTV6dd4721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4721[];
+static Base_Class bases_ee64721[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc721, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4721, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee64721[];
+extern void _ZN7ee647213fooEv();
+extern void _ZN7ee647213barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee647213fooEv,_ZTv0_n12_N7ee647213fooEv)();
+extern void ABISELECT(_ZThn24_N7ee647213fooEv,_ZThn16_N7ee647213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee64721[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64721[0]),
+ (VTBL_ENTRY)&_ZN7ee647213fooEv,
+ (VTBL_ENTRY)&_ZN7ee647213barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee64721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee647213fooEv,_ZTv0_n12_N7ee647213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee64721[];
+extern void _ZN5cc7213fooEv();
+extern void _ZN6dd47213barEv();
+static VTBL_ENTRY _tg__ZTV6dd4721__7ee64721[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN6dd47213barEv,
+};
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc7216dd4721__7ee64721[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7213fooEv,_ZThn16_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc7216dd4721__7ee64721[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7213fooEv,_ZThn16_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd4721__7ee64721[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+static VTT_ENTRY vtt_ee64721[] = {
+ {&(_ZTV7ee64721[3]), 3,9},
+ {&(_tg__ZTV6dd4721__7ee64721[3]), 3,5},
+ {&(_tg__ZTV5cc7216dd4721__7ee64721[3]), 3,5},
+ {&(_tg__ZTV4bb21__5cc7216dd4721__7ee64721[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd4721__7ee64721[3]), 3,4},
+ {&(_ZTV7ee64721[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee64721[];
+extern VTBL_ENTRY _ZTV7ee64721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee64721[];
+static VTBL_ENTRY alt_thunk_names822[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7213fooEv,_ZThn16_N5cc7213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7213fooEv,_ZThn16_N5cc7213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee647213fooEv,_ZTv0_n12_N7ee647213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee647213fooEv,_ZThn16_N7ee647213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee64721 = { "ee64721", // class name
+ bases_ee64721, 4,
+ &(vtc_ee64721[0]), // expected_vtbl_contents
+ &(vtt_ee64721[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee64721),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64721),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee64721),6, //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 ee74721 : virtual dd4721 {
+ int e;
+ virtual void foo(); // _ZN7ee747213fooEv
+ virtual void bar(); // _ZN7ee747213barEv
+ ~ee74721(); // tgen
+ ee74721(); // tgen
+};
+//SIG(1 ee74721) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74721 ::foo(){vfunc_called(this, "_ZN7ee747213fooEv");}
+void ee74721 ::bar(){vfunc_called(this, "_ZN7ee747213barEv");}
+ee74721 ::~ee74721(){ note_dtor("ee74721", this);} // tgen
+ee74721 ::ee74721(){ note_ctor("ee74721", this);} // tgen
+
+static void Test_ee74721()
+{
+ extern Class_Descriptor cd_ee74721;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee74721, buf);
+ ee74721 *dp, &lv = *(dp=new (buf) ee74721());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee74721)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74721)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee74721");
+ check_base_class_offset(lv, (bb21*)(cc721*)(dd4721*), ABISELECT(32,20), "ee74721");
+ check_base_class_offset(lv, (cc721*)(dd4721*), ABISELECT(16,8), "ee74721");
+ check_base_class_offset(lv, (dd4721*), ABISELECT(16,8), "ee74721");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74721.e");
+ test_class_info(&lv, &cd_ee74721);
+ dp->~ee74721();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74721(Test_ee74721, "ee74721", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee74721C1Ev();
+extern void _ZN7ee74721D1Ev();
+Name_Map name_map_ee74721[] = {
+ NSPAIR(_ZN7ee74721C1Ev),
+ NSPAIR(_ZN7ee74721D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc721;
+extern VTBL_ENTRY _ZTI5cc721[];
+extern VTBL_ENTRY _ZTV5cc721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc721[];
+extern Class_Descriptor cd_dd4721;
+extern VTBL_ENTRY _ZTI6dd4721[];
+extern VTBL_ENTRY _ZTV6dd4721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4721[];
+static Base_Class bases_ee74721[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc721, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4721, ABISELECT(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 _ZTI7ee74721[];
+extern void _ZN7ee747213fooEv();
+extern void _ZN7ee747213barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee747213fooEv,_ZTv0_n16_N7ee747213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee747213fooEv,_ZThn8_N7ee747213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee747213barEv,_ZTv0_n20_N7ee747213barEv)();
+extern void ABISELECT(_ZThn16_N7ee747213barEv,_ZThn8_N7ee747213barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee747213fooEv,_ZTv0_n12_N7ee747213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee747213fooEv,_ZThn20_N7ee747213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74721[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74721[0]),
+ (VTBL_ENTRY)&_ZN7ee747213fooEv,
+ (VTBL_ENTRY)&_ZN7ee747213barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee747213fooEv,_ZTv0_n16_N7ee747213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee747213barEv,_ZTv0_n20_N7ee747213barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee74721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee747213fooEv,_ZTv0_n12_N7ee747213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee74721[];
+extern void _ZN5cc7213fooEv();
+extern void _ZN6dd47213barEv();
+static VTBL_ENTRY _tg__ZTV6dd4721__7ee74721[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN6dd47213barEv,
+};
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc7216dd4721__7ee74721[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn12_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc7216dd4721__7ee74721[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn12_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd4721__7ee74721[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+static VTT_ENTRY vtt_ee74721[] = {
+ {&(_ZTV7ee74721[4]), 4,17},
+ {&(_ZTV7ee74721[11]), 11,17},
+ {&(_ZTV7ee74721[16]), 16,17},
+ {&(_tg__ZTV6dd4721__7ee74721[3]), 3,5},
+ {&(_tg__ZTV5cc7216dd4721__7ee74721[3]), 3,5},
+ {&(_tg__ZTV4bb21__5cc7216dd4721__7ee74721[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd4721__7ee74721[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee74721[];
+extern VTBL_ENTRY _ZTV7ee74721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74721[];
+static VTBL_ENTRY alt_thunk_names823[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn12_N5cc7213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn12_N5cc7213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee747213fooEv,_ZTv0_n12_N7ee747213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee747213fooEv,_ZThn20_N7ee747213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee747213barEv,_ZTv0_n20_N7ee747213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee747213barEv,_ZThn8_N7ee747213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee747213fooEv,_ZTv0_n16_N7ee747213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee747213fooEv,_ZThn8_N7ee747213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74721 = { "ee74721", // class name
+ bases_ee74721, 4,
+ &(vtc_ee74721[0]), // expected_vtbl_contents
+ &(vtt_ee74721[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee74721),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74721),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74721),7, //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 dd5721 : virtual cc721 {
+ int d;
+ virtual void bar(); // _ZN6dd57213barEv
+ ~dd5721(); // tgen
+ dd5721(); // tgen
+};
+//SIG(-1 dd5721) C1{ VBC2{ VBC3{ BC4{ v2 Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void dd5721 ::bar(){vfunc_called(this, "_ZN6dd57213barEv");}
+dd5721 ::~dd5721(){ note_dtor("dd5721", this);} // tgen
+dd5721 ::dd5721(){ note_ctor("dd5721", this);} // tgen
+
+static void Test_dd5721()
+{
+ extern Class_Descriptor cd_dd5721;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd5721, buf);
+ dd5721 *dp, &lv = *(dp=new (buf) dd5721());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd5721)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5721)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,16), "dd5721");
+ check_base_class_offset(lv, (bb21*)(cc721*), ABISELECT(32,16), "dd5721");
+ check_base_class_offset(lv, (cc721*), ABISELECT(16,8), "dd5721");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5721.d");
+ test_class_info(&lv, &cd_dd5721);
+ dp->~dd5721();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5721(Test_dd5721, "dd5721", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd5721C1Ev();
+extern void _ZN6dd5721D1Ev();
+Name_Map name_map_dd5721[] = {
+ NSPAIR(_ZN6dd5721C1Ev),
+ NSPAIR(_ZN6dd5721D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc721;
+extern VTBL_ENTRY _ZTI5cc721[];
+extern VTBL_ENTRY _ZTV5cc721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc721[];
+static Base_Class bases_dd5721[] = {
+ // 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_bb21, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc721, 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 _ZTI6dd5721[];
+extern void _ZN6dd57213barEv();
+extern void _ZN5cc7213fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57213barEv,_ZTv0_n20_N6dd57213barEv)();
+extern void ABISELECT(_ZThn16_N6dd57213barEv,_ZThn8_N6dd57213barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd5721[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5721[0]),
+ (VTBL_ENTRY)&_ZN6dd57213barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57213barEv,_ZTv0_n20_N6dd57213barEv),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd5721[];
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc721__6dd5721[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc721__6dd5721[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+static VTT_ENTRY vtt_dd5721[] = {
+ {&(_ZTV6dd5721[4]), 4,16},
+ {&(_ZTV6dd5721[10]), 10,16},
+ {&(_ZTV6dd5721[15]), 15,16},
+ {&(_tg__ZTV5cc721__6dd5721[3]), 3,5},
+ {&(_tg__ZTV4bb21__5cc721__6dd5721[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd5721[];
+extern VTBL_ENTRY _ZTV6dd5721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5721[];
+static VTBL_ENTRY alt_thunk_names824[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57213barEv,_ZTv0_n20_N6dd57213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57213barEv,_ZThn8_N6dd57213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5721 = { "dd5721", // class name
+ bases_dd5721, 3,
+ &(vtc_dd5721[0]), // expected_vtbl_contents
+ &(vtt_dd5721[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd5721),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5721),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5721),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names824,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05721 : dd5721 {
+ int e;
+ ~ee05721(); // tgen
+ ee05721(); // tgen
+};
+//SIG(1 ee05721) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 Fi} v2 Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee05721 ::~ee05721(){ note_dtor("ee05721", this);} // tgen
+ee05721 ::ee05721(){ note_ctor("ee05721", this);} // tgen
+
+static void Test_ee05721()
+{
+ extern Class_Descriptor cd_ee05721;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee05721, buf);
+ ee05721 *dp, &lv = *(dp=new (buf) ee05721());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee05721)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05721)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee05721");
+ check_base_class_offset(lv, (bb21*)(cc721*), ABISELECT(32,20), "ee05721");
+ check_base_class_offset(lv, (cc721*)(dd5721*), ABISELECT(16,12), "ee05721");
+ check_base_class_offset(lv, (dd5721*), 0, "ee05721");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05721.e");
+ test_class_info(&lv, &cd_ee05721);
+ dp->~ee05721();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05721(Test_ee05721, "ee05721", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee05721C1Ev();
+extern void _ZN7ee05721D1Ev();
+Name_Map name_map_ee05721[] = {
+ NSPAIR(_ZN7ee05721C1Ev),
+ NSPAIR(_ZN7ee05721D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc721;
+extern VTBL_ENTRY _ZTI5cc721[];
+extern VTBL_ENTRY _ZTV5cc721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc721[];
+extern Class_Descriptor cd_dd5721;
+extern VTBL_ENTRY _ZTI6dd5721[];
+extern VTBL_ENTRY _ZTV6dd5721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5721[];
+static Base_Class bases_ee05721[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc721, 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_dd5721, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05721[];
+extern void _ZN6dd57213barEv();
+extern void _ZN5cc7213fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57213barEv,_ZTv0_n20_N6dd57213barEv)();
+extern void ABISELECT(_ZThn16_N6dd57213barEv,_ZThn12_N6dd57213barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee05721[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05721[0]),
+ (VTBL_ENTRY)&_ZN6dd57213barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57213barEv,_ZTv0_n20_N6dd57213barEv),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee05721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee05721[];
+extern void _ZN6dd57213barEv();
+static VTBL_ENTRY _tg__ZTV6dd5721__7ee05721[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5721[0]),
+ (VTBL_ENTRY)&_ZN6dd57213barEv,
+};
+extern void _ZN5cc7213fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57213barEv,_ZTv0_n20_N6dd57213barEv)();
+extern void ABISELECT(_ZThn16_N6dd57213barEv,_ZThn12_N6dd57213barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc721__6dd5721__7ee05721[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57213barEv,_ZTv0_n20_N6dd57213barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd5721__7ee05721[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc721__7ee05721[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc721__7ee05721[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+static VTT_ENTRY vtt_ee05721[] = {
+ {&(_ZTV7ee05721[4]), 4,16},
+ {&(_tg__ZTV6dd5721__7ee05721[4]), 4,5},
+ {&(_tg__ZTV5cc721__6dd5721__7ee05721[5]), 5,7},
+ {&(_tg__ZTV4bb21__6dd5721__7ee05721[3]), 3,4},
+ {&(_ZTV7ee05721[10]), 10,16},
+ {&(_ZTV7ee05721[15]), 15,16},
+ {&(_tg__ZTV5cc721__7ee05721[3]), 3,5},
+ {&(_tg__ZTV4bb21__5cc721__7ee05721[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee05721[];
+extern VTBL_ENTRY _ZTV7ee05721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05721[];
+static VTBL_ENTRY alt_thunk_names825[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57213barEv,_ZTv0_n20_N6dd57213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57213barEv,_ZThn12_N6dd57213barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57213barEv,_ZThn12_N6dd57213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05721 = { "ee05721", // class name
+ bases_ee05721, 4,
+ &(vtc_ee05721[0]), // expected_vtbl_contents
+ &(vtt_ee05721[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee05721),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05721),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05721),8, //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 ee15721 : virtual dd5721 {
+ int e;
+ ~ee15721(); // tgen
+ ee15721(); // tgen
+};
+//SIG(1 ee15721) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 Fi} v2 Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee15721 ::~ee15721(){ note_dtor("ee15721", this);} // tgen
+ee15721 ::ee15721(){ note_ctor("ee15721", this);} // tgen
+
+static void Test_ee15721()
+{
+ extern Class_Descriptor cd_ee15721;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee15721, buf);
+ ee15721 *dp, &lv = *(dp=new (buf) ee15721());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee15721)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15721)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(48,24), "ee15721");
+ check_base_class_offset(lv, (bb21*)(cc721*), ABISELECT(48,24), "ee15721");
+ check_base_class_offset(lv, (cc721*)(dd5721*), ABISELECT(32,16), "ee15721");
+ check_base_class_offset(lv, (dd5721*), ABISELECT(16,8), "ee15721");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15721.e");
+ test_class_info(&lv, &cd_ee15721);
+ dp->~ee15721();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15721(Test_ee15721, "ee15721", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee15721C1Ev();
+extern void _ZN7ee15721D1Ev();
+Name_Map name_map_ee15721[] = {
+ NSPAIR(_ZN7ee15721C1Ev),
+ NSPAIR(_ZN7ee15721D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc721;
+extern VTBL_ENTRY _ZTI5cc721[];
+extern VTBL_ENTRY _ZTV5cc721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc721[];
+extern Class_Descriptor cd_dd5721;
+extern VTBL_ENTRY _ZTI6dd5721[];
+extern VTBL_ENTRY _ZTV6dd5721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5721[];
+static Base_Class bases_ee15721[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb21, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc721, 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_dd5721, 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 _ZTI7ee15721[];
+extern void _ZN6dd57213barEv();
+extern void _ZN5cc7213fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57213barEv,_ZTv0_n20_N6dd57213barEv)();
+extern void ABISELECT(_ZThn16_N6dd57213barEv,_ZThn8_N6dd57213barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee15721[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15721[0]),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15721[0]),
+ (VTBL_ENTRY)&_ZN6dd57213barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57213barEv,_ZTv0_n20_N6dd57213barEv),
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee15721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee15721[];
+extern void _ZN6dd57213barEv();
+static VTBL_ENTRY _tg__ZTV6dd5721__7ee15721[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5721[0]),
+ (VTBL_ENTRY)&_ZN6dd57213barEv,
+};
+extern void _ZN5cc7213fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57213barEv,_ZTv0_n20_N6dd57213barEv)();
+extern void ABISELECT(_ZThn16_N6dd57213barEv,_ZThn8_N6dd57213barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc721__6dd5721__7ee15721[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57213barEv,_ZTv0_n20_N6dd57213barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd5721__7ee15721[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc721__7ee15721[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc721__7ee15721[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+static VTT_ENTRY vtt_ee15721[] = {
+ {&(_ZTV7ee15721[5]), 5,22},
+ {&(_ZTV7ee15721[10]), 10,22},
+ {&(_ZTV7ee15721[16]), 16,22},
+ {&(_ZTV7ee15721[21]), 21,22},
+ {&(_tg__ZTV6dd5721__7ee15721[4]), 4,5},
+ {&(_tg__ZTV5cc721__6dd5721__7ee15721[5]), 5,7},
+ {&(_tg__ZTV4bb21__6dd5721__7ee15721[3]), 3,4},
+ {&(_tg__ZTV5cc721__7ee15721[3]), 3,5},
+ {&(_tg__ZTV4bb21__5cc721__7ee15721[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee15721[];
+extern VTBL_ENTRY _ZTV7ee15721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15721[];
+static VTBL_ENTRY alt_thunk_names826[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57213barEv,_ZTv0_n20_N6dd57213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57213barEv,_ZThn8_N6dd57213barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57213barEv,_ZThn8_N6dd57213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15721 = { "ee15721", // class name
+ bases_ee15721, 4,
+ &(vtc_ee15721[0]), // expected_vtbl_contents
+ &(vtt_ee15721[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee15721),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15721),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15721),9, //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 ee25721 : dd5721 {
+ int e;
+ virtual void foo(); // _ZN7ee257213fooEv
+ ~ee25721(); // tgen
+ ee25721(); // tgen
+};
+//SIG(1 ee25721) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee25721 ::foo(){vfunc_called(this, "_ZN7ee257213fooEv");}
+ee25721 ::~ee25721(){ note_dtor("ee25721", this);} // tgen
+ee25721 ::ee25721(){ note_ctor("ee25721", this);} // tgen
+
+static void Test_ee25721()
+{
+ extern Class_Descriptor cd_ee25721;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee25721, buf);
+ ee25721 *dp, &lv = *(dp=new (buf) ee25721());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee25721)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25721)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee25721");
+ check_base_class_offset(lv, (bb21*)(cc721*), ABISELECT(32,20), "ee25721");
+ check_base_class_offset(lv, (cc721*)(dd5721*), ABISELECT(16,12), "ee25721");
+ check_base_class_offset(lv, (dd5721*), 0, "ee25721");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25721.e");
+ test_class_info(&lv, &cd_ee25721);
+ dp->~ee25721();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25721(Test_ee25721, "ee25721", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee25721C1Ev();
+extern void _ZN7ee25721D1Ev();
+Name_Map name_map_ee25721[] = {
+ NSPAIR(_ZN7ee25721C1Ev),
+ NSPAIR(_ZN7ee25721D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc721;
+extern VTBL_ENTRY _ZTI5cc721[];
+extern VTBL_ENTRY _ZTV5cc721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc721[];
+extern Class_Descriptor cd_dd5721;
+extern VTBL_ENTRY _ZTI6dd5721[];
+extern VTBL_ENTRY _ZTV6dd5721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5721[];
+static Base_Class bases_ee25721[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc721, 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_dd5721, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25721[];
+extern void _ZN6dd57213barEv();
+extern void _ZN7ee257213fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee257213fooEv,_ZTv0_n16_N7ee257213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee257213fooEv,_ZThn12_N7ee257213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd57213barEv,_ZTv0_n20_N6dd57213barEv)();
+extern void ABISELECT(_ZThn16_N6dd57213barEv,_ZThn12_N6dd57213barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee257213fooEv,_ZTv0_n12_N7ee257213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee257213fooEv,_ZThn20_N7ee257213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25721[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25721[0]),
+ (VTBL_ENTRY)&_ZN6dd57213barEv,
+ (VTBL_ENTRY)&_ZN7ee257213fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee257213fooEv,_ZTv0_n16_N7ee257213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57213barEv,_ZTv0_n20_N6dd57213barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee25721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee257213fooEv,_ZTv0_n12_N7ee257213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee25721[];
+extern void _ZN6dd57213barEv();
+static VTBL_ENTRY _tg__ZTV6dd5721__7ee25721[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5721[0]),
+ (VTBL_ENTRY)&_ZN6dd57213barEv,
+};
+extern void _ZN5cc7213fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57213barEv,_ZTv0_n20_N6dd57213barEv)();
+extern void ABISELECT(_ZThn16_N6dd57213barEv,_ZThn12_N6dd57213barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc721__6dd5721__7ee25721[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57213barEv,_ZTv0_n20_N6dd57213barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd5721__7ee25721[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc721__7ee25721[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc721__7ee25721[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+static VTT_ENTRY vtt_ee25721[] = {
+ {&(_ZTV7ee25721[4]), 4,17},
+ {&(_tg__ZTV6dd5721__7ee25721[4]), 4,5},
+ {&(_tg__ZTV5cc721__6dd5721__7ee25721[5]), 5,7},
+ {&(_tg__ZTV4bb21__6dd5721__7ee25721[3]), 3,4},
+ {&(_ZTV7ee25721[11]), 11,17},
+ {&(_ZTV7ee25721[16]), 16,17},
+ {&(_tg__ZTV5cc721__7ee25721[3]), 3,5},
+ {&(_tg__ZTV4bb21__5cc721__7ee25721[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee25721[];
+extern VTBL_ENTRY _ZTV7ee25721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25721[];
+static VTBL_ENTRY alt_thunk_names827[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee257213fooEv,_ZTv0_n12_N7ee257213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee257213fooEv,_ZThn20_N7ee257213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57213barEv,_ZTv0_n20_N6dd57213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57213barEv,_ZThn12_N6dd57213barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57213barEv,_ZThn12_N6dd57213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee257213fooEv,_ZTv0_n16_N7ee257213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee257213fooEv,_ZThn12_N7ee257213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25721 = { "ee25721", // class name
+ bases_ee25721, 4,
+ &(vtc_ee25721[0]), // expected_vtbl_contents
+ &(vtt_ee25721[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee25721),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25721),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25721),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names827,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee35721 : virtual dd5721 {
+ int e;
+ virtual void foo(); // _ZN7ee357213fooEv
+ ~ee35721(); // tgen
+ ee35721(); // tgen
+};
+//SIG(1 ee35721) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee35721 ::foo(){vfunc_called(this, "_ZN7ee357213fooEv");}
+ee35721 ::~ee35721(){ note_dtor("ee35721", this);} // tgen
+ee35721 ::ee35721(){ note_ctor("ee35721", this);} // tgen
+
+static void Test_ee35721()
+{
+ extern Class_Descriptor cd_ee35721;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee35721, buf);
+ ee35721 *dp, &lv = *(dp=new (buf) ee35721());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee35721)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35721)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(48,24), "ee35721");
+ check_base_class_offset(lv, (bb21*)(cc721*), ABISELECT(48,24), "ee35721");
+ check_base_class_offset(lv, (cc721*)(dd5721*), ABISELECT(32,16), "ee35721");
+ check_base_class_offset(lv, (dd5721*), ABISELECT(16,8), "ee35721");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35721.e");
+ test_class_info(&lv, &cd_ee35721);
+ dp->~ee35721();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35721(Test_ee35721, "ee35721", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee35721C1Ev();
+extern void _ZN7ee35721D1Ev();
+Name_Map name_map_ee35721[] = {
+ NSPAIR(_ZN7ee35721C1Ev),
+ NSPAIR(_ZN7ee35721D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc721;
+extern VTBL_ENTRY _ZTI5cc721[];
+extern VTBL_ENTRY _ZTV5cc721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc721[];
+extern Class_Descriptor cd_dd5721;
+extern VTBL_ENTRY _ZTI6dd5721[];
+extern VTBL_ENTRY _ZTV6dd5721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5721[];
+static Base_Class bases_ee35721[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb21, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc721, 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_dd5721, ABISELECT(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 _ZTI7ee35721[];
+extern void _ZN7ee357213fooEv();
+extern void _ZN6dd57213barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee357213fooEv,_ZTv0_n16_N7ee357213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee357213fooEv,_ZThn16_N7ee357213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd57213barEv,_ZTv0_n20_N6dd57213barEv)();
+extern void ABISELECT(_ZThn16_N6dd57213barEv,_ZThn8_N6dd57213barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee357213fooEv,_ZTv0_n12_N7ee357213fooEv)();
+extern void ABISELECT(_ZThn48_N7ee357213fooEv,_ZThn24_N7ee357213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35721[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35721[0]),
+ (VTBL_ENTRY)&_ZN7ee357213fooEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35721[0]),
+ (VTBL_ENTRY)&_ZN6dd57213barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee357213fooEv,_ZTv0_n16_N7ee357213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57213barEv,_ZTv0_n20_N6dd57213barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee35721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee357213fooEv,_ZTv0_n12_N7ee357213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee35721[];
+extern void _ZN6dd57213barEv();
+static VTBL_ENTRY _tg__ZTV6dd5721__7ee35721[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5721[0]),
+ (VTBL_ENTRY)&_ZN6dd57213barEv,
+};
+extern void _ZN5cc7213fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57213barEv,_ZTv0_n20_N6dd57213barEv)();
+extern void ABISELECT(_ZThn16_N6dd57213barEv,_ZThn8_N6dd57213barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc721__6dd5721__7ee35721[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57213barEv,_ZTv0_n20_N6dd57213barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd5721__7ee35721[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc721__7ee35721[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc721__7ee35721[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+static VTT_ENTRY vtt_ee35721[] = {
+ {&(_ZTV7ee35721[5]), 5,23},
+ {&(_ZTV7ee35721[11]), 11,23},
+ {&(_ZTV7ee35721[17]), 17,23},
+ {&(_ZTV7ee35721[22]), 22,23},
+ {&(_tg__ZTV6dd5721__7ee35721[4]), 4,5},
+ {&(_tg__ZTV5cc721__6dd5721__7ee35721[5]), 5,7},
+ {&(_tg__ZTV4bb21__6dd5721__7ee35721[3]), 3,4},
+ {&(_tg__ZTV5cc721__7ee35721[3]), 3,5},
+ {&(_tg__ZTV4bb21__5cc721__7ee35721[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee35721[];
+extern VTBL_ENTRY _ZTV7ee35721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35721[];
+static VTBL_ENTRY alt_thunk_names828[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee357213fooEv,_ZTv0_n12_N7ee357213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee357213fooEv,_ZThn24_N7ee357213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57213barEv,_ZTv0_n20_N6dd57213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57213barEv,_ZThn8_N6dd57213barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57213barEv,_ZThn8_N6dd57213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee357213fooEv,_ZTv0_n16_N7ee357213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee357213fooEv,_ZThn16_N7ee357213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35721 = { "ee35721", // class name
+ bases_ee35721, 4,
+ &(vtc_ee35721[0]), // expected_vtbl_contents
+ &(vtt_ee35721[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee35721),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35721),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35721),9, //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 ee45721 : dd5721 {
+ int e;
+ virtual void bar(); // _ZN7ee457213barEv
+ ~ee45721(); // tgen
+ ee45721(); // tgen
+};
+//SIG(1 ee45721) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 Fi} v2 Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee45721 ::bar(){vfunc_called(this, "_ZN7ee457213barEv");}
+ee45721 ::~ee45721(){ note_dtor("ee45721", this);} // tgen
+ee45721 ::ee45721(){ note_ctor("ee45721", this);} // tgen
+
+static void Test_ee45721()
+{
+ extern Class_Descriptor cd_ee45721;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee45721, buf);
+ ee45721 *dp, &lv = *(dp=new (buf) ee45721());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee45721)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45721)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee45721");
+ check_base_class_offset(lv, (bb21*)(cc721*), ABISELECT(32,20), "ee45721");
+ check_base_class_offset(lv, (cc721*)(dd5721*), ABISELECT(16,12), "ee45721");
+ check_base_class_offset(lv, (dd5721*), 0, "ee45721");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45721.e");
+ test_class_info(&lv, &cd_ee45721);
+ dp->~ee45721();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45721(Test_ee45721, "ee45721", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee45721C1Ev();
+extern void _ZN7ee45721D1Ev();
+Name_Map name_map_ee45721[] = {
+ NSPAIR(_ZN7ee45721C1Ev),
+ NSPAIR(_ZN7ee45721D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc721;
+extern VTBL_ENTRY _ZTI5cc721[];
+extern VTBL_ENTRY _ZTV5cc721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc721[];
+extern Class_Descriptor cd_dd5721;
+extern VTBL_ENTRY _ZTI6dd5721[];
+extern VTBL_ENTRY _ZTV6dd5721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5721[];
+static Base_Class bases_ee45721[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc721, 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_dd5721, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45721[];
+extern void _ZN7ee457213barEv();
+extern void _ZN5cc7213fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee457213barEv,_ZTv0_n20_N7ee457213barEv)();
+extern void ABISELECT(_ZThn16_N7ee457213barEv,_ZThn12_N7ee457213barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee45721[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45721[0]),
+ (VTBL_ENTRY)&_ZN7ee457213barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee457213barEv,_ZTv0_n20_N7ee457213barEv),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee45721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee45721[];
+extern void _ZN6dd57213barEv();
+static VTBL_ENTRY _tg__ZTV6dd5721__7ee45721[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5721[0]),
+ (VTBL_ENTRY)&_ZN6dd57213barEv,
+};
+extern void _ZN5cc7213fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57213barEv,_ZTv0_n20_N6dd57213barEv)();
+extern void ABISELECT(_ZThn16_N6dd57213barEv,_ZThn12_N6dd57213barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc721__6dd5721__7ee45721[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57213barEv,_ZTv0_n20_N6dd57213barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd5721__7ee45721[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc721__7ee45721[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc721__7ee45721[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+static VTT_ENTRY vtt_ee45721[] = {
+ {&(_ZTV7ee45721[4]), 4,16},
+ {&(_tg__ZTV6dd5721__7ee45721[4]), 4,5},
+ {&(_tg__ZTV5cc721__6dd5721__7ee45721[5]), 5,7},
+ {&(_tg__ZTV4bb21__6dd5721__7ee45721[3]), 3,4},
+ {&(_ZTV7ee45721[10]), 10,16},
+ {&(_ZTV7ee45721[15]), 15,16},
+ {&(_tg__ZTV5cc721__7ee45721[3]), 3,5},
+ {&(_tg__ZTV4bb21__5cc721__7ee45721[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee45721[];
+extern VTBL_ENTRY _ZTV7ee45721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45721[];
+static VTBL_ENTRY alt_thunk_names829[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57213barEv,_ZTv0_n20_N6dd57213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57213barEv,_ZThn12_N6dd57213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee457213barEv,_ZTv0_n20_N7ee457213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee457213barEv,_ZThn12_N7ee457213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45721 = { "ee45721", // class name
+ bases_ee45721, 4,
+ &(vtc_ee45721[0]), // expected_vtbl_contents
+ &(vtt_ee45721[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee45721),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45721),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45721),8, //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 ee55721 : virtual dd5721 {
+ int e;
+ virtual void bar(); // _ZN7ee557213barEv
+ ~ee55721(); // tgen
+ ee55721(); // tgen
+};
+//SIG(1 ee55721) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 Fi} v2 Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee55721 ::bar(){vfunc_called(this, "_ZN7ee557213barEv");}
+ee55721 ::~ee55721(){ note_dtor("ee55721", this);} // tgen
+ee55721 ::ee55721(){ note_ctor("ee55721", this);} // tgen
+
+static void Test_ee55721()
+{
+ extern Class_Descriptor cd_ee55721;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee55721, buf);
+ ee55721 *dp, &lv = *(dp=new (buf) ee55721());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee55721)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55721)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(48,24), "ee55721");
+ check_base_class_offset(lv, (bb21*)(cc721*), ABISELECT(48,24), "ee55721");
+ check_base_class_offset(lv, (cc721*)(dd5721*), ABISELECT(32,16), "ee55721");
+ check_base_class_offset(lv, (dd5721*), ABISELECT(16,8), "ee55721");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55721.e");
+ test_class_info(&lv, &cd_ee55721);
+ dp->~ee55721();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55721(Test_ee55721, "ee55721", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee55721C1Ev();
+extern void _ZN7ee55721D1Ev();
+Name_Map name_map_ee55721[] = {
+ NSPAIR(_ZN7ee55721C1Ev),
+ NSPAIR(_ZN7ee55721D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc721;
+extern VTBL_ENTRY _ZTI5cc721[];
+extern VTBL_ENTRY _ZTV5cc721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc721[];
+extern Class_Descriptor cd_dd5721;
+extern VTBL_ENTRY _ZTI6dd5721[];
+extern VTBL_ENTRY _ZTV6dd5721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5721[];
+static Base_Class bases_ee55721[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb21, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc721, 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_dd5721, ABISELECT(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 _ZTI7ee55721[];
+extern void _ZN7ee557213barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee557213barEv,_ZTv0_n20_N7ee557213barEv)();
+extern void ABISELECT(_ZThn16_N7ee557213barEv,_ZThn8_N7ee557213barEv)() __attribute__((weak));
+extern void _ZN5cc7213fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee557213barEv,_ZTv0_n20_N7ee557213barEv)();
+extern void ABISELECT(_ZThn32_N7ee557213barEv,_ZThn16_N7ee557213barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee55721[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55721[0]),
+ (VTBL_ENTRY)&_ZN7ee557213barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee557213barEv,_ZTv0_n20_N7ee557213barEv),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee557213barEv,_ZTv0_n20_N7ee557213barEv),
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee55721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee55721[];
+extern void _ZN6dd57213barEv();
+static VTBL_ENTRY _tg__ZTV6dd5721__7ee55721[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5721[0]),
+ (VTBL_ENTRY)&_ZN6dd57213barEv,
+};
+extern void _ZN5cc7213fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57213barEv,_ZTv0_n20_N6dd57213barEv)();
+extern void ABISELECT(_ZThn16_N6dd57213barEv,_ZThn8_N6dd57213barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc721__6dd5721__7ee55721[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57213barEv,_ZTv0_n20_N6dd57213barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd5721__7ee55721[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc721__7ee55721[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc721__7ee55721[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+static VTT_ENTRY vtt_ee55721[] = {
+ {&(_ZTV7ee55721[5]), 5,23},
+ {&(_ZTV7ee55721[11]), 11,23},
+ {&(_ZTV7ee55721[17]), 17,23},
+ {&(_ZTV7ee55721[22]), 22,23},
+ {&(_tg__ZTV6dd5721__7ee55721[4]), 4,5},
+ {&(_tg__ZTV5cc721__6dd5721__7ee55721[5]), 5,7},
+ {&(_tg__ZTV4bb21__6dd5721__7ee55721[3]), 3,4},
+ {&(_tg__ZTV5cc721__7ee55721[3]), 3,5},
+ {&(_tg__ZTV4bb21__5cc721__7ee55721[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee55721[];
+extern VTBL_ENTRY _ZTV7ee55721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55721[];
+static VTBL_ENTRY alt_thunk_names830[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57213barEv,_ZTv0_n20_N6dd57213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57213barEv,_ZThn8_N6dd57213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee557213barEv,_ZTv0_n20_N7ee557213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee557213barEv,_ZThn16_N7ee557213barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee557213barEv,_ZThn8_N7ee557213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55721 = { "ee55721", // class name
+ bases_ee55721, 4,
+ &(vtc_ee55721[0]), // expected_vtbl_contents
+ &(vtt_ee55721[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee55721),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55721),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55721),9, //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 ee65721 : dd5721 {
+ int e;
+ virtual void foo(); // _ZN7ee657213fooEv
+ virtual void bar(); // _ZN7ee657213barEv
+ ~ee65721(); // tgen
+ ee65721(); // tgen
+};
+//SIG(1 ee65721) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65721 ::foo(){vfunc_called(this, "_ZN7ee657213fooEv");}
+void ee65721 ::bar(){vfunc_called(this, "_ZN7ee657213barEv");}
+ee65721 ::~ee65721(){ note_dtor("ee65721", this);} // tgen
+ee65721 ::ee65721(){ note_ctor("ee65721", this);} // tgen
+
+static void Test_ee65721()
+{
+ extern Class_Descriptor cd_ee65721;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee65721, buf);
+ ee65721 *dp, &lv = *(dp=new (buf) ee65721());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee65721)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65721)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee65721");
+ check_base_class_offset(lv, (bb21*)(cc721*), ABISELECT(32,20), "ee65721");
+ check_base_class_offset(lv, (cc721*)(dd5721*), ABISELECT(16,12), "ee65721");
+ check_base_class_offset(lv, (dd5721*), 0, "ee65721");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65721.e");
+ test_class_info(&lv, &cd_ee65721);
+ dp->~ee65721();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65721(Test_ee65721, "ee65721", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee65721C1Ev();
+extern void _ZN7ee65721D1Ev();
+Name_Map name_map_ee65721[] = {
+ NSPAIR(_ZN7ee65721C1Ev),
+ NSPAIR(_ZN7ee65721D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc721;
+extern VTBL_ENTRY _ZTI5cc721[];
+extern VTBL_ENTRY _ZTV5cc721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc721[];
+extern Class_Descriptor cd_dd5721;
+extern VTBL_ENTRY _ZTI6dd5721[];
+extern VTBL_ENTRY _ZTV6dd5721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5721[];
+static Base_Class bases_ee65721[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc721, 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_dd5721, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65721[];
+extern void _ZN7ee657213barEv();
+extern void _ZN7ee657213fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee657213fooEv,_ZTv0_n16_N7ee657213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee657213fooEv,_ZThn12_N7ee657213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee657213barEv,_ZTv0_n20_N7ee657213barEv)();
+extern void ABISELECT(_ZThn16_N7ee657213barEv,_ZThn12_N7ee657213barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee657213fooEv,_ZTv0_n12_N7ee657213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee657213fooEv,_ZThn20_N7ee657213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65721[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65721[0]),
+ (VTBL_ENTRY)&_ZN7ee657213barEv,
+ (VTBL_ENTRY)&_ZN7ee657213fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee657213fooEv,_ZTv0_n16_N7ee657213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee657213barEv,_ZTv0_n20_N7ee657213barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee65721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee657213fooEv,_ZTv0_n12_N7ee657213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee65721[];
+extern void _ZN6dd57213barEv();
+static VTBL_ENTRY _tg__ZTV6dd5721__7ee65721[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5721[0]),
+ (VTBL_ENTRY)&_ZN6dd57213barEv,
+};
+extern void _ZN5cc7213fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57213barEv,_ZTv0_n20_N6dd57213barEv)();
+extern void ABISELECT(_ZThn16_N6dd57213barEv,_ZThn12_N6dd57213barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc721__6dd5721__7ee65721[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57213barEv,_ZTv0_n20_N6dd57213barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd5721__7ee65721[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc721__7ee65721[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc721__7ee65721[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+static VTT_ENTRY vtt_ee65721[] = {
+ {&(_ZTV7ee65721[4]), 4,17},
+ {&(_tg__ZTV6dd5721__7ee65721[4]), 4,5},
+ {&(_tg__ZTV5cc721__6dd5721__7ee65721[5]), 5,7},
+ {&(_tg__ZTV4bb21__6dd5721__7ee65721[3]), 3,4},
+ {&(_ZTV7ee65721[11]), 11,17},
+ {&(_ZTV7ee65721[16]), 16,17},
+ {&(_tg__ZTV5cc721__7ee65721[3]), 3,5},
+ {&(_tg__ZTV4bb21__5cc721__7ee65721[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee65721[];
+extern VTBL_ENTRY _ZTV7ee65721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65721[];
+static VTBL_ENTRY alt_thunk_names831[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57213barEv,_ZTv0_n20_N6dd57213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57213barEv,_ZThn12_N6dd57213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee657213fooEv,_ZTv0_n12_N7ee657213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee657213fooEv,_ZThn20_N7ee657213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee657213barEv,_ZTv0_n20_N7ee657213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee657213barEv,_ZThn12_N7ee657213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee657213fooEv,_ZTv0_n16_N7ee657213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee657213fooEv,_ZThn12_N7ee657213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65721 = { "ee65721", // class name
+ bases_ee65721, 4,
+ &(vtc_ee65721[0]), // expected_vtbl_contents
+ &(vtt_ee65721[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee65721),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65721),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65721),8, //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 ee75721 : virtual dd5721 {
+ int e;
+ virtual void foo(); // _ZN7ee757213fooEv
+ virtual void bar(); // _ZN7ee757213barEv
+ ~ee75721(); // tgen
+ ee75721(); // tgen
+};
+//SIG(1 ee75721) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75721 ::foo(){vfunc_called(this, "_ZN7ee757213fooEv");}
+void ee75721 ::bar(){vfunc_called(this, "_ZN7ee757213barEv");}
+ee75721 ::~ee75721(){ note_dtor("ee75721", this);} // tgen
+ee75721 ::ee75721(){ note_ctor("ee75721", this);} // tgen
+
+static void Test_ee75721()
+{
+ extern Class_Descriptor cd_ee75721;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee75721, buf);
+ ee75721 *dp, &lv = *(dp=new (buf) ee75721());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee75721)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75721)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(48,24), "ee75721");
+ check_base_class_offset(lv, (bb21*)(cc721*), ABISELECT(48,24), "ee75721");
+ check_base_class_offset(lv, (cc721*)(dd5721*), ABISELECT(32,16), "ee75721");
+ check_base_class_offset(lv, (dd5721*), ABISELECT(16,8), "ee75721");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75721.e");
+ test_class_info(&lv, &cd_ee75721);
+ dp->~ee75721();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75721(Test_ee75721, "ee75721", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee75721C1Ev();
+extern void _ZN7ee75721D1Ev();
+Name_Map name_map_ee75721[] = {
+ NSPAIR(_ZN7ee75721C1Ev),
+ NSPAIR(_ZN7ee75721D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc721;
+extern VTBL_ENTRY _ZTI5cc721[];
+extern VTBL_ENTRY _ZTV5cc721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc721[];
+extern Class_Descriptor cd_dd5721;
+extern VTBL_ENTRY _ZTI6dd5721[];
+extern VTBL_ENTRY _ZTV6dd5721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5721[];
+static Base_Class bases_ee75721[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb21, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc721, 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_dd5721, 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 _ZTI7ee75721[];
+extern void _ZN7ee757213fooEv();
+extern void _ZN7ee757213barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee757213barEv,_ZTv0_n20_N7ee757213barEv)();
+extern void ABISELECT(_ZThn16_N7ee757213barEv,_ZThn8_N7ee757213barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee757213fooEv,_ZTv0_n16_N7ee757213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee757213fooEv,_ZThn16_N7ee757213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee757213barEv,_ZTv0_n20_N7ee757213barEv)();
+extern void ABISELECT(_ZThn32_N7ee757213barEv,_ZThn16_N7ee757213barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee757213fooEv,_ZTv0_n12_N7ee757213fooEv)();
+extern void ABISELECT(_ZThn48_N7ee757213fooEv,_ZThn24_N7ee757213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75721[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75721[0]),
+ (VTBL_ENTRY)&_ZN7ee757213fooEv,
+ (VTBL_ENTRY)&_ZN7ee757213barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee757213barEv,_ZTv0_n20_N7ee757213barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee757213fooEv,_ZTv0_n16_N7ee757213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee757213barEv,_ZTv0_n20_N7ee757213barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee75721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee757213fooEv,_ZTv0_n12_N7ee757213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee75721[];
+extern void _ZN6dd57213barEv();
+static VTBL_ENTRY _tg__ZTV6dd5721__7ee75721[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5721[0]),
+ (VTBL_ENTRY)&_ZN6dd57213barEv,
+};
+extern void _ZN5cc7213fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57213barEv,_ZTv0_n20_N6dd57213barEv)();
+extern void ABISELECT(_ZThn16_N6dd57213barEv,_ZThn8_N6dd57213barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc721__6dd5721__7ee75721[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57213barEv,_ZTv0_n20_N6dd57213barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd5721__7ee75721[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc721__7ee75721[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc721__7ee75721[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+static VTT_ENTRY vtt_ee75721[] = {
+ {&(_ZTV7ee75721[5]), 5,24},
+ {&(_ZTV7ee75721[12]), 12,24},
+ {&(_ZTV7ee75721[18]), 18,24},
+ {&(_ZTV7ee75721[23]), 23,24},
+ {&(_tg__ZTV6dd5721__7ee75721[4]), 4,5},
+ {&(_tg__ZTV5cc721__6dd5721__7ee75721[5]), 5,7},
+ {&(_tg__ZTV4bb21__6dd5721__7ee75721[3]), 3,4},
+ {&(_tg__ZTV5cc721__7ee75721[3]), 3,5},
+ {&(_tg__ZTV4bb21__5cc721__7ee75721[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee75721[];
+extern VTBL_ENTRY _ZTV7ee75721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75721[];
+static VTBL_ENTRY alt_thunk_names832[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57213barEv,_ZTv0_n20_N6dd57213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57213barEv,_ZThn8_N6dd57213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee757213fooEv,_ZTv0_n12_N7ee757213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee757213fooEv,_ZThn24_N7ee757213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee757213fooEv,_ZTv0_n16_N7ee757213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee757213fooEv,_ZThn16_N7ee757213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee757213barEv,_ZTv0_n20_N7ee757213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee757213barEv,_ZThn16_N7ee757213barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee757213barEv,_ZThn8_N7ee757213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75721 = { "ee75721", // class name
+ bases_ee75721, 4,
+ &(vtc_ee75721[0]), // expected_vtbl_contents
+ &(vtt_ee75721[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee75721),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75721),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75721),9, //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 dd6721 : cc721 {
+ int d;
+ virtual void bar(); // _ZN6dd67213barEv
+ virtual void foo(); // _ZN6dd67213fooEv
+ ~dd6721(); // tgen
+ dd6721(); // tgen
+};
+//SIG(-1 dd6721) C1{ BC2{ VBC3{ BC4{ v2 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void dd6721 ::bar(){vfunc_called(this, "_ZN6dd67213barEv");}
+void dd6721 ::foo(){vfunc_called(this, "_ZN6dd67213fooEv");}
+dd6721 ::~dd6721(){ note_dtor("dd6721", this);} // tgen
+dd6721 ::dd6721(){ note_ctor("dd6721", this);} // tgen
+
+static void Test_dd6721()
+{
+ extern Class_Descriptor cd_dd6721;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd6721, buf);
+ dd6721 *dp, &lv = *(dp=new (buf) dd6721());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd6721)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6721)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(16,12), "dd6721");
+ check_base_class_offset(lv, (bb21*)(cc721*), ABISELECT(16,12), "dd6721");
+ check_base_class_offset(lv, (cc721*), 0, "dd6721");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd6721.d");
+ test_class_info(&lv, &cd_dd6721);
+ dp->~dd6721();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6721(Test_dd6721, "dd6721", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd6721C1Ev();
+extern void _ZN6dd6721D1Ev();
+Name_Map name_map_dd6721[] = {
+ NSPAIR(_ZN6dd6721C1Ev),
+ NSPAIR(_ZN6dd6721D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc721;
+extern VTBL_ENTRY _ZTI5cc721[];
+extern VTBL_ENTRY _ZTV5cc721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc721[];
+static Base_Class bases_dd6721[] = {
+ // 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_bb21, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc721, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd6721[];
+extern void _ZN6dd67213fooEv();
+extern void _ZN6dd67213barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd67213fooEv,_ZTv0_n12_N6dd67213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd67213fooEv,_ZThn12_N6dd67213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd6721[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6721[0]),
+ (VTBL_ENTRY)&_ZN6dd67213fooEv,
+ (VTBL_ENTRY)&_ZN6dd67213barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67213fooEv,_ZTv0_n12_N6dd67213fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd6721[];
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc721__6dd6721[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn12_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc721__6dd6721[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+static VTT_ENTRY vtt_dd6721[] = {
+ {&(_ZTV6dd6721[3]), 3,9},
+ {&(_tg__ZTV5cc721__6dd6721[3]), 3,5},
+ {&(_tg__ZTV4bb21__5cc721__6dd6721[3]), 3,4},
+ {&(_ZTV6dd6721[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI6dd6721[];
+extern VTBL_ENTRY _ZTV6dd6721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6721[];
+static VTBL_ENTRY alt_thunk_names833[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn12_N5cc7213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67213fooEv,_ZTv0_n12_N6dd67213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67213fooEv,_ZThn12_N6dd67213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd6721 = { "dd6721", // class name
+ bases_dd6721, 3,
+ &(vtc_dd6721[0]), // expected_vtbl_contents
+ &(vtt_dd6721[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd6721),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6721),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd6721),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names833,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee06721 : dd6721 {
+ int e;
+ ~ee06721(); // tgen
+ ee06721(); // tgen
+};
+//SIG(1 ee06721) C1{ BC2{ BC3{ VBC4{ BC5{ v2 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee06721 ::~ee06721(){ note_dtor("ee06721", this);} // tgen
+ee06721 ::ee06721(){ note_ctor("ee06721", this);} // tgen
+
+static void Test_ee06721()
+{
+ extern Class_Descriptor cd_ee06721;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee06721, buf);
+ ee06721 *dp, &lv = *(dp=new (buf) ee06721());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee06721)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06721)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(24,16), "ee06721");
+ check_base_class_offset(lv, (bb21*)(cc721*)(dd6721*), ABISELECT(24,16), "ee06721");
+ check_base_class_offset(lv, (cc721*)(dd6721*), 0, "ee06721");
+ check_base_class_offset(lv, (dd6721*), 0, "ee06721");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee06721.e");
+ test_class_info(&lv, &cd_ee06721);
+ dp->~ee06721();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06721(Test_ee06721, "ee06721", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee06721C1Ev();
+extern void _ZN7ee06721D1Ev();
+Name_Map name_map_ee06721[] = {
+ NSPAIR(_ZN7ee06721C1Ev),
+ NSPAIR(_ZN7ee06721D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc721;
+extern VTBL_ENTRY _ZTI5cc721[];
+extern VTBL_ENTRY _ZTV5cc721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc721[];
+extern Class_Descriptor cd_dd6721;
+extern VTBL_ENTRY _ZTI6dd6721[];
+extern VTBL_ENTRY _ZTV6dd6721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6721[];
+static Base_Class bases_ee06721[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc721, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6721, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee06721[];
+extern void _ZN6dd67213fooEv();
+extern void _ZN6dd67213barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd67213fooEv,_ZTv0_n12_N6dd67213fooEv)();
+extern void ABISELECT(_ZThn24_N6dd67213fooEv,_ZThn16_N6dd67213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee06721[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06721[0]),
+ (VTBL_ENTRY)&_ZN6dd67213fooEv,
+ (VTBL_ENTRY)&_ZN6dd67213barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee06721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67213fooEv,_ZTv0_n12_N6dd67213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee06721[];
+extern void _ZN6dd67213fooEv();
+extern void _ZN6dd67213barEv();
+static VTBL_ENTRY _tg__ZTV6dd6721__7ee06721[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6721[0]),
+ (VTBL_ENTRY)&_ZN6dd67213fooEv,
+ (VTBL_ENTRY)&_ZN6dd67213barEv,
+};
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc7216dd6721__7ee06721[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7213fooEv,_ZThn16_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc7216dd6721__7ee06721[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd67213fooEv,_ZTv0_n12_N6dd67213fooEv)();
+extern void ABISELECT(_ZThn24_N6dd67213fooEv,_ZThn16_N6dd67213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd6721__7ee06721[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67213fooEv,_ZTv0_n12_N6dd67213fooEv),
+};
+static VTT_ENTRY vtt_ee06721[] = {
+ {&(_ZTV7ee06721[3]), 3,9},
+ {&(_tg__ZTV6dd6721__7ee06721[3]), 3,5},
+ {&(_tg__ZTV5cc7216dd6721__7ee06721[3]), 3,5},
+ {&(_tg__ZTV4bb21__5cc7216dd6721__7ee06721[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd6721__7ee06721[3]), 3,4},
+ {&(_ZTV7ee06721[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee06721[];
+extern VTBL_ENTRY _ZTV7ee06721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee06721[];
+static VTBL_ENTRY alt_thunk_names834[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7213fooEv,_ZThn16_N5cc7213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67213fooEv,_ZTv0_n12_N6dd67213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67213fooEv,_ZThn16_N6dd67213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67213fooEv,_ZThn16_N6dd67213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee06721 = { "ee06721", // class name
+ bases_ee06721, 4,
+ &(vtc_ee06721[0]), // expected_vtbl_contents
+ &(vtt_ee06721[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee06721),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06721),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee06721),6, //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 ee16721 : virtual dd6721 {
+ int e;
+ ~ee16721(); // tgen
+ ee16721(); // tgen
+};
+//SIG(1 ee16721) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee16721 ::~ee16721(){ note_dtor("ee16721", this);} // tgen
+ee16721 ::ee16721(){ note_ctor("ee16721", this);} // tgen
+
+static void Test_ee16721()
+{
+ extern Class_Descriptor cd_ee16721;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee16721, buf);
+ ee16721 *dp, &lv = *(dp=new (buf) ee16721());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee16721)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16721)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee16721");
+ check_base_class_offset(lv, (bb21*)(cc721*)(dd6721*), ABISELECT(32,20), "ee16721");
+ check_base_class_offset(lv, (cc721*)(dd6721*), ABISELECT(16,8), "ee16721");
+ check_base_class_offset(lv, (dd6721*), ABISELECT(16,8), "ee16721");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16721.e");
+ test_class_info(&lv, &cd_ee16721);
+ dp->~ee16721();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16721(Test_ee16721, "ee16721", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee16721C1Ev();
+extern void _ZN7ee16721D1Ev();
+Name_Map name_map_ee16721[] = {
+ NSPAIR(_ZN7ee16721C1Ev),
+ NSPAIR(_ZN7ee16721D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc721;
+extern VTBL_ENTRY _ZTI5cc721[];
+extern VTBL_ENTRY _ZTV5cc721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc721[];
+extern Class_Descriptor cd_dd6721;
+extern VTBL_ENTRY _ZTI6dd6721[];
+extern VTBL_ENTRY _ZTV6dd6721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6721[];
+static Base_Class bases_ee16721[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc721, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6721, 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 _ZTI7ee16721[];
+extern void _ZN6dd67213fooEv();
+extern void _ZN6dd67213barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd67213fooEv,_ZTv0_n12_N6dd67213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd67213fooEv,_ZThn12_N6dd67213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee16721[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16721[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16721[0]),
+ (VTBL_ENTRY)&_ZN6dd67213fooEv,
+ (VTBL_ENTRY)&_ZN6dd67213barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee16721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67213fooEv,_ZTv0_n12_N6dd67213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee16721[];
+extern void _ZN6dd67213fooEv();
+extern void _ZN6dd67213barEv();
+static VTBL_ENTRY _tg__ZTV6dd6721__7ee16721[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6721[0]),
+ (VTBL_ENTRY)&_ZN6dd67213fooEv,
+ (VTBL_ENTRY)&_ZN6dd67213barEv,
+};
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc7216dd6721__7ee16721[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn12_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc7216dd6721__7ee16721[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd67213fooEv,_ZTv0_n12_N6dd67213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd67213fooEv,_ZThn12_N6dd67213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd6721__7ee16721[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67213fooEv,_ZTv0_n12_N6dd67213fooEv),
+};
+static VTT_ENTRY vtt_ee16721[] = {
+ {&(_ZTV7ee16721[4]), 4,15},
+ {&(_ZTV7ee16721[9]), 9,15},
+ {&(_ZTV7ee16721[14]), 14,15},
+ {&(_tg__ZTV6dd6721__7ee16721[3]), 3,5},
+ {&(_tg__ZTV5cc7216dd6721__7ee16721[3]), 3,5},
+ {&(_tg__ZTV4bb21__5cc7216dd6721__7ee16721[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd6721__7ee16721[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee16721[];
+extern VTBL_ENTRY _ZTV7ee16721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16721[];
+static VTBL_ENTRY alt_thunk_names835[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn12_N5cc7213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67213fooEv,_ZTv0_n12_N6dd67213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67213fooEv,_ZThn12_N6dd67213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67213fooEv,_ZThn12_N6dd67213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee16721 = { "ee16721", // class name
+ bases_ee16721, 4,
+ &(vtc_ee16721[0]), // expected_vtbl_contents
+ &(vtt_ee16721[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee16721),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16721),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16721),7, //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 ee26721 : dd6721 {
+ int e;
+ virtual void foo(); // _ZN7ee267213fooEv
+ ~ee26721(); // tgen
+ ee26721(); // tgen
+};
+//SIG(1 ee26721) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26721 ::foo(){vfunc_called(this, "_ZN7ee267213fooEv");}
+ee26721 ::~ee26721(){ note_dtor("ee26721", this);} // tgen
+ee26721 ::ee26721(){ note_ctor("ee26721", this);} // tgen
+
+static void Test_ee26721()
+{
+ extern Class_Descriptor cd_ee26721;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee26721, buf);
+ ee26721 *dp, &lv = *(dp=new (buf) ee26721());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee26721)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26721)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(24,16), "ee26721");
+ check_base_class_offset(lv, (bb21*)(cc721*)(dd6721*), ABISELECT(24,16), "ee26721");
+ check_base_class_offset(lv, (cc721*)(dd6721*), 0, "ee26721");
+ check_base_class_offset(lv, (dd6721*), 0, "ee26721");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee26721.e");
+ test_class_info(&lv, &cd_ee26721);
+ dp->~ee26721();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26721(Test_ee26721, "ee26721", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee26721C1Ev();
+extern void _ZN7ee26721D1Ev();
+Name_Map name_map_ee26721[] = {
+ NSPAIR(_ZN7ee26721C1Ev),
+ NSPAIR(_ZN7ee26721D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc721;
+extern VTBL_ENTRY _ZTI5cc721[];
+extern VTBL_ENTRY _ZTV5cc721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc721[];
+extern Class_Descriptor cd_dd6721;
+extern VTBL_ENTRY _ZTI6dd6721[];
+extern VTBL_ENTRY _ZTV6dd6721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6721[];
+static Base_Class bases_ee26721[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc721, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6721, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee26721[];
+extern void _ZN7ee267213fooEv();
+extern void _ZN6dd67213barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee267213fooEv,_ZTv0_n12_N7ee267213fooEv)();
+extern void ABISELECT(_ZThn24_N7ee267213fooEv,_ZThn16_N7ee267213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee26721[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26721[0]),
+ (VTBL_ENTRY)&_ZN7ee267213fooEv,
+ (VTBL_ENTRY)&_ZN6dd67213barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee26721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee267213fooEv,_ZTv0_n12_N7ee267213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee26721[];
+extern void _ZN6dd67213fooEv();
+extern void _ZN6dd67213barEv();
+static VTBL_ENTRY _tg__ZTV6dd6721__7ee26721[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6721[0]),
+ (VTBL_ENTRY)&_ZN6dd67213fooEv,
+ (VTBL_ENTRY)&_ZN6dd67213barEv,
+};
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc7216dd6721__7ee26721[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7213fooEv,_ZThn16_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc7216dd6721__7ee26721[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd67213fooEv,_ZTv0_n12_N6dd67213fooEv)();
+extern void ABISELECT(_ZThn24_N6dd67213fooEv,_ZThn16_N6dd67213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd6721__7ee26721[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67213fooEv,_ZTv0_n12_N6dd67213fooEv),
+};
+static VTT_ENTRY vtt_ee26721[] = {
+ {&(_ZTV7ee26721[3]), 3,9},
+ {&(_tg__ZTV6dd6721__7ee26721[3]), 3,5},
+ {&(_tg__ZTV5cc7216dd6721__7ee26721[3]), 3,5},
+ {&(_tg__ZTV4bb21__5cc7216dd6721__7ee26721[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd6721__7ee26721[3]), 3,4},
+ {&(_ZTV7ee26721[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee26721[];
+extern VTBL_ENTRY _ZTV7ee26721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee26721[];
+static VTBL_ENTRY alt_thunk_names836[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67213fooEv,_ZTv0_n12_N6dd67213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67213fooEv,_ZThn16_N6dd67213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7213fooEv,_ZThn16_N5cc7213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee267213fooEv,_ZTv0_n12_N7ee267213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee267213fooEv,_ZThn16_N7ee267213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee26721 = { "ee26721", // class name
+ bases_ee26721, 4,
+ &(vtc_ee26721[0]), // expected_vtbl_contents
+ &(vtt_ee26721[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee26721),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26721),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee26721),6, //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 ee36721 : virtual dd6721 {
+ int e;
+ virtual void foo(); // _ZN7ee367213fooEv
+ ~ee36721(); // tgen
+ ee36721(); // tgen
+};
+//SIG(1 ee36721) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36721 ::foo(){vfunc_called(this, "_ZN7ee367213fooEv");}
+ee36721 ::~ee36721(){ note_dtor("ee36721", this);} // tgen
+ee36721 ::ee36721(){ note_ctor("ee36721", this);} // tgen
+
+static void Test_ee36721()
+{
+ extern Class_Descriptor cd_ee36721;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee36721, buf);
+ ee36721 *dp, &lv = *(dp=new (buf) ee36721());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee36721)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36721)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee36721");
+ check_base_class_offset(lv, (bb21*)(cc721*)(dd6721*), ABISELECT(32,20), "ee36721");
+ check_base_class_offset(lv, (cc721*)(dd6721*), ABISELECT(16,8), "ee36721");
+ check_base_class_offset(lv, (dd6721*), ABISELECT(16,8), "ee36721");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36721.e");
+ test_class_info(&lv, &cd_ee36721);
+ dp->~ee36721();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36721(Test_ee36721, "ee36721", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee36721C1Ev();
+extern void _ZN7ee36721D1Ev();
+Name_Map name_map_ee36721[] = {
+ NSPAIR(_ZN7ee36721C1Ev),
+ NSPAIR(_ZN7ee36721D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc721;
+extern VTBL_ENTRY _ZTI5cc721[];
+extern VTBL_ENTRY _ZTV5cc721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc721[];
+extern Class_Descriptor cd_dd6721;
+extern VTBL_ENTRY _ZTI6dd6721[];
+extern VTBL_ENTRY _ZTV6dd6721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6721[];
+static Base_Class bases_ee36721[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc721, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6721, 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 _ZTI7ee36721[];
+extern void _ZN7ee367213fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee367213fooEv,_ZTv0_n16_N7ee367213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee367213fooEv,_ZThn8_N7ee367213fooEv)() __attribute__((weak));
+extern void _ZN6dd67213barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee367213fooEv,_ZTv0_n12_N7ee367213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee367213fooEv,_ZThn20_N7ee367213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee36721[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36721[0]),
+ (VTBL_ENTRY)&_ZN7ee367213fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee367213fooEv,_ZTv0_n16_N7ee367213fooEv),
+ (VTBL_ENTRY)&_ZN6dd67213barEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee36721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee367213fooEv,_ZTv0_n12_N7ee367213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee36721[];
+extern void _ZN6dd67213fooEv();
+extern void _ZN6dd67213barEv();
+static VTBL_ENTRY _tg__ZTV6dd6721__7ee36721[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6721[0]),
+ (VTBL_ENTRY)&_ZN6dd67213fooEv,
+ (VTBL_ENTRY)&_ZN6dd67213barEv,
+};
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc7216dd6721__7ee36721[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn12_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc7216dd6721__7ee36721[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd67213fooEv,_ZTv0_n12_N6dd67213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd67213fooEv,_ZThn12_N6dd67213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd6721__7ee36721[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67213fooEv,_ZTv0_n12_N6dd67213fooEv),
+};
+static VTT_ENTRY vtt_ee36721[] = {
+ {&(_ZTV7ee36721[4]), 4,16},
+ {&(_ZTV7ee36721[10]), 10,16},
+ {&(_ZTV7ee36721[15]), 15,16},
+ {&(_tg__ZTV6dd6721__7ee36721[3]), 3,5},
+ {&(_tg__ZTV5cc7216dd6721__7ee36721[3]), 3,5},
+ {&(_tg__ZTV4bb21__5cc7216dd6721__7ee36721[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd6721__7ee36721[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee36721[];
+extern VTBL_ENTRY _ZTV7ee36721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36721[];
+static VTBL_ENTRY alt_thunk_names837[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67213fooEv,_ZTv0_n12_N6dd67213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67213fooEv,_ZThn12_N6dd67213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn12_N5cc7213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee367213fooEv,_ZTv0_n12_N7ee367213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee367213fooEv,_ZThn20_N7ee367213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee367213fooEv,_ZTv0_n16_N7ee367213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee367213fooEv,_ZThn8_N7ee367213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36721 = { "ee36721", // class name
+ bases_ee36721, 4,
+ &(vtc_ee36721[0]), // expected_vtbl_contents
+ &(vtt_ee36721[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee36721),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36721),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36721),7, //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 ee46721 : dd6721 {
+ int e;
+ virtual void bar(); // _ZN7ee467213barEv
+ ~ee46721(); // tgen
+ ee46721(); // tgen
+};
+//SIG(1 ee46721) C1{ BC2{ BC3{ VBC4{ BC5{ v2 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46721 ::bar(){vfunc_called(this, "_ZN7ee467213barEv");}
+ee46721 ::~ee46721(){ note_dtor("ee46721", this);} // tgen
+ee46721 ::ee46721(){ note_ctor("ee46721", this);} // tgen
+
+static void Test_ee46721()
+{
+ extern Class_Descriptor cd_ee46721;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee46721, buf);
+ ee46721 *dp, &lv = *(dp=new (buf) ee46721());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee46721)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46721)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(24,16), "ee46721");
+ check_base_class_offset(lv, (bb21*)(cc721*)(dd6721*), ABISELECT(24,16), "ee46721");
+ check_base_class_offset(lv, (cc721*)(dd6721*), 0, "ee46721");
+ check_base_class_offset(lv, (dd6721*), 0, "ee46721");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee46721.e");
+ test_class_info(&lv, &cd_ee46721);
+ dp->~ee46721();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46721(Test_ee46721, "ee46721", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee46721C1Ev();
+extern void _ZN7ee46721D1Ev();
+Name_Map name_map_ee46721[] = {
+ NSPAIR(_ZN7ee46721C1Ev),
+ NSPAIR(_ZN7ee46721D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc721;
+extern VTBL_ENTRY _ZTI5cc721[];
+extern VTBL_ENTRY _ZTV5cc721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc721[];
+extern Class_Descriptor cd_dd6721;
+extern VTBL_ENTRY _ZTI6dd6721[];
+extern VTBL_ENTRY _ZTV6dd6721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6721[];
+static Base_Class bases_ee46721[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc721, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6721, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee46721[];
+extern void _ZN6dd67213fooEv();
+extern void _ZN7ee467213barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd67213fooEv,_ZTv0_n12_N6dd67213fooEv)();
+extern void ABISELECT(_ZThn24_N6dd67213fooEv,_ZThn16_N6dd67213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee46721[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46721[0]),
+ (VTBL_ENTRY)&_ZN6dd67213fooEv,
+ (VTBL_ENTRY)&_ZN7ee467213barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee46721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67213fooEv,_ZTv0_n12_N6dd67213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee46721[];
+extern void _ZN6dd67213fooEv();
+extern void _ZN6dd67213barEv();
+static VTBL_ENTRY _tg__ZTV6dd6721__7ee46721[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6721[0]),
+ (VTBL_ENTRY)&_ZN6dd67213fooEv,
+ (VTBL_ENTRY)&_ZN6dd67213barEv,
+};
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc7216dd6721__7ee46721[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7213fooEv,_ZThn16_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc7216dd6721__7ee46721[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd67213fooEv,_ZTv0_n12_N6dd67213fooEv)();
+extern void ABISELECT(_ZThn24_N6dd67213fooEv,_ZThn16_N6dd67213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd6721__7ee46721[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67213fooEv,_ZTv0_n12_N6dd67213fooEv),
+};
+static VTT_ENTRY vtt_ee46721[] = {
+ {&(_ZTV7ee46721[3]), 3,9},
+ {&(_tg__ZTV6dd6721__7ee46721[3]), 3,5},
+ {&(_tg__ZTV5cc7216dd6721__7ee46721[3]), 3,5},
+ {&(_tg__ZTV4bb21__5cc7216dd6721__7ee46721[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd6721__7ee46721[3]), 3,4},
+ {&(_ZTV7ee46721[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee46721[];
+extern VTBL_ENTRY _ZTV7ee46721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee46721[];
+static VTBL_ENTRY alt_thunk_names838[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7213fooEv,_ZThn16_N5cc7213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67213fooEv,_ZTv0_n12_N6dd67213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67213fooEv,_ZThn16_N6dd67213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67213fooEv,_ZThn16_N6dd67213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee46721 = { "ee46721", // class name
+ bases_ee46721, 4,
+ &(vtc_ee46721[0]), // expected_vtbl_contents
+ &(vtt_ee46721[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee46721),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46721),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee46721),6, //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 ee56721 : virtual dd6721 {
+ int e;
+ virtual void bar(); // _ZN7ee567213barEv
+ ~ee56721(); // tgen
+ ee56721(); // tgen
+};
+//SIG(1 ee56721) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56721 ::bar(){vfunc_called(this, "_ZN7ee567213barEv");}
+ee56721 ::~ee56721(){ note_dtor("ee56721", this);} // tgen
+ee56721 ::ee56721(){ note_ctor("ee56721", this);} // tgen
+
+static void Test_ee56721()
+{
+ extern Class_Descriptor cd_ee56721;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee56721, buf);
+ ee56721 *dp, &lv = *(dp=new (buf) ee56721());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee56721)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56721)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee56721");
+ check_base_class_offset(lv, (bb21*)(cc721*)(dd6721*), ABISELECT(32,20), "ee56721");
+ check_base_class_offset(lv, (cc721*)(dd6721*), ABISELECT(16,8), "ee56721");
+ check_base_class_offset(lv, (dd6721*), ABISELECT(16,8), "ee56721");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56721.e");
+ test_class_info(&lv, &cd_ee56721);
+ dp->~ee56721();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56721(Test_ee56721, "ee56721", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee56721C1Ev();
+extern void _ZN7ee56721D1Ev();
+Name_Map name_map_ee56721[] = {
+ NSPAIR(_ZN7ee56721C1Ev),
+ NSPAIR(_ZN7ee56721D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc721;
+extern VTBL_ENTRY _ZTI5cc721[];
+extern VTBL_ENTRY _ZTV5cc721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc721[];
+extern Class_Descriptor cd_dd6721;
+extern VTBL_ENTRY _ZTI6dd6721[];
+extern VTBL_ENTRY _ZTV6dd6721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6721[];
+static Base_Class bases_ee56721[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc721, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6721, 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 _ZTI7ee56721[];
+extern void _ZN7ee567213barEv();
+extern void _ZN6dd67213fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee567213barEv,_ZTv0_n20_N7ee567213barEv)();
+extern void ABISELECT(_ZThn16_N7ee567213barEv,_ZThn8_N7ee567213barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd67213fooEv,_ZTv0_n12_N6dd67213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd67213fooEv,_ZThn12_N6dd67213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56721[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56721[0]),
+ (VTBL_ENTRY)&_ZN7ee567213barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56721[0]),
+ (VTBL_ENTRY)&_ZN6dd67213fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee567213barEv,_ZTv0_n20_N7ee567213barEv),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee56721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67213fooEv,_ZTv0_n12_N6dd67213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee56721[];
+extern void _ZN6dd67213fooEv();
+extern void _ZN6dd67213barEv();
+static VTBL_ENTRY _tg__ZTV6dd6721__7ee56721[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6721[0]),
+ (VTBL_ENTRY)&_ZN6dd67213fooEv,
+ (VTBL_ENTRY)&_ZN6dd67213barEv,
+};
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc7216dd6721__7ee56721[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn12_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc7216dd6721__7ee56721[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd67213fooEv,_ZTv0_n12_N6dd67213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd67213fooEv,_ZThn12_N6dd67213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd6721__7ee56721[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67213fooEv,_ZTv0_n12_N6dd67213fooEv),
+};
+static VTT_ENTRY vtt_ee56721[] = {
+ {&(_ZTV7ee56721[4]), 4,16},
+ {&(_ZTV7ee56721[10]), 10,16},
+ {&(_ZTV7ee56721[15]), 15,16},
+ {&(_tg__ZTV6dd6721__7ee56721[3]), 3,5},
+ {&(_tg__ZTV5cc7216dd6721__7ee56721[3]), 3,5},
+ {&(_tg__ZTV4bb21__5cc7216dd6721__7ee56721[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd6721__7ee56721[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee56721[];
+extern VTBL_ENTRY _ZTV7ee56721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56721[];
+static VTBL_ENTRY alt_thunk_names839[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn12_N5cc7213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67213fooEv,_ZTv0_n12_N6dd67213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67213fooEv,_ZThn12_N6dd67213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67213fooEv,_ZThn12_N6dd67213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee567213barEv,_ZTv0_n20_N7ee567213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee567213barEv,_ZThn8_N7ee567213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56721 = { "ee56721", // class name
+ bases_ee56721, 4,
+ &(vtc_ee56721[0]), // expected_vtbl_contents
+ &(vtt_ee56721[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee56721),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56721),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56721),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names839,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee66721 : dd6721 {
+ int e;
+ virtual void foo(); // _ZN7ee667213fooEv
+ virtual void bar(); // _ZN7ee667213barEv
+ ~ee66721(); // tgen
+ ee66721(); // tgen
+};
+//SIG(1 ee66721) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66721 ::foo(){vfunc_called(this, "_ZN7ee667213fooEv");}
+void ee66721 ::bar(){vfunc_called(this, "_ZN7ee667213barEv");}
+ee66721 ::~ee66721(){ note_dtor("ee66721", this);} // tgen
+ee66721 ::ee66721(){ note_ctor("ee66721", this);} // tgen
+
+static void Test_ee66721()
+{
+ extern Class_Descriptor cd_ee66721;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee66721, buf);
+ ee66721 *dp, &lv = *(dp=new (buf) ee66721());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee66721)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66721)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(24,16), "ee66721");
+ check_base_class_offset(lv, (bb21*)(cc721*)(dd6721*), ABISELECT(24,16), "ee66721");
+ check_base_class_offset(lv, (cc721*)(dd6721*), 0, "ee66721");
+ check_base_class_offset(lv, (dd6721*), 0, "ee66721");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee66721.e");
+ test_class_info(&lv, &cd_ee66721);
+ dp->~ee66721();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66721(Test_ee66721, "ee66721", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee66721C1Ev();
+extern void _ZN7ee66721D1Ev();
+Name_Map name_map_ee66721[] = {
+ NSPAIR(_ZN7ee66721C1Ev),
+ NSPAIR(_ZN7ee66721D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc721;
+extern VTBL_ENTRY _ZTI5cc721[];
+extern VTBL_ENTRY _ZTV5cc721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc721[];
+extern Class_Descriptor cd_dd6721;
+extern VTBL_ENTRY _ZTI6dd6721[];
+extern VTBL_ENTRY _ZTV6dd6721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6721[];
+static Base_Class bases_ee66721[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc721, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6721, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee66721[];
+extern void _ZN7ee667213fooEv();
+extern void _ZN7ee667213barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee667213fooEv,_ZTv0_n12_N7ee667213fooEv)();
+extern void ABISELECT(_ZThn24_N7ee667213fooEv,_ZThn16_N7ee667213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee66721[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66721[0]),
+ (VTBL_ENTRY)&_ZN7ee667213fooEv,
+ (VTBL_ENTRY)&_ZN7ee667213barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee66721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee667213fooEv,_ZTv0_n12_N7ee667213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee66721[];
+extern void _ZN6dd67213fooEv();
+extern void _ZN6dd67213barEv();
+static VTBL_ENTRY _tg__ZTV6dd6721__7ee66721[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6721[0]),
+ (VTBL_ENTRY)&_ZN6dd67213fooEv,
+ (VTBL_ENTRY)&_ZN6dd67213barEv,
+};
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc7216dd6721__7ee66721[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7213fooEv,_ZThn16_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc7216dd6721__7ee66721[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd67213fooEv,_ZTv0_n12_N6dd67213fooEv)();
+extern void ABISELECT(_ZThn24_N6dd67213fooEv,_ZThn16_N6dd67213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd6721__7ee66721[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67213fooEv,_ZTv0_n12_N6dd67213fooEv),
+};
+static VTT_ENTRY vtt_ee66721[] = {
+ {&(_ZTV7ee66721[3]), 3,9},
+ {&(_tg__ZTV6dd6721__7ee66721[3]), 3,5},
+ {&(_tg__ZTV5cc7216dd6721__7ee66721[3]), 3,5},
+ {&(_tg__ZTV4bb21__5cc7216dd6721__7ee66721[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd6721__7ee66721[3]), 3,4},
+ {&(_ZTV7ee66721[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee66721[];
+extern VTBL_ENTRY _ZTV7ee66721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee66721[];
+static VTBL_ENTRY alt_thunk_names840[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67213fooEv,_ZTv0_n12_N6dd67213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67213fooEv,_ZThn16_N6dd67213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7213fooEv,_ZThn16_N5cc7213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee667213fooEv,_ZTv0_n12_N7ee667213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee667213fooEv,_ZThn16_N7ee667213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee66721 = { "ee66721", // class name
+ bases_ee66721, 4,
+ &(vtc_ee66721[0]), // expected_vtbl_contents
+ &(vtt_ee66721[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee66721),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66721),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee66721),6, //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 ee76721 : virtual dd6721 {
+ int e;
+ virtual void foo(); // _ZN7ee767213fooEv
+ virtual void bar(); // _ZN7ee767213barEv
+ ~ee76721(); // tgen
+ ee76721(); // tgen
+};
+//SIG(1 ee76721) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76721 ::foo(){vfunc_called(this, "_ZN7ee767213fooEv");}
+void ee76721 ::bar(){vfunc_called(this, "_ZN7ee767213barEv");}
+ee76721 ::~ee76721(){ note_dtor("ee76721", this);} // tgen
+ee76721 ::ee76721(){ note_ctor("ee76721", this);} // tgen
+
+static void Test_ee76721()
+{
+ extern Class_Descriptor cd_ee76721;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee76721, buf);
+ ee76721 *dp, &lv = *(dp=new (buf) ee76721());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee76721)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76721)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee76721");
+ check_base_class_offset(lv, (bb21*)(cc721*)(dd6721*), ABISELECT(32,20), "ee76721");
+ check_base_class_offset(lv, (cc721*)(dd6721*), ABISELECT(16,8), "ee76721");
+ check_base_class_offset(lv, (dd6721*), ABISELECT(16,8), "ee76721");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76721.e");
+ test_class_info(&lv, &cd_ee76721);
+ dp->~ee76721();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76721(Test_ee76721, "ee76721", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee76721C1Ev();
+extern void _ZN7ee76721D1Ev();
+Name_Map name_map_ee76721[] = {
+ NSPAIR(_ZN7ee76721C1Ev),
+ NSPAIR(_ZN7ee76721D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc721;
+extern VTBL_ENTRY _ZTI5cc721[];
+extern VTBL_ENTRY _ZTV5cc721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc721[];
+extern Class_Descriptor cd_dd6721;
+extern VTBL_ENTRY _ZTI6dd6721[];
+extern VTBL_ENTRY _ZTV6dd6721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6721[];
+static Base_Class bases_ee76721[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc721, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6721, ABISELECT(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 _ZTI7ee76721[];
+extern void _ZN7ee767213fooEv();
+extern void _ZN7ee767213barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee767213fooEv,_ZTv0_n16_N7ee767213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee767213fooEv,_ZThn8_N7ee767213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee767213barEv,_ZTv0_n20_N7ee767213barEv)();
+extern void ABISELECT(_ZThn16_N7ee767213barEv,_ZThn8_N7ee767213barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee767213fooEv,_ZTv0_n12_N7ee767213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee767213fooEv,_ZThn20_N7ee767213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76721[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76721[0]),
+ (VTBL_ENTRY)&_ZN7ee767213fooEv,
+ (VTBL_ENTRY)&_ZN7ee767213barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee767213fooEv,_ZTv0_n16_N7ee767213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee767213barEv,_ZTv0_n20_N7ee767213barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee76721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee767213fooEv,_ZTv0_n12_N7ee767213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee76721[];
+extern void _ZN6dd67213fooEv();
+extern void _ZN6dd67213barEv();
+static VTBL_ENTRY _tg__ZTV6dd6721__7ee76721[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6721[0]),
+ (VTBL_ENTRY)&_ZN6dd67213fooEv,
+ (VTBL_ENTRY)&_ZN6dd67213barEv,
+};
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc7216dd6721__7ee76721[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn12_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc7216dd6721__7ee76721[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd67213fooEv,_ZTv0_n12_N6dd67213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd67213fooEv,_ZThn12_N6dd67213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd6721__7ee76721[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67213fooEv,_ZTv0_n12_N6dd67213fooEv),
+};
+static VTT_ENTRY vtt_ee76721[] = {
+ {&(_ZTV7ee76721[4]), 4,17},
+ {&(_ZTV7ee76721[11]), 11,17},
+ {&(_ZTV7ee76721[16]), 16,17},
+ {&(_tg__ZTV6dd6721__7ee76721[3]), 3,5},
+ {&(_tg__ZTV5cc7216dd6721__7ee76721[3]), 3,5},
+ {&(_tg__ZTV4bb21__5cc7216dd6721__7ee76721[3]), 3,4},
+ {&(_tg__ZTV4bb21__6dd6721__7ee76721[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee76721[];
+extern VTBL_ENTRY _ZTV7ee76721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76721[];
+static VTBL_ENTRY alt_thunk_names841[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67213fooEv,_ZTv0_n12_N6dd67213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67213fooEv,_ZThn12_N6dd67213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn12_N5cc7213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee767213fooEv,_ZTv0_n12_N7ee767213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee767213fooEv,_ZThn20_N7ee767213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee767213barEv,_ZTv0_n20_N7ee767213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee767213barEv,_ZThn8_N7ee767213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee767213fooEv,_ZTv0_n16_N7ee767213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee767213fooEv,_ZThn8_N7ee767213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76721 = { "ee76721", // class name
+ bases_ee76721, 4,
+ &(vtc_ee76721[0]), // expected_vtbl_contents
+ &(vtt_ee76721[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee76721),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76721),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76721),7, //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 dd7721 : virtual cc721 {
+ int d;
+ virtual void bar(); // _ZN6dd77213barEv
+ virtual void foo(); // _ZN6dd77213fooEv
+ ~dd7721(); // tgen
+ dd7721(); // tgen
+};
+//SIG(-1 dd7721) C1{ VBC2{ VBC3{ BC4{ v2 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void dd7721 ::bar(){vfunc_called(this, "_ZN6dd77213barEv");}
+void dd7721 ::foo(){vfunc_called(this, "_ZN6dd77213fooEv");}
+dd7721 ::~dd7721(){ note_dtor("dd7721", this);} // tgen
+dd7721 ::dd7721(){ note_ctor("dd7721", this);} // tgen
+
+static void Test_dd7721()
+{
+ extern Class_Descriptor cd_dd7721;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd7721, buf);
+ dd7721 *dp, &lv = *(dp=new (buf) dd7721());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd7721)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7721)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,16), "dd7721");
+ check_base_class_offset(lv, (bb21*)(cc721*), ABISELECT(32,16), "dd7721");
+ check_base_class_offset(lv, (cc721*), ABISELECT(16,8), "dd7721");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7721.d");
+ test_class_info(&lv, &cd_dd7721);
+ dp->~dd7721();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7721(Test_dd7721, "dd7721", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd7721C1Ev();
+extern void _ZN6dd7721D1Ev();
+Name_Map name_map_dd7721[] = {
+ NSPAIR(_ZN6dd7721C1Ev),
+ NSPAIR(_ZN6dd7721D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc721;
+extern VTBL_ENTRY _ZTI5cc721[];
+extern VTBL_ENTRY _ZTV5cc721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc721[];
+static Base_Class bases_dd7721[] = {
+ // 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_bb21, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc721, ABISELECT(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 _ZTI6dd7721[];
+extern void _ZN6dd77213barEv();
+extern void _ZN6dd77213fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd77213fooEv,_ZTv0_n16_N6dd77213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77213fooEv,_ZThn8_N6dd77213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77213barEv,_ZTv0_n20_N6dd77213barEv)();
+extern void ABISELECT(_ZThn16_N6dd77213barEv,_ZThn8_N6dd77213barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd77213fooEv,_ZTv0_n12_N6dd77213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77213fooEv,_ZThn16_N6dd77213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7721[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7721[0]),
+ (VTBL_ENTRY)&_ZN6dd77213barEv,
+ (VTBL_ENTRY)&_ZN6dd77213fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77213fooEv,_ZTv0_n16_N6dd77213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77213barEv,_ZTv0_n20_N6dd77213barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77213fooEv,_ZTv0_n12_N6dd77213fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd7721[];
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc721__6dd7721[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc721__6dd7721[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+static VTT_ENTRY vtt_dd7721[] = {
+ {&(_ZTV6dd7721[4]), 4,17},
+ {&(_ZTV6dd7721[11]), 11,17},
+ {&(_ZTV6dd7721[16]), 16,17},
+ {&(_tg__ZTV5cc721__6dd7721[3]), 3,5},
+ {&(_tg__ZTV4bb21__5cc721__6dd7721[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd7721[];
+extern VTBL_ENTRY _ZTV6dd7721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7721[];
+static VTBL_ENTRY alt_thunk_names842[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77213fooEv,_ZTv0_n12_N6dd77213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77213fooEv,_ZThn16_N6dd77213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77213barEv,_ZTv0_n20_N6dd77213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77213barEv,_ZThn8_N6dd77213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77213fooEv,_ZTv0_n16_N6dd77213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77213fooEv,_ZThn8_N6dd77213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7721 = { "dd7721", // class name
+ bases_dd7721, 3,
+ &(vtc_dd7721[0]), // expected_vtbl_contents
+ &(vtt_dd7721[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd7721),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7721),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7721),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names842,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07721 : dd7721 {
+ int e;
+ ~ee07721(); // tgen
+ ee07721(); // tgen
+};
+//SIG(1 ee07721) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee07721 ::~ee07721(){ note_dtor("ee07721", this);} // tgen
+ee07721 ::ee07721(){ note_ctor("ee07721", this);} // tgen
+
+static void Test_ee07721()
+{
+ extern Class_Descriptor cd_ee07721;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee07721, buf);
+ ee07721 *dp, &lv = *(dp=new (buf) ee07721());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee07721)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07721)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee07721");
+ check_base_class_offset(lv, (bb21*)(cc721*), ABISELECT(32,20), "ee07721");
+ check_base_class_offset(lv, (cc721*)(dd7721*), ABISELECT(16,12), "ee07721");
+ check_base_class_offset(lv, (dd7721*), 0, "ee07721");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07721.e");
+ test_class_info(&lv, &cd_ee07721);
+ dp->~ee07721();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07721(Test_ee07721, "ee07721", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee07721C1Ev();
+extern void _ZN7ee07721D1Ev();
+Name_Map name_map_ee07721[] = {
+ NSPAIR(_ZN7ee07721C1Ev),
+ NSPAIR(_ZN7ee07721D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc721;
+extern VTBL_ENTRY _ZTI5cc721[];
+extern VTBL_ENTRY _ZTV5cc721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc721[];
+extern Class_Descriptor cd_dd7721;
+extern VTBL_ENTRY _ZTI6dd7721[];
+extern VTBL_ENTRY _ZTV6dd7721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7721[];
+static Base_Class bases_ee07721[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc721, 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_dd7721, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07721[];
+extern void _ZN6dd77213barEv();
+extern void _ZN6dd77213fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd77213fooEv,_ZTv0_n16_N6dd77213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77213fooEv,_ZThn12_N6dd77213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77213barEv,_ZTv0_n20_N6dd77213barEv)();
+extern void ABISELECT(_ZThn16_N6dd77213barEv,_ZThn12_N6dd77213barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd77213fooEv,_ZTv0_n12_N6dd77213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77213fooEv,_ZThn20_N6dd77213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07721[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07721[0]),
+ (VTBL_ENTRY)&_ZN6dd77213barEv,
+ (VTBL_ENTRY)&_ZN6dd77213fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77213fooEv,_ZTv0_n16_N6dd77213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77213barEv,_ZTv0_n20_N6dd77213barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee07721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77213fooEv,_ZTv0_n12_N6dd77213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee07721[];
+extern void _ZN6dd77213barEv();
+extern void _ZN6dd77213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7721__7ee07721[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7721[0]),
+ (VTBL_ENTRY)&_ZN6dd77213barEv,
+ (VTBL_ENTRY)&_ZN6dd77213fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77213fooEv,_ZTv0_n16_N6dd77213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77213fooEv,_ZThn12_N6dd77213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77213barEv,_ZTv0_n20_N6dd77213barEv)();
+extern void ABISELECT(_ZThn16_N6dd77213barEv,_ZThn12_N6dd77213barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc721__6dd7721__7ee07721[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77213fooEv,_ZTv0_n16_N6dd77213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77213barEv,_ZTv0_n20_N6dd77213barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd77213fooEv,_ZTv0_n12_N6dd77213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77213fooEv,_ZThn20_N6dd77213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd7721__7ee07721[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77213fooEv,_ZTv0_n12_N6dd77213fooEv),
+};
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc721__7ee07721[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc721__7ee07721[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+static VTT_ENTRY vtt_ee07721[] = {
+ {&(_ZTV7ee07721[4]), 4,17},
+ {&(_tg__ZTV6dd7721__7ee07721[4]), 4,6},
+ {&(_tg__ZTV5cc721__6dd7721__7ee07721[5]), 5,7},
+ {&(_tg__ZTV4bb21__6dd7721__7ee07721[3]), 3,4},
+ {&(_ZTV7ee07721[11]), 11,17},
+ {&(_ZTV7ee07721[16]), 16,17},
+ {&(_tg__ZTV5cc721__7ee07721[3]), 3,5},
+ {&(_tg__ZTV4bb21__5cc721__7ee07721[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee07721[];
+extern VTBL_ENTRY _ZTV7ee07721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07721[];
+static VTBL_ENTRY alt_thunk_names843[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77213fooEv,_ZTv0_n12_N6dd77213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77213fooEv,_ZThn20_N6dd77213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77213fooEv,_ZThn20_N6dd77213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77213barEv,_ZTv0_n20_N6dd77213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77213barEv,_ZThn12_N6dd77213barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77213barEv,_ZThn12_N6dd77213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77213fooEv,_ZTv0_n16_N6dd77213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77213fooEv,_ZThn12_N6dd77213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77213fooEv,_ZThn12_N6dd77213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07721 = { "ee07721", // class name
+ bases_ee07721, 4,
+ &(vtc_ee07721[0]), // expected_vtbl_contents
+ &(vtt_ee07721[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee07721),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07721),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07721),8, //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 ee17721 : virtual dd7721 {
+ int e;
+ ~ee17721(); // tgen
+ ee17721(); // tgen
+};
+//SIG(1 ee17721) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee17721 ::~ee17721(){ note_dtor("ee17721", this);} // tgen
+ee17721 ::ee17721(){ note_ctor("ee17721", this);} // tgen
+
+static void Test_ee17721()
+{
+ extern Class_Descriptor cd_ee17721;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee17721, buf);
+ ee17721 *dp, &lv = *(dp=new (buf) ee17721());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee17721)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17721)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(48,24), "ee17721");
+ check_base_class_offset(lv, (bb21*)(cc721*), ABISELECT(48,24), "ee17721");
+ check_base_class_offset(lv, (cc721*)(dd7721*), ABISELECT(32,16), "ee17721");
+ check_base_class_offset(lv, (dd7721*), ABISELECT(16,8), "ee17721");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17721.e");
+ test_class_info(&lv, &cd_ee17721);
+ dp->~ee17721();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17721(Test_ee17721, "ee17721", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee17721C1Ev();
+extern void _ZN7ee17721D1Ev();
+Name_Map name_map_ee17721[] = {
+ NSPAIR(_ZN7ee17721C1Ev),
+ NSPAIR(_ZN7ee17721D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc721;
+extern VTBL_ENTRY _ZTI5cc721[];
+extern VTBL_ENTRY _ZTV5cc721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc721[];
+extern Class_Descriptor cd_dd7721;
+extern VTBL_ENTRY _ZTI6dd7721[];
+extern VTBL_ENTRY _ZTV6dd7721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7721[];
+static Base_Class bases_ee17721[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb21, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc721, 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_dd7721, 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 _ZTI7ee17721[];
+extern void _ZN6dd77213barEv();
+extern void _ZN6dd77213fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd77213fooEv,_ZTv0_n16_N6dd77213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77213fooEv,_ZThn8_N6dd77213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77213barEv,_ZTv0_n20_N6dd77213barEv)();
+extern void ABISELECT(_ZThn16_N6dd77213barEv,_ZThn8_N6dd77213barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd77213fooEv,_ZTv0_n12_N6dd77213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77213fooEv,_ZThn16_N6dd77213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17721[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17721[0]),
+ 0,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17721[0]),
+ (VTBL_ENTRY)&_ZN6dd77213barEv,
+ (VTBL_ENTRY)&_ZN6dd77213fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77213fooEv,_ZTv0_n16_N6dd77213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77213barEv,_ZTv0_n20_N6dd77213barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee17721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77213fooEv,_ZTv0_n12_N6dd77213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee17721[];
+extern void _ZN6dd77213barEv();
+extern void _ZN6dd77213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7721__7ee17721[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7721[0]),
+ (VTBL_ENTRY)&_ZN6dd77213barEv,
+ (VTBL_ENTRY)&_ZN6dd77213fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77213fooEv,_ZTv0_n16_N6dd77213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77213fooEv,_ZThn8_N6dd77213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77213barEv,_ZTv0_n20_N6dd77213barEv)();
+extern void ABISELECT(_ZThn16_N6dd77213barEv,_ZThn8_N6dd77213barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc721__6dd7721__7ee17721[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77213fooEv,_ZTv0_n16_N6dd77213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77213barEv,_ZTv0_n20_N6dd77213barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd77213fooEv,_ZTv0_n12_N6dd77213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77213fooEv,_ZThn16_N6dd77213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd7721__7ee17721[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77213fooEv,_ZTv0_n12_N6dd77213fooEv),
+};
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc721__7ee17721[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc721__7ee17721[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+static VTT_ENTRY vtt_ee17721[] = {
+ {&(_ZTV7ee17721[5]), 5,24},
+ {&(_ZTV7ee17721[11]), 11,24},
+ {&(_ZTV7ee17721[18]), 18,24},
+ {&(_ZTV7ee17721[23]), 23,24},
+ {&(_tg__ZTV6dd7721__7ee17721[4]), 4,6},
+ {&(_tg__ZTV5cc721__6dd7721__7ee17721[5]), 5,7},
+ {&(_tg__ZTV4bb21__6dd7721__7ee17721[3]), 3,4},
+ {&(_tg__ZTV5cc721__7ee17721[3]), 3,5},
+ {&(_tg__ZTV4bb21__5cc721__7ee17721[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee17721[];
+extern VTBL_ENTRY _ZTV7ee17721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17721[];
+static VTBL_ENTRY alt_thunk_names844[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77213fooEv,_ZTv0_n12_N6dd77213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77213fooEv,_ZThn16_N6dd77213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77213fooEv,_ZThn16_N6dd77213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77213barEv,_ZTv0_n20_N6dd77213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77213barEv,_ZThn8_N6dd77213barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77213barEv,_ZThn8_N6dd77213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77213fooEv,_ZTv0_n16_N6dd77213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77213fooEv,_ZThn8_N6dd77213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77213fooEv,_ZThn8_N6dd77213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17721 = { "ee17721", // class name
+ bases_ee17721, 4,
+ &(vtc_ee17721[0]), // expected_vtbl_contents
+ &(vtt_ee17721[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee17721),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17721),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17721),9, //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 ee27721 : dd7721 {
+ int e;
+ virtual void foo(); // _ZN7ee277213fooEv
+ ~ee27721(); // tgen
+ ee27721(); // tgen
+};
+//SIG(1 ee27721) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27721 ::foo(){vfunc_called(this, "_ZN7ee277213fooEv");}
+ee27721 ::~ee27721(){ note_dtor("ee27721", this);} // tgen
+ee27721 ::ee27721(){ note_ctor("ee27721", this);} // tgen
+
+static void Test_ee27721()
+{
+ extern Class_Descriptor cd_ee27721;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee27721, buf);
+ ee27721 *dp, &lv = *(dp=new (buf) ee27721());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee27721)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27721)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee27721");
+ check_base_class_offset(lv, (bb21*)(cc721*), ABISELECT(32,20), "ee27721");
+ check_base_class_offset(lv, (cc721*)(dd7721*), ABISELECT(16,12), "ee27721");
+ check_base_class_offset(lv, (dd7721*), 0, "ee27721");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27721.e");
+ test_class_info(&lv, &cd_ee27721);
+ dp->~ee27721();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27721(Test_ee27721, "ee27721", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee27721C1Ev();
+extern void _ZN7ee27721D1Ev();
+Name_Map name_map_ee27721[] = {
+ NSPAIR(_ZN7ee27721C1Ev),
+ NSPAIR(_ZN7ee27721D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc721;
+extern VTBL_ENTRY _ZTI5cc721[];
+extern VTBL_ENTRY _ZTV5cc721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc721[];
+extern Class_Descriptor cd_dd7721;
+extern VTBL_ENTRY _ZTI6dd7721[];
+extern VTBL_ENTRY _ZTV6dd7721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7721[];
+static Base_Class bases_ee27721[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc721, 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_dd7721, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27721[];
+extern void _ZN6dd77213barEv();
+extern void _ZN7ee277213fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee277213fooEv,_ZTv0_n16_N7ee277213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee277213fooEv,_ZThn12_N7ee277213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77213barEv,_ZTv0_n20_N6dd77213barEv)();
+extern void ABISELECT(_ZThn16_N6dd77213barEv,_ZThn12_N6dd77213barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee277213fooEv,_ZTv0_n12_N7ee277213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee277213fooEv,_ZThn20_N7ee277213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27721[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27721[0]),
+ (VTBL_ENTRY)&_ZN6dd77213barEv,
+ (VTBL_ENTRY)&_ZN7ee277213fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee277213fooEv,_ZTv0_n16_N7ee277213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77213barEv,_ZTv0_n20_N6dd77213barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee27721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee277213fooEv,_ZTv0_n12_N7ee277213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee27721[];
+extern void _ZN6dd77213barEv();
+extern void _ZN6dd77213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7721__7ee27721[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7721[0]),
+ (VTBL_ENTRY)&_ZN6dd77213barEv,
+ (VTBL_ENTRY)&_ZN6dd77213fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77213fooEv,_ZTv0_n16_N6dd77213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77213fooEv,_ZThn12_N6dd77213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77213barEv,_ZTv0_n20_N6dd77213barEv)();
+extern void ABISELECT(_ZThn16_N6dd77213barEv,_ZThn12_N6dd77213barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc721__6dd7721__7ee27721[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77213fooEv,_ZTv0_n16_N6dd77213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77213barEv,_ZTv0_n20_N6dd77213barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd77213fooEv,_ZTv0_n12_N6dd77213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77213fooEv,_ZThn20_N6dd77213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd7721__7ee27721[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77213fooEv,_ZTv0_n12_N6dd77213fooEv),
+};
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc721__7ee27721[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc721__7ee27721[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+static VTT_ENTRY vtt_ee27721[] = {
+ {&(_ZTV7ee27721[4]), 4,17},
+ {&(_tg__ZTV6dd7721__7ee27721[4]), 4,6},
+ {&(_tg__ZTV5cc721__6dd7721__7ee27721[5]), 5,7},
+ {&(_tg__ZTV4bb21__6dd7721__7ee27721[3]), 3,4},
+ {&(_ZTV7ee27721[11]), 11,17},
+ {&(_ZTV7ee27721[16]), 16,17},
+ {&(_tg__ZTV5cc721__7ee27721[3]), 3,5},
+ {&(_tg__ZTV4bb21__5cc721__7ee27721[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee27721[];
+extern VTBL_ENTRY _ZTV7ee27721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27721[];
+static VTBL_ENTRY alt_thunk_names845[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77213fooEv,_ZTv0_n12_N6dd77213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77213fooEv,_ZThn20_N6dd77213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77213fooEv,_ZTv0_n16_N6dd77213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77213fooEv,_ZThn12_N6dd77213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee277213fooEv,_ZTv0_n12_N7ee277213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee277213fooEv,_ZThn20_N7ee277213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77213barEv,_ZTv0_n20_N6dd77213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77213barEv,_ZThn12_N6dd77213barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77213barEv,_ZThn12_N6dd77213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee277213fooEv,_ZTv0_n16_N7ee277213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee277213fooEv,_ZThn12_N7ee277213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27721 = { "ee27721", // class name
+ bases_ee27721, 4,
+ &(vtc_ee27721[0]), // expected_vtbl_contents
+ &(vtt_ee27721[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee27721),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27721),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27721),8, //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 ee37721 : virtual dd7721 {
+ int e;
+ virtual void foo(); // _ZN7ee377213fooEv
+ ~ee37721(); // tgen
+ ee37721(); // tgen
+};
+//SIG(1 ee37721) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37721 ::foo(){vfunc_called(this, "_ZN7ee377213fooEv");}
+ee37721 ::~ee37721(){ note_dtor("ee37721", this);} // tgen
+ee37721 ::ee37721(){ note_ctor("ee37721", this);} // tgen
+
+static void Test_ee37721()
+{
+ extern Class_Descriptor cd_ee37721;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee37721, buf);
+ ee37721 *dp, &lv = *(dp=new (buf) ee37721());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee37721)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37721)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(48,24), "ee37721");
+ check_base_class_offset(lv, (bb21*)(cc721*), ABISELECT(48,24), "ee37721");
+ check_base_class_offset(lv, (cc721*)(dd7721*), ABISELECT(32,16), "ee37721");
+ check_base_class_offset(lv, (dd7721*), ABISELECT(16,8), "ee37721");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37721.e");
+ test_class_info(&lv, &cd_ee37721);
+ dp->~ee37721();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37721(Test_ee37721, "ee37721", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee37721C1Ev();
+extern void _ZN7ee37721D1Ev();
+Name_Map name_map_ee37721[] = {
+ NSPAIR(_ZN7ee37721C1Ev),
+ NSPAIR(_ZN7ee37721D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc721;
+extern VTBL_ENTRY _ZTI5cc721[];
+extern VTBL_ENTRY _ZTV5cc721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc721[];
+extern Class_Descriptor cd_dd7721;
+extern VTBL_ENTRY _ZTI6dd7721[];
+extern VTBL_ENTRY _ZTV6dd7721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7721[];
+static Base_Class bases_ee37721[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb21, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc721, 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_dd7721, 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 _ZTI7ee37721[];
+extern void _ZN7ee377213fooEv();
+extern void _ZN6dd77213barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee377213fooEv,_ZTv0_n24_N7ee377213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee377213fooEv,_ZThn8_N7ee377213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee377213fooEv,_ZTv0_n16_N7ee377213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee377213fooEv,_ZThn16_N7ee377213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77213barEv,_ZTv0_n20_N6dd77213barEv)();
+extern void ABISELECT(_ZThn16_N6dd77213barEv,_ZThn8_N6dd77213barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee377213fooEv,_ZTv0_n12_N7ee377213fooEv)();
+extern void ABISELECT(_ZThn48_N7ee377213fooEv,_ZThn24_N7ee377213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37721[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37721[0]),
+ (VTBL_ENTRY)&_ZN7ee377213fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37721[0]),
+ (VTBL_ENTRY)&_ZN6dd77213barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee377213fooEv,_ZTv0_n24_N7ee377213fooEv),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee377213fooEv,_ZTv0_n16_N7ee377213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77213barEv,_ZTv0_n20_N6dd77213barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee37721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee377213fooEv,_ZTv0_n12_N7ee377213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee37721[];
+extern void _ZN6dd77213barEv();
+extern void _ZN6dd77213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7721__7ee37721[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7721[0]),
+ (VTBL_ENTRY)&_ZN6dd77213barEv,
+ (VTBL_ENTRY)&_ZN6dd77213fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77213fooEv,_ZTv0_n16_N6dd77213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77213fooEv,_ZThn8_N6dd77213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77213barEv,_ZTv0_n20_N6dd77213barEv)();
+extern void ABISELECT(_ZThn16_N6dd77213barEv,_ZThn8_N6dd77213barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc721__6dd7721__7ee37721[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77213fooEv,_ZTv0_n16_N6dd77213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77213barEv,_ZTv0_n20_N6dd77213barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd77213fooEv,_ZTv0_n12_N6dd77213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77213fooEv,_ZThn16_N6dd77213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd7721__7ee37721[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77213fooEv,_ZTv0_n12_N6dd77213fooEv),
+};
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc721__7ee37721[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc721__7ee37721[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+static VTT_ENTRY vtt_ee37721[] = {
+ {&(_ZTV7ee37721[5]), 5,25},
+ {&(_ZTV7ee37721[12]), 12,25},
+ {&(_ZTV7ee37721[19]), 19,25},
+ {&(_ZTV7ee37721[24]), 24,25},
+ {&(_tg__ZTV6dd7721__7ee37721[4]), 4,6},
+ {&(_tg__ZTV5cc721__6dd7721__7ee37721[5]), 5,7},
+ {&(_tg__ZTV4bb21__6dd7721__7ee37721[3]), 3,4},
+ {&(_tg__ZTV5cc721__7ee37721[3]), 3,5},
+ {&(_tg__ZTV4bb21__5cc721__7ee37721[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee37721[];
+extern VTBL_ENTRY _ZTV7ee37721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37721[];
+static VTBL_ENTRY alt_thunk_names846[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77213fooEv,_ZTv0_n12_N6dd77213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77213fooEv,_ZThn16_N6dd77213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77213fooEv,_ZTv0_n16_N6dd77213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77213fooEv,_ZThn8_N6dd77213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee377213fooEv,_ZTv0_n12_N7ee377213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee377213fooEv,_ZThn24_N7ee377213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77213barEv,_ZTv0_n20_N6dd77213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77213barEv,_ZThn8_N6dd77213barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77213barEv,_ZThn8_N6dd77213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee377213fooEv,_ZTv0_n16_N7ee377213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee377213fooEv,_ZThn16_N7ee377213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee377213fooEv,_ZTv0_n24_N7ee377213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee377213fooEv,_ZThn8_N7ee377213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37721 = { "ee37721", // class name
+ bases_ee37721, 4,
+ &(vtc_ee37721[0]), // expected_vtbl_contents
+ &(vtt_ee37721[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee37721),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37721),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37721),9, //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 ee47721 : dd7721 {
+ int e;
+ virtual void bar(); // _ZN7ee477213barEv
+ ~ee47721(); // tgen
+ ee47721(); // tgen
+};
+//SIG(1 ee47721) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47721 ::bar(){vfunc_called(this, "_ZN7ee477213barEv");}
+ee47721 ::~ee47721(){ note_dtor("ee47721", this);} // tgen
+ee47721 ::ee47721(){ note_ctor("ee47721", this);} // tgen
+
+static void Test_ee47721()
+{
+ extern Class_Descriptor cd_ee47721;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee47721, buf);
+ ee47721 *dp, &lv = *(dp=new (buf) ee47721());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee47721)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47721)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee47721");
+ check_base_class_offset(lv, (bb21*)(cc721*), ABISELECT(32,20), "ee47721");
+ check_base_class_offset(lv, (cc721*)(dd7721*), ABISELECT(16,12), "ee47721");
+ check_base_class_offset(lv, (dd7721*), 0, "ee47721");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47721.e");
+ test_class_info(&lv, &cd_ee47721);
+ dp->~ee47721();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47721(Test_ee47721, "ee47721", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee47721C1Ev();
+extern void _ZN7ee47721D1Ev();
+Name_Map name_map_ee47721[] = {
+ NSPAIR(_ZN7ee47721C1Ev),
+ NSPAIR(_ZN7ee47721D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc721;
+extern VTBL_ENTRY _ZTI5cc721[];
+extern VTBL_ENTRY _ZTV5cc721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc721[];
+extern Class_Descriptor cd_dd7721;
+extern VTBL_ENTRY _ZTI6dd7721[];
+extern VTBL_ENTRY _ZTV6dd7721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7721[];
+static Base_Class bases_ee47721[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc721, 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_dd7721, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47721[];
+extern void _ZN7ee477213barEv();
+extern void _ZN6dd77213fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd77213fooEv,_ZTv0_n16_N6dd77213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77213fooEv,_ZThn12_N6dd77213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee477213barEv,_ZTv0_n20_N7ee477213barEv)();
+extern void ABISELECT(_ZThn16_N7ee477213barEv,_ZThn12_N7ee477213barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd77213fooEv,_ZTv0_n12_N6dd77213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77213fooEv,_ZThn20_N6dd77213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47721[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47721[0]),
+ (VTBL_ENTRY)&_ZN7ee477213barEv,
+ (VTBL_ENTRY)&_ZN6dd77213fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77213fooEv,_ZTv0_n16_N6dd77213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee477213barEv,_ZTv0_n20_N7ee477213barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee47721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77213fooEv,_ZTv0_n12_N6dd77213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee47721[];
+extern void _ZN6dd77213barEv();
+extern void _ZN6dd77213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7721__7ee47721[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7721[0]),
+ (VTBL_ENTRY)&_ZN6dd77213barEv,
+ (VTBL_ENTRY)&_ZN6dd77213fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77213fooEv,_ZTv0_n16_N6dd77213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77213fooEv,_ZThn12_N6dd77213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77213barEv,_ZTv0_n20_N6dd77213barEv)();
+extern void ABISELECT(_ZThn16_N6dd77213barEv,_ZThn12_N6dd77213barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc721__6dd7721__7ee47721[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77213fooEv,_ZTv0_n16_N6dd77213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77213barEv,_ZTv0_n20_N6dd77213barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd77213fooEv,_ZTv0_n12_N6dd77213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77213fooEv,_ZThn20_N6dd77213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd7721__7ee47721[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77213fooEv,_ZTv0_n12_N6dd77213fooEv),
+};
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc721__7ee47721[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc721__7ee47721[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+static VTT_ENTRY vtt_ee47721[] = {
+ {&(_ZTV7ee47721[4]), 4,17},
+ {&(_tg__ZTV6dd7721__7ee47721[4]), 4,6},
+ {&(_tg__ZTV5cc721__6dd7721__7ee47721[5]), 5,7},
+ {&(_tg__ZTV4bb21__6dd7721__7ee47721[3]), 3,4},
+ {&(_ZTV7ee47721[11]), 11,17},
+ {&(_ZTV7ee47721[16]), 16,17},
+ {&(_tg__ZTV5cc721__7ee47721[3]), 3,5},
+ {&(_tg__ZTV4bb21__5cc721__7ee47721[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee47721[];
+extern VTBL_ENTRY _ZTV7ee47721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47721[];
+static VTBL_ENTRY alt_thunk_names847[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77213barEv,_ZTv0_n20_N6dd77213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77213barEv,_ZThn12_N6dd77213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77213fooEv,_ZTv0_n12_N6dd77213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77213fooEv,_ZThn20_N6dd77213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77213fooEv,_ZThn20_N6dd77213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee477213barEv,_ZTv0_n20_N7ee477213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee477213barEv,_ZThn12_N7ee477213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77213fooEv,_ZTv0_n16_N6dd77213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77213fooEv,_ZThn12_N6dd77213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77213fooEv,_ZThn12_N6dd77213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47721 = { "ee47721", // class name
+ bases_ee47721, 4,
+ &(vtc_ee47721[0]), // expected_vtbl_contents
+ &(vtt_ee47721[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee47721),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47721),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47721),8, //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 ee57721 : virtual dd7721 {
+ int e;
+ virtual void bar(); // _ZN7ee577213barEv
+ ~ee57721(); // tgen
+ ee57721(); // tgen
+};
+//SIG(1 ee57721) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57721 ::bar(){vfunc_called(this, "_ZN7ee577213barEv");}
+ee57721 ::~ee57721(){ note_dtor("ee57721", this);} // tgen
+ee57721 ::ee57721(){ note_ctor("ee57721", this);} // tgen
+
+static void Test_ee57721()
+{
+ extern Class_Descriptor cd_ee57721;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee57721, buf);
+ ee57721 *dp, &lv = *(dp=new (buf) ee57721());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee57721)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57721)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(48,24), "ee57721");
+ check_base_class_offset(lv, (bb21*)(cc721*), ABISELECT(48,24), "ee57721");
+ check_base_class_offset(lv, (cc721*)(dd7721*), ABISELECT(32,16), "ee57721");
+ check_base_class_offset(lv, (dd7721*), ABISELECT(16,8), "ee57721");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57721.e");
+ test_class_info(&lv, &cd_ee57721);
+ dp->~ee57721();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57721(Test_ee57721, "ee57721", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee57721C1Ev();
+extern void _ZN7ee57721D1Ev();
+Name_Map name_map_ee57721[] = {
+ NSPAIR(_ZN7ee57721C1Ev),
+ NSPAIR(_ZN7ee57721D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc721;
+extern VTBL_ENTRY _ZTI5cc721[];
+extern VTBL_ENTRY _ZTV5cc721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc721[];
+extern Class_Descriptor cd_dd7721;
+extern VTBL_ENTRY _ZTI6dd7721[];
+extern VTBL_ENTRY _ZTV6dd7721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7721[];
+static Base_Class bases_ee57721[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb21, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc721, 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_dd7721, 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 _ZTI7ee57721[];
+extern void _ZN7ee577213barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee577213barEv,_ZTv0_n20_N7ee577213barEv)();
+extern void ABISELECT(_ZThn16_N7ee577213barEv,_ZThn8_N7ee577213barEv)() __attribute__((weak));
+extern void _ZN6dd77213fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd77213fooEv,_ZTv0_n16_N6dd77213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77213fooEv,_ZThn8_N6dd77213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee577213barEv,_ZTv0_n20_N7ee577213barEv)();
+extern void ABISELECT(_ZThn32_N7ee577213barEv,_ZThn16_N7ee577213barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd77213fooEv,_ZTv0_n12_N6dd77213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77213fooEv,_ZThn16_N6dd77213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57721[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57721[0]),
+ (VTBL_ENTRY)&_ZN7ee577213barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee577213barEv,_ZTv0_n20_N7ee577213barEv),
+ (VTBL_ENTRY)&_ZN6dd77213fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77213fooEv,_ZTv0_n16_N6dd77213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee577213barEv,_ZTv0_n20_N7ee577213barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee57721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77213fooEv,_ZTv0_n12_N6dd77213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee57721[];
+extern void _ZN6dd77213barEv();
+extern void _ZN6dd77213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7721__7ee57721[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7721[0]),
+ (VTBL_ENTRY)&_ZN6dd77213barEv,
+ (VTBL_ENTRY)&_ZN6dd77213fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77213fooEv,_ZTv0_n16_N6dd77213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77213fooEv,_ZThn8_N6dd77213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77213barEv,_ZTv0_n20_N6dd77213barEv)();
+extern void ABISELECT(_ZThn16_N6dd77213barEv,_ZThn8_N6dd77213barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc721__6dd7721__7ee57721[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77213fooEv,_ZTv0_n16_N6dd77213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77213barEv,_ZTv0_n20_N6dd77213barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd77213fooEv,_ZTv0_n12_N6dd77213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77213fooEv,_ZThn16_N6dd77213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd7721__7ee57721[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77213fooEv,_ZTv0_n12_N6dd77213fooEv),
+};
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc721__7ee57721[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc721__7ee57721[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+static VTT_ENTRY vtt_ee57721[] = {
+ {&(_ZTV7ee57721[5]), 5,25},
+ {&(_ZTV7ee57721[12]), 12,25},
+ {&(_ZTV7ee57721[19]), 19,25},
+ {&(_ZTV7ee57721[24]), 24,25},
+ {&(_tg__ZTV6dd7721__7ee57721[4]), 4,6},
+ {&(_tg__ZTV5cc721__6dd7721__7ee57721[5]), 5,7},
+ {&(_tg__ZTV4bb21__6dd7721__7ee57721[3]), 3,4},
+ {&(_tg__ZTV5cc721__7ee57721[3]), 3,5},
+ {&(_tg__ZTV4bb21__5cc721__7ee57721[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee57721[];
+extern VTBL_ENTRY _ZTV7ee57721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57721[];
+static VTBL_ENTRY alt_thunk_names848[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77213barEv,_ZTv0_n20_N6dd77213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77213barEv,_ZThn8_N6dd77213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77213fooEv,_ZTv0_n12_N6dd77213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77213fooEv,_ZThn16_N6dd77213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77213fooEv,_ZThn16_N6dd77213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77213fooEv,_ZTv0_n16_N6dd77213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77213fooEv,_ZThn8_N6dd77213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77213fooEv,_ZThn8_N6dd77213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee577213barEv,_ZTv0_n20_N7ee577213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee577213barEv,_ZThn16_N7ee577213barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee577213barEv,_ZThn8_N7ee577213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57721 = { "ee57721", // class name
+ bases_ee57721, 4,
+ &(vtc_ee57721[0]), // expected_vtbl_contents
+ &(vtt_ee57721[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee57721),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57721),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57721),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names848,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee67721 : dd7721 {
+ int e;
+ virtual void foo(); // _ZN7ee677213fooEv
+ virtual void bar(); // _ZN7ee677213barEv
+ ~ee67721(); // tgen
+ ee67721(); // tgen
+};
+//SIG(1 ee67721) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67721 ::foo(){vfunc_called(this, "_ZN7ee677213fooEv");}
+void ee67721 ::bar(){vfunc_called(this, "_ZN7ee677213barEv");}
+ee67721 ::~ee67721(){ note_dtor("ee67721", this);} // tgen
+ee67721 ::ee67721(){ note_ctor("ee67721", this);} // tgen
+
+static void Test_ee67721()
+{
+ extern Class_Descriptor cd_ee67721;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee67721, buf);
+ ee67721 *dp, &lv = *(dp=new (buf) ee67721());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee67721)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67721)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(32,20), "ee67721");
+ check_base_class_offset(lv, (bb21*)(cc721*), ABISELECT(32,20), "ee67721");
+ check_base_class_offset(lv, (cc721*)(dd7721*), ABISELECT(16,12), "ee67721");
+ check_base_class_offset(lv, (dd7721*), 0, "ee67721");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67721.e");
+ test_class_info(&lv, &cd_ee67721);
+ dp->~ee67721();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67721(Test_ee67721, "ee67721", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee67721C1Ev();
+extern void _ZN7ee67721D1Ev();
+Name_Map name_map_ee67721[] = {
+ NSPAIR(_ZN7ee67721C1Ev),
+ NSPAIR(_ZN7ee67721D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc721;
+extern VTBL_ENTRY _ZTI5cc721[];
+extern VTBL_ENTRY _ZTV5cc721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc721[];
+extern Class_Descriptor cd_dd7721;
+extern VTBL_ENTRY _ZTI6dd7721[];
+extern VTBL_ENTRY _ZTV6dd7721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7721[];
+static Base_Class bases_ee67721[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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_bb21, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc721, 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_dd7721, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67721[];
+extern void _ZN7ee677213barEv();
+extern void _ZN7ee677213fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee677213fooEv,_ZTv0_n16_N7ee677213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee677213fooEv,_ZThn12_N7ee677213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee677213barEv,_ZTv0_n20_N7ee677213barEv)();
+extern void ABISELECT(_ZThn16_N7ee677213barEv,_ZThn12_N7ee677213barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee677213fooEv,_ZTv0_n12_N7ee677213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee677213fooEv,_ZThn20_N7ee677213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67721[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67721[0]),
+ (VTBL_ENTRY)&_ZN7ee677213barEv,
+ (VTBL_ENTRY)&_ZN7ee677213fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee677213fooEv,_ZTv0_n16_N7ee677213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee677213barEv,_ZTv0_n20_N7ee677213barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee67721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee677213fooEv,_ZTv0_n12_N7ee677213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee67721[];
+extern void _ZN6dd77213barEv();
+extern void _ZN6dd77213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7721__7ee67721[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7721[0]),
+ (VTBL_ENTRY)&_ZN6dd77213barEv,
+ (VTBL_ENTRY)&_ZN6dd77213fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77213fooEv,_ZTv0_n16_N6dd77213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77213fooEv,_ZThn12_N6dd77213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77213barEv,_ZTv0_n20_N6dd77213barEv)();
+extern void ABISELECT(_ZThn16_N6dd77213barEv,_ZThn12_N6dd77213barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc721__6dd7721__7ee67721[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77213fooEv,_ZTv0_n16_N6dd77213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77213barEv,_ZTv0_n20_N6dd77213barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd77213fooEv,_ZTv0_n12_N6dd77213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77213fooEv,_ZThn20_N6dd77213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd7721__7ee67721[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77213fooEv,_ZTv0_n12_N6dd77213fooEv),
+};
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc721__7ee67721[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc721__7ee67721[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+static VTT_ENTRY vtt_ee67721[] = {
+ {&(_ZTV7ee67721[4]), 4,17},
+ {&(_tg__ZTV6dd7721__7ee67721[4]), 4,6},
+ {&(_tg__ZTV5cc721__6dd7721__7ee67721[5]), 5,7},
+ {&(_tg__ZTV4bb21__6dd7721__7ee67721[3]), 3,4},
+ {&(_ZTV7ee67721[11]), 11,17},
+ {&(_ZTV7ee67721[16]), 16,17},
+ {&(_tg__ZTV5cc721__7ee67721[3]), 3,5},
+ {&(_tg__ZTV4bb21__5cc721__7ee67721[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee67721[];
+extern VTBL_ENTRY _ZTV7ee67721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67721[];
+static VTBL_ENTRY alt_thunk_names849[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77213fooEv,_ZTv0_n12_N6dd77213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77213fooEv,_ZThn20_N6dd77213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77213barEv,_ZTv0_n20_N6dd77213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77213barEv,_ZThn12_N6dd77213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77213fooEv,_ZTv0_n16_N6dd77213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77213fooEv,_ZThn12_N6dd77213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee677213fooEv,_ZTv0_n12_N7ee677213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee677213fooEv,_ZThn20_N7ee677213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee677213barEv,_ZTv0_n20_N7ee677213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee677213barEv,_ZThn12_N7ee677213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee677213fooEv,_ZTv0_n16_N7ee677213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee677213fooEv,_ZThn12_N7ee677213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67721 = { "ee67721", // class name
+ bases_ee67721, 4,
+ &(vtc_ee67721[0]), // expected_vtbl_contents
+ &(vtt_ee67721[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee67721),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67721),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67721),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names849,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee77721 : virtual dd7721 {
+ int e;
+ virtual void foo(); // _ZN7ee777213fooEv
+ virtual void bar(); // _ZN7ee777213barEv
+ ~ee77721(); // tgen
+ ee77721(); // tgen
+};
+//SIG(1 ee77721) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77721 ::foo(){vfunc_called(this, "_ZN7ee777213fooEv");}
+void ee77721 ::bar(){vfunc_called(this, "_ZN7ee777213barEv");}
+ee77721 ::~ee77721(){ note_dtor("ee77721", this);} // tgen
+ee77721 ::ee77721(){ note_ctor("ee77721", this);} // tgen
+
+static void Test_ee77721()
+{
+ extern Class_Descriptor cd_ee77721;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee77721, buf);
+ ee77721 *dp, &lv = *(dp=new (buf) ee77721());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee77721)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77721)");
+ check_base_class_offset(lv, (aa1*)(bb21*), ABISELECT(48,24), "ee77721");
+ check_base_class_offset(lv, (bb21*)(cc721*), ABISELECT(48,24), "ee77721");
+ check_base_class_offset(lv, (cc721*)(dd7721*), ABISELECT(32,16), "ee77721");
+ check_base_class_offset(lv, (dd7721*), ABISELECT(16,8), "ee77721");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77721.e");
+ test_class_info(&lv, &cd_ee77721);
+ dp->~ee77721();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77721(Test_ee77721, "ee77721", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee77721C1Ev();
+extern void _ZN7ee77721D1Ev();
+Name_Map name_map_ee77721[] = {
+ NSPAIR(_ZN7ee77721C1Ev),
+ NSPAIR(_ZN7ee77721D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb21;
+extern VTBL_ENTRY _ZTI4bb21[];
+extern VTBL_ENTRY _ZTV4bb21[];
+extern Class_Descriptor cd_cc721;
+extern VTBL_ENTRY _ZTI5cc721[];
+extern VTBL_ENTRY _ZTV5cc721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc721[];
+extern Class_Descriptor cd_dd7721;
+extern VTBL_ENTRY _ZTI6dd7721[];
+extern VTBL_ENTRY _ZTV6dd7721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7721[];
+static Base_Class bases_ee77721[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb21, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc721, 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_dd7721, 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 _ZTI7ee77721[];
+extern void _ZN7ee777213fooEv();
+extern void _ZN7ee777213barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee777213barEv,_ZTv0_n20_N7ee777213barEv)();
+extern void ABISELECT(_ZThn16_N7ee777213barEv,_ZThn8_N7ee777213barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee777213fooEv,_ZTv0_n24_N7ee777213fooEv)();
+extern void ABISELECT(_ZThn16_N7ee777213fooEv,_ZThn8_N7ee777213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee777213fooEv,_ZTv0_n16_N7ee777213fooEv)();
+extern void ABISELECT(_ZThn32_N7ee777213fooEv,_ZThn16_N7ee777213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee777213barEv,_ZTv0_n20_N7ee777213barEv)();
+extern void ABISELECT(_ZThn32_N7ee777213barEv,_ZThn16_N7ee777213barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee777213fooEv,_ZTv0_n12_N7ee777213fooEv)();
+extern void ABISELECT(_ZThn48_N7ee777213fooEv,_ZThn24_N7ee777213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77721[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77721[0]),
+ (VTBL_ENTRY)&_ZN7ee777213fooEv,
+ (VTBL_ENTRY)&_ZN7ee777213barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee777213barEv,_ZTv0_n20_N7ee777213barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee777213fooEv,_ZTv0_n24_N7ee777213fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee777213fooEv,_ZTv0_n16_N7ee777213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee777213barEv,_ZTv0_n20_N7ee777213barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee77721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee777213fooEv,_ZTv0_n12_N7ee777213fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee77721[];
+extern void _ZN6dd77213barEv();
+extern void _ZN6dd77213fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7721__7ee77721[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7721[0]),
+ (VTBL_ENTRY)&_ZN6dd77213barEv,
+ (VTBL_ENTRY)&_ZN6dd77213fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77213fooEv,_ZTv0_n16_N6dd77213fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77213fooEv,_ZThn8_N6dd77213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77213barEv,_ZTv0_n20_N6dd77213barEv)();
+extern void ABISELECT(_ZThn16_N6dd77213barEv,_ZThn8_N6dd77213barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc721__6dd7721__7ee77721[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77213fooEv,_ZTv0_n16_N6dd77213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77213barEv,_ZTv0_n20_N6dd77213barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd77213fooEv,_ZTv0_n12_N6dd77213fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77213fooEv,_ZThn16_N6dd77213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__6dd7721__7ee77721[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77213fooEv,_ZTv0_n12_N6dd77213fooEv),
+};
+extern void _ZN5cc7213fooEv();
+extern void _ZN5cc7213barEv();
+static VTBL_ENTRY _tg__ZTV5cc721__7ee77721[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&_ZN5cc7213fooEv,
+ (VTBL_ENTRY)&_ZN5cc7213barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb21__5cc721__7ee77721[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc721[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv),
+};
+static VTT_ENTRY vtt_ee77721[] = {
+ {&(_ZTV7ee77721[5]), 5,26},
+ {&(_ZTV7ee77721[13]), 13,26},
+ {&(_ZTV7ee77721[20]), 20,26},
+ {&(_ZTV7ee77721[25]), 25,26},
+ {&(_tg__ZTV6dd7721__7ee77721[4]), 4,6},
+ {&(_tg__ZTV5cc721__6dd7721__7ee77721[5]), 5,7},
+ {&(_tg__ZTV4bb21__6dd7721__7ee77721[3]), 3,4},
+ {&(_tg__ZTV5cc721__7ee77721[3]), 3,5},
+ {&(_tg__ZTV4bb21__5cc721__7ee77721[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee77721[];
+extern VTBL_ENTRY _ZTV7ee77721[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77721[];
+static VTBL_ENTRY alt_thunk_names850[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7213fooEv,_ZTv0_n12_N5cc7213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7213fooEv,_ZThn8_N5cc7213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77213fooEv,_ZTv0_n12_N6dd77213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77213fooEv,_ZThn16_N6dd77213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77213barEv,_ZTv0_n20_N6dd77213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77213barEv,_ZThn8_N6dd77213barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77213fooEv,_ZTv0_n16_N6dd77213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77213fooEv,_ZThn8_N6dd77213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee777213fooEv,_ZTv0_n12_N7ee777213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee777213fooEv,_ZThn24_N7ee777213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee777213fooEv,_ZTv0_n16_N7ee777213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee777213fooEv,_ZThn16_N7ee777213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee777213fooEv,_ZTv0_n24_N7ee777213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee777213fooEv,_ZThn8_N7ee777213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee777213barEv,_ZTv0_n20_N7ee777213barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee777213barEv,_ZThn16_N7ee777213barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee777213barEv,_ZThn8_N7ee777213barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77721 = { "ee77721", // class name
+ bases_ee77721, 4,
+ &(vtc_ee77721[0]), // expected_vtbl_contents
+ &(vtt_ee77721[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee77721),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77721),26, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77721),9, //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 bb22 : aa2 {
+ int b;
+ virtual void foo(); // _ZN4bb223fooEv
+ ~bb22(); // tgen
+ bb22(); // tgen
+};
+//SIG(-1 bb22) C1{ BC2{ v1 v2 Fi} v1 Fi}
+
+
+void bb22 ::foo(){vfunc_called(this, "_ZN4bb223fooEv");}
+bb22 ::~bb22(){ note_dtor("bb22", this);} // tgen
+bb22 ::bb22(){ note_ctor("bb22", this);} // tgen
+
+static void Test_bb22()
+{
+ extern Class_Descriptor cd_bb22;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(3,4)];
+ init_test(&cd_bb22, buf);
+ bb22 *dp, &lv = *(dp=new (buf) bb22());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,12), "sizeof(bb22)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(bb22)");
+ check_base_class_offset(lv, (aa2*), 0, "bb22");
+ check_field_offset(lv, b, ABISELECT(12,8), "bb22.b");
+ test_class_info(&lv, &cd_bb22);
+ dp->~bb22();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vbb22(Test_bb22, "bb22", ABISELECT(16,12));
+
+#else // __cplusplus
+
+extern void _ZN4bb22C1Ev();
+extern void _ZN4bb22D1Ev();
+Name_Map name_map_bb22[] = {
+ NSPAIR(_ZN4bb22C1Ev),
+ NSPAIR(_ZN4bb22D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+static Base_Class bases_bb22[] = {
+ // 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
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI4bb22[];
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_bb22[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb22[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+Class_Descriptor cd_bb22 = { "bb22", // class name
+ bases_bb22, 1,
+ &(vtc_bb22[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,12), // object size
+ NSPAIRA(_ZTI4bb22),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV4bb22),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 cc022 : bb22 {
+ int c;
+ ~cc022(); // tgen
+ cc022(); // tgen
+};
+//SIG(-1 cc022) C1{ BC2{ BC3{ v1 v2 Fi} v1 Fi} Fi}
+
+
+cc022 ::~cc022(){ note_dtor("cc022", this);} // tgen
+cc022 ::cc022(){ note_ctor("cc022", this);} // tgen
+
+static void Test_cc022()
+{
+ extern Class_Descriptor cd_cc022;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,5)];
+ init_test(&cd_cc022, buf);
+ cc022 *dp, &lv = *(dp=new (buf) cc022());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,16), "sizeof(cc022)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc022)");
+ check_base_class_offset(lv, (aa2*)(bb22*), 0, "cc022");
+ check_base_class_offset(lv, (bb22*), 0, "cc022");
+ check_field_offset(lv, c, ABISELECT(16,12), "cc022.c");
+ test_class_info(&lv, &cd_cc022);
+ dp->~cc022();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc022(Test_cc022, "cc022", ABISELECT(24,16));
+
+#else // __cplusplus
+
+extern void _ZN5cc022C1Ev();
+extern void _ZN5cc022D1Ev();
+Name_Map name_map_cc022[] = {
+ NSPAIR(_ZN5cc022C1Ev),
+ NSPAIR(_ZN5cc022D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+static Base_Class bases_cc022[] = {
+ // 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_bb22, 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 _ZTI5cc022[];
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_cc022[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc022[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTI5cc022[];
+extern VTBL_ENTRY _ZTV5cc022[];
+Class_Descriptor cd_cc022 = { "cc022", // class name
+ bases_cc022, 2,
+ &(vtc_cc022[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,16), // object size
+ NSPAIRA(_ZTI5cc022),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV5cc022),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 dd0022 : cc022 {
+ int d;
+ ~dd0022(); // tgen
+ dd0022(); // tgen
+};
+//SIG(-1 dd0022) C1{ BC2{ BC3{ BC4{ v1 v2 Fi} v1 Fi} Fi} Fi}
+
+
+dd0022 ::~dd0022(){ note_dtor("dd0022", this);} // tgen
+dd0022 ::dd0022(){ note_ctor("dd0022", this);} // tgen
+
+static void Test_dd0022()
+{
+ extern Class_Descriptor cd_dd0022;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd0022, buf);
+ dd0022 *dp, &lv = *(dp=new (buf) dd0022());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd0022)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0022)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc022*), 0, "dd0022");
+ check_base_class_offset(lv, (bb22*)(cc022*), 0, "dd0022");
+ check_base_class_offset(lv, (cc022*), 0, "dd0022");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd0022.d");
+ test_class_info(&lv, &cd_dd0022);
+ dp->~dd0022();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0022(Test_dd0022, "dd0022", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd0022C1Ev();
+extern void _ZN6dd0022D1Ev();
+Name_Map name_map_dd0022[] = {
+ NSPAIR(_ZN6dd0022C1Ev),
+ NSPAIR(_ZN6dd0022D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc022;
+extern VTBL_ENTRY _ZTI5cc022[];
+extern VTBL_ENTRY _ZTV5cc022[];
+static Base_Class bases_dd0022[] = {
+ // 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_bb22, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc022, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI6dd0022[];
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_dd0022[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0022[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTI6dd0022[];
+extern VTBL_ENTRY _ZTV6dd0022[];
+Class_Descriptor cd_dd0022 = { "dd0022", // class name
+ bases_dd0022, 3,
+ &(vtc_dd0022[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd0022),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0022),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 ee00022 : dd0022 {
+ int e;
+ ~ee00022(); // tgen
+ ee00022(); // tgen
+};
+//SIG(1 ee00022) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} Fi} Fi} Fi}
+
+
+ee00022 ::~ee00022(){ note_dtor("ee00022", this);} // tgen
+ee00022 ::ee00022(){ note_ctor("ee00022", this);} // tgen
+
+static void Test_ee00022()
+{
+ extern Class_Descriptor cd_ee00022;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee00022, buf);
+ ee00022 *dp, &lv = *(dp=new (buf) ee00022());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee00022)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00022)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc022*)(dd0022*), 0, "ee00022");
+ check_base_class_offset(lv, (bb22*)(cc022*)(dd0022*), 0, "ee00022");
+ check_base_class_offset(lv, (cc022*)(dd0022*), 0, "ee00022");
+ check_base_class_offset(lv, (dd0022*), 0, "ee00022");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee00022.e");
+ test_class_info(&lv, &cd_ee00022);
+ dp->~ee00022();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00022(Test_ee00022, "ee00022", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee00022C1Ev();
+extern void _ZN7ee00022D1Ev();
+Name_Map name_map_ee00022[] = {
+ NSPAIR(_ZN7ee00022C1Ev),
+ NSPAIR(_ZN7ee00022D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc022;
+extern VTBL_ENTRY _ZTI5cc022[];
+extern VTBL_ENTRY _ZTV5cc022[];
+extern Class_Descriptor cd_dd0022;
+extern VTBL_ENTRY _ZTI6dd0022[];
+extern VTBL_ENTRY _ZTV6dd0022[];
+static Base_Class bases_ee00022[] = {
+ // 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_bb22, 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
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc022, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd0022, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee00022[];
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee00022[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00022[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTI7ee00022[];
+extern VTBL_ENTRY _ZTV7ee00022[];
+Class_Descriptor cd_ee00022 = { "ee00022", // class name
+ bases_ee00022, 4,
+ &(vtc_ee00022[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee00022),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00022),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 ee10022 : virtual dd0022 {
+ int e;
+ ~ee10022(); // tgen
+ ee10022(); // tgen
+};
+//SIG(1 ee10022) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} Fi} Fi} Fi}
+
+
+ee10022 ::~ee10022(){ note_dtor("ee10022", this);} // tgen
+ee10022 ::ee10022(){ note_ctor("ee10022", this);} // tgen
+
+static void Test_ee10022()
+{
+ extern Class_Descriptor cd_ee10022;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee10022, buf);
+ ee10022 *dp, &lv = *(dp=new (buf) ee10022());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee10022)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10022)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc022*)(dd0022*), ABISELECT(16,8), "ee10022");
+ check_base_class_offset(lv, (bb22*)(cc022*)(dd0022*), ABISELECT(16,8), "ee10022");
+ check_base_class_offset(lv, (cc022*)(dd0022*), ABISELECT(16,8), "ee10022");
+ check_base_class_offset(lv, (dd0022*), ABISELECT(16,8), "ee10022");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10022.e");
+ test_class_info(&lv, &cd_ee10022);
+ dp->~ee10022();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10022(Test_ee10022, "ee10022", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee10022C1Ev();
+extern void _ZN7ee10022D1Ev();
+Name_Map name_map_ee10022[] = {
+ NSPAIR(_ZN7ee10022C1Ev),
+ NSPAIR(_ZN7ee10022D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc022;
+extern VTBL_ENTRY _ZTI5cc022[];
+extern VTBL_ENTRY _ZTV5cc022[];
+extern Class_Descriptor cd_dd0022;
+extern VTBL_ENTRY _ZTI6dd0022[];
+extern VTBL_ENTRY _ZTV6dd0022[];
+static Base_Class bases_ee10022[] = {
+ // 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_bb22, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc022, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd0022, 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 _ZTI7ee10022[];
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee10022[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10022[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10022[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee10022[];
+static VTT_ENTRY vtt_ee10022[] = {
+ {&(_ZTV7ee10022[3]), 3,9},
+ {&(_ZTV7ee10022[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee10022[];
+extern VTBL_ENTRY _ZTV7ee10022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10022[];
+Class_Descriptor cd_ee10022 = { "ee10022", // class name
+ bases_ee10022, 4,
+ &(vtc_ee10022[0]), // expected_vtbl_contents
+ &(vtt_ee10022[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee10022),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10022),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10022),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 ee20022 : dd0022 {
+ int e;
+ virtual void foo(); // _ZN7ee200223fooEv
+ ~ee20022(); // tgen
+ ee20022(); // tgen
+};
+//SIG(1 ee20022) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} Fi} Fi} v1 Fi}
+
+
+void ee20022 ::foo(){vfunc_called(this, "_ZN7ee200223fooEv");}
+ee20022 ::~ee20022(){ note_dtor("ee20022", this);} // tgen
+ee20022 ::ee20022(){ note_ctor("ee20022", this);} // tgen
+
+static void Test_ee20022()
+{
+ extern Class_Descriptor cd_ee20022;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee20022, buf);
+ ee20022 *dp, &lv = *(dp=new (buf) ee20022());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee20022)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20022)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc022*)(dd0022*), 0, "ee20022");
+ check_base_class_offset(lv, (bb22*)(cc022*)(dd0022*), 0, "ee20022");
+ check_base_class_offset(lv, (cc022*)(dd0022*), 0, "ee20022");
+ check_base_class_offset(lv, (dd0022*), 0, "ee20022");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee20022.e");
+ test_class_info(&lv, &cd_ee20022);
+ dp->~ee20022();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20022(Test_ee20022, "ee20022", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee20022C1Ev();
+extern void _ZN7ee20022D1Ev();
+Name_Map name_map_ee20022[] = {
+ NSPAIR(_ZN7ee20022C1Ev),
+ NSPAIR(_ZN7ee20022D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc022;
+extern VTBL_ENTRY _ZTI5cc022[];
+extern VTBL_ENTRY _ZTV5cc022[];
+extern Class_Descriptor cd_dd0022;
+extern VTBL_ENTRY _ZTI6dd0022[];
+extern VTBL_ENTRY _ZTV6dd0022[];
+static Base_Class bases_ee20022[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc022, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd0022, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee20022[];
+extern void _ZN7ee200223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee20022[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20022[0]),
+ (VTBL_ENTRY)&_ZN7ee200223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTI7ee20022[];
+extern VTBL_ENTRY _ZTV7ee20022[];
+Class_Descriptor cd_ee20022 = { "ee20022", // class name
+ bases_ee20022, 4,
+ &(vtc_ee20022[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee20022),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20022),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 ee30022 : virtual dd0022 {
+ int e;
+ virtual void foo(); // _ZN7ee300223fooEv
+ ~ee30022(); // tgen
+ ee30022(); // tgen
+};
+//SIG(1 ee30022) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} Fi} Fi} v1 Fi}
+
+
+void ee30022 ::foo(){vfunc_called(this, "_ZN7ee300223fooEv");}
+ee30022 ::~ee30022(){ note_dtor("ee30022", this);} // tgen
+ee30022 ::ee30022(){ note_ctor("ee30022", this);} // tgen
+
+static void Test_ee30022()
+{
+ extern Class_Descriptor cd_ee30022;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee30022, buf);
+ ee30022 *dp, &lv = *(dp=new (buf) ee30022());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee30022)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30022)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc022*)(dd0022*), ABISELECT(16,8), "ee30022");
+ check_base_class_offset(lv, (bb22*)(cc022*)(dd0022*), ABISELECT(16,8), "ee30022");
+ check_base_class_offset(lv, (cc022*)(dd0022*), ABISELECT(16,8), "ee30022");
+ check_base_class_offset(lv, (dd0022*), ABISELECT(16,8), "ee30022");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30022.e");
+ test_class_info(&lv, &cd_ee30022);
+ dp->~ee30022();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30022(Test_ee30022, "ee30022", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee30022C1Ev();
+extern void _ZN7ee30022D1Ev();
+Name_Map name_map_ee30022[] = {
+ NSPAIR(_ZN7ee30022C1Ev),
+ NSPAIR(_ZN7ee30022D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc022;
+extern VTBL_ENTRY _ZTI5cc022[];
+extern VTBL_ENTRY _ZTV5cc022[];
+extern Class_Descriptor cd_dd0022;
+extern VTBL_ENTRY _ZTI6dd0022[];
+extern VTBL_ENTRY _ZTV6dd0022[];
+static Base_Class bases_ee30022[] = {
+ // 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_bb22, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc022, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd0022, 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 _ZTI7ee30022[];
+extern void _ZN7ee300223fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee300223fooEv,_ZTv0_n12_N7ee300223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee300223fooEv,_ZThn8_N7ee300223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee30022[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30022[0]),
+ (VTBL_ENTRY)&_ZN7ee300223fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30022[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee300223fooEv,_ZTv0_n12_N7ee300223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee30022[];
+static VTT_ENTRY vtt_ee30022[] = {
+ {&(_ZTV7ee30022[3]), 3,10},
+ {&(_ZTV7ee30022[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee30022[];
+extern VTBL_ENTRY _ZTV7ee30022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30022[];
+static VTBL_ENTRY alt_thunk_names851[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee300223fooEv,_ZTv0_n12_N7ee300223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee300223fooEv,_ZThn8_N7ee300223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30022 = { "ee30022", // class name
+ bases_ee30022, 4,
+ &(vtc_ee30022[0]), // expected_vtbl_contents
+ &(vtt_ee30022[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee30022),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30022),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30022),2, //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 ee40022 : dd0022 {
+ int e;
+ virtual void bar(); // _ZN7ee400223barEv
+ ~ee40022(); // tgen
+ ee40022(); // tgen
+};
+//SIG(1 ee40022) C1{ BC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} Fi} Fi} v1 Fi}
+
+
+void ee40022 ::bar(){vfunc_called(this, "_ZN7ee400223barEv");}
+ee40022 ::~ee40022(){ note_dtor("ee40022", this);} // tgen
+ee40022 ::ee40022(){ note_ctor("ee40022", this);} // tgen
+
+static void Test_ee40022()
+{
+ extern Class_Descriptor cd_ee40022;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee40022, buf);
+ ee40022 *dp, &lv = *(dp=new (buf) ee40022());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee40022)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40022)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc022*)(dd0022*), 0, "ee40022");
+ check_base_class_offset(lv, (bb22*)(cc022*)(dd0022*), 0, "ee40022");
+ check_base_class_offset(lv, (cc022*)(dd0022*), 0, "ee40022");
+ check_base_class_offset(lv, (dd0022*), 0, "ee40022");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee40022.e");
+ test_class_info(&lv, &cd_ee40022);
+ dp->~ee40022();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40022(Test_ee40022, "ee40022", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee40022C1Ev();
+extern void _ZN7ee40022D1Ev();
+Name_Map name_map_ee40022[] = {
+ NSPAIR(_ZN7ee40022C1Ev),
+ NSPAIR(_ZN7ee40022D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc022;
+extern VTBL_ENTRY _ZTI5cc022[];
+extern VTBL_ENTRY _ZTV5cc022[];
+extern Class_Descriptor cd_dd0022;
+extern VTBL_ENTRY _ZTI6dd0022[];
+extern VTBL_ENTRY _ZTV6dd0022[];
+static Base_Class bases_ee40022[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc022, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd0022, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee40022[];
+extern void _ZN4bb223fooEv();
+extern void _ZN7ee400223barEv();
+static VTBL_ENTRY vtc_ee40022[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40022[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN7ee400223barEv,
+};
+extern VTBL_ENTRY _ZTI7ee40022[];
+extern VTBL_ENTRY _ZTV7ee40022[];
+Class_Descriptor cd_ee40022 = { "ee40022", // class name
+ bases_ee40022, 4,
+ &(vtc_ee40022[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee40022),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40022),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 ee50022 : virtual dd0022 {
+ int e;
+ virtual void bar(); // _ZN7ee500223barEv
+ ~ee50022(); // tgen
+ ee50022(); // tgen
+};
+//SIG(1 ee50022) C1{ VBC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} Fi} Fi} v1 Fi}
+
+
+void ee50022 ::bar(){vfunc_called(this, "_ZN7ee500223barEv");}
+ee50022 ::~ee50022(){ note_dtor("ee50022", this);} // tgen
+ee50022 ::ee50022(){ note_ctor("ee50022", this);} // tgen
+
+static void Test_ee50022()
+{
+ extern Class_Descriptor cd_ee50022;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee50022, buf);
+ ee50022 *dp, &lv = *(dp=new (buf) ee50022());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee50022)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50022)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc022*)(dd0022*), ABISELECT(16,8), "ee50022");
+ check_base_class_offset(lv, (bb22*)(cc022*)(dd0022*), ABISELECT(16,8), "ee50022");
+ check_base_class_offset(lv, (cc022*)(dd0022*), ABISELECT(16,8), "ee50022");
+ check_base_class_offset(lv, (dd0022*), ABISELECT(16,8), "ee50022");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50022.e");
+ test_class_info(&lv, &cd_ee50022);
+ dp->~ee50022();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50022(Test_ee50022, "ee50022", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee50022C1Ev();
+extern void _ZN7ee50022D1Ev();
+Name_Map name_map_ee50022[] = {
+ NSPAIR(_ZN7ee50022C1Ev),
+ NSPAIR(_ZN7ee50022D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc022;
+extern VTBL_ENTRY _ZTI5cc022[];
+extern VTBL_ENTRY _ZTV5cc022[];
+extern Class_Descriptor cd_dd0022;
+extern VTBL_ENTRY _ZTI6dd0022[];
+extern VTBL_ENTRY _ZTV6dd0022[];
+static Base_Class bases_ee50022[] = {
+ // 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_bb22, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc022, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd0022, 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 _ZTI7ee50022[];
+extern void _ZN7ee500223barEv();
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee500223barEv,_ZTv0_n16_N7ee500223barEv)();
+extern void ABISELECT(_ZThn16_N7ee500223barEv,_ZThn8_N7ee500223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee50022[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50022[0]),
+ (VTBL_ENTRY)&_ZN7ee500223barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50022[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee500223barEv,_ZTv0_n16_N7ee500223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee50022[];
+static VTT_ENTRY vtt_ee50022[] = {
+ {&(_ZTV7ee50022[3]), 3,10},
+ {&(_ZTV7ee50022[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee50022[];
+extern VTBL_ENTRY _ZTV7ee50022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50022[];
+static VTBL_ENTRY alt_thunk_names852[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee500223barEv,_ZTv0_n16_N7ee500223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee500223barEv,_ZThn8_N7ee500223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50022 = { "ee50022", // class name
+ bases_ee50022, 4,
+ &(vtc_ee50022[0]), // expected_vtbl_contents
+ &(vtt_ee50022[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee50022),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50022),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50022),2, //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 ee60022 : dd0022 {
+ int e;
+ virtual void foo(); // _ZN7ee600223fooEv
+ virtual void bar(); // _ZN7ee600223barEv
+ ~ee60022(); // tgen
+ ee60022(); // tgen
+};
+//SIG(1 ee60022) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee60022 ::foo(){vfunc_called(this, "_ZN7ee600223fooEv");}
+void ee60022 ::bar(){vfunc_called(this, "_ZN7ee600223barEv");}
+ee60022 ::~ee60022(){ note_dtor("ee60022", this);} // tgen
+ee60022 ::ee60022(){ note_ctor("ee60022", this);} // tgen
+
+static void Test_ee60022()
+{
+ extern Class_Descriptor cd_ee60022;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee60022, buf);
+ ee60022 *dp, &lv = *(dp=new (buf) ee60022());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee60022)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60022)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc022*)(dd0022*), 0, "ee60022");
+ check_base_class_offset(lv, (bb22*)(cc022*)(dd0022*), 0, "ee60022");
+ check_base_class_offset(lv, (cc022*)(dd0022*), 0, "ee60022");
+ check_base_class_offset(lv, (dd0022*), 0, "ee60022");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee60022.e");
+ test_class_info(&lv, &cd_ee60022);
+ dp->~ee60022();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60022(Test_ee60022, "ee60022", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee60022C1Ev();
+extern void _ZN7ee60022D1Ev();
+Name_Map name_map_ee60022[] = {
+ NSPAIR(_ZN7ee60022C1Ev),
+ NSPAIR(_ZN7ee60022D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc022;
+extern VTBL_ENTRY _ZTI5cc022[];
+extern VTBL_ENTRY _ZTV5cc022[];
+extern Class_Descriptor cd_dd0022;
+extern VTBL_ENTRY _ZTI6dd0022[];
+extern VTBL_ENTRY _ZTV6dd0022[];
+static Base_Class bases_ee60022[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc022, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd0022, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee60022[];
+extern void _ZN7ee600223fooEv();
+extern void _ZN7ee600223barEv();
+static VTBL_ENTRY vtc_ee60022[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60022[0]),
+ (VTBL_ENTRY)&_ZN7ee600223fooEv,
+ (VTBL_ENTRY)&_ZN7ee600223barEv,
+};
+extern VTBL_ENTRY _ZTI7ee60022[];
+extern VTBL_ENTRY _ZTV7ee60022[];
+Class_Descriptor cd_ee60022 = { "ee60022", // class name
+ bases_ee60022, 4,
+ &(vtc_ee60022[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee60022),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60022),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 ee70022 : virtual dd0022 {
+ int e;
+ virtual void foo(); // _ZN7ee700223fooEv
+ virtual void bar(); // _ZN7ee700223barEv
+ ~ee70022(); // tgen
+ ee70022(); // tgen
+};
+//SIG(1 ee70022) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee70022 ::foo(){vfunc_called(this, "_ZN7ee700223fooEv");}
+void ee70022 ::bar(){vfunc_called(this, "_ZN7ee700223barEv");}
+ee70022 ::~ee70022(){ note_dtor("ee70022", this);} // tgen
+ee70022 ::ee70022(){ note_ctor("ee70022", this);} // tgen
+
+static void Test_ee70022()
+{
+ extern Class_Descriptor cd_ee70022;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee70022, buf);
+ ee70022 *dp, &lv = *(dp=new (buf) ee70022());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee70022)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70022)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc022*)(dd0022*), ABISELECT(16,8), "ee70022");
+ check_base_class_offset(lv, (bb22*)(cc022*)(dd0022*), ABISELECT(16,8), "ee70022");
+ check_base_class_offset(lv, (cc022*)(dd0022*), ABISELECT(16,8), "ee70022");
+ check_base_class_offset(lv, (dd0022*), ABISELECT(16,8), "ee70022");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70022.e");
+ test_class_info(&lv, &cd_ee70022);
+ dp->~ee70022();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70022(Test_ee70022, "ee70022", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee70022C1Ev();
+extern void _ZN7ee70022D1Ev();
+Name_Map name_map_ee70022[] = {
+ NSPAIR(_ZN7ee70022C1Ev),
+ NSPAIR(_ZN7ee70022D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc022;
+extern VTBL_ENTRY _ZTI5cc022[];
+extern VTBL_ENTRY _ZTV5cc022[];
+extern Class_Descriptor cd_dd0022;
+extern VTBL_ENTRY _ZTI6dd0022[];
+extern VTBL_ENTRY _ZTV6dd0022[];
+static Base_Class bases_ee70022[] = {
+ // 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_bb22, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc022, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd0022, 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 _ZTI7ee70022[];
+extern void _ZN7ee700223fooEv();
+extern void _ZN7ee700223barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee700223fooEv,_ZTv0_n12_N7ee700223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee700223fooEv,_ZThn8_N7ee700223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee700223barEv,_ZTv0_n16_N7ee700223barEv)();
+extern void ABISELECT(_ZThn16_N7ee700223barEv,_ZThn8_N7ee700223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70022[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70022[0]),
+ (VTBL_ENTRY)&_ZN7ee700223fooEv,
+ (VTBL_ENTRY)&_ZN7ee700223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70022[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee700223fooEv,_ZTv0_n12_N7ee700223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee700223barEv,_ZTv0_n16_N7ee700223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee70022[];
+static VTT_ENTRY vtt_ee70022[] = {
+ {&(_ZTV7ee70022[3]), 3,11},
+ {&(_ZTV7ee70022[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee70022[];
+extern VTBL_ENTRY _ZTV7ee70022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70022[];
+static VTBL_ENTRY alt_thunk_names853[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee700223barEv,_ZTv0_n16_N7ee700223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee700223barEv,_ZThn8_N7ee700223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee700223fooEv,_ZTv0_n12_N7ee700223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee700223fooEv,_ZThn8_N7ee700223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70022 = { "ee70022", // class name
+ bases_ee70022, 4,
+ &(vtc_ee70022[0]), // expected_vtbl_contents
+ &(vtt_ee70022[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee70022),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70022),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70022),2, //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 dd1022 : virtual cc022 {
+ int d;
+ ~dd1022(); // tgen
+ dd1022(); // tgen
+};
+//SIG(-1 dd1022) C1{ VBC2{ BC3{ BC4{ v1 v2 Fi} v1 Fi} Fi} Fi}
+
+
+dd1022 ::~dd1022(){ note_dtor("dd1022", this);} // tgen
+dd1022 ::dd1022(){ note_ctor("dd1022", this);} // tgen
+
+static void Test_dd1022()
+{
+ extern Class_Descriptor cd_dd1022;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd1022, buf);
+ dd1022 *dp, &lv = *(dp=new (buf) dd1022());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd1022)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1022)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc022*), ABISELECT(16,8), "dd1022");
+ check_base_class_offset(lv, (bb22*)(cc022*), ABISELECT(16,8), "dd1022");
+ check_base_class_offset(lv, (cc022*), ABISELECT(16,8), "dd1022");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1022.d");
+ test_class_info(&lv, &cd_dd1022);
+ dp->~dd1022();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1022(Test_dd1022, "dd1022", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd1022C1Ev();
+extern void _ZN6dd1022D1Ev();
+Name_Map name_map_dd1022[] = {
+ NSPAIR(_ZN6dd1022C1Ev),
+ NSPAIR(_ZN6dd1022D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc022;
+extern VTBL_ENTRY _ZTI5cc022[];
+extern VTBL_ENTRY _ZTV5cc022[];
+static Base_Class bases_dd1022[] = {
+ // 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_bb22, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc022, 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 _ZTI6dd1022[];
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_dd1022[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1022[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1022[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV6dd1022[];
+static VTT_ENTRY vtt_dd1022[] = {
+ {&(_ZTV6dd1022[3]), 3,9},
+ {&(_ZTV6dd1022[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI6dd1022[];
+extern VTBL_ENTRY _ZTV6dd1022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1022[];
+Class_Descriptor cd_dd1022 = { "dd1022", // class name
+ bases_dd1022, 3,
+ &(vtc_dd1022[0]), // expected_vtbl_contents
+ &(vtt_dd1022[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd1022),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1022),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1022),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 ee01022 : dd1022 {
+ int e;
+ ~ee01022(); // tgen
+ ee01022(); // tgen
+};
+//SIG(1 ee01022) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} Fi} Fi} Fi}
+
+
+ee01022 ::~ee01022(){ note_dtor("ee01022", this);} // tgen
+ee01022 ::ee01022(){ note_ctor("ee01022", this);} // tgen
+
+static void Test_ee01022()
+{
+ extern Class_Descriptor cd_ee01022;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee01022, buf);
+ ee01022 *dp, &lv = *(dp=new (buf) ee01022());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee01022)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01022)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc022*), ABISELECT(16,12), "ee01022");
+ check_base_class_offset(lv, (bb22*)(cc022*), ABISELECT(16,12), "ee01022");
+ check_base_class_offset(lv, (cc022*)(dd1022*), ABISELECT(16,12), "ee01022");
+ check_base_class_offset(lv, (dd1022*), 0, "ee01022");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01022.e");
+ test_class_info(&lv, &cd_ee01022);
+ dp->~ee01022();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01022(Test_ee01022, "ee01022", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee01022C1Ev();
+extern void _ZN7ee01022D1Ev();
+Name_Map name_map_ee01022[] = {
+ NSPAIR(_ZN7ee01022C1Ev),
+ NSPAIR(_ZN7ee01022D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc022;
+extern VTBL_ENTRY _ZTI5cc022[];
+extern VTBL_ENTRY _ZTV5cc022[];
+extern Class_Descriptor cd_dd1022;
+extern VTBL_ENTRY _ZTI6dd1022[];
+extern VTBL_ENTRY _ZTV6dd1022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1022[];
+static Base_Class bases_ee01022[] = {
+ // 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_bb22, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc022, 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_dd1022, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01022[];
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee01022[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01022[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01022[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee01022[];
+static VTBL_ENTRY _tg__ZTV6dd1022__7ee01022[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1022[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb225cc022__6dd1022__7ee01022[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1022[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee01022[] = {
+ {&(_ZTV7ee01022[3]), 3,9},
+ {&(_tg__ZTV6dd1022__7ee01022[3]), 3,3},
+ {&(_tg__ZTV4bb225cc022__6dd1022__7ee01022[4]), 4,6},
+ {&(_ZTV7ee01022[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee01022[];
+extern VTBL_ENTRY _ZTV7ee01022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01022[];
+Class_Descriptor cd_ee01022 = { "ee01022", // class name
+ bases_ee01022, 4,
+ &(vtc_ee01022[0]), // expected_vtbl_contents
+ &(vtt_ee01022[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee01022),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01022),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01022),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 ee11022 : virtual dd1022 {
+ int e;
+ ~ee11022(); // tgen
+ ee11022(); // tgen
+};
+//SIG(1 ee11022) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} Fi} Fi} Fi}
+
+
+ee11022 ::~ee11022(){ note_dtor("ee11022", this);} // tgen
+ee11022 ::ee11022(){ note_ctor("ee11022", this);} // tgen
+
+static void Test_ee11022()
+{
+ extern Class_Descriptor cd_ee11022;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee11022, buf);
+ ee11022 *dp, &lv = *(dp=new (buf) ee11022());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee11022)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11022)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc022*), ABISELECT(32,16), "ee11022");
+ check_base_class_offset(lv, (bb22*)(cc022*), ABISELECT(32,16), "ee11022");
+ check_base_class_offset(lv, (cc022*)(dd1022*), ABISELECT(32,16), "ee11022");
+ check_base_class_offset(lv, (dd1022*), ABISELECT(16,8), "ee11022");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11022.e");
+ test_class_info(&lv, &cd_ee11022);
+ dp->~ee11022();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11022(Test_ee11022, "ee11022", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee11022C1Ev();
+extern void _ZN7ee11022D1Ev();
+Name_Map name_map_ee11022[] = {
+ NSPAIR(_ZN7ee11022C1Ev),
+ NSPAIR(_ZN7ee11022D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc022;
+extern VTBL_ENTRY _ZTI5cc022[];
+extern VTBL_ENTRY _ZTV5cc022[];
+extern Class_Descriptor cd_dd1022;
+extern VTBL_ENTRY _ZTI6dd1022[];
+extern VTBL_ENTRY _ZTV6dd1022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1022[];
+static Base_Class bases_ee11022[] = {
+ // 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_bb22, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc022, 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_dd1022, 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 _ZTI7ee11022[];
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee11022[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11022[0]),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11022[0]),
+ 0,
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11022[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee11022[];
+static VTBL_ENTRY _tg__ZTV6dd1022__7ee11022[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1022[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb225cc022__6dd1022__7ee11022[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1022[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee11022[] = {
+ {&(_ZTV7ee11022[4]), 4,13},
+ {&(_ZTV7ee11022[7]), 7,13},
+ {&(_ZTV7ee11022[11]), 11,13},
+ {&(_tg__ZTV6dd1022__7ee11022[3]), 3,3},
+ {&(_tg__ZTV4bb225cc022__6dd1022__7ee11022[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee11022[];
+extern VTBL_ENTRY _ZTV7ee11022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11022[];
+Class_Descriptor cd_ee11022 = { "ee11022", // class name
+ bases_ee11022, 4,
+ &(vtc_ee11022[0]), // expected_vtbl_contents
+ &(vtt_ee11022[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee11022),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11022),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11022),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 ee21022 : dd1022 {
+ int e;
+ virtual void foo(); // _ZN7ee210223fooEv
+ ~ee21022(); // tgen
+ ee21022(); // tgen
+};
+//SIG(1 ee21022) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} Fi} Fi} v1 Fi}
+
+
+void ee21022 ::foo(){vfunc_called(this, "_ZN7ee210223fooEv");}
+ee21022 ::~ee21022(){ note_dtor("ee21022", this);} // tgen
+ee21022 ::ee21022(){ note_ctor("ee21022", this);} // tgen
+
+static void Test_ee21022()
+{
+ extern Class_Descriptor cd_ee21022;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee21022, buf);
+ ee21022 *dp, &lv = *(dp=new (buf) ee21022());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee21022)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21022)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc022*), ABISELECT(16,12), "ee21022");
+ check_base_class_offset(lv, (bb22*)(cc022*), ABISELECT(16,12), "ee21022");
+ check_base_class_offset(lv, (cc022*)(dd1022*), ABISELECT(16,12), "ee21022");
+ check_base_class_offset(lv, (dd1022*), 0, "ee21022");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21022.e");
+ test_class_info(&lv, &cd_ee21022);
+ dp->~ee21022();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21022(Test_ee21022, "ee21022", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee21022C1Ev();
+extern void _ZN7ee21022D1Ev();
+Name_Map name_map_ee21022[] = {
+ NSPAIR(_ZN7ee21022C1Ev),
+ NSPAIR(_ZN7ee21022D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc022;
+extern VTBL_ENTRY _ZTI5cc022[];
+extern VTBL_ENTRY _ZTV5cc022[];
+extern Class_Descriptor cd_dd1022;
+extern VTBL_ENTRY _ZTI6dd1022[];
+extern VTBL_ENTRY _ZTV6dd1022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1022[];
+static Base_Class bases_ee21022[] = {
+ // 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_bb22, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc022, 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_dd1022, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21022[];
+extern void _ZN7ee210223fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee210223fooEv,_ZTv0_n12_N7ee210223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee210223fooEv,_ZThn12_N7ee210223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee21022[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21022[0]),
+ (VTBL_ENTRY)&_ZN7ee210223fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21022[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee210223fooEv,_ZTv0_n12_N7ee210223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee21022[];
+static VTBL_ENTRY _tg__ZTV6dd1022__7ee21022[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1022[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb225cc022__6dd1022__7ee21022[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1022[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee21022[] = {
+ {&(_ZTV7ee21022[3]), 3,10},
+ {&(_tg__ZTV6dd1022__7ee21022[3]), 3,3},
+ {&(_tg__ZTV4bb225cc022__6dd1022__7ee21022[4]), 4,6},
+ {&(_ZTV7ee21022[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee21022[];
+extern VTBL_ENTRY _ZTV7ee21022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21022[];
+static VTBL_ENTRY alt_thunk_names854[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee210223fooEv,_ZTv0_n12_N7ee210223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee210223fooEv,_ZThn12_N7ee210223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21022 = { "ee21022", // class name
+ bases_ee21022, 4,
+ &(vtc_ee21022[0]), // expected_vtbl_contents
+ &(vtt_ee21022[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee21022),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21022),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21022),4, //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 ee31022 : virtual dd1022 {
+ int e;
+ virtual void foo(); // _ZN7ee310223fooEv
+ ~ee31022(); // tgen
+ ee31022(); // tgen
+};
+//SIG(1 ee31022) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} Fi} Fi} v1 Fi}
+
+
+void ee31022 ::foo(){vfunc_called(this, "_ZN7ee310223fooEv");}
+ee31022 ::~ee31022(){ note_dtor("ee31022", this);} // tgen
+ee31022 ::ee31022(){ note_ctor("ee31022", this);} // tgen
+
+static void Test_ee31022()
+{
+ extern Class_Descriptor cd_ee31022;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee31022, buf);
+ ee31022 *dp, &lv = *(dp=new (buf) ee31022());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee31022)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31022)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc022*), ABISELECT(32,16), "ee31022");
+ check_base_class_offset(lv, (bb22*)(cc022*), ABISELECT(32,16), "ee31022");
+ check_base_class_offset(lv, (cc022*)(dd1022*), ABISELECT(32,16), "ee31022");
+ check_base_class_offset(lv, (dd1022*), ABISELECT(16,8), "ee31022");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31022.e");
+ test_class_info(&lv, &cd_ee31022);
+ dp->~ee31022();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31022(Test_ee31022, "ee31022", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee31022C1Ev();
+extern void _ZN7ee31022D1Ev();
+Name_Map name_map_ee31022[] = {
+ NSPAIR(_ZN7ee31022C1Ev),
+ NSPAIR(_ZN7ee31022D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc022;
+extern VTBL_ENTRY _ZTI5cc022[];
+extern VTBL_ENTRY _ZTV5cc022[];
+extern Class_Descriptor cd_dd1022;
+extern VTBL_ENTRY _ZTI6dd1022[];
+extern VTBL_ENTRY _ZTV6dd1022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1022[];
+static Base_Class bases_ee31022[] = {
+ // 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_bb22, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc022, 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_dd1022, 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 _ZTI7ee31022[];
+extern void _ZN7ee310223fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee310223fooEv,_ZTv0_n12_N7ee310223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee310223fooEv,_ZThn16_N7ee310223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee31022[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31022[0]),
+ (VTBL_ENTRY)&_ZN7ee310223fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31022[0]),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31022[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee310223fooEv,_ZTv0_n12_N7ee310223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee31022[];
+static VTBL_ENTRY _tg__ZTV6dd1022__7ee31022[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1022[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb225cc022__6dd1022__7ee31022[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1022[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee31022[] = {
+ {&(_ZTV7ee31022[4]), 4,14},
+ {&(_ZTV7ee31022[8]), 8,14},
+ {&(_ZTV7ee31022[12]), 12,14},
+ {&(_tg__ZTV6dd1022__7ee31022[3]), 3,3},
+ {&(_tg__ZTV4bb225cc022__6dd1022__7ee31022[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee31022[];
+extern VTBL_ENTRY _ZTV7ee31022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31022[];
+static VTBL_ENTRY alt_thunk_names855[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee310223fooEv,_ZTv0_n12_N7ee310223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee310223fooEv,_ZThn16_N7ee310223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31022 = { "ee31022", // class name
+ bases_ee31022, 4,
+ &(vtc_ee31022[0]), // expected_vtbl_contents
+ &(vtt_ee31022[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee31022),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31022),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31022),5, //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 ee41022 : dd1022 {
+ int e;
+ virtual void bar(); // _ZN7ee410223barEv
+ ~ee41022(); // tgen
+ ee41022(); // tgen
+};
+//SIG(1 ee41022) C1{ BC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} Fi} Fi} v1 Fi}
+
+
+void ee41022 ::bar(){vfunc_called(this, "_ZN7ee410223barEv");}
+ee41022 ::~ee41022(){ note_dtor("ee41022", this);} // tgen
+ee41022 ::ee41022(){ note_ctor("ee41022", this);} // tgen
+
+static void Test_ee41022()
+{
+ extern Class_Descriptor cd_ee41022;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee41022, buf);
+ ee41022 *dp, &lv = *(dp=new (buf) ee41022());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee41022)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41022)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc022*), ABISELECT(16,12), "ee41022");
+ check_base_class_offset(lv, (bb22*)(cc022*), ABISELECT(16,12), "ee41022");
+ check_base_class_offset(lv, (cc022*)(dd1022*), ABISELECT(16,12), "ee41022");
+ check_base_class_offset(lv, (dd1022*), 0, "ee41022");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41022.e");
+ test_class_info(&lv, &cd_ee41022);
+ dp->~ee41022();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41022(Test_ee41022, "ee41022", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee41022C1Ev();
+extern void _ZN7ee41022D1Ev();
+Name_Map name_map_ee41022[] = {
+ NSPAIR(_ZN7ee41022C1Ev),
+ NSPAIR(_ZN7ee41022D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc022;
+extern VTBL_ENTRY _ZTI5cc022[];
+extern VTBL_ENTRY _ZTV5cc022[];
+extern Class_Descriptor cd_dd1022;
+extern VTBL_ENTRY _ZTI6dd1022[];
+extern VTBL_ENTRY _ZTV6dd1022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1022[];
+static Base_Class bases_ee41022[] = {
+ // 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_bb22, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc022, 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_dd1022, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41022[];
+extern void _ZN7ee410223barEv();
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee410223barEv,_ZTv0_n16_N7ee410223barEv)();
+extern void ABISELECT(_ZThn16_N7ee410223barEv,_ZThn12_N7ee410223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee41022[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41022[0]),
+ (VTBL_ENTRY)&_ZN7ee410223barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41022[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee410223barEv,_ZTv0_n16_N7ee410223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee41022[];
+static VTBL_ENTRY _tg__ZTV6dd1022__7ee41022[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1022[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb225cc022__6dd1022__7ee41022[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1022[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee41022[] = {
+ {&(_ZTV7ee41022[3]), 3,10},
+ {&(_tg__ZTV6dd1022__7ee41022[3]), 3,3},
+ {&(_tg__ZTV4bb225cc022__6dd1022__7ee41022[4]), 4,6},
+ {&(_ZTV7ee41022[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee41022[];
+extern VTBL_ENTRY _ZTV7ee41022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41022[];
+static VTBL_ENTRY alt_thunk_names856[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee410223barEv,_ZTv0_n16_N7ee410223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee410223barEv,_ZThn12_N7ee410223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41022 = { "ee41022", // class name
+ bases_ee41022, 4,
+ &(vtc_ee41022[0]), // expected_vtbl_contents
+ &(vtt_ee41022[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee41022),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41022),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41022),4, //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 ee51022 : virtual dd1022 {
+ int e;
+ virtual void bar(); // _ZN7ee510223barEv
+ ~ee51022(); // tgen
+ ee51022(); // tgen
+};
+//SIG(1 ee51022) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} Fi} Fi} v1 Fi}
+
+
+void ee51022 ::bar(){vfunc_called(this, "_ZN7ee510223barEv");}
+ee51022 ::~ee51022(){ note_dtor("ee51022", this);} // tgen
+ee51022 ::ee51022(){ note_ctor("ee51022", this);} // tgen
+
+static void Test_ee51022()
+{
+ extern Class_Descriptor cd_ee51022;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee51022, buf);
+ ee51022 *dp, &lv = *(dp=new (buf) ee51022());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee51022)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51022)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc022*), ABISELECT(32,16), "ee51022");
+ check_base_class_offset(lv, (bb22*)(cc022*), ABISELECT(32,16), "ee51022");
+ check_base_class_offset(lv, (cc022*)(dd1022*), ABISELECT(32,16), "ee51022");
+ check_base_class_offset(lv, (dd1022*), ABISELECT(16,8), "ee51022");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51022.e");
+ test_class_info(&lv, &cd_ee51022);
+ dp->~ee51022();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51022(Test_ee51022, "ee51022", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee51022C1Ev();
+extern void _ZN7ee51022D1Ev();
+Name_Map name_map_ee51022[] = {
+ NSPAIR(_ZN7ee51022C1Ev),
+ NSPAIR(_ZN7ee51022D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc022;
+extern VTBL_ENTRY _ZTI5cc022[];
+extern VTBL_ENTRY _ZTV5cc022[];
+extern Class_Descriptor cd_dd1022;
+extern VTBL_ENTRY _ZTI6dd1022[];
+extern VTBL_ENTRY _ZTV6dd1022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1022[];
+static Base_Class bases_ee51022[] = {
+ // 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_bb22, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc022, 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_dd1022, 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 _ZTI7ee51022[];
+extern void _ZN7ee510223barEv();
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee510223barEv,_ZTv0_n16_N7ee510223barEv)();
+extern void ABISELECT(_ZThn32_N7ee510223barEv,_ZThn16_N7ee510223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee51022[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51022[0]),
+ (VTBL_ENTRY)&_ZN7ee510223barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51022[0]),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51022[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee510223barEv,_ZTv0_n16_N7ee510223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee51022[];
+static VTBL_ENTRY _tg__ZTV6dd1022__7ee51022[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1022[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb225cc022__6dd1022__7ee51022[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1022[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee51022[] = {
+ {&(_ZTV7ee51022[4]), 4,14},
+ {&(_ZTV7ee51022[8]), 8,14},
+ {&(_ZTV7ee51022[12]), 12,14},
+ {&(_tg__ZTV6dd1022__7ee51022[3]), 3,3},
+ {&(_tg__ZTV4bb225cc022__6dd1022__7ee51022[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee51022[];
+extern VTBL_ENTRY _ZTV7ee51022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51022[];
+static VTBL_ENTRY alt_thunk_names857[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee510223barEv,_ZTv0_n16_N7ee510223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee510223barEv,_ZThn16_N7ee510223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51022 = { "ee51022", // class name
+ bases_ee51022, 4,
+ &(vtc_ee51022[0]), // expected_vtbl_contents
+ &(vtt_ee51022[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee51022),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51022),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51022),5, //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 ee61022 : dd1022 {
+ int e;
+ virtual void foo(); // _ZN7ee610223fooEv
+ virtual void bar(); // _ZN7ee610223barEv
+ ~ee61022(); // tgen
+ ee61022(); // tgen
+};
+//SIG(1 ee61022) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee61022 ::foo(){vfunc_called(this, "_ZN7ee610223fooEv");}
+void ee61022 ::bar(){vfunc_called(this, "_ZN7ee610223barEv");}
+ee61022 ::~ee61022(){ note_dtor("ee61022", this);} // tgen
+ee61022 ::ee61022(){ note_ctor("ee61022", this);} // tgen
+
+static void Test_ee61022()
+{
+ extern Class_Descriptor cd_ee61022;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee61022, buf);
+ ee61022 *dp, &lv = *(dp=new (buf) ee61022());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee61022)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61022)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc022*), ABISELECT(16,12), "ee61022");
+ check_base_class_offset(lv, (bb22*)(cc022*), ABISELECT(16,12), "ee61022");
+ check_base_class_offset(lv, (cc022*)(dd1022*), ABISELECT(16,12), "ee61022");
+ check_base_class_offset(lv, (dd1022*), 0, "ee61022");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61022.e");
+ test_class_info(&lv, &cd_ee61022);
+ dp->~ee61022();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61022(Test_ee61022, "ee61022", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee61022C1Ev();
+extern void _ZN7ee61022D1Ev();
+Name_Map name_map_ee61022[] = {
+ NSPAIR(_ZN7ee61022C1Ev),
+ NSPAIR(_ZN7ee61022D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc022;
+extern VTBL_ENTRY _ZTI5cc022[];
+extern VTBL_ENTRY _ZTV5cc022[];
+extern Class_Descriptor cd_dd1022;
+extern VTBL_ENTRY _ZTI6dd1022[];
+extern VTBL_ENTRY _ZTV6dd1022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1022[];
+static Base_Class bases_ee61022[] = {
+ // 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_bb22, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc022, 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_dd1022, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61022[];
+extern void _ZN7ee610223fooEv();
+extern void _ZN7ee610223barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee610223fooEv,_ZTv0_n12_N7ee610223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee610223fooEv,_ZThn12_N7ee610223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee610223barEv,_ZTv0_n16_N7ee610223barEv)();
+extern void ABISELECT(_ZThn16_N7ee610223barEv,_ZThn12_N7ee610223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61022[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61022[0]),
+ (VTBL_ENTRY)&_ZN7ee610223fooEv,
+ (VTBL_ENTRY)&_ZN7ee610223barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61022[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee610223fooEv,_ZTv0_n12_N7ee610223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee610223barEv,_ZTv0_n16_N7ee610223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee61022[];
+static VTBL_ENTRY _tg__ZTV6dd1022__7ee61022[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1022[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb225cc022__6dd1022__7ee61022[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1022[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee61022[] = {
+ {&(_ZTV7ee61022[3]), 3,11},
+ {&(_tg__ZTV6dd1022__7ee61022[3]), 3,3},
+ {&(_tg__ZTV4bb225cc022__6dd1022__7ee61022[4]), 4,6},
+ {&(_ZTV7ee61022[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee61022[];
+extern VTBL_ENTRY _ZTV7ee61022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61022[];
+static VTBL_ENTRY alt_thunk_names858[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee610223barEv,_ZTv0_n16_N7ee610223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee610223barEv,_ZThn12_N7ee610223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee610223fooEv,_ZTv0_n12_N7ee610223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee610223fooEv,_ZThn12_N7ee610223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61022 = { "ee61022", // class name
+ bases_ee61022, 4,
+ &(vtc_ee61022[0]), // expected_vtbl_contents
+ &(vtt_ee61022[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee61022),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61022),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61022),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names858,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee71022 : virtual dd1022 {
+ int e;
+ virtual void foo(); // _ZN7ee710223fooEv
+ virtual void bar(); // _ZN7ee710223barEv
+ ~ee71022(); // tgen
+ ee71022(); // tgen
+};
+//SIG(1 ee71022) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee71022 ::foo(){vfunc_called(this, "_ZN7ee710223fooEv");}
+void ee71022 ::bar(){vfunc_called(this, "_ZN7ee710223barEv");}
+ee71022 ::~ee71022(){ note_dtor("ee71022", this);} // tgen
+ee71022 ::ee71022(){ note_ctor("ee71022", this);} // tgen
+
+static void Test_ee71022()
+{
+ extern Class_Descriptor cd_ee71022;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee71022, buf);
+ ee71022 *dp, &lv = *(dp=new (buf) ee71022());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee71022)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71022)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc022*), ABISELECT(32,16), "ee71022");
+ check_base_class_offset(lv, (bb22*)(cc022*), ABISELECT(32,16), "ee71022");
+ check_base_class_offset(lv, (cc022*)(dd1022*), ABISELECT(32,16), "ee71022");
+ check_base_class_offset(lv, (dd1022*), ABISELECT(16,8), "ee71022");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71022.e");
+ test_class_info(&lv, &cd_ee71022);
+ dp->~ee71022();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71022(Test_ee71022, "ee71022", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee71022C1Ev();
+extern void _ZN7ee71022D1Ev();
+Name_Map name_map_ee71022[] = {
+ NSPAIR(_ZN7ee71022C1Ev),
+ NSPAIR(_ZN7ee71022D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc022;
+extern VTBL_ENTRY _ZTI5cc022[];
+extern VTBL_ENTRY _ZTV5cc022[];
+extern Class_Descriptor cd_dd1022;
+extern VTBL_ENTRY _ZTI6dd1022[];
+extern VTBL_ENTRY _ZTV6dd1022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1022[];
+static Base_Class bases_ee71022[] = {
+ // 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_bb22, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc022, 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_dd1022, 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 _ZTI7ee71022[];
+extern void _ZN7ee710223fooEv();
+extern void _ZN7ee710223barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee710223fooEv,_ZTv0_n12_N7ee710223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee710223fooEv,_ZThn16_N7ee710223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee710223barEv,_ZTv0_n16_N7ee710223barEv)();
+extern void ABISELECT(_ZThn32_N7ee710223barEv,_ZThn16_N7ee710223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71022[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71022[0]),
+ (VTBL_ENTRY)&_ZN7ee710223fooEv,
+ (VTBL_ENTRY)&_ZN7ee710223barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71022[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71022[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee710223fooEv,_ZTv0_n12_N7ee710223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee710223barEv,_ZTv0_n16_N7ee710223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee71022[];
+static VTBL_ENTRY _tg__ZTV6dd1022__7ee71022[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1022[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb225cc022__6dd1022__7ee71022[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1022[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee71022[] = {
+ {&(_ZTV7ee71022[4]), 4,15},
+ {&(_ZTV7ee71022[9]), 9,15},
+ {&(_ZTV7ee71022[13]), 13,15},
+ {&(_tg__ZTV6dd1022__7ee71022[3]), 3,3},
+ {&(_tg__ZTV4bb225cc022__6dd1022__7ee71022[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee71022[];
+extern VTBL_ENTRY _ZTV7ee71022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71022[];
+static VTBL_ENTRY alt_thunk_names859[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee710223barEv,_ZTv0_n16_N7ee710223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee710223barEv,_ZThn16_N7ee710223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee710223fooEv,_ZTv0_n12_N7ee710223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee710223fooEv,_ZThn16_N7ee710223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71022 = { "ee71022", // class name
+ bases_ee71022, 4,
+ &(vtc_ee71022[0]), // expected_vtbl_contents
+ &(vtt_ee71022[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee71022),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71022),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71022),5, //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 dd2022 : cc022 {
+ int d;
+ virtual void foo(); // _ZN6dd20223fooEv
+ ~dd2022(); // tgen
+ dd2022(); // tgen
+};
+//SIG(-1 dd2022) C1{ BC2{ BC3{ BC4{ v1 v2 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void dd2022 ::foo(){vfunc_called(this, "_ZN6dd20223fooEv");}
+dd2022 ::~dd2022(){ note_dtor("dd2022", this);} // tgen
+dd2022 ::dd2022(){ note_ctor("dd2022", this);} // tgen
+
+static void Test_dd2022()
+{
+ extern Class_Descriptor cd_dd2022;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd2022, buf);
+ dd2022 *dp, &lv = *(dp=new (buf) dd2022());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd2022)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2022)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc022*), 0, "dd2022");
+ check_base_class_offset(lv, (bb22*)(cc022*), 0, "dd2022");
+ check_base_class_offset(lv, (cc022*), 0, "dd2022");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd2022.d");
+ test_class_info(&lv, &cd_dd2022);
+ dp->~dd2022();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2022(Test_dd2022, "dd2022", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd2022C1Ev();
+extern void _ZN6dd2022D1Ev();
+Name_Map name_map_dd2022[] = {
+ NSPAIR(_ZN6dd2022C1Ev),
+ NSPAIR(_ZN6dd2022D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc022;
+extern VTBL_ENTRY _ZTI5cc022[];
+extern VTBL_ENTRY _ZTV5cc022[];
+static Base_Class bases_dd2022[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc022, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI6dd2022[];
+extern void _ZN6dd20223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_dd2022[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2022[0]),
+ (VTBL_ENTRY)&_ZN6dd20223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTI6dd2022[];
+extern VTBL_ENTRY _ZTV6dd2022[];
+Class_Descriptor cd_dd2022 = { "dd2022", // class name
+ bases_dd2022, 3,
+ &(vtc_dd2022[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd2022),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2022),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 ee02022 : dd2022 {
+ int e;
+ ~ee02022(); // tgen
+ ee02022(); // tgen
+};
+//SIG(1 ee02022) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} Fi} v1 Fi} Fi}
+
+
+ee02022 ::~ee02022(){ note_dtor("ee02022", this);} // tgen
+ee02022 ::ee02022(){ note_ctor("ee02022", this);} // tgen
+
+static void Test_ee02022()
+{
+ extern Class_Descriptor cd_ee02022;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee02022, buf);
+ ee02022 *dp, &lv = *(dp=new (buf) ee02022());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee02022)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02022)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc022*)(dd2022*), 0, "ee02022");
+ check_base_class_offset(lv, (bb22*)(cc022*)(dd2022*), 0, "ee02022");
+ check_base_class_offset(lv, (cc022*)(dd2022*), 0, "ee02022");
+ check_base_class_offset(lv, (dd2022*), 0, "ee02022");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee02022.e");
+ test_class_info(&lv, &cd_ee02022);
+ dp->~ee02022();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02022(Test_ee02022, "ee02022", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee02022C1Ev();
+extern void _ZN7ee02022D1Ev();
+Name_Map name_map_ee02022[] = {
+ NSPAIR(_ZN7ee02022C1Ev),
+ NSPAIR(_ZN7ee02022D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc022;
+extern VTBL_ENTRY _ZTI5cc022[];
+extern VTBL_ENTRY _ZTV5cc022[];
+extern Class_Descriptor cd_dd2022;
+extern VTBL_ENTRY _ZTI6dd2022[];
+extern VTBL_ENTRY _ZTV6dd2022[];
+static Base_Class bases_ee02022[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc022, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2022, 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 _ZTI7ee02022[];
+extern void _ZN6dd20223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee02022[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02022[0]),
+ (VTBL_ENTRY)&_ZN6dd20223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTI7ee02022[];
+extern VTBL_ENTRY _ZTV7ee02022[];
+Class_Descriptor cd_ee02022 = { "ee02022", // class name
+ bases_ee02022, 4,
+ &(vtc_ee02022[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee02022),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02022),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 ee12022 : virtual dd2022 {
+ int e;
+ ~ee12022(); // tgen
+ ee12022(); // tgen
+};
+//SIG(1 ee12022) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} Fi} v1 Fi} Fi}
+
+
+ee12022 ::~ee12022(){ note_dtor("ee12022", this);} // tgen
+ee12022 ::ee12022(){ note_ctor("ee12022", this);} // tgen
+
+static void Test_ee12022()
+{
+ extern Class_Descriptor cd_ee12022;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee12022, buf);
+ ee12022 *dp, &lv = *(dp=new (buf) ee12022());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee12022)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12022)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc022*)(dd2022*), ABISELECT(16,8), "ee12022");
+ check_base_class_offset(lv, (bb22*)(cc022*)(dd2022*), ABISELECT(16,8), "ee12022");
+ check_base_class_offset(lv, (cc022*)(dd2022*), ABISELECT(16,8), "ee12022");
+ check_base_class_offset(lv, (dd2022*), ABISELECT(16,8), "ee12022");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12022.e");
+ test_class_info(&lv, &cd_ee12022);
+ dp->~ee12022();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12022(Test_ee12022, "ee12022", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee12022C1Ev();
+extern void _ZN7ee12022D1Ev();
+Name_Map name_map_ee12022[] = {
+ NSPAIR(_ZN7ee12022C1Ev),
+ NSPAIR(_ZN7ee12022D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc022;
+extern VTBL_ENTRY _ZTI5cc022[];
+extern VTBL_ENTRY _ZTV5cc022[];
+extern Class_Descriptor cd_dd2022;
+extern VTBL_ENTRY _ZTI6dd2022[];
+extern VTBL_ENTRY _ZTV6dd2022[];
+static Base_Class bases_ee12022[] = {
+ // 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_bb22, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc022, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2022, 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 _ZTI7ee12022[];
+extern void _ZN6dd20223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee12022[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12022[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12022[0]),
+ (VTBL_ENTRY)&_ZN6dd20223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee12022[];
+static VTT_ENTRY vtt_ee12022[] = {
+ {&(_ZTV7ee12022[3]), 3,9},
+ {&(_ZTV7ee12022[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee12022[];
+extern VTBL_ENTRY _ZTV7ee12022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12022[];
+Class_Descriptor cd_ee12022 = { "ee12022", // class name
+ bases_ee12022, 4,
+ &(vtc_ee12022[0]), // expected_vtbl_contents
+ &(vtt_ee12022[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee12022),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12022),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12022),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 ee22022 : dd2022 {
+ int e;
+ virtual void foo(); // _ZN7ee220223fooEv
+ ~ee22022(); // tgen
+ ee22022(); // tgen
+};
+//SIG(1 ee22022) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee22022 ::foo(){vfunc_called(this, "_ZN7ee220223fooEv");}
+ee22022 ::~ee22022(){ note_dtor("ee22022", this);} // tgen
+ee22022 ::ee22022(){ note_ctor("ee22022", this);} // tgen
+
+static void Test_ee22022()
+{
+ extern Class_Descriptor cd_ee22022;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee22022, buf);
+ ee22022 *dp, &lv = *(dp=new (buf) ee22022());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee22022)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22022)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc022*)(dd2022*), 0, "ee22022");
+ check_base_class_offset(lv, (bb22*)(cc022*)(dd2022*), 0, "ee22022");
+ check_base_class_offset(lv, (cc022*)(dd2022*), 0, "ee22022");
+ check_base_class_offset(lv, (dd2022*), 0, "ee22022");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee22022.e");
+ test_class_info(&lv, &cd_ee22022);
+ dp->~ee22022();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22022(Test_ee22022, "ee22022", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee22022C1Ev();
+extern void _ZN7ee22022D1Ev();
+Name_Map name_map_ee22022[] = {
+ NSPAIR(_ZN7ee22022C1Ev),
+ NSPAIR(_ZN7ee22022D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc022;
+extern VTBL_ENTRY _ZTI5cc022[];
+extern VTBL_ENTRY _ZTV5cc022[];
+extern Class_Descriptor cd_dd2022;
+extern VTBL_ENTRY _ZTI6dd2022[];
+extern VTBL_ENTRY _ZTV6dd2022[];
+static Base_Class bases_ee22022[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc022, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2022, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee22022[];
+extern void _ZN7ee220223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee22022[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22022[0]),
+ (VTBL_ENTRY)&_ZN7ee220223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTI7ee22022[];
+extern VTBL_ENTRY _ZTV7ee22022[];
+Class_Descriptor cd_ee22022 = { "ee22022", // class name
+ bases_ee22022, 4,
+ &(vtc_ee22022[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee22022),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22022),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 ee32022 : virtual dd2022 {
+ int e;
+ virtual void foo(); // _ZN7ee320223fooEv
+ ~ee32022(); // tgen
+ ee32022(); // tgen
+};
+//SIG(1 ee32022) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee32022 ::foo(){vfunc_called(this, "_ZN7ee320223fooEv");}
+ee32022 ::~ee32022(){ note_dtor("ee32022", this);} // tgen
+ee32022 ::ee32022(){ note_ctor("ee32022", this);} // tgen
+
+static void Test_ee32022()
+{
+ extern Class_Descriptor cd_ee32022;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee32022, buf);
+ ee32022 *dp, &lv = *(dp=new (buf) ee32022());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee32022)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32022)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc022*)(dd2022*), ABISELECT(16,8), "ee32022");
+ check_base_class_offset(lv, (bb22*)(cc022*)(dd2022*), ABISELECT(16,8), "ee32022");
+ check_base_class_offset(lv, (cc022*)(dd2022*), ABISELECT(16,8), "ee32022");
+ check_base_class_offset(lv, (dd2022*), ABISELECT(16,8), "ee32022");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32022.e");
+ test_class_info(&lv, &cd_ee32022);
+ dp->~ee32022();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32022(Test_ee32022, "ee32022", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee32022C1Ev();
+extern void _ZN7ee32022D1Ev();
+Name_Map name_map_ee32022[] = {
+ NSPAIR(_ZN7ee32022C1Ev),
+ NSPAIR(_ZN7ee32022D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc022;
+extern VTBL_ENTRY _ZTI5cc022[];
+extern VTBL_ENTRY _ZTV5cc022[];
+extern Class_Descriptor cd_dd2022;
+extern VTBL_ENTRY _ZTI6dd2022[];
+extern VTBL_ENTRY _ZTV6dd2022[];
+static Base_Class bases_ee32022[] = {
+ // 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_bb22, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc022, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2022, 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 _ZTI7ee32022[];
+extern void _ZN7ee320223fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee320223fooEv,_ZTv0_n12_N7ee320223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee320223fooEv,_ZThn8_N7ee320223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee32022[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32022[0]),
+ (VTBL_ENTRY)&_ZN7ee320223fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32022[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee320223fooEv,_ZTv0_n12_N7ee320223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee32022[];
+static VTT_ENTRY vtt_ee32022[] = {
+ {&(_ZTV7ee32022[3]), 3,10},
+ {&(_ZTV7ee32022[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee32022[];
+extern VTBL_ENTRY _ZTV7ee32022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32022[];
+static VTBL_ENTRY alt_thunk_names860[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee320223fooEv,_ZTv0_n12_N7ee320223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee320223fooEv,_ZThn8_N7ee320223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32022 = { "ee32022", // class name
+ bases_ee32022, 4,
+ &(vtc_ee32022[0]), // expected_vtbl_contents
+ &(vtt_ee32022[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee32022),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32022),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32022),2, //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 ee42022 : dd2022 {
+ int e;
+ virtual void bar(); // _ZN7ee420223barEv
+ ~ee42022(); // tgen
+ ee42022(); // tgen
+};
+//SIG(1 ee42022) C1{ BC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee42022 ::bar(){vfunc_called(this, "_ZN7ee420223barEv");}
+ee42022 ::~ee42022(){ note_dtor("ee42022", this);} // tgen
+ee42022 ::ee42022(){ note_ctor("ee42022", this);} // tgen
+
+static void Test_ee42022()
+{
+ extern Class_Descriptor cd_ee42022;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee42022, buf);
+ ee42022 *dp, &lv = *(dp=new (buf) ee42022());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee42022)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42022)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc022*)(dd2022*), 0, "ee42022");
+ check_base_class_offset(lv, (bb22*)(cc022*)(dd2022*), 0, "ee42022");
+ check_base_class_offset(lv, (cc022*)(dd2022*), 0, "ee42022");
+ check_base_class_offset(lv, (dd2022*), 0, "ee42022");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee42022.e");
+ test_class_info(&lv, &cd_ee42022);
+ dp->~ee42022();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42022(Test_ee42022, "ee42022", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee42022C1Ev();
+extern void _ZN7ee42022D1Ev();
+Name_Map name_map_ee42022[] = {
+ NSPAIR(_ZN7ee42022C1Ev),
+ NSPAIR(_ZN7ee42022D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc022;
+extern VTBL_ENTRY _ZTI5cc022[];
+extern VTBL_ENTRY _ZTV5cc022[];
+extern Class_Descriptor cd_dd2022;
+extern VTBL_ENTRY _ZTI6dd2022[];
+extern VTBL_ENTRY _ZTV6dd2022[];
+static Base_Class bases_ee42022[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc022, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2022, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee42022[];
+extern void _ZN6dd20223fooEv();
+extern void _ZN7ee420223barEv();
+static VTBL_ENTRY vtc_ee42022[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42022[0]),
+ (VTBL_ENTRY)&_ZN6dd20223fooEv,
+ (VTBL_ENTRY)&_ZN7ee420223barEv,
+};
+extern VTBL_ENTRY _ZTI7ee42022[];
+extern VTBL_ENTRY _ZTV7ee42022[];
+Class_Descriptor cd_ee42022 = { "ee42022", // class name
+ bases_ee42022, 4,
+ &(vtc_ee42022[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee42022),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42022),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 ee52022 : virtual dd2022 {
+ int e;
+ virtual void bar(); // _ZN7ee520223barEv
+ ~ee52022(); // tgen
+ ee52022(); // tgen
+};
+//SIG(1 ee52022) C1{ VBC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee52022 ::bar(){vfunc_called(this, "_ZN7ee520223barEv");}
+ee52022 ::~ee52022(){ note_dtor("ee52022", this);} // tgen
+ee52022 ::ee52022(){ note_ctor("ee52022", this);} // tgen
+
+static void Test_ee52022()
+{
+ extern Class_Descriptor cd_ee52022;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee52022, buf);
+ ee52022 *dp, &lv = *(dp=new (buf) ee52022());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee52022)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52022)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc022*)(dd2022*), ABISELECT(16,8), "ee52022");
+ check_base_class_offset(lv, (bb22*)(cc022*)(dd2022*), ABISELECT(16,8), "ee52022");
+ check_base_class_offset(lv, (cc022*)(dd2022*), ABISELECT(16,8), "ee52022");
+ check_base_class_offset(lv, (dd2022*), ABISELECT(16,8), "ee52022");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52022.e");
+ test_class_info(&lv, &cd_ee52022);
+ dp->~ee52022();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52022(Test_ee52022, "ee52022", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee52022C1Ev();
+extern void _ZN7ee52022D1Ev();
+Name_Map name_map_ee52022[] = {
+ NSPAIR(_ZN7ee52022C1Ev),
+ NSPAIR(_ZN7ee52022D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc022;
+extern VTBL_ENTRY _ZTI5cc022[];
+extern VTBL_ENTRY _ZTV5cc022[];
+extern Class_Descriptor cd_dd2022;
+extern VTBL_ENTRY _ZTI6dd2022[];
+extern VTBL_ENTRY _ZTV6dd2022[];
+static Base_Class bases_ee52022[] = {
+ // 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_bb22, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc022, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2022, 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 _ZTI7ee52022[];
+extern void _ZN7ee520223barEv();
+extern void _ZN6dd20223fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee520223barEv,_ZTv0_n16_N7ee520223barEv)();
+extern void ABISELECT(_ZThn16_N7ee520223barEv,_ZThn8_N7ee520223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee52022[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52022[0]),
+ (VTBL_ENTRY)&_ZN7ee520223barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52022[0]),
+ (VTBL_ENTRY)&_ZN6dd20223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee520223barEv,_ZTv0_n16_N7ee520223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee52022[];
+static VTT_ENTRY vtt_ee52022[] = {
+ {&(_ZTV7ee52022[3]), 3,10},
+ {&(_ZTV7ee52022[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee52022[];
+extern VTBL_ENTRY _ZTV7ee52022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52022[];
+static VTBL_ENTRY alt_thunk_names861[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee520223barEv,_ZTv0_n16_N7ee520223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee520223barEv,_ZThn8_N7ee520223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52022 = { "ee52022", // class name
+ bases_ee52022, 4,
+ &(vtc_ee52022[0]), // expected_vtbl_contents
+ &(vtt_ee52022[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee52022),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52022),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52022),2, //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 ee62022 : dd2022 {
+ int e;
+ virtual void foo(); // _ZN7ee620223fooEv
+ virtual void bar(); // _ZN7ee620223barEv
+ ~ee62022(); // tgen
+ ee62022(); // tgen
+};
+//SIG(1 ee62022) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62022 ::foo(){vfunc_called(this, "_ZN7ee620223fooEv");}
+void ee62022 ::bar(){vfunc_called(this, "_ZN7ee620223barEv");}
+ee62022 ::~ee62022(){ note_dtor("ee62022", this);} // tgen
+ee62022 ::ee62022(){ note_ctor("ee62022", this);} // tgen
+
+static void Test_ee62022()
+{
+ extern Class_Descriptor cd_ee62022;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee62022, buf);
+ ee62022 *dp, &lv = *(dp=new (buf) ee62022());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee62022)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62022)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc022*)(dd2022*), 0, "ee62022");
+ check_base_class_offset(lv, (bb22*)(cc022*)(dd2022*), 0, "ee62022");
+ check_base_class_offset(lv, (cc022*)(dd2022*), 0, "ee62022");
+ check_base_class_offset(lv, (dd2022*), 0, "ee62022");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee62022.e");
+ test_class_info(&lv, &cd_ee62022);
+ dp->~ee62022();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62022(Test_ee62022, "ee62022", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee62022C1Ev();
+extern void _ZN7ee62022D1Ev();
+Name_Map name_map_ee62022[] = {
+ NSPAIR(_ZN7ee62022C1Ev),
+ NSPAIR(_ZN7ee62022D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc022;
+extern VTBL_ENTRY _ZTI5cc022[];
+extern VTBL_ENTRY _ZTV5cc022[];
+extern Class_Descriptor cd_dd2022;
+extern VTBL_ENTRY _ZTI6dd2022[];
+extern VTBL_ENTRY _ZTV6dd2022[];
+static Base_Class bases_ee62022[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc022, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2022, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee62022[];
+extern void _ZN7ee620223fooEv();
+extern void _ZN7ee620223barEv();
+static VTBL_ENTRY vtc_ee62022[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62022[0]),
+ (VTBL_ENTRY)&_ZN7ee620223fooEv,
+ (VTBL_ENTRY)&_ZN7ee620223barEv,
+};
+extern VTBL_ENTRY _ZTI7ee62022[];
+extern VTBL_ENTRY _ZTV7ee62022[];
+Class_Descriptor cd_ee62022 = { "ee62022", // class name
+ bases_ee62022, 4,
+ &(vtc_ee62022[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee62022),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62022),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 ee72022 : virtual dd2022 {
+ int e;
+ virtual void foo(); // _ZN7ee720223fooEv
+ virtual void bar(); // _ZN7ee720223barEv
+ ~ee72022(); // tgen
+ ee72022(); // tgen
+};
+//SIG(1 ee72022) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72022 ::foo(){vfunc_called(this, "_ZN7ee720223fooEv");}
+void ee72022 ::bar(){vfunc_called(this, "_ZN7ee720223barEv");}
+ee72022 ::~ee72022(){ note_dtor("ee72022", this);} // tgen
+ee72022 ::ee72022(){ note_ctor("ee72022", this);} // tgen
+
+static void Test_ee72022()
+{
+ extern Class_Descriptor cd_ee72022;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee72022, buf);
+ ee72022 *dp, &lv = *(dp=new (buf) ee72022());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee72022)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72022)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc022*)(dd2022*), ABISELECT(16,8), "ee72022");
+ check_base_class_offset(lv, (bb22*)(cc022*)(dd2022*), ABISELECT(16,8), "ee72022");
+ check_base_class_offset(lv, (cc022*)(dd2022*), ABISELECT(16,8), "ee72022");
+ check_base_class_offset(lv, (dd2022*), ABISELECT(16,8), "ee72022");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72022.e");
+ test_class_info(&lv, &cd_ee72022);
+ dp->~ee72022();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72022(Test_ee72022, "ee72022", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee72022C1Ev();
+extern void _ZN7ee72022D1Ev();
+Name_Map name_map_ee72022[] = {
+ NSPAIR(_ZN7ee72022C1Ev),
+ NSPAIR(_ZN7ee72022D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc022;
+extern VTBL_ENTRY _ZTI5cc022[];
+extern VTBL_ENTRY _ZTV5cc022[];
+extern Class_Descriptor cd_dd2022;
+extern VTBL_ENTRY _ZTI6dd2022[];
+extern VTBL_ENTRY _ZTV6dd2022[];
+static Base_Class bases_ee72022[] = {
+ // 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_bb22, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc022, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2022, 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 _ZTI7ee72022[];
+extern void _ZN7ee720223fooEv();
+extern void _ZN7ee720223barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee720223fooEv,_ZTv0_n12_N7ee720223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee720223fooEv,_ZThn8_N7ee720223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee720223barEv,_ZTv0_n16_N7ee720223barEv)();
+extern void ABISELECT(_ZThn16_N7ee720223barEv,_ZThn8_N7ee720223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72022[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72022[0]),
+ (VTBL_ENTRY)&_ZN7ee720223fooEv,
+ (VTBL_ENTRY)&_ZN7ee720223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72022[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee720223fooEv,_ZTv0_n12_N7ee720223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee720223barEv,_ZTv0_n16_N7ee720223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee72022[];
+static VTT_ENTRY vtt_ee72022[] = {
+ {&(_ZTV7ee72022[3]), 3,11},
+ {&(_ZTV7ee72022[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee72022[];
+extern VTBL_ENTRY _ZTV7ee72022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72022[];
+static VTBL_ENTRY alt_thunk_names862[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee720223barEv,_ZTv0_n16_N7ee720223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee720223barEv,_ZThn8_N7ee720223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee720223fooEv,_ZTv0_n12_N7ee720223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee720223fooEv,_ZThn8_N7ee720223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72022 = { "ee72022", // class name
+ bases_ee72022, 4,
+ &(vtc_ee72022[0]), // expected_vtbl_contents
+ &(vtt_ee72022[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee72022),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72022),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72022),2, //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 dd3022 : virtual cc022 {
+ int d;
+ virtual void foo(); // _ZN6dd30223fooEv
+ ~dd3022(); // tgen
+ dd3022(); // tgen
+};
+//SIG(-1 dd3022) C1{ VBC2{ BC3{ BC4{ v1 v2 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void dd3022 ::foo(){vfunc_called(this, "_ZN6dd30223fooEv");}
+dd3022 ::~dd3022(){ note_dtor("dd3022", this);} // tgen
+dd3022 ::dd3022(){ note_ctor("dd3022", this);} // tgen
+
+static void Test_dd3022()
+{
+ extern Class_Descriptor cd_dd3022;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd3022, buf);
+ dd3022 *dp, &lv = *(dp=new (buf) dd3022());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd3022)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3022)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc022*), ABISELECT(16,8), "dd3022");
+ check_base_class_offset(lv, (bb22*)(cc022*), ABISELECT(16,8), "dd3022");
+ check_base_class_offset(lv, (cc022*), ABISELECT(16,8), "dd3022");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3022.d");
+ test_class_info(&lv, &cd_dd3022);
+ dp->~dd3022();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3022(Test_dd3022, "dd3022", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd3022C1Ev();
+extern void _ZN6dd3022D1Ev();
+Name_Map name_map_dd3022[] = {
+ NSPAIR(_ZN6dd3022C1Ev),
+ NSPAIR(_ZN6dd3022D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc022;
+extern VTBL_ENTRY _ZTI5cc022[];
+extern VTBL_ENTRY _ZTV5cc022[];
+static Base_Class bases_dd3022[] = {
+ // 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_bb22, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc022, 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 _ZTI6dd3022[];
+extern void _ZN6dd30223fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd30223fooEv,_ZTv0_n12_N6dd30223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30223fooEv,_ZThn8_N6dd30223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_dd3022[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3022[0]),
+ (VTBL_ENTRY)&_ZN6dd30223fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3022[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30223fooEv,_ZTv0_n12_N6dd30223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV6dd3022[];
+static VTT_ENTRY vtt_dd3022[] = {
+ {&(_ZTV6dd3022[3]), 3,10},
+ {&(_ZTV6dd3022[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd3022[];
+extern VTBL_ENTRY _ZTV6dd3022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3022[];
+static VTBL_ENTRY alt_thunk_names863[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30223fooEv,_ZTv0_n12_N6dd30223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30223fooEv,_ZThn8_N6dd30223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3022 = { "dd3022", // class name
+ bases_dd3022, 3,
+ &(vtc_dd3022[0]), // expected_vtbl_contents
+ &(vtt_dd3022[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd3022),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3022),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3022),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names863,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03022 : dd3022 {
+ int e;
+ ~ee03022(); // tgen
+ ee03022(); // tgen
+};
+//SIG(1 ee03022) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} Fi} v1 Fi} Fi}
+
+
+ee03022 ::~ee03022(){ note_dtor("ee03022", this);} // tgen
+ee03022 ::ee03022(){ note_ctor("ee03022", this);} // tgen
+
+static void Test_ee03022()
+{
+ extern Class_Descriptor cd_ee03022;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee03022, buf);
+ ee03022 *dp, &lv = *(dp=new (buf) ee03022());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee03022)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03022)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc022*), ABISELECT(16,12), "ee03022");
+ check_base_class_offset(lv, (bb22*)(cc022*), ABISELECT(16,12), "ee03022");
+ check_base_class_offset(lv, (cc022*)(dd3022*), ABISELECT(16,12), "ee03022");
+ check_base_class_offset(lv, (dd3022*), 0, "ee03022");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03022.e");
+ test_class_info(&lv, &cd_ee03022);
+ dp->~ee03022();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03022(Test_ee03022, "ee03022", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee03022C1Ev();
+extern void _ZN7ee03022D1Ev();
+Name_Map name_map_ee03022[] = {
+ NSPAIR(_ZN7ee03022C1Ev),
+ NSPAIR(_ZN7ee03022D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc022;
+extern VTBL_ENTRY _ZTI5cc022[];
+extern VTBL_ENTRY _ZTV5cc022[];
+extern Class_Descriptor cd_dd3022;
+extern VTBL_ENTRY _ZTI6dd3022[];
+extern VTBL_ENTRY _ZTV6dd3022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3022[];
+static Base_Class bases_ee03022[] = {
+ // 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_bb22, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc022, 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_dd3022, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03022[];
+extern void _ZN6dd30223fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd30223fooEv,_ZTv0_n12_N6dd30223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30223fooEv,_ZThn12_N6dd30223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee03022[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03022[0]),
+ (VTBL_ENTRY)&_ZN6dd30223fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03022[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30223fooEv,_ZTv0_n12_N6dd30223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee03022[];
+extern void _ZN6dd30223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3022__7ee03022[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3022[0]),
+ (VTBL_ENTRY)&_ZN6dd30223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd30223fooEv,_ZTv0_n12_N6dd30223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30223fooEv,_ZThn12_N6dd30223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb225cc022__6dd3022__7ee03022[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3022[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30223fooEv,_ZTv0_n12_N6dd30223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee03022[] = {
+ {&(_ZTV7ee03022[3]), 3,10},
+ {&(_tg__ZTV6dd3022__7ee03022[3]), 3,4},
+ {&(_tg__ZTV4bb225cc022__6dd3022__7ee03022[4]), 4,6},
+ {&(_ZTV7ee03022[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee03022[];
+extern VTBL_ENTRY _ZTV7ee03022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03022[];
+static VTBL_ENTRY alt_thunk_names864[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30223fooEv,_ZTv0_n12_N6dd30223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30223fooEv,_ZThn12_N6dd30223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30223fooEv,_ZThn12_N6dd30223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03022 = { "ee03022", // class name
+ bases_ee03022, 4,
+ &(vtc_ee03022[0]), // expected_vtbl_contents
+ &(vtt_ee03022[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee03022),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03022),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03022),4, //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 ee13022 : virtual dd3022 {
+ int e;
+ ~ee13022(); // tgen
+ ee13022(); // tgen
+};
+//SIG(1 ee13022) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} Fi} v1 Fi} Fi}
+
+
+ee13022 ::~ee13022(){ note_dtor("ee13022", this);} // tgen
+ee13022 ::ee13022(){ note_ctor("ee13022", this);} // tgen
+
+static void Test_ee13022()
+{
+ extern Class_Descriptor cd_ee13022;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee13022, buf);
+ ee13022 *dp, &lv = *(dp=new (buf) ee13022());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee13022)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13022)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc022*), ABISELECT(32,16), "ee13022");
+ check_base_class_offset(lv, (bb22*)(cc022*), ABISELECT(32,16), "ee13022");
+ check_base_class_offset(lv, (cc022*)(dd3022*), ABISELECT(32,16), "ee13022");
+ check_base_class_offset(lv, (dd3022*), ABISELECT(16,8), "ee13022");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13022.e");
+ test_class_info(&lv, &cd_ee13022);
+ dp->~ee13022();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13022(Test_ee13022, "ee13022", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee13022C1Ev();
+extern void _ZN7ee13022D1Ev();
+Name_Map name_map_ee13022[] = {
+ NSPAIR(_ZN7ee13022C1Ev),
+ NSPAIR(_ZN7ee13022D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc022;
+extern VTBL_ENTRY _ZTI5cc022[];
+extern VTBL_ENTRY _ZTV5cc022[];
+extern Class_Descriptor cd_dd3022;
+extern VTBL_ENTRY _ZTI6dd3022[];
+extern VTBL_ENTRY _ZTV6dd3022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3022[];
+static Base_Class bases_ee13022[] = {
+ // 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_bb22, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc022, 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_dd3022, 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 _ZTI7ee13022[];
+extern void _ZN6dd30223fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd30223fooEv,_ZTv0_n12_N6dd30223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30223fooEv,_ZThn8_N6dd30223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee13022[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13022[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13022[0]),
+ (VTBL_ENTRY)&_ZN6dd30223fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13022[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30223fooEv,_ZTv0_n12_N6dd30223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee13022[];
+extern void _ZN6dd30223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3022__7ee13022[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3022[0]),
+ (VTBL_ENTRY)&_ZN6dd30223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd30223fooEv,_ZTv0_n12_N6dd30223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30223fooEv,_ZThn8_N6dd30223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb225cc022__6dd3022__7ee13022[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3022[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30223fooEv,_ZTv0_n12_N6dd30223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee13022[] = {
+ {&(_ZTV7ee13022[4]), 4,15},
+ {&(_ZTV7ee13022[8]), 8,15},
+ {&(_ZTV7ee13022[13]), 13,15},
+ {&(_tg__ZTV6dd3022__7ee13022[3]), 3,4},
+ {&(_tg__ZTV4bb225cc022__6dd3022__7ee13022[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee13022[];
+extern VTBL_ENTRY _ZTV7ee13022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13022[];
+static VTBL_ENTRY alt_thunk_names865[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30223fooEv,_ZTv0_n12_N6dd30223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30223fooEv,_ZThn8_N6dd30223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30223fooEv,_ZThn8_N6dd30223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13022 = { "ee13022", // class name
+ bases_ee13022, 4,
+ &(vtc_ee13022[0]), // expected_vtbl_contents
+ &(vtt_ee13022[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee13022),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13022),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13022),5, //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 ee23022 : dd3022 {
+ int e;
+ virtual void foo(); // _ZN7ee230223fooEv
+ ~ee23022(); // tgen
+ ee23022(); // tgen
+};
+//SIG(1 ee23022) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee23022 ::foo(){vfunc_called(this, "_ZN7ee230223fooEv");}
+ee23022 ::~ee23022(){ note_dtor("ee23022", this);} // tgen
+ee23022 ::ee23022(){ note_ctor("ee23022", this);} // tgen
+
+static void Test_ee23022()
+{
+ extern Class_Descriptor cd_ee23022;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee23022, buf);
+ ee23022 *dp, &lv = *(dp=new (buf) ee23022());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee23022)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23022)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc022*), ABISELECT(16,12), "ee23022");
+ check_base_class_offset(lv, (bb22*)(cc022*), ABISELECT(16,12), "ee23022");
+ check_base_class_offset(lv, (cc022*)(dd3022*), ABISELECT(16,12), "ee23022");
+ check_base_class_offset(lv, (dd3022*), 0, "ee23022");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23022.e");
+ test_class_info(&lv, &cd_ee23022);
+ dp->~ee23022();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23022(Test_ee23022, "ee23022", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee23022C1Ev();
+extern void _ZN7ee23022D1Ev();
+Name_Map name_map_ee23022[] = {
+ NSPAIR(_ZN7ee23022C1Ev),
+ NSPAIR(_ZN7ee23022D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc022;
+extern VTBL_ENTRY _ZTI5cc022[];
+extern VTBL_ENTRY _ZTV5cc022[];
+extern Class_Descriptor cd_dd3022;
+extern VTBL_ENTRY _ZTI6dd3022[];
+extern VTBL_ENTRY _ZTV6dd3022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3022[];
+static Base_Class bases_ee23022[] = {
+ // 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_bb22, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc022, 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_dd3022, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23022[];
+extern void _ZN7ee230223fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee230223fooEv,_ZTv0_n12_N7ee230223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee230223fooEv,_ZThn12_N7ee230223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee23022[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23022[0]),
+ (VTBL_ENTRY)&_ZN7ee230223fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23022[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee230223fooEv,_ZTv0_n12_N7ee230223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee23022[];
+extern void _ZN6dd30223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3022__7ee23022[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3022[0]),
+ (VTBL_ENTRY)&_ZN6dd30223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd30223fooEv,_ZTv0_n12_N6dd30223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30223fooEv,_ZThn12_N6dd30223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb225cc022__6dd3022__7ee23022[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3022[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30223fooEv,_ZTv0_n12_N6dd30223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee23022[] = {
+ {&(_ZTV7ee23022[3]), 3,10},
+ {&(_tg__ZTV6dd3022__7ee23022[3]), 3,4},
+ {&(_tg__ZTV4bb225cc022__6dd3022__7ee23022[4]), 4,6},
+ {&(_ZTV7ee23022[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee23022[];
+extern VTBL_ENTRY _ZTV7ee23022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23022[];
+static VTBL_ENTRY alt_thunk_names866[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30223fooEv,_ZTv0_n12_N6dd30223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30223fooEv,_ZThn12_N6dd30223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee230223fooEv,_ZTv0_n12_N7ee230223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee230223fooEv,_ZThn12_N7ee230223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23022 = { "ee23022", // class name
+ bases_ee23022, 4,
+ &(vtc_ee23022[0]), // expected_vtbl_contents
+ &(vtt_ee23022[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee23022),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23022),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23022),4, //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 ee33022 : virtual dd3022 {
+ int e;
+ virtual void foo(); // _ZN7ee330223fooEv
+ ~ee33022(); // tgen
+ ee33022(); // tgen
+};
+//SIG(1 ee33022) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee33022 ::foo(){vfunc_called(this, "_ZN7ee330223fooEv");}
+ee33022 ::~ee33022(){ note_dtor("ee33022", this);} // tgen
+ee33022 ::ee33022(){ note_ctor("ee33022", this);} // tgen
+
+static void Test_ee33022()
+{
+ extern Class_Descriptor cd_ee33022;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee33022, buf);
+ ee33022 *dp, &lv = *(dp=new (buf) ee33022());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee33022)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33022)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc022*), ABISELECT(32,16), "ee33022");
+ check_base_class_offset(lv, (bb22*)(cc022*), ABISELECT(32,16), "ee33022");
+ check_base_class_offset(lv, (cc022*)(dd3022*), ABISELECT(32,16), "ee33022");
+ check_base_class_offset(lv, (dd3022*), ABISELECT(16,8), "ee33022");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33022.e");
+ test_class_info(&lv, &cd_ee33022);
+ dp->~ee33022();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33022(Test_ee33022, "ee33022", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee33022C1Ev();
+extern void _ZN7ee33022D1Ev();
+Name_Map name_map_ee33022[] = {
+ NSPAIR(_ZN7ee33022C1Ev),
+ NSPAIR(_ZN7ee33022D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc022;
+extern VTBL_ENTRY _ZTI5cc022[];
+extern VTBL_ENTRY _ZTV5cc022[];
+extern Class_Descriptor cd_dd3022;
+extern VTBL_ENTRY _ZTI6dd3022[];
+extern VTBL_ENTRY _ZTV6dd3022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3022[];
+static Base_Class bases_ee33022[] = {
+ // 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_bb22, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc022, 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_dd3022, 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 _ZTI7ee33022[];
+extern void _ZN7ee330223fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee330223fooEv,_ZTv0_n16_N7ee330223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee330223fooEv,_ZThn8_N7ee330223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee330223fooEv,_ZTv0_n12_N7ee330223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee330223fooEv,_ZThn16_N7ee330223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee33022[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33022[0]),
+ (VTBL_ENTRY)&_ZN7ee330223fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33022[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee330223fooEv,_ZTv0_n16_N7ee330223fooEv),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33022[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee330223fooEv,_ZTv0_n12_N7ee330223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee33022[];
+extern void _ZN6dd30223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3022__7ee33022[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3022[0]),
+ (VTBL_ENTRY)&_ZN6dd30223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd30223fooEv,_ZTv0_n12_N6dd30223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30223fooEv,_ZThn8_N6dd30223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb225cc022__6dd3022__7ee33022[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3022[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30223fooEv,_ZTv0_n12_N6dd30223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee33022[] = {
+ {&(_ZTV7ee33022[4]), 4,16},
+ {&(_ZTV7ee33022[9]), 9,16},
+ {&(_ZTV7ee33022[14]), 14,16},
+ {&(_tg__ZTV6dd3022__7ee33022[3]), 3,4},
+ {&(_tg__ZTV4bb225cc022__6dd3022__7ee33022[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee33022[];
+extern VTBL_ENTRY _ZTV7ee33022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33022[];
+static VTBL_ENTRY alt_thunk_names867[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30223fooEv,_ZTv0_n12_N6dd30223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30223fooEv,_ZThn8_N6dd30223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee330223fooEv,_ZTv0_n12_N7ee330223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee330223fooEv,_ZThn16_N7ee330223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee330223fooEv,_ZTv0_n16_N7ee330223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee330223fooEv,_ZThn8_N7ee330223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33022 = { "ee33022", // class name
+ bases_ee33022, 4,
+ &(vtc_ee33022[0]), // expected_vtbl_contents
+ &(vtt_ee33022[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee33022),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33022),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33022),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names867,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee43022 : dd3022 {
+ int e;
+ virtual void bar(); // _ZN7ee430223barEv
+ ~ee43022(); // tgen
+ ee43022(); // tgen
+};
+//SIG(1 ee43022) C1{ BC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee43022 ::bar(){vfunc_called(this, "_ZN7ee430223barEv");}
+ee43022 ::~ee43022(){ note_dtor("ee43022", this);} // tgen
+ee43022 ::ee43022(){ note_ctor("ee43022", this);} // tgen
+
+static void Test_ee43022()
+{
+ extern Class_Descriptor cd_ee43022;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee43022, buf);
+ ee43022 *dp, &lv = *(dp=new (buf) ee43022());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee43022)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43022)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc022*), ABISELECT(16,12), "ee43022");
+ check_base_class_offset(lv, (bb22*)(cc022*), ABISELECT(16,12), "ee43022");
+ check_base_class_offset(lv, (cc022*)(dd3022*), ABISELECT(16,12), "ee43022");
+ check_base_class_offset(lv, (dd3022*), 0, "ee43022");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43022.e");
+ test_class_info(&lv, &cd_ee43022);
+ dp->~ee43022();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43022(Test_ee43022, "ee43022", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee43022C1Ev();
+extern void _ZN7ee43022D1Ev();
+Name_Map name_map_ee43022[] = {
+ NSPAIR(_ZN7ee43022C1Ev),
+ NSPAIR(_ZN7ee43022D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc022;
+extern VTBL_ENTRY _ZTI5cc022[];
+extern VTBL_ENTRY _ZTV5cc022[];
+extern Class_Descriptor cd_dd3022;
+extern VTBL_ENTRY _ZTI6dd3022[];
+extern VTBL_ENTRY _ZTV6dd3022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3022[];
+static Base_Class bases_ee43022[] = {
+ // 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_bb22, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc022, 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_dd3022, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43022[];
+extern void _ZN6dd30223fooEv();
+extern void _ZN7ee430223barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd30223fooEv,_ZTv0_n12_N6dd30223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30223fooEv,_ZThn12_N6dd30223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee430223barEv,_ZTv0_n16_N7ee430223barEv)();
+extern void ABISELECT(_ZThn16_N7ee430223barEv,_ZThn12_N7ee430223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43022[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43022[0]),
+ (VTBL_ENTRY)&_ZN6dd30223fooEv,
+ (VTBL_ENTRY)&_ZN7ee430223barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43022[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30223fooEv,_ZTv0_n12_N6dd30223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee430223barEv,_ZTv0_n16_N7ee430223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee43022[];
+extern void _ZN6dd30223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3022__7ee43022[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3022[0]),
+ (VTBL_ENTRY)&_ZN6dd30223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd30223fooEv,_ZTv0_n12_N6dd30223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30223fooEv,_ZThn12_N6dd30223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb225cc022__6dd3022__7ee43022[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3022[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30223fooEv,_ZTv0_n12_N6dd30223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee43022[] = {
+ {&(_ZTV7ee43022[3]), 3,11},
+ {&(_tg__ZTV6dd3022__7ee43022[3]), 3,4},
+ {&(_tg__ZTV4bb225cc022__6dd3022__7ee43022[4]), 4,6},
+ {&(_ZTV7ee43022[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee43022[];
+extern VTBL_ENTRY _ZTV7ee43022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43022[];
+static VTBL_ENTRY alt_thunk_names868[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee430223barEv,_ZTv0_n16_N7ee430223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee430223barEv,_ZThn12_N7ee430223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30223fooEv,_ZTv0_n12_N6dd30223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30223fooEv,_ZThn12_N6dd30223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30223fooEv,_ZThn12_N6dd30223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43022 = { "ee43022", // class name
+ bases_ee43022, 4,
+ &(vtc_ee43022[0]), // expected_vtbl_contents
+ &(vtt_ee43022[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee43022),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43022),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43022),4, //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 ee53022 : virtual dd3022 {
+ int e;
+ virtual void bar(); // _ZN7ee530223barEv
+ ~ee53022(); // tgen
+ ee53022(); // tgen
+};
+//SIG(1 ee53022) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee53022 ::bar(){vfunc_called(this, "_ZN7ee530223barEv");}
+ee53022 ::~ee53022(){ note_dtor("ee53022", this);} // tgen
+ee53022 ::ee53022(){ note_ctor("ee53022", this);} // tgen
+
+static void Test_ee53022()
+{
+ extern Class_Descriptor cd_ee53022;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee53022, buf);
+ ee53022 *dp, &lv = *(dp=new (buf) ee53022());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee53022)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53022)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc022*), ABISELECT(32,16), "ee53022");
+ check_base_class_offset(lv, (bb22*)(cc022*), ABISELECT(32,16), "ee53022");
+ check_base_class_offset(lv, (cc022*)(dd3022*), ABISELECT(32,16), "ee53022");
+ check_base_class_offset(lv, (dd3022*), ABISELECT(16,8), "ee53022");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53022.e");
+ test_class_info(&lv, &cd_ee53022);
+ dp->~ee53022();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53022(Test_ee53022, "ee53022", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee53022C1Ev();
+extern void _ZN7ee53022D1Ev();
+Name_Map name_map_ee53022[] = {
+ NSPAIR(_ZN7ee53022C1Ev),
+ NSPAIR(_ZN7ee53022D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc022;
+extern VTBL_ENTRY _ZTI5cc022[];
+extern VTBL_ENTRY _ZTV5cc022[];
+extern Class_Descriptor cd_dd3022;
+extern VTBL_ENTRY _ZTI6dd3022[];
+extern VTBL_ENTRY _ZTV6dd3022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3022[];
+static Base_Class bases_ee53022[] = {
+ // 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_bb22, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc022, 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_dd3022, 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 _ZTI7ee53022[];
+extern void _ZN7ee530223barEv();
+extern void _ZN6dd30223fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd30223fooEv,_ZTv0_n12_N6dd30223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30223fooEv,_ZThn8_N6dd30223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee530223barEv,_ZTv0_n16_N7ee530223barEv)();
+extern void ABISELECT(_ZThn32_N7ee530223barEv,_ZThn16_N7ee530223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53022[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53022[0]),
+ (VTBL_ENTRY)&_ZN7ee530223barEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53022[0]),
+ (VTBL_ENTRY)&_ZN6dd30223fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53022[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30223fooEv,_ZTv0_n12_N6dd30223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee530223barEv,_ZTv0_n16_N7ee530223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee53022[];
+extern void _ZN6dd30223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3022__7ee53022[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3022[0]),
+ (VTBL_ENTRY)&_ZN6dd30223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd30223fooEv,_ZTv0_n12_N6dd30223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30223fooEv,_ZThn8_N6dd30223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb225cc022__6dd3022__7ee53022[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3022[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30223fooEv,_ZTv0_n12_N6dd30223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee53022[] = {
+ {&(_ZTV7ee53022[4]), 4,16},
+ {&(_ZTV7ee53022[9]), 9,16},
+ {&(_ZTV7ee53022[14]), 14,16},
+ {&(_tg__ZTV6dd3022__7ee53022[3]), 3,4},
+ {&(_tg__ZTV4bb225cc022__6dd3022__7ee53022[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee53022[];
+extern VTBL_ENTRY _ZTV7ee53022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53022[];
+static VTBL_ENTRY alt_thunk_names869[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee530223barEv,_ZTv0_n16_N7ee530223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee530223barEv,_ZThn16_N7ee530223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30223fooEv,_ZTv0_n12_N6dd30223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30223fooEv,_ZThn8_N6dd30223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30223fooEv,_ZThn8_N6dd30223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53022 = { "ee53022", // class name
+ bases_ee53022, 4,
+ &(vtc_ee53022[0]), // expected_vtbl_contents
+ &(vtt_ee53022[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee53022),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53022),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53022),5, //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 ee63022 : dd3022 {
+ int e;
+ virtual void foo(); // _ZN7ee630223fooEv
+ virtual void bar(); // _ZN7ee630223barEv
+ ~ee63022(); // tgen
+ ee63022(); // tgen
+};
+//SIG(1 ee63022) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63022 ::foo(){vfunc_called(this, "_ZN7ee630223fooEv");}
+void ee63022 ::bar(){vfunc_called(this, "_ZN7ee630223barEv");}
+ee63022 ::~ee63022(){ note_dtor("ee63022", this);} // tgen
+ee63022 ::ee63022(){ note_ctor("ee63022", this);} // tgen
+
+static void Test_ee63022()
+{
+ extern Class_Descriptor cd_ee63022;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee63022, buf);
+ ee63022 *dp, &lv = *(dp=new (buf) ee63022());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee63022)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63022)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc022*), ABISELECT(16,12), "ee63022");
+ check_base_class_offset(lv, (bb22*)(cc022*), ABISELECT(16,12), "ee63022");
+ check_base_class_offset(lv, (cc022*)(dd3022*), ABISELECT(16,12), "ee63022");
+ check_base_class_offset(lv, (dd3022*), 0, "ee63022");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63022.e");
+ test_class_info(&lv, &cd_ee63022);
+ dp->~ee63022();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63022(Test_ee63022, "ee63022", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee63022C1Ev();
+extern void _ZN7ee63022D1Ev();
+Name_Map name_map_ee63022[] = {
+ NSPAIR(_ZN7ee63022C1Ev),
+ NSPAIR(_ZN7ee63022D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc022;
+extern VTBL_ENTRY _ZTI5cc022[];
+extern VTBL_ENTRY _ZTV5cc022[];
+extern Class_Descriptor cd_dd3022;
+extern VTBL_ENTRY _ZTI6dd3022[];
+extern VTBL_ENTRY _ZTV6dd3022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3022[];
+static Base_Class bases_ee63022[] = {
+ // 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_bb22, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc022, 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_dd3022, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63022[];
+extern void _ZN7ee630223fooEv();
+extern void _ZN7ee630223barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee630223fooEv,_ZTv0_n12_N7ee630223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee630223fooEv,_ZThn12_N7ee630223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee630223barEv,_ZTv0_n16_N7ee630223barEv)();
+extern void ABISELECT(_ZThn16_N7ee630223barEv,_ZThn12_N7ee630223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63022[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63022[0]),
+ (VTBL_ENTRY)&_ZN7ee630223fooEv,
+ (VTBL_ENTRY)&_ZN7ee630223barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63022[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee630223fooEv,_ZTv0_n12_N7ee630223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee630223barEv,_ZTv0_n16_N7ee630223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee63022[];
+extern void _ZN6dd30223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3022__7ee63022[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3022[0]),
+ (VTBL_ENTRY)&_ZN6dd30223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd30223fooEv,_ZTv0_n12_N6dd30223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30223fooEv,_ZThn12_N6dd30223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb225cc022__6dd3022__7ee63022[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3022[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30223fooEv,_ZTv0_n12_N6dd30223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee63022[] = {
+ {&(_ZTV7ee63022[3]), 3,11},
+ {&(_tg__ZTV6dd3022__7ee63022[3]), 3,4},
+ {&(_tg__ZTV4bb225cc022__6dd3022__7ee63022[4]), 4,6},
+ {&(_ZTV7ee63022[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee63022[];
+extern VTBL_ENTRY _ZTV7ee63022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63022[];
+static VTBL_ENTRY alt_thunk_names870[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30223fooEv,_ZTv0_n12_N6dd30223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30223fooEv,_ZThn12_N6dd30223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee630223barEv,_ZTv0_n16_N7ee630223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee630223barEv,_ZThn12_N7ee630223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee630223fooEv,_ZTv0_n12_N7ee630223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee630223fooEv,_ZThn12_N7ee630223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63022 = { "ee63022", // class name
+ bases_ee63022, 4,
+ &(vtc_ee63022[0]), // expected_vtbl_contents
+ &(vtt_ee63022[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee63022),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63022),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63022),4, //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 ee73022 : virtual dd3022 {
+ int e;
+ virtual void foo(); // _ZN7ee730223fooEv
+ virtual void bar(); // _ZN7ee730223barEv
+ ~ee73022(); // tgen
+ ee73022(); // tgen
+};
+//SIG(1 ee73022) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73022 ::foo(){vfunc_called(this, "_ZN7ee730223fooEv");}
+void ee73022 ::bar(){vfunc_called(this, "_ZN7ee730223barEv");}
+ee73022 ::~ee73022(){ note_dtor("ee73022", this);} // tgen
+ee73022 ::ee73022(){ note_ctor("ee73022", this);} // tgen
+
+static void Test_ee73022()
+{
+ extern Class_Descriptor cd_ee73022;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee73022, buf);
+ ee73022 *dp, &lv = *(dp=new (buf) ee73022());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee73022)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73022)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc022*), ABISELECT(32,16), "ee73022");
+ check_base_class_offset(lv, (bb22*)(cc022*), ABISELECT(32,16), "ee73022");
+ check_base_class_offset(lv, (cc022*)(dd3022*), ABISELECT(32,16), "ee73022");
+ check_base_class_offset(lv, (dd3022*), ABISELECT(16,8), "ee73022");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73022.e");
+ test_class_info(&lv, &cd_ee73022);
+ dp->~ee73022();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73022(Test_ee73022, "ee73022", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee73022C1Ev();
+extern void _ZN7ee73022D1Ev();
+Name_Map name_map_ee73022[] = {
+ NSPAIR(_ZN7ee73022C1Ev),
+ NSPAIR(_ZN7ee73022D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc022;
+extern VTBL_ENTRY _ZTI5cc022[];
+extern VTBL_ENTRY _ZTV5cc022[];
+extern Class_Descriptor cd_dd3022;
+extern VTBL_ENTRY _ZTI6dd3022[];
+extern VTBL_ENTRY _ZTV6dd3022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3022[];
+static Base_Class bases_ee73022[] = {
+ // 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_bb22, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc022, 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_dd3022, 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 _ZTI7ee73022[];
+extern void _ZN7ee730223fooEv();
+extern void _ZN7ee730223barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee730223fooEv,_ZTv0_n16_N7ee730223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee730223fooEv,_ZThn8_N7ee730223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee730223fooEv,_ZTv0_n12_N7ee730223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee730223fooEv,_ZThn16_N7ee730223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee730223barEv,_ZTv0_n16_N7ee730223barEv)();
+extern void ABISELECT(_ZThn32_N7ee730223barEv,_ZThn16_N7ee730223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73022[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73022[0]),
+ (VTBL_ENTRY)&_ZN7ee730223fooEv,
+ (VTBL_ENTRY)&_ZN7ee730223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73022[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee730223fooEv,_ZTv0_n16_N7ee730223fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73022[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee730223fooEv,_ZTv0_n12_N7ee730223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee730223barEv,_ZTv0_n16_N7ee730223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee73022[];
+extern void _ZN6dd30223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3022__7ee73022[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3022[0]),
+ (VTBL_ENTRY)&_ZN6dd30223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd30223fooEv,_ZTv0_n12_N6dd30223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30223fooEv,_ZThn8_N6dd30223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb225cc022__6dd3022__7ee73022[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3022[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30223fooEv,_ZTv0_n12_N6dd30223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee73022[] = {
+ {&(_ZTV7ee73022[4]), 4,17},
+ {&(_ZTV7ee73022[10]), 10,17},
+ {&(_ZTV7ee73022[15]), 15,17},
+ {&(_tg__ZTV6dd3022__7ee73022[3]), 3,4},
+ {&(_tg__ZTV4bb225cc022__6dd3022__7ee73022[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee73022[];
+extern VTBL_ENTRY _ZTV7ee73022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73022[];
+static VTBL_ENTRY alt_thunk_names871[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30223fooEv,_ZTv0_n12_N6dd30223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30223fooEv,_ZThn8_N6dd30223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee730223barEv,_ZTv0_n16_N7ee730223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee730223barEv,_ZThn16_N7ee730223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee730223fooEv,_ZTv0_n12_N7ee730223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee730223fooEv,_ZThn16_N7ee730223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee730223fooEv,_ZTv0_n16_N7ee730223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee730223fooEv,_ZThn8_N7ee730223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73022 = { "ee73022", // class name
+ bases_ee73022, 4,
+ &(vtc_ee73022[0]), // expected_vtbl_contents
+ &(vtt_ee73022[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee73022),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73022),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73022),5, //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 dd4022 : cc022 {
+ int d;
+ virtual void bar(); // _ZN6dd40223barEv
+ ~dd4022(); // tgen
+ dd4022(); // tgen
+};
+//SIG(-1 dd4022) C1{ BC2{ BC3{ BC4{ v2 v1 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void dd4022 ::bar(){vfunc_called(this, "_ZN6dd40223barEv");}
+dd4022 ::~dd4022(){ note_dtor("dd4022", this);} // tgen
+dd4022 ::dd4022(){ note_ctor("dd4022", this);} // tgen
+
+static void Test_dd4022()
+{
+ extern Class_Descriptor cd_dd4022;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd4022, buf);
+ dd4022 *dp, &lv = *(dp=new (buf) dd4022());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd4022)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4022)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc022*), 0, "dd4022");
+ check_base_class_offset(lv, (bb22*)(cc022*), 0, "dd4022");
+ check_base_class_offset(lv, (cc022*), 0, "dd4022");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd4022.d");
+ test_class_info(&lv, &cd_dd4022);
+ dp->~dd4022();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4022(Test_dd4022, "dd4022", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd4022C1Ev();
+extern void _ZN6dd4022D1Ev();
+Name_Map name_map_dd4022[] = {
+ NSPAIR(_ZN6dd4022C1Ev),
+ NSPAIR(_ZN6dd4022D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc022;
+extern VTBL_ENTRY _ZTI5cc022[];
+extern VTBL_ENTRY _ZTV5cc022[];
+static Base_Class bases_dd4022[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc022, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI6dd4022[];
+extern void _ZN4bb223fooEv();
+extern void _ZN6dd40223barEv();
+static VTBL_ENTRY vtc_dd4022[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4022[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN6dd40223barEv,
+};
+extern VTBL_ENTRY _ZTI6dd4022[];
+extern VTBL_ENTRY _ZTV6dd4022[];
+Class_Descriptor cd_dd4022 = { "dd4022", // class name
+ bases_dd4022, 3,
+ &(vtc_dd4022[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd4022),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4022),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 ee04022 : dd4022 {
+ int e;
+ ~ee04022(); // tgen
+ ee04022(); // tgen
+};
+//SIG(1 ee04022) C1{ BC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} Fi} v1 Fi} Fi}
+
+
+ee04022 ::~ee04022(){ note_dtor("ee04022", this);} // tgen
+ee04022 ::ee04022(){ note_ctor("ee04022", this);} // tgen
+
+static void Test_ee04022()
+{
+ extern Class_Descriptor cd_ee04022;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee04022, buf);
+ ee04022 *dp, &lv = *(dp=new (buf) ee04022());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee04022)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04022)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc022*)(dd4022*), 0, "ee04022");
+ check_base_class_offset(lv, (bb22*)(cc022*)(dd4022*), 0, "ee04022");
+ check_base_class_offset(lv, (cc022*)(dd4022*), 0, "ee04022");
+ check_base_class_offset(lv, (dd4022*), 0, "ee04022");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee04022.e");
+ test_class_info(&lv, &cd_ee04022);
+ dp->~ee04022();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04022(Test_ee04022, "ee04022", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee04022C1Ev();
+extern void _ZN7ee04022D1Ev();
+Name_Map name_map_ee04022[] = {
+ NSPAIR(_ZN7ee04022C1Ev),
+ NSPAIR(_ZN7ee04022D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc022;
+extern VTBL_ENTRY _ZTI5cc022[];
+extern VTBL_ENTRY _ZTV5cc022[];
+extern Class_Descriptor cd_dd4022;
+extern VTBL_ENTRY _ZTI6dd4022[];
+extern VTBL_ENTRY _ZTV6dd4022[];
+static Base_Class bases_ee04022[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc022, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4022, 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 _ZTI7ee04022[];
+extern void _ZN4bb223fooEv();
+extern void _ZN6dd40223barEv();
+static VTBL_ENTRY vtc_ee04022[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04022[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN6dd40223barEv,
+};
+extern VTBL_ENTRY _ZTI7ee04022[];
+extern VTBL_ENTRY _ZTV7ee04022[];
+Class_Descriptor cd_ee04022 = { "ee04022", // class name
+ bases_ee04022, 4,
+ &(vtc_ee04022[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee04022),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04022),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 ee14022 : virtual dd4022 {
+ int e;
+ ~ee14022(); // tgen
+ ee14022(); // tgen
+};
+//SIG(1 ee14022) C1{ VBC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} Fi} v1 Fi} Fi}
+
+
+ee14022 ::~ee14022(){ note_dtor("ee14022", this);} // tgen
+ee14022 ::ee14022(){ note_ctor("ee14022", this);} // tgen
+
+static void Test_ee14022()
+{
+ extern Class_Descriptor cd_ee14022;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee14022, buf);
+ ee14022 *dp, &lv = *(dp=new (buf) ee14022());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee14022)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14022)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc022*)(dd4022*), ABISELECT(16,8), "ee14022");
+ check_base_class_offset(lv, (bb22*)(cc022*)(dd4022*), ABISELECT(16,8), "ee14022");
+ check_base_class_offset(lv, (cc022*)(dd4022*), ABISELECT(16,8), "ee14022");
+ check_base_class_offset(lv, (dd4022*), ABISELECT(16,8), "ee14022");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14022.e");
+ test_class_info(&lv, &cd_ee14022);
+ dp->~ee14022();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14022(Test_ee14022, "ee14022", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee14022C1Ev();
+extern void _ZN7ee14022D1Ev();
+Name_Map name_map_ee14022[] = {
+ NSPAIR(_ZN7ee14022C1Ev),
+ NSPAIR(_ZN7ee14022D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc022;
+extern VTBL_ENTRY _ZTI5cc022[];
+extern VTBL_ENTRY _ZTV5cc022[];
+extern Class_Descriptor cd_dd4022;
+extern VTBL_ENTRY _ZTI6dd4022[];
+extern VTBL_ENTRY _ZTV6dd4022[];
+static Base_Class bases_ee14022[] = {
+ // 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_bb22, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc022, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4022, 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 _ZTI7ee14022[];
+extern void _ZN4bb223fooEv();
+extern void _ZN6dd40223barEv();
+static VTBL_ENTRY vtc_ee14022[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14022[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14022[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN6dd40223barEv,
+};
+extern VTBL_ENTRY _ZTV7ee14022[];
+static VTT_ENTRY vtt_ee14022[] = {
+ {&(_ZTV7ee14022[3]), 3,9},
+ {&(_ZTV7ee14022[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee14022[];
+extern VTBL_ENTRY _ZTV7ee14022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14022[];
+Class_Descriptor cd_ee14022 = { "ee14022", // class name
+ bases_ee14022, 4,
+ &(vtc_ee14022[0]), // expected_vtbl_contents
+ &(vtt_ee14022[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee14022),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14022),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14022),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 ee24022 : dd4022 {
+ int e;
+ virtual void foo(); // _ZN7ee240223fooEv
+ ~ee24022(); // tgen
+ ee24022(); // tgen
+};
+//SIG(1 ee24022) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee24022 ::foo(){vfunc_called(this, "_ZN7ee240223fooEv");}
+ee24022 ::~ee24022(){ note_dtor("ee24022", this);} // tgen
+ee24022 ::ee24022(){ note_ctor("ee24022", this);} // tgen
+
+static void Test_ee24022()
+{
+ extern Class_Descriptor cd_ee24022;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee24022, buf);
+ ee24022 *dp, &lv = *(dp=new (buf) ee24022());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee24022)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24022)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc022*)(dd4022*), 0, "ee24022");
+ check_base_class_offset(lv, (bb22*)(cc022*)(dd4022*), 0, "ee24022");
+ check_base_class_offset(lv, (cc022*)(dd4022*), 0, "ee24022");
+ check_base_class_offset(lv, (dd4022*), 0, "ee24022");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee24022.e");
+ test_class_info(&lv, &cd_ee24022);
+ dp->~ee24022();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24022(Test_ee24022, "ee24022", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee24022C1Ev();
+extern void _ZN7ee24022D1Ev();
+Name_Map name_map_ee24022[] = {
+ NSPAIR(_ZN7ee24022C1Ev),
+ NSPAIR(_ZN7ee24022D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc022;
+extern VTBL_ENTRY _ZTI5cc022[];
+extern VTBL_ENTRY _ZTV5cc022[];
+extern Class_Descriptor cd_dd4022;
+extern VTBL_ENTRY _ZTI6dd4022[];
+extern VTBL_ENTRY _ZTV6dd4022[];
+static Base_Class bases_ee24022[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc022, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4022, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee24022[];
+extern void _ZN7ee240223fooEv();
+extern void _ZN6dd40223barEv();
+static VTBL_ENTRY vtc_ee24022[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24022[0]),
+ (VTBL_ENTRY)&_ZN7ee240223fooEv,
+ (VTBL_ENTRY)&_ZN6dd40223barEv,
+};
+extern VTBL_ENTRY _ZTI7ee24022[];
+extern VTBL_ENTRY _ZTV7ee24022[];
+Class_Descriptor cd_ee24022 = { "ee24022", // class name
+ bases_ee24022, 4,
+ &(vtc_ee24022[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee24022),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24022),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 ee34022 : virtual dd4022 {
+ int e;
+ virtual void foo(); // _ZN7ee340223fooEv
+ ~ee34022(); // tgen
+ ee34022(); // tgen
+};
+//SIG(1 ee34022) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee34022 ::foo(){vfunc_called(this, "_ZN7ee340223fooEv");}
+ee34022 ::~ee34022(){ note_dtor("ee34022", this);} // tgen
+ee34022 ::ee34022(){ note_ctor("ee34022", this);} // tgen
+
+static void Test_ee34022()
+{
+ extern Class_Descriptor cd_ee34022;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee34022, buf);
+ ee34022 *dp, &lv = *(dp=new (buf) ee34022());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee34022)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34022)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc022*)(dd4022*), ABISELECT(16,8), "ee34022");
+ check_base_class_offset(lv, (bb22*)(cc022*)(dd4022*), ABISELECT(16,8), "ee34022");
+ check_base_class_offset(lv, (cc022*)(dd4022*), ABISELECT(16,8), "ee34022");
+ check_base_class_offset(lv, (dd4022*), ABISELECT(16,8), "ee34022");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34022.e");
+ test_class_info(&lv, &cd_ee34022);
+ dp->~ee34022();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34022(Test_ee34022, "ee34022", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee34022C1Ev();
+extern void _ZN7ee34022D1Ev();
+Name_Map name_map_ee34022[] = {
+ NSPAIR(_ZN7ee34022C1Ev),
+ NSPAIR(_ZN7ee34022D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc022;
+extern VTBL_ENTRY _ZTI5cc022[];
+extern VTBL_ENTRY _ZTV5cc022[];
+extern Class_Descriptor cd_dd4022;
+extern VTBL_ENTRY _ZTI6dd4022[];
+extern VTBL_ENTRY _ZTV6dd4022[];
+static Base_Class bases_ee34022[] = {
+ // 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_bb22, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc022, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4022, 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 _ZTI7ee34022[];
+extern void _ZN7ee340223fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee340223fooEv,_ZTv0_n12_N7ee340223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee340223fooEv,_ZThn8_N7ee340223fooEv)() __attribute__((weak));
+extern void _ZN6dd40223barEv();
+static VTBL_ENTRY vtc_ee34022[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34022[0]),
+ (VTBL_ENTRY)&_ZN7ee340223fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34022[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee340223fooEv,_ZTv0_n12_N7ee340223fooEv),
+ (VTBL_ENTRY)&_ZN6dd40223barEv,
+};
+extern VTBL_ENTRY _ZTV7ee34022[];
+static VTT_ENTRY vtt_ee34022[] = {
+ {&(_ZTV7ee34022[3]), 3,10},
+ {&(_ZTV7ee34022[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee34022[];
+extern VTBL_ENTRY _ZTV7ee34022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34022[];
+static VTBL_ENTRY alt_thunk_names872[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee340223fooEv,_ZTv0_n12_N7ee340223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee340223fooEv,_ZThn8_N7ee340223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34022 = { "ee34022", // class name
+ bases_ee34022, 4,
+ &(vtc_ee34022[0]), // expected_vtbl_contents
+ &(vtt_ee34022[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee34022),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34022),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34022),2, //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 ee44022 : dd4022 {
+ int e;
+ virtual void bar(); // _ZN7ee440223barEv
+ ~ee44022(); // tgen
+ ee44022(); // tgen
+};
+//SIG(1 ee44022) C1{ BC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee44022 ::bar(){vfunc_called(this, "_ZN7ee440223barEv");}
+ee44022 ::~ee44022(){ note_dtor("ee44022", this);} // tgen
+ee44022 ::ee44022(){ note_ctor("ee44022", this);} // tgen
+
+static void Test_ee44022()
+{
+ extern Class_Descriptor cd_ee44022;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee44022, buf);
+ ee44022 *dp, &lv = *(dp=new (buf) ee44022());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee44022)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44022)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc022*)(dd4022*), 0, "ee44022");
+ check_base_class_offset(lv, (bb22*)(cc022*)(dd4022*), 0, "ee44022");
+ check_base_class_offset(lv, (cc022*)(dd4022*), 0, "ee44022");
+ check_base_class_offset(lv, (dd4022*), 0, "ee44022");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee44022.e");
+ test_class_info(&lv, &cd_ee44022);
+ dp->~ee44022();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44022(Test_ee44022, "ee44022", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee44022C1Ev();
+extern void _ZN7ee44022D1Ev();
+Name_Map name_map_ee44022[] = {
+ NSPAIR(_ZN7ee44022C1Ev),
+ NSPAIR(_ZN7ee44022D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc022;
+extern VTBL_ENTRY _ZTI5cc022[];
+extern VTBL_ENTRY _ZTV5cc022[];
+extern Class_Descriptor cd_dd4022;
+extern VTBL_ENTRY _ZTI6dd4022[];
+extern VTBL_ENTRY _ZTV6dd4022[];
+static Base_Class bases_ee44022[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc022, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4022, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee44022[];
+extern void _ZN4bb223fooEv();
+extern void _ZN7ee440223barEv();
+static VTBL_ENTRY vtc_ee44022[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44022[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN7ee440223barEv,
+};
+extern VTBL_ENTRY _ZTI7ee44022[];
+extern VTBL_ENTRY _ZTV7ee44022[];
+Class_Descriptor cd_ee44022 = { "ee44022", // class name
+ bases_ee44022, 4,
+ &(vtc_ee44022[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee44022),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44022),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 ee54022 : virtual dd4022 {
+ int e;
+ virtual void bar(); // _ZN7ee540223barEv
+ ~ee54022(); // tgen
+ ee54022(); // tgen
+};
+//SIG(1 ee54022) C1{ VBC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee54022 ::bar(){vfunc_called(this, "_ZN7ee540223barEv");}
+ee54022 ::~ee54022(){ note_dtor("ee54022", this);} // tgen
+ee54022 ::ee54022(){ note_ctor("ee54022", this);} // tgen
+
+static void Test_ee54022()
+{
+ extern Class_Descriptor cd_ee54022;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee54022, buf);
+ ee54022 *dp, &lv = *(dp=new (buf) ee54022());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee54022)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54022)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc022*)(dd4022*), ABISELECT(16,8), "ee54022");
+ check_base_class_offset(lv, (bb22*)(cc022*)(dd4022*), ABISELECT(16,8), "ee54022");
+ check_base_class_offset(lv, (cc022*)(dd4022*), ABISELECT(16,8), "ee54022");
+ check_base_class_offset(lv, (dd4022*), ABISELECT(16,8), "ee54022");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54022.e");
+ test_class_info(&lv, &cd_ee54022);
+ dp->~ee54022();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54022(Test_ee54022, "ee54022", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee54022C1Ev();
+extern void _ZN7ee54022D1Ev();
+Name_Map name_map_ee54022[] = {
+ NSPAIR(_ZN7ee54022C1Ev),
+ NSPAIR(_ZN7ee54022D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc022;
+extern VTBL_ENTRY _ZTI5cc022[];
+extern VTBL_ENTRY _ZTV5cc022[];
+extern Class_Descriptor cd_dd4022;
+extern VTBL_ENTRY _ZTI6dd4022[];
+extern VTBL_ENTRY _ZTV6dd4022[];
+static Base_Class bases_ee54022[] = {
+ // 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_bb22, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc022, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4022, 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 _ZTI7ee54022[];
+extern void _ZN7ee540223barEv();
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee540223barEv,_ZTv0_n16_N7ee540223barEv)();
+extern void ABISELECT(_ZThn16_N7ee540223barEv,_ZThn8_N7ee540223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54022[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54022[0]),
+ (VTBL_ENTRY)&_ZN7ee540223barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54022[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee540223barEv,_ZTv0_n16_N7ee540223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee54022[];
+static VTT_ENTRY vtt_ee54022[] = {
+ {&(_ZTV7ee54022[3]), 3,10},
+ {&(_ZTV7ee54022[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee54022[];
+extern VTBL_ENTRY _ZTV7ee54022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54022[];
+static VTBL_ENTRY alt_thunk_names873[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee540223barEv,_ZTv0_n16_N7ee540223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee540223barEv,_ZThn8_N7ee540223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54022 = { "ee54022", // class name
+ bases_ee54022, 4,
+ &(vtc_ee54022[0]), // expected_vtbl_contents
+ &(vtt_ee54022[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee54022),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54022),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54022),2, //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 ee64022 : dd4022 {
+ int e;
+ virtual void foo(); // _ZN7ee640223fooEv
+ virtual void bar(); // _ZN7ee640223barEv
+ ~ee64022(); // tgen
+ ee64022(); // tgen
+};
+//SIG(1 ee64022) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64022 ::foo(){vfunc_called(this, "_ZN7ee640223fooEv");}
+void ee64022 ::bar(){vfunc_called(this, "_ZN7ee640223barEv");}
+ee64022 ::~ee64022(){ note_dtor("ee64022", this);} // tgen
+ee64022 ::ee64022(){ note_ctor("ee64022", this);} // tgen
+
+static void Test_ee64022()
+{
+ extern Class_Descriptor cd_ee64022;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee64022, buf);
+ ee64022 *dp, &lv = *(dp=new (buf) ee64022());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee64022)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64022)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc022*)(dd4022*), 0, "ee64022");
+ check_base_class_offset(lv, (bb22*)(cc022*)(dd4022*), 0, "ee64022");
+ check_base_class_offset(lv, (cc022*)(dd4022*), 0, "ee64022");
+ check_base_class_offset(lv, (dd4022*), 0, "ee64022");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee64022.e");
+ test_class_info(&lv, &cd_ee64022);
+ dp->~ee64022();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64022(Test_ee64022, "ee64022", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee64022C1Ev();
+extern void _ZN7ee64022D1Ev();
+Name_Map name_map_ee64022[] = {
+ NSPAIR(_ZN7ee64022C1Ev),
+ NSPAIR(_ZN7ee64022D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc022;
+extern VTBL_ENTRY _ZTI5cc022[];
+extern VTBL_ENTRY _ZTV5cc022[];
+extern Class_Descriptor cd_dd4022;
+extern VTBL_ENTRY _ZTI6dd4022[];
+extern VTBL_ENTRY _ZTV6dd4022[];
+static Base_Class bases_ee64022[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc022, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4022, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee64022[];
+extern void _ZN7ee640223fooEv();
+extern void _ZN7ee640223barEv();
+static VTBL_ENTRY vtc_ee64022[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64022[0]),
+ (VTBL_ENTRY)&_ZN7ee640223fooEv,
+ (VTBL_ENTRY)&_ZN7ee640223barEv,
+};
+extern VTBL_ENTRY _ZTI7ee64022[];
+extern VTBL_ENTRY _ZTV7ee64022[];
+Class_Descriptor cd_ee64022 = { "ee64022", // class name
+ bases_ee64022, 4,
+ &(vtc_ee64022[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee64022),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64022),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 ee74022 : virtual dd4022 {
+ int e;
+ virtual void foo(); // _ZN7ee740223fooEv
+ virtual void bar(); // _ZN7ee740223barEv
+ ~ee74022(); // tgen
+ ee74022(); // tgen
+};
+//SIG(1 ee74022) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74022 ::foo(){vfunc_called(this, "_ZN7ee740223fooEv");}
+void ee74022 ::bar(){vfunc_called(this, "_ZN7ee740223barEv");}
+ee74022 ::~ee74022(){ note_dtor("ee74022", this);} // tgen
+ee74022 ::ee74022(){ note_ctor("ee74022", this);} // tgen
+
+static void Test_ee74022()
+{
+ extern Class_Descriptor cd_ee74022;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee74022, buf);
+ ee74022 *dp, &lv = *(dp=new (buf) ee74022());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee74022)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74022)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc022*)(dd4022*), ABISELECT(16,8), "ee74022");
+ check_base_class_offset(lv, (bb22*)(cc022*)(dd4022*), ABISELECT(16,8), "ee74022");
+ check_base_class_offset(lv, (cc022*)(dd4022*), ABISELECT(16,8), "ee74022");
+ check_base_class_offset(lv, (dd4022*), ABISELECT(16,8), "ee74022");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74022.e");
+ test_class_info(&lv, &cd_ee74022);
+ dp->~ee74022();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74022(Test_ee74022, "ee74022", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee74022C1Ev();
+extern void _ZN7ee74022D1Ev();
+Name_Map name_map_ee74022[] = {
+ NSPAIR(_ZN7ee74022C1Ev),
+ NSPAIR(_ZN7ee74022D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc022;
+extern VTBL_ENTRY _ZTI5cc022[];
+extern VTBL_ENTRY _ZTV5cc022[];
+extern Class_Descriptor cd_dd4022;
+extern VTBL_ENTRY _ZTI6dd4022[];
+extern VTBL_ENTRY _ZTV6dd4022[];
+static Base_Class bases_ee74022[] = {
+ // 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_bb22, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc022, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4022, 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 _ZTI7ee74022[];
+extern void _ZN7ee740223fooEv();
+extern void _ZN7ee740223barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee740223fooEv,_ZTv0_n12_N7ee740223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee740223fooEv,_ZThn8_N7ee740223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee740223barEv,_ZTv0_n16_N7ee740223barEv)();
+extern void ABISELECT(_ZThn16_N7ee740223barEv,_ZThn8_N7ee740223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74022[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74022[0]),
+ (VTBL_ENTRY)&_ZN7ee740223fooEv,
+ (VTBL_ENTRY)&_ZN7ee740223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74022[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee740223fooEv,_ZTv0_n12_N7ee740223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee740223barEv,_ZTv0_n16_N7ee740223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee74022[];
+static VTT_ENTRY vtt_ee74022[] = {
+ {&(_ZTV7ee74022[3]), 3,11},
+ {&(_ZTV7ee74022[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee74022[];
+extern VTBL_ENTRY _ZTV7ee74022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74022[];
+static VTBL_ENTRY alt_thunk_names874[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee740223barEv,_ZTv0_n16_N7ee740223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee740223barEv,_ZThn8_N7ee740223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee740223fooEv,_ZTv0_n12_N7ee740223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee740223fooEv,_ZThn8_N7ee740223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74022 = { "ee74022", // class name
+ bases_ee74022, 4,
+ &(vtc_ee74022[0]), // expected_vtbl_contents
+ &(vtt_ee74022[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee74022),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74022),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74022),2, //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 dd5022 : virtual cc022 {
+ int d;
+ virtual void bar(); // _ZN6dd50223barEv
+ ~dd5022(); // tgen
+ dd5022(); // tgen
+};
+//SIG(-1 dd5022) C1{ VBC2{ BC3{ BC4{ v2 v1 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void dd5022 ::bar(){vfunc_called(this, "_ZN6dd50223barEv");}
+dd5022 ::~dd5022(){ note_dtor("dd5022", this);} // tgen
+dd5022 ::dd5022(){ note_ctor("dd5022", this);} // tgen
+
+static void Test_dd5022()
+{
+ extern Class_Descriptor cd_dd5022;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd5022, buf);
+ dd5022 *dp, &lv = *(dp=new (buf) dd5022());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd5022)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5022)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc022*), ABISELECT(16,8), "dd5022");
+ check_base_class_offset(lv, (bb22*)(cc022*), ABISELECT(16,8), "dd5022");
+ check_base_class_offset(lv, (cc022*), ABISELECT(16,8), "dd5022");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5022.d");
+ test_class_info(&lv, &cd_dd5022);
+ dp->~dd5022();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5022(Test_dd5022, "dd5022", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd5022C1Ev();
+extern void _ZN6dd5022D1Ev();
+Name_Map name_map_dd5022[] = {
+ NSPAIR(_ZN6dd5022C1Ev),
+ NSPAIR(_ZN6dd5022D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc022;
+extern VTBL_ENTRY _ZTI5cc022[];
+extern VTBL_ENTRY _ZTV5cc022[];
+static Base_Class bases_dd5022[] = {
+ // 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_bb22, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc022, 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 _ZTI6dd5022[];
+extern void _ZN6dd50223barEv();
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd50223barEv,_ZTv0_n16_N6dd50223barEv)();
+extern void ABISELECT(_ZThn16_N6dd50223barEv,_ZThn8_N6dd50223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd5022[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5022[0]),
+ (VTBL_ENTRY)&_ZN6dd50223barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5022[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50223barEv,_ZTv0_n16_N6dd50223barEv),
+};
+extern VTBL_ENTRY _ZTV6dd5022[];
+static VTT_ENTRY vtt_dd5022[] = {
+ {&(_ZTV6dd5022[3]), 3,10},
+ {&(_ZTV6dd5022[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd5022[];
+extern VTBL_ENTRY _ZTV6dd5022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5022[];
+static VTBL_ENTRY alt_thunk_names875[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd50223barEv,_ZTv0_n16_N6dd50223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50223barEv,_ZThn8_N6dd50223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5022 = { "dd5022", // class name
+ bases_dd5022, 3,
+ &(vtc_dd5022[0]), // expected_vtbl_contents
+ &(vtt_dd5022[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd5022),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5022),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5022),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names875,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05022 : dd5022 {
+ int e;
+ ~ee05022(); // tgen
+ ee05022(); // tgen
+};
+//SIG(1 ee05022) C1{ BC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} Fi} v1 Fi} Fi}
+
+
+ee05022 ::~ee05022(){ note_dtor("ee05022", this);} // tgen
+ee05022 ::ee05022(){ note_ctor("ee05022", this);} // tgen
+
+static void Test_ee05022()
+{
+ extern Class_Descriptor cd_ee05022;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee05022, buf);
+ ee05022 *dp, &lv = *(dp=new (buf) ee05022());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee05022)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05022)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc022*), ABISELECT(16,12), "ee05022");
+ check_base_class_offset(lv, (bb22*)(cc022*), ABISELECT(16,12), "ee05022");
+ check_base_class_offset(lv, (cc022*)(dd5022*), ABISELECT(16,12), "ee05022");
+ check_base_class_offset(lv, (dd5022*), 0, "ee05022");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05022.e");
+ test_class_info(&lv, &cd_ee05022);
+ dp->~ee05022();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05022(Test_ee05022, "ee05022", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee05022C1Ev();
+extern void _ZN7ee05022D1Ev();
+Name_Map name_map_ee05022[] = {
+ NSPAIR(_ZN7ee05022C1Ev),
+ NSPAIR(_ZN7ee05022D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc022;
+extern VTBL_ENTRY _ZTI5cc022[];
+extern VTBL_ENTRY _ZTV5cc022[];
+extern Class_Descriptor cd_dd5022;
+extern VTBL_ENTRY _ZTI6dd5022[];
+extern VTBL_ENTRY _ZTV6dd5022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5022[];
+static Base_Class bases_ee05022[] = {
+ // 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_bb22, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc022, 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_dd5022, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05022[];
+extern void _ZN6dd50223barEv();
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd50223barEv,_ZTv0_n16_N6dd50223barEv)();
+extern void ABISELECT(_ZThn16_N6dd50223barEv,_ZThn12_N6dd50223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee05022[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05022[0]),
+ (VTBL_ENTRY)&_ZN6dd50223barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05022[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50223barEv,_ZTv0_n16_N6dd50223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee05022[];
+extern void _ZN6dd50223barEv();
+static VTBL_ENTRY _tg__ZTV6dd5022__7ee05022[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5022[0]),
+ (VTBL_ENTRY)&_ZN6dd50223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd50223barEv,_ZTv0_n16_N6dd50223barEv)();
+extern void ABISELECT(_ZThn16_N6dd50223barEv,_ZThn12_N6dd50223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb225cc022__6dd5022__7ee05022[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5022[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50223barEv,_ZTv0_n16_N6dd50223barEv),
+};
+static VTT_ENTRY vtt_ee05022[] = {
+ {&(_ZTV7ee05022[3]), 3,10},
+ {&(_tg__ZTV6dd5022__7ee05022[3]), 3,4},
+ {&(_tg__ZTV4bb225cc022__6dd5022__7ee05022[4]), 4,6},
+ {&(_ZTV7ee05022[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee05022[];
+extern VTBL_ENTRY _ZTV7ee05022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05022[];
+static VTBL_ENTRY alt_thunk_names876[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd50223barEv,_ZTv0_n16_N6dd50223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50223barEv,_ZThn12_N6dd50223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50223barEv,_ZThn12_N6dd50223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05022 = { "ee05022", // class name
+ bases_ee05022, 4,
+ &(vtc_ee05022[0]), // expected_vtbl_contents
+ &(vtt_ee05022[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee05022),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05022),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05022),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names876,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee15022 : virtual dd5022 {
+ int e;
+ ~ee15022(); // tgen
+ ee15022(); // tgen
+};
+//SIG(1 ee15022) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} Fi} v1 Fi} Fi}
+
+
+ee15022 ::~ee15022(){ note_dtor("ee15022", this);} // tgen
+ee15022 ::ee15022(){ note_ctor("ee15022", this);} // tgen
+
+static void Test_ee15022()
+{
+ extern Class_Descriptor cd_ee15022;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee15022, buf);
+ ee15022 *dp, &lv = *(dp=new (buf) ee15022());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee15022)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15022)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc022*), ABISELECT(32,16), "ee15022");
+ check_base_class_offset(lv, (bb22*)(cc022*), ABISELECT(32,16), "ee15022");
+ check_base_class_offset(lv, (cc022*)(dd5022*), ABISELECT(32,16), "ee15022");
+ check_base_class_offset(lv, (dd5022*), ABISELECT(16,8), "ee15022");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15022.e");
+ test_class_info(&lv, &cd_ee15022);
+ dp->~ee15022();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15022(Test_ee15022, "ee15022", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee15022C1Ev();
+extern void _ZN7ee15022D1Ev();
+Name_Map name_map_ee15022[] = {
+ NSPAIR(_ZN7ee15022C1Ev),
+ NSPAIR(_ZN7ee15022D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc022;
+extern VTBL_ENTRY _ZTI5cc022[];
+extern VTBL_ENTRY _ZTV5cc022[];
+extern Class_Descriptor cd_dd5022;
+extern VTBL_ENTRY _ZTI6dd5022[];
+extern VTBL_ENTRY _ZTV6dd5022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5022[];
+static Base_Class bases_ee15022[] = {
+ // 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_bb22, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc022, 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_dd5022, 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 _ZTI7ee15022[];
+extern void _ZN6dd50223barEv();
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd50223barEv,_ZTv0_n16_N6dd50223barEv)();
+extern void ABISELECT(_ZThn16_N6dd50223barEv,_ZThn8_N6dd50223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee15022[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15022[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15022[0]),
+ (VTBL_ENTRY)&_ZN6dd50223barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15022[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50223barEv,_ZTv0_n16_N6dd50223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee15022[];
+extern void _ZN6dd50223barEv();
+static VTBL_ENTRY _tg__ZTV6dd5022__7ee15022[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5022[0]),
+ (VTBL_ENTRY)&_ZN6dd50223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd50223barEv,_ZTv0_n16_N6dd50223barEv)();
+extern void ABISELECT(_ZThn16_N6dd50223barEv,_ZThn8_N6dd50223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb225cc022__6dd5022__7ee15022[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5022[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50223barEv,_ZTv0_n16_N6dd50223barEv),
+};
+static VTT_ENTRY vtt_ee15022[] = {
+ {&(_ZTV7ee15022[4]), 4,15},
+ {&(_ZTV7ee15022[8]), 8,15},
+ {&(_ZTV7ee15022[13]), 13,15},
+ {&(_tg__ZTV6dd5022__7ee15022[3]), 3,4},
+ {&(_tg__ZTV4bb225cc022__6dd5022__7ee15022[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee15022[];
+extern VTBL_ENTRY _ZTV7ee15022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15022[];
+static VTBL_ENTRY alt_thunk_names877[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd50223barEv,_ZTv0_n16_N6dd50223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50223barEv,_ZThn8_N6dd50223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50223barEv,_ZThn8_N6dd50223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15022 = { "ee15022", // class name
+ bases_ee15022, 4,
+ &(vtc_ee15022[0]), // expected_vtbl_contents
+ &(vtt_ee15022[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee15022),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15022),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15022),5, //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 ee25022 : dd5022 {
+ int e;
+ virtual void foo(); // _ZN7ee250223fooEv
+ ~ee25022(); // tgen
+ ee25022(); // tgen
+};
+//SIG(1 ee25022) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee25022 ::foo(){vfunc_called(this, "_ZN7ee250223fooEv");}
+ee25022 ::~ee25022(){ note_dtor("ee25022", this);} // tgen
+ee25022 ::ee25022(){ note_ctor("ee25022", this);} // tgen
+
+static void Test_ee25022()
+{
+ extern Class_Descriptor cd_ee25022;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee25022, buf);
+ ee25022 *dp, &lv = *(dp=new (buf) ee25022());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee25022)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25022)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc022*), ABISELECT(16,12), "ee25022");
+ check_base_class_offset(lv, (bb22*)(cc022*), ABISELECT(16,12), "ee25022");
+ check_base_class_offset(lv, (cc022*)(dd5022*), ABISELECT(16,12), "ee25022");
+ check_base_class_offset(lv, (dd5022*), 0, "ee25022");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25022.e");
+ test_class_info(&lv, &cd_ee25022);
+ dp->~ee25022();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25022(Test_ee25022, "ee25022", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee25022C1Ev();
+extern void _ZN7ee25022D1Ev();
+Name_Map name_map_ee25022[] = {
+ NSPAIR(_ZN7ee25022C1Ev),
+ NSPAIR(_ZN7ee25022D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc022;
+extern VTBL_ENTRY _ZTI5cc022[];
+extern VTBL_ENTRY _ZTV5cc022[];
+extern Class_Descriptor cd_dd5022;
+extern VTBL_ENTRY _ZTI6dd5022[];
+extern VTBL_ENTRY _ZTV6dd5022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5022[];
+static Base_Class bases_ee25022[] = {
+ // 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_bb22, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc022, 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_dd5022, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25022[];
+extern void _ZN6dd50223barEv();
+extern void _ZN7ee250223fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee250223fooEv,_ZTv0_n12_N7ee250223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee250223fooEv,_ZThn12_N7ee250223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd50223barEv,_ZTv0_n16_N6dd50223barEv)();
+extern void ABISELECT(_ZThn16_N6dd50223barEv,_ZThn12_N6dd50223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25022[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25022[0]),
+ (VTBL_ENTRY)&_ZN6dd50223barEv,
+ (VTBL_ENTRY)&_ZN7ee250223fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25022[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee250223fooEv,_ZTv0_n12_N7ee250223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50223barEv,_ZTv0_n16_N6dd50223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee25022[];
+extern void _ZN6dd50223barEv();
+static VTBL_ENTRY _tg__ZTV6dd5022__7ee25022[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5022[0]),
+ (VTBL_ENTRY)&_ZN6dd50223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd50223barEv,_ZTv0_n16_N6dd50223barEv)();
+extern void ABISELECT(_ZThn16_N6dd50223barEv,_ZThn12_N6dd50223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb225cc022__6dd5022__7ee25022[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5022[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50223barEv,_ZTv0_n16_N6dd50223barEv),
+};
+static VTT_ENTRY vtt_ee25022[] = {
+ {&(_ZTV7ee25022[3]), 3,11},
+ {&(_tg__ZTV6dd5022__7ee25022[3]), 3,4},
+ {&(_tg__ZTV4bb225cc022__6dd5022__7ee25022[4]), 4,6},
+ {&(_ZTV7ee25022[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee25022[];
+extern VTBL_ENTRY _ZTV7ee25022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25022[];
+static VTBL_ENTRY alt_thunk_names878[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd50223barEv,_ZTv0_n16_N6dd50223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50223barEv,_ZThn12_N6dd50223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50223barEv,_ZThn12_N6dd50223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee250223fooEv,_ZTv0_n12_N7ee250223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee250223fooEv,_ZThn12_N7ee250223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25022 = { "ee25022", // class name
+ bases_ee25022, 4,
+ &(vtc_ee25022[0]), // expected_vtbl_contents
+ &(vtt_ee25022[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee25022),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25022),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25022),4, //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 ee35022 : virtual dd5022 {
+ int e;
+ virtual void foo(); // _ZN7ee350223fooEv
+ ~ee35022(); // tgen
+ ee35022(); // tgen
+};
+//SIG(1 ee35022) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee35022 ::foo(){vfunc_called(this, "_ZN7ee350223fooEv");}
+ee35022 ::~ee35022(){ note_dtor("ee35022", this);} // tgen
+ee35022 ::ee35022(){ note_ctor("ee35022", this);} // tgen
+
+static void Test_ee35022()
+{
+ extern Class_Descriptor cd_ee35022;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee35022, buf);
+ ee35022 *dp, &lv = *(dp=new (buf) ee35022());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee35022)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35022)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc022*), ABISELECT(32,16), "ee35022");
+ check_base_class_offset(lv, (bb22*)(cc022*), ABISELECT(32,16), "ee35022");
+ check_base_class_offset(lv, (cc022*)(dd5022*), ABISELECT(32,16), "ee35022");
+ check_base_class_offset(lv, (dd5022*), ABISELECT(16,8), "ee35022");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35022.e");
+ test_class_info(&lv, &cd_ee35022);
+ dp->~ee35022();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35022(Test_ee35022, "ee35022", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee35022C1Ev();
+extern void _ZN7ee35022D1Ev();
+Name_Map name_map_ee35022[] = {
+ NSPAIR(_ZN7ee35022C1Ev),
+ NSPAIR(_ZN7ee35022D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc022;
+extern VTBL_ENTRY _ZTI5cc022[];
+extern VTBL_ENTRY _ZTV5cc022[];
+extern Class_Descriptor cd_dd5022;
+extern VTBL_ENTRY _ZTI6dd5022[];
+extern VTBL_ENTRY _ZTV6dd5022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5022[];
+static Base_Class bases_ee35022[] = {
+ // 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_bb22, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc022, 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_dd5022, 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 _ZTI7ee35022[];
+extern void _ZN7ee350223fooEv();
+extern void _ZN6dd50223barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee350223fooEv,_ZTv0_n12_N7ee350223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee350223fooEv,_ZThn16_N7ee350223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd50223barEv,_ZTv0_n16_N6dd50223barEv)();
+extern void ABISELECT(_ZThn16_N6dd50223barEv,_ZThn8_N6dd50223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35022[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35022[0]),
+ (VTBL_ENTRY)&_ZN7ee350223fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35022[0]),
+ (VTBL_ENTRY)&_ZN6dd50223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35022[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee350223fooEv,_ZTv0_n12_N7ee350223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50223barEv,_ZTv0_n16_N6dd50223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee35022[];
+extern void _ZN6dd50223barEv();
+static VTBL_ENTRY _tg__ZTV6dd5022__7ee35022[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5022[0]),
+ (VTBL_ENTRY)&_ZN6dd50223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd50223barEv,_ZTv0_n16_N6dd50223barEv)();
+extern void ABISELECT(_ZThn16_N6dd50223barEv,_ZThn8_N6dd50223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb225cc022__6dd5022__7ee35022[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5022[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50223barEv,_ZTv0_n16_N6dd50223barEv),
+};
+static VTT_ENTRY vtt_ee35022[] = {
+ {&(_ZTV7ee35022[4]), 4,16},
+ {&(_ZTV7ee35022[9]), 9,16},
+ {&(_ZTV7ee35022[14]), 14,16},
+ {&(_tg__ZTV6dd5022__7ee35022[3]), 3,4},
+ {&(_tg__ZTV4bb225cc022__6dd5022__7ee35022[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee35022[];
+extern VTBL_ENTRY _ZTV7ee35022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35022[];
+static VTBL_ENTRY alt_thunk_names879[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd50223barEv,_ZTv0_n16_N6dd50223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50223barEv,_ZThn8_N6dd50223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50223barEv,_ZThn8_N6dd50223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee350223fooEv,_ZTv0_n12_N7ee350223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee350223fooEv,_ZThn16_N7ee350223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35022 = { "ee35022", // class name
+ bases_ee35022, 4,
+ &(vtc_ee35022[0]), // expected_vtbl_contents
+ &(vtt_ee35022[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee35022),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35022),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35022),5, //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 ee45022 : dd5022 {
+ int e;
+ virtual void bar(); // _ZN7ee450223barEv
+ ~ee45022(); // tgen
+ ee45022(); // tgen
+};
+//SIG(1 ee45022) C1{ BC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee45022 ::bar(){vfunc_called(this, "_ZN7ee450223barEv");}
+ee45022 ::~ee45022(){ note_dtor("ee45022", this);} // tgen
+ee45022 ::ee45022(){ note_ctor("ee45022", this);} // tgen
+
+static void Test_ee45022()
+{
+ extern Class_Descriptor cd_ee45022;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee45022, buf);
+ ee45022 *dp, &lv = *(dp=new (buf) ee45022());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee45022)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45022)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc022*), ABISELECT(16,12), "ee45022");
+ check_base_class_offset(lv, (bb22*)(cc022*), ABISELECT(16,12), "ee45022");
+ check_base_class_offset(lv, (cc022*)(dd5022*), ABISELECT(16,12), "ee45022");
+ check_base_class_offset(lv, (dd5022*), 0, "ee45022");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45022.e");
+ test_class_info(&lv, &cd_ee45022);
+ dp->~ee45022();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45022(Test_ee45022, "ee45022", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee45022C1Ev();
+extern void _ZN7ee45022D1Ev();
+Name_Map name_map_ee45022[] = {
+ NSPAIR(_ZN7ee45022C1Ev),
+ NSPAIR(_ZN7ee45022D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc022;
+extern VTBL_ENTRY _ZTI5cc022[];
+extern VTBL_ENTRY _ZTV5cc022[];
+extern Class_Descriptor cd_dd5022;
+extern VTBL_ENTRY _ZTI6dd5022[];
+extern VTBL_ENTRY _ZTV6dd5022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5022[];
+static Base_Class bases_ee45022[] = {
+ // 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_bb22, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc022, 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_dd5022, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45022[];
+extern void _ZN7ee450223barEv();
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee450223barEv,_ZTv0_n16_N7ee450223barEv)();
+extern void ABISELECT(_ZThn16_N7ee450223barEv,_ZThn12_N7ee450223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee45022[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45022[0]),
+ (VTBL_ENTRY)&_ZN7ee450223barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45022[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee450223barEv,_ZTv0_n16_N7ee450223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee45022[];
+extern void _ZN6dd50223barEv();
+static VTBL_ENTRY _tg__ZTV6dd5022__7ee45022[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5022[0]),
+ (VTBL_ENTRY)&_ZN6dd50223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd50223barEv,_ZTv0_n16_N6dd50223barEv)();
+extern void ABISELECT(_ZThn16_N6dd50223barEv,_ZThn12_N6dd50223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb225cc022__6dd5022__7ee45022[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5022[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50223barEv,_ZTv0_n16_N6dd50223barEv),
+};
+static VTT_ENTRY vtt_ee45022[] = {
+ {&(_ZTV7ee45022[3]), 3,10},
+ {&(_tg__ZTV6dd5022__7ee45022[3]), 3,4},
+ {&(_tg__ZTV4bb225cc022__6dd5022__7ee45022[4]), 4,6},
+ {&(_ZTV7ee45022[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee45022[];
+extern VTBL_ENTRY _ZTV7ee45022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45022[];
+static VTBL_ENTRY alt_thunk_names880[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd50223barEv,_ZTv0_n16_N6dd50223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50223barEv,_ZThn12_N6dd50223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee450223barEv,_ZTv0_n16_N7ee450223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee450223barEv,_ZThn12_N7ee450223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45022 = { "ee45022", // class name
+ bases_ee45022, 4,
+ &(vtc_ee45022[0]), // expected_vtbl_contents
+ &(vtt_ee45022[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee45022),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45022),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45022),4, //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 ee55022 : virtual dd5022 {
+ int e;
+ virtual void bar(); // _ZN7ee550223barEv
+ ~ee55022(); // tgen
+ ee55022(); // tgen
+};
+//SIG(1 ee55022) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee55022 ::bar(){vfunc_called(this, "_ZN7ee550223barEv");}
+ee55022 ::~ee55022(){ note_dtor("ee55022", this);} // tgen
+ee55022 ::ee55022(){ note_ctor("ee55022", this);} // tgen
+
+static void Test_ee55022()
+{
+ extern Class_Descriptor cd_ee55022;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee55022, buf);
+ ee55022 *dp, &lv = *(dp=new (buf) ee55022());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee55022)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55022)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc022*), ABISELECT(32,16), "ee55022");
+ check_base_class_offset(lv, (bb22*)(cc022*), ABISELECT(32,16), "ee55022");
+ check_base_class_offset(lv, (cc022*)(dd5022*), ABISELECT(32,16), "ee55022");
+ check_base_class_offset(lv, (dd5022*), ABISELECT(16,8), "ee55022");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55022.e");
+ test_class_info(&lv, &cd_ee55022);
+ dp->~ee55022();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55022(Test_ee55022, "ee55022", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee55022C1Ev();
+extern void _ZN7ee55022D1Ev();
+Name_Map name_map_ee55022[] = {
+ NSPAIR(_ZN7ee55022C1Ev),
+ NSPAIR(_ZN7ee55022D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc022;
+extern VTBL_ENTRY _ZTI5cc022[];
+extern VTBL_ENTRY _ZTV5cc022[];
+extern Class_Descriptor cd_dd5022;
+extern VTBL_ENTRY _ZTI6dd5022[];
+extern VTBL_ENTRY _ZTV6dd5022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5022[];
+static Base_Class bases_ee55022[] = {
+ // 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_bb22, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc022, 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_dd5022, 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 _ZTI7ee55022[];
+extern void _ZN7ee550223barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee550223barEv,_ZTv0_n16_N7ee550223barEv)();
+extern void ABISELECT(_ZThn16_N7ee550223barEv,_ZThn8_N7ee550223barEv)() __attribute__((weak));
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee550223barEv,_ZTv0_n16_N7ee550223barEv)();
+extern void ABISELECT(_ZThn32_N7ee550223barEv,_ZThn16_N7ee550223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee55022[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55022[0]),
+ (VTBL_ENTRY)&_ZN7ee550223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55022[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee550223barEv,_ZTv0_n16_N7ee550223barEv),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55022[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee550223barEv,_ZTv0_n16_N7ee550223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee55022[];
+extern void _ZN6dd50223barEv();
+static VTBL_ENTRY _tg__ZTV6dd5022__7ee55022[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5022[0]),
+ (VTBL_ENTRY)&_ZN6dd50223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd50223barEv,_ZTv0_n16_N6dd50223barEv)();
+extern void ABISELECT(_ZThn16_N6dd50223barEv,_ZThn8_N6dd50223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb225cc022__6dd5022__7ee55022[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5022[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50223barEv,_ZTv0_n16_N6dd50223barEv),
+};
+static VTT_ENTRY vtt_ee55022[] = {
+ {&(_ZTV7ee55022[4]), 4,16},
+ {&(_ZTV7ee55022[9]), 9,16},
+ {&(_ZTV7ee55022[14]), 14,16},
+ {&(_tg__ZTV6dd5022__7ee55022[3]), 3,4},
+ {&(_tg__ZTV4bb225cc022__6dd5022__7ee55022[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee55022[];
+extern VTBL_ENTRY _ZTV7ee55022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55022[];
+static VTBL_ENTRY alt_thunk_names881[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd50223barEv,_ZTv0_n16_N6dd50223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50223barEv,_ZThn8_N6dd50223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee550223barEv,_ZTv0_n16_N7ee550223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee550223barEv,_ZThn16_N7ee550223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee550223barEv,_ZThn8_N7ee550223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55022 = { "ee55022", // class name
+ bases_ee55022, 4,
+ &(vtc_ee55022[0]), // expected_vtbl_contents
+ &(vtt_ee55022[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee55022),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55022),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55022),5, //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 ee65022 : dd5022 {
+ int e;
+ virtual void foo(); // _ZN7ee650223fooEv
+ virtual void bar(); // _ZN7ee650223barEv
+ ~ee65022(); // tgen
+ ee65022(); // tgen
+};
+//SIG(1 ee65022) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65022 ::foo(){vfunc_called(this, "_ZN7ee650223fooEv");}
+void ee65022 ::bar(){vfunc_called(this, "_ZN7ee650223barEv");}
+ee65022 ::~ee65022(){ note_dtor("ee65022", this);} // tgen
+ee65022 ::ee65022(){ note_ctor("ee65022", this);} // tgen
+
+static void Test_ee65022()
+{
+ extern Class_Descriptor cd_ee65022;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee65022, buf);
+ ee65022 *dp, &lv = *(dp=new (buf) ee65022());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee65022)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65022)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc022*), ABISELECT(16,12), "ee65022");
+ check_base_class_offset(lv, (bb22*)(cc022*), ABISELECT(16,12), "ee65022");
+ check_base_class_offset(lv, (cc022*)(dd5022*), ABISELECT(16,12), "ee65022");
+ check_base_class_offset(lv, (dd5022*), 0, "ee65022");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65022.e");
+ test_class_info(&lv, &cd_ee65022);
+ dp->~ee65022();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65022(Test_ee65022, "ee65022", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee65022C1Ev();
+extern void _ZN7ee65022D1Ev();
+Name_Map name_map_ee65022[] = {
+ NSPAIR(_ZN7ee65022C1Ev),
+ NSPAIR(_ZN7ee65022D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc022;
+extern VTBL_ENTRY _ZTI5cc022[];
+extern VTBL_ENTRY _ZTV5cc022[];
+extern Class_Descriptor cd_dd5022;
+extern VTBL_ENTRY _ZTI6dd5022[];
+extern VTBL_ENTRY _ZTV6dd5022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5022[];
+static Base_Class bases_ee65022[] = {
+ // 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_bb22, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc022, 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_dd5022, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65022[];
+extern void _ZN7ee650223barEv();
+extern void _ZN7ee650223fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee650223fooEv,_ZTv0_n12_N7ee650223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee650223fooEv,_ZThn12_N7ee650223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee650223barEv,_ZTv0_n16_N7ee650223barEv)();
+extern void ABISELECT(_ZThn16_N7ee650223barEv,_ZThn12_N7ee650223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65022[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65022[0]),
+ (VTBL_ENTRY)&_ZN7ee650223barEv,
+ (VTBL_ENTRY)&_ZN7ee650223fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65022[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee650223fooEv,_ZTv0_n12_N7ee650223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee650223barEv,_ZTv0_n16_N7ee650223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee65022[];
+extern void _ZN6dd50223barEv();
+static VTBL_ENTRY _tg__ZTV6dd5022__7ee65022[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5022[0]),
+ (VTBL_ENTRY)&_ZN6dd50223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd50223barEv,_ZTv0_n16_N6dd50223barEv)();
+extern void ABISELECT(_ZThn16_N6dd50223barEv,_ZThn12_N6dd50223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb225cc022__6dd5022__7ee65022[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5022[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50223barEv,_ZTv0_n16_N6dd50223barEv),
+};
+static VTT_ENTRY vtt_ee65022[] = {
+ {&(_ZTV7ee65022[3]), 3,11},
+ {&(_tg__ZTV6dd5022__7ee65022[3]), 3,4},
+ {&(_tg__ZTV4bb225cc022__6dd5022__7ee65022[4]), 4,6},
+ {&(_ZTV7ee65022[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee65022[];
+extern VTBL_ENTRY _ZTV7ee65022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65022[];
+static VTBL_ENTRY alt_thunk_names882[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd50223barEv,_ZTv0_n16_N6dd50223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50223barEv,_ZThn12_N6dd50223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee650223barEv,_ZTv0_n16_N7ee650223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee650223barEv,_ZThn12_N7ee650223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee650223fooEv,_ZTv0_n12_N7ee650223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee650223fooEv,_ZThn12_N7ee650223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65022 = { "ee65022", // class name
+ bases_ee65022, 4,
+ &(vtc_ee65022[0]), // expected_vtbl_contents
+ &(vtt_ee65022[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee65022),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65022),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65022),4, //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 ee75022 : virtual dd5022 {
+ int e;
+ virtual void foo(); // _ZN7ee750223fooEv
+ virtual void bar(); // _ZN7ee750223barEv
+ ~ee75022(); // tgen
+ ee75022(); // tgen
+};
+//SIG(1 ee75022) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75022 ::foo(){vfunc_called(this, "_ZN7ee750223fooEv");}
+void ee75022 ::bar(){vfunc_called(this, "_ZN7ee750223barEv");}
+ee75022 ::~ee75022(){ note_dtor("ee75022", this);} // tgen
+ee75022 ::ee75022(){ note_ctor("ee75022", this);} // tgen
+
+static void Test_ee75022()
+{
+ extern Class_Descriptor cd_ee75022;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee75022, buf);
+ ee75022 *dp, &lv = *(dp=new (buf) ee75022());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee75022)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75022)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc022*), ABISELECT(32,16), "ee75022");
+ check_base_class_offset(lv, (bb22*)(cc022*), ABISELECT(32,16), "ee75022");
+ check_base_class_offset(lv, (cc022*)(dd5022*), ABISELECT(32,16), "ee75022");
+ check_base_class_offset(lv, (dd5022*), ABISELECT(16,8), "ee75022");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75022.e");
+ test_class_info(&lv, &cd_ee75022);
+ dp->~ee75022();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75022(Test_ee75022, "ee75022", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee75022C1Ev();
+extern void _ZN7ee75022D1Ev();
+Name_Map name_map_ee75022[] = {
+ NSPAIR(_ZN7ee75022C1Ev),
+ NSPAIR(_ZN7ee75022D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc022;
+extern VTBL_ENTRY _ZTI5cc022[];
+extern VTBL_ENTRY _ZTV5cc022[];
+extern Class_Descriptor cd_dd5022;
+extern VTBL_ENTRY _ZTI6dd5022[];
+extern VTBL_ENTRY _ZTV6dd5022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5022[];
+static Base_Class bases_ee75022[] = {
+ // 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_bb22, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc022, 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_dd5022, 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 _ZTI7ee75022[];
+extern void _ZN7ee750223fooEv();
+extern void _ZN7ee750223barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee750223barEv,_ZTv0_n16_N7ee750223barEv)();
+extern void ABISELECT(_ZThn16_N7ee750223barEv,_ZThn8_N7ee750223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee750223fooEv,_ZTv0_n12_N7ee750223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee750223fooEv,_ZThn16_N7ee750223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee750223barEv,_ZTv0_n16_N7ee750223barEv)();
+extern void ABISELECT(_ZThn32_N7ee750223barEv,_ZThn16_N7ee750223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75022[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75022[0]),
+ (VTBL_ENTRY)&_ZN7ee750223fooEv,
+ (VTBL_ENTRY)&_ZN7ee750223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75022[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee750223barEv,_ZTv0_n16_N7ee750223barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75022[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee750223fooEv,_ZTv0_n12_N7ee750223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee750223barEv,_ZTv0_n16_N7ee750223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee75022[];
+extern void _ZN6dd50223barEv();
+static VTBL_ENTRY _tg__ZTV6dd5022__7ee75022[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5022[0]),
+ (VTBL_ENTRY)&_ZN6dd50223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd50223barEv,_ZTv0_n16_N6dd50223barEv)();
+extern void ABISELECT(_ZThn16_N6dd50223barEv,_ZThn8_N6dd50223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb225cc022__6dd5022__7ee75022[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5022[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50223barEv,_ZTv0_n16_N6dd50223barEv),
+};
+static VTT_ENTRY vtt_ee75022[] = {
+ {&(_ZTV7ee75022[4]), 4,17},
+ {&(_ZTV7ee75022[10]), 10,17},
+ {&(_ZTV7ee75022[15]), 15,17},
+ {&(_tg__ZTV6dd5022__7ee75022[3]), 3,4},
+ {&(_tg__ZTV4bb225cc022__6dd5022__7ee75022[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee75022[];
+extern VTBL_ENTRY _ZTV7ee75022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75022[];
+static VTBL_ENTRY alt_thunk_names883[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd50223barEv,_ZTv0_n16_N6dd50223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50223barEv,_ZThn8_N6dd50223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee750223fooEv,_ZTv0_n12_N7ee750223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee750223fooEv,_ZThn16_N7ee750223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee750223barEv,_ZTv0_n16_N7ee750223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee750223barEv,_ZThn16_N7ee750223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee750223barEv,_ZThn8_N7ee750223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75022 = { "ee75022", // class name
+ bases_ee75022, 4,
+ &(vtc_ee75022[0]), // expected_vtbl_contents
+ &(vtt_ee75022[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee75022),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75022),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75022),5, //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 dd6022 : cc022 {
+ int d;
+ virtual void bar(); // _ZN6dd60223barEv
+ virtual void foo(); // _ZN6dd60223fooEv
+ ~dd6022(); // tgen
+ dd6022(); // tgen
+};
+//SIG(-1 dd6022) C1{ BC2{ BC3{ BC4{ v2 v1 Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void dd6022 ::bar(){vfunc_called(this, "_ZN6dd60223barEv");}
+void dd6022 ::foo(){vfunc_called(this, "_ZN6dd60223fooEv");}
+dd6022 ::~dd6022(){ note_dtor("dd6022", this);} // tgen
+dd6022 ::dd6022(){ note_ctor("dd6022", this);} // tgen
+
+static void Test_dd6022()
+{
+ extern Class_Descriptor cd_dd6022;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd6022, buf);
+ dd6022 *dp, &lv = *(dp=new (buf) dd6022());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd6022)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6022)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc022*), 0, "dd6022");
+ check_base_class_offset(lv, (bb22*)(cc022*), 0, "dd6022");
+ check_base_class_offset(lv, (cc022*), 0, "dd6022");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd6022.d");
+ test_class_info(&lv, &cd_dd6022);
+ dp->~dd6022();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6022(Test_dd6022, "dd6022", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd6022C1Ev();
+extern void _ZN6dd6022D1Ev();
+Name_Map name_map_dd6022[] = {
+ NSPAIR(_ZN6dd6022C1Ev),
+ NSPAIR(_ZN6dd6022D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc022;
+extern VTBL_ENTRY _ZTI5cc022[];
+extern VTBL_ENTRY _ZTV5cc022[];
+static Base_Class bases_dd6022[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc022, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI6dd6022[];
+extern void _ZN6dd60223fooEv();
+extern void _ZN6dd60223barEv();
+static VTBL_ENTRY vtc_dd6022[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6022[0]),
+ (VTBL_ENTRY)&_ZN6dd60223fooEv,
+ (VTBL_ENTRY)&_ZN6dd60223barEv,
+};
+extern VTBL_ENTRY _ZTI6dd6022[];
+extern VTBL_ENTRY _ZTV6dd6022[];
+Class_Descriptor cd_dd6022 = { "dd6022", // class name
+ bases_dd6022, 3,
+ &(vtc_dd6022[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd6022),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6022),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 ee06022 : dd6022 {
+ int e;
+ ~ee06022(); // tgen
+ ee06022(); // tgen
+};
+//SIG(1 ee06022) C1{ BC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee06022 ::~ee06022(){ note_dtor("ee06022", this);} // tgen
+ee06022 ::ee06022(){ note_ctor("ee06022", this);} // tgen
+
+static void Test_ee06022()
+{
+ extern Class_Descriptor cd_ee06022;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee06022, buf);
+ ee06022 *dp, &lv = *(dp=new (buf) ee06022());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee06022)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06022)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc022*)(dd6022*), 0, "ee06022");
+ check_base_class_offset(lv, (bb22*)(cc022*)(dd6022*), 0, "ee06022");
+ check_base_class_offset(lv, (cc022*)(dd6022*), 0, "ee06022");
+ check_base_class_offset(lv, (dd6022*), 0, "ee06022");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee06022.e");
+ test_class_info(&lv, &cd_ee06022);
+ dp->~ee06022();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06022(Test_ee06022, "ee06022", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee06022C1Ev();
+extern void _ZN7ee06022D1Ev();
+Name_Map name_map_ee06022[] = {
+ NSPAIR(_ZN7ee06022C1Ev),
+ NSPAIR(_ZN7ee06022D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc022;
+extern VTBL_ENTRY _ZTI5cc022[];
+extern VTBL_ENTRY _ZTV5cc022[];
+extern Class_Descriptor cd_dd6022;
+extern VTBL_ENTRY _ZTI6dd6022[];
+extern VTBL_ENTRY _ZTV6dd6022[];
+static Base_Class bases_ee06022[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc022, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6022, 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 _ZTI7ee06022[];
+extern void _ZN6dd60223fooEv();
+extern void _ZN6dd60223barEv();
+static VTBL_ENTRY vtc_ee06022[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06022[0]),
+ (VTBL_ENTRY)&_ZN6dd60223fooEv,
+ (VTBL_ENTRY)&_ZN6dd60223barEv,
+};
+extern VTBL_ENTRY _ZTI7ee06022[];
+extern VTBL_ENTRY _ZTV7ee06022[];
+Class_Descriptor cd_ee06022 = { "ee06022", // class name
+ bases_ee06022, 4,
+ &(vtc_ee06022[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee06022),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06022),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 ee16022 : virtual dd6022 {
+ int e;
+ ~ee16022(); // tgen
+ ee16022(); // tgen
+};
+//SIG(1 ee16022) C1{ VBC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee16022 ::~ee16022(){ note_dtor("ee16022", this);} // tgen
+ee16022 ::ee16022(){ note_ctor("ee16022", this);} // tgen
+
+static void Test_ee16022()
+{
+ extern Class_Descriptor cd_ee16022;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee16022, buf);
+ ee16022 *dp, &lv = *(dp=new (buf) ee16022());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee16022)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16022)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc022*)(dd6022*), ABISELECT(16,8), "ee16022");
+ check_base_class_offset(lv, (bb22*)(cc022*)(dd6022*), ABISELECT(16,8), "ee16022");
+ check_base_class_offset(lv, (cc022*)(dd6022*), ABISELECT(16,8), "ee16022");
+ check_base_class_offset(lv, (dd6022*), ABISELECT(16,8), "ee16022");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16022.e");
+ test_class_info(&lv, &cd_ee16022);
+ dp->~ee16022();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16022(Test_ee16022, "ee16022", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee16022C1Ev();
+extern void _ZN7ee16022D1Ev();
+Name_Map name_map_ee16022[] = {
+ NSPAIR(_ZN7ee16022C1Ev),
+ NSPAIR(_ZN7ee16022D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc022;
+extern VTBL_ENTRY _ZTI5cc022[];
+extern VTBL_ENTRY _ZTV5cc022[];
+extern Class_Descriptor cd_dd6022;
+extern VTBL_ENTRY _ZTI6dd6022[];
+extern VTBL_ENTRY _ZTV6dd6022[];
+static Base_Class bases_ee16022[] = {
+ // 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_bb22, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc022, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6022, 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 _ZTI7ee16022[];
+extern void _ZN6dd60223fooEv();
+extern void _ZN6dd60223barEv();
+static VTBL_ENTRY vtc_ee16022[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16022[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16022[0]),
+ (VTBL_ENTRY)&_ZN6dd60223fooEv,
+ (VTBL_ENTRY)&_ZN6dd60223barEv,
+};
+extern VTBL_ENTRY _ZTV7ee16022[];
+static VTT_ENTRY vtt_ee16022[] = {
+ {&(_ZTV7ee16022[3]), 3,9},
+ {&(_ZTV7ee16022[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee16022[];
+extern VTBL_ENTRY _ZTV7ee16022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16022[];
+Class_Descriptor cd_ee16022 = { "ee16022", // class name
+ bases_ee16022, 4,
+ &(vtc_ee16022[0]), // expected_vtbl_contents
+ &(vtt_ee16022[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee16022),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16022),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16022),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 ee26022 : dd6022 {
+ int e;
+ virtual void foo(); // _ZN7ee260223fooEv
+ ~ee26022(); // tgen
+ ee26022(); // tgen
+};
+//SIG(1 ee26022) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26022 ::foo(){vfunc_called(this, "_ZN7ee260223fooEv");}
+ee26022 ::~ee26022(){ note_dtor("ee26022", this);} // tgen
+ee26022 ::ee26022(){ note_ctor("ee26022", this);} // tgen
+
+static void Test_ee26022()
+{
+ extern Class_Descriptor cd_ee26022;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee26022, buf);
+ ee26022 *dp, &lv = *(dp=new (buf) ee26022());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee26022)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26022)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc022*)(dd6022*), 0, "ee26022");
+ check_base_class_offset(lv, (bb22*)(cc022*)(dd6022*), 0, "ee26022");
+ check_base_class_offset(lv, (cc022*)(dd6022*), 0, "ee26022");
+ check_base_class_offset(lv, (dd6022*), 0, "ee26022");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee26022.e");
+ test_class_info(&lv, &cd_ee26022);
+ dp->~ee26022();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26022(Test_ee26022, "ee26022", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee26022C1Ev();
+extern void _ZN7ee26022D1Ev();
+Name_Map name_map_ee26022[] = {
+ NSPAIR(_ZN7ee26022C1Ev),
+ NSPAIR(_ZN7ee26022D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc022;
+extern VTBL_ENTRY _ZTI5cc022[];
+extern VTBL_ENTRY _ZTV5cc022[];
+extern Class_Descriptor cd_dd6022;
+extern VTBL_ENTRY _ZTI6dd6022[];
+extern VTBL_ENTRY _ZTV6dd6022[];
+static Base_Class bases_ee26022[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc022, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6022, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee26022[];
+extern void _ZN7ee260223fooEv();
+extern void _ZN6dd60223barEv();
+static VTBL_ENTRY vtc_ee26022[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26022[0]),
+ (VTBL_ENTRY)&_ZN7ee260223fooEv,
+ (VTBL_ENTRY)&_ZN6dd60223barEv,
+};
+extern VTBL_ENTRY _ZTI7ee26022[];
+extern VTBL_ENTRY _ZTV7ee26022[];
+Class_Descriptor cd_ee26022 = { "ee26022", // class name
+ bases_ee26022, 4,
+ &(vtc_ee26022[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee26022),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26022),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 ee36022 : virtual dd6022 {
+ int e;
+ virtual void foo(); // _ZN7ee360223fooEv
+ ~ee36022(); // tgen
+ ee36022(); // tgen
+};
+//SIG(1 ee36022) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36022 ::foo(){vfunc_called(this, "_ZN7ee360223fooEv");}
+ee36022 ::~ee36022(){ note_dtor("ee36022", this);} // tgen
+ee36022 ::ee36022(){ note_ctor("ee36022", this);} // tgen
+
+static void Test_ee36022()
+{
+ extern Class_Descriptor cd_ee36022;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee36022, buf);
+ ee36022 *dp, &lv = *(dp=new (buf) ee36022());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee36022)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36022)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc022*)(dd6022*), ABISELECT(16,8), "ee36022");
+ check_base_class_offset(lv, (bb22*)(cc022*)(dd6022*), ABISELECT(16,8), "ee36022");
+ check_base_class_offset(lv, (cc022*)(dd6022*), ABISELECT(16,8), "ee36022");
+ check_base_class_offset(lv, (dd6022*), ABISELECT(16,8), "ee36022");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36022.e");
+ test_class_info(&lv, &cd_ee36022);
+ dp->~ee36022();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36022(Test_ee36022, "ee36022", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee36022C1Ev();
+extern void _ZN7ee36022D1Ev();
+Name_Map name_map_ee36022[] = {
+ NSPAIR(_ZN7ee36022C1Ev),
+ NSPAIR(_ZN7ee36022D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc022;
+extern VTBL_ENTRY _ZTI5cc022[];
+extern VTBL_ENTRY _ZTV5cc022[];
+extern Class_Descriptor cd_dd6022;
+extern VTBL_ENTRY _ZTI6dd6022[];
+extern VTBL_ENTRY _ZTV6dd6022[];
+static Base_Class bases_ee36022[] = {
+ // 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_bb22, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc022, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6022, 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 _ZTI7ee36022[];
+extern void _ZN7ee360223fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee360223fooEv,_ZTv0_n12_N7ee360223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee360223fooEv,_ZThn8_N7ee360223fooEv)() __attribute__((weak));
+extern void _ZN6dd60223barEv();
+static VTBL_ENTRY vtc_ee36022[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36022[0]),
+ (VTBL_ENTRY)&_ZN7ee360223fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36022[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee360223fooEv,_ZTv0_n12_N7ee360223fooEv),
+ (VTBL_ENTRY)&_ZN6dd60223barEv,
+};
+extern VTBL_ENTRY _ZTV7ee36022[];
+static VTT_ENTRY vtt_ee36022[] = {
+ {&(_ZTV7ee36022[3]), 3,10},
+ {&(_ZTV7ee36022[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee36022[];
+extern VTBL_ENTRY _ZTV7ee36022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36022[];
+static VTBL_ENTRY alt_thunk_names884[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee360223fooEv,_ZTv0_n12_N7ee360223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee360223fooEv,_ZThn8_N7ee360223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36022 = { "ee36022", // class name
+ bases_ee36022, 4,
+ &(vtc_ee36022[0]), // expected_vtbl_contents
+ &(vtt_ee36022[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee36022),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36022),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36022),2, //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 ee46022 : dd6022 {
+ int e;
+ virtual void bar(); // _ZN7ee460223barEv
+ ~ee46022(); // tgen
+ ee46022(); // tgen
+};
+//SIG(1 ee46022) C1{ BC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46022 ::bar(){vfunc_called(this, "_ZN7ee460223barEv");}
+ee46022 ::~ee46022(){ note_dtor("ee46022", this);} // tgen
+ee46022 ::ee46022(){ note_ctor("ee46022", this);} // tgen
+
+static void Test_ee46022()
+{
+ extern Class_Descriptor cd_ee46022;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee46022, buf);
+ ee46022 *dp, &lv = *(dp=new (buf) ee46022());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee46022)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46022)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc022*)(dd6022*), 0, "ee46022");
+ check_base_class_offset(lv, (bb22*)(cc022*)(dd6022*), 0, "ee46022");
+ check_base_class_offset(lv, (cc022*)(dd6022*), 0, "ee46022");
+ check_base_class_offset(lv, (dd6022*), 0, "ee46022");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee46022.e");
+ test_class_info(&lv, &cd_ee46022);
+ dp->~ee46022();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46022(Test_ee46022, "ee46022", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee46022C1Ev();
+extern void _ZN7ee46022D1Ev();
+Name_Map name_map_ee46022[] = {
+ NSPAIR(_ZN7ee46022C1Ev),
+ NSPAIR(_ZN7ee46022D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc022;
+extern VTBL_ENTRY _ZTI5cc022[];
+extern VTBL_ENTRY _ZTV5cc022[];
+extern Class_Descriptor cd_dd6022;
+extern VTBL_ENTRY _ZTI6dd6022[];
+extern VTBL_ENTRY _ZTV6dd6022[];
+static Base_Class bases_ee46022[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc022, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6022, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee46022[];
+extern void _ZN6dd60223fooEv();
+extern void _ZN7ee460223barEv();
+static VTBL_ENTRY vtc_ee46022[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46022[0]),
+ (VTBL_ENTRY)&_ZN6dd60223fooEv,
+ (VTBL_ENTRY)&_ZN7ee460223barEv,
+};
+extern VTBL_ENTRY _ZTI7ee46022[];
+extern VTBL_ENTRY _ZTV7ee46022[];
+Class_Descriptor cd_ee46022 = { "ee46022", // class name
+ bases_ee46022, 4,
+ &(vtc_ee46022[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee46022),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46022),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 ee56022 : virtual dd6022 {
+ int e;
+ virtual void bar(); // _ZN7ee560223barEv
+ ~ee56022(); // tgen
+ ee56022(); // tgen
+};
+//SIG(1 ee56022) C1{ VBC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56022 ::bar(){vfunc_called(this, "_ZN7ee560223barEv");}
+ee56022 ::~ee56022(){ note_dtor("ee56022", this);} // tgen
+ee56022 ::ee56022(){ note_ctor("ee56022", this);} // tgen
+
+static void Test_ee56022()
+{
+ extern Class_Descriptor cd_ee56022;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee56022, buf);
+ ee56022 *dp, &lv = *(dp=new (buf) ee56022());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee56022)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56022)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc022*)(dd6022*), ABISELECT(16,8), "ee56022");
+ check_base_class_offset(lv, (bb22*)(cc022*)(dd6022*), ABISELECT(16,8), "ee56022");
+ check_base_class_offset(lv, (cc022*)(dd6022*), ABISELECT(16,8), "ee56022");
+ check_base_class_offset(lv, (dd6022*), ABISELECT(16,8), "ee56022");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56022.e");
+ test_class_info(&lv, &cd_ee56022);
+ dp->~ee56022();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56022(Test_ee56022, "ee56022", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee56022C1Ev();
+extern void _ZN7ee56022D1Ev();
+Name_Map name_map_ee56022[] = {
+ NSPAIR(_ZN7ee56022C1Ev),
+ NSPAIR(_ZN7ee56022D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc022;
+extern VTBL_ENTRY _ZTI5cc022[];
+extern VTBL_ENTRY _ZTV5cc022[];
+extern Class_Descriptor cd_dd6022;
+extern VTBL_ENTRY _ZTI6dd6022[];
+extern VTBL_ENTRY _ZTV6dd6022[];
+static Base_Class bases_ee56022[] = {
+ // 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_bb22, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc022, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6022, 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 _ZTI7ee56022[];
+extern void _ZN7ee560223barEv();
+extern void _ZN6dd60223fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee560223barEv,_ZTv0_n16_N7ee560223barEv)();
+extern void ABISELECT(_ZThn16_N7ee560223barEv,_ZThn8_N7ee560223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56022[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56022[0]),
+ (VTBL_ENTRY)&_ZN7ee560223barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56022[0]),
+ (VTBL_ENTRY)&_ZN6dd60223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee560223barEv,_ZTv0_n16_N7ee560223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee56022[];
+static VTT_ENTRY vtt_ee56022[] = {
+ {&(_ZTV7ee56022[3]), 3,10},
+ {&(_ZTV7ee56022[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee56022[];
+extern VTBL_ENTRY _ZTV7ee56022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56022[];
+static VTBL_ENTRY alt_thunk_names885[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee560223barEv,_ZTv0_n16_N7ee560223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee560223barEv,_ZThn8_N7ee560223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56022 = { "ee56022", // class name
+ bases_ee56022, 4,
+ &(vtc_ee56022[0]), // expected_vtbl_contents
+ &(vtt_ee56022[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee56022),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56022),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56022),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names885,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee66022 : dd6022 {
+ int e;
+ virtual void foo(); // _ZN7ee660223fooEv
+ virtual void bar(); // _ZN7ee660223barEv
+ ~ee66022(); // tgen
+ ee66022(); // tgen
+};
+//SIG(1 ee66022) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66022 ::foo(){vfunc_called(this, "_ZN7ee660223fooEv");}
+void ee66022 ::bar(){vfunc_called(this, "_ZN7ee660223barEv");}
+ee66022 ::~ee66022(){ note_dtor("ee66022", this);} // tgen
+ee66022 ::ee66022(){ note_ctor("ee66022", this);} // tgen
+
+static void Test_ee66022()
+{
+ extern Class_Descriptor cd_ee66022;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee66022, buf);
+ ee66022 *dp, &lv = *(dp=new (buf) ee66022());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee66022)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66022)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc022*)(dd6022*), 0, "ee66022");
+ check_base_class_offset(lv, (bb22*)(cc022*)(dd6022*), 0, "ee66022");
+ check_base_class_offset(lv, (cc022*)(dd6022*), 0, "ee66022");
+ check_base_class_offset(lv, (dd6022*), 0, "ee66022");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee66022.e");
+ test_class_info(&lv, &cd_ee66022);
+ dp->~ee66022();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66022(Test_ee66022, "ee66022", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee66022C1Ev();
+extern void _ZN7ee66022D1Ev();
+Name_Map name_map_ee66022[] = {
+ NSPAIR(_ZN7ee66022C1Ev),
+ NSPAIR(_ZN7ee66022D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc022;
+extern VTBL_ENTRY _ZTI5cc022[];
+extern VTBL_ENTRY _ZTV5cc022[];
+extern Class_Descriptor cd_dd6022;
+extern VTBL_ENTRY _ZTI6dd6022[];
+extern VTBL_ENTRY _ZTV6dd6022[];
+static Base_Class bases_ee66022[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc022, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6022, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee66022[];
+extern void _ZN7ee660223fooEv();
+extern void _ZN7ee660223barEv();
+static VTBL_ENTRY vtc_ee66022[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66022[0]),
+ (VTBL_ENTRY)&_ZN7ee660223fooEv,
+ (VTBL_ENTRY)&_ZN7ee660223barEv,
+};
+extern VTBL_ENTRY _ZTI7ee66022[];
+extern VTBL_ENTRY _ZTV7ee66022[];
+Class_Descriptor cd_ee66022 = { "ee66022", // class name
+ bases_ee66022, 4,
+ &(vtc_ee66022[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee66022),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66022),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 ee76022 : virtual dd6022 {
+ int e;
+ virtual void foo(); // _ZN7ee760223fooEv
+ virtual void bar(); // _ZN7ee760223barEv
+ ~ee76022(); // tgen
+ ee76022(); // tgen
+};
+//SIG(1 ee76022) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76022 ::foo(){vfunc_called(this, "_ZN7ee760223fooEv");}
+void ee76022 ::bar(){vfunc_called(this, "_ZN7ee760223barEv");}
+ee76022 ::~ee76022(){ note_dtor("ee76022", this);} // tgen
+ee76022 ::ee76022(){ note_ctor("ee76022", this);} // tgen
+
+static void Test_ee76022()
+{
+ extern Class_Descriptor cd_ee76022;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee76022, buf);
+ ee76022 *dp, &lv = *(dp=new (buf) ee76022());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee76022)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76022)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc022*)(dd6022*), ABISELECT(16,8), "ee76022");
+ check_base_class_offset(lv, (bb22*)(cc022*)(dd6022*), ABISELECT(16,8), "ee76022");
+ check_base_class_offset(lv, (cc022*)(dd6022*), ABISELECT(16,8), "ee76022");
+ check_base_class_offset(lv, (dd6022*), ABISELECT(16,8), "ee76022");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76022.e");
+ test_class_info(&lv, &cd_ee76022);
+ dp->~ee76022();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76022(Test_ee76022, "ee76022", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee76022C1Ev();
+extern void _ZN7ee76022D1Ev();
+Name_Map name_map_ee76022[] = {
+ NSPAIR(_ZN7ee76022C1Ev),
+ NSPAIR(_ZN7ee76022D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc022;
+extern VTBL_ENTRY _ZTI5cc022[];
+extern VTBL_ENTRY _ZTV5cc022[];
+extern Class_Descriptor cd_dd6022;
+extern VTBL_ENTRY _ZTI6dd6022[];
+extern VTBL_ENTRY _ZTV6dd6022[];
+static Base_Class bases_ee76022[] = {
+ // 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_bb22, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc022, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6022, 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 _ZTI7ee76022[];
+extern void _ZN7ee760223fooEv();
+extern void _ZN7ee760223barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee760223fooEv,_ZTv0_n12_N7ee760223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee760223fooEv,_ZThn8_N7ee760223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee760223barEv,_ZTv0_n16_N7ee760223barEv)();
+extern void ABISELECT(_ZThn16_N7ee760223barEv,_ZThn8_N7ee760223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76022[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76022[0]),
+ (VTBL_ENTRY)&_ZN7ee760223fooEv,
+ (VTBL_ENTRY)&_ZN7ee760223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76022[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee760223fooEv,_ZTv0_n12_N7ee760223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee760223barEv,_ZTv0_n16_N7ee760223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee76022[];
+static VTT_ENTRY vtt_ee76022[] = {
+ {&(_ZTV7ee76022[3]), 3,11},
+ {&(_ZTV7ee76022[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee76022[];
+extern VTBL_ENTRY _ZTV7ee76022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76022[];
+static VTBL_ENTRY alt_thunk_names886[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee760223barEv,_ZTv0_n16_N7ee760223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee760223barEv,_ZThn8_N7ee760223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee760223fooEv,_ZTv0_n12_N7ee760223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee760223fooEv,_ZThn8_N7ee760223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76022 = { "ee76022", // class name
+ bases_ee76022, 4,
+ &(vtc_ee76022[0]), // expected_vtbl_contents
+ &(vtt_ee76022[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee76022),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76022),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76022),2, //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 dd7022 : virtual cc022 {
+ int d;
+ virtual void bar(); // _ZN6dd70223barEv
+ virtual void foo(); // _ZN6dd70223fooEv
+ ~dd7022(); // tgen
+ dd7022(); // tgen
+};
+//SIG(-1 dd7022) C1{ VBC2{ BC3{ BC4{ v2 v1 Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void dd7022 ::bar(){vfunc_called(this, "_ZN6dd70223barEv");}
+void dd7022 ::foo(){vfunc_called(this, "_ZN6dd70223fooEv");}
+dd7022 ::~dd7022(){ note_dtor("dd7022", this);} // tgen
+dd7022 ::dd7022(){ note_ctor("dd7022", this);} // tgen
+
+static void Test_dd7022()
+{
+ extern Class_Descriptor cd_dd7022;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd7022, buf);
+ dd7022 *dp, &lv = *(dp=new (buf) dd7022());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd7022)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7022)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc022*), ABISELECT(16,8), "dd7022");
+ check_base_class_offset(lv, (bb22*)(cc022*), ABISELECT(16,8), "dd7022");
+ check_base_class_offset(lv, (cc022*), ABISELECT(16,8), "dd7022");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7022.d");
+ test_class_info(&lv, &cd_dd7022);
+ dp->~dd7022();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7022(Test_dd7022, "dd7022", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd7022C1Ev();
+extern void _ZN6dd7022D1Ev();
+Name_Map name_map_dd7022[] = {
+ NSPAIR(_ZN6dd7022C1Ev),
+ NSPAIR(_ZN6dd7022D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc022;
+extern VTBL_ENTRY _ZTI5cc022[];
+extern VTBL_ENTRY _ZTV5cc022[];
+static Base_Class bases_dd7022[] = {
+ // 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_bb22, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc022, 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 _ZTI6dd7022[];
+extern void _ZN6dd70223barEv();
+extern void _ZN6dd70223fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd70223fooEv,_ZTv0_n12_N6dd70223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70223fooEv,_ZThn8_N6dd70223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70223barEv,_ZTv0_n16_N6dd70223barEv)();
+extern void ABISELECT(_ZThn16_N6dd70223barEv,_ZThn8_N6dd70223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7022[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7022[0]),
+ (VTBL_ENTRY)&_ZN6dd70223barEv,
+ (VTBL_ENTRY)&_ZN6dd70223fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7022[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70223fooEv,_ZTv0_n12_N6dd70223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70223barEv,_ZTv0_n16_N6dd70223barEv),
+};
+extern VTBL_ENTRY _ZTV6dd7022[];
+static VTT_ENTRY vtt_dd7022[] = {
+ {&(_ZTV6dd7022[3]), 3,11},
+ {&(_ZTV6dd7022[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd7022[];
+extern VTBL_ENTRY _ZTV6dd7022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7022[];
+static VTBL_ENTRY alt_thunk_names887[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70223barEv,_ZTv0_n16_N6dd70223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70223barEv,_ZThn8_N6dd70223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70223fooEv,_ZTv0_n12_N6dd70223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70223fooEv,_ZThn8_N6dd70223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7022 = { "dd7022", // class name
+ bases_dd7022, 3,
+ &(vtc_dd7022[0]), // expected_vtbl_contents
+ &(vtt_dd7022[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd7022),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7022),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7022),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names887,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07022 : dd7022 {
+ int e;
+ ~ee07022(); // tgen
+ ee07022(); // tgen
+};
+//SIG(1 ee07022) C1{ BC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee07022 ::~ee07022(){ note_dtor("ee07022", this);} // tgen
+ee07022 ::ee07022(){ note_ctor("ee07022", this);} // tgen
+
+static void Test_ee07022()
+{
+ extern Class_Descriptor cd_ee07022;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee07022, buf);
+ ee07022 *dp, &lv = *(dp=new (buf) ee07022());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee07022)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07022)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc022*), ABISELECT(16,12), "ee07022");
+ check_base_class_offset(lv, (bb22*)(cc022*), ABISELECT(16,12), "ee07022");
+ check_base_class_offset(lv, (cc022*)(dd7022*), ABISELECT(16,12), "ee07022");
+ check_base_class_offset(lv, (dd7022*), 0, "ee07022");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07022.e");
+ test_class_info(&lv, &cd_ee07022);
+ dp->~ee07022();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07022(Test_ee07022, "ee07022", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee07022C1Ev();
+extern void _ZN7ee07022D1Ev();
+Name_Map name_map_ee07022[] = {
+ NSPAIR(_ZN7ee07022C1Ev),
+ NSPAIR(_ZN7ee07022D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc022;
+extern VTBL_ENTRY _ZTI5cc022[];
+extern VTBL_ENTRY _ZTV5cc022[];
+extern Class_Descriptor cd_dd7022;
+extern VTBL_ENTRY _ZTI6dd7022[];
+extern VTBL_ENTRY _ZTV6dd7022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7022[];
+static Base_Class bases_ee07022[] = {
+ // 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_bb22, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc022, 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_dd7022, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07022[];
+extern void _ZN6dd70223barEv();
+extern void _ZN6dd70223fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd70223fooEv,_ZTv0_n12_N6dd70223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70223fooEv,_ZThn12_N6dd70223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70223barEv,_ZTv0_n16_N6dd70223barEv)();
+extern void ABISELECT(_ZThn16_N6dd70223barEv,_ZThn12_N6dd70223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07022[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07022[0]),
+ (VTBL_ENTRY)&_ZN6dd70223barEv,
+ (VTBL_ENTRY)&_ZN6dd70223fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07022[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70223fooEv,_ZTv0_n12_N6dd70223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70223barEv,_ZTv0_n16_N6dd70223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee07022[];
+extern void _ZN6dd70223barEv();
+extern void _ZN6dd70223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7022__7ee07022[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7022[0]),
+ (VTBL_ENTRY)&_ZN6dd70223barEv,
+ (VTBL_ENTRY)&_ZN6dd70223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd70223fooEv,_ZTv0_n12_N6dd70223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70223fooEv,_ZThn12_N6dd70223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70223barEv,_ZTv0_n16_N6dd70223barEv)();
+extern void ABISELECT(_ZThn16_N6dd70223barEv,_ZThn12_N6dd70223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb225cc022__6dd7022__7ee07022[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7022[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70223fooEv,_ZTv0_n12_N6dd70223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70223barEv,_ZTv0_n16_N6dd70223barEv),
+};
+static VTT_ENTRY vtt_ee07022[] = {
+ {&(_ZTV7ee07022[3]), 3,11},
+ {&(_tg__ZTV6dd7022__7ee07022[3]), 3,5},
+ {&(_tg__ZTV4bb225cc022__6dd7022__7ee07022[4]), 4,6},
+ {&(_ZTV7ee07022[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee07022[];
+extern VTBL_ENTRY _ZTV7ee07022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07022[];
+static VTBL_ENTRY alt_thunk_names888[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70223barEv,_ZTv0_n16_N6dd70223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70223barEv,_ZThn12_N6dd70223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70223barEv,_ZThn12_N6dd70223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70223fooEv,_ZTv0_n12_N6dd70223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70223fooEv,_ZThn12_N6dd70223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70223fooEv,_ZThn12_N6dd70223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07022 = { "ee07022", // class name
+ bases_ee07022, 4,
+ &(vtc_ee07022[0]), // expected_vtbl_contents
+ &(vtt_ee07022[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee07022),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07022),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07022),4, //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 ee17022 : virtual dd7022 {
+ int e;
+ ~ee17022(); // tgen
+ ee17022(); // tgen
+};
+//SIG(1 ee17022) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee17022 ::~ee17022(){ note_dtor("ee17022", this);} // tgen
+ee17022 ::ee17022(){ note_ctor("ee17022", this);} // tgen
+
+static void Test_ee17022()
+{
+ extern Class_Descriptor cd_ee17022;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee17022, buf);
+ ee17022 *dp, &lv = *(dp=new (buf) ee17022());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee17022)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17022)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc022*), ABISELECT(32,16), "ee17022");
+ check_base_class_offset(lv, (bb22*)(cc022*), ABISELECT(32,16), "ee17022");
+ check_base_class_offset(lv, (cc022*)(dd7022*), ABISELECT(32,16), "ee17022");
+ check_base_class_offset(lv, (dd7022*), ABISELECT(16,8), "ee17022");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17022.e");
+ test_class_info(&lv, &cd_ee17022);
+ dp->~ee17022();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17022(Test_ee17022, "ee17022", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee17022C1Ev();
+extern void _ZN7ee17022D1Ev();
+Name_Map name_map_ee17022[] = {
+ NSPAIR(_ZN7ee17022C1Ev),
+ NSPAIR(_ZN7ee17022D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc022;
+extern VTBL_ENTRY _ZTI5cc022[];
+extern VTBL_ENTRY _ZTV5cc022[];
+extern Class_Descriptor cd_dd7022;
+extern VTBL_ENTRY _ZTI6dd7022[];
+extern VTBL_ENTRY _ZTV6dd7022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7022[];
+static Base_Class bases_ee17022[] = {
+ // 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_bb22, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc022, 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_dd7022, 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 _ZTI7ee17022[];
+extern void _ZN6dd70223barEv();
+extern void _ZN6dd70223fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd70223fooEv,_ZTv0_n12_N6dd70223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70223fooEv,_ZThn8_N6dd70223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70223barEv,_ZTv0_n16_N6dd70223barEv)();
+extern void ABISELECT(_ZThn16_N6dd70223barEv,_ZThn8_N6dd70223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17022[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17022[0]),
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17022[0]),
+ (VTBL_ENTRY)&_ZN6dd70223barEv,
+ (VTBL_ENTRY)&_ZN6dd70223fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17022[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70223fooEv,_ZTv0_n12_N6dd70223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70223barEv,_ZTv0_n16_N6dd70223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee17022[];
+extern void _ZN6dd70223barEv();
+extern void _ZN6dd70223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7022__7ee17022[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7022[0]),
+ (VTBL_ENTRY)&_ZN6dd70223barEv,
+ (VTBL_ENTRY)&_ZN6dd70223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd70223fooEv,_ZTv0_n12_N6dd70223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70223fooEv,_ZThn8_N6dd70223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70223barEv,_ZTv0_n16_N6dd70223barEv)();
+extern void ABISELECT(_ZThn16_N6dd70223barEv,_ZThn8_N6dd70223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb225cc022__6dd7022__7ee17022[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7022[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70223fooEv,_ZTv0_n12_N6dd70223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70223barEv,_ZTv0_n16_N6dd70223barEv),
+};
+static VTT_ENTRY vtt_ee17022[] = {
+ {&(_ZTV7ee17022[4]), 4,17},
+ {&(_ZTV7ee17022[9]), 9,17},
+ {&(_ZTV7ee17022[15]), 15,17},
+ {&(_tg__ZTV6dd7022__7ee17022[3]), 3,5},
+ {&(_tg__ZTV4bb225cc022__6dd7022__7ee17022[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee17022[];
+extern VTBL_ENTRY _ZTV7ee17022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17022[];
+static VTBL_ENTRY alt_thunk_names889[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70223barEv,_ZTv0_n16_N6dd70223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70223barEv,_ZThn8_N6dd70223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70223barEv,_ZThn8_N6dd70223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70223fooEv,_ZTv0_n12_N6dd70223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70223fooEv,_ZThn8_N6dd70223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70223fooEv,_ZThn8_N6dd70223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17022 = { "ee17022", // class name
+ bases_ee17022, 4,
+ &(vtc_ee17022[0]), // expected_vtbl_contents
+ &(vtt_ee17022[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee17022),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17022),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17022),5, //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 ee27022 : dd7022 {
+ int e;
+ virtual void foo(); // _ZN7ee270223fooEv
+ ~ee27022(); // tgen
+ ee27022(); // tgen
+};
+//SIG(1 ee27022) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27022 ::foo(){vfunc_called(this, "_ZN7ee270223fooEv");}
+ee27022 ::~ee27022(){ note_dtor("ee27022", this);} // tgen
+ee27022 ::ee27022(){ note_ctor("ee27022", this);} // tgen
+
+static void Test_ee27022()
+{
+ extern Class_Descriptor cd_ee27022;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee27022, buf);
+ ee27022 *dp, &lv = *(dp=new (buf) ee27022());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee27022)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27022)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc022*), ABISELECT(16,12), "ee27022");
+ check_base_class_offset(lv, (bb22*)(cc022*), ABISELECT(16,12), "ee27022");
+ check_base_class_offset(lv, (cc022*)(dd7022*), ABISELECT(16,12), "ee27022");
+ check_base_class_offset(lv, (dd7022*), 0, "ee27022");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27022.e");
+ test_class_info(&lv, &cd_ee27022);
+ dp->~ee27022();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27022(Test_ee27022, "ee27022", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee27022C1Ev();
+extern void _ZN7ee27022D1Ev();
+Name_Map name_map_ee27022[] = {
+ NSPAIR(_ZN7ee27022C1Ev),
+ NSPAIR(_ZN7ee27022D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc022;
+extern VTBL_ENTRY _ZTI5cc022[];
+extern VTBL_ENTRY _ZTV5cc022[];
+extern Class_Descriptor cd_dd7022;
+extern VTBL_ENTRY _ZTI6dd7022[];
+extern VTBL_ENTRY _ZTV6dd7022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7022[];
+static Base_Class bases_ee27022[] = {
+ // 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_bb22, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc022, 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_dd7022, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27022[];
+extern void _ZN6dd70223barEv();
+extern void _ZN7ee270223fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee270223fooEv,_ZTv0_n12_N7ee270223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee270223fooEv,_ZThn12_N7ee270223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70223barEv,_ZTv0_n16_N6dd70223barEv)();
+extern void ABISELECT(_ZThn16_N6dd70223barEv,_ZThn12_N6dd70223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27022[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27022[0]),
+ (VTBL_ENTRY)&_ZN6dd70223barEv,
+ (VTBL_ENTRY)&_ZN7ee270223fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27022[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee270223fooEv,_ZTv0_n12_N7ee270223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70223barEv,_ZTv0_n16_N6dd70223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee27022[];
+extern void _ZN6dd70223barEv();
+extern void _ZN6dd70223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7022__7ee27022[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7022[0]),
+ (VTBL_ENTRY)&_ZN6dd70223barEv,
+ (VTBL_ENTRY)&_ZN6dd70223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd70223fooEv,_ZTv0_n12_N6dd70223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70223fooEv,_ZThn12_N6dd70223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70223barEv,_ZTv0_n16_N6dd70223barEv)();
+extern void ABISELECT(_ZThn16_N6dd70223barEv,_ZThn12_N6dd70223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb225cc022__6dd7022__7ee27022[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7022[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70223fooEv,_ZTv0_n12_N6dd70223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70223barEv,_ZTv0_n16_N6dd70223barEv),
+};
+static VTT_ENTRY vtt_ee27022[] = {
+ {&(_ZTV7ee27022[3]), 3,11},
+ {&(_tg__ZTV6dd7022__7ee27022[3]), 3,5},
+ {&(_tg__ZTV4bb225cc022__6dd7022__7ee27022[4]), 4,6},
+ {&(_ZTV7ee27022[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee27022[];
+extern VTBL_ENTRY _ZTV7ee27022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27022[];
+static VTBL_ENTRY alt_thunk_names890[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70223fooEv,_ZTv0_n12_N6dd70223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70223fooEv,_ZThn12_N6dd70223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70223barEv,_ZTv0_n16_N6dd70223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70223barEv,_ZThn12_N6dd70223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70223barEv,_ZThn12_N6dd70223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee270223fooEv,_ZTv0_n12_N7ee270223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee270223fooEv,_ZThn12_N7ee270223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27022 = { "ee27022", // class name
+ bases_ee27022, 4,
+ &(vtc_ee27022[0]), // expected_vtbl_contents
+ &(vtt_ee27022[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee27022),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27022),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27022),4, //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 ee37022 : virtual dd7022 {
+ int e;
+ virtual void foo(); // _ZN7ee370223fooEv
+ ~ee37022(); // tgen
+ ee37022(); // tgen
+};
+//SIG(1 ee37022) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37022 ::foo(){vfunc_called(this, "_ZN7ee370223fooEv");}
+ee37022 ::~ee37022(){ note_dtor("ee37022", this);} // tgen
+ee37022 ::ee37022(){ note_ctor("ee37022", this);} // tgen
+
+static void Test_ee37022()
+{
+ extern Class_Descriptor cd_ee37022;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee37022, buf);
+ ee37022 *dp, &lv = *(dp=new (buf) ee37022());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee37022)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37022)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc022*), ABISELECT(32,16), "ee37022");
+ check_base_class_offset(lv, (bb22*)(cc022*), ABISELECT(32,16), "ee37022");
+ check_base_class_offset(lv, (cc022*)(dd7022*), ABISELECT(32,16), "ee37022");
+ check_base_class_offset(lv, (dd7022*), ABISELECT(16,8), "ee37022");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37022.e");
+ test_class_info(&lv, &cd_ee37022);
+ dp->~ee37022();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37022(Test_ee37022, "ee37022", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee37022C1Ev();
+extern void _ZN7ee37022D1Ev();
+Name_Map name_map_ee37022[] = {
+ NSPAIR(_ZN7ee37022C1Ev),
+ NSPAIR(_ZN7ee37022D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc022;
+extern VTBL_ENTRY _ZTI5cc022[];
+extern VTBL_ENTRY _ZTV5cc022[];
+extern Class_Descriptor cd_dd7022;
+extern VTBL_ENTRY _ZTI6dd7022[];
+extern VTBL_ENTRY _ZTV6dd7022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7022[];
+static Base_Class bases_ee37022[] = {
+ // 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_bb22, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc022, 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_dd7022, 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 _ZTI7ee37022[];
+extern void _ZN7ee370223fooEv();
+extern void _ZN6dd70223barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee370223fooEv,_ZTv0_n20_N7ee370223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee370223fooEv,_ZThn8_N7ee370223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee370223fooEv,_ZTv0_n12_N7ee370223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee370223fooEv,_ZThn16_N7ee370223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70223barEv,_ZTv0_n16_N6dd70223barEv)();
+extern void ABISELECT(_ZThn16_N6dd70223barEv,_ZThn8_N6dd70223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37022[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37022[0]),
+ (VTBL_ENTRY)&_ZN7ee370223fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37022[0]),
+ (VTBL_ENTRY)&_ZN6dd70223barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee370223fooEv,_ZTv0_n20_N7ee370223fooEv),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37022[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee370223fooEv,_ZTv0_n12_N7ee370223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70223barEv,_ZTv0_n16_N6dd70223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee37022[];
+extern void _ZN6dd70223barEv();
+extern void _ZN6dd70223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7022__7ee37022[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7022[0]),
+ (VTBL_ENTRY)&_ZN6dd70223barEv,
+ (VTBL_ENTRY)&_ZN6dd70223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd70223fooEv,_ZTv0_n12_N6dd70223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70223fooEv,_ZThn8_N6dd70223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70223barEv,_ZTv0_n16_N6dd70223barEv)();
+extern void ABISELECT(_ZThn16_N6dd70223barEv,_ZThn8_N6dd70223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb225cc022__6dd7022__7ee37022[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7022[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70223fooEv,_ZTv0_n12_N6dd70223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70223barEv,_ZTv0_n16_N6dd70223barEv),
+};
+static VTT_ENTRY vtt_ee37022[] = {
+ {&(_ZTV7ee37022[4]), 4,18},
+ {&(_ZTV7ee37022[10]), 10,18},
+ {&(_ZTV7ee37022[16]), 16,18},
+ {&(_tg__ZTV6dd7022__7ee37022[3]), 3,5},
+ {&(_tg__ZTV4bb225cc022__6dd7022__7ee37022[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee37022[];
+extern VTBL_ENTRY _ZTV7ee37022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37022[];
+static VTBL_ENTRY alt_thunk_names891[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70223fooEv,_ZTv0_n12_N6dd70223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70223fooEv,_ZThn8_N6dd70223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70223barEv,_ZTv0_n16_N6dd70223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70223barEv,_ZThn8_N6dd70223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70223barEv,_ZThn8_N6dd70223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee370223fooEv,_ZTv0_n12_N7ee370223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee370223fooEv,_ZThn16_N7ee370223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee370223fooEv,_ZTv0_n20_N7ee370223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee370223fooEv,_ZThn8_N7ee370223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37022 = { "ee37022", // class name
+ bases_ee37022, 4,
+ &(vtc_ee37022[0]), // expected_vtbl_contents
+ &(vtt_ee37022[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee37022),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37022),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37022),5, //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 ee47022 : dd7022 {
+ int e;
+ virtual void bar(); // _ZN7ee470223barEv
+ ~ee47022(); // tgen
+ ee47022(); // tgen
+};
+//SIG(1 ee47022) C1{ BC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47022 ::bar(){vfunc_called(this, "_ZN7ee470223barEv");}
+ee47022 ::~ee47022(){ note_dtor("ee47022", this);} // tgen
+ee47022 ::ee47022(){ note_ctor("ee47022", this);} // tgen
+
+static void Test_ee47022()
+{
+ extern Class_Descriptor cd_ee47022;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee47022, buf);
+ ee47022 *dp, &lv = *(dp=new (buf) ee47022());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee47022)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47022)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc022*), ABISELECT(16,12), "ee47022");
+ check_base_class_offset(lv, (bb22*)(cc022*), ABISELECT(16,12), "ee47022");
+ check_base_class_offset(lv, (cc022*)(dd7022*), ABISELECT(16,12), "ee47022");
+ check_base_class_offset(lv, (dd7022*), 0, "ee47022");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47022.e");
+ test_class_info(&lv, &cd_ee47022);
+ dp->~ee47022();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47022(Test_ee47022, "ee47022", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee47022C1Ev();
+extern void _ZN7ee47022D1Ev();
+Name_Map name_map_ee47022[] = {
+ NSPAIR(_ZN7ee47022C1Ev),
+ NSPAIR(_ZN7ee47022D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc022;
+extern VTBL_ENTRY _ZTI5cc022[];
+extern VTBL_ENTRY _ZTV5cc022[];
+extern Class_Descriptor cd_dd7022;
+extern VTBL_ENTRY _ZTI6dd7022[];
+extern VTBL_ENTRY _ZTV6dd7022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7022[];
+static Base_Class bases_ee47022[] = {
+ // 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_bb22, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc022, 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_dd7022, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47022[];
+extern void _ZN7ee470223barEv();
+extern void _ZN6dd70223fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd70223fooEv,_ZTv0_n12_N6dd70223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70223fooEv,_ZThn12_N6dd70223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee470223barEv,_ZTv0_n16_N7ee470223barEv)();
+extern void ABISELECT(_ZThn16_N7ee470223barEv,_ZThn12_N7ee470223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47022[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47022[0]),
+ (VTBL_ENTRY)&_ZN7ee470223barEv,
+ (VTBL_ENTRY)&_ZN6dd70223fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47022[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70223fooEv,_ZTv0_n12_N6dd70223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee470223barEv,_ZTv0_n16_N7ee470223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee47022[];
+extern void _ZN6dd70223barEv();
+extern void _ZN6dd70223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7022__7ee47022[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7022[0]),
+ (VTBL_ENTRY)&_ZN6dd70223barEv,
+ (VTBL_ENTRY)&_ZN6dd70223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd70223fooEv,_ZTv0_n12_N6dd70223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70223fooEv,_ZThn12_N6dd70223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70223barEv,_ZTv0_n16_N6dd70223barEv)();
+extern void ABISELECT(_ZThn16_N6dd70223barEv,_ZThn12_N6dd70223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb225cc022__6dd7022__7ee47022[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7022[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70223fooEv,_ZTv0_n12_N6dd70223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70223barEv,_ZTv0_n16_N6dd70223barEv),
+};
+static VTT_ENTRY vtt_ee47022[] = {
+ {&(_ZTV7ee47022[3]), 3,11},
+ {&(_tg__ZTV6dd7022__7ee47022[3]), 3,5},
+ {&(_tg__ZTV4bb225cc022__6dd7022__7ee47022[4]), 4,6},
+ {&(_ZTV7ee47022[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee47022[];
+extern VTBL_ENTRY _ZTV7ee47022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47022[];
+static VTBL_ENTRY alt_thunk_names892[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70223barEv,_ZTv0_n16_N6dd70223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70223barEv,_ZThn12_N6dd70223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee470223barEv,_ZTv0_n16_N7ee470223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee470223barEv,_ZThn12_N7ee470223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70223fooEv,_ZTv0_n12_N6dd70223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70223fooEv,_ZThn12_N6dd70223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70223fooEv,_ZThn12_N6dd70223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47022 = { "ee47022", // class name
+ bases_ee47022, 4,
+ &(vtc_ee47022[0]), // expected_vtbl_contents
+ &(vtt_ee47022[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee47022),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47022),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47022),4, //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 ee57022 : virtual dd7022 {
+ int e;
+ virtual void bar(); // _ZN7ee570223barEv
+ ~ee57022(); // tgen
+ ee57022(); // tgen
+};
+//SIG(1 ee57022) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57022 ::bar(){vfunc_called(this, "_ZN7ee570223barEv");}
+ee57022 ::~ee57022(){ note_dtor("ee57022", this);} // tgen
+ee57022 ::ee57022(){ note_ctor("ee57022", this);} // tgen
+
+static void Test_ee57022()
+{
+ extern Class_Descriptor cd_ee57022;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee57022, buf);
+ ee57022 *dp, &lv = *(dp=new (buf) ee57022());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee57022)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57022)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc022*), ABISELECT(32,16), "ee57022");
+ check_base_class_offset(lv, (bb22*)(cc022*), ABISELECT(32,16), "ee57022");
+ check_base_class_offset(lv, (cc022*)(dd7022*), ABISELECT(32,16), "ee57022");
+ check_base_class_offset(lv, (dd7022*), ABISELECT(16,8), "ee57022");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57022.e");
+ test_class_info(&lv, &cd_ee57022);
+ dp->~ee57022();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57022(Test_ee57022, "ee57022", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee57022C1Ev();
+extern void _ZN7ee57022D1Ev();
+Name_Map name_map_ee57022[] = {
+ NSPAIR(_ZN7ee57022C1Ev),
+ NSPAIR(_ZN7ee57022D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc022;
+extern VTBL_ENTRY _ZTI5cc022[];
+extern VTBL_ENTRY _ZTV5cc022[];
+extern Class_Descriptor cd_dd7022;
+extern VTBL_ENTRY _ZTI6dd7022[];
+extern VTBL_ENTRY _ZTV6dd7022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7022[];
+static Base_Class bases_ee57022[] = {
+ // 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_bb22, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc022, 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_dd7022, 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 _ZTI7ee57022[];
+extern void _ZN7ee570223barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee570223barEv,_ZTv0_n16_N7ee570223barEv)();
+extern void ABISELECT(_ZThn16_N7ee570223barEv,_ZThn8_N7ee570223barEv)() __attribute__((weak));
+extern void _ZN6dd70223fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd70223fooEv,_ZTv0_n12_N6dd70223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70223fooEv,_ZThn8_N6dd70223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee570223barEv,_ZTv0_n16_N7ee570223barEv)();
+extern void ABISELECT(_ZThn32_N7ee570223barEv,_ZThn16_N7ee570223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57022[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57022[0]),
+ (VTBL_ENTRY)&_ZN7ee570223barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57022[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee570223barEv,_ZTv0_n16_N7ee570223barEv),
+ (VTBL_ENTRY)&_ZN6dd70223fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57022[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70223fooEv,_ZTv0_n12_N6dd70223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee570223barEv,_ZTv0_n16_N7ee570223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee57022[];
+extern void _ZN6dd70223barEv();
+extern void _ZN6dd70223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7022__7ee57022[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7022[0]),
+ (VTBL_ENTRY)&_ZN6dd70223barEv,
+ (VTBL_ENTRY)&_ZN6dd70223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd70223fooEv,_ZTv0_n12_N6dd70223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70223fooEv,_ZThn8_N6dd70223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70223barEv,_ZTv0_n16_N6dd70223barEv)();
+extern void ABISELECT(_ZThn16_N6dd70223barEv,_ZThn8_N6dd70223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb225cc022__6dd7022__7ee57022[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7022[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70223fooEv,_ZTv0_n12_N6dd70223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70223barEv,_ZTv0_n16_N6dd70223barEv),
+};
+static VTT_ENTRY vtt_ee57022[] = {
+ {&(_ZTV7ee57022[4]), 4,18},
+ {&(_ZTV7ee57022[10]), 10,18},
+ {&(_ZTV7ee57022[16]), 16,18},
+ {&(_tg__ZTV6dd7022__7ee57022[3]), 3,5},
+ {&(_tg__ZTV4bb225cc022__6dd7022__7ee57022[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee57022[];
+extern VTBL_ENTRY _ZTV7ee57022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57022[];
+static VTBL_ENTRY alt_thunk_names893[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70223barEv,_ZTv0_n16_N6dd70223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70223barEv,_ZThn8_N6dd70223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70223fooEv,_ZTv0_n12_N6dd70223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70223fooEv,_ZThn8_N6dd70223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70223fooEv,_ZThn8_N6dd70223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee570223barEv,_ZTv0_n16_N7ee570223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee570223barEv,_ZThn16_N7ee570223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee570223barEv,_ZThn8_N7ee570223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57022 = { "ee57022", // class name
+ bases_ee57022, 4,
+ &(vtc_ee57022[0]), // expected_vtbl_contents
+ &(vtt_ee57022[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee57022),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57022),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57022),5, //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 ee67022 : dd7022 {
+ int e;
+ virtual void foo(); // _ZN7ee670223fooEv
+ virtual void bar(); // _ZN7ee670223barEv
+ ~ee67022(); // tgen
+ ee67022(); // tgen
+};
+//SIG(1 ee67022) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67022 ::foo(){vfunc_called(this, "_ZN7ee670223fooEv");}
+void ee67022 ::bar(){vfunc_called(this, "_ZN7ee670223barEv");}
+ee67022 ::~ee67022(){ note_dtor("ee67022", this);} // tgen
+ee67022 ::ee67022(){ note_ctor("ee67022", this);} // tgen
+
+static void Test_ee67022()
+{
+ extern Class_Descriptor cd_ee67022;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee67022, buf);
+ ee67022 *dp, &lv = *(dp=new (buf) ee67022());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee67022)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67022)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc022*), ABISELECT(16,12), "ee67022");
+ check_base_class_offset(lv, (bb22*)(cc022*), ABISELECT(16,12), "ee67022");
+ check_base_class_offset(lv, (cc022*)(dd7022*), ABISELECT(16,12), "ee67022");
+ check_base_class_offset(lv, (dd7022*), 0, "ee67022");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67022.e");
+ test_class_info(&lv, &cd_ee67022);
+ dp->~ee67022();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67022(Test_ee67022, "ee67022", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee67022C1Ev();
+extern void _ZN7ee67022D1Ev();
+Name_Map name_map_ee67022[] = {
+ NSPAIR(_ZN7ee67022C1Ev),
+ NSPAIR(_ZN7ee67022D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc022;
+extern VTBL_ENTRY _ZTI5cc022[];
+extern VTBL_ENTRY _ZTV5cc022[];
+extern Class_Descriptor cd_dd7022;
+extern VTBL_ENTRY _ZTI6dd7022[];
+extern VTBL_ENTRY _ZTV6dd7022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7022[];
+static Base_Class bases_ee67022[] = {
+ // 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_bb22, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc022, 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_dd7022, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67022[];
+extern void _ZN7ee670223barEv();
+extern void _ZN7ee670223fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee670223fooEv,_ZTv0_n12_N7ee670223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee670223fooEv,_ZThn12_N7ee670223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee670223barEv,_ZTv0_n16_N7ee670223barEv)();
+extern void ABISELECT(_ZThn16_N7ee670223barEv,_ZThn12_N7ee670223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67022[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67022[0]),
+ (VTBL_ENTRY)&_ZN7ee670223barEv,
+ (VTBL_ENTRY)&_ZN7ee670223fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67022[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee670223fooEv,_ZTv0_n12_N7ee670223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee670223barEv,_ZTv0_n16_N7ee670223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee67022[];
+extern void _ZN6dd70223barEv();
+extern void _ZN6dd70223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7022__7ee67022[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7022[0]),
+ (VTBL_ENTRY)&_ZN6dd70223barEv,
+ (VTBL_ENTRY)&_ZN6dd70223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd70223fooEv,_ZTv0_n12_N6dd70223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70223fooEv,_ZThn12_N6dd70223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70223barEv,_ZTv0_n16_N6dd70223barEv)();
+extern void ABISELECT(_ZThn16_N6dd70223barEv,_ZThn12_N6dd70223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb225cc022__6dd7022__7ee67022[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7022[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70223fooEv,_ZTv0_n12_N6dd70223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70223barEv,_ZTv0_n16_N6dd70223barEv),
+};
+static VTT_ENTRY vtt_ee67022[] = {
+ {&(_ZTV7ee67022[3]), 3,11},
+ {&(_tg__ZTV6dd7022__7ee67022[3]), 3,5},
+ {&(_tg__ZTV4bb225cc022__6dd7022__7ee67022[4]), 4,6},
+ {&(_ZTV7ee67022[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee67022[];
+extern VTBL_ENTRY _ZTV7ee67022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67022[];
+static VTBL_ENTRY alt_thunk_names894[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70223barEv,_ZTv0_n16_N6dd70223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70223barEv,_ZThn12_N6dd70223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70223fooEv,_ZTv0_n12_N6dd70223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70223fooEv,_ZThn12_N6dd70223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee670223barEv,_ZTv0_n16_N7ee670223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee670223barEv,_ZThn12_N7ee670223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee670223fooEv,_ZTv0_n12_N7ee670223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee670223fooEv,_ZThn12_N7ee670223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67022 = { "ee67022", // class name
+ bases_ee67022, 4,
+ &(vtc_ee67022[0]), // expected_vtbl_contents
+ &(vtt_ee67022[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee67022),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67022),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67022),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names894,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee77022 : virtual dd7022 {
+ int e;
+ virtual void foo(); // _ZN7ee770223fooEv
+ virtual void bar(); // _ZN7ee770223barEv
+ ~ee77022(); // tgen
+ ee77022(); // tgen
+};
+//SIG(1 ee77022) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77022 ::foo(){vfunc_called(this, "_ZN7ee770223fooEv");}
+void ee77022 ::bar(){vfunc_called(this, "_ZN7ee770223barEv");}
+ee77022 ::~ee77022(){ note_dtor("ee77022", this);} // tgen
+ee77022 ::ee77022(){ note_ctor("ee77022", this);} // tgen
+
+static void Test_ee77022()
+{
+ extern Class_Descriptor cd_ee77022;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee77022, buf);
+ ee77022 *dp, &lv = *(dp=new (buf) ee77022());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee77022)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77022)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc022*), ABISELECT(32,16), "ee77022");
+ check_base_class_offset(lv, (bb22*)(cc022*), ABISELECT(32,16), "ee77022");
+ check_base_class_offset(lv, (cc022*)(dd7022*), ABISELECT(32,16), "ee77022");
+ check_base_class_offset(lv, (dd7022*), ABISELECT(16,8), "ee77022");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77022.e");
+ test_class_info(&lv, &cd_ee77022);
+ dp->~ee77022();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77022(Test_ee77022, "ee77022", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee77022C1Ev();
+extern void _ZN7ee77022D1Ev();
+Name_Map name_map_ee77022[] = {
+ NSPAIR(_ZN7ee77022C1Ev),
+ NSPAIR(_ZN7ee77022D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc022;
+extern VTBL_ENTRY _ZTI5cc022[];
+extern VTBL_ENTRY _ZTV5cc022[];
+extern Class_Descriptor cd_dd7022;
+extern VTBL_ENTRY _ZTI6dd7022[];
+extern VTBL_ENTRY _ZTV6dd7022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7022[];
+static Base_Class bases_ee77022[] = {
+ // 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_bb22, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc022, 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_dd7022, ABISELECT(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 _ZTI7ee77022[];
+extern void _ZN7ee770223fooEv();
+extern void _ZN7ee770223barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee770223barEv,_ZTv0_n16_N7ee770223barEv)();
+extern void ABISELECT(_ZThn16_N7ee770223barEv,_ZThn8_N7ee770223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee770223fooEv,_ZTv0_n20_N7ee770223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee770223fooEv,_ZThn8_N7ee770223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee770223fooEv,_ZTv0_n12_N7ee770223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee770223fooEv,_ZThn16_N7ee770223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee770223barEv,_ZTv0_n16_N7ee770223barEv)();
+extern void ABISELECT(_ZThn32_N7ee770223barEv,_ZThn16_N7ee770223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77022[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77022[0]),
+ (VTBL_ENTRY)&_ZN7ee770223fooEv,
+ (VTBL_ENTRY)&_ZN7ee770223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77022[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee770223barEv,_ZTv0_n16_N7ee770223barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee770223fooEv,_ZTv0_n20_N7ee770223fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77022[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee770223fooEv,_ZTv0_n12_N7ee770223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee770223barEv,_ZTv0_n16_N7ee770223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee77022[];
+extern void _ZN6dd70223barEv();
+extern void _ZN6dd70223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7022__7ee77022[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7022[0]),
+ (VTBL_ENTRY)&_ZN6dd70223barEv,
+ (VTBL_ENTRY)&_ZN6dd70223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd70223fooEv,_ZTv0_n12_N6dd70223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70223fooEv,_ZThn8_N6dd70223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70223barEv,_ZTv0_n16_N6dd70223barEv)();
+extern void ABISELECT(_ZThn16_N6dd70223barEv,_ZThn8_N6dd70223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb225cc022__6dd7022__7ee77022[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7022[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70223fooEv,_ZTv0_n12_N6dd70223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70223barEv,_ZTv0_n16_N6dd70223barEv),
+};
+static VTT_ENTRY vtt_ee77022[] = {
+ {&(_ZTV7ee77022[4]), 4,19},
+ {&(_ZTV7ee77022[11]), 11,19},
+ {&(_ZTV7ee77022[17]), 17,19},
+ {&(_tg__ZTV6dd7022__7ee77022[3]), 3,5},
+ {&(_tg__ZTV4bb225cc022__6dd7022__7ee77022[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee77022[];
+extern VTBL_ENTRY _ZTV7ee77022[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77022[];
+static VTBL_ENTRY alt_thunk_names895[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70223barEv,_ZTv0_n16_N6dd70223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70223barEv,_ZThn8_N6dd70223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70223fooEv,_ZTv0_n12_N6dd70223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70223fooEv,_ZThn8_N6dd70223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee770223fooEv,_ZTv0_n12_N7ee770223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee770223fooEv,_ZThn16_N7ee770223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee770223fooEv,_ZTv0_n20_N7ee770223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee770223fooEv,_ZThn8_N7ee770223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee770223barEv,_ZTv0_n16_N7ee770223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee770223barEv,_ZThn16_N7ee770223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee770223barEv,_ZThn8_N7ee770223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77022 = { "ee77022", // class name
+ bases_ee77022, 4,
+ &(vtc_ee77022[0]), // expected_vtbl_contents
+ &(vtt_ee77022[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee77022),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77022),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77022),5, //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 cc122 : virtual bb22 {
+ int c;
+ ~cc122(); // tgen
+ cc122(); // tgen
+};
+//SIG(-1 cc122) C1{ VBC2{ BC3{ v1 v2 Fi} v1 Fi} Fi}
+
+
+cc122 ::~cc122(){ note_dtor("cc122", this);} // tgen
+cc122 ::cc122(){ note_ctor("cc122", this);} // tgen
+
+static void Test_cc122()
+{
+ extern Class_Descriptor cd_cc122;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_cc122, buf);
+ cc122 *dp, &lv = *(dp=new (buf) cc122());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(cc122)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc122)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(16,8), "cc122");
+ check_base_class_offset(lv, (bb22*), ABISELECT(16,8), "cc122");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc122.c");
+ test_class_info(&lv, &cd_cc122);
+ dp->~cc122();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc122(Test_cc122, "cc122", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN5cc122C1Ev();
+extern void _ZN5cc122D1Ev();
+Name_Map name_map_cc122[] = {
+ NSPAIR(_ZN5cc122C1Ev),
+ NSPAIR(_ZN5cc122D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+static Base_Class bases_cc122[] = {
+ // 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_bb22, 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 _ZTI5cc122[];
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_cc122[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV5cc122[];
+static VTT_ENTRY vtt_cc122[] = {
+ {&(_ZTV5cc122[3]), 3,9},
+ {&(_ZTV5cc122[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI5cc122[];
+extern VTBL_ENTRY _ZTV5cc122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc122[];
+Class_Descriptor cd_cc122 = { "cc122", // class name
+ bases_cc122, 2,
+ &(vtc_cc122[0]), // expected_vtbl_contents
+ &(vtt_cc122[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI5cc122),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV5cc122),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5cc122),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 dd0122 : cc122 {
+ int d;
+ ~dd0122(); // tgen
+ dd0122(); // tgen
+};
+//SIG(-1 dd0122) C1{ BC2{ VBC3{ BC4{ v1 v2 Fi} v1 Fi} Fi} Fi}
+
+
+dd0122 ::~dd0122(){ note_dtor("dd0122", this);} // tgen
+dd0122 ::dd0122(){ note_ctor("dd0122", this);} // tgen
+
+static void Test_dd0122()
+{
+ extern Class_Descriptor cd_dd0122;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd0122, buf);
+ dd0122 *dp, &lv = *(dp=new (buf) dd0122());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd0122)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0122)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(16,12), "dd0122");
+ check_base_class_offset(lv, (bb22*)(cc122*), ABISELECT(16,12), "dd0122");
+ check_base_class_offset(lv, (cc122*), 0, "dd0122");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd0122.d");
+ test_class_info(&lv, &cd_dd0122);
+ dp->~dd0122();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0122(Test_dd0122, "dd0122", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd0122C1Ev();
+extern void _ZN6dd0122D1Ev();
+Name_Map name_map_dd0122[] = {
+ NSPAIR(_ZN6dd0122C1Ev),
+ NSPAIR(_ZN6dd0122D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc122;
+extern VTBL_ENTRY _ZTI5cc122[];
+extern VTBL_ENTRY _ZTV5cc122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc122[];
+static Base_Class bases_dd0122[] = {
+ // 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_bb22, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc122, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd0122[];
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_dd0122[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0122[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV6dd0122[];
+static VTBL_ENTRY _tg__ZTV5cc122__6dd0122[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc122__6dd0122[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_dd0122[] = {
+ {&(_ZTV6dd0122[3]), 3,9},
+ {&(_tg__ZTV5cc122__6dd0122[3]), 3,3},
+ {&(_tg__ZTV4bb22__5cc122__6dd0122[4]), 4,6},
+ {&(_ZTV6dd0122[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI6dd0122[];
+extern VTBL_ENTRY _ZTV6dd0122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0122[];
+Class_Descriptor cd_dd0122 = { "dd0122", // class name
+ bases_dd0122, 3,
+ &(vtc_dd0122[0]), // expected_vtbl_contents
+ &(vtt_dd0122[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd0122),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0122),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd0122),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 ee00122 : dd0122 {
+ int e;
+ ~ee00122(); // tgen
+ ee00122(); // tgen
+};
+//SIG(1 ee00122) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} Fi} Fi} Fi}
+
+
+ee00122 ::~ee00122(){ note_dtor("ee00122", this);} // tgen
+ee00122 ::ee00122(){ note_ctor("ee00122", this);} // tgen
+
+static void Test_ee00122()
+{
+ extern Class_Descriptor cd_ee00122;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee00122, buf);
+ ee00122 *dp, &lv = *(dp=new (buf) ee00122());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee00122)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00122)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(24,16), "ee00122");
+ check_base_class_offset(lv, (bb22*)(cc122*)(dd0122*), ABISELECT(24,16), "ee00122");
+ check_base_class_offset(lv, (cc122*)(dd0122*), 0, "ee00122");
+ check_base_class_offset(lv, (dd0122*), 0, "ee00122");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee00122.e");
+ test_class_info(&lv, &cd_ee00122);
+ dp->~ee00122();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00122(Test_ee00122, "ee00122", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee00122C1Ev();
+extern void _ZN7ee00122D1Ev();
+Name_Map name_map_ee00122[] = {
+ NSPAIR(_ZN7ee00122C1Ev),
+ NSPAIR(_ZN7ee00122D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc122;
+extern VTBL_ENTRY _ZTI5cc122[];
+extern VTBL_ENTRY _ZTV5cc122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc122[];
+extern Class_Descriptor cd_dd0122;
+extern VTBL_ENTRY _ZTI6dd0122[];
+extern VTBL_ENTRY _ZTV6dd0122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0122[];
+static Base_Class bases_ee00122[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(24,16), //bcp->offset
+ 3, //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_cc122, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0122, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee00122[];
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee00122[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00122[0]),
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee00122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee00122[];
+static VTBL_ENTRY _tg__ZTV6dd0122__7ee00122[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0122[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1226dd0122__7ee00122[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc1226dd0122__7ee00122[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__6dd0122__7ee00122[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee00122[] = {
+ {&(_ZTV7ee00122[3]), 3,9},
+ {&(_tg__ZTV6dd0122__7ee00122[3]), 3,3},
+ {&(_tg__ZTV5cc1226dd0122__7ee00122[3]), 3,3},
+ {&(_tg__ZTV4bb22__5cc1226dd0122__7ee00122[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd0122__7ee00122[4]), 4,6},
+ {&(_ZTV7ee00122[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee00122[];
+extern VTBL_ENTRY _ZTV7ee00122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee00122[];
+Class_Descriptor cd_ee00122 = { "ee00122", // class name
+ bases_ee00122, 4,
+ &(vtc_ee00122[0]), // expected_vtbl_contents
+ &(vtt_ee00122[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee00122),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00122),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee00122),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 ee10122 : virtual dd0122 {
+ int e;
+ ~ee10122(); // tgen
+ ee10122(); // tgen
+};
+//SIG(1 ee10122) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} Fi} Fi} Fi}
+
+
+ee10122 ::~ee10122(){ note_dtor("ee10122", this);} // tgen
+ee10122 ::ee10122(){ note_ctor("ee10122", this);} // tgen
+
+static void Test_ee10122()
+{
+ extern Class_Descriptor cd_ee10122;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee10122, buf);
+ ee10122 *dp, &lv = *(dp=new (buf) ee10122());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee10122)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10122)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee10122");
+ check_base_class_offset(lv, (bb22*)(cc122*)(dd0122*), ABISELECT(32,20), "ee10122");
+ check_base_class_offset(lv, (cc122*)(dd0122*), ABISELECT(16,8), "ee10122");
+ check_base_class_offset(lv, (dd0122*), ABISELECT(16,8), "ee10122");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10122.e");
+ test_class_info(&lv, &cd_ee10122);
+ dp->~ee10122();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10122(Test_ee10122, "ee10122", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee10122C1Ev();
+extern void _ZN7ee10122D1Ev();
+Name_Map name_map_ee10122[] = {
+ NSPAIR(_ZN7ee10122C1Ev),
+ NSPAIR(_ZN7ee10122D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc122;
+extern VTBL_ENTRY _ZTI5cc122[];
+extern VTBL_ENTRY _ZTV5cc122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc122[];
+extern Class_Descriptor cd_dd0122;
+extern VTBL_ENTRY _ZTI6dd0122[];
+extern VTBL_ENTRY _ZTV6dd0122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0122[];
+static Base_Class bases_ee10122[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc122, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0122, 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 _ZTI7ee10122[];
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee10122[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10122[0]),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10122[0]),
+ 0,
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee10122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee10122[];
+static VTBL_ENTRY _tg__ZTV6dd0122__7ee10122[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0122[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1226dd0122__7ee10122[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc1226dd0122__7ee10122[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__6dd0122__7ee10122[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee10122[] = {
+ {&(_ZTV7ee10122[4]), 4,13},
+ {&(_ZTV7ee10122[7]), 7,13},
+ {&(_ZTV7ee10122[11]), 11,13},
+ {&(_tg__ZTV6dd0122__7ee10122[3]), 3,3},
+ {&(_tg__ZTV5cc1226dd0122__7ee10122[3]), 3,3},
+ {&(_tg__ZTV4bb22__5cc1226dd0122__7ee10122[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd0122__7ee10122[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee10122[];
+extern VTBL_ENTRY _ZTV7ee10122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10122[];
+Class_Descriptor cd_ee10122 = { "ee10122", // class name
+ bases_ee10122, 4,
+ &(vtc_ee10122[0]), // expected_vtbl_contents
+ &(vtt_ee10122[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee10122),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10122),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10122),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 ee20122 : dd0122 {
+ int e;
+ virtual void foo(); // _ZN7ee201223fooEv
+ ~ee20122(); // tgen
+ ee20122(); // tgen
+};
+//SIG(1 ee20122) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} Fi} Fi} v1 Fi}
+
+
+void ee20122 ::foo(){vfunc_called(this, "_ZN7ee201223fooEv");}
+ee20122 ::~ee20122(){ note_dtor("ee20122", this);} // tgen
+ee20122 ::ee20122(){ note_ctor("ee20122", this);} // tgen
+
+static void Test_ee20122()
+{
+ extern Class_Descriptor cd_ee20122;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee20122, buf);
+ ee20122 *dp, &lv = *(dp=new (buf) ee20122());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee20122)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20122)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(24,16), "ee20122");
+ check_base_class_offset(lv, (bb22*)(cc122*)(dd0122*), ABISELECT(24,16), "ee20122");
+ check_base_class_offset(lv, (cc122*)(dd0122*), 0, "ee20122");
+ check_base_class_offset(lv, (dd0122*), 0, "ee20122");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee20122.e");
+ test_class_info(&lv, &cd_ee20122);
+ dp->~ee20122();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20122(Test_ee20122, "ee20122", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee20122C1Ev();
+extern void _ZN7ee20122D1Ev();
+Name_Map name_map_ee20122[] = {
+ NSPAIR(_ZN7ee20122C1Ev),
+ NSPAIR(_ZN7ee20122D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc122;
+extern VTBL_ENTRY _ZTI5cc122[];
+extern VTBL_ENTRY _ZTV5cc122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc122[];
+extern Class_Descriptor cd_dd0122;
+extern VTBL_ENTRY _ZTI6dd0122[];
+extern VTBL_ENTRY _ZTV6dd0122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0122[];
+static Base_Class bases_ee20122[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc122, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0122, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee20122[];
+extern void _ZN7ee201223fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee201223fooEv,_ZTv0_n12_N7ee201223fooEv)();
+extern void ABISELECT(_ZThn24_N7ee201223fooEv,_ZThn16_N7ee201223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee20122[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20122[0]),
+ (VTBL_ENTRY)&_ZN7ee201223fooEv,
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee20122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee201223fooEv,_ZTv0_n12_N7ee201223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee20122[];
+static VTBL_ENTRY _tg__ZTV6dd0122__7ee20122[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0122[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1226dd0122__7ee20122[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc1226dd0122__7ee20122[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__6dd0122__7ee20122[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee20122[] = {
+ {&(_ZTV7ee20122[3]), 3,10},
+ {&(_tg__ZTV6dd0122__7ee20122[3]), 3,3},
+ {&(_tg__ZTV5cc1226dd0122__7ee20122[3]), 3,3},
+ {&(_tg__ZTV4bb22__5cc1226dd0122__7ee20122[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd0122__7ee20122[4]), 4,6},
+ {&(_ZTV7ee20122[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee20122[];
+extern VTBL_ENTRY _ZTV7ee20122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee20122[];
+static VTBL_ENTRY alt_thunk_names896[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee201223fooEv,_ZTv0_n12_N7ee201223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee201223fooEv,_ZThn16_N7ee201223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee20122 = { "ee20122", // class name
+ bases_ee20122, 4,
+ &(vtc_ee20122[0]), // expected_vtbl_contents
+ &(vtt_ee20122[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee20122),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20122),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee20122),6, //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 ee30122 : virtual dd0122 {
+ int e;
+ virtual void foo(); // _ZN7ee301223fooEv
+ ~ee30122(); // tgen
+ ee30122(); // tgen
+};
+//SIG(1 ee30122) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} Fi} Fi} v1 Fi}
+
+
+void ee30122 ::foo(){vfunc_called(this, "_ZN7ee301223fooEv");}
+ee30122 ::~ee30122(){ note_dtor("ee30122", this);} // tgen
+ee30122 ::ee30122(){ note_ctor("ee30122", this);} // tgen
+
+static void Test_ee30122()
+{
+ extern Class_Descriptor cd_ee30122;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee30122, buf);
+ ee30122 *dp, &lv = *(dp=new (buf) ee30122());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee30122)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30122)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee30122");
+ check_base_class_offset(lv, (bb22*)(cc122*)(dd0122*), ABISELECT(32,20), "ee30122");
+ check_base_class_offset(lv, (cc122*)(dd0122*), ABISELECT(16,8), "ee30122");
+ check_base_class_offset(lv, (dd0122*), ABISELECT(16,8), "ee30122");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30122.e");
+ test_class_info(&lv, &cd_ee30122);
+ dp->~ee30122();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30122(Test_ee30122, "ee30122", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee30122C1Ev();
+extern void _ZN7ee30122D1Ev();
+Name_Map name_map_ee30122[] = {
+ NSPAIR(_ZN7ee30122C1Ev),
+ NSPAIR(_ZN7ee30122D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc122;
+extern VTBL_ENTRY _ZTI5cc122[];
+extern VTBL_ENTRY _ZTV5cc122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc122[];
+extern Class_Descriptor cd_dd0122;
+extern VTBL_ENTRY _ZTI6dd0122[];
+extern VTBL_ENTRY _ZTV6dd0122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0122[];
+static Base_Class bases_ee30122[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc122, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0122, 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 _ZTI7ee30122[];
+extern void _ZN7ee301223fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee301223fooEv,_ZTv0_n12_N7ee301223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee301223fooEv,_ZThn20_N7ee301223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee30122[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30122[0]),
+ (VTBL_ENTRY)&_ZN7ee301223fooEv,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30122[0]),
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee30122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee301223fooEv,_ZTv0_n12_N7ee301223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee30122[];
+static VTBL_ENTRY _tg__ZTV6dd0122__7ee30122[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0122[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1226dd0122__7ee30122[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc1226dd0122__7ee30122[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__6dd0122__7ee30122[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee30122[] = {
+ {&(_ZTV7ee30122[4]), 4,14},
+ {&(_ZTV7ee30122[8]), 8,14},
+ {&(_ZTV7ee30122[12]), 12,14},
+ {&(_tg__ZTV6dd0122__7ee30122[3]), 3,3},
+ {&(_tg__ZTV5cc1226dd0122__7ee30122[3]), 3,3},
+ {&(_tg__ZTV4bb22__5cc1226dd0122__7ee30122[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd0122__7ee30122[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee30122[];
+extern VTBL_ENTRY _ZTV7ee30122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30122[];
+static VTBL_ENTRY alt_thunk_names897[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee301223fooEv,_ZTv0_n12_N7ee301223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee301223fooEv,_ZThn20_N7ee301223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30122 = { "ee30122", // class name
+ bases_ee30122, 4,
+ &(vtc_ee30122[0]), // expected_vtbl_contents
+ &(vtt_ee30122[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee30122),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30122),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30122),7, //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 ee40122 : dd0122 {
+ int e;
+ virtual void bar(); // _ZN7ee401223barEv
+ ~ee40122(); // tgen
+ ee40122(); // tgen
+};
+//SIG(1 ee40122) C1{ BC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} Fi} Fi} v1 Fi}
+
+
+void ee40122 ::bar(){vfunc_called(this, "_ZN7ee401223barEv");}
+ee40122 ::~ee40122(){ note_dtor("ee40122", this);} // tgen
+ee40122 ::ee40122(){ note_ctor("ee40122", this);} // tgen
+
+static void Test_ee40122()
+{
+ extern Class_Descriptor cd_ee40122;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee40122, buf);
+ ee40122 *dp, &lv = *(dp=new (buf) ee40122());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee40122)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40122)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(24,16), "ee40122");
+ check_base_class_offset(lv, (bb22*)(cc122*)(dd0122*), ABISELECT(24,16), "ee40122");
+ check_base_class_offset(lv, (cc122*)(dd0122*), 0, "ee40122");
+ check_base_class_offset(lv, (dd0122*), 0, "ee40122");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee40122.e");
+ test_class_info(&lv, &cd_ee40122);
+ dp->~ee40122();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40122(Test_ee40122, "ee40122", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee40122C1Ev();
+extern void _ZN7ee40122D1Ev();
+Name_Map name_map_ee40122[] = {
+ NSPAIR(_ZN7ee40122C1Ev),
+ NSPAIR(_ZN7ee40122D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc122;
+extern VTBL_ENTRY _ZTI5cc122[];
+extern VTBL_ENTRY _ZTV5cc122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc122[];
+extern Class_Descriptor cd_dd0122;
+extern VTBL_ENTRY _ZTI6dd0122[];
+extern VTBL_ENTRY _ZTV6dd0122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0122[];
+static Base_Class bases_ee40122[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc122, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0122, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee40122[];
+extern void _ZN7ee401223barEv();
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee401223barEv,_ZTv0_n16_N7ee401223barEv)();
+extern void ABISELECT(_ZThn24_N7ee401223barEv,_ZThn16_N7ee401223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee40122[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40122[0]),
+ (VTBL_ENTRY)&_ZN7ee401223barEv,
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee40122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee401223barEv,_ZTv0_n16_N7ee401223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee40122[];
+static VTBL_ENTRY _tg__ZTV6dd0122__7ee40122[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0122[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1226dd0122__7ee40122[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc1226dd0122__7ee40122[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__6dd0122__7ee40122[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee40122[] = {
+ {&(_ZTV7ee40122[3]), 3,10},
+ {&(_tg__ZTV6dd0122__7ee40122[3]), 3,3},
+ {&(_tg__ZTV5cc1226dd0122__7ee40122[3]), 3,3},
+ {&(_tg__ZTV4bb22__5cc1226dd0122__7ee40122[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd0122__7ee40122[4]), 4,6},
+ {&(_ZTV7ee40122[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee40122[];
+extern VTBL_ENTRY _ZTV7ee40122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee40122[];
+static VTBL_ENTRY alt_thunk_names898[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee401223barEv,_ZTv0_n16_N7ee401223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee401223barEv,_ZThn16_N7ee401223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee40122 = { "ee40122", // class name
+ bases_ee40122, 4,
+ &(vtc_ee40122[0]), // expected_vtbl_contents
+ &(vtt_ee40122[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee40122),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40122),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee40122),6, //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 ee50122 : virtual dd0122 {
+ int e;
+ virtual void bar(); // _ZN7ee501223barEv
+ ~ee50122(); // tgen
+ ee50122(); // tgen
+};
+//SIG(1 ee50122) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} Fi} Fi} v1 Fi}
+
+
+void ee50122 ::bar(){vfunc_called(this, "_ZN7ee501223barEv");}
+ee50122 ::~ee50122(){ note_dtor("ee50122", this);} // tgen
+ee50122 ::ee50122(){ note_ctor("ee50122", this);} // tgen
+
+static void Test_ee50122()
+{
+ extern Class_Descriptor cd_ee50122;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee50122, buf);
+ ee50122 *dp, &lv = *(dp=new (buf) ee50122());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee50122)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50122)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee50122");
+ check_base_class_offset(lv, (bb22*)(cc122*)(dd0122*), ABISELECT(32,20), "ee50122");
+ check_base_class_offset(lv, (cc122*)(dd0122*), ABISELECT(16,8), "ee50122");
+ check_base_class_offset(lv, (dd0122*), ABISELECT(16,8), "ee50122");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50122.e");
+ test_class_info(&lv, &cd_ee50122);
+ dp->~ee50122();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50122(Test_ee50122, "ee50122", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee50122C1Ev();
+extern void _ZN7ee50122D1Ev();
+Name_Map name_map_ee50122[] = {
+ NSPAIR(_ZN7ee50122C1Ev),
+ NSPAIR(_ZN7ee50122D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc122;
+extern VTBL_ENTRY _ZTI5cc122[];
+extern VTBL_ENTRY _ZTV5cc122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc122[];
+extern Class_Descriptor cd_dd0122;
+extern VTBL_ENTRY _ZTI6dd0122[];
+extern VTBL_ENTRY _ZTV6dd0122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0122[];
+static Base_Class bases_ee50122[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc122, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0122, 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 _ZTI7ee50122[];
+extern void _ZN7ee501223barEv();
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee501223barEv,_ZTv0_n16_N7ee501223barEv)();
+extern void ABISELECT(_ZThn32_N7ee501223barEv,_ZThn20_N7ee501223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee50122[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50122[0]),
+ (VTBL_ENTRY)&_ZN7ee501223barEv,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50122[0]),
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee50122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee501223barEv,_ZTv0_n16_N7ee501223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee50122[];
+static VTBL_ENTRY _tg__ZTV6dd0122__7ee50122[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0122[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1226dd0122__7ee50122[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc1226dd0122__7ee50122[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__6dd0122__7ee50122[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee50122[] = {
+ {&(_ZTV7ee50122[4]), 4,14},
+ {&(_ZTV7ee50122[8]), 8,14},
+ {&(_ZTV7ee50122[12]), 12,14},
+ {&(_tg__ZTV6dd0122__7ee50122[3]), 3,3},
+ {&(_tg__ZTV5cc1226dd0122__7ee50122[3]), 3,3},
+ {&(_tg__ZTV4bb22__5cc1226dd0122__7ee50122[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd0122__7ee50122[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee50122[];
+extern VTBL_ENTRY _ZTV7ee50122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50122[];
+static VTBL_ENTRY alt_thunk_names899[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee501223barEv,_ZTv0_n16_N7ee501223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee501223barEv,_ZThn20_N7ee501223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50122 = { "ee50122", // class name
+ bases_ee50122, 4,
+ &(vtc_ee50122[0]), // expected_vtbl_contents
+ &(vtt_ee50122[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee50122),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50122),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50122),7, //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 ee60122 : dd0122 {
+ int e;
+ virtual void foo(); // _ZN7ee601223fooEv
+ virtual void bar(); // _ZN7ee601223barEv
+ ~ee60122(); // tgen
+ ee60122(); // tgen
+};
+//SIG(1 ee60122) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee60122 ::foo(){vfunc_called(this, "_ZN7ee601223fooEv");}
+void ee60122 ::bar(){vfunc_called(this, "_ZN7ee601223barEv");}
+ee60122 ::~ee60122(){ note_dtor("ee60122", this);} // tgen
+ee60122 ::ee60122(){ note_ctor("ee60122", this);} // tgen
+
+static void Test_ee60122()
+{
+ extern Class_Descriptor cd_ee60122;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee60122, buf);
+ ee60122 *dp, &lv = *(dp=new (buf) ee60122());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee60122)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60122)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(24,16), "ee60122");
+ check_base_class_offset(lv, (bb22*)(cc122*)(dd0122*), ABISELECT(24,16), "ee60122");
+ check_base_class_offset(lv, (cc122*)(dd0122*), 0, "ee60122");
+ check_base_class_offset(lv, (dd0122*), 0, "ee60122");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee60122.e");
+ test_class_info(&lv, &cd_ee60122);
+ dp->~ee60122();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60122(Test_ee60122, "ee60122", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee60122C1Ev();
+extern void _ZN7ee60122D1Ev();
+Name_Map name_map_ee60122[] = {
+ NSPAIR(_ZN7ee60122C1Ev),
+ NSPAIR(_ZN7ee60122D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc122;
+extern VTBL_ENTRY _ZTI5cc122[];
+extern VTBL_ENTRY _ZTV5cc122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc122[];
+extern Class_Descriptor cd_dd0122;
+extern VTBL_ENTRY _ZTI6dd0122[];
+extern VTBL_ENTRY _ZTV6dd0122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0122[];
+static Base_Class bases_ee60122[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc122, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0122, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee60122[];
+extern void _ZN7ee601223fooEv();
+extern void _ZN7ee601223barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee601223fooEv,_ZTv0_n12_N7ee601223fooEv)();
+extern void ABISELECT(_ZThn24_N7ee601223fooEv,_ZThn16_N7ee601223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee601223barEv,_ZTv0_n16_N7ee601223barEv)();
+extern void ABISELECT(_ZThn24_N7ee601223barEv,_ZThn16_N7ee601223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee60122[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60122[0]),
+ (VTBL_ENTRY)&_ZN7ee601223fooEv,
+ (VTBL_ENTRY)&_ZN7ee601223barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee60122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee601223fooEv,_ZTv0_n12_N7ee601223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee601223barEv,_ZTv0_n16_N7ee601223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee60122[];
+static VTBL_ENTRY _tg__ZTV6dd0122__7ee60122[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0122[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1226dd0122__7ee60122[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc1226dd0122__7ee60122[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__6dd0122__7ee60122[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee60122[] = {
+ {&(_ZTV7ee60122[3]), 3,11},
+ {&(_tg__ZTV6dd0122__7ee60122[3]), 3,3},
+ {&(_tg__ZTV5cc1226dd0122__7ee60122[3]), 3,3},
+ {&(_tg__ZTV4bb22__5cc1226dd0122__7ee60122[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd0122__7ee60122[4]), 4,6},
+ {&(_ZTV7ee60122[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee60122[];
+extern VTBL_ENTRY _ZTV7ee60122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee60122[];
+static VTBL_ENTRY alt_thunk_names900[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee601223barEv,_ZTv0_n16_N7ee601223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee601223barEv,_ZThn16_N7ee601223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee601223fooEv,_ZTv0_n12_N7ee601223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee601223fooEv,_ZThn16_N7ee601223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee60122 = { "ee60122", // class name
+ bases_ee60122, 4,
+ &(vtc_ee60122[0]), // expected_vtbl_contents
+ &(vtt_ee60122[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee60122),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60122),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee60122),6, //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 ee70122 : virtual dd0122 {
+ int e;
+ virtual void foo(); // _ZN7ee701223fooEv
+ virtual void bar(); // _ZN7ee701223barEv
+ ~ee70122(); // tgen
+ ee70122(); // tgen
+};
+//SIG(1 ee70122) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee70122 ::foo(){vfunc_called(this, "_ZN7ee701223fooEv");}
+void ee70122 ::bar(){vfunc_called(this, "_ZN7ee701223barEv");}
+ee70122 ::~ee70122(){ note_dtor("ee70122", this);} // tgen
+ee70122 ::ee70122(){ note_ctor("ee70122", this);} // tgen
+
+static void Test_ee70122()
+{
+ extern Class_Descriptor cd_ee70122;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee70122, buf);
+ ee70122 *dp, &lv = *(dp=new (buf) ee70122());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee70122)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70122)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee70122");
+ check_base_class_offset(lv, (bb22*)(cc122*)(dd0122*), ABISELECT(32,20), "ee70122");
+ check_base_class_offset(lv, (cc122*)(dd0122*), ABISELECT(16,8), "ee70122");
+ check_base_class_offset(lv, (dd0122*), ABISELECT(16,8), "ee70122");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70122.e");
+ test_class_info(&lv, &cd_ee70122);
+ dp->~ee70122();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70122(Test_ee70122, "ee70122", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee70122C1Ev();
+extern void _ZN7ee70122D1Ev();
+Name_Map name_map_ee70122[] = {
+ NSPAIR(_ZN7ee70122C1Ev),
+ NSPAIR(_ZN7ee70122D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc122;
+extern VTBL_ENTRY _ZTI5cc122[];
+extern VTBL_ENTRY _ZTV5cc122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc122[];
+extern Class_Descriptor cd_dd0122;
+extern VTBL_ENTRY _ZTI6dd0122[];
+extern VTBL_ENTRY _ZTV6dd0122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0122[];
+static Base_Class bases_ee70122[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc122, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0122, 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 _ZTI7ee70122[];
+extern void _ZN7ee701223fooEv();
+extern void _ZN7ee701223barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee701223fooEv,_ZTv0_n12_N7ee701223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee701223fooEv,_ZThn20_N7ee701223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee701223barEv,_ZTv0_n16_N7ee701223barEv)();
+extern void ABISELECT(_ZThn32_N7ee701223barEv,_ZThn20_N7ee701223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70122[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70122[0]),
+ (VTBL_ENTRY)&_ZN7ee701223fooEv,
+ (VTBL_ENTRY)&_ZN7ee701223barEv,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70122[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee70122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee701223fooEv,_ZTv0_n12_N7ee701223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee701223barEv,_ZTv0_n16_N7ee701223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee70122[];
+static VTBL_ENTRY _tg__ZTV6dd0122__7ee70122[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0122[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1226dd0122__7ee70122[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc1226dd0122__7ee70122[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__6dd0122__7ee70122[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee70122[] = {
+ {&(_ZTV7ee70122[4]), 4,15},
+ {&(_ZTV7ee70122[9]), 9,15},
+ {&(_ZTV7ee70122[13]), 13,15},
+ {&(_tg__ZTV6dd0122__7ee70122[3]), 3,3},
+ {&(_tg__ZTV5cc1226dd0122__7ee70122[3]), 3,3},
+ {&(_tg__ZTV4bb22__5cc1226dd0122__7ee70122[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd0122__7ee70122[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee70122[];
+extern VTBL_ENTRY _ZTV7ee70122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70122[];
+static VTBL_ENTRY alt_thunk_names901[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee701223barEv,_ZTv0_n16_N7ee701223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee701223barEv,_ZThn20_N7ee701223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee701223fooEv,_ZTv0_n12_N7ee701223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee701223fooEv,_ZThn20_N7ee701223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70122 = { "ee70122", // class name
+ bases_ee70122, 4,
+ &(vtc_ee70122[0]), // expected_vtbl_contents
+ &(vtt_ee70122[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee70122),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70122),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70122),7, //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 dd1122 : virtual cc122 {
+ int d;
+ ~dd1122(); // tgen
+ dd1122(); // tgen
+};
+//SIG(-1 dd1122) C1{ VBC2{ VBC3{ BC4{ v1 v2 Fi} v1 Fi} Fi} Fi}
+
+
+dd1122 ::~dd1122(){ note_dtor("dd1122", this);} // tgen
+dd1122 ::dd1122(){ note_ctor("dd1122", this);} // tgen
+
+static void Test_dd1122()
+{
+ extern Class_Descriptor cd_dd1122;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd1122, buf);
+ dd1122 *dp, &lv = *(dp=new (buf) dd1122());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd1122)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1122)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,16), "dd1122");
+ check_base_class_offset(lv, (bb22*)(cc122*), ABISELECT(32,16), "dd1122");
+ check_base_class_offset(lv, (cc122*), ABISELECT(16,8), "dd1122");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1122.d");
+ test_class_info(&lv, &cd_dd1122);
+ dp->~dd1122();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1122(Test_dd1122, "dd1122", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd1122C1Ev();
+extern void _ZN6dd1122D1Ev();
+Name_Map name_map_dd1122[] = {
+ NSPAIR(_ZN6dd1122C1Ev),
+ NSPAIR(_ZN6dd1122D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc122;
+extern VTBL_ENTRY _ZTI5cc122[];
+extern VTBL_ENTRY _ZTV5cc122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc122[];
+static Base_Class bases_dd1122[] = {
+ // 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_bb22, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc122, 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 _ZTI6dd1122[];
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_dd1122[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1122[0]),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1122[0]),
+ 0,
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV6dd1122[];
+static VTBL_ENTRY _tg__ZTV5cc122__6dd1122[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc122__6dd1122[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_dd1122[] = {
+ {&(_ZTV6dd1122[4]), 4,13},
+ {&(_ZTV6dd1122[7]), 7,13},
+ {&(_ZTV6dd1122[11]), 11,13},
+ {&(_tg__ZTV5cc122__6dd1122[3]), 3,3},
+ {&(_tg__ZTV4bb22__5cc122__6dd1122[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd1122[];
+extern VTBL_ENTRY _ZTV6dd1122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1122[];
+Class_Descriptor cd_dd1122 = { "dd1122", // class name
+ bases_dd1122, 3,
+ &(vtc_dd1122[0]), // expected_vtbl_contents
+ &(vtt_dd1122[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd1122),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1122),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1122),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 ee01122 : dd1122 {
+ int e;
+ ~ee01122(); // tgen
+ ee01122(); // tgen
+};
+//SIG(1 ee01122) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} Fi} Fi} Fi}
+
+
+ee01122 ::~ee01122(){ note_dtor("ee01122", this);} // tgen
+ee01122 ::ee01122(){ note_ctor("ee01122", this);} // tgen
+
+static void Test_ee01122()
+{
+ extern Class_Descriptor cd_ee01122;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee01122, buf);
+ ee01122 *dp, &lv = *(dp=new (buf) ee01122());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee01122)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01122)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee01122");
+ check_base_class_offset(lv, (bb22*)(cc122*), ABISELECT(32,20), "ee01122");
+ check_base_class_offset(lv, (cc122*)(dd1122*), ABISELECT(16,12), "ee01122");
+ check_base_class_offset(lv, (dd1122*), 0, "ee01122");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01122.e");
+ test_class_info(&lv, &cd_ee01122);
+ dp->~ee01122();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01122(Test_ee01122, "ee01122", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee01122C1Ev();
+extern void _ZN7ee01122D1Ev();
+Name_Map name_map_ee01122[] = {
+ NSPAIR(_ZN7ee01122C1Ev),
+ NSPAIR(_ZN7ee01122D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc122;
+extern VTBL_ENTRY _ZTI5cc122[];
+extern VTBL_ENTRY _ZTV5cc122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc122[];
+extern Class_Descriptor cd_dd1122;
+extern VTBL_ENTRY _ZTI6dd1122[];
+extern VTBL_ENTRY _ZTV6dd1122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1122[];
+static Base_Class bases_ee01122[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 7, //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_cc122, 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_dd1122, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01122[];
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee01122[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01122[0]),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01122[0]),
+ 0,
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee01122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee01122[];
+static VTBL_ENTRY _tg__ZTV6dd1122__7ee01122[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1122[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc122__6dd1122__7ee01122[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__6dd1122__7ee01122[] = {
+ 0,
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc122__7ee01122[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc122__7ee01122[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee01122[] = {
+ {&(_ZTV7ee01122[4]), 4,13},
+ {&(_tg__ZTV6dd1122__7ee01122[4]), 4,4},
+ {&(_tg__ZTV5cc122__6dd1122__7ee01122[3]), 3,3},
+ {&(_tg__ZTV4bb22__6dd1122__7ee01122[4]), 4,6},
+ {&(_ZTV7ee01122[7]), 7,13},
+ {&(_ZTV7ee01122[11]), 11,13},
+ {&(_tg__ZTV5cc122__7ee01122[3]), 3,3},
+ {&(_tg__ZTV4bb22__5cc122__7ee01122[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee01122[];
+extern VTBL_ENTRY _ZTV7ee01122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01122[];
+Class_Descriptor cd_ee01122 = { "ee01122", // class name
+ bases_ee01122, 4,
+ &(vtc_ee01122[0]), // expected_vtbl_contents
+ &(vtt_ee01122[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee01122),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01122),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01122),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 ee11122 : virtual dd1122 {
+ int e;
+ ~ee11122(); // tgen
+ ee11122(); // tgen
+};
+//SIG(1 ee11122) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} Fi} Fi} Fi}
+
+
+ee11122 ::~ee11122(){ note_dtor("ee11122", this);} // tgen
+ee11122 ::ee11122(){ note_ctor("ee11122", this);} // tgen
+
+static void Test_ee11122()
+{
+ extern Class_Descriptor cd_ee11122;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee11122, buf);
+ ee11122 *dp, &lv = *(dp=new (buf) ee11122());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee11122)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11122)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(48,24), "ee11122");
+ check_base_class_offset(lv, (bb22*)(cc122*), ABISELECT(48,24), "ee11122");
+ check_base_class_offset(lv, (cc122*)(dd1122*), ABISELECT(32,16), "ee11122");
+ check_base_class_offset(lv, (dd1122*), ABISELECT(16,8), "ee11122");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11122.e");
+ test_class_info(&lv, &cd_ee11122);
+ dp->~ee11122();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11122(Test_ee11122, "ee11122", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee11122C1Ev();
+extern void _ZN7ee11122D1Ev();
+Name_Map name_map_ee11122[] = {
+ NSPAIR(_ZN7ee11122C1Ev),
+ NSPAIR(_ZN7ee11122D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc122;
+extern VTBL_ENTRY _ZTI5cc122[];
+extern VTBL_ENTRY _ZTV5cc122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc122[];
+extern Class_Descriptor cd_dd1122;
+extern VTBL_ENTRY _ZTI6dd1122[];
+extern VTBL_ENTRY _ZTV6dd1122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1122[];
+static Base_Class bases_ee11122[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb22, ABISELECT(48,24), //bcp->offset
+ 12, //bcp->virtual_function_table_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_cc122, 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_dd1122, 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 _ZTI7ee11122[];
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee11122[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11122[0]),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11122[0]),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11122[0]),
+ 0,
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee11122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee11122[];
+static VTBL_ENTRY _tg__ZTV6dd1122__7ee11122[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1122[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc122__6dd1122__7ee11122[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__6dd1122__7ee11122[] = {
+ 0,
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc122__7ee11122[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc122__7ee11122[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee11122[] = {
+ {&(_ZTV7ee11122[5]), 5,18},
+ {&(_ZTV7ee11122[9]), 9,18},
+ {&(_ZTV7ee11122[12]), 12,18},
+ {&(_ZTV7ee11122[16]), 16,18},
+ {&(_tg__ZTV6dd1122__7ee11122[4]), 4,4},
+ {&(_tg__ZTV5cc122__6dd1122__7ee11122[3]), 3,3},
+ {&(_tg__ZTV4bb22__6dd1122__7ee11122[4]), 4,6},
+ {&(_tg__ZTV5cc122__7ee11122[3]), 3,3},
+ {&(_tg__ZTV4bb22__5cc122__7ee11122[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee11122[];
+extern VTBL_ENTRY _ZTV7ee11122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11122[];
+Class_Descriptor cd_ee11122 = { "ee11122", // class name
+ bases_ee11122, 4,
+ &(vtc_ee11122[0]), // expected_vtbl_contents
+ &(vtt_ee11122[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee11122),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11122),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11122),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 ee21122 : dd1122 {
+ int e;
+ virtual void foo(); // _ZN7ee211223fooEv
+ ~ee21122(); // tgen
+ ee21122(); // tgen
+};
+//SIG(1 ee21122) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} Fi} Fi} v1 Fi}
+
+
+void ee21122 ::foo(){vfunc_called(this, "_ZN7ee211223fooEv");}
+ee21122 ::~ee21122(){ note_dtor("ee21122", this);} // tgen
+ee21122 ::ee21122(){ note_ctor("ee21122", this);} // tgen
+
+static void Test_ee21122()
+{
+ extern Class_Descriptor cd_ee21122;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee21122, buf);
+ ee21122 *dp, &lv = *(dp=new (buf) ee21122());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee21122)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21122)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee21122");
+ check_base_class_offset(lv, (bb22*)(cc122*), ABISELECT(32,20), "ee21122");
+ check_base_class_offset(lv, (cc122*)(dd1122*), ABISELECT(16,12), "ee21122");
+ check_base_class_offset(lv, (dd1122*), 0, "ee21122");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21122.e");
+ test_class_info(&lv, &cd_ee21122);
+ dp->~ee21122();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21122(Test_ee21122, "ee21122", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee21122C1Ev();
+extern void _ZN7ee21122D1Ev();
+Name_Map name_map_ee21122[] = {
+ NSPAIR(_ZN7ee21122C1Ev),
+ NSPAIR(_ZN7ee21122D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc122;
+extern VTBL_ENTRY _ZTI5cc122[];
+extern VTBL_ENTRY _ZTV5cc122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc122[];
+extern Class_Descriptor cd_dd1122;
+extern VTBL_ENTRY _ZTI6dd1122[];
+extern VTBL_ENTRY _ZTV6dd1122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1122[];
+static Base_Class bases_ee21122[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 8, //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_cc122, 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_dd1122, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21122[];
+extern void _ZN7ee211223fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee211223fooEv,_ZTv0_n12_N7ee211223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee211223fooEv,_ZThn20_N7ee211223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee21122[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21122[0]),
+ (VTBL_ENTRY)&_ZN7ee211223fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21122[0]),
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee21122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee211223fooEv,_ZTv0_n12_N7ee211223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee21122[];
+static VTBL_ENTRY _tg__ZTV6dd1122__7ee21122[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1122[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc122__6dd1122__7ee21122[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__6dd1122__7ee21122[] = {
+ 0,
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc122__7ee21122[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc122__7ee21122[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee21122[] = {
+ {&(_ZTV7ee21122[4]), 4,14},
+ {&(_tg__ZTV6dd1122__7ee21122[4]), 4,4},
+ {&(_tg__ZTV5cc122__6dd1122__7ee21122[3]), 3,3},
+ {&(_tg__ZTV4bb22__6dd1122__7ee21122[4]), 4,6},
+ {&(_ZTV7ee21122[8]), 8,14},
+ {&(_ZTV7ee21122[12]), 12,14},
+ {&(_tg__ZTV5cc122__7ee21122[3]), 3,3},
+ {&(_tg__ZTV4bb22__5cc122__7ee21122[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee21122[];
+extern VTBL_ENTRY _ZTV7ee21122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21122[];
+static VTBL_ENTRY alt_thunk_names902[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee211223fooEv,_ZTv0_n12_N7ee211223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee211223fooEv,_ZThn20_N7ee211223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21122 = { "ee21122", // class name
+ bases_ee21122, 4,
+ &(vtc_ee21122[0]), // expected_vtbl_contents
+ &(vtt_ee21122[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee21122),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21122),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21122),8, //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 ee31122 : virtual dd1122 {
+ int e;
+ virtual void foo(); // _ZN7ee311223fooEv
+ ~ee31122(); // tgen
+ ee31122(); // tgen
+};
+//SIG(1 ee31122) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} Fi} Fi} v1 Fi}
+
+
+void ee31122 ::foo(){vfunc_called(this, "_ZN7ee311223fooEv");}
+ee31122 ::~ee31122(){ note_dtor("ee31122", this);} // tgen
+ee31122 ::ee31122(){ note_ctor("ee31122", this);} // tgen
+
+static void Test_ee31122()
+{
+ extern Class_Descriptor cd_ee31122;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee31122, buf);
+ ee31122 *dp, &lv = *(dp=new (buf) ee31122());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee31122)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31122)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(48,24), "ee31122");
+ check_base_class_offset(lv, (bb22*)(cc122*), ABISELECT(48,24), "ee31122");
+ check_base_class_offset(lv, (cc122*)(dd1122*), ABISELECT(32,16), "ee31122");
+ check_base_class_offset(lv, (dd1122*), ABISELECT(16,8), "ee31122");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31122.e");
+ test_class_info(&lv, &cd_ee31122);
+ dp->~ee31122();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31122(Test_ee31122, "ee31122", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee31122C1Ev();
+extern void _ZN7ee31122D1Ev();
+Name_Map name_map_ee31122[] = {
+ NSPAIR(_ZN7ee31122C1Ev),
+ NSPAIR(_ZN7ee31122D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc122;
+extern VTBL_ENTRY _ZTI5cc122[];
+extern VTBL_ENTRY _ZTV5cc122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc122[];
+extern Class_Descriptor cd_dd1122;
+extern VTBL_ENTRY _ZTI6dd1122[];
+extern VTBL_ENTRY _ZTV6dd1122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1122[];
+static Base_Class bases_ee31122[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb22, ABISELECT(48,24), //bcp->offset
+ 13, //bcp->virtual_function_table_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_cc122, 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_dd1122, 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 _ZTI7ee31122[];
+extern void _ZN7ee311223fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee311223fooEv,_ZTv0_n12_N7ee311223fooEv)();
+extern void ABISELECT(_ZThn48_N7ee311223fooEv,_ZThn24_N7ee311223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee31122[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31122[0]),
+ (VTBL_ENTRY)&_ZN7ee311223fooEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31122[0]),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31122[0]),
+ 0,
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee31122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee311223fooEv,_ZTv0_n12_N7ee311223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee31122[];
+static VTBL_ENTRY _tg__ZTV6dd1122__7ee31122[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1122[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc122__6dd1122__7ee31122[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__6dd1122__7ee31122[] = {
+ 0,
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc122__7ee31122[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc122__7ee31122[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee31122[] = {
+ {&(_ZTV7ee31122[5]), 5,19},
+ {&(_ZTV7ee31122[10]), 10,19},
+ {&(_ZTV7ee31122[13]), 13,19},
+ {&(_ZTV7ee31122[17]), 17,19},
+ {&(_tg__ZTV6dd1122__7ee31122[4]), 4,4},
+ {&(_tg__ZTV5cc122__6dd1122__7ee31122[3]), 3,3},
+ {&(_tg__ZTV4bb22__6dd1122__7ee31122[4]), 4,6},
+ {&(_tg__ZTV5cc122__7ee31122[3]), 3,3},
+ {&(_tg__ZTV4bb22__5cc122__7ee31122[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee31122[];
+extern VTBL_ENTRY _ZTV7ee31122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31122[];
+static VTBL_ENTRY alt_thunk_names903[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee311223fooEv,_ZTv0_n12_N7ee311223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee311223fooEv,_ZThn24_N7ee311223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31122 = { "ee31122", // class name
+ bases_ee31122, 4,
+ &(vtc_ee31122[0]), // expected_vtbl_contents
+ &(vtt_ee31122[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee31122),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31122),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31122),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names903,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee41122 : dd1122 {
+ int e;
+ virtual void bar(); // _ZN7ee411223barEv
+ ~ee41122(); // tgen
+ ee41122(); // tgen
+};
+//SIG(1 ee41122) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} Fi} Fi} v1 Fi}
+
+
+void ee41122 ::bar(){vfunc_called(this, "_ZN7ee411223barEv");}
+ee41122 ::~ee41122(){ note_dtor("ee41122", this);} // tgen
+ee41122 ::ee41122(){ note_ctor("ee41122", this);} // tgen
+
+static void Test_ee41122()
+{
+ extern Class_Descriptor cd_ee41122;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee41122, buf);
+ ee41122 *dp, &lv = *(dp=new (buf) ee41122());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee41122)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41122)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee41122");
+ check_base_class_offset(lv, (bb22*)(cc122*), ABISELECT(32,20), "ee41122");
+ check_base_class_offset(lv, (cc122*)(dd1122*), ABISELECT(16,12), "ee41122");
+ check_base_class_offset(lv, (dd1122*), 0, "ee41122");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41122.e");
+ test_class_info(&lv, &cd_ee41122);
+ dp->~ee41122();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41122(Test_ee41122, "ee41122", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee41122C1Ev();
+extern void _ZN7ee41122D1Ev();
+Name_Map name_map_ee41122[] = {
+ NSPAIR(_ZN7ee41122C1Ev),
+ NSPAIR(_ZN7ee41122D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc122;
+extern VTBL_ENTRY _ZTI5cc122[];
+extern VTBL_ENTRY _ZTV5cc122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc122[];
+extern Class_Descriptor cd_dd1122;
+extern VTBL_ENTRY _ZTI6dd1122[];
+extern VTBL_ENTRY _ZTV6dd1122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1122[];
+static Base_Class bases_ee41122[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 8, //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_cc122, 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_dd1122, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41122[];
+extern void _ZN7ee411223barEv();
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee411223barEv,_ZTv0_n16_N7ee411223barEv)();
+extern void ABISELECT(_ZThn32_N7ee411223barEv,_ZThn20_N7ee411223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee41122[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41122[0]),
+ (VTBL_ENTRY)&_ZN7ee411223barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41122[0]),
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee41122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee411223barEv,_ZTv0_n16_N7ee411223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee41122[];
+static VTBL_ENTRY _tg__ZTV6dd1122__7ee41122[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1122[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc122__6dd1122__7ee41122[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__6dd1122__7ee41122[] = {
+ 0,
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc122__7ee41122[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc122__7ee41122[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee41122[] = {
+ {&(_ZTV7ee41122[4]), 4,14},
+ {&(_tg__ZTV6dd1122__7ee41122[4]), 4,4},
+ {&(_tg__ZTV5cc122__6dd1122__7ee41122[3]), 3,3},
+ {&(_tg__ZTV4bb22__6dd1122__7ee41122[4]), 4,6},
+ {&(_ZTV7ee41122[8]), 8,14},
+ {&(_ZTV7ee41122[12]), 12,14},
+ {&(_tg__ZTV5cc122__7ee41122[3]), 3,3},
+ {&(_tg__ZTV4bb22__5cc122__7ee41122[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee41122[];
+extern VTBL_ENTRY _ZTV7ee41122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41122[];
+static VTBL_ENTRY alt_thunk_names904[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee411223barEv,_ZTv0_n16_N7ee411223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee411223barEv,_ZThn20_N7ee411223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41122 = { "ee41122", // class name
+ bases_ee41122, 4,
+ &(vtc_ee41122[0]), // expected_vtbl_contents
+ &(vtt_ee41122[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee41122),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41122),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41122),8, //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 ee51122 : virtual dd1122 {
+ int e;
+ virtual void bar(); // _ZN7ee511223barEv
+ ~ee51122(); // tgen
+ ee51122(); // tgen
+};
+//SIG(1 ee51122) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} Fi} Fi} v1 Fi}
+
+
+void ee51122 ::bar(){vfunc_called(this, "_ZN7ee511223barEv");}
+ee51122 ::~ee51122(){ note_dtor("ee51122", this);} // tgen
+ee51122 ::ee51122(){ note_ctor("ee51122", this);} // tgen
+
+static void Test_ee51122()
+{
+ extern Class_Descriptor cd_ee51122;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee51122, buf);
+ ee51122 *dp, &lv = *(dp=new (buf) ee51122());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee51122)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51122)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(48,24), "ee51122");
+ check_base_class_offset(lv, (bb22*)(cc122*), ABISELECT(48,24), "ee51122");
+ check_base_class_offset(lv, (cc122*)(dd1122*), ABISELECT(32,16), "ee51122");
+ check_base_class_offset(lv, (dd1122*), ABISELECT(16,8), "ee51122");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51122.e");
+ test_class_info(&lv, &cd_ee51122);
+ dp->~ee51122();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51122(Test_ee51122, "ee51122", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee51122C1Ev();
+extern void _ZN7ee51122D1Ev();
+Name_Map name_map_ee51122[] = {
+ NSPAIR(_ZN7ee51122C1Ev),
+ NSPAIR(_ZN7ee51122D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc122;
+extern VTBL_ENTRY _ZTI5cc122[];
+extern VTBL_ENTRY _ZTV5cc122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc122[];
+extern Class_Descriptor cd_dd1122;
+extern VTBL_ENTRY _ZTI6dd1122[];
+extern VTBL_ENTRY _ZTV6dd1122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1122[];
+static Base_Class bases_ee51122[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb22, ABISELECT(48,24), //bcp->offset
+ 13, //bcp->virtual_function_table_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_cc122, 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_dd1122, 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 _ZTI7ee51122[];
+extern void _ZN7ee511223barEv();
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee511223barEv,_ZTv0_n16_N7ee511223barEv)();
+extern void ABISELECT(_ZThn48_N7ee511223barEv,_ZThn24_N7ee511223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee51122[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51122[0]),
+ (VTBL_ENTRY)&_ZN7ee511223barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51122[0]),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51122[0]),
+ ABISELECT(-48,-24),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee51122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee511223barEv,_ZTv0_n16_N7ee511223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee51122[];
+static VTBL_ENTRY _tg__ZTV6dd1122__7ee51122[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1122[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc122__6dd1122__7ee51122[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__6dd1122__7ee51122[] = {
+ 0,
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc122__7ee51122[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc122__7ee51122[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee51122[] = {
+ {&(_ZTV7ee51122[5]), 5,19},
+ {&(_ZTV7ee51122[10]), 10,19},
+ {&(_ZTV7ee51122[13]), 13,19},
+ {&(_ZTV7ee51122[17]), 17,19},
+ {&(_tg__ZTV6dd1122__7ee51122[4]), 4,4},
+ {&(_tg__ZTV5cc122__6dd1122__7ee51122[3]), 3,3},
+ {&(_tg__ZTV4bb22__6dd1122__7ee51122[4]), 4,6},
+ {&(_tg__ZTV5cc122__7ee51122[3]), 3,3},
+ {&(_tg__ZTV4bb22__5cc122__7ee51122[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee51122[];
+extern VTBL_ENTRY _ZTV7ee51122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51122[];
+static VTBL_ENTRY alt_thunk_names905[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee511223barEv,_ZTv0_n16_N7ee511223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee511223barEv,_ZThn24_N7ee511223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51122 = { "ee51122", // class name
+ bases_ee51122, 4,
+ &(vtc_ee51122[0]), // expected_vtbl_contents
+ &(vtt_ee51122[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee51122),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51122),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51122),9, //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 ee61122 : dd1122 {
+ int e;
+ virtual void foo(); // _ZN7ee611223fooEv
+ virtual void bar(); // _ZN7ee611223barEv
+ ~ee61122(); // tgen
+ ee61122(); // tgen
+};
+//SIG(1 ee61122) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee61122 ::foo(){vfunc_called(this, "_ZN7ee611223fooEv");}
+void ee61122 ::bar(){vfunc_called(this, "_ZN7ee611223barEv");}
+ee61122 ::~ee61122(){ note_dtor("ee61122", this);} // tgen
+ee61122 ::ee61122(){ note_ctor("ee61122", this);} // tgen
+
+static void Test_ee61122()
+{
+ extern Class_Descriptor cd_ee61122;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee61122, buf);
+ ee61122 *dp, &lv = *(dp=new (buf) ee61122());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee61122)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61122)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee61122");
+ check_base_class_offset(lv, (bb22*)(cc122*), ABISELECT(32,20), "ee61122");
+ check_base_class_offset(lv, (cc122*)(dd1122*), ABISELECT(16,12), "ee61122");
+ check_base_class_offset(lv, (dd1122*), 0, "ee61122");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61122.e");
+ test_class_info(&lv, &cd_ee61122);
+ dp->~ee61122();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61122(Test_ee61122, "ee61122", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee61122C1Ev();
+extern void _ZN7ee61122D1Ev();
+Name_Map name_map_ee61122[] = {
+ NSPAIR(_ZN7ee61122C1Ev),
+ NSPAIR(_ZN7ee61122D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc122;
+extern VTBL_ENTRY _ZTI5cc122[];
+extern VTBL_ENTRY _ZTV5cc122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc122[];
+extern Class_Descriptor cd_dd1122;
+extern VTBL_ENTRY _ZTI6dd1122[];
+extern VTBL_ENTRY _ZTV6dd1122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1122[];
+static Base_Class bases_ee61122[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc122, 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_dd1122, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61122[];
+extern void _ZN7ee611223fooEv();
+extern void _ZN7ee611223barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee611223fooEv,_ZTv0_n12_N7ee611223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee611223fooEv,_ZThn20_N7ee611223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee611223barEv,_ZTv0_n16_N7ee611223barEv)();
+extern void ABISELECT(_ZThn32_N7ee611223barEv,_ZThn20_N7ee611223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61122[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61122[0]),
+ (VTBL_ENTRY)&_ZN7ee611223fooEv,
+ (VTBL_ENTRY)&_ZN7ee611223barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61122[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee61122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee611223fooEv,_ZTv0_n12_N7ee611223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee611223barEv,_ZTv0_n16_N7ee611223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee61122[];
+static VTBL_ENTRY _tg__ZTV6dd1122__7ee61122[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1122[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc122__6dd1122__7ee61122[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__6dd1122__7ee61122[] = {
+ 0,
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc122__7ee61122[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc122__7ee61122[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee61122[] = {
+ {&(_ZTV7ee61122[4]), 4,15},
+ {&(_tg__ZTV6dd1122__7ee61122[4]), 4,4},
+ {&(_tg__ZTV5cc122__6dd1122__7ee61122[3]), 3,3},
+ {&(_tg__ZTV4bb22__6dd1122__7ee61122[4]), 4,6},
+ {&(_ZTV7ee61122[9]), 9,15},
+ {&(_ZTV7ee61122[13]), 13,15},
+ {&(_tg__ZTV5cc122__7ee61122[3]), 3,3},
+ {&(_tg__ZTV4bb22__5cc122__7ee61122[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee61122[];
+extern VTBL_ENTRY _ZTV7ee61122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61122[];
+static VTBL_ENTRY alt_thunk_names906[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee611223barEv,_ZTv0_n16_N7ee611223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee611223barEv,_ZThn20_N7ee611223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee611223fooEv,_ZTv0_n12_N7ee611223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee611223fooEv,_ZThn20_N7ee611223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61122 = { "ee61122", // class name
+ bases_ee61122, 4,
+ &(vtc_ee61122[0]), // expected_vtbl_contents
+ &(vtt_ee61122[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee61122),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61122),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61122),8, //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 ee71122 : virtual dd1122 {
+ int e;
+ virtual void foo(); // _ZN7ee711223fooEv
+ virtual void bar(); // _ZN7ee711223barEv
+ ~ee71122(); // tgen
+ ee71122(); // tgen
+};
+//SIG(1 ee71122) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee71122 ::foo(){vfunc_called(this, "_ZN7ee711223fooEv");}
+void ee71122 ::bar(){vfunc_called(this, "_ZN7ee711223barEv");}
+ee71122 ::~ee71122(){ note_dtor("ee71122", this);} // tgen
+ee71122 ::ee71122(){ note_ctor("ee71122", this);} // tgen
+
+static void Test_ee71122()
+{
+ extern Class_Descriptor cd_ee71122;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee71122, buf);
+ ee71122 *dp, &lv = *(dp=new (buf) ee71122());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee71122)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71122)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(48,24), "ee71122");
+ check_base_class_offset(lv, (bb22*)(cc122*), ABISELECT(48,24), "ee71122");
+ check_base_class_offset(lv, (cc122*)(dd1122*), ABISELECT(32,16), "ee71122");
+ check_base_class_offset(lv, (dd1122*), ABISELECT(16,8), "ee71122");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71122.e");
+ test_class_info(&lv, &cd_ee71122);
+ dp->~ee71122();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71122(Test_ee71122, "ee71122", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee71122C1Ev();
+extern void _ZN7ee71122D1Ev();
+Name_Map name_map_ee71122[] = {
+ NSPAIR(_ZN7ee71122C1Ev),
+ NSPAIR(_ZN7ee71122D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc122;
+extern VTBL_ENTRY _ZTI5cc122[];
+extern VTBL_ENTRY _ZTV5cc122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc122[];
+extern Class_Descriptor cd_dd1122;
+extern VTBL_ENTRY _ZTI6dd1122[];
+extern VTBL_ENTRY _ZTV6dd1122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1122[];
+static Base_Class bases_ee71122[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb22, ABISELECT(48,24), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc122, 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_dd1122, 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 _ZTI7ee71122[];
+extern void _ZN7ee711223fooEv();
+extern void _ZN7ee711223barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee711223fooEv,_ZTv0_n12_N7ee711223fooEv)();
+extern void ABISELECT(_ZThn48_N7ee711223fooEv,_ZThn24_N7ee711223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee711223barEv,_ZTv0_n16_N7ee711223barEv)();
+extern void ABISELECT(_ZThn48_N7ee711223barEv,_ZThn24_N7ee711223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71122[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71122[0]),
+ (VTBL_ENTRY)&_ZN7ee711223fooEv,
+ (VTBL_ENTRY)&_ZN7ee711223barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71122[0]),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71122[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee71122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee711223fooEv,_ZTv0_n12_N7ee711223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee711223barEv,_ZTv0_n16_N7ee711223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee71122[];
+static VTBL_ENTRY _tg__ZTV6dd1122__7ee71122[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1122[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc122__6dd1122__7ee71122[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__6dd1122__7ee71122[] = {
+ 0,
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc122__7ee71122[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc122__7ee71122[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee71122[] = {
+ {&(_ZTV7ee71122[5]), 5,20},
+ {&(_ZTV7ee71122[11]), 11,20},
+ {&(_ZTV7ee71122[14]), 14,20},
+ {&(_ZTV7ee71122[18]), 18,20},
+ {&(_tg__ZTV6dd1122__7ee71122[4]), 4,4},
+ {&(_tg__ZTV5cc122__6dd1122__7ee71122[3]), 3,3},
+ {&(_tg__ZTV4bb22__6dd1122__7ee71122[4]), 4,6},
+ {&(_tg__ZTV5cc122__7ee71122[3]), 3,3},
+ {&(_tg__ZTV4bb22__5cc122__7ee71122[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee71122[];
+extern VTBL_ENTRY _ZTV7ee71122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71122[];
+static VTBL_ENTRY alt_thunk_names907[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee711223barEv,_ZTv0_n16_N7ee711223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee711223barEv,_ZThn24_N7ee711223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee711223fooEv,_ZTv0_n12_N7ee711223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee711223fooEv,_ZThn24_N7ee711223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71122 = { "ee71122", // class name
+ bases_ee71122, 4,
+ &(vtc_ee71122[0]), // expected_vtbl_contents
+ &(vtt_ee71122[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee71122),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71122),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71122),9, //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 dd2122 : cc122 {
+ int d;
+ virtual void foo(); // _ZN6dd21223fooEv
+ ~dd2122(); // tgen
+ dd2122(); // tgen
+};
+//SIG(-1 dd2122) C1{ BC2{ VBC3{ BC4{ v1 v2 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void dd2122 ::foo(){vfunc_called(this, "_ZN6dd21223fooEv");}
+dd2122 ::~dd2122(){ note_dtor("dd2122", this);} // tgen
+dd2122 ::dd2122(){ note_ctor("dd2122", this);} // tgen
+
+static void Test_dd2122()
+{
+ extern Class_Descriptor cd_dd2122;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd2122, buf);
+ dd2122 *dp, &lv = *(dp=new (buf) dd2122());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd2122)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2122)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(16,12), "dd2122");
+ check_base_class_offset(lv, (bb22*)(cc122*), ABISELECT(16,12), "dd2122");
+ check_base_class_offset(lv, (cc122*), 0, "dd2122");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd2122.d");
+ test_class_info(&lv, &cd_dd2122);
+ dp->~dd2122();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2122(Test_dd2122, "dd2122", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd2122C1Ev();
+extern void _ZN6dd2122D1Ev();
+Name_Map name_map_dd2122[] = {
+ NSPAIR(_ZN6dd2122C1Ev),
+ NSPAIR(_ZN6dd2122D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc122;
+extern VTBL_ENTRY _ZTI5cc122[];
+extern VTBL_ENTRY _ZTV5cc122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc122[];
+static Base_Class bases_dd2122[] = {
+ // 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_bb22, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc122, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd2122[];
+extern void _ZN6dd21223fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd21223fooEv,_ZTv0_n12_N6dd21223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd21223fooEv,_ZThn12_N6dd21223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_dd2122[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2122[0]),
+ (VTBL_ENTRY)&_ZN6dd21223fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21223fooEv,_ZTv0_n12_N6dd21223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV6dd2122[];
+static VTBL_ENTRY _tg__ZTV5cc122__6dd2122[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc122__6dd2122[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_dd2122[] = {
+ {&(_ZTV6dd2122[3]), 3,10},
+ {&(_tg__ZTV5cc122__6dd2122[3]), 3,3},
+ {&(_tg__ZTV4bb22__5cc122__6dd2122[4]), 4,6},
+ {&(_ZTV6dd2122[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd2122[];
+extern VTBL_ENTRY _ZTV6dd2122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2122[];
+static VTBL_ENTRY alt_thunk_names908[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21223fooEv,_ZTv0_n12_N6dd21223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd21223fooEv,_ZThn12_N6dd21223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd2122 = { "dd2122", // class name
+ bases_dd2122, 3,
+ &(vtc_dd2122[0]), // expected_vtbl_contents
+ &(vtt_dd2122[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd2122),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2122),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd2122),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names908,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee02122 : dd2122 {
+ int e;
+ ~ee02122(); // tgen
+ ee02122(); // tgen
+};
+//SIG(1 ee02122) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} Fi} v1 Fi} Fi}
+
+
+ee02122 ::~ee02122(){ note_dtor("ee02122", this);} // tgen
+ee02122 ::ee02122(){ note_ctor("ee02122", this);} // tgen
+
+static void Test_ee02122()
+{
+ extern Class_Descriptor cd_ee02122;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee02122, buf);
+ ee02122 *dp, &lv = *(dp=new (buf) ee02122());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee02122)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02122)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(24,16), "ee02122");
+ check_base_class_offset(lv, (bb22*)(cc122*)(dd2122*), ABISELECT(24,16), "ee02122");
+ check_base_class_offset(lv, (cc122*)(dd2122*), 0, "ee02122");
+ check_base_class_offset(lv, (dd2122*), 0, "ee02122");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee02122.e");
+ test_class_info(&lv, &cd_ee02122);
+ dp->~ee02122();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02122(Test_ee02122, "ee02122", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee02122C1Ev();
+extern void _ZN7ee02122D1Ev();
+Name_Map name_map_ee02122[] = {
+ NSPAIR(_ZN7ee02122C1Ev),
+ NSPAIR(_ZN7ee02122D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc122;
+extern VTBL_ENTRY _ZTI5cc122[];
+extern VTBL_ENTRY _ZTV5cc122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc122[];
+extern Class_Descriptor cd_dd2122;
+extern VTBL_ENTRY _ZTI6dd2122[];
+extern VTBL_ENTRY _ZTV6dd2122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2122[];
+static Base_Class bases_ee02122[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc122, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2122, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee02122[];
+extern void _ZN6dd21223fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd21223fooEv,_ZTv0_n12_N6dd21223fooEv)();
+extern void ABISELECT(_ZThn24_N6dd21223fooEv,_ZThn16_N6dd21223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee02122[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02122[0]),
+ (VTBL_ENTRY)&_ZN6dd21223fooEv,
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee02122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21223fooEv,_ZTv0_n12_N6dd21223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee02122[];
+extern void _ZN6dd21223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2122__7ee02122[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2122[0]),
+ (VTBL_ENTRY)&_ZN6dd21223fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1226dd2122__7ee02122[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc1226dd2122__7ee02122[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd21223fooEv,_ZTv0_n12_N6dd21223fooEv)();
+extern void ABISELECT(_ZThn24_N6dd21223fooEv,_ZThn16_N6dd21223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__6dd2122__7ee02122[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21223fooEv,_ZTv0_n12_N6dd21223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee02122[] = {
+ {&(_ZTV7ee02122[3]), 3,10},
+ {&(_tg__ZTV6dd2122__7ee02122[3]), 3,4},
+ {&(_tg__ZTV5cc1226dd2122__7ee02122[3]), 3,3},
+ {&(_tg__ZTV4bb22__5cc1226dd2122__7ee02122[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd2122__7ee02122[4]), 4,6},
+ {&(_ZTV7ee02122[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee02122[];
+extern VTBL_ENTRY _ZTV7ee02122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee02122[];
+static VTBL_ENTRY alt_thunk_names909[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21223fooEv,_ZTv0_n12_N6dd21223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd21223fooEv,_ZThn16_N6dd21223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd21223fooEv,_ZThn16_N6dd21223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee02122 = { "ee02122", // class name
+ bases_ee02122, 4,
+ &(vtc_ee02122[0]), // expected_vtbl_contents
+ &(vtt_ee02122[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee02122),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02122),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee02122),6, //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 ee12122 : virtual dd2122 {
+ int e;
+ ~ee12122(); // tgen
+ ee12122(); // tgen
+};
+//SIG(1 ee12122) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} Fi} v1 Fi} Fi}
+
+
+ee12122 ::~ee12122(){ note_dtor("ee12122", this);} // tgen
+ee12122 ::ee12122(){ note_ctor("ee12122", this);} // tgen
+
+static void Test_ee12122()
+{
+ extern Class_Descriptor cd_ee12122;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee12122, buf);
+ ee12122 *dp, &lv = *(dp=new (buf) ee12122());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee12122)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12122)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee12122");
+ check_base_class_offset(lv, (bb22*)(cc122*)(dd2122*), ABISELECT(32,20), "ee12122");
+ check_base_class_offset(lv, (cc122*)(dd2122*), ABISELECT(16,8), "ee12122");
+ check_base_class_offset(lv, (dd2122*), ABISELECT(16,8), "ee12122");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12122.e");
+ test_class_info(&lv, &cd_ee12122);
+ dp->~ee12122();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12122(Test_ee12122, "ee12122", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee12122C1Ev();
+extern void _ZN7ee12122D1Ev();
+Name_Map name_map_ee12122[] = {
+ NSPAIR(_ZN7ee12122C1Ev),
+ NSPAIR(_ZN7ee12122D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc122;
+extern VTBL_ENTRY _ZTI5cc122[];
+extern VTBL_ENTRY _ZTV5cc122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc122[];
+extern Class_Descriptor cd_dd2122;
+extern VTBL_ENTRY _ZTI6dd2122[];
+extern VTBL_ENTRY _ZTV6dd2122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2122[];
+static Base_Class bases_ee12122[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc122, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2122, 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 _ZTI7ee12122[];
+extern void _ZN6dd21223fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd21223fooEv,_ZTv0_n12_N6dd21223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd21223fooEv,_ZThn12_N6dd21223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee12122[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12122[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12122[0]),
+ (VTBL_ENTRY)&_ZN6dd21223fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee12122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21223fooEv,_ZTv0_n12_N6dd21223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee12122[];
+extern void _ZN6dd21223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2122__7ee12122[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2122[0]),
+ (VTBL_ENTRY)&_ZN6dd21223fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1226dd2122__7ee12122[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc1226dd2122__7ee12122[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd21223fooEv,_ZTv0_n12_N6dd21223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd21223fooEv,_ZThn12_N6dd21223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__6dd2122__7ee12122[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21223fooEv,_ZTv0_n12_N6dd21223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee12122[] = {
+ {&(_ZTV7ee12122[4]), 4,15},
+ {&(_ZTV7ee12122[8]), 8,15},
+ {&(_ZTV7ee12122[13]), 13,15},
+ {&(_tg__ZTV6dd2122__7ee12122[3]), 3,4},
+ {&(_tg__ZTV5cc1226dd2122__7ee12122[3]), 3,3},
+ {&(_tg__ZTV4bb22__5cc1226dd2122__7ee12122[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd2122__7ee12122[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee12122[];
+extern VTBL_ENTRY _ZTV7ee12122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12122[];
+static VTBL_ENTRY alt_thunk_names910[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21223fooEv,_ZTv0_n12_N6dd21223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd21223fooEv,_ZThn12_N6dd21223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd21223fooEv,_ZThn12_N6dd21223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee12122 = { "ee12122", // class name
+ bases_ee12122, 4,
+ &(vtc_ee12122[0]), // expected_vtbl_contents
+ &(vtt_ee12122[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee12122),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12122),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12122),7, //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 ee22122 : dd2122 {
+ int e;
+ virtual void foo(); // _ZN7ee221223fooEv
+ ~ee22122(); // tgen
+ ee22122(); // tgen
+};
+//SIG(1 ee22122) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee22122 ::foo(){vfunc_called(this, "_ZN7ee221223fooEv");}
+ee22122 ::~ee22122(){ note_dtor("ee22122", this);} // tgen
+ee22122 ::ee22122(){ note_ctor("ee22122", this);} // tgen
+
+static void Test_ee22122()
+{
+ extern Class_Descriptor cd_ee22122;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee22122, buf);
+ ee22122 *dp, &lv = *(dp=new (buf) ee22122());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee22122)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22122)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(24,16), "ee22122");
+ check_base_class_offset(lv, (bb22*)(cc122*)(dd2122*), ABISELECT(24,16), "ee22122");
+ check_base_class_offset(lv, (cc122*)(dd2122*), 0, "ee22122");
+ check_base_class_offset(lv, (dd2122*), 0, "ee22122");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee22122.e");
+ test_class_info(&lv, &cd_ee22122);
+ dp->~ee22122();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22122(Test_ee22122, "ee22122", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee22122C1Ev();
+extern void _ZN7ee22122D1Ev();
+Name_Map name_map_ee22122[] = {
+ NSPAIR(_ZN7ee22122C1Ev),
+ NSPAIR(_ZN7ee22122D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc122;
+extern VTBL_ENTRY _ZTI5cc122[];
+extern VTBL_ENTRY _ZTV5cc122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc122[];
+extern Class_Descriptor cd_dd2122;
+extern VTBL_ENTRY _ZTI6dd2122[];
+extern VTBL_ENTRY _ZTV6dd2122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2122[];
+static Base_Class bases_ee22122[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc122, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2122, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee22122[];
+extern void _ZN7ee221223fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee221223fooEv,_ZTv0_n12_N7ee221223fooEv)();
+extern void ABISELECT(_ZThn24_N7ee221223fooEv,_ZThn16_N7ee221223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee22122[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22122[0]),
+ (VTBL_ENTRY)&_ZN7ee221223fooEv,
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee22122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee221223fooEv,_ZTv0_n12_N7ee221223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee22122[];
+extern void _ZN6dd21223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2122__7ee22122[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2122[0]),
+ (VTBL_ENTRY)&_ZN6dd21223fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1226dd2122__7ee22122[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc1226dd2122__7ee22122[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd21223fooEv,_ZTv0_n12_N6dd21223fooEv)();
+extern void ABISELECT(_ZThn24_N6dd21223fooEv,_ZThn16_N6dd21223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__6dd2122__7ee22122[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21223fooEv,_ZTv0_n12_N6dd21223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee22122[] = {
+ {&(_ZTV7ee22122[3]), 3,10},
+ {&(_tg__ZTV6dd2122__7ee22122[3]), 3,4},
+ {&(_tg__ZTV5cc1226dd2122__7ee22122[3]), 3,3},
+ {&(_tg__ZTV4bb22__5cc1226dd2122__7ee22122[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd2122__7ee22122[4]), 4,6},
+ {&(_ZTV7ee22122[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee22122[];
+extern VTBL_ENTRY _ZTV7ee22122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee22122[];
+static VTBL_ENTRY alt_thunk_names911[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21223fooEv,_ZTv0_n12_N6dd21223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd21223fooEv,_ZThn16_N6dd21223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee221223fooEv,_ZTv0_n12_N7ee221223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee221223fooEv,_ZThn16_N7ee221223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee22122 = { "ee22122", // class name
+ bases_ee22122, 4,
+ &(vtc_ee22122[0]), // expected_vtbl_contents
+ &(vtt_ee22122[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee22122),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22122),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee22122),6, //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 ee32122 : virtual dd2122 {
+ int e;
+ virtual void foo(); // _ZN7ee321223fooEv
+ ~ee32122(); // tgen
+ ee32122(); // tgen
+};
+//SIG(1 ee32122) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee32122 ::foo(){vfunc_called(this, "_ZN7ee321223fooEv");}
+ee32122 ::~ee32122(){ note_dtor("ee32122", this);} // tgen
+ee32122 ::ee32122(){ note_ctor("ee32122", this);} // tgen
+
+static void Test_ee32122()
+{
+ extern Class_Descriptor cd_ee32122;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee32122, buf);
+ ee32122 *dp, &lv = *(dp=new (buf) ee32122());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee32122)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32122)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee32122");
+ check_base_class_offset(lv, (bb22*)(cc122*)(dd2122*), ABISELECT(32,20), "ee32122");
+ check_base_class_offset(lv, (cc122*)(dd2122*), ABISELECT(16,8), "ee32122");
+ check_base_class_offset(lv, (dd2122*), ABISELECT(16,8), "ee32122");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32122.e");
+ test_class_info(&lv, &cd_ee32122);
+ dp->~ee32122();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32122(Test_ee32122, "ee32122", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee32122C1Ev();
+extern void _ZN7ee32122D1Ev();
+Name_Map name_map_ee32122[] = {
+ NSPAIR(_ZN7ee32122C1Ev),
+ NSPAIR(_ZN7ee32122D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc122;
+extern VTBL_ENTRY _ZTI5cc122[];
+extern VTBL_ENTRY _ZTV5cc122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc122[];
+extern Class_Descriptor cd_dd2122;
+extern VTBL_ENTRY _ZTI6dd2122[];
+extern VTBL_ENTRY _ZTV6dd2122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2122[];
+static Base_Class bases_ee32122[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc122, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2122, 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 _ZTI7ee32122[];
+extern void _ZN7ee321223fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee321223fooEv,_ZTv0_n16_N7ee321223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee321223fooEv,_ZThn8_N7ee321223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee321223fooEv,_ZTv0_n12_N7ee321223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee321223fooEv,_ZThn20_N7ee321223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee32122[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32122[0]),
+ (VTBL_ENTRY)&_ZN7ee321223fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee321223fooEv,_ZTv0_n16_N7ee321223fooEv),
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee32122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee321223fooEv,_ZTv0_n12_N7ee321223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee32122[];
+extern void _ZN6dd21223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2122__7ee32122[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2122[0]),
+ (VTBL_ENTRY)&_ZN6dd21223fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1226dd2122__7ee32122[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc1226dd2122__7ee32122[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd21223fooEv,_ZTv0_n12_N6dd21223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd21223fooEv,_ZThn12_N6dd21223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__6dd2122__7ee32122[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21223fooEv,_ZTv0_n12_N6dd21223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee32122[] = {
+ {&(_ZTV7ee32122[4]), 4,16},
+ {&(_ZTV7ee32122[9]), 9,16},
+ {&(_ZTV7ee32122[14]), 14,16},
+ {&(_tg__ZTV6dd2122__7ee32122[3]), 3,4},
+ {&(_tg__ZTV5cc1226dd2122__7ee32122[3]), 3,3},
+ {&(_tg__ZTV4bb22__5cc1226dd2122__7ee32122[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd2122__7ee32122[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee32122[];
+extern VTBL_ENTRY _ZTV7ee32122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32122[];
+static VTBL_ENTRY alt_thunk_names912[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21223fooEv,_ZTv0_n12_N6dd21223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd21223fooEv,_ZThn12_N6dd21223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee321223fooEv,_ZTv0_n12_N7ee321223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee321223fooEv,_ZThn20_N7ee321223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee321223fooEv,_ZTv0_n16_N7ee321223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee321223fooEv,_ZThn8_N7ee321223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32122 = { "ee32122", // class name
+ bases_ee32122, 4,
+ &(vtc_ee32122[0]), // expected_vtbl_contents
+ &(vtt_ee32122[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee32122),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32122),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32122),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names912,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee42122 : dd2122 {
+ int e;
+ virtual void bar(); // _ZN7ee421223barEv
+ ~ee42122(); // tgen
+ ee42122(); // tgen
+};
+//SIG(1 ee42122) C1{ BC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee42122 ::bar(){vfunc_called(this, "_ZN7ee421223barEv");}
+ee42122 ::~ee42122(){ note_dtor("ee42122", this);} // tgen
+ee42122 ::ee42122(){ note_ctor("ee42122", this);} // tgen
+
+static void Test_ee42122()
+{
+ extern Class_Descriptor cd_ee42122;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee42122, buf);
+ ee42122 *dp, &lv = *(dp=new (buf) ee42122());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee42122)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42122)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(24,16), "ee42122");
+ check_base_class_offset(lv, (bb22*)(cc122*)(dd2122*), ABISELECT(24,16), "ee42122");
+ check_base_class_offset(lv, (cc122*)(dd2122*), 0, "ee42122");
+ check_base_class_offset(lv, (dd2122*), 0, "ee42122");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee42122.e");
+ test_class_info(&lv, &cd_ee42122);
+ dp->~ee42122();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42122(Test_ee42122, "ee42122", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee42122C1Ev();
+extern void _ZN7ee42122D1Ev();
+Name_Map name_map_ee42122[] = {
+ NSPAIR(_ZN7ee42122C1Ev),
+ NSPAIR(_ZN7ee42122D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc122;
+extern VTBL_ENTRY _ZTI5cc122[];
+extern VTBL_ENTRY _ZTV5cc122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc122[];
+extern Class_Descriptor cd_dd2122;
+extern VTBL_ENTRY _ZTI6dd2122[];
+extern VTBL_ENTRY _ZTV6dd2122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2122[];
+static Base_Class bases_ee42122[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc122, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2122, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee42122[];
+extern void _ZN6dd21223fooEv();
+extern void _ZN7ee421223barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd21223fooEv,_ZTv0_n12_N6dd21223fooEv)();
+extern void ABISELECT(_ZThn24_N6dd21223fooEv,_ZThn16_N6dd21223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee421223barEv,_ZTv0_n16_N7ee421223barEv)();
+extern void ABISELECT(_ZThn24_N7ee421223barEv,_ZThn16_N7ee421223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee42122[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42122[0]),
+ (VTBL_ENTRY)&_ZN6dd21223fooEv,
+ (VTBL_ENTRY)&_ZN7ee421223barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee42122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21223fooEv,_ZTv0_n12_N6dd21223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee421223barEv,_ZTv0_n16_N7ee421223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee42122[];
+extern void _ZN6dd21223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2122__7ee42122[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2122[0]),
+ (VTBL_ENTRY)&_ZN6dd21223fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1226dd2122__7ee42122[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc1226dd2122__7ee42122[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd21223fooEv,_ZTv0_n12_N6dd21223fooEv)();
+extern void ABISELECT(_ZThn24_N6dd21223fooEv,_ZThn16_N6dd21223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__6dd2122__7ee42122[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21223fooEv,_ZTv0_n12_N6dd21223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee42122[] = {
+ {&(_ZTV7ee42122[3]), 3,11},
+ {&(_tg__ZTV6dd2122__7ee42122[3]), 3,4},
+ {&(_tg__ZTV5cc1226dd2122__7ee42122[3]), 3,3},
+ {&(_tg__ZTV4bb22__5cc1226dd2122__7ee42122[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd2122__7ee42122[4]), 4,6},
+ {&(_ZTV7ee42122[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee42122[];
+extern VTBL_ENTRY _ZTV7ee42122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee42122[];
+static VTBL_ENTRY alt_thunk_names913[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee421223barEv,_ZTv0_n16_N7ee421223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee421223barEv,_ZThn16_N7ee421223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21223fooEv,_ZTv0_n12_N6dd21223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd21223fooEv,_ZThn16_N6dd21223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd21223fooEv,_ZThn16_N6dd21223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee42122 = { "ee42122", // class name
+ bases_ee42122, 4,
+ &(vtc_ee42122[0]), // expected_vtbl_contents
+ &(vtt_ee42122[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee42122),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42122),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee42122),6, //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 ee52122 : virtual dd2122 {
+ int e;
+ virtual void bar(); // _ZN7ee521223barEv
+ ~ee52122(); // tgen
+ ee52122(); // tgen
+};
+//SIG(1 ee52122) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee52122 ::bar(){vfunc_called(this, "_ZN7ee521223barEv");}
+ee52122 ::~ee52122(){ note_dtor("ee52122", this);} // tgen
+ee52122 ::ee52122(){ note_ctor("ee52122", this);} // tgen
+
+static void Test_ee52122()
+{
+ extern Class_Descriptor cd_ee52122;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee52122, buf);
+ ee52122 *dp, &lv = *(dp=new (buf) ee52122());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee52122)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52122)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee52122");
+ check_base_class_offset(lv, (bb22*)(cc122*)(dd2122*), ABISELECT(32,20), "ee52122");
+ check_base_class_offset(lv, (cc122*)(dd2122*), ABISELECT(16,8), "ee52122");
+ check_base_class_offset(lv, (dd2122*), ABISELECT(16,8), "ee52122");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52122.e");
+ test_class_info(&lv, &cd_ee52122);
+ dp->~ee52122();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52122(Test_ee52122, "ee52122", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee52122C1Ev();
+extern void _ZN7ee52122D1Ev();
+Name_Map name_map_ee52122[] = {
+ NSPAIR(_ZN7ee52122C1Ev),
+ NSPAIR(_ZN7ee52122D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc122;
+extern VTBL_ENTRY _ZTI5cc122[];
+extern VTBL_ENTRY _ZTV5cc122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc122[];
+extern Class_Descriptor cd_dd2122;
+extern VTBL_ENTRY _ZTI6dd2122[];
+extern VTBL_ENTRY _ZTV6dd2122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2122[];
+static Base_Class bases_ee52122[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc122, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2122, 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 _ZTI7ee52122[];
+extern void _ZN7ee521223barEv();
+extern void _ZN6dd21223fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd21223fooEv,_ZTv0_n12_N6dd21223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd21223fooEv,_ZThn12_N6dd21223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee521223barEv,_ZTv0_n16_N7ee521223barEv)();
+extern void ABISELECT(_ZThn32_N7ee521223barEv,_ZThn20_N7ee521223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee52122[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52122[0]),
+ (VTBL_ENTRY)&_ZN7ee521223barEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52122[0]),
+ (VTBL_ENTRY)&_ZN6dd21223fooEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee52122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21223fooEv,_ZTv0_n12_N6dd21223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee521223barEv,_ZTv0_n16_N7ee521223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee52122[];
+extern void _ZN6dd21223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2122__7ee52122[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2122[0]),
+ (VTBL_ENTRY)&_ZN6dd21223fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1226dd2122__7ee52122[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc1226dd2122__7ee52122[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd21223fooEv,_ZTv0_n12_N6dd21223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd21223fooEv,_ZThn12_N6dd21223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__6dd2122__7ee52122[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21223fooEv,_ZTv0_n12_N6dd21223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee52122[] = {
+ {&(_ZTV7ee52122[4]), 4,16},
+ {&(_ZTV7ee52122[9]), 9,16},
+ {&(_ZTV7ee52122[14]), 14,16},
+ {&(_tg__ZTV6dd2122__7ee52122[3]), 3,4},
+ {&(_tg__ZTV5cc1226dd2122__7ee52122[3]), 3,3},
+ {&(_tg__ZTV4bb22__5cc1226dd2122__7ee52122[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd2122__7ee52122[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee52122[];
+extern VTBL_ENTRY _ZTV7ee52122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52122[];
+static VTBL_ENTRY alt_thunk_names914[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee521223barEv,_ZTv0_n16_N7ee521223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee521223barEv,_ZThn20_N7ee521223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21223fooEv,_ZTv0_n12_N6dd21223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd21223fooEv,_ZThn12_N6dd21223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd21223fooEv,_ZThn12_N6dd21223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52122 = { "ee52122", // class name
+ bases_ee52122, 4,
+ &(vtc_ee52122[0]), // expected_vtbl_contents
+ &(vtt_ee52122[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee52122),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52122),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52122),7, //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 ee62122 : dd2122 {
+ int e;
+ virtual void foo(); // _ZN7ee621223fooEv
+ virtual void bar(); // _ZN7ee621223barEv
+ ~ee62122(); // tgen
+ ee62122(); // tgen
+};
+//SIG(1 ee62122) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62122 ::foo(){vfunc_called(this, "_ZN7ee621223fooEv");}
+void ee62122 ::bar(){vfunc_called(this, "_ZN7ee621223barEv");}
+ee62122 ::~ee62122(){ note_dtor("ee62122", this);} // tgen
+ee62122 ::ee62122(){ note_ctor("ee62122", this);} // tgen
+
+static void Test_ee62122()
+{
+ extern Class_Descriptor cd_ee62122;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee62122, buf);
+ ee62122 *dp, &lv = *(dp=new (buf) ee62122());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee62122)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62122)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(24,16), "ee62122");
+ check_base_class_offset(lv, (bb22*)(cc122*)(dd2122*), ABISELECT(24,16), "ee62122");
+ check_base_class_offset(lv, (cc122*)(dd2122*), 0, "ee62122");
+ check_base_class_offset(lv, (dd2122*), 0, "ee62122");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee62122.e");
+ test_class_info(&lv, &cd_ee62122);
+ dp->~ee62122();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62122(Test_ee62122, "ee62122", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee62122C1Ev();
+extern void _ZN7ee62122D1Ev();
+Name_Map name_map_ee62122[] = {
+ NSPAIR(_ZN7ee62122C1Ev),
+ NSPAIR(_ZN7ee62122D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc122;
+extern VTBL_ENTRY _ZTI5cc122[];
+extern VTBL_ENTRY _ZTV5cc122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc122[];
+extern Class_Descriptor cd_dd2122;
+extern VTBL_ENTRY _ZTI6dd2122[];
+extern VTBL_ENTRY _ZTV6dd2122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2122[];
+static Base_Class bases_ee62122[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc122, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2122, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee62122[];
+extern void _ZN7ee621223fooEv();
+extern void _ZN7ee621223barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee621223fooEv,_ZTv0_n12_N7ee621223fooEv)();
+extern void ABISELECT(_ZThn24_N7ee621223fooEv,_ZThn16_N7ee621223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee621223barEv,_ZTv0_n16_N7ee621223barEv)();
+extern void ABISELECT(_ZThn24_N7ee621223barEv,_ZThn16_N7ee621223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee62122[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62122[0]),
+ (VTBL_ENTRY)&_ZN7ee621223fooEv,
+ (VTBL_ENTRY)&_ZN7ee621223barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee62122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee621223fooEv,_ZTv0_n12_N7ee621223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee621223barEv,_ZTv0_n16_N7ee621223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee62122[];
+extern void _ZN6dd21223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2122__7ee62122[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2122[0]),
+ (VTBL_ENTRY)&_ZN6dd21223fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1226dd2122__7ee62122[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc1226dd2122__7ee62122[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd21223fooEv,_ZTv0_n12_N6dd21223fooEv)();
+extern void ABISELECT(_ZThn24_N6dd21223fooEv,_ZThn16_N6dd21223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__6dd2122__7ee62122[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21223fooEv,_ZTv0_n12_N6dd21223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee62122[] = {
+ {&(_ZTV7ee62122[3]), 3,11},
+ {&(_tg__ZTV6dd2122__7ee62122[3]), 3,4},
+ {&(_tg__ZTV5cc1226dd2122__7ee62122[3]), 3,3},
+ {&(_tg__ZTV4bb22__5cc1226dd2122__7ee62122[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd2122__7ee62122[4]), 4,6},
+ {&(_ZTV7ee62122[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee62122[];
+extern VTBL_ENTRY _ZTV7ee62122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee62122[];
+static VTBL_ENTRY alt_thunk_names915[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21223fooEv,_ZTv0_n12_N6dd21223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd21223fooEv,_ZThn16_N6dd21223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee621223barEv,_ZTv0_n16_N7ee621223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee621223barEv,_ZThn16_N7ee621223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee621223fooEv,_ZTv0_n12_N7ee621223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee621223fooEv,_ZThn16_N7ee621223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee62122 = { "ee62122", // class name
+ bases_ee62122, 4,
+ &(vtc_ee62122[0]), // expected_vtbl_contents
+ &(vtt_ee62122[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee62122),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62122),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee62122),6, //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 ee72122 : virtual dd2122 {
+ int e;
+ virtual void foo(); // _ZN7ee721223fooEv
+ virtual void bar(); // _ZN7ee721223barEv
+ ~ee72122(); // tgen
+ ee72122(); // tgen
+};
+//SIG(1 ee72122) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72122 ::foo(){vfunc_called(this, "_ZN7ee721223fooEv");}
+void ee72122 ::bar(){vfunc_called(this, "_ZN7ee721223barEv");}
+ee72122 ::~ee72122(){ note_dtor("ee72122", this);} // tgen
+ee72122 ::ee72122(){ note_ctor("ee72122", this);} // tgen
+
+static void Test_ee72122()
+{
+ extern Class_Descriptor cd_ee72122;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee72122, buf);
+ ee72122 *dp, &lv = *(dp=new (buf) ee72122());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee72122)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72122)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee72122");
+ check_base_class_offset(lv, (bb22*)(cc122*)(dd2122*), ABISELECT(32,20), "ee72122");
+ check_base_class_offset(lv, (cc122*)(dd2122*), ABISELECT(16,8), "ee72122");
+ check_base_class_offset(lv, (dd2122*), ABISELECT(16,8), "ee72122");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72122.e");
+ test_class_info(&lv, &cd_ee72122);
+ dp->~ee72122();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72122(Test_ee72122, "ee72122", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee72122C1Ev();
+extern void _ZN7ee72122D1Ev();
+Name_Map name_map_ee72122[] = {
+ NSPAIR(_ZN7ee72122C1Ev),
+ NSPAIR(_ZN7ee72122D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc122;
+extern VTBL_ENTRY _ZTI5cc122[];
+extern VTBL_ENTRY _ZTV5cc122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc122[];
+extern Class_Descriptor cd_dd2122;
+extern VTBL_ENTRY _ZTI6dd2122[];
+extern VTBL_ENTRY _ZTV6dd2122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2122[];
+static Base_Class bases_ee72122[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc122, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2122, 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 _ZTI7ee72122[];
+extern void _ZN7ee721223fooEv();
+extern void _ZN7ee721223barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee721223fooEv,_ZTv0_n16_N7ee721223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee721223fooEv,_ZThn8_N7ee721223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee721223fooEv,_ZTv0_n12_N7ee721223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee721223fooEv,_ZThn20_N7ee721223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee721223barEv,_ZTv0_n16_N7ee721223barEv)();
+extern void ABISELECT(_ZThn32_N7ee721223barEv,_ZThn20_N7ee721223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72122[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72122[0]),
+ (VTBL_ENTRY)&_ZN7ee721223fooEv,
+ (VTBL_ENTRY)&_ZN7ee721223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee721223fooEv,_ZTv0_n16_N7ee721223fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee72122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee721223fooEv,_ZTv0_n12_N7ee721223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee721223barEv,_ZTv0_n16_N7ee721223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee72122[];
+extern void _ZN6dd21223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2122__7ee72122[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2122[0]),
+ (VTBL_ENTRY)&_ZN6dd21223fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1226dd2122__7ee72122[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc1226dd2122__7ee72122[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd21223fooEv,_ZTv0_n12_N6dd21223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd21223fooEv,_ZThn12_N6dd21223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__6dd2122__7ee72122[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21223fooEv,_ZTv0_n12_N6dd21223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee72122[] = {
+ {&(_ZTV7ee72122[4]), 4,17},
+ {&(_ZTV7ee72122[10]), 10,17},
+ {&(_ZTV7ee72122[15]), 15,17},
+ {&(_tg__ZTV6dd2122__7ee72122[3]), 3,4},
+ {&(_tg__ZTV5cc1226dd2122__7ee72122[3]), 3,3},
+ {&(_tg__ZTV4bb22__5cc1226dd2122__7ee72122[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd2122__7ee72122[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee72122[];
+extern VTBL_ENTRY _ZTV7ee72122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72122[];
+static VTBL_ENTRY alt_thunk_names916[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21223fooEv,_ZTv0_n12_N6dd21223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd21223fooEv,_ZThn12_N6dd21223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee721223barEv,_ZTv0_n16_N7ee721223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee721223barEv,_ZThn20_N7ee721223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee721223fooEv,_ZTv0_n12_N7ee721223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee721223fooEv,_ZThn20_N7ee721223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee721223fooEv,_ZTv0_n16_N7ee721223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee721223fooEv,_ZThn8_N7ee721223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72122 = { "ee72122", // class name
+ bases_ee72122, 4,
+ &(vtc_ee72122[0]), // expected_vtbl_contents
+ &(vtt_ee72122[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee72122),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72122),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72122),7, //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 dd3122 : virtual cc122 {
+ int d;
+ virtual void foo(); // _ZN6dd31223fooEv
+ ~dd3122(); // tgen
+ dd3122(); // tgen
+};
+//SIG(-1 dd3122) C1{ VBC2{ VBC3{ BC4{ v1 v2 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void dd3122 ::foo(){vfunc_called(this, "_ZN6dd31223fooEv");}
+dd3122 ::~dd3122(){ note_dtor("dd3122", this);} // tgen
+dd3122 ::dd3122(){ note_ctor("dd3122", this);} // tgen
+
+static void Test_dd3122()
+{
+ extern Class_Descriptor cd_dd3122;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd3122, buf);
+ dd3122 *dp, &lv = *(dp=new (buf) dd3122());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd3122)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3122)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,16), "dd3122");
+ check_base_class_offset(lv, (bb22*)(cc122*), ABISELECT(32,16), "dd3122");
+ check_base_class_offset(lv, (cc122*), ABISELECT(16,8), "dd3122");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3122.d");
+ test_class_info(&lv, &cd_dd3122);
+ dp->~dd3122();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3122(Test_dd3122, "dd3122", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd3122C1Ev();
+extern void _ZN6dd3122D1Ev();
+Name_Map name_map_dd3122[] = {
+ NSPAIR(_ZN6dd3122C1Ev),
+ NSPAIR(_ZN6dd3122D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc122;
+extern VTBL_ENTRY _ZTI5cc122[];
+extern VTBL_ENTRY _ZTV5cc122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc122[];
+static Base_Class bases_dd3122[] = {
+ // 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_bb22, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc122, 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 _ZTI6dd3122[];
+extern void _ZN6dd31223fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd31223fooEv,_ZTv0_n12_N6dd31223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31223fooEv,_ZThn16_N6dd31223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_dd3122[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3122[0]),
+ (VTBL_ENTRY)&_ZN6dd31223fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3122[0]),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31223fooEv,_ZTv0_n12_N6dd31223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV6dd3122[];
+static VTBL_ENTRY _tg__ZTV5cc122__6dd3122[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc122__6dd3122[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_dd3122[] = {
+ {&(_ZTV6dd3122[4]), 4,14},
+ {&(_ZTV6dd3122[8]), 8,14},
+ {&(_ZTV6dd3122[12]), 12,14},
+ {&(_tg__ZTV5cc122__6dd3122[3]), 3,3},
+ {&(_tg__ZTV4bb22__5cc122__6dd3122[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd3122[];
+extern VTBL_ENTRY _ZTV6dd3122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3122[];
+static VTBL_ENTRY alt_thunk_names917[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31223fooEv,_ZTv0_n12_N6dd31223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31223fooEv,_ZThn16_N6dd31223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3122 = { "dd3122", // class name
+ bases_dd3122, 3,
+ &(vtc_dd3122[0]), // expected_vtbl_contents
+ &(vtt_dd3122[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd3122),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3122),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3122),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names917,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03122 : dd3122 {
+ int e;
+ ~ee03122(); // tgen
+ ee03122(); // tgen
+};
+//SIG(1 ee03122) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} Fi} v1 Fi} Fi}
+
+
+ee03122 ::~ee03122(){ note_dtor("ee03122", this);} // tgen
+ee03122 ::ee03122(){ note_ctor("ee03122", this);} // tgen
+
+static void Test_ee03122()
+{
+ extern Class_Descriptor cd_ee03122;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee03122, buf);
+ ee03122 *dp, &lv = *(dp=new (buf) ee03122());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee03122)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03122)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee03122");
+ check_base_class_offset(lv, (bb22*)(cc122*), ABISELECT(32,20), "ee03122");
+ check_base_class_offset(lv, (cc122*)(dd3122*), ABISELECT(16,12), "ee03122");
+ check_base_class_offset(lv, (dd3122*), 0, "ee03122");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03122.e");
+ test_class_info(&lv, &cd_ee03122);
+ dp->~ee03122();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03122(Test_ee03122, "ee03122", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee03122C1Ev();
+extern void _ZN7ee03122D1Ev();
+Name_Map name_map_ee03122[] = {
+ NSPAIR(_ZN7ee03122C1Ev),
+ NSPAIR(_ZN7ee03122D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc122;
+extern VTBL_ENTRY _ZTI5cc122[];
+extern VTBL_ENTRY _ZTV5cc122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc122[];
+extern Class_Descriptor cd_dd3122;
+extern VTBL_ENTRY _ZTI6dd3122[];
+extern VTBL_ENTRY _ZTV6dd3122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3122[];
+static Base_Class bases_ee03122[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 8, //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_cc122, 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_dd3122, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03122[];
+extern void _ZN6dd31223fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd31223fooEv,_ZTv0_n12_N6dd31223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31223fooEv,_ZThn20_N6dd31223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee03122[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03122[0]),
+ (VTBL_ENTRY)&_ZN6dd31223fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03122[0]),
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee03122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31223fooEv,_ZTv0_n12_N6dd31223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee03122[];
+extern void _ZN6dd31223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3122__7ee03122[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3122[0]),
+ (VTBL_ENTRY)&_ZN6dd31223fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc122__6dd3122__7ee03122[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3122[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd31223fooEv,_ZTv0_n12_N6dd31223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31223fooEv,_ZThn20_N6dd31223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__6dd3122__7ee03122[] = {
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31223fooEv,_ZTv0_n12_N6dd31223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc122__7ee03122[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc122__7ee03122[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee03122[] = {
+ {&(_ZTV7ee03122[4]), 4,14},
+ {&(_tg__ZTV6dd3122__7ee03122[4]), 4,5},
+ {&(_tg__ZTV5cc122__6dd3122__7ee03122[3]), 3,3},
+ {&(_tg__ZTV4bb22__6dd3122__7ee03122[4]), 4,6},
+ {&(_ZTV7ee03122[8]), 8,14},
+ {&(_ZTV7ee03122[12]), 12,14},
+ {&(_tg__ZTV5cc122__7ee03122[3]), 3,3},
+ {&(_tg__ZTV4bb22__5cc122__7ee03122[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee03122[];
+extern VTBL_ENTRY _ZTV7ee03122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03122[];
+static VTBL_ENTRY alt_thunk_names918[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31223fooEv,_ZTv0_n12_N6dd31223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31223fooEv,_ZThn20_N6dd31223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31223fooEv,_ZThn20_N6dd31223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03122 = { "ee03122", // class name
+ bases_ee03122, 4,
+ &(vtc_ee03122[0]), // expected_vtbl_contents
+ &(vtt_ee03122[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee03122),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03122),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03122),8, //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 ee13122 : virtual dd3122 {
+ int e;
+ ~ee13122(); // tgen
+ ee13122(); // tgen
+};
+//SIG(1 ee13122) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} Fi} v1 Fi} Fi}
+
+
+ee13122 ::~ee13122(){ note_dtor("ee13122", this);} // tgen
+ee13122 ::ee13122(){ note_ctor("ee13122", this);} // tgen
+
+static void Test_ee13122()
+{
+ extern Class_Descriptor cd_ee13122;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee13122, buf);
+ ee13122 *dp, &lv = *(dp=new (buf) ee13122());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee13122)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13122)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(48,24), "ee13122");
+ check_base_class_offset(lv, (bb22*)(cc122*), ABISELECT(48,24), "ee13122");
+ check_base_class_offset(lv, (cc122*)(dd3122*), ABISELECT(32,16), "ee13122");
+ check_base_class_offset(lv, (dd3122*), ABISELECT(16,8), "ee13122");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13122.e");
+ test_class_info(&lv, &cd_ee13122);
+ dp->~ee13122();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13122(Test_ee13122, "ee13122", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee13122C1Ev();
+extern void _ZN7ee13122D1Ev();
+Name_Map name_map_ee13122[] = {
+ NSPAIR(_ZN7ee13122C1Ev),
+ NSPAIR(_ZN7ee13122D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc122;
+extern VTBL_ENTRY _ZTI5cc122[];
+extern VTBL_ENTRY _ZTV5cc122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc122[];
+extern Class_Descriptor cd_dd3122;
+extern VTBL_ENTRY _ZTI6dd3122[];
+extern VTBL_ENTRY _ZTV6dd3122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3122[];
+static Base_Class bases_ee13122[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb22, ABISELECT(48,24), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc122, 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_dd3122, 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 _ZTI7ee13122[];
+extern void _ZN6dd31223fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd31223fooEv,_ZTv0_n12_N6dd31223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31223fooEv,_ZThn16_N6dd31223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee13122[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13122[0]),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13122[0]),
+ (VTBL_ENTRY)&_ZN6dd31223fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13122[0]),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee13122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31223fooEv,_ZTv0_n12_N6dd31223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee13122[];
+extern void _ZN6dd31223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3122__7ee13122[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3122[0]),
+ (VTBL_ENTRY)&_ZN6dd31223fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc122__6dd3122__7ee13122[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3122[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd31223fooEv,_ZTv0_n12_N6dd31223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31223fooEv,_ZThn16_N6dd31223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__6dd3122__7ee13122[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31223fooEv,_ZTv0_n12_N6dd31223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc122__7ee13122[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc122__7ee13122[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee13122[] = {
+ {&(_ZTV7ee13122[5]), 5,20},
+ {&(_ZTV7ee13122[10]), 10,20},
+ {&(_ZTV7ee13122[14]), 14,20},
+ {&(_ZTV7ee13122[18]), 18,20},
+ {&(_tg__ZTV6dd3122__7ee13122[4]), 4,5},
+ {&(_tg__ZTV5cc122__6dd3122__7ee13122[3]), 3,3},
+ {&(_tg__ZTV4bb22__6dd3122__7ee13122[4]), 4,6},
+ {&(_tg__ZTV5cc122__7ee13122[3]), 3,3},
+ {&(_tg__ZTV4bb22__5cc122__7ee13122[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee13122[];
+extern VTBL_ENTRY _ZTV7ee13122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13122[];
+static VTBL_ENTRY alt_thunk_names919[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31223fooEv,_ZTv0_n12_N6dd31223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31223fooEv,_ZThn16_N6dd31223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31223fooEv,_ZThn16_N6dd31223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13122 = { "ee13122", // class name
+ bases_ee13122, 4,
+ &(vtc_ee13122[0]), // expected_vtbl_contents
+ &(vtt_ee13122[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee13122),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13122),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13122),9, //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 ee23122 : dd3122 {
+ int e;
+ virtual void foo(); // _ZN7ee231223fooEv
+ ~ee23122(); // tgen
+ ee23122(); // tgen
+};
+//SIG(1 ee23122) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee23122 ::foo(){vfunc_called(this, "_ZN7ee231223fooEv");}
+ee23122 ::~ee23122(){ note_dtor("ee23122", this);} // tgen
+ee23122 ::ee23122(){ note_ctor("ee23122", this);} // tgen
+
+static void Test_ee23122()
+{
+ extern Class_Descriptor cd_ee23122;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee23122, buf);
+ ee23122 *dp, &lv = *(dp=new (buf) ee23122());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee23122)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23122)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee23122");
+ check_base_class_offset(lv, (bb22*)(cc122*), ABISELECT(32,20), "ee23122");
+ check_base_class_offset(lv, (cc122*)(dd3122*), ABISELECT(16,12), "ee23122");
+ check_base_class_offset(lv, (dd3122*), 0, "ee23122");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23122.e");
+ test_class_info(&lv, &cd_ee23122);
+ dp->~ee23122();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23122(Test_ee23122, "ee23122", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee23122C1Ev();
+extern void _ZN7ee23122D1Ev();
+Name_Map name_map_ee23122[] = {
+ NSPAIR(_ZN7ee23122C1Ev),
+ NSPAIR(_ZN7ee23122D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc122;
+extern VTBL_ENTRY _ZTI5cc122[];
+extern VTBL_ENTRY _ZTV5cc122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc122[];
+extern Class_Descriptor cd_dd3122;
+extern VTBL_ENTRY _ZTI6dd3122[];
+extern VTBL_ENTRY _ZTV6dd3122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3122[];
+static Base_Class bases_ee23122[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 8, //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_cc122, 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_dd3122, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23122[];
+extern void _ZN7ee231223fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee231223fooEv,_ZTv0_n12_N7ee231223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee231223fooEv,_ZThn20_N7ee231223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee23122[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23122[0]),
+ (VTBL_ENTRY)&_ZN7ee231223fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23122[0]),
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee23122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee231223fooEv,_ZTv0_n12_N7ee231223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee23122[];
+extern void _ZN6dd31223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3122__7ee23122[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3122[0]),
+ (VTBL_ENTRY)&_ZN6dd31223fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc122__6dd3122__7ee23122[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3122[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd31223fooEv,_ZTv0_n12_N6dd31223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31223fooEv,_ZThn20_N6dd31223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__6dd3122__7ee23122[] = {
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31223fooEv,_ZTv0_n12_N6dd31223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc122__7ee23122[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc122__7ee23122[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee23122[] = {
+ {&(_ZTV7ee23122[4]), 4,14},
+ {&(_tg__ZTV6dd3122__7ee23122[4]), 4,5},
+ {&(_tg__ZTV5cc122__6dd3122__7ee23122[3]), 3,3},
+ {&(_tg__ZTV4bb22__6dd3122__7ee23122[4]), 4,6},
+ {&(_ZTV7ee23122[8]), 8,14},
+ {&(_ZTV7ee23122[12]), 12,14},
+ {&(_tg__ZTV5cc122__7ee23122[3]), 3,3},
+ {&(_tg__ZTV4bb22__5cc122__7ee23122[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee23122[];
+extern VTBL_ENTRY _ZTV7ee23122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23122[];
+static VTBL_ENTRY alt_thunk_names920[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31223fooEv,_ZTv0_n12_N6dd31223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31223fooEv,_ZThn20_N6dd31223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee231223fooEv,_ZTv0_n12_N7ee231223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee231223fooEv,_ZThn20_N7ee231223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23122 = { "ee23122", // class name
+ bases_ee23122, 4,
+ &(vtc_ee23122[0]), // expected_vtbl_contents
+ &(vtt_ee23122[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee23122),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23122),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23122),8, //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 ee33122 : virtual dd3122 {
+ int e;
+ virtual void foo(); // _ZN7ee331223fooEv
+ ~ee33122(); // tgen
+ ee33122(); // tgen
+};
+//SIG(1 ee33122) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee33122 ::foo(){vfunc_called(this, "_ZN7ee331223fooEv");}
+ee33122 ::~ee33122(){ note_dtor("ee33122", this);} // tgen
+ee33122 ::ee33122(){ note_ctor("ee33122", this);} // tgen
+
+static void Test_ee33122()
+{
+ extern Class_Descriptor cd_ee33122;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee33122, buf);
+ ee33122 *dp, &lv = *(dp=new (buf) ee33122());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee33122)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33122)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(48,24), "ee33122");
+ check_base_class_offset(lv, (bb22*)(cc122*), ABISELECT(48,24), "ee33122");
+ check_base_class_offset(lv, (cc122*)(dd3122*), ABISELECT(32,16), "ee33122");
+ check_base_class_offset(lv, (dd3122*), ABISELECT(16,8), "ee33122");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33122.e");
+ test_class_info(&lv, &cd_ee33122);
+ dp->~ee33122();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33122(Test_ee33122, "ee33122", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee33122C1Ev();
+extern void _ZN7ee33122D1Ev();
+Name_Map name_map_ee33122[] = {
+ NSPAIR(_ZN7ee33122C1Ev),
+ NSPAIR(_ZN7ee33122D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc122;
+extern VTBL_ENTRY _ZTI5cc122[];
+extern VTBL_ENTRY _ZTV5cc122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc122[];
+extern Class_Descriptor cd_dd3122;
+extern VTBL_ENTRY _ZTI6dd3122[];
+extern VTBL_ENTRY _ZTV6dd3122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3122[];
+static Base_Class bases_ee33122[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb22, ABISELECT(48,24), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc122, 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_dd3122, ABISELECT(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 _ZTI7ee33122[];
+extern void _ZN7ee331223fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee331223fooEv,_ZTv0_n20_N7ee331223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee331223fooEv,_ZThn8_N7ee331223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee331223fooEv,_ZTv0_n12_N7ee331223fooEv)();
+extern void ABISELECT(_ZThn48_N7ee331223fooEv,_ZThn24_N7ee331223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee33122[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33122[0]),
+ (VTBL_ENTRY)&_ZN7ee331223fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee331223fooEv,_ZTv0_n20_N7ee331223fooEv),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33122[0]),
+ 0,
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee33122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee331223fooEv,_ZTv0_n12_N7ee331223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee33122[];
+extern void _ZN6dd31223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3122__7ee33122[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3122[0]),
+ (VTBL_ENTRY)&_ZN6dd31223fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc122__6dd3122__7ee33122[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3122[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd31223fooEv,_ZTv0_n12_N6dd31223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31223fooEv,_ZThn16_N6dd31223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__6dd3122__7ee33122[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31223fooEv,_ZTv0_n12_N6dd31223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc122__7ee33122[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc122__7ee33122[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee33122[] = {
+ {&(_ZTV7ee33122[5]), 5,21},
+ {&(_ZTV7ee33122[11]), 11,21},
+ {&(_ZTV7ee33122[15]), 15,21},
+ {&(_ZTV7ee33122[19]), 19,21},
+ {&(_tg__ZTV6dd3122__7ee33122[4]), 4,5},
+ {&(_tg__ZTV5cc122__6dd3122__7ee33122[3]), 3,3},
+ {&(_tg__ZTV4bb22__6dd3122__7ee33122[4]), 4,6},
+ {&(_tg__ZTV5cc122__7ee33122[3]), 3,3},
+ {&(_tg__ZTV4bb22__5cc122__7ee33122[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee33122[];
+extern VTBL_ENTRY _ZTV7ee33122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33122[];
+static VTBL_ENTRY alt_thunk_names921[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31223fooEv,_ZTv0_n12_N6dd31223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31223fooEv,_ZThn16_N6dd31223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee331223fooEv,_ZTv0_n12_N7ee331223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee331223fooEv,_ZThn24_N7ee331223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee331223fooEv,_ZTv0_n20_N7ee331223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee331223fooEv,_ZThn8_N7ee331223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33122 = { "ee33122", // class name
+ bases_ee33122, 4,
+ &(vtc_ee33122[0]), // expected_vtbl_contents
+ &(vtt_ee33122[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee33122),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33122),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33122),9, //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 ee43122 : dd3122 {
+ int e;
+ virtual void bar(); // _ZN7ee431223barEv
+ ~ee43122(); // tgen
+ ee43122(); // tgen
+};
+//SIG(1 ee43122) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee43122 ::bar(){vfunc_called(this, "_ZN7ee431223barEv");}
+ee43122 ::~ee43122(){ note_dtor("ee43122", this);} // tgen
+ee43122 ::ee43122(){ note_ctor("ee43122", this);} // tgen
+
+static void Test_ee43122()
+{
+ extern Class_Descriptor cd_ee43122;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee43122, buf);
+ ee43122 *dp, &lv = *(dp=new (buf) ee43122());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee43122)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43122)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee43122");
+ check_base_class_offset(lv, (bb22*)(cc122*), ABISELECT(32,20), "ee43122");
+ check_base_class_offset(lv, (cc122*)(dd3122*), ABISELECT(16,12), "ee43122");
+ check_base_class_offset(lv, (dd3122*), 0, "ee43122");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43122.e");
+ test_class_info(&lv, &cd_ee43122);
+ dp->~ee43122();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43122(Test_ee43122, "ee43122", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee43122C1Ev();
+extern void _ZN7ee43122D1Ev();
+Name_Map name_map_ee43122[] = {
+ NSPAIR(_ZN7ee43122C1Ev),
+ NSPAIR(_ZN7ee43122D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc122;
+extern VTBL_ENTRY _ZTI5cc122[];
+extern VTBL_ENTRY _ZTV5cc122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc122[];
+extern Class_Descriptor cd_dd3122;
+extern VTBL_ENTRY _ZTI6dd3122[];
+extern VTBL_ENTRY _ZTV6dd3122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3122[];
+static Base_Class bases_ee43122[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc122, 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_dd3122, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43122[];
+extern void _ZN6dd31223fooEv();
+extern void _ZN7ee431223barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd31223fooEv,_ZTv0_n12_N6dd31223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31223fooEv,_ZThn20_N6dd31223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee431223barEv,_ZTv0_n16_N7ee431223barEv)();
+extern void ABISELECT(_ZThn32_N7ee431223barEv,_ZThn20_N7ee431223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43122[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43122[0]),
+ (VTBL_ENTRY)&_ZN6dd31223fooEv,
+ (VTBL_ENTRY)&_ZN7ee431223barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43122[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee43122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31223fooEv,_ZTv0_n12_N6dd31223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee431223barEv,_ZTv0_n16_N7ee431223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee43122[];
+extern void _ZN6dd31223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3122__7ee43122[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3122[0]),
+ (VTBL_ENTRY)&_ZN6dd31223fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc122__6dd3122__7ee43122[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3122[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd31223fooEv,_ZTv0_n12_N6dd31223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31223fooEv,_ZThn20_N6dd31223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__6dd3122__7ee43122[] = {
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31223fooEv,_ZTv0_n12_N6dd31223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc122__7ee43122[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc122__7ee43122[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee43122[] = {
+ {&(_ZTV7ee43122[4]), 4,15},
+ {&(_tg__ZTV6dd3122__7ee43122[4]), 4,5},
+ {&(_tg__ZTV5cc122__6dd3122__7ee43122[3]), 3,3},
+ {&(_tg__ZTV4bb22__6dd3122__7ee43122[4]), 4,6},
+ {&(_ZTV7ee43122[9]), 9,15},
+ {&(_ZTV7ee43122[13]), 13,15},
+ {&(_tg__ZTV5cc122__7ee43122[3]), 3,3},
+ {&(_tg__ZTV4bb22__5cc122__7ee43122[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee43122[];
+extern VTBL_ENTRY _ZTV7ee43122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43122[];
+static VTBL_ENTRY alt_thunk_names922[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee431223barEv,_ZTv0_n16_N7ee431223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee431223barEv,_ZThn20_N7ee431223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31223fooEv,_ZTv0_n12_N6dd31223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31223fooEv,_ZThn20_N6dd31223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31223fooEv,_ZThn20_N6dd31223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43122 = { "ee43122", // class name
+ bases_ee43122, 4,
+ &(vtc_ee43122[0]), // expected_vtbl_contents
+ &(vtt_ee43122[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee43122),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43122),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43122),8, //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 ee53122 : virtual dd3122 {
+ int e;
+ virtual void bar(); // _ZN7ee531223barEv
+ ~ee53122(); // tgen
+ ee53122(); // tgen
+};
+//SIG(1 ee53122) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee53122 ::bar(){vfunc_called(this, "_ZN7ee531223barEv");}
+ee53122 ::~ee53122(){ note_dtor("ee53122", this);} // tgen
+ee53122 ::ee53122(){ note_ctor("ee53122", this);} // tgen
+
+static void Test_ee53122()
+{
+ extern Class_Descriptor cd_ee53122;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee53122, buf);
+ ee53122 *dp, &lv = *(dp=new (buf) ee53122());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee53122)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53122)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(48,24), "ee53122");
+ check_base_class_offset(lv, (bb22*)(cc122*), ABISELECT(48,24), "ee53122");
+ check_base_class_offset(lv, (cc122*)(dd3122*), ABISELECT(32,16), "ee53122");
+ check_base_class_offset(lv, (dd3122*), ABISELECT(16,8), "ee53122");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53122.e");
+ test_class_info(&lv, &cd_ee53122);
+ dp->~ee53122();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53122(Test_ee53122, "ee53122", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee53122C1Ev();
+extern void _ZN7ee53122D1Ev();
+Name_Map name_map_ee53122[] = {
+ NSPAIR(_ZN7ee53122C1Ev),
+ NSPAIR(_ZN7ee53122D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc122;
+extern VTBL_ENTRY _ZTI5cc122[];
+extern VTBL_ENTRY _ZTV5cc122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc122[];
+extern Class_Descriptor cd_dd3122;
+extern VTBL_ENTRY _ZTI6dd3122[];
+extern VTBL_ENTRY _ZTV6dd3122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3122[];
+static Base_Class bases_ee53122[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb22, ABISELECT(48,24), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc122, 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_dd3122, ABISELECT(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 _ZTI7ee53122[];
+extern void _ZN7ee531223barEv();
+extern void _ZN6dd31223fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd31223fooEv,_ZTv0_n12_N6dd31223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31223fooEv,_ZThn16_N6dd31223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee531223barEv,_ZTv0_n16_N7ee531223barEv)();
+extern void ABISELECT(_ZThn48_N7ee531223barEv,_ZThn24_N7ee531223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53122[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53122[0]),
+ (VTBL_ENTRY)&_ZN7ee531223barEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53122[0]),
+ (VTBL_ENTRY)&_ZN6dd31223fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53122[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee53122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31223fooEv,_ZTv0_n12_N6dd31223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee531223barEv,_ZTv0_n16_N7ee531223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee53122[];
+extern void _ZN6dd31223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3122__7ee53122[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3122[0]),
+ (VTBL_ENTRY)&_ZN6dd31223fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc122__6dd3122__7ee53122[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3122[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd31223fooEv,_ZTv0_n12_N6dd31223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31223fooEv,_ZThn16_N6dd31223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__6dd3122__7ee53122[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31223fooEv,_ZTv0_n12_N6dd31223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc122__7ee53122[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc122__7ee53122[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee53122[] = {
+ {&(_ZTV7ee53122[5]), 5,21},
+ {&(_ZTV7ee53122[11]), 11,21},
+ {&(_ZTV7ee53122[15]), 15,21},
+ {&(_ZTV7ee53122[19]), 19,21},
+ {&(_tg__ZTV6dd3122__7ee53122[4]), 4,5},
+ {&(_tg__ZTV5cc122__6dd3122__7ee53122[3]), 3,3},
+ {&(_tg__ZTV4bb22__6dd3122__7ee53122[4]), 4,6},
+ {&(_tg__ZTV5cc122__7ee53122[3]), 3,3},
+ {&(_tg__ZTV4bb22__5cc122__7ee53122[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee53122[];
+extern VTBL_ENTRY _ZTV7ee53122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53122[];
+static VTBL_ENTRY alt_thunk_names923[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee531223barEv,_ZTv0_n16_N7ee531223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee531223barEv,_ZThn24_N7ee531223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31223fooEv,_ZTv0_n12_N6dd31223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31223fooEv,_ZThn16_N6dd31223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31223fooEv,_ZThn16_N6dd31223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53122 = { "ee53122", // class name
+ bases_ee53122, 4,
+ &(vtc_ee53122[0]), // expected_vtbl_contents
+ &(vtt_ee53122[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee53122),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53122),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53122),9, //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 ee63122 : dd3122 {
+ int e;
+ virtual void foo(); // _ZN7ee631223fooEv
+ virtual void bar(); // _ZN7ee631223barEv
+ ~ee63122(); // tgen
+ ee63122(); // tgen
+};
+//SIG(1 ee63122) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63122 ::foo(){vfunc_called(this, "_ZN7ee631223fooEv");}
+void ee63122 ::bar(){vfunc_called(this, "_ZN7ee631223barEv");}
+ee63122 ::~ee63122(){ note_dtor("ee63122", this);} // tgen
+ee63122 ::ee63122(){ note_ctor("ee63122", this);} // tgen
+
+static void Test_ee63122()
+{
+ extern Class_Descriptor cd_ee63122;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee63122, buf);
+ ee63122 *dp, &lv = *(dp=new (buf) ee63122());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee63122)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63122)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee63122");
+ check_base_class_offset(lv, (bb22*)(cc122*), ABISELECT(32,20), "ee63122");
+ check_base_class_offset(lv, (cc122*)(dd3122*), ABISELECT(16,12), "ee63122");
+ check_base_class_offset(lv, (dd3122*), 0, "ee63122");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63122.e");
+ test_class_info(&lv, &cd_ee63122);
+ dp->~ee63122();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63122(Test_ee63122, "ee63122", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee63122C1Ev();
+extern void _ZN7ee63122D1Ev();
+Name_Map name_map_ee63122[] = {
+ NSPAIR(_ZN7ee63122C1Ev),
+ NSPAIR(_ZN7ee63122D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc122;
+extern VTBL_ENTRY _ZTI5cc122[];
+extern VTBL_ENTRY _ZTV5cc122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc122[];
+extern Class_Descriptor cd_dd3122;
+extern VTBL_ENTRY _ZTI6dd3122[];
+extern VTBL_ENTRY _ZTV6dd3122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3122[];
+static Base_Class bases_ee63122[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc122, 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_dd3122, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63122[];
+extern void _ZN7ee631223fooEv();
+extern void _ZN7ee631223barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee631223fooEv,_ZTv0_n12_N7ee631223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee631223fooEv,_ZThn20_N7ee631223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee631223barEv,_ZTv0_n16_N7ee631223barEv)();
+extern void ABISELECT(_ZThn32_N7ee631223barEv,_ZThn20_N7ee631223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63122[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63122[0]),
+ (VTBL_ENTRY)&_ZN7ee631223fooEv,
+ (VTBL_ENTRY)&_ZN7ee631223barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63122[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee63122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee631223fooEv,_ZTv0_n12_N7ee631223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee631223barEv,_ZTv0_n16_N7ee631223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee63122[];
+extern void _ZN6dd31223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3122__7ee63122[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3122[0]),
+ (VTBL_ENTRY)&_ZN6dd31223fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc122__6dd3122__7ee63122[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3122[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd31223fooEv,_ZTv0_n12_N6dd31223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31223fooEv,_ZThn20_N6dd31223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__6dd3122__7ee63122[] = {
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31223fooEv,_ZTv0_n12_N6dd31223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc122__7ee63122[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc122__7ee63122[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee63122[] = {
+ {&(_ZTV7ee63122[4]), 4,15},
+ {&(_tg__ZTV6dd3122__7ee63122[4]), 4,5},
+ {&(_tg__ZTV5cc122__6dd3122__7ee63122[3]), 3,3},
+ {&(_tg__ZTV4bb22__6dd3122__7ee63122[4]), 4,6},
+ {&(_ZTV7ee63122[9]), 9,15},
+ {&(_ZTV7ee63122[13]), 13,15},
+ {&(_tg__ZTV5cc122__7ee63122[3]), 3,3},
+ {&(_tg__ZTV4bb22__5cc122__7ee63122[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee63122[];
+extern VTBL_ENTRY _ZTV7ee63122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63122[];
+static VTBL_ENTRY alt_thunk_names924[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31223fooEv,_ZTv0_n12_N6dd31223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31223fooEv,_ZThn20_N6dd31223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee631223barEv,_ZTv0_n16_N7ee631223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee631223barEv,_ZThn20_N7ee631223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee631223fooEv,_ZTv0_n12_N7ee631223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee631223fooEv,_ZThn20_N7ee631223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63122 = { "ee63122", // class name
+ bases_ee63122, 4,
+ &(vtc_ee63122[0]), // expected_vtbl_contents
+ &(vtt_ee63122[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee63122),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63122),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63122),8, //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 ee73122 : virtual dd3122 {
+ int e;
+ virtual void foo(); // _ZN7ee731223fooEv
+ virtual void bar(); // _ZN7ee731223barEv
+ ~ee73122(); // tgen
+ ee73122(); // tgen
+};
+//SIG(1 ee73122) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73122 ::foo(){vfunc_called(this, "_ZN7ee731223fooEv");}
+void ee73122 ::bar(){vfunc_called(this, "_ZN7ee731223barEv");}
+ee73122 ::~ee73122(){ note_dtor("ee73122", this);} // tgen
+ee73122 ::ee73122(){ note_ctor("ee73122", this);} // tgen
+
+static void Test_ee73122()
+{
+ extern Class_Descriptor cd_ee73122;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee73122, buf);
+ ee73122 *dp, &lv = *(dp=new (buf) ee73122());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee73122)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73122)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(48,24), "ee73122");
+ check_base_class_offset(lv, (bb22*)(cc122*), ABISELECT(48,24), "ee73122");
+ check_base_class_offset(lv, (cc122*)(dd3122*), ABISELECT(32,16), "ee73122");
+ check_base_class_offset(lv, (dd3122*), ABISELECT(16,8), "ee73122");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73122.e");
+ test_class_info(&lv, &cd_ee73122);
+ dp->~ee73122();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73122(Test_ee73122, "ee73122", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee73122C1Ev();
+extern void _ZN7ee73122D1Ev();
+Name_Map name_map_ee73122[] = {
+ NSPAIR(_ZN7ee73122C1Ev),
+ NSPAIR(_ZN7ee73122D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc122;
+extern VTBL_ENTRY _ZTI5cc122[];
+extern VTBL_ENTRY _ZTV5cc122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc122[];
+extern Class_Descriptor cd_dd3122;
+extern VTBL_ENTRY _ZTI6dd3122[];
+extern VTBL_ENTRY _ZTV6dd3122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3122[];
+static Base_Class bases_ee73122[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb22, ABISELECT(48,24), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc122, 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_dd3122, 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 _ZTI7ee73122[];
+extern void _ZN7ee731223fooEv();
+extern void _ZN7ee731223barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee731223fooEv,_ZTv0_n20_N7ee731223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee731223fooEv,_ZThn8_N7ee731223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee731223fooEv,_ZTv0_n12_N7ee731223fooEv)();
+extern void ABISELECT(_ZThn48_N7ee731223fooEv,_ZThn24_N7ee731223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee731223barEv,_ZTv0_n16_N7ee731223barEv)();
+extern void ABISELECT(_ZThn48_N7ee731223barEv,_ZThn24_N7ee731223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73122[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73122[0]),
+ (VTBL_ENTRY)&_ZN7ee731223fooEv,
+ (VTBL_ENTRY)&_ZN7ee731223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee731223fooEv,_ZTv0_n20_N7ee731223fooEv),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73122[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee73122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee731223fooEv,_ZTv0_n12_N7ee731223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee731223barEv,_ZTv0_n16_N7ee731223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee73122[];
+extern void _ZN6dd31223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3122__7ee73122[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3122[0]),
+ (VTBL_ENTRY)&_ZN6dd31223fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc122__6dd3122__7ee73122[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3122[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd31223fooEv,_ZTv0_n12_N6dd31223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31223fooEv,_ZThn16_N6dd31223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__6dd3122__7ee73122[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31223fooEv,_ZTv0_n12_N6dd31223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc122__7ee73122[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc122__7ee73122[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee73122[] = {
+ {&(_ZTV7ee73122[5]), 5,22},
+ {&(_ZTV7ee73122[12]), 12,22},
+ {&(_ZTV7ee73122[16]), 16,22},
+ {&(_ZTV7ee73122[20]), 20,22},
+ {&(_tg__ZTV6dd3122__7ee73122[4]), 4,5},
+ {&(_tg__ZTV5cc122__6dd3122__7ee73122[3]), 3,3},
+ {&(_tg__ZTV4bb22__6dd3122__7ee73122[4]), 4,6},
+ {&(_tg__ZTV5cc122__7ee73122[3]), 3,3},
+ {&(_tg__ZTV4bb22__5cc122__7ee73122[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee73122[];
+extern VTBL_ENTRY _ZTV7ee73122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73122[];
+static VTBL_ENTRY alt_thunk_names925[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31223fooEv,_ZTv0_n12_N6dd31223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31223fooEv,_ZThn16_N6dd31223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee731223barEv,_ZTv0_n16_N7ee731223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee731223barEv,_ZThn24_N7ee731223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee731223fooEv,_ZTv0_n12_N7ee731223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee731223fooEv,_ZThn24_N7ee731223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee731223fooEv,_ZTv0_n20_N7ee731223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee731223fooEv,_ZThn8_N7ee731223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73122 = { "ee73122", // class name
+ bases_ee73122, 4,
+ &(vtc_ee73122[0]), // expected_vtbl_contents
+ &(vtt_ee73122[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee73122),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73122),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73122),9, //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 dd4122 : cc122 {
+ int d;
+ virtual void bar(); // _ZN6dd41223barEv
+ ~dd4122(); // tgen
+ dd4122(); // tgen
+};
+//SIG(-1 dd4122) C1{ BC2{ VBC3{ BC4{ v2 v1 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void dd4122 ::bar(){vfunc_called(this, "_ZN6dd41223barEv");}
+dd4122 ::~dd4122(){ note_dtor("dd4122", this);} // tgen
+dd4122 ::dd4122(){ note_ctor("dd4122", this);} // tgen
+
+static void Test_dd4122()
+{
+ extern Class_Descriptor cd_dd4122;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd4122, buf);
+ dd4122 *dp, &lv = *(dp=new (buf) dd4122());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd4122)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4122)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(16,12), "dd4122");
+ check_base_class_offset(lv, (bb22*)(cc122*), ABISELECT(16,12), "dd4122");
+ check_base_class_offset(lv, (cc122*), 0, "dd4122");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd4122.d");
+ test_class_info(&lv, &cd_dd4122);
+ dp->~dd4122();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4122(Test_dd4122, "dd4122", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd4122C1Ev();
+extern void _ZN6dd4122D1Ev();
+Name_Map name_map_dd4122[] = {
+ NSPAIR(_ZN6dd4122C1Ev),
+ NSPAIR(_ZN6dd4122D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc122;
+extern VTBL_ENTRY _ZTI5cc122[];
+extern VTBL_ENTRY _ZTV5cc122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc122[];
+static Base_Class bases_dd4122[] = {
+ // 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_bb22, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc122, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd4122[];
+extern void _ZN6dd41223barEv();
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd41223barEv,_ZTv0_n16_N6dd41223barEv)();
+extern void ABISELECT(_ZThn16_N6dd41223barEv,_ZThn12_N6dd41223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd4122[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4122[0]),
+ (VTBL_ENTRY)&_ZN6dd41223barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41223barEv,_ZTv0_n16_N6dd41223barEv),
+};
+extern VTBL_ENTRY _ZTV6dd4122[];
+static VTBL_ENTRY _tg__ZTV5cc122__6dd4122[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc122__6dd4122[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_dd4122[] = {
+ {&(_ZTV6dd4122[3]), 3,10},
+ {&(_tg__ZTV5cc122__6dd4122[3]), 3,3},
+ {&(_tg__ZTV4bb22__5cc122__6dd4122[4]), 4,6},
+ {&(_ZTV6dd4122[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd4122[];
+extern VTBL_ENTRY _ZTV6dd4122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4122[];
+static VTBL_ENTRY alt_thunk_names926[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd41223barEv,_ZTv0_n16_N6dd41223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd41223barEv,_ZThn12_N6dd41223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd4122 = { "dd4122", // class name
+ bases_dd4122, 3,
+ &(vtc_dd4122[0]), // expected_vtbl_contents
+ &(vtt_dd4122[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd4122),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4122),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd4122),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names926,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee04122 : dd4122 {
+ int e;
+ ~ee04122(); // tgen
+ ee04122(); // tgen
+};
+//SIG(1 ee04122) C1{ BC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} Fi} v1 Fi} Fi}
+
+
+ee04122 ::~ee04122(){ note_dtor("ee04122", this);} // tgen
+ee04122 ::ee04122(){ note_ctor("ee04122", this);} // tgen
+
+static void Test_ee04122()
+{
+ extern Class_Descriptor cd_ee04122;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee04122, buf);
+ ee04122 *dp, &lv = *(dp=new (buf) ee04122());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee04122)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04122)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(24,16), "ee04122");
+ check_base_class_offset(lv, (bb22*)(cc122*)(dd4122*), ABISELECT(24,16), "ee04122");
+ check_base_class_offset(lv, (cc122*)(dd4122*), 0, "ee04122");
+ check_base_class_offset(lv, (dd4122*), 0, "ee04122");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee04122.e");
+ test_class_info(&lv, &cd_ee04122);
+ dp->~ee04122();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04122(Test_ee04122, "ee04122", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee04122C1Ev();
+extern void _ZN7ee04122D1Ev();
+Name_Map name_map_ee04122[] = {
+ NSPAIR(_ZN7ee04122C1Ev),
+ NSPAIR(_ZN7ee04122D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc122;
+extern VTBL_ENTRY _ZTI5cc122[];
+extern VTBL_ENTRY _ZTV5cc122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc122[];
+extern Class_Descriptor cd_dd4122;
+extern VTBL_ENTRY _ZTI6dd4122[];
+extern VTBL_ENTRY _ZTV6dd4122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4122[];
+static Base_Class bases_ee04122[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc122, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4122, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee04122[];
+extern void _ZN6dd41223barEv();
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd41223barEv,_ZTv0_n16_N6dd41223barEv)();
+extern void ABISELECT(_ZThn24_N6dd41223barEv,_ZThn16_N6dd41223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee04122[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04122[0]),
+ (VTBL_ENTRY)&_ZN6dd41223barEv,
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee04122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41223barEv,_ZTv0_n16_N6dd41223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee04122[];
+extern void _ZN6dd41223barEv();
+static VTBL_ENTRY _tg__ZTV6dd4122__7ee04122[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4122[0]),
+ (VTBL_ENTRY)&_ZN6dd41223barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1226dd4122__7ee04122[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc1226dd4122__7ee04122[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd41223barEv,_ZTv0_n16_N6dd41223barEv)();
+extern void ABISELECT(_ZThn24_N6dd41223barEv,_ZThn16_N6dd41223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd4122__7ee04122[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41223barEv,_ZTv0_n16_N6dd41223barEv),
+};
+static VTT_ENTRY vtt_ee04122[] = {
+ {&(_ZTV7ee04122[3]), 3,10},
+ {&(_tg__ZTV6dd4122__7ee04122[3]), 3,4},
+ {&(_tg__ZTV5cc1226dd4122__7ee04122[3]), 3,3},
+ {&(_tg__ZTV4bb22__5cc1226dd4122__7ee04122[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd4122__7ee04122[4]), 4,6},
+ {&(_ZTV7ee04122[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee04122[];
+extern VTBL_ENTRY _ZTV7ee04122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee04122[];
+static VTBL_ENTRY alt_thunk_names927[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd41223barEv,_ZTv0_n16_N6dd41223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd41223barEv,_ZThn16_N6dd41223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd41223barEv,_ZThn16_N6dd41223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee04122 = { "ee04122", // class name
+ bases_ee04122, 4,
+ &(vtc_ee04122[0]), // expected_vtbl_contents
+ &(vtt_ee04122[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee04122),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04122),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee04122),6, //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 ee14122 : virtual dd4122 {
+ int e;
+ ~ee14122(); // tgen
+ ee14122(); // tgen
+};
+//SIG(1 ee14122) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} Fi} v1 Fi} Fi}
+
+
+ee14122 ::~ee14122(){ note_dtor("ee14122", this);} // tgen
+ee14122 ::ee14122(){ note_ctor("ee14122", this);} // tgen
+
+static void Test_ee14122()
+{
+ extern Class_Descriptor cd_ee14122;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee14122, buf);
+ ee14122 *dp, &lv = *(dp=new (buf) ee14122());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee14122)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14122)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee14122");
+ check_base_class_offset(lv, (bb22*)(cc122*)(dd4122*), ABISELECT(32,20), "ee14122");
+ check_base_class_offset(lv, (cc122*)(dd4122*), ABISELECT(16,8), "ee14122");
+ check_base_class_offset(lv, (dd4122*), ABISELECT(16,8), "ee14122");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14122.e");
+ test_class_info(&lv, &cd_ee14122);
+ dp->~ee14122();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14122(Test_ee14122, "ee14122", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee14122C1Ev();
+extern void _ZN7ee14122D1Ev();
+Name_Map name_map_ee14122[] = {
+ NSPAIR(_ZN7ee14122C1Ev),
+ NSPAIR(_ZN7ee14122D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc122;
+extern VTBL_ENTRY _ZTI5cc122[];
+extern VTBL_ENTRY _ZTV5cc122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc122[];
+extern Class_Descriptor cd_dd4122;
+extern VTBL_ENTRY _ZTI6dd4122[];
+extern VTBL_ENTRY _ZTV6dd4122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4122[];
+static Base_Class bases_ee14122[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc122, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4122, 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 _ZTI7ee14122[];
+extern void _ZN6dd41223barEv();
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd41223barEv,_ZTv0_n16_N6dd41223barEv)();
+extern void ABISELECT(_ZThn16_N6dd41223barEv,_ZThn12_N6dd41223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee14122[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14122[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14122[0]),
+ (VTBL_ENTRY)&_ZN6dd41223barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee14122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41223barEv,_ZTv0_n16_N6dd41223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee14122[];
+extern void _ZN6dd41223barEv();
+static VTBL_ENTRY _tg__ZTV6dd4122__7ee14122[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4122[0]),
+ (VTBL_ENTRY)&_ZN6dd41223barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1226dd4122__7ee14122[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc1226dd4122__7ee14122[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd41223barEv,_ZTv0_n16_N6dd41223barEv)();
+extern void ABISELECT(_ZThn16_N6dd41223barEv,_ZThn12_N6dd41223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd4122__7ee14122[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41223barEv,_ZTv0_n16_N6dd41223barEv),
+};
+static VTT_ENTRY vtt_ee14122[] = {
+ {&(_ZTV7ee14122[4]), 4,15},
+ {&(_ZTV7ee14122[8]), 8,15},
+ {&(_ZTV7ee14122[13]), 13,15},
+ {&(_tg__ZTV6dd4122__7ee14122[3]), 3,4},
+ {&(_tg__ZTV5cc1226dd4122__7ee14122[3]), 3,3},
+ {&(_tg__ZTV4bb22__5cc1226dd4122__7ee14122[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd4122__7ee14122[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee14122[];
+extern VTBL_ENTRY _ZTV7ee14122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14122[];
+static VTBL_ENTRY alt_thunk_names928[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd41223barEv,_ZTv0_n16_N6dd41223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd41223barEv,_ZThn12_N6dd41223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd41223barEv,_ZThn12_N6dd41223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee14122 = { "ee14122", // class name
+ bases_ee14122, 4,
+ &(vtc_ee14122[0]), // expected_vtbl_contents
+ &(vtt_ee14122[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee14122),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14122),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14122),7, //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 ee24122 : dd4122 {
+ int e;
+ virtual void foo(); // _ZN7ee241223fooEv
+ ~ee24122(); // tgen
+ ee24122(); // tgen
+};
+//SIG(1 ee24122) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee24122 ::foo(){vfunc_called(this, "_ZN7ee241223fooEv");}
+ee24122 ::~ee24122(){ note_dtor("ee24122", this);} // tgen
+ee24122 ::ee24122(){ note_ctor("ee24122", this);} // tgen
+
+static void Test_ee24122()
+{
+ extern Class_Descriptor cd_ee24122;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee24122, buf);
+ ee24122 *dp, &lv = *(dp=new (buf) ee24122());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee24122)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24122)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(24,16), "ee24122");
+ check_base_class_offset(lv, (bb22*)(cc122*)(dd4122*), ABISELECT(24,16), "ee24122");
+ check_base_class_offset(lv, (cc122*)(dd4122*), 0, "ee24122");
+ check_base_class_offset(lv, (dd4122*), 0, "ee24122");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee24122.e");
+ test_class_info(&lv, &cd_ee24122);
+ dp->~ee24122();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24122(Test_ee24122, "ee24122", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee24122C1Ev();
+extern void _ZN7ee24122D1Ev();
+Name_Map name_map_ee24122[] = {
+ NSPAIR(_ZN7ee24122C1Ev),
+ NSPAIR(_ZN7ee24122D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc122;
+extern VTBL_ENTRY _ZTI5cc122[];
+extern VTBL_ENTRY _ZTV5cc122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc122[];
+extern Class_Descriptor cd_dd4122;
+extern VTBL_ENTRY _ZTI6dd4122[];
+extern VTBL_ENTRY _ZTV6dd4122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4122[];
+static Base_Class bases_ee24122[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc122, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4122, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee24122[];
+extern void _ZN6dd41223barEv();
+extern void _ZN7ee241223fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee241223fooEv,_ZTv0_n12_N7ee241223fooEv)();
+extern void ABISELECT(_ZThn24_N7ee241223fooEv,_ZThn16_N7ee241223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd41223barEv,_ZTv0_n16_N6dd41223barEv)();
+extern void ABISELECT(_ZThn24_N6dd41223barEv,_ZThn16_N6dd41223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee24122[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24122[0]),
+ (VTBL_ENTRY)&_ZN6dd41223barEv,
+ (VTBL_ENTRY)&_ZN7ee241223fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee24122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee241223fooEv,_ZTv0_n12_N7ee241223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41223barEv,_ZTv0_n16_N6dd41223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee24122[];
+extern void _ZN6dd41223barEv();
+static VTBL_ENTRY _tg__ZTV6dd4122__7ee24122[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4122[0]),
+ (VTBL_ENTRY)&_ZN6dd41223barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1226dd4122__7ee24122[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc1226dd4122__7ee24122[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd41223barEv,_ZTv0_n16_N6dd41223barEv)();
+extern void ABISELECT(_ZThn24_N6dd41223barEv,_ZThn16_N6dd41223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd4122__7ee24122[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41223barEv,_ZTv0_n16_N6dd41223barEv),
+};
+static VTT_ENTRY vtt_ee24122[] = {
+ {&(_ZTV7ee24122[3]), 3,11},
+ {&(_tg__ZTV6dd4122__7ee24122[3]), 3,4},
+ {&(_tg__ZTV5cc1226dd4122__7ee24122[3]), 3,3},
+ {&(_tg__ZTV4bb22__5cc1226dd4122__7ee24122[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd4122__7ee24122[4]), 4,6},
+ {&(_ZTV7ee24122[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee24122[];
+extern VTBL_ENTRY _ZTV7ee24122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee24122[];
+static VTBL_ENTRY alt_thunk_names929[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd41223barEv,_ZTv0_n16_N6dd41223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd41223barEv,_ZThn16_N6dd41223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd41223barEv,_ZThn16_N6dd41223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee241223fooEv,_ZTv0_n12_N7ee241223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee241223fooEv,_ZThn16_N7ee241223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee24122 = { "ee24122", // class name
+ bases_ee24122, 4,
+ &(vtc_ee24122[0]), // expected_vtbl_contents
+ &(vtt_ee24122[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee24122),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24122),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee24122),6, //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 ee34122 : virtual dd4122 {
+ int e;
+ virtual void foo(); // _ZN7ee341223fooEv
+ ~ee34122(); // tgen
+ ee34122(); // tgen
+};
+//SIG(1 ee34122) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee34122 ::foo(){vfunc_called(this, "_ZN7ee341223fooEv");}
+ee34122 ::~ee34122(){ note_dtor("ee34122", this);} // tgen
+ee34122 ::ee34122(){ note_ctor("ee34122", this);} // tgen
+
+static void Test_ee34122()
+{
+ extern Class_Descriptor cd_ee34122;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee34122, buf);
+ ee34122 *dp, &lv = *(dp=new (buf) ee34122());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee34122)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34122)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee34122");
+ check_base_class_offset(lv, (bb22*)(cc122*)(dd4122*), ABISELECT(32,20), "ee34122");
+ check_base_class_offset(lv, (cc122*)(dd4122*), ABISELECT(16,8), "ee34122");
+ check_base_class_offset(lv, (dd4122*), ABISELECT(16,8), "ee34122");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34122.e");
+ test_class_info(&lv, &cd_ee34122);
+ dp->~ee34122();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34122(Test_ee34122, "ee34122", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee34122C1Ev();
+extern void _ZN7ee34122D1Ev();
+Name_Map name_map_ee34122[] = {
+ NSPAIR(_ZN7ee34122C1Ev),
+ NSPAIR(_ZN7ee34122D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc122;
+extern VTBL_ENTRY _ZTI5cc122[];
+extern VTBL_ENTRY _ZTV5cc122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc122[];
+extern Class_Descriptor cd_dd4122;
+extern VTBL_ENTRY _ZTI6dd4122[];
+extern VTBL_ENTRY _ZTV6dd4122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4122[];
+static Base_Class bases_ee34122[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc122, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4122, 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 _ZTI7ee34122[];
+extern void _ZN7ee341223fooEv();
+extern void _ZN6dd41223barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee341223fooEv,_ZTv0_n12_N7ee341223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee341223fooEv,_ZThn20_N7ee341223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd41223barEv,_ZTv0_n16_N6dd41223barEv)();
+extern void ABISELECT(_ZThn16_N6dd41223barEv,_ZThn12_N6dd41223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee34122[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34122[0]),
+ (VTBL_ENTRY)&_ZN7ee341223fooEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34122[0]),
+ (VTBL_ENTRY)&_ZN6dd41223barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee34122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee341223fooEv,_ZTv0_n12_N7ee341223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41223barEv,_ZTv0_n16_N6dd41223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee34122[];
+extern void _ZN6dd41223barEv();
+static VTBL_ENTRY _tg__ZTV6dd4122__7ee34122[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4122[0]),
+ (VTBL_ENTRY)&_ZN6dd41223barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1226dd4122__7ee34122[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc1226dd4122__7ee34122[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd41223barEv,_ZTv0_n16_N6dd41223barEv)();
+extern void ABISELECT(_ZThn16_N6dd41223barEv,_ZThn12_N6dd41223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd4122__7ee34122[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41223barEv,_ZTv0_n16_N6dd41223barEv),
+};
+static VTT_ENTRY vtt_ee34122[] = {
+ {&(_ZTV7ee34122[4]), 4,16},
+ {&(_ZTV7ee34122[9]), 9,16},
+ {&(_ZTV7ee34122[14]), 14,16},
+ {&(_tg__ZTV6dd4122__7ee34122[3]), 3,4},
+ {&(_tg__ZTV5cc1226dd4122__7ee34122[3]), 3,3},
+ {&(_tg__ZTV4bb22__5cc1226dd4122__7ee34122[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd4122__7ee34122[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee34122[];
+extern VTBL_ENTRY _ZTV7ee34122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34122[];
+static VTBL_ENTRY alt_thunk_names930[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd41223barEv,_ZTv0_n16_N6dd41223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd41223barEv,_ZThn12_N6dd41223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd41223barEv,_ZThn12_N6dd41223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee341223fooEv,_ZTv0_n12_N7ee341223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee341223fooEv,_ZThn20_N7ee341223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34122 = { "ee34122", // class name
+ bases_ee34122, 4,
+ &(vtc_ee34122[0]), // expected_vtbl_contents
+ &(vtt_ee34122[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee34122),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34122),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34122),7, //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 ee44122 : dd4122 {
+ int e;
+ virtual void bar(); // _ZN7ee441223barEv
+ ~ee44122(); // tgen
+ ee44122(); // tgen
+};
+//SIG(1 ee44122) C1{ BC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee44122 ::bar(){vfunc_called(this, "_ZN7ee441223barEv");}
+ee44122 ::~ee44122(){ note_dtor("ee44122", this);} // tgen
+ee44122 ::ee44122(){ note_ctor("ee44122", this);} // tgen
+
+static void Test_ee44122()
+{
+ extern Class_Descriptor cd_ee44122;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee44122, buf);
+ ee44122 *dp, &lv = *(dp=new (buf) ee44122());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee44122)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44122)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(24,16), "ee44122");
+ check_base_class_offset(lv, (bb22*)(cc122*)(dd4122*), ABISELECT(24,16), "ee44122");
+ check_base_class_offset(lv, (cc122*)(dd4122*), 0, "ee44122");
+ check_base_class_offset(lv, (dd4122*), 0, "ee44122");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee44122.e");
+ test_class_info(&lv, &cd_ee44122);
+ dp->~ee44122();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44122(Test_ee44122, "ee44122", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee44122C1Ev();
+extern void _ZN7ee44122D1Ev();
+Name_Map name_map_ee44122[] = {
+ NSPAIR(_ZN7ee44122C1Ev),
+ NSPAIR(_ZN7ee44122D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc122;
+extern VTBL_ENTRY _ZTI5cc122[];
+extern VTBL_ENTRY _ZTV5cc122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc122[];
+extern Class_Descriptor cd_dd4122;
+extern VTBL_ENTRY _ZTI6dd4122[];
+extern VTBL_ENTRY _ZTV6dd4122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4122[];
+static Base_Class bases_ee44122[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc122, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4122, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee44122[];
+extern void _ZN7ee441223barEv();
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee441223barEv,_ZTv0_n16_N7ee441223barEv)();
+extern void ABISELECT(_ZThn24_N7ee441223barEv,_ZThn16_N7ee441223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee44122[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44122[0]),
+ (VTBL_ENTRY)&_ZN7ee441223barEv,
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee44122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee441223barEv,_ZTv0_n16_N7ee441223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee44122[];
+extern void _ZN6dd41223barEv();
+static VTBL_ENTRY _tg__ZTV6dd4122__7ee44122[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4122[0]),
+ (VTBL_ENTRY)&_ZN6dd41223barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1226dd4122__7ee44122[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc1226dd4122__7ee44122[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd41223barEv,_ZTv0_n16_N6dd41223barEv)();
+extern void ABISELECT(_ZThn24_N6dd41223barEv,_ZThn16_N6dd41223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd4122__7ee44122[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41223barEv,_ZTv0_n16_N6dd41223barEv),
+};
+static VTT_ENTRY vtt_ee44122[] = {
+ {&(_ZTV7ee44122[3]), 3,10},
+ {&(_tg__ZTV6dd4122__7ee44122[3]), 3,4},
+ {&(_tg__ZTV5cc1226dd4122__7ee44122[3]), 3,3},
+ {&(_tg__ZTV4bb22__5cc1226dd4122__7ee44122[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd4122__7ee44122[4]), 4,6},
+ {&(_ZTV7ee44122[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee44122[];
+extern VTBL_ENTRY _ZTV7ee44122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee44122[];
+static VTBL_ENTRY alt_thunk_names931[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd41223barEv,_ZTv0_n16_N6dd41223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd41223barEv,_ZThn16_N6dd41223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee441223barEv,_ZTv0_n16_N7ee441223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee441223barEv,_ZThn16_N7ee441223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee44122 = { "ee44122", // class name
+ bases_ee44122, 4,
+ &(vtc_ee44122[0]), // expected_vtbl_contents
+ &(vtt_ee44122[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee44122),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44122),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee44122),6, //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 ee54122 : virtual dd4122 {
+ int e;
+ virtual void bar(); // _ZN7ee541223barEv
+ ~ee54122(); // tgen
+ ee54122(); // tgen
+};
+//SIG(1 ee54122) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee54122 ::bar(){vfunc_called(this, "_ZN7ee541223barEv");}
+ee54122 ::~ee54122(){ note_dtor("ee54122", this);} // tgen
+ee54122 ::ee54122(){ note_ctor("ee54122", this);} // tgen
+
+static void Test_ee54122()
+{
+ extern Class_Descriptor cd_ee54122;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee54122, buf);
+ ee54122 *dp, &lv = *(dp=new (buf) ee54122());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee54122)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54122)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee54122");
+ check_base_class_offset(lv, (bb22*)(cc122*)(dd4122*), ABISELECT(32,20), "ee54122");
+ check_base_class_offset(lv, (cc122*)(dd4122*), ABISELECT(16,8), "ee54122");
+ check_base_class_offset(lv, (dd4122*), ABISELECT(16,8), "ee54122");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54122.e");
+ test_class_info(&lv, &cd_ee54122);
+ dp->~ee54122();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54122(Test_ee54122, "ee54122", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee54122C1Ev();
+extern void _ZN7ee54122D1Ev();
+Name_Map name_map_ee54122[] = {
+ NSPAIR(_ZN7ee54122C1Ev),
+ NSPAIR(_ZN7ee54122D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc122;
+extern VTBL_ENTRY _ZTI5cc122[];
+extern VTBL_ENTRY _ZTV5cc122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc122[];
+extern Class_Descriptor cd_dd4122;
+extern VTBL_ENTRY _ZTI6dd4122[];
+extern VTBL_ENTRY _ZTV6dd4122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4122[];
+static Base_Class bases_ee54122[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc122, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4122, 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 _ZTI7ee54122[];
+extern void _ZN7ee541223barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee541223barEv,_ZTv0_n16_N7ee541223barEv)();
+extern void ABISELECT(_ZThn16_N7ee541223barEv,_ZThn8_N7ee541223barEv)() __attribute__((weak));
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee541223barEv,_ZTv0_n16_N7ee541223barEv)();
+extern void ABISELECT(_ZThn32_N7ee541223barEv,_ZThn20_N7ee541223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54122[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54122[0]),
+ (VTBL_ENTRY)&_ZN7ee541223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee541223barEv,_ZTv0_n16_N7ee541223barEv),
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee54122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee541223barEv,_ZTv0_n16_N7ee541223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee54122[];
+extern void _ZN6dd41223barEv();
+static VTBL_ENTRY _tg__ZTV6dd4122__7ee54122[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4122[0]),
+ (VTBL_ENTRY)&_ZN6dd41223barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1226dd4122__7ee54122[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc1226dd4122__7ee54122[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd41223barEv,_ZTv0_n16_N6dd41223barEv)();
+extern void ABISELECT(_ZThn16_N6dd41223barEv,_ZThn12_N6dd41223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd4122__7ee54122[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41223barEv,_ZTv0_n16_N6dd41223barEv),
+};
+static VTT_ENTRY vtt_ee54122[] = {
+ {&(_ZTV7ee54122[4]), 4,16},
+ {&(_ZTV7ee54122[9]), 9,16},
+ {&(_ZTV7ee54122[14]), 14,16},
+ {&(_tg__ZTV6dd4122__7ee54122[3]), 3,4},
+ {&(_tg__ZTV5cc1226dd4122__7ee54122[3]), 3,3},
+ {&(_tg__ZTV4bb22__5cc1226dd4122__7ee54122[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd4122__7ee54122[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee54122[];
+extern VTBL_ENTRY _ZTV7ee54122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54122[];
+static VTBL_ENTRY alt_thunk_names932[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd41223barEv,_ZTv0_n16_N6dd41223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd41223barEv,_ZThn12_N6dd41223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee541223barEv,_ZTv0_n16_N7ee541223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee541223barEv,_ZThn20_N7ee541223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee541223barEv,_ZThn8_N7ee541223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54122 = { "ee54122", // class name
+ bases_ee54122, 4,
+ &(vtc_ee54122[0]), // expected_vtbl_contents
+ &(vtt_ee54122[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee54122),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54122),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54122),7, //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 ee64122 : dd4122 {
+ int e;
+ virtual void foo(); // _ZN7ee641223fooEv
+ virtual void bar(); // _ZN7ee641223barEv
+ ~ee64122(); // tgen
+ ee64122(); // tgen
+};
+//SIG(1 ee64122) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64122 ::foo(){vfunc_called(this, "_ZN7ee641223fooEv");}
+void ee64122 ::bar(){vfunc_called(this, "_ZN7ee641223barEv");}
+ee64122 ::~ee64122(){ note_dtor("ee64122", this);} // tgen
+ee64122 ::ee64122(){ note_ctor("ee64122", this);} // tgen
+
+static void Test_ee64122()
+{
+ extern Class_Descriptor cd_ee64122;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee64122, buf);
+ ee64122 *dp, &lv = *(dp=new (buf) ee64122());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee64122)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64122)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(24,16), "ee64122");
+ check_base_class_offset(lv, (bb22*)(cc122*)(dd4122*), ABISELECT(24,16), "ee64122");
+ check_base_class_offset(lv, (cc122*)(dd4122*), 0, "ee64122");
+ check_base_class_offset(lv, (dd4122*), 0, "ee64122");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee64122.e");
+ test_class_info(&lv, &cd_ee64122);
+ dp->~ee64122();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64122(Test_ee64122, "ee64122", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee64122C1Ev();
+extern void _ZN7ee64122D1Ev();
+Name_Map name_map_ee64122[] = {
+ NSPAIR(_ZN7ee64122C1Ev),
+ NSPAIR(_ZN7ee64122D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc122;
+extern VTBL_ENTRY _ZTI5cc122[];
+extern VTBL_ENTRY _ZTV5cc122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc122[];
+extern Class_Descriptor cd_dd4122;
+extern VTBL_ENTRY _ZTI6dd4122[];
+extern VTBL_ENTRY _ZTV6dd4122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4122[];
+static Base_Class bases_ee64122[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc122, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4122, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee64122[];
+extern void _ZN7ee641223barEv();
+extern void _ZN7ee641223fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee641223fooEv,_ZTv0_n12_N7ee641223fooEv)();
+extern void ABISELECT(_ZThn24_N7ee641223fooEv,_ZThn16_N7ee641223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee641223barEv,_ZTv0_n16_N7ee641223barEv)();
+extern void ABISELECT(_ZThn24_N7ee641223barEv,_ZThn16_N7ee641223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee64122[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64122[0]),
+ (VTBL_ENTRY)&_ZN7ee641223barEv,
+ (VTBL_ENTRY)&_ZN7ee641223fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee64122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee641223fooEv,_ZTv0_n12_N7ee641223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee641223barEv,_ZTv0_n16_N7ee641223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee64122[];
+extern void _ZN6dd41223barEv();
+static VTBL_ENTRY _tg__ZTV6dd4122__7ee64122[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4122[0]),
+ (VTBL_ENTRY)&_ZN6dd41223barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1226dd4122__7ee64122[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc1226dd4122__7ee64122[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd41223barEv,_ZTv0_n16_N6dd41223barEv)();
+extern void ABISELECT(_ZThn24_N6dd41223barEv,_ZThn16_N6dd41223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd4122__7ee64122[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41223barEv,_ZTv0_n16_N6dd41223barEv),
+};
+static VTT_ENTRY vtt_ee64122[] = {
+ {&(_ZTV7ee64122[3]), 3,11},
+ {&(_tg__ZTV6dd4122__7ee64122[3]), 3,4},
+ {&(_tg__ZTV5cc1226dd4122__7ee64122[3]), 3,3},
+ {&(_tg__ZTV4bb22__5cc1226dd4122__7ee64122[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd4122__7ee64122[4]), 4,6},
+ {&(_ZTV7ee64122[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee64122[];
+extern VTBL_ENTRY _ZTV7ee64122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee64122[];
+static VTBL_ENTRY alt_thunk_names933[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd41223barEv,_ZTv0_n16_N6dd41223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd41223barEv,_ZThn16_N6dd41223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee641223barEv,_ZTv0_n16_N7ee641223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee641223barEv,_ZThn16_N7ee641223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee641223fooEv,_ZTv0_n12_N7ee641223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee641223fooEv,_ZThn16_N7ee641223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee64122 = { "ee64122", // class name
+ bases_ee64122, 4,
+ &(vtc_ee64122[0]), // expected_vtbl_contents
+ &(vtt_ee64122[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee64122),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64122),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee64122),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names933,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee74122 : virtual dd4122 {
+ int e;
+ virtual void foo(); // _ZN7ee741223fooEv
+ virtual void bar(); // _ZN7ee741223barEv
+ ~ee74122(); // tgen
+ ee74122(); // tgen
+};
+//SIG(1 ee74122) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74122 ::foo(){vfunc_called(this, "_ZN7ee741223fooEv");}
+void ee74122 ::bar(){vfunc_called(this, "_ZN7ee741223barEv");}
+ee74122 ::~ee74122(){ note_dtor("ee74122", this);} // tgen
+ee74122 ::ee74122(){ note_ctor("ee74122", this);} // tgen
+
+static void Test_ee74122()
+{
+ extern Class_Descriptor cd_ee74122;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee74122, buf);
+ ee74122 *dp, &lv = *(dp=new (buf) ee74122());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee74122)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74122)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee74122");
+ check_base_class_offset(lv, (bb22*)(cc122*)(dd4122*), ABISELECT(32,20), "ee74122");
+ check_base_class_offset(lv, (cc122*)(dd4122*), ABISELECT(16,8), "ee74122");
+ check_base_class_offset(lv, (dd4122*), ABISELECT(16,8), "ee74122");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74122.e");
+ test_class_info(&lv, &cd_ee74122);
+ dp->~ee74122();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74122(Test_ee74122, "ee74122", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee74122C1Ev();
+extern void _ZN7ee74122D1Ev();
+Name_Map name_map_ee74122[] = {
+ NSPAIR(_ZN7ee74122C1Ev),
+ NSPAIR(_ZN7ee74122D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc122;
+extern VTBL_ENTRY _ZTI5cc122[];
+extern VTBL_ENTRY _ZTV5cc122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc122[];
+extern Class_Descriptor cd_dd4122;
+extern VTBL_ENTRY _ZTI6dd4122[];
+extern VTBL_ENTRY _ZTV6dd4122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4122[];
+static Base_Class bases_ee74122[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc122, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4122, 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 _ZTI7ee74122[];
+extern void _ZN7ee741223fooEv();
+extern void _ZN7ee741223barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee741223barEv,_ZTv0_n16_N7ee741223barEv)();
+extern void ABISELECT(_ZThn16_N7ee741223barEv,_ZThn8_N7ee741223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee741223fooEv,_ZTv0_n12_N7ee741223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee741223fooEv,_ZThn20_N7ee741223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee741223barEv,_ZTv0_n16_N7ee741223barEv)();
+extern void ABISELECT(_ZThn32_N7ee741223barEv,_ZThn20_N7ee741223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74122[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74122[0]),
+ (VTBL_ENTRY)&_ZN7ee741223fooEv,
+ (VTBL_ENTRY)&_ZN7ee741223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee741223barEv,_ZTv0_n16_N7ee741223barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee74122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee741223fooEv,_ZTv0_n12_N7ee741223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee741223barEv,_ZTv0_n16_N7ee741223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee74122[];
+extern void _ZN6dd41223barEv();
+static VTBL_ENTRY _tg__ZTV6dd4122__7ee74122[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4122[0]),
+ (VTBL_ENTRY)&_ZN6dd41223barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1226dd4122__7ee74122[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc1226dd4122__7ee74122[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd41223barEv,_ZTv0_n16_N6dd41223barEv)();
+extern void ABISELECT(_ZThn16_N6dd41223barEv,_ZThn12_N6dd41223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd4122__7ee74122[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41223barEv,_ZTv0_n16_N6dd41223barEv),
+};
+static VTT_ENTRY vtt_ee74122[] = {
+ {&(_ZTV7ee74122[4]), 4,17},
+ {&(_ZTV7ee74122[10]), 10,17},
+ {&(_ZTV7ee74122[15]), 15,17},
+ {&(_tg__ZTV6dd4122__7ee74122[3]), 3,4},
+ {&(_tg__ZTV5cc1226dd4122__7ee74122[3]), 3,3},
+ {&(_tg__ZTV4bb22__5cc1226dd4122__7ee74122[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd4122__7ee74122[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee74122[];
+extern VTBL_ENTRY _ZTV7ee74122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74122[];
+static VTBL_ENTRY alt_thunk_names934[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd41223barEv,_ZTv0_n16_N6dd41223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd41223barEv,_ZThn12_N6dd41223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee741223fooEv,_ZTv0_n12_N7ee741223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee741223fooEv,_ZThn20_N7ee741223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee741223barEv,_ZTv0_n16_N7ee741223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee741223barEv,_ZThn20_N7ee741223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee741223barEv,_ZThn8_N7ee741223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74122 = { "ee74122", // class name
+ bases_ee74122, 4,
+ &(vtc_ee74122[0]), // expected_vtbl_contents
+ &(vtt_ee74122[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee74122),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74122),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74122),7, //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 dd5122 : virtual cc122 {
+ int d;
+ virtual void bar(); // _ZN6dd51223barEv
+ ~dd5122(); // tgen
+ dd5122(); // tgen
+};
+//SIG(-1 dd5122) C1{ VBC2{ VBC3{ BC4{ v2 v1 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void dd5122 ::bar(){vfunc_called(this, "_ZN6dd51223barEv");}
+dd5122 ::~dd5122(){ note_dtor("dd5122", this);} // tgen
+dd5122 ::dd5122(){ note_ctor("dd5122", this);} // tgen
+
+static void Test_dd5122()
+{
+ extern Class_Descriptor cd_dd5122;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd5122, buf);
+ dd5122 *dp, &lv = *(dp=new (buf) dd5122());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd5122)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5122)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,16), "dd5122");
+ check_base_class_offset(lv, (bb22*)(cc122*), ABISELECT(32,16), "dd5122");
+ check_base_class_offset(lv, (cc122*), ABISELECT(16,8), "dd5122");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5122.d");
+ test_class_info(&lv, &cd_dd5122);
+ dp->~dd5122();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5122(Test_dd5122, "dd5122", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd5122C1Ev();
+extern void _ZN6dd5122D1Ev();
+Name_Map name_map_dd5122[] = {
+ NSPAIR(_ZN6dd5122C1Ev),
+ NSPAIR(_ZN6dd5122D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc122;
+extern VTBL_ENTRY _ZTI5cc122[];
+extern VTBL_ENTRY _ZTV5cc122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc122[];
+static Base_Class bases_dd5122[] = {
+ // 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_bb22, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc122, 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 _ZTI6dd5122[];
+extern void _ZN6dd51223barEv();
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd51223barEv,_ZTv0_n16_N6dd51223barEv)();
+extern void ABISELECT(_ZThn32_N6dd51223barEv,_ZThn16_N6dd51223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd5122[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5122[0]),
+ (VTBL_ENTRY)&_ZN6dd51223barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5122[0]),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51223barEv,_ZTv0_n16_N6dd51223barEv),
+};
+extern VTBL_ENTRY _ZTV6dd5122[];
+static VTBL_ENTRY _tg__ZTV5cc122__6dd5122[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc122__6dd5122[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_dd5122[] = {
+ {&(_ZTV6dd5122[4]), 4,14},
+ {&(_ZTV6dd5122[8]), 8,14},
+ {&(_ZTV6dd5122[12]), 12,14},
+ {&(_tg__ZTV5cc122__6dd5122[3]), 3,3},
+ {&(_tg__ZTV4bb22__5cc122__6dd5122[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd5122[];
+extern VTBL_ENTRY _ZTV6dd5122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5122[];
+static VTBL_ENTRY alt_thunk_names935[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd51223barEv,_ZTv0_n16_N6dd51223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51223barEv,_ZThn16_N6dd51223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5122 = { "dd5122", // class name
+ bases_dd5122, 3,
+ &(vtc_dd5122[0]), // expected_vtbl_contents
+ &(vtt_dd5122[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd5122),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5122),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5122),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names935,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05122 : dd5122 {
+ int e;
+ ~ee05122(); // tgen
+ ee05122(); // tgen
+};
+//SIG(1 ee05122) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} Fi} v1 Fi} Fi}
+
+
+ee05122 ::~ee05122(){ note_dtor("ee05122", this);} // tgen
+ee05122 ::ee05122(){ note_ctor("ee05122", this);} // tgen
+
+static void Test_ee05122()
+{
+ extern Class_Descriptor cd_ee05122;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee05122, buf);
+ ee05122 *dp, &lv = *(dp=new (buf) ee05122());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee05122)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05122)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee05122");
+ check_base_class_offset(lv, (bb22*)(cc122*), ABISELECT(32,20), "ee05122");
+ check_base_class_offset(lv, (cc122*)(dd5122*), ABISELECT(16,12), "ee05122");
+ check_base_class_offset(lv, (dd5122*), 0, "ee05122");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05122.e");
+ test_class_info(&lv, &cd_ee05122);
+ dp->~ee05122();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05122(Test_ee05122, "ee05122", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee05122C1Ev();
+extern void _ZN7ee05122D1Ev();
+Name_Map name_map_ee05122[] = {
+ NSPAIR(_ZN7ee05122C1Ev),
+ NSPAIR(_ZN7ee05122D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc122;
+extern VTBL_ENTRY _ZTI5cc122[];
+extern VTBL_ENTRY _ZTV5cc122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc122[];
+extern Class_Descriptor cd_dd5122;
+extern VTBL_ENTRY _ZTI6dd5122[];
+extern VTBL_ENTRY _ZTV6dd5122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5122[];
+static Base_Class bases_ee05122[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 8, //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_cc122, 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_dd5122, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05122[];
+extern void _ZN6dd51223barEv();
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd51223barEv,_ZTv0_n16_N6dd51223barEv)();
+extern void ABISELECT(_ZThn32_N6dd51223barEv,_ZThn20_N6dd51223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee05122[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05122[0]),
+ (VTBL_ENTRY)&_ZN6dd51223barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05122[0]),
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee05122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51223barEv,_ZTv0_n16_N6dd51223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee05122[];
+extern void _ZN6dd51223barEv();
+static VTBL_ENTRY _tg__ZTV6dd5122__7ee05122[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5122[0]),
+ (VTBL_ENTRY)&_ZN6dd51223barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc122__6dd5122__7ee05122[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd51223barEv,_ZTv0_n16_N6dd51223barEv)();
+extern void ABISELECT(_ZThn32_N6dd51223barEv,_ZThn20_N6dd51223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd5122__7ee05122[] = {
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51223barEv,_ZTv0_n16_N6dd51223barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc122__7ee05122[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc122__7ee05122[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee05122[] = {
+ {&(_ZTV7ee05122[4]), 4,14},
+ {&(_tg__ZTV6dd5122__7ee05122[4]), 4,5},
+ {&(_tg__ZTV5cc122__6dd5122__7ee05122[3]), 3,3},
+ {&(_tg__ZTV4bb22__6dd5122__7ee05122[4]), 4,6},
+ {&(_ZTV7ee05122[8]), 8,14},
+ {&(_ZTV7ee05122[12]), 12,14},
+ {&(_tg__ZTV5cc122__7ee05122[3]), 3,3},
+ {&(_tg__ZTV4bb22__5cc122__7ee05122[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee05122[];
+extern VTBL_ENTRY _ZTV7ee05122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05122[];
+static VTBL_ENTRY alt_thunk_names936[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd51223barEv,_ZTv0_n16_N6dd51223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51223barEv,_ZThn20_N6dd51223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51223barEv,_ZThn20_N6dd51223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05122 = { "ee05122", // class name
+ bases_ee05122, 4,
+ &(vtc_ee05122[0]), // expected_vtbl_contents
+ &(vtt_ee05122[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee05122),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05122),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05122),8, //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 ee15122 : virtual dd5122 {
+ int e;
+ ~ee15122(); // tgen
+ ee15122(); // tgen
+};
+//SIG(1 ee15122) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} Fi} v1 Fi} Fi}
+
+
+ee15122 ::~ee15122(){ note_dtor("ee15122", this);} // tgen
+ee15122 ::ee15122(){ note_ctor("ee15122", this);} // tgen
+
+static void Test_ee15122()
+{
+ extern Class_Descriptor cd_ee15122;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee15122, buf);
+ ee15122 *dp, &lv = *(dp=new (buf) ee15122());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee15122)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15122)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(48,24), "ee15122");
+ check_base_class_offset(lv, (bb22*)(cc122*), ABISELECT(48,24), "ee15122");
+ check_base_class_offset(lv, (cc122*)(dd5122*), ABISELECT(32,16), "ee15122");
+ check_base_class_offset(lv, (dd5122*), ABISELECT(16,8), "ee15122");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15122.e");
+ test_class_info(&lv, &cd_ee15122);
+ dp->~ee15122();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15122(Test_ee15122, "ee15122", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee15122C1Ev();
+extern void _ZN7ee15122D1Ev();
+Name_Map name_map_ee15122[] = {
+ NSPAIR(_ZN7ee15122C1Ev),
+ NSPAIR(_ZN7ee15122D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc122;
+extern VTBL_ENTRY _ZTI5cc122[];
+extern VTBL_ENTRY _ZTV5cc122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc122[];
+extern Class_Descriptor cd_dd5122;
+extern VTBL_ENTRY _ZTI6dd5122[];
+extern VTBL_ENTRY _ZTV6dd5122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5122[];
+static Base_Class bases_ee15122[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb22, ABISELECT(48,24), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc122, 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_dd5122, 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 _ZTI7ee15122[];
+extern void _ZN6dd51223barEv();
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd51223barEv,_ZTv0_n16_N6dd51223barEv)();
+extern void ABISELECT(_ZThn32_N6dd51223barEv,_ZThn16_N6dd51223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee15122[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15122[0]),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15122[0]),
+ (VTBL_ENTRY)&_ZN6dd51223barEv,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15122[0]),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee15122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51223barEv,_ZTv0_n16_N6dd51223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee15122[];
+extern void _ZN6dd51223barEv();
+static VTBL_ENTRY _tg__ZTV6dd5122__7ee15122[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5122[0]),
+ (VTBL_ENTRY)&_ZN6dd51223barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc122__6dd5122__7ee15122[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd51223barEv,_ZTv0_n16_N6dd51223barEv)();
+extern void ABISELECT(_ZThn32_N6dd51223barEv,_ZThn16_N6dd51223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd5122__7ee15122[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51223barEv,_ZTv0_n16_N6dd51223barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc122__7ee15122[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc122__7ee15122[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee15122[] = {
+ {&(_ZTV7ee15122[5]), 5,20},
+ {&(_ZTV7ee15122[10]), 10,20},
+ {&(_ZTV7ee15122[14]), 14,20},
+ {&(_ZTV7ee15122[18]), 18,20},
+ {&(_tg__ZTV6dd5122__7ee15122[4]), 4,5},
+ {&(_tg__ZTV5cc122__6dd5122__7ee15122[3]), 3,3},
+ {&(_tg__ZTV4bb22__6dd5122__7ee15122[4]), 4,6},
+ {&(_tg__ZTV5cc122__7ee15122[3]), 3,3},
+ {&(_tg__ZTV4bb22__5cc122__7ee15122[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee15122[];
+extern VTBL_ENTRY _ZTV7ee15122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15122[];
+static VTBL_ENTRY alt_thunk_names937[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd51223barEv,_ZTv0_n16_N6dd51223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51223barEv,_ZThn16_N6dd51223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51223barEv,_ZThn16_N6dd51223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15122 = { "ee15122", // class name
+ bases_ee15122, 4,
+ &(vtc_ee15122[0]), // expected_vtbl_contents
+ &(vtt_ee15122[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee15122),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15122),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15122),9, //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 ee25122 : dd5122 {
+ int e;
+ virtual void foo(); // _ZN7ee251223fooEv
+ ~ee25122(); // tgen
+ ee25122(); // tgen
+};
+//SIG(1 ee25122) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee25122 ::foo(){vfunc_called(this, "_ZN7ee251223fooEv");}
+ee25122 ::~ee25122(){ note_dtor("ee25122", this);} // tgen
+ee25122 ::ee25122(){ note_ctor("ee25122", this);} // tgen
+
+static void Test_ee25122()
+{
+ extern Class_Descriptor cd_ee25122;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee25122, buf);
+ ee25122 *dp, &lv = *(dp=new (buf) ee25122());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee25122)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25122)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee25122");
+ check_base_class_offset(lv, (bb22*)(cc122*), ABISELECT(32,20), "ee25122");
+ check_base_class_offset(lv, (cc122*)(dd5122*), ABISELECT(16,12), "ee25122");
+ check_base_class_offset(lv, (dd5122*), 0, "ee25122");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25122.e");
+ test_class_info(&lv, &cd_ee25122);
+ dp->~ee25122();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25122(Test_ee25122, "ee25122", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee25122C1Ev();
+extern void _ZN7ee25122D1Ev();
+Name_Map name_map_ee25122[] = {
+ NSPAIR(_ZN7ee25122C1Ev),
+ NSPAIR(_ZN7ee25122D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc122;
+extern VTBL_ENTRY _ZTI5cc122[];
+extern VTBL_ENTRY _ZTV5cc122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc122[];
+extern Class_Descriptor cd_dd5122;
+extern VTBL_ENTRY _ZTI6dd5122[];
+extern VTBL_ENTRY _ZTV6dd5122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5122[];
+static Base_Class bases_ee25122[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc122, 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_dd5122, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25122[];
+extern void _ZN6dd51223barEv();
+extern void _ZN7ee251223fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee251223fooEv,_ZTv0_n12_N7ee251223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee251223fooEv,_ZThn20_N7ee251223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd51223barEv,_ZTv0_n16_N6dd51223barEv)();
+extern void ABISELECT(_ZThn32_N6dd51223barEv,_ZThn20_N6dd51223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25122[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25122[0]),
+ (VTBL_ENTRY)&_ZN6dd51223barEv,
+ (VTBL_ENTRY)&_ZN7ee251223fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25122[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee25122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee251223fooEv,_ZTv0_n12_N7ee251223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51223barEv,_ZTv0_n16_N6dd51223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee25122[];
+extern void _ZN6dd51223barEv();
+static VTBL_ENTRY _tg__ZTV6dd5122__7ee25122[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5122[0]),
+ (VTBL_ENTRY)&_ZN6dd51223barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc122__6dd5122__7ee25122[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd51223barEv,_ZTv0_n16_N6dd51223barEv)();
+extern void ABISELECT(_ZThn32_N6dd51223barEv,_ZThn20_N6dd51223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd5122__7ee25122[] = {
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51223barEv,_ZTv0_n16_N6dd51223barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc122__7ee25122[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc122__7ee25122[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee25122[] = {
+ {&(_ZTV7ee25122[4]), 4,15},
+ {&(_tg__ZTV6dd5122__7ee25122[4]), 4,5},
+ {&(_tg__ZTV5cc122__6dd5122__7ee25122[3]), 3,3},
+ {&(_tg__ZTV4bb22__6dd5122__7ee25122[4]), 4,6},
+ {&(_ZTV7ee25122[9]), 9,15},
+ {&(_ZTV7ee25122[13]), 13,15},
+ {&(_tg__ZTV5cc122__7ee25122[3]), 3,3},
+ {&(_tg__ZTV4bb22__5cc122__7ee25122[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee25122[];
+extern VTBL_ENTRY _ZTV7ee25122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25122[];
+static VTBL_ENTRY alt_thunk_names938[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd51223barEv,_ZTv0_n16_N6dd51223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51223barEv,_ZThn20_N6dd51223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51223barEv,_ZThn20_N6dd51223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee251223fooEv,_ZTv0_n12_N7ee251223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee251223fooEv,_ZThn20_N7ee251223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25122 = { "ee25122", // class name
+ bases_ee25122, 4,
+ &(vtc_ee25122[0]), // expected_vtbl_contents
+ &(vtt_ee25122[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee25122),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25122),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25122),8, //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 ee35122 : virtual dd5122 {
+ int e;
+ virtual void foo(); // _ZN7ee351223fooEv
+ ~ee35122(); // tgen
+ ee35122(); // tgen
+};
+//SIG(1 ee35122) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee35122 ::foo(){vfunc_called(this, "_ZN7ee351223fooEv");}
+ee35122 ::~ee35122(){ note_dtor("ee35122", this);} // tgen
+ee35122 ::ee35122(){ note_ctor("ee35122", this);} // tgen
+
+static void Test_ee35122()
+{
+ extern Class_Descriptor cd_ee35122;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee35122, buf);
+ ee35122 *dp, &lv = *(dp=new (buf) ee35122());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee35122)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35122)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(48,24), "ee35122");
+ check_base_class_offset(lv, (bb22*)(cc122*), ABISELECT(48,24), "ee35122");
+ check_base_class_offset(lv, (cc122*)(dd5122*), ABISELECT(32,16), "ee35122");
+ check_base_class_offset(lv, (dd5122*), ABISELECT(16,8), "ee35122");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35122.e");
+ test_class_info(&lv, &cd_ee35122);
+ dp->~ee35122();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35122(Test_ee35122, "ee35122", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee35122C1Ev();
+extern void _ZN7ee35122D1Ev();
+Name_Map name_map_ee35122[] = {
+ NSPAIR(_ZN7ee35122C1Ev),
+ NSPAIR(_ZN7ee35122D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc122;
+extern VTBL_ENTRY _ZTI5cc122[];
+extern VTBL_ENTRY _ZTV5cc122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc122[];
+extern Class_Descriptor cd_dd5122;
+extern VTBL_ENTRY _ZTI6dd5122[];
+extern VTBL_ENTRY _ZTV6dd5122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5122[];
+static Base_Class bases_ee35122[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb22, ABISELECT(48,24), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc122, 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_dd5122, ABISELECT(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 _ZTI7ee35122[];
+extern void _ZN7ee351223fooEv();
+extern void _ZN6dd51223barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee351223fooEv,_ZTv0_n12_N7ee351223fooEv)();
+extern void ABISELECT(_ZThn48_N7ee351223fooEv,_ZThn24_N7ee351223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd51223barEv,_ZTv0_n16_N6dd51223barEv)();
+extern void ABISELECT(_ZThn32_N6dd51223barEv,_ZThn16_N6dd51223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35122[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35122[0]),
+ (VTBL_ENTRY)&_ZN7ee351223fooEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35122[0]),
+ (VTBL_ENTRY)&_ZN6dd51223barEv,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35122[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee35122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee351223fooEv,_ZTv0_n12_N7ee351223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51223barEv,_ZTv0_n16_N6dd51223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee35122[];
+extern void _ZN6dd51223barEv();
+static VTBL_ENTRY _tg__ZTV6dd5122__7ee35122[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5122[0]),
+ (VTBL_ENTRY)&_ZN6dd51223barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc122__6dd5122__7ee35122[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd51223barEv,_ZTv0_n16_N6dd51223barEv)();
+extern void ABISELECT(_ZThn32_N6dd51223barEv,_ZThn16_N6dd51223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd5122__7ee35122[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51223barEv,_ZTv0_n16_N6dd51223barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc122__7ee35122[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc122__7ee35122[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee35122[] = {
+ {&(_ZTV7ee35122[5]), 5,21},
+ {&(_ZTV7ee35122[11]), 11,21},
+ {&(_ZTV7ee35122[15]), 15,21},
+ {&(_ZTV7ee35122[19]), 19,21},
+ {&(_tg__ZTV6dd5122__7ee35122[4]), 4,5},
+ {&(_tg__ZTV5cc122__6dd5122__7ee35122[3]), 3,3},
+ {&(_tg__ZTV4bb22__6dd5122__7ee35122[4]), 4,6},
+ {&(_tg__ZTV5cc122__7ee35122[3]), 3,3},
+ {&(_tg__ZTV4bb22__5cc122__7ee35122[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee35122[];
+extern VTBL_ENTRY _ZTV7ee35122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35122[];
+static VTBL_ENTRY alt_thunk_names939[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd51223barEv,_ZTv0_n16_N6dd51223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51223barEv,_ZThn16_N6dd51223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51223barEv,_ZThn16_N6dd51223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee351223fooEv,_ZTv0_n12_N7ee351223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee351223fooEv,_ZThn24_N7ee351223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35122 = { "ee35122", // class name
+ bases_ee35122, 4,
+ &(vtc_ee35122[0]), // expected_vtbl_contents
+ &(vtt_ee35122[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee35122),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35122),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35122),9, //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 ee45122 : dd5122 {
+ int e;
+ virtual void bar(); // _ZN7ee451223barEv
+ ~ee45122(); // tgen
+ ee45122(); // tgen
+};
+//SIG(1 ee45122) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee45122 ::bar(){vfunc_called(this, "_ZN7ee451223barEv");}
+ee45122 ::~ee45122(){ note_dtor("ee45122", this);} // tgen
+ee45122 ::ee45122(){ note_ctor("ee45122", this);} // tgen
+
+static void Test_ee45122()
+{
+ extern Class_Descriptor cd_ee45122;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee45122, buf);
+ ee45122 *dp, &lv = *(dp=new (buf) ee45122());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee45122)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45122)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee45122");
+ check_base_class_offset(lv, (bb22*)(cc122*), ABISELECT(32,20), "ee45122");
+ check_base_class_offset(lv, (cc122*)(dd5122*), ABISELECT(16,12), "ee45122");
+ check_base_class_offset(lv, (dd5122*), 0, "ee45122");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45122.e");
+ test_class_info(&lv, &cd_ee45122);
+ dp->~ee45122();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45122(Test_ee45122, "ee45122", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee45122C1Ev();
+extern void _ZN7ee45122D1Ev();
+Name_Map name_map_ee45122[] = {
+ NSPAIR(_ZN7ee45122C1Ev),
+ NSPAIR(_ZN7ee45122D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc122;
+extern VTBL_ENTRY _ZTI5cc122[];
+extern VTBL_ENTRY _ZTV5cc122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc122[];
+extern Class_Descriptor cd_dd5122;
+extern VTBL_ENTRY _ZTI6dd5122[];
+extern VTBL_ENTRY _ZTV6dd5122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5122[];
+static Base_Class bases_ee45122[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 8, //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_cc122, 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_dd5122, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45122[];
+extern void _ZN7ee451223barEv();
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee451223barEv,_ZTv0_n16_N7ee451223barEv)();
+extern void ABISELECT(_ZThn32_N7ee451223barEv,_ZThn20_N7ee451223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee45122[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45122[0]),
+ (VTBL_ENTRY)&_ZN7ee451223barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45122[0]),
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee45122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee451223barEv,_ZTv0_n16_N7ee451223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee45122[];
+extern void _ZN6dd51223barEv();
+static VTBL_ENTRY _tg__ZTV6dd5122__7ee45122[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5122[0]),
+ (VTBL_ENTRY)&_ZN6dd51223barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc122__6dd5122__7ee45122[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd51223barEv,_ZTv0_n16_N6dd51223barEv)();
+extern void ABISELECT(_ZThn32_N6dd51223barEv,_ZThn20_N6dd51223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd5122__7ee45122[] = {
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51223barEv,_ZTv0_n16_N6dd51223barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc122__7ee45122[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc122__7ee45122[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee45122[] = {
+ {&(_ZTV7ee45122[4]), 4,14},
+ {&(_tg__ZTV6dd5122__7ee45122[4]), 4,5},
+ {&(_tg__ZTV5cc122__6dd5122__7ee45122[3]), 3,3},
+ {&(_tg__ZTV4bb22__6dd5122__7ee45122[4]), 4,6},
+ {&(_ZTV7ee45122[8]), 8,14},
+ {&(_ZTV7ee45122[12]), 12,14},
+ {&(_tg__ZTV5cc122__7ee45122[3]), 3,3},
+ {&(_tg__ZTV4bb22__5cc122__7ee45122[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee45122[];
+extern VTBL_ENTRY _ZTV7ee45122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45122[];
+static VTBL_ENTRY alt_thunk_names940[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd51223barEv,_ZTv0_n16_N6dd51223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51223barEv,_ZThn20_N6dd51223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee451223barEv,_ZTv0_n16_N7ee451223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee451223barEv,_ZThn20_N7ee451223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45122 = { "ee45122", // class name
+ bases_ee45122, 4,
+ &(vtc_ee45122[0]), // expected_vtbl_contents
+ &(vtt_ee45122[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee45122),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45122),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45122),8, //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 ee55122 : virtual dd5122 {
+ int e;
+ virtual void bar(); // _ZN7ee551223barEv
+ ~ee55122(); // tgen
+ ee55122(); // tgen
+};
+//SIG(1 ee55122) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee55122 ::bar(){vfunc_called(this, "_ZN7ee551223barEv");}
+ee55122 ::~ee55122(){ note_dtor("ee55122", this);} // tgen
+ee55122 ::ee55122(){ note_ctor("ee55122", this);} // tgen
+
+static void Test_ee55122()
+{
+ extern Class_Descriptor cd_ee55122;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee55122, buf);
+ ee55122 *dp, &lv = *(dp=new (buf) ee55122());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee55122)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55122)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(48,24), "ee55122");
+ check_base_class_offset(lv, (bb22*)(cc122*), ABISELECT(48,24), "ee55122");
+ check_base_class_offset(lv, (cc122*)(dd5122*), ABISELECT(32,16), "ee55122");
+ check_base_class_offset(lv, (dd5122*), ABISELECT(16,8), "ee55122");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55122.e");
+ test_class_info(&lv, &cd_ee55122);
+ dp->~ee55122();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55122(Test_ee55122, "ee55122", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee55122C1Ev();
+extern void _ZN7ee55122D1Ev();
+Name_Map name_map_ee55122[] = {
+ NSPAIR(_ZN7ee55122C1Ev),
+ NSPAIR(_ZN7ee55122D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc122;
+extern VTBL_ENTRY _ZTI5cc122[];
+extern VTBL_ENTRY _ZTV5cc122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc122[];
+extern Class_Descriptor cd_dd5122;
+extern VTBL_ENTRY _ZTI6dd5122[];
+extern VTBL_ENTRY _ZTV6dd5122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5122[];
+static Base_Class bases_ee55122[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb22, ABISELECT(48,24), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc122, 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_dd5122, ABISELECT(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 _ZTI7ee55122[];
+extern void _ZN7ee551223barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee551223barEv,_ZTv0_n20_N7ee551223barEv)();
+extern void ABISELECT(_ZThn16_N7ee551223barEv,_ZThn8_N7ee551223barEv)() __attribute__((weak));
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee551223barEv,_ZTv0_n16_N7ee551223barEv)();
+extern void ABISELECT(_ZThn48_N7ee551223barEv,_ZThn24_N7ee551223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee55122[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55122[0]),
+ (VTBL_ENTRY)&_ZN7ee551223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee551223barEv,_ZTv0_n20_N7ee551223barEv),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55122[0]),
+ ABISELECT(-48,-24),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee55122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee551223barEv,_ZTv0_n16_N7ee551223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee55122[];
+extern void _ZN6dd51223barEv();
+static VTBL_ENTRY _tg__ZTV6dd5122__7ee55122[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5122[0]),
+ (VTBL_ENTRY)&_ZN6dd51223barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc122__6dd5122__7ee55122[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd51223barEv,_ZTv0_n16_N6dd51223barEv)();
+extern void ABISELECT(_ZThn32_N6dd51223barEv,_ZThn16_N6dd51223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd5122__7ee55122[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51223barEv,_ZTv0_n16_N6dd51223barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc122__7ee55122[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc122__7ee55122[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee55122[] = {
+ {&(_ZTV7ee55122[5]), 5,21},
+ {&(_ZTV7ee55122[11]), 11,21},
+ {&(_ZTV7ee55122[15]), 15,21},
+ {&(_ZTV7ee55122[19]), 19,21},
+ {&(_tg__ZTV6dd5122__7ee55122[4]), 4,5},
+ {&(_tg__ZTV5cc122__6dd5122__7ee55122[3]), 3,3},
+ {&(_tg__ZTV4bb22__6dd5122__7ee55122[4]), 4,6},
+ {&(_tg__ZTV5cc122__7ee55122[3]), 3,3},
+ {&(_tg__ZTV4bb22__5cc122__7ee55122[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee55122[];
+extern VTBL_ENTRY _ZTV7ee55122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55122[];
+static VTBL_ENTRY alt_thunk_names941[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd51223barEv,_ZTv0_n16_N6dd51223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51223barEv,_ZThn16_N6dd51223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee551223barEv,_ZTv0_n16_N7ee551223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee551223barEv,_ZThn24_N7ee551223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee551223barEv,_ZTv0_n20_N7ee551223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee551223barEv,_ZThn8_N7ee551223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55122 = { "ee55122", // class name
+ bases_ee55122, 4,
+ &(vtc_ee55122[0]), // expected_vtbl_contents
+ &(vtt_ee55122[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee55122),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55122),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55122),9, //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 ee65122 : dd5122 {
+ int e;
+ virtual void foo(); // _ZN7ee651223fooEv
+ virtual void bar(); // _ZN7ee651223barEv
+ ~ee65122(); // tgen
+ ee65122(); // tgen
+};
+//SIG(1 ee65122) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65122 ::foo(){vfunc_called(this, "_ZN7ee651223fooEv");}
+void ee65122 ::bar(){vfunc_called(this, "_ZN7ee651223barEv");}
+ee65122 ::~ee65122(){ note_dtor("ee65122", this);} // tgen
+ee65122 ::ee65122(){ note_ctor("ee65122", this);} // tgen
+
+static void Test_ee65122()
+{
+ extern Class_Descriptor cd_ee65122;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee65122, buf);
+ ee65122 *dp, &lv = *(dp=new (buf) ee65122());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee65122)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65122)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee65122");
+ check_base_class_offset(lv, (bb22*)(cc122*), ABISELECT(32,20), "ee65122");
+ check_base_class_offset(lv, (cc122*)(dd5122*), ABISELECT(16,12), "ee65122");
+ check_base_class_offset(lv, (dd5122*), 0, "ee65122");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65122.e");
+ test_class_info(&lv, &cd_ee65122);
+ dp->~ee65122();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65122(Test_ee65122, "ee65122", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee65122C1Ev();
+extern void _ZN7ee65122D1Ev();
+Name_Map name_map_ee65122[] = {
+ NSPAIR(_ZN7ee65122C1Ev),
+ NSPAIR(_ZN7ee65122D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc122;
+extern VTBL_ENTRY _ZTI5cc122[];
+extern VTBL_ENTRY _ZTV5cc122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc122[];
+extern Class_Descriptor cd_dd5122;
+extern VTBL_ENTRY _ZTI6dd5122[];
+extern VTBL_ENTRY _ZTV6dd5122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5122[];
+static Base_Class bases_ee65122[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc122, 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_dd5122, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65122[];
+extern void _ZN7ee651223barEv();
+extern void _ZN7ee651223fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee651223fooEv,_ZTv0_n12_N7ee651223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee651223fooEv,_ZThn20_N7ee651223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee651223barEv,_ZTv0_n16_N7ee651223barEv)();
+extern void ABISELECT(_ZThn32_N7ee651223barEv,_ZThn20_N7ee651223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65122[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65122[0]),
+ (VTBL_ENTRY)&_ZN7ee651223barEv,
+ (VTBL_ENTRY)&_ZN7ee651223fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65122[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee65122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee651223fooEv,_ZTv0_n12_N7ee651223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee651223barEv,_ZTv0_n16_N7ee651223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee65122[];
+extern void _ZN6dd51223barEv();
+static VTBL_ENTRY _tg__ZTV6dd5122__7ee65122[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5122[0]),
+ (VTBL_ENTRY)&_ZN6dd51223barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc122__6dd5122__7ee65122[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd51223barEv,_ZTv0_n16_N6dd51223barEv)();
+extern void ABISELECT(_ZThn32_N6dd51223barEv,_ZThn20_N6dd51223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd5122__7ee65122[] = {
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51223barEv,_ZTv0_n16_N6dd51223barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc122__7ee65122[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc122__7ee65122[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee65122[] = {
+ {&(_ZTV7ee65122[4]), 4,15},
+ {&(_tg__ZTV6dd5122__7ee65122[4]), 4,5},
+ {&(_tg__ZTV5cc122__6dd5122__7ee65122[3]), 3,3},
+ {&(_tg__ZTV4bb22__6dd5122__7ee65122[4]), 4,6},
+ {&(_ZTV7ee65122[9]), 9,15},
+ {&(_ZTV7ee65122[13]), 13,15},
+ {&(_tg__ZTV5cc122__7ee65122[3]), 3,3},
+ {&(_tg__ZTV4bb22__5cc122__7ee65122[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee65122[];
+extern VTBL_ENTRY _ZTV7ee65122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65122[];
+static VTBL_ENTRY alt_thunk_names942[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd51223barEv,_ZTv0_n16_N6dd51223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51223barEv,_ZThn20_N6dd51223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee651223barEv,_ZTv0_n16_N7ee651223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee651223barEv,_ZThn20_N7ee651223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee651223fooEv,_ZTv0_n12_N7ee651223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee651223fooEv,_ZThn20_N7ee651223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65122 = { "ee65122", // class name
+ bases_ee65122, 4,
+ &(vtc_ee65122[0]), // expected_vtbl_contents
+ &(vtt_ee65122[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee65122),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65122),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65122),8, //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 ee75122 : virtual dd5122 {
+ int e;
+ virtual void foo(); // _ZN7ee751223fooEv
+ virtual void bar(); // _ZN7ee751223barEv
+ ~ee75122(); // tgen
+ ee75122(); // tgen
+};
+//SIG(1 ee75122) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75122 ::foo(){vfunc_called(this, "_ZN7ee751223fooEv");}
+void ee75122 ::bar(){vfunc_called(this, "_ZN7ee751223barEv");}
+ee75122 ::~ee75122(){ note_dtor("ee75122", this);} // tgen
+ee75122 ::ee75122(){ note_ctor("ee75122", this);} // tgen
+
+static void Test_ee75122()
+{
+ extern Class_Descriptor cd_ee75122;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee75122, buf);
+ ee75122 *dp, &lv = *(dp=new (buf) ee75122());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee75122)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75122)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(48,24), "ee75122");
+ check_base_class_offset(lv, (bb22*)(cc122*), ABISELECT(48,24), "ee75122");
+ check_base_class_offset(lv, (cc122*)(dd5122*), ABISELECT(32,16), "ee75122");
+ check_base_class_offset(lv, (dd5122*), ABISELECT(16,8), "ee75122");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75122.e");
+ test_class_info(&lv, &cd_ee75122);
+ dp->~ee75122();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75122(Test_ee75122, "ee75122", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee75122C1Ev();
+extern void _ZN7ee75122D1Ev();
+Name_Map name_map_ee75122[] = {
+ NSPAIR(_ZN7ee75122C1Ev),
+ NSPAIR(_ZN7ee75122D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc122;
+extern VTBL_ENTRY _ZTI5cc122[];
+extern VTBL_ENTRY _ZTV5cc122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc122[];
+extern Class_Descriptor cd_dd5122;
+extern VTBL_ENTRY _ZTI6dd5122[];
+extern VTBL_ENTRY _ZTV6dd5122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5122[];
+static Base_Class bases_ee75122[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb22, ABISELECT(48,24), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc122, 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_dd5122, 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 _ZTI7ee75122[];
+extern void _ZN7ee751223fooEv();
+extern void _ZN7ee751223barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee751223barEv,_ZTv0_n20_N7ee751223barEv)();
+extern void ABISELECT(_ZThn16_N7ee751223barEv,_ZThn8_N7ee751223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee751223fooEv,_ZTv0_n12_N7ee751223fooEv)();
+extern void ABISELECT(_ZThn48_N7ee751223fooEv,_ZThn24_N7ee751223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee751223barEv,_ZTv0_n16_N7ee751223barEv)();
+extern void ABISELECT(_ZThn48_N7ee751223barEv,_ZThn24_N7ee751223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75122[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75122[0]),
+ (VTBL_ENTRY)&_ZN7ee751223fooEv,
+ (VTBL_ENTRY)&_ZN7ee751223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee751223barEv,_ZTv0_n20_N7ee751223barEv),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75122[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee75122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee751223fooEv,_ZTv0_n12_N7ee751223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee751223barEv,_ZTv0_n16_N7ee751223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee75122[];
+extern void _ZN6dd51223barEv();
+static VTBL_ENTRY _tg__ZTV6dd5122__7ee75122[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5122[0]),
+ (VTBL_ENTRY)&_ZN6dd51223barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc122__6dd5122__7ee75122[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd51223barEv,_ZTv0_n16_N6dd51223barEv)();
+extern void ABISELECT(_ZThn32_N6dd51223barEv,_ZThn16_N6dd51223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd5122__7ee75122[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51223barEv,_ZTv0_n16_N6dd51223barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc122__7ee75122[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc122__7ee75122[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee75122[] = {
+ {&(_ZTV7ee75122[5]), 5,22},
+ {&(_ZTV7ee75122[12]), 12,22},
+ {&(_ZTV7ee75122[16]), 16,22},
+ {&(_ZTV7ee75122[20]), 20,22},
+ {&(_tg__ZTV6dd5122__7ee75122[4]), 4,5},
+ {&(_tg__ZTV5cc122__6dd5122__7ee75122[3]), 3,3},
+ {&(_tg__ZTV4bb22__6dd5122__7ee75122[4]), 4,6},
+ {&(_tg__ZTV5cc122__7ee75122[3]), 3,3},
+ {&(_tg__ZTV4bb22__5cc122__7ee75122[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee75122[];
+extern VTBL_ENTRY _ZTV7ee75122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75122[];
+static VTBL_ENTRY alt_thunk_names943[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd51223barEv,_ZTv0_n16_N6dd51223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51223barEv,_ZThn16_N6dd51223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee751223barEv,_ZTv0_n16_N7ee751223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee751223barEv,_ZThn24_N7ee751223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee751223fooEv,_ZTv0_n12_N7ee751223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee751223fooEv,_ZThn24_N7ee751223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee751223barEv,_ZTv0_n20_N7ee751223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee751223barEv,_ZThn8_N7ee751223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75122 = { "ee75122", // class name
+ bases_ee75122, 4,
+ &(vtc_ee75122[0]), // expected_vtbl_contents
+ &(vtt_ee75122[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee75122),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75122),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75122),9, //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 dd6122 : cc122 {
+ int d;
+ virtual void bar(); // _ZN6dd61223barEv
+ virtual void foo(); // _ZN6dd61223fooEv
+ ~dd6122(); // tgen
+ dd6122(); // tgen
+};
+//SIG(-1 dd6122) C1{ BC2{ VBC3{ BC4{ v2 v1 Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void dd6122 ::bar(){vfunc_called(this, "_ZN6dd61223barEv");}
+void dd6122 ::foo(){vfunc_called(this, "_ZN6dd61223fooEv");}
+dd6122 ::~dd6122(){ note_dtor("dd6122", this);} // tgen
+dd6122 ::dd6122(){ note_ctor("dd6122", this);} // tgen
+
+static void Test_dd6122()
+{
+ extern Class_Descriptor cd_dd6122;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd6122, buf);
+ dd6122 *dp, &lv = *(dp=new (buf) dd6122());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd6122)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6122)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(16,12), "dd6122");
+ check_base_class_offset(lv, (bb22*)(cc122*), ABISELECT(16,12), "dd6122");
+ check_base_class_offset(lv, (cc122*), 0, "dd6122");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd6122.d");
+ test_class_info(&lv, &cd_dd6122);
+ dp->~dd6122();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6122(Test_dd6122, "dd6122", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd6122C1Ev();
+extern void _ZN6dd6122D1Ev();
+Name_Map name_map_dd6122[] = {
+ NSPAIR(_ZN6dd6122C1Ev),
+ NSPAIR(_ZN6dd6122D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc122;
+extern VTBL_ENTRY _ZTI5cc122[];
+extern VTBL_ENTRY _ZTV5cc122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc122[];
+static Base_Class bases_dd6122[] = {
+ // 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_bb22, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc122, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd6122[];
+extern void _ZN6dd61223barEv();
+extern void _ZN6dd61223fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd61223fooEv,_ZTv0_n12_N6dd61223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd61223fooEv,_ZThn12_N6dd61223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61223barEv,_ZTv0_n16_N6dd61223barEv)();
+extern void ABISELECT(_ZThn16_N6dd61223barEv,_ZThn12_N6dd61223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd6122[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6122[0]),
+ (VTBL_ENTRY)&_ZN6dd61223barEv,
+ (VTBL_ENTRY)&_ZN6dd61223fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61223fooEv,_ZTv0_n12_N6dd61223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61223barEv,_ZTv0_n16_N6dd61223barEv),
+};
+extern VTBL_ENTRY _ZTV6dd6122[];
+static VTBL_ENTRY _tg__ZTV5cc122__6dd6122[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc122__6dd6122[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_dd6122[] = {
+ {&(_ZTV6dd6122[3]), 3,11},
+ {&(_tg__ZTV5cc122__6dd6122[3]), 3,3},
+ {&(_tg__ZTV4bb22__5cc122__6dd6122[4]), 4,6},
+ {&(_ZTV6dd6122[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd6122[];
+extern VTBL_ENTRY _ZTV6dd6122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6122[];
+static VTBL_ENTRY alt_thunk_names944[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61223barEv,_ZTv0_n16_N6dd61223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61223barEv,_ZThn12_N6dd61223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61223fooEv,_ZTv0_n12_N6dd61223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61223fooEv,_ZThn12_N6dd61223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd6122 = { "dd6122", // class name
+ bases_dd6122, 3,
+ &(vtc_dd6122[0]), // expected_vtbl_contents
+ &(vtt_dd6122[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd6122),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6122),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd6122),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names944,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee06122 : dd6122 {
+ int e;
+ ~ee06122(); // tgen
+ ee06122(); // tgen
+};
+//SIG(1 ee06122) C1{ BC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee06122 ::~ee06122(){ note_dtor("ee06122", this);} // tgen
+ee06122 ::ee06122(){ note_ctor("ee06122", this);} // tgen
+
+static void Test_ee06122()
+{
+ extern Class_Descriptor cd_ee06122;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee06122, buf);
+ ee06122 *dp, &lv = *(dp=new (buf) ee06122());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee06122)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06122)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(24,16), "ee06122");
+ check_base_class_offset(lv, (bb22*)(cc122*)(dd6122*), ABISELECT(24,16), "ee06122");
+ check_base_class_offset(lv, (cc122*)(dd6122*), 0, "ee06122");
+ check_base_class_offset(lv, (dd6122*), 0, "ee06122");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee06122.e");
+ test_class_info(&lv, &cd_ee06122);
+ dp->~ee06122();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06122(Test_ee06122, "ee06122", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee06122C1Ev();
+extern void _ZN7ee06122D1Ev();
+Name_Map name_map_ee06122[] = {
+ NSPAIR(_ZN7ee06122C1Ev),
+ NSPAIR(_ZN7ee06122D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc122;
+extern VTBL_ENTRY _ZTI5cc122[];
+extern VTBL_ENTRY _ZTV5cc122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc122[];
+extern Class_Descriptor cd_dd6122;
+extern VTBL_ENTRY _ZTI6dd6122[];
+extern VTBL_ENTRY _ZTV6dd6122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6122[];
+static Base_Class bases_ee06122[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc122, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6122, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee06122[];
+extern void _ZN6dd61223barEv();
+extern void _ZN6dd61223fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd61223fooEv,_ZTv0_n12_N6dd61223fooEv)();
+extern void ABISELECT(_ZThn24_N6dd61223fooEv,_ZThn16_N6dd61223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61223barEv,_ZTv0_n16_N6dd61223barEv)();
+extern void ABISELECT(_ZThn24_N6dd61223barEv,_ZThn16_N6dd61223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee06122[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06122[0]),
+ (VTBL_ENTRY)&_ZN6dd61223barEv,
+ (VTBL_ENTRY)&_ZN6dd61223fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee06122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61223fooEv,_ZTv0_n12_N6dd61223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61223barEv,_ZTv0_n16_N6dd61223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee06122[];
+extern void _ZN6dd61223barEv();
+extern void _ZN6dd61223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6122__7ee06122[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6122[0]),
+ (VTBL_ENTRY)&_ZN6dd61223barEv,
+ (VTBL_ENTRY)&_ZN6dd61223fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1226dd6122__7ee06122[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc1226dd6122__7ee06122[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd61223fooEv,_ZTv0_n12_N6dd61223fooEv)();
+extern void ABISELECT(_ZThn24_N6dd61223fooEv,_ZThn16_N6dd61223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61223barEv,_ZTv0_n16_N6dd61223barEv)();
+extern void ABISELECT(_ZThn24_N6dd61223barEv,_ZThn16_N6dd61223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd6122__7ee06122[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61223fooEv,_ZTv0_n12_N6dd61223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61223barEv,_ZTv0_n16_N6dd61223barEv),
+};
+static VTT_ENTRY vtt_ee06122[] = {
+ {&(_ZTV7ee06122[3]), 3,11},
+ {&(_tg__ZTV6dd6122__7ee06122[3]), 3,5},
+ {&(_tg__ZTV5cc1226dd6122__7ee06122[3]), 3,3},
+ {&(_tg__ZTV4bb22__5cc1226dd6122__7ee06122[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd6122__7ee06122[4]), 4,6},
+ {&(_ZTV7ee06122[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee06122[];
+extern VTBL_ENTRY _ZTV7ee06122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee06122[];
+static VTBL_ENTRY alt_thunk_names945[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61223barEv,_ZTv0_n16_N6dd61223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61223barEv,_ZThn16_N6dd61223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61223barEv,_ZThn16_N6dd61223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61223fooEv,_ZTv0_n12_N6dd61223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61223fooEv,_ZThn16_N6dd61223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61223fooEv,_ZThn16_N6dd61223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee06122 = { "ee06122", // class name
+ bases_ee06122, 4,
+ &(vtc_ee06122[0]), // expected_vtbl_contents
+ &(vtt_ee06122[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee06122),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06122),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee06122),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names945,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee16122 : virtual dd6122 {
+ int e;
+ ~ee16122(); // tgen
+ ee16122(); // tgen
+};
+//SIG(1 ee16122) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee16122 ::~ee16122(){ note_dtor("ee16122", this);} // tgen
+ee16122 ::ee16122(){ note_ctor("ee16122", this);} // tgen
+
+static void Test_ee16122()
+{
+ extern Class_Descriptor cd_ee16122;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee16122, buf);
+ ee16122 *dp, &lv = *(dp=new (buf) ee16122());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee16122)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16122)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee16122");
+ check_base_class_offset(lv, (bb22*)(cc122*)(dd6122*), ABISELECT(32,20), "ee16122");
+ check_base_class_offset(lv, (cc122*)(dd6122*), ABISELECT(16,8), "ee16122");
+ check_base_class_offset(lv, (dd6122*), ABISELECT(16,8), "ee16122");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16122.e");
+ test_class_info(&lv, &cd_ee16122);
+ dp->~ee16122();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16122(Test_ee16122, "ee16122", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee16122C1Ev();
+extern void _ZN7ee16122D1Ev();
+Name_Map name_map_ee16122[] = {
+ NSPAIR(_ZN7ee16122C1Ev),
+ NSPAIR(_ZN7ee16122D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc122;
+extern VTBL_ENTRY _ZTI5cc122[];
+extern VTBL_ENTRY _ZTV5cc122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc122[];
+extern Class_Descriptor cd_dd6122;
+extern VTBL_ENTRY _ZTI6dd6122[];
+extern VTBL_ENTRY _ZTV6dd6122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6122[];
+static Base_Class bases_ee16122[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc122, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6122, 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 _ZTI7ee16122[];
+extern void _ZN6dd61223barEv();
+extern void _ZN6dd61223fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd61223fooEv,_ZTv0_n12_N6dd61223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd61223fooEv,_ZThn12_N6dd61223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61223barEv,_ZTv0_n16_N6dd61223barEv)();
+extern void ABISELECT(_ZThn16_N6dd61223barEv,_ZThn12_N6dd61223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee16122[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16122[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16122[0]),
+ (VTBL_ENTRY)&_ZN6dd61223barEv,
+ (VTBL_ENTRY)&_ZN6dd61223fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee16122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61223fooEv,_ZTv0_n12_N6dd61223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61223barEv,_ZTv0_n16_N6dd61223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee16122[];
+extern void _ZN6dd61223barEv();
+extern void _ZN6dd61223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6122__7ee16122[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6122[0]),
+ (VTBL_ENTRY)&_ZN6dd61223barEv,
+ (VTBL_ENTRY)&_ZN6dd61223fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1226dd6122__7ee16122[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc1226dd6122__7ee16122[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd61223fooEv,_ZTv0_n12_N6dd61223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd61223fooEv,_ZThn12_N6dd61223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61223barEv,_ZTv0_n16_N6dd61223barEv)();
+extern void ABISELECT(_ZThn16_N6dd61223barEv,_ZThn12_N6dd61223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd6122__7ee16122[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61223fooEv,_ZTv0_n12_N6dd61223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61223barEv,_ZTv0_n16_N6dd61223barEv),
+};
+static VTT_ENTRY vtt_ee16122[] = {
+ {&(_ZTV7ee16122[4]), 4,17},
+ {&(_ZTV7ee16122[9]), 9,17},
+ {&(_ZTV7ee16122[15]), 15,17},
+ {&(_tg__ZTV6dd6122__7ee16122[3]), 3,5},
+ {&(_tg__ZTV5cc1226dd6122__7ee16122[3]), 3,3},
+ {&(_tg__ZTV4bb22__5cc1226dd6122__7ee16122[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd6122__7ee16122[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee16122[];
+extern VTBL_ENTRY _ZTV7ee16122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16122[];
+static VTBL_ENTRY alt_thunk_names946[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61223barEv,_ZTv0_n16_N6dd61223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61223barEv,_ZThn12_N6dd61223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61223barEv,_ZThn12_N6dd61223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61223fooEv,_ZTv0_n12_N6dd61223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61223fooEv,_ZThn12_N6dd61223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61223fooEv,_ZThn12_N6dd61223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee16122 = { "ee16122", // class name
+ bases_ee16122, 4,
+ &(vtc_ee16122[0]), // expected_vtbl_contents
+ &(vtt_ee16122[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee16122),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16122),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16122),7, //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 ee26122 : dd6122 {
+ int e;
+ virtual void foo(); // _ZN7ee261223fooEv
+ ~ee26122(); // tgen
+ ee26122(); // tgen
+};
+//SIG(1 ee26122) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26122 ::foo(){vfunc_called(this, "_ZN7ee261223fooEv");}
+ee26122 ::~ee26122(){ note_dtor("ee26122", this);} // tgen
+ee26122 ::ee26122(){ note_ctor("ee26122", this);} // tgen
+
+static void Test_ee26122()
+{
+ extern Class_Descriptor cd_ee26122;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee26122, buf);
+ ee26122 *dp, &lv = *(dp=new (buf) ee26122());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee26122)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26122)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(24,16), "ee26122");
+ check_base_class_offset(lv, (bb22*)(cc122*)(dd6122*), ABISELECT(24,16), "ee26122");
+ check_base_class_offset(lv, (cc122*)(dd6122*), 0, "ee26122");
+ check_base_class_offset(lv, (dd6122*), 0, "ee26122");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee26122.e");
+ test_class_info(&lv, &cd_ee26122);
+ dp->~ee26122();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26122(Test_ee26122, "ee26122", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee26122C1Ev();
+extern void _ZN7ee26122D1Ev();
+Name_Map name_map_ee26122[] = {
+ NSPAIR(_ZN7ee26122C1Ev),
+ NSPAIR(_ZN7ee26122D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc122;
+extern VTBL_ENTRY _ZTI5cc122[];
+extern VTBL_ENTRY _ZTV5cc122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc122[];
+extern Class_Descriptor cd_dd6122;
+extern VTBL_ENTRY _ZTI6dd6122[];
+extern VTBL_ENTRY _ZTV6dd6122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6122[];
+static Base_Class bases_ee26122[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc122, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6122, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee26122[];
+extern void _ZN6dd61223barEv();
+extern void _ZN7ee261223fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee261223fooEv,_ZTv0_n12_N7ee261223fooEv)();
+extern void ABISELECT(_ZThn24_N7ee261223fooEv,_ZThn16_N7ee261223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61223barEv,_ZTv0_n16_N6dd61223barEv)();
+extern void ABISELECT(_ZThn24_N6dd61223barEv,_ZThn16_N6dd61223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee26122[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26122[0]),
+ (VTBL_ENTRY)&_ZN6dd61223barEv,
+ (VTBL_ENTRY)&_ZN7ee261223fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee26122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee261223fooEv,_ZTv0_n12_N7ee261223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61223barEv,_ZTv0_n16_N6dd61223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee26122[];
+extern void _ZN6dd61223barEv();
+extern void _ZN6dd61223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6122__7ee26122[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6122[0]),
+ (VTBL_ENTRY)&_ZN6dd61223barEv,
+ (VTBL_ENTRY)&_ZN6dd61223fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1226dd6122__7ee26122[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc1226dd6122__7ee26122[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd61223fooEv,_ZTv0_n12_N6dd61223fooEv)();
+extern void ABISELECT(_ZThn24_N6dd61223fooEv,_ZThn16_N6dd61223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61223barEv,_ZTv0_n16_N6dd61223barEv)();
+extern void ABISELECT(_ZThn24_N6dd61223barEv,_ZThn16_N6dd61223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd6122__7ee26122[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61223fooEv,_ZTv0_n12_N6dd61223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61223barEv,_ZTv0_n16_N6dd61223barEv),
+};
+static VTT_ENTRY vtt_ee26122[] = {
+ {&(_ZTV7ee26122[3]), 3,11},
+ {&(_tg__ZTV6dd6122__7ee26122[3]), 3,5},
+ {&(_tg__ZTV5cc1226dd6122__7ee26122[3]), 3,3},
+ {&(_tg__ZTV4bb22__5cc1226dd6122__7ee26122[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd6122__7ee26122[4]), 4,6},
+ {&(_ZTV7ee26122[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee26122[];
+extern VTBL_ENTRY _ZTV7ee26122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee26122[];
+static VTBL_ENTRY alt_thunk_names947[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61223fooEv,_ZTv0_n12_N6dd61223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61223fooEv,_ZThn16_N6dd61223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61223barEv,_ZTv0_n16_N6dd61223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61223barEv,_ZThn16_N6dd61223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61223barEv,_ZThn16_N6dd61223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee261223fooEv,_ZTv0_n12_N7ee261223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee261223fooEv,_ZThn16_N7ee261223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee26122 = { "ee26122", // class name
+ bases_ee26122, 4,
+ &(vtc_ee26122[0]), // expected_vtbl_contents
+ &(vtt_ee26122[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee26122),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26122),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee26122),6, //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 ee36122 : virtual dd6122 {
+ int e;
+ virtual void foo(); // _ZN7ee361223fooEv
+ ~ee36122(); // tgen
+ ee36122(); // tgen
+};
+//SIG(1 ee36122) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36122 ::foo(){vfunc_called(this, "_ZN7ee361223fooEv");}
+ee36122 ::~ee36122(){ note_dtor("ee36122", this);} // tgen
+ee36122 ::ee36122(){ note_ctor("ee36122", this);} // tgen
+
+static void Test_ee36122()
+{
+ extern Class_Descriptor cd_ee36122;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee36122, buf);
+ ee36122 *dp, &lv = *(dp=new (buf) ee36122());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee36122)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36122)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee36122");
+ check_base_class_offset(lv, (bb22*)(cc122*)(dd6122*), ABISELECT(32,20), "ee36122");
+ check_base_class_offset(lv, (cc122*)(dd6122*), ABISELECT(16,8), "ee36122");
+ check_base_class_offset(lv, (dd6122*), ABISELECT(16,8), "ee36122");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36122.e");
+ test_class_info(&lv, &cd_ee36122);
+ dp->~ee36122();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36122(Test_ee36122, "ee36122", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee36122C1Ev();
+extern void _ZN7ee36122D1Ev();
+Name_Map name_map_ee36122[] = {
+ NSPAIR(_ZN7ee36122C1Ev),
+ NSPAIR(_ZN7ee36122D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc122;
+extern VTBL_ENTRY _ZTI5cc122[];
+extern VTBL_ENTRY _ZTV5cc122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc122[];
+extern Class_Descriptor cd_dd6122;
+extern VTBL_ENTRY _ZTI6dd6122[];
+extern VTBL_ENTRY _ZTV6dd6122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6122[];
+static Base_Class bases_ee36122[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc122, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6122, 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 _ZTI7ee36122[];
+extern void _ZN7ee361223fooEv();
+extern void _ZN6dd61223barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee361223fooEv,_ZTv0_n20_N7ee361223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee361223fooEv,_ZThn8_N7ee361223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee361223fooEv,_ZTv0_n12_N7ee361223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee361223fooEv,_ZThn20_N7ee361223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61223barEv,_ZTv0_n16_N6dd61223barEv)();
+extern void ABISELECT(_ZThn16_N6dd61223barEv,_ZThn12_N6dd61223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee36122[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36122[0]),
+ (VTBL_ENTRY)&_ZN7ee361223fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36122[0]),
+ (VTBL_ENTRY)&_ZN6dd61223barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee361223fooEv,_ZTv0_n20_N7ee361223fooEv),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee36122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee361223fooEv,_ZTv0_n12_N7ee361223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61223barEv,_ZTv0_n16_N6dd61223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee36122[];
+extern void _ZN6dd61223barEv();
+extern void _ZN6dd61223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6122__7ee36122[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6122[0]),
+ (VTBL_ENTRY)&_ZN6dd61223barEv,
+ (VTBL_ENTRY)&_ZN6dd61223fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1226dd6122__7ee36122[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc1226dd6122__7ee36122[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd61223fooEv,_ZTv0_n12_N6dd61223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd61223fooEv,_ZThn12_N6dd61223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61223barEv,_ZTv0_n16_N6dd61223barEv)();
+extern void ABISELECT(_ZThn16_N6dd61223barEv,_ZThn12_N6dd61223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd6122__7ee36122[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61223fooEv,_ZTv0_n12_N6dd61223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61223barEv,_ZTv0_n16_N6dd61223barEv),
+};
+static VTT_ENTRY vtt_ee36122[] = {
+ {&(_ZTV7ee36122[4]), 4,18},
+ {&(_ZTV7ee36122[10]), 10,18},
+ {&(_ZTV7ee36122[16]), 16,18},
+ {&(_tg__ZTV6dd6122__7ee36122[3]), 3,5},
+ {&(_tg__ZTV5cc1226dd6122__7ee36122[3]), 3,3},
+ {&(_tg__ZTV4bb22__5cc1226dd6122__7ee36122[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd6122__7ee36122[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee36122[];
+extern VTBL_ENTRY _ZTV7ee36122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36122[];
+static VTBL_ENTRY alt_thunk_names948[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61223fooEv,_ZTv0_n12_N6dd61223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61223fooEv,_ZThn12_N6dd61223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61223barEv,_ZTv0_n16_N6dd61223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61223barEv,_ZThn12_N6dd61223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61223barEv,_ZThn12_N6dd61223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee361223fooEv,_ZTv0_n12_N7ee361223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee361223fooEv,_ZThn20_N7ee361223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee361223fooEv,_ZTv0_n20_N7ee361223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee361223fooEv,_ZThn8_N7ee361223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36122 = { "ee36122", // class name
+ bases_ee36122, 4,
+ &(vtc_ee36122[0]), // expected_vtbl_contents
+ &(vtt_ee36122[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee36122),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36122),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36122),7, //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 ee46122 : dd6122 {
+ int e;
+ virtual void bar(); // _ZN7ee461223barEv
+ ~ee46122(); // tgen
+ ee46122(); // tgen
+};
+//SIG(1 ee46122) C1{ BC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46122 ::bar(){vfunc_called(this, "_ZN7ee461223barEv");}
+ee46122 ::~ee46122(){ note_dtor("ee46122", this);} // tgen
+ee46122 ::ee46122(){ note_ctor("ee46122", this);} // tgen
+
+static void Test_ee46122()
+{
+ extern Class_Descriptor cd_ee46122;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee46122, buf);
+ ee46122 *dp, &lv = *(dp=new (buf) ee46122());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee46122)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46122)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(24,16), "ee46122");
+ check_base_class_offset(lv, (bb22*)(cc122*)(dd6122*), ABISELECT(24,16), "ee46122");
+ check_base_class_offset(lv, (cc122*)(dd6122*), 0, "ee46122");
+ check_base_class_offset(lv, (dd6122*), 0, "ee46122");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee46122.e");
+ test_class_info(&lv, &cd_ee46122);
+ dp->~ee46122();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46122(Test_ee46122, "ee46122", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee46122C1Ev();
+extern void _ZN7ee46122D1Ev();
+Name_Map name_map_ee46122[] = {
+ NSPAIR(_ZN7ee46122C1Ev),
+ NSPAIR(_ZN7ee46122D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc122;
+extern VTBL_ENTRY _ZTI5cc122[];
+extern VTBL_ENTRY _ZTV5cc122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc122[];
+extern Class_Descriptor cd_dd6122;
+extern VTBL_ENTRY _ZTI6dd6122[];
+extern VTBL_ENTRY _ZTV6dd6122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6122[];
+static Base_Class bases_ee46122[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc122, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6122, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee46122[];
+extern void _ZN7ee461223barEv();
+extern void _ZN6dd61223fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd61223fooEv,_ZTv0_n12_N6dd61223fooEv)();
+extern void ABISELECT(_ZThn24_N6dd61223fooEv,_ZThn16_N6dd61223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee461223barEv,_ZTv0_n16_N7ee461223barEv)();
+extern void ABISELECT(_ZThn24_N7ee461223barEv,_ZThn16_N7ee461223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee46122[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46122[0]),
+ (VTBL_ENTRY)&_ZN7ee461223barEv,
+ (VTBL_ENTRY)&_ZN6dd61223fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee46122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61223fooEv,_ZTv0_n12_N6dd61223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee461223barEv,_ZTv0_n16_N7ee461223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee46122[];
+extern void _ZN6dd61223barEv();
+extern void _ZN6dd61223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6122__7ee46122[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6122[0]),
+ (VTBL_ENTRY)&_ZN6dd61223barEv,
+ (VTBL_ENTRY)&_ZN6dd61223fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1226dd6122__7ee46122[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc1226dd6122__7ee46122[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd61223fooEv,_ZTv0_n12_N6dd61223fooEv)();
+extern void ABISELECT(_ZThn24_N6dd61223fooEv,_ZThn16_N6dd61223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61223barEv,_ZTv0_n16_N6dd61223barEv)();
+extern void ABISELECT(_ZThn24_N6dd61223barEv,_ZThn16_N6dd61223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd6122__7ee46122[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61223fooEv,_ZTv0_n12_N6dd61223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61223barEv,_ZTv0_n16_N6dd61223barEv),
+};
+static VTT_ENTRY vtt_ee46122[] = {
+ {&(_ZTV7ee46122[3]), 3,11},
+ {&(_tg__ZTV6dd6122__7ee46122[3]), 3,5},
+ {&(_tg__ZTV5cc1226dd6122__7ee46122[3]), 3,3},
+ {&(_tg__ZTV4bb22__5cc1226dd6122__7ee46122[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd6122__7ee46122[4]), 4,6},
+ {&(_ZTV7ee46122[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee46122[];
+extern VTBL_ENTRY _ZTV7ee46122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee46122[];
+static VTBL_ENTRY alt_thunk_names949[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61223barEv,_ZTv0_n16_N6dd61223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61223barEv,_ZThn16_N6dd61223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee461223barEv,_ZTv0_n16_N7ee461223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee461223barEv,_ZThn16_N7ee461223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61223fooEv,_ZTv0_n12_N6dd61223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61223fooEv,_ZThn16_N6dd61223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61223fooEv,_ZThn16_N6dd61223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee46122 = { "ee46122", // class name
+ bases_ee46122, 4,
+ &(vtc_ee46122[0]), // expected_vtbl_contents
+ &(vtt_ee46122[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee46122),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46122),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee46122),6, //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 ee56122 : virtual dd6122 {
+ int e;
+ virtual void bar(); // _ZN7ee561223barEv
+ ~ee56122(); // tgen
+ ee56122(); // tgen
+};
+//SIG(1 ee56122) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56122 ::bar(){vfunc_called(this, "_ZN7ee561223barEv");}
+ee56122 ::~ee56122(){ note_dtor("ee56122", this);} // tgen
+ee56122 ::ee56122(){ note_ctor("ee56122", this);} // tgen
+
+static void Test_ee56122()
+{
+ extern Class_Descriptor cd_ee56122;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee56122, buf);
+ ee56122 *dp, &lv = *(dp=new (buf) ee56122());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee56122)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56122)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee56122");
+ check_base_class_offset(lv, (bb22*)(cc122*)(dd6122*), ABISELECT(32,20), "ee56122");
+ check_base_class_offset(lv, (cc122*)(dd6122*), ABISELECT(16,8), "ee56122");
+ check_base_class_offset(lv, (dd6122*), ABISELECT(16,8), "ee56122");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56122.e");
+ test_class_info(&lv, &cd_ee56122);
+ dp->~ee56122();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56122(Test_ee56122, "ee56122", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee56122C1Ev();
+extern void _ZN7ee56122D1Ev();
+Name_Map name_map_ee56122[] = {
+ NSPAIR(_ZN7ee56122C1Ev),
+ NSPAIR(_ZN7ee56122D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc122;
+extern VTBL_ENTRY _ZTI5cc122[];
+extern VTBL_ENTRY _ZTV5cc122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc122[];
+extern Class_Descriptor cd_dd6122;
+extern VTBL_ENTRY _ZTI6dd6122[];
+extern VTBL_ENTRY _ZTV6dd6122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6122[];
+static Base_Class bases_ee56122[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc122, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6122, 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 _ZTI7ee56122[];
+extern void _ZN7ee561223barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee561223barEv,_ZTv0_n16_N7ee561223barEv)();
+extern void ABISELECT(_ZThn16_N7ee561223barEv,_ZThn8_N7ee561223barEv)() __attribute__((weak));
+extern void _ZN6dd61223fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd61223fooEv,_ZTv0_n12_N6dd61223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd61223fooEv,_ZThn12_N6dd61223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee561223barEv,_ZTv0_n16_N7ee561223barEv)();
+extern void ABISELECT(_ZThn32_N7ee561223barEv,_ZThn20_N7ee561223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56122[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56122[0]),
+ (VTBL_ENTRY)&_ZN7ee561223barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee561223barEv,_ZTv0_n16_N7ee561223barEv),
+ (VTBL_ENTRY)&_ZN6dd61223fooEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee56122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61223fooEv,_ZTv0_n12_N6dd61223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee561223barEv,_ZTv0_n16_N7ee561223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee56122[];
+extern void _ZN6dd61223barEv();
+extern void _ZN6dd61223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6122__7ee56122[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6122[0]),
+ (VTBL_ENTRY)&_ZN6dd61223barEv,
+ (VTBL_ENTRY)&_ZN6dd61223fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1226dd6122__7ee56122[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc1226dd6122__7ee56122[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd61223fooEv,_ZTv0_n12_N6dd61223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd61223fooEv,_ZThn12_N6dd61223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61223barEv,_ZTv0_n16_N6dd61223barEv)();
+extern void ABISELECT(_ZThn16_N6dd61223barEv,_ZThn12_N6dd61223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd6122__7ee56122[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61223fooEv,_ZTv0_n12_N6dd61223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61223barEv,_ZTv0_n16_N6dd61223barEv),
+};
+static VTT_ENTRY vtt_ee56122[] = {
+ {&(_ZTV7ee56122[4]), 4,18},
+ {&(_ZTV7ee56122[10]), 10,18},
+ {&(_ZTV7ee56122[16]), 16,18},
+ {&(_tg__ZTV6dd6122__7ee56122[3]), 3,5},
+ {&(_tg__ZTV5cc1226dd6122__7ee56122[3]), 3,3},
+ {&(_tg__ZTV4bb22__5cc1226dd6122__7ee56122[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd6122__7ee56122[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee56122[];
+extern VTBL_ENTRY _ZTV7ee56122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56122[];
+static VTBL_ENTRY alt_thunk_names950[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61223barEv,_ZTv0_n16_N6dd61223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61223barEv,_ZThn12_N6dd61223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61223fooEv,_ZTv0_n12_N6dd61223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61223fooEv,_ZThn12_N6dd61223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61223fooEv,_ZThn12_N6dd61223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee561223barEv,_ZTv0_n16_N7ee561223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee561223barEv,_ZThn20_N7ee561223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee561223barEv,_ZThn8_N7ee561223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56122 = { "ee56122", // class name
+ bases_ee56122, 4,
+ &(vtc_ee56122[0]), // expected_vtbl_contents
+ &(vtt_ee56122[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee56122),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56122),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56122),7, //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 ee66122 : dd6122 {
+ int e;
+ virtual void foo(); // _ZN7ee661223fooEv
+ virtual void bar(); // _ZN7ee661223barEv
+ ~ee66122(); // tgen
+ ee66122(); // tgen
+};
+//SIG(1 ee66122) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66122 ::foo(){vfunc_called(this, "_ZN7ee661223fooEv");}
+void ee66122 ::bar(){vfunc_called(this, "_ZN7ee661223barEv");}
+ee66122 ::~ee66122(){ note_dtor("ee66122", this);} // tgen
+ee66122 ::ee66122(){ note_ctor("ee66122", this);} // tgen
+
+static void Test_ee66122()
+{
+ extern Class_Descriptor cd_ee66122;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee66122, buf);
+ ee66122 *dp, &lv = *(dp=new (buf) ee66122());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee66122)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66122)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(24,16), "ee66122");
+ check_base_class_offset(lv, (bb22*)(cc122*)(dd6122*), ABISELECT(24,16), "ee66122");
+ check_base_class_offset(lv, (cc122*)(dd6122*), 0, "ee66122");
+ check_base_class_offset(lv, (dd6122*), 0, "ee66122");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee66122.e");
+ test_class_info(&lv, &cd_ee66122);
+ dp->~ee66122();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66122(Test_ee66122, "ee66122", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee66122C1Ev();
+extern void _ZN7ee66122D1Ev();
+Name_Map name_map_ee66122[] = {
+ NSPAIR(_ZN7ee66122C1Ev),
+ NSPAIR(_ZN7ee66122D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc122;
+extern VTBL_ENTRY _ZTI5cc122[];
+extern VTBL_ENTRY _ZTV5cc122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc122[];
+extern Class_Descriptor cd_dd6122;
+extern VTBL_ENTRY _ZTI6dd6122[];
+extern VTBL_ENTRY _ZTV6dd6122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6122[];
+static Base_Class bases_ee66122[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc122, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6122, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee66122[];
+extern void _ZN7ee661223barEv();
+extern void _ZN7ee661223fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee661223fooEv,_ZTv0_n12_N7ee661223fooEv)();
+extern void ABISELECT(_ZThn24_N7ee661223fooEv,_ZThn16_N7ee661223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee661223barEv,_ZTv0_n16_N7ee661223barEv)();
+extern void ABISELECT(_ZThn24_N7ee661223barEv,_ZThn16_N7ee661223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee66122[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66122[0]),
+ (VTBL_ENTRY)&_ZN7ee661223barEv,
+ (VTBL_ENTRY)&_ZN7ee661223fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee66122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee661223fooEv,_ZTv0_n12_N7ee661223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee661223barEv,_ZTv0_n16_N7ee661223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee66122[];
+extern void _ZN6dd61223barEv();
+extern void _ZN6dd61223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6122__7ee66122[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6122[0]),
+ (VTBL_ENTRY)&_ZN6dd61223barEv,
+ (VTBL_ENTRY)&_ZN6dd61223fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1226dd6122__7ee66122[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc1226dd6122__7ee66122[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd61223fooEv,_ZTv0_n12_N6dd61223fooEv)();
+extern void ABISELECT(_ZThn24_N6dd61223fooEv,_ZThn16_N6dd61223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61223barEv,_ZTv0_n16_N6dd61223barEv)();
+extern void ABISELECT(_ZThn24_N6dd61223barEv,_ZThn16_N6dd61223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd6122__7ee66122[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61223fooEv,_ZTv0_n12_N6dd61223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61223barEv,_ZTv0_n16_N6dd61223barEv),
+};
+static VTT_ENTRY vtt_ee66122[] = {
+ {&(_ZTV7ee66122[3]), 3,11},
+ {&(_tg__ZTV6dd6122__7ee66122[3]), 3,5},
+ {&(_tg__ZTV5cc1226dd6122__7ee66122[3]), 3,3},
+ {&(_tg__ZTV4bb22__5cc1226dd6122__7ee66122[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd6122__7ee66122[4]), 4,6},
+ {&(_ZTV7ee66122[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee66122[];
+extern VTBL_ENTRY _ZTV7ee66122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee66122[];
+static VTBL_ENTRY alt_thunk_names951[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61223barEv,_ZTv0_n16_N6dd61223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61223barEv,_ZThn16_N6dd61223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61223fooEv,_ZTv0_n12_N6dd61223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61223fooEv,_ZThn16_N6dd61223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee661223barEv,_ZTv0_n16_N7ee661223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee661223barEv,_ZThn16_N7ee661223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee661223fooEv,_ZTv0_n12_N7ee661223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee661223fooEv,_ZThn16_N7ee661223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee66122 = { "ee66122", // class name
+ bases_ee66122, 4,
+ &(vtc_ee66122[0]), // expected_vtbl_contents
+ &(vtt_ee66122[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee66122),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66122),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee66122),6, //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 ee76122 : virtual dd6122 {
+ int e;
+ virtual void foo(); // _ZN7ee761223fooEv
+ virtual void bar(); // _ZN7ee761223barEv
+ ~ee76122(); // tgen
+ ee76122(); // tgen
+};
+//SIG(1 ee76122) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76122 ::foo(){vfunc_called(this, "_ZN7ee761223fooEv");}
+void ee76122 ::bar(){vfunc_called(this, "_ZN7ee761223barEv");}
+ee76122 ::~ee76122(){ note_dtor("ee76122", this);} // tgen
+ee76122 ::ee76122(){ note_ctor("ee76122", this);} // tgen
+
+static void Test_ee76122()
+{
+ extern Class_Descriptor cd_ee76122;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee76122, buf);
+ ee76122 *dp, &lv = *(dp=new (buf) ee76122());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee76122)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76122)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee76122");
+ check_base_class_offset(lv, (bb22*)(cc122*)(dd6122*), ABISELECT(32,20), "ee76122");
+ check_base_class_offset(lv, (cc122*)(dd6122*), ABISELECT(16,8), "ee76122");
+ check_base_class_offset(lv, (dd6122*), ABISELECT(16,8), "ee76122");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76122.e");
+ test_class_info(&lv, &cd_ee76122);
+ dp->~ee76122();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76122(Test_ee76122, "ee76122", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee76122C1Ev();
+extern void _ZN7ee76122D1Ev();
+Name_Map name_map_ee76122[] = {
+ NSPAIR(_ZN7ee76122C1Ev),
+ NSPAIR(_ZN7ee76122D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc122;
+extern VTBL_ENTRY _ZTI5cc122[];
+extern VTBL_ENTRY _ZTV5cc122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc122[];
+extern Class_Descriptor cd_dd6122;
+extern VTBL_ENTRY _ZTI6dd6122[];
+extern VTBL_ENTRY _ZTV6dd6122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6122[];
+static Base_Class bases_ee76122[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc122, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6122, ABISELECT(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 _ZTI7ee76122[];
+extern void _ZN7ee761223fooEv();
+extern void _ZN7ee761223barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee761223barEv,_ZTv0_n16_N7ee761223barEv)();
+extern void ABISELECT(_ZThn16_N7ee761223barEv,_ZThn8_N7ee761223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee761223fooEv,_ZTv0_n20_N7ee761223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee761223fooEv,_ZThn8_N7ee761223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee761223fooEv,_ZTv0_n12_N7ee761223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee761223fooEv,_ZThn20_N7ee761223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee761223barEv,_ZTv0_n16_N7ee761223barEv)();
+extern void ABISELECT(_ZThn32_N7ee761223barEv,_ZThn20_N7ee761223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76122[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76122[0]),
+ (VTBL_ENTRY)&_ZN7ee761223fooEv,
+ (VTBL_ENTRY)&_ZN7ee761223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee761223barEv,_ZTv0_n16_N7ee761223barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee761223fooEv,_ZTv0_n20_N7ee761223fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee76122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee761223fooEv,_ZTv0_n12_N7ee761223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee761223barEv,_ZTv0_n16_N7ee761223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee76122[];
+extern void _ZN6dd61223barEv();
+extern void _ZN6dd61223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6122__7ee76122[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6122[0]),
+ (VTBL_ENTRY)&_ZN6dd61223barEv,
+ (VTBL_ENTRY)&_ZN6dd61223fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1226dd6122__7ee76122[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc1226dd6122__7ee76122[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd61223fooEv,_ZTv0_n12_N6dd61223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd61223fooEv,_ZThn12_N6dd61223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61223barEv,_ZTv0_n16_N6dd61223barEv)();
+extern void ABISELECT(_ZThn16_N6dd61223barEv,_ZThn12_N6dd61223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd6122__7ee76122[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61223fooEv,_ZTv0_n12_N6dd61223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61223barEv,_ZTv0_n16_N6dd61223barEv),
+};
+static VTT_ENTRY vtt_ee76122[] = {
+ {&(_ZTV7ee76122[4]), 4,19},
+ {&(_ZTV7ee76122[11]), 11,19},
+ {&(_ZTV7ee76122[17]), 17,19},
+ {&(_tg__ZTV6dd6122__7ee76122[3]), 3,5},
+ {&(_tg__ZTV5cc1226dd6122__7ee76122[3]), 3,3},
+ {&(_tg__ZTV4bb22__5cc1226dd6122__7ee76122[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd6122__7ee76122[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee76122[];
+extern VTBL_ENTRY _ZTV7ee76122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76122[];
+static VTBL_ENTRY alt_thunk_names952[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61223barEv,_ZTv0_n16_N6dd61223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61223barEv,_ZThn12_N6dd61223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61223fooEv,_ZTv0_n12_N6dd61223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61223fooEv,_ZThn12_N6dd61223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee761223fooEv,_ZTv0_n12_N7ee761223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee761223fooEv,_ZThn20_N7ee761223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee761223fooEv,_ZTv0_n20_N7ee761223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee761223fooEv,_ZThn8_N7ee761223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee761223barEv,_ZTv0_n16_N7ee761223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee761223barEv,_ZThn20_N7ee761223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee761223barEv,_ZThn8_N7ee761223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76122 = { "ee76122", // class name
+ bases_ee76122, 4,
+ &(vtc_ee76122[0]), // expected_vtbl_contents
+ &(vtt_ee76122[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee76122),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76122),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76122),7, //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 dd7122 : virtual cc122 {
+ int d;
+ virtual void bar(); // _ZN6dd71223barEv
+ virtual void foo(); // _ZN6dd71223fooEv
+ ~dd7122(); // tgen
+ dd7122(); // tgen
+};
+//SIG(-1 dd7122) C1{ VBC2{ VBC3{ BC4{ v2 v1 Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void dd7122 ::bar(){vfunc_called(this, "_ZN6dd71223barEv");}
+void dd7122 ::foo(){vfunc_called(this, "_ZN6dd71223fooEv");}
+dd7122 ::~dd7122(){ note_dtor("dd7122", this);} // tgen
+dd7122 ::dd7122(){ note_ctor("dd7122", this);} // tgen
+
+static void Test_dd7122()
+{
+ extern Class_Descriptor cd_dd7122;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd7122, buf);
+ dd7122 *dp, &lv = *(dp=new (buf) dd7122());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd7122)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7122)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,16), "dd7122");
+ check_base_class_offset(lv, (bb22*)(cc122*), ABISELECT(32,16), "dd7122");
+ check_base_class_offset(lv, (cc122*), ABISELECT(16,8), "dd7122");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7122.d");
+ test_class_info(&lv, &cd_dd7122);
+ dp->~dd7122();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7122(Test_dd7122, "dd7122", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd7122C1Ev();
+extern void _ZN6dd7122D1Ev();
+Name_Map name_map_dd7122[] = {
+ NSPAIR(_ZN6dd7122C1Ev),
+ NSPAIR(_ZN6dd7122D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc122;
+extern VTBL_ENTRY _ZTI5cc122[];
+extern VTBL_ENTRY _ZTV5cc122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc122[];
+static Base_Class bases_dd7122[] = {
+ // 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_bb22, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc122, 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 _ZTI6dd7122[];
+extern void _ZN6dd71223barEv();
+extern void _ZN6dd71223fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd71223fooEv,_ZTv0_n12_N6dd71223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71223fooEv,_ZThn16_N6dd71223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71223barEv,_ZTv0_n16_N6dd71223barEv)();
+extern void ABISELECT(_ZThn32_N6dd71223barEv,_ZThn16_N6dd71223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7122[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7122[0]),
+ (VTBL_ENTRY)&_ZN6dd71223barEv,
+ (VTBL_ENTRY)&_ZN6dd71223fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7122[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71223fooEv,_ZTv0_n12_N6dd71223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71223barEv,_ZTv0_n16_N6dd71223barEv),
+};
+extern VTBL_ENTRY _ZTV6dd7122[];
+static VTBL_ENTRY _tg__ZTV5cc122__6dd7122[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc122__6dd7122[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_dd7122[] = {
+ {&(_ZTV6dd7122[4]), 4,15},
+ {&(_ZTV6dd7122[9]), 9,15},
+ {&(_ZTV6dd7122[13]), 13,15},
+ {&(_tg__ZTV5cc122__6dd7122[3]), 3,3},
+ {&(_tg__ZTV4bb22__5cc122__6dd7122[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd7122[];
+extern VTBL_ENTRY _ZTV6dd7122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7122[];
+static VTBL_ENTRY alt_thunk_names953[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71223barEv,_ZTv0_n16_N6dd71223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71223barEv,_ZThn16_N6dd71223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71223fooEv,_ZTv0_n12_N6dd71223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71223fooEv,_ZThn16_N6dd71223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7122 = { "dd7122", // class name
+ bases_dd7122, 3,
+ &(vtc_dd7122[0]), // expected_vtbl_contents
+ &(vtt_dd7122[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd7122),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7122),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7122),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names953,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07122 : dd7122 {
+ int e;
+ ~ee07122(); // tgen
+ ee07122(); // tgen
+};
+//SIG(1 ee07122) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee07122 ::~ee07122(){ note_dtor("ee07122", this);} // tgen
+ee07122 ::ee07122(){ note_ctor("ee07122", this);} // tgen
+
+static void Test_ee07122()
+{
+ extern Class_Descriptor cd_ee07122;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee07122, buf);
+ ee07122 *dp, &lv = *(dp=new (buf) ee07122());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee07122)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07122)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee07122");
+ check_base_class_offset(lv, (bb22*)(cc122*), ABISELECT(32,20), "ee07122");
+ check_base_class_offset(lv, (cc122*)(dd7122*), ABISELECT(16,12), "ee07122");
+ check_base_class_offset(lv, (dd7122*), 0, "ee07122");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07122.e");
+ test_class_info(&lv, &cd_ee07122);
+ dp->~ee07122();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07122(Test_ee07122, "ee07122", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee07122C1Ev();
+extern void _ZN7ee07122D1Ev();
+Name_Map name_map_ee07122[] = {
+ NSPAIR(_ZN7ee07122C1Ev),
+ NSPAIR(_ZN7ee07122D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc122;
+extern VTBL_ENTRY _ZTI5cc122[];
+extern VTBL_ENTRY _ZTV5cc122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc122[];
+extern Class_Descriptor cd_dd7122;
+extern VTBL_ENTRY _ZTI6dd7122[];
+extern VTBL_ENTRY _ZTV6dd7122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7122[];
+static Base_Class bases_ee07122[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc122, 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_dd7122, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07122[];
+extern void _ZN6dd71223barEv();
+extern void _ZN6dd71223fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd71223fooEv,_ZTv0_n12_N6dd71223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71223fooEv,_ZThn20_N6dd71223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71223barEv,_ZTv0_n16_N6dd71223barEv)();
+extern void ABISELECT(_ZThn32_N6dd71223barEv,_ZThn20_N6dd71223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07122[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07122[0]),
+ (VTBL_ENTRY)&_ZN6dd71223barEv,
+ (VTBL_ENTRY)&_ZN6dd71223fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07122[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee07122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71223fooEv,_ZTv0_n12_N6dd71223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71223barEv,_ZTv0_n16_N6dd71223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee07122[];
+extern void _ZN6dd71223barEv();
+extern void _ZN6dd71223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7122__7ee07122[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7122[0]),
+ (VTBL_ENTRY)&_ZN6dd71223barEv,
+ (VTBL_ENTRY)&_ZN6dd71223fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc122__6dd7122__7ee07122[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7122[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd71223fooEv,_ZTv0_n12_N6dd71223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71223fooEv,_ZThn20_N6dd71223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71223barEv,_ZTv0_n16_N6dd71223barEv)();
+extern void ABISELECT(_ZThn32_N6dd71223barEv,_ZThn20_N6dd71223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd7122__7ee07122[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71223fooEv,_ZTv0_n12_N6dd71223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71223barEv,_ZTv0_n16_N6dd71223barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc122__7ee07122[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc122__7ee07122[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee07122[] = {
+ {&(_ZTV7ee07122[4]), 4,15},
+ {&(_tg__ZTV6dd7122__7ee07122[4]), 4,6},
+ {&(_tg__ZTV5cc122__6dd7122__7ee07122[3]), 3,3},
+ {&(_tg__ZTV4bb22__6dd7122__7ee07122[4]), 4,6},
+ {&(_ZTV7ee07122[9]), 9,15},
+ {&(_ZTV7ee07122[13]), 13,15},
+ {&(_tg__ZTV5cc122__7ee07122[3]), 3,3},
+ {&(_tg__ZTV4bb22__5cc122__7ee07122[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee07122[];
+extern VTBL_ENTRY _ZTV7ee07122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07122[];
+static VTBL_ENTRY alt_thunk_names954[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71223barEv,_ZTv0_n16_N6dd71223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71223barEv,_ZThn20_N6dd71223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71223barEv,_ZThn20_N6dd71223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71223fooEv,_ZTv0_n12_N6dd71223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71223fooEv,_ZThn20_N6dd71223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71223fooEv,_ZThn20_N6dd71223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07122 = { "ee07122", // class name
+ bases_ee07122, 4,
+ &(vtc_ee07122[0]), // expected_vtbl_contents
+ &(vtt_ee07122[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee07122),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07122),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07122),8, //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 ee17122 : virtual dd7122 {
+ int e;
+ ~ee17122(); // tgen
+ ee17122(); // tgen
+};
+//SIG(1 ee17122) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee17122 ::~ee17122(){ note_dtor("ee17122", this);} // tgen
+ee17122 ::ee17122(){ note_ctor("ee17122", this);} // tgen
+
+static void Test_ee17122()
+{
+ extern Class_Descriptor cd_ee17122;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee17122, buf);
+ ee17122 *dp, &lv = *(dp=new (buf) ee17122());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee17122)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17122)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(48,24), "ee17122");
+ check_base_class_offset(lv, (bb22*)(cc122*), ABISELECT(48,24), "ee17122");
+ check_base_class_offset(lv, (cc122*)(dd7122*), ABISELECT(32,16), "ee17122");
+ check_base_class_offset(lv, (dd7122*), ABISELECT(16,8), "ee17122");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17122.e");
+ test_class_info(&lv, &cd_ee17122);
+ dp->~ee17122();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17122(Test_ee17122, "ee17122", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee17122C1Ev();
+extern void _ZN7ee17122D1Ev();
+Name_Map name_map_ee17122[] = {
+ NSPAIR(_ZN7ee17122C1Ev),
+ NSPAIR(_ZN7ee17122D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc122;
+extern VTBL_ENTRY _ZTI5cc122[];
+extern VTBL_ENTRY _ZTV5cc122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc122[];
+extern Class_Descriptor cd_dd7122;
+extern VTBL_ENTRY _ZTI6dd7122[];
+extern VTBL_ENTRY _ZTV6dd7122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7122[];
+static Base_Class bases_ee17122[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb22, ABISELECT(48,24), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc122, 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_dd7122, 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 _ZTI7ee17122[];
+extern void _ZN6dd71223barEv();
+extern void _ZN6dd71223fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd71223fooEv,_ZTv0_n12_N6dd71223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71223fooEv,_ZThn16_N6dd71223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71223barEv,_ZTv0_n16_N6dd71223barEv)();
+extern void ABISELECT(_ZThn32_N6dd71223barEv,_ZThn16_N6dd71223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17122[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17122[0]),
+ 0,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17122[0]),
+ (VTBL_ENTRY)&_ZN6dd71223barEv,
+ (VTBL_ENTRY)&_ZN6dd71223fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17122[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee17122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71223fooEv,_ZTv0_n12_N6dd71223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71223barEv,_ZTv0_n16_N6dd71223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee17122[];
+extern void _ZN6dd71223barEv();
+extern void _ZN6dd71223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7122__7ee17122[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7122[0]),
+ (VTBL_ENTRY)&_ZN6dd71223barEv,
+ (VTBL_ENTRY)&_ZN6dd71223fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc122__6dd7122__7ee17122[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7122[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd71223fooEv,_ZTv0_n12_N6dd71223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71223fooEv,_ZThn16_N6dd71223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71223barEv,_ZTv0_n16_N6dd71223barEv)();
+extern void ABISELECT(_ZThn32_N6dd71223barEv,_ZThn16_N6dd71223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd7122__7ee17122[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71223fooEv,_ZTv0_n12_N6dd71223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71223barEv,_ZTv0_n16_N6dd71223barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc122__7ee17122[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc122__7ee17122[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee17122[] = {
+ {&(_ZTV7ee17122[5]), 5,22},
+ {&(_ZTV7ee17122[11]), 11,22},
+ {&(_ZTV7ee17122[16]), 16,22},
+ {&(_ZTV7ee17122[20]), 20,22},
+ {&(_tg__ZTV6dd7122__7ee17122[4]), 4,6},
+ {&(_tg__ZTV5cc122__6dd7122__7ee17122[3]), 3,3},
+ {&(_tg__ZTV4bb22__6dd7122__7ee17122[4]), 4,6},
+ {&(_tg__ZTV5cc122__7ee17122[3]), 3,3},
+ {&(_tg__ZTV4bb22__5cc122__7ee17122[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee17122[];
+extern VTBL_ENTRY _ZTV7ee17122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17122[];
+static VTBL_ENTRY alt_thunk_names955[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71223barEv,_ZTv0_n16_N6dd71223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71223barEv,_ZThn16_N6dd71223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71223barEv,_ZThn16_N6dd71223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71223fooEv,_ZTv0_n12_N6dd71223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71223fooEv,_ZThn16_N6dd71223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71223fooEv,_ZThn16_N6dd71223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17122 = { "ee17122", // class name
+ bases_ee17122, 4,
+ &(vtc_ee17122[0]), // expected_vtbl_contents
+ &(vtt_ee17122[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee17122),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17122),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17122),9, //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 ee27122 : dd7122 {
+ int e;
+ virtual void foo(); // _ZN7ee271223fooEv
+ ~ee27122(); // tgen
+ ee27122(); // tgen
+};
+//SIG(1 ee27122) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27122 ::foo(){vfunc_called(this, "_ZN7ee271223fooEv");}
+ee27122 ::~ee27122(){ note_dtor("ee27122", this);} // tgen
+ee27122 ::ee27122(){ note_ctor("ee27122", this);} // tgen
+
+static void Test_ee27122()
+{
+ extern Class_Descriptor cd_ee27122;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee27122, buf);
+ ee27122 *dp, &lv = *(dp=new (buf) ee27122());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee27122)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27122)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee27122");
+ check_base_class_offset(lv, (bb22*)(cc122*), ABISELECT(32,20), "ee27122");
+ check_base_class_offset(lv, (cc122*)(dd7122*), ABISELECT(16,12), "ee27122");
+ check_base_class_offset(lv, (dd7122*), 0, "ee27122");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27122.e");
+ test_class_info(&lv, &cd_ee27122);
+ dp->~ee27122();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27122(Test_ee27122, "ee27122", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee27122C1Ev();
+extern void _ZN7ee27122D1Ev();
+Name_Map name_map_ee27122[] = {
+ NSPAIR(_ZN7ee27122C1Ev),
+ NSPAIR(_ZN7ee27122D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc122;
+extern VTBL_ENTRY _ZTI5cc122[];
+extern VTBL_ENTRY _ZTV5cc122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc122[];
+extern Class_Descriptor cd_dd7122;
+extern VTBL_ENTRY _ZTI6dd7122[];
+extern VTBL_ENTRY _ZTV6dd7122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7122[];
+static Base_Class bases_ee27122[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc122, 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_dd7122, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27122[];
+extern void _ZN6dd71223barEv();
+extern void _ZN7ee271223fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee271223fooEv,_ZTv0_n12_N7ee271223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee271223fooEv,_ZThn20_N7ee271223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71223barEv,_ZTv0_n16_N6dd71223barEv)();
+extern void ABISELECT(_ZThn32_N6dd71223barEv,_ZThn20_N6dd71223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27122[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27122[0]),
+ (VTBL_ENTRY)&_ZN6dd71223barEv,
+ (VTBL_ENTRY)&_ZN7ee271223fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27122[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee27122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee271223fooEv,_ZTv0_n12_N7ee271223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71223barEv,_ZTv0_n16_N6dd71223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee27122[];
+extern void _ZN6dd71223barEv();
+extern void _ZN6dd71223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7122__7ee27122[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7122[0]),
+ (VTBL_ENTRY)&_ZN6dd71223barEv,
+ (VTBL_ENTRY)&_ZN6dd71223fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc122__6dd7122__7ee27122[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7122[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd71223fooEv,_ZTv0_n12_N6dd71223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71223fooEv,_ZThn20_N6dd71223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71223barEv,_ZTv0_n16_N6dd71223barEv)();
+extern void ABISELECT(_ZThn32_N6dd71223barEv,_ZThn20_N6dd71223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd7122__7ee27122[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71223fooEv,_ZTv0_n12_N6dd71223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71223barEv,_ZTv0_n16_N6dd71223barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc122__7ee27122[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc122__7ee27122[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee27122[] = {
+ {&(_ZTV7ee27122[4]), 4,15},
+ {&(_tg__ZTV6dd7122__7ee27122[4]), 4,6},
+ {&(_tg__ZTV5cc122__6dd7122__7ee27122[3]), 3,3},
+ {&(_tg__ZTV4bb22__6dd7122__7ee27122[4]), 4,6},
+ {&(_ZTV7ee27122[9]), 9,15},
+ {&(_ZTV7ee27122[13]), 13,15},
+ {&(_tg__ZTV5cc122__7ee27122[3]), 3,3},
+ {&(_tg__ZTV4bb22__5cc122__7ee27122[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee27122[];
+extern VTBL_ENTRY _ZTV7ee27122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27122[];
+static VTBL_ENTRY alt_thunk_names956[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71223fooEv,_ZTv0_n12_N6dd71223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71223fooEv,_ZThn20_N6dd71223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71223barEv,_ZTv0_n16_N6dd71223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71223barEv,_ZThn20_N6dd71223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71223barEv,_ZThn20_N6dd71223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee271223fooEv,_ZTv0_n12_N7ee271223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee271223fooEv,_ZThn20_N7ee271223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27122 = { "ee27122", // class name
+ bases_ee27122, 4,
+ &(vtc_ee27122[0]), // expected_vtbl_contents
+ &(vtt_ee27122[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee27122),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27122),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27122),8, //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 ee37122 : virtual dd7122 {
+ int e;
+ virtual void foo(); // _ZN7ee371223fooEv
+ ~ee37122(); // tgen
+ ee37122(); // tgen
+};
+//SIG(1 ee37122) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37122 ::foo(){vfunc_called(this, "_ZN7ee371223fooEv");}
+ee37122 ::~ee37122(){ note_dtor("ee37122", this);} // tgen
+ee37122 ::ee37122(){ note_ctor("ee37122", this);} // tgen
+
+static void Test_ee37122()
+{
+ extern Class_Descriptor cd_ee37122;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee37122, buf);
+ ee37122 *dp, &lv = *(dp=new (buf) ee37122());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee37122)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37122)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(48,24), "ee37122");
+ check_base_class_offset(lv, (bb22*)(cc122*), ABISELECT(48,24), "ee37122");
+ check_base_class_offset(lv, (cc122*)(dd7122*), ABISELECT(32,16), "ee37122");
+ check_base_class_offset(lv, (dd7122*), ABISELECT(16,8), "ee37122");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37122.e");
+ test_class_info(&lv, &cd_ee37122);
+ dp->~ee37122();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37122(Test_ee37122, "ee37122", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee37122C1Ev();
+extern void _ZN7ee37122D1Ev();
+Name_Map name_map_ee37122[] = {
+ NSPAIR(_ZN7ee37122C1Ev),
+ NSPAIR(_ZN7ee37122D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc122;
+extern VTBL_ENTRY _ZTI5cc122[];
+extern VTBL_ENTRY _ZTV5cc122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc122[];
+extern Class_Descriptor cd_dd7122;
+extern VTBL_ENTRY _ZTI6dd7122[];
+extern VTBL_ENTRY _ZTV6dd7122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7122[];
+static Base_Class bases_ee37122[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb22, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc122, 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_dd7122, 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 _ZTI7ee37122[];
+extern void _ZN7ee371223fooEv();
+extern void _ZN6dd71223barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee371223fooEv,_ZTv0_n24_N7ee371223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee371223fooEv,_ZThn8_N7ee371223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee371223fooEv,_ZTv0_n12_N7ee371223fooEv)();
+extern void ABISELECT(_ZThn48_N7ee371223fooEv,_ZThn24_N7ee371223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71223barEv,_ZTv0_n16_N6dd71223barEv)();
+extern void ABISELECT(_ZThn32_N6dd71223barEv,_ZThn16_N6dd71223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37122[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37122[0]),
+ (VTBL_ENTRY)&_ZN7ee371223fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37122[0]),
+ (VTBL_ENTRY)&_ZN6dd71223barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee371223fooEv,_ZTv0_n24_N7ee371223fooEv),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37122[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee37122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee371223fooEv,_ZTv0_n12_N7ee371223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71223barEv,_ZTv0_n16_N6dd71223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee37122[];
+extern void _ZN6dd71223barEv();
+extern void _ZN6dd71223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7122__7ee37122[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7122[0]),
+ (VTBL_ENTRY)&_ZN6dd71223barEv,
+ (VTBL_ENTRY)&_ZN6dd71223fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc122__6dd7122__7ee37122[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7122[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd71223fooEv,_ZTv0_n12_N6dd71223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71223fooEv,_ZThn16_N6dd71223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71223barEv,_ZTv0_n16_N6dd71223barEv)();
+extern void ABISELECT(_ZThn32_N6dd71223barEv,_ZThn16_N6dd71223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd7122__7ee37122[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71223fooEv,_ZTv0_n12_N6dd71223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71223barEv,_ZTv0_n16_N6dd71223barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc122__7ee37122[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc122__7ee37122[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee37122[] = {
+ {&(_ZTV7ee37122[5]), 5,23},
+ {&(_ZTV7ee37122[12]), 12,23},
+ {&(_ZTV7ee37122[17]), 17,23},
+ {&(_ZTV7ee37122[21]), 21,23},
+ {&(_tg__ZTV6dd7122__7ee37122[4]), 4,6},
+ {&(_tg__ZTV5cc122__6dd7122__7ee37122[3]), 3,3},
+ {&(_tg__ZTV4bb22__6dd7122__7ee37122[4]), 4,6},
+ {&(_tg__ZTV5cc122__7ee37122[3]), 3,3},
+ {&(_tg__ZTV4bb22__5cc122__7ee37122[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee37122[];
+extern VTBL_ENTRY _ZTV7ee37122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37122[];
+static VTBL_ENTRY alt_thunk_names957[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71223fooEv,_ZTv0_n12_N6dd71223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71223fooEv,_ZThn16_N6dd71223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71223barEv,_ZTv0_n16_N6dd71223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71223barEv,_ZThn16_N6dd71223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71223barEv,_ZThn16_N6dd71223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee371223fooEv,_ZTv0_n12_N7ee371223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee371223fooEv,_ZThn24_N7ee371223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee371223fooEv,_ZTv0_n24_N7ee371223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee371223fooEv,_ZThn8_N7ee371223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37122 = { "ee37122", // class name
+ bases_ee37122, 4,
+ &(vtc_ee37122[0]), // expected_vtbl_contents
+ &(vtt_ee37122[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee37122),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37122),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37122),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names957,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee47122 : dd7122 {
+ int e;
+ virtual void bar(); // _ZN7ee471223barEv
+ ~ee47122(); // tgen
+ ee47122(); // tgen
+};
+//SIG(1 ee47122) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47122 ::bar(){vfunc_called(this, "_ZN7ee471223barEv");}
+ee47122 ::~ee47122(){ note_dtor("ee47122", this);} // tgen
+ee47122 ::ee47122(){ note_ctor("ee47122", this);} // tgen
+
+static void Test_ee47122()
+{
+ extern Class_Descriptor cd_ee47122;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee47122, buf);
+ ee47122 *dp, &lv = *(dp=new (buf) ee47122());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee47122)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47122)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee47122");
+ check_base_class_offset(lv, (bb22*)(cc122*), ABISELECT(32,20), "ee47122");
+ check_base_class_offset(lv, (cc122*)(dd7122*), ABISELECT(16,12), "ee47122");
+ check_base_class_offset(lv, (dd7122*), 0, "ee47122");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47122.e");
+ test_class_info(&lv, &cd_ee47122);
+ dp->~ee47122();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47122(Test_ee47122, "ee47122", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee47122C1Ev();
+extern void _ZN7ee47122D1Ev();
+Name_Map name_map_ee47122[] = {
+ NSPAIR(_ZN7ee47122C1Ev),
+ NSPAIR(_ZN7ee47122D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc122;
+extern VTBL_ENTRY _ZTI5cc122[];
+extern VTBL_ENTRY _ZTV5cc122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc122[];
+extern Class_Descriptor cd_dd7122;
+extern VTBL_ENTRY _ZTI6dd7122[];
+extern VTBL_ENTRY _ZTV6dd7122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7122[];
+static Base_Class bases_ee47122[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc122, 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_dd7122, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47122[];
+extern void _ZN7ee471223barEv();
+extern void _ZN6dd71223fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd71223fooEv,_ZTv0_n12_N6dd71223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71223fooEv,_ZThn20_N6dd71223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee471223barEv,_ZTv0_n16_N7ee471223barEv)();
+extern void ABISELECT(_ZThn32_N7ee471223barEv,_ZThn20_N7ee471223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47122[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47122[0]),
+ (VTBL_ENTRY)&_ZN7ee471223barEv,
+ (VTBL_ENTRY)&_ZN6dd71223fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47122[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee47122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71223fooEv,_ZTv0_n12_N6dd71223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee471223barEv,_ZTv0_n16_N7ee471223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee47122[];
+extern void _ZN6dd71223barEv();
+extern void _ZN6dd71223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7122__7ee47122[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7122[0]),
+ (VTBL_ENTRY)&_ZN6dd71223barEv,
+ (VTBL_ENTRY)&_ZN6dd71223fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc122__6dd7122__7ee47122[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7122[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd71223fooEv,_ZTv0_n12_N6dd71223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71223fooEv,_ZThn20_N6dd71223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71223barEv,_ZTv0_n16_N6dd71223barEv)();
+extern void ABISELECT(_ZThn32_N6dd71223barEv,_ZThn20_N6dd71223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd7122__7ee47122[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71223fooEv,_ZTv0_n12_N6dd71223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71223barEv,_ZTv0_n16_N6dd71223barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc122__7ee47122[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc122__7ee47122[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee47122[] = {
+ {&(_ZTV7ee47122[4]), 4,15},
+ {&(_tg__ZTV6dd7122__7ee47122[4]), 4,6},
+ {&(_tg__ZTV5cc122__6dd7122__7ee47122[3]), 3,3},
+ {&(_tg__ZTV4bb22__6dd7122__7ee47122[4]), 4,6},
+ {&(_ZTV7ee47122[9]), 9,15},
+ {&(_ZTV7ee47122[13]), 13,15},
+ {&(_tg__ZTV5cc122__7ee47122[3]), 3,3},
+ {&(_tg__ZTV4bb22__5cc122__7ee47122[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee47122[];
+extern VTBL_ENTRY _ZTV7ee47122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47122[];
+static VTBL_ENTRY alt_thunk_names958[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71223barEv,_ZTv0_n16_N6dd71223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71223barEv,_ZThn20_N6dd71223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee471223barEv,_ZTv0_n16_N7ee471223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee471223barEv,_ZThn20_N7ee471223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71223fooEv,_ZTv0_n12_N6dd71223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71223fooEv,_ZThn20_N6dd71223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71223fooEv,_ZThn20_N6dd71223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47122 = { "ee47122", // class name
+ bases_ee47122, 4,
+ &(vtc_ee47122[0]), // expected_vtbl_contents
+ &(vtt_ee47122[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee47122),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47122),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47122),8, //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 ee57122 : virtual dd7122 {
+ int e;
+ virtual void bar(); // _ZN7ee571223barEv
+ ~ee57122(); // tgen
+ ee57122(); // tgen
+};
+//SIG(1 ee57122) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57122 ::bar(){vfunc_called(this, "_ZN7ee571223barEv");}
+ee57122 ::~ee57122(){ note_dtor("ee57122", this);} // tgen
+ee57122 ::ee57122(){ note_ctor("ee57122", this);} // tgen
+
+static void Test_ee57122()
+{
+ extern Class_Descriptor cd_ee57122;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee57122, buf);
+ ee57122 *dp, &lv = *(dp=new (buf) ee57122());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee57122)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57122)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(48,24), "ee57122");
+ check_base_class_offset(lv, (bb22*)(cc122*), ABISELECT(48,24), "ee57122");
+ check_base_class_offset(lv, (cc122*)(dd7122*), ABISELECT(32,16), "ee57122");
+ check_base_class_offset(lv, (dd7122*), ABISELECT(16,8), "ee57122");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57122.e");
+ test_class_info(&lv, &cd_ee57122);
+ dp->~ee57122();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57122(Test_ee57122, "ee57122", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee57122C1Ev();
+extern void _ZN7ee57122D1Ev();
+Name_Map name_map_ee57122[] = {
+ NSPAIR(_ZN7ee57122C1Ev),
+ NSPAIR(_ZN7ee57122D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc122;
+extern VTBL_ENTRY _ZTI5cc122[];
+extern VTBL_ENTRY _ZTV5cc122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc122[];
+extern Class_Descriptor cd_dd7122;
+extern VTBL_ENTRY _ZTI6dd7122[];
+extern VTBL_ENTRY _ZTV6dd7122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7122[];
+static Base_Class bases_ee57122[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb22, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc122, 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_dd7122, 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 _ZTI7ee57122[];
+extern void _ZN7ee571223barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee571223barEv,_ZTv0_n20_N7ee571223barEv)();
+extern void ABISELECT(_ZThn16_N7ee571223barEv,_ZThn8_N7ee571223barEv)() __attribute__((weak));
+extern void _ZN6dd71223fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd71223fooEv,_ZTv0_n12_N6dd71223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71223fooEv,_ZThn16_N6dd71223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee571223barEv,_ZTv0_n16_N7ee571223barEv)();
+extern void ABISELECT(_ZThn48_N7ee571223barEv,_ZThn24_N7ee571223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57122[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57122[0]),
+ (VTBL_ENTRY)&_ZN7ee571223barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee571223barEv,_ZTv0_n20_N7ee571223barEv),
+ (VTBL_ENTRY)&_ZN6dd71223fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57122[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee57122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71223fooEv,_ZTv0_n12_N6dd71223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee571223barEv,_ZTv0_n16_N7ee571223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee57122[];
+extern void _ZN6dd71223barEv();
+extern void _ZN6dd71223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7122__7ee57122[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7122[0]),
+ (VTBL_ENTRY)&_ZN6dd71223barEv,
+ (VTBL_ENTRY)&_ZN6dd71223fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc122__6dd7122__7ee57122[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7122[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd71223fooEv,_ZTv0_n12_N6dd71223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71223fooEv,_ZThn16_N6dd71223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71223barEv,_ZTv0_n16_N6dd71223barEv)();
+extern void ABISELECT(_ZThn32_N6dd71223barEv,_ZThn16_N6dd71223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd7122__7ee57122[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71223fooEv,_ZTv0_n12_N6dd71223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71223barEv,_ZTv0_n16_N6dd71223barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc122__7ee57122[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc122__7ee57122[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee57122[] = {
+ {&(_ZTV7ee57122[5]), 5,23},
+ {&(_ZTV7ee57122[12]), 12,23},
+ {&(_ZTV7ee57122[17]), 17,23},
+ {&(_ZTV7ee57122[21]), 21,23},
+ {&(_tg__ZTV6dd7122__7ee57122[4]), 4,6},
+ {&(_tg__ZTV5cc122__6dd7122__7ee57122[3]), 3,3},
+ {&(_tg__ZTV4bb22__6dd7122__7ee57122[4]), 4,6},
+ {&(_tg__ZTV5cc122__7ee57122[3]), 3,3},
+ {&(_tg__ZTV4bb22__5cc122__7ee57122[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee57122[];
+extern VTBL_ENTRY _ZTV7ee57122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57122[];
+static VTBL_ENTRY alt_thunk_names959[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71223barEv,_ZTv0_n16_N6dd71223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71223barEv,_ZThn16_N6dd71223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee571223barEv,_ZTv0_n16_N7ee571223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee571223barEv,_ZThn24_N7ee571223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71223fooEv,_ZTv0_n12_N6dd71223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71223fooEv,_ZThn16_N6dd71223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71223fooEv,_ZThn16_N6dd71223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee571223barEv,_ZTv0_n20_N7ee571223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee571223barEv,_ZThn8_N7ee571223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57122 = { "ee57122", // class name
+ bases_ee57122, 4,
+ &(vtc_ee57122[0]), // expected_vtbl_contents
+ &(vtt_ee57122[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee57122),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57122),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57122),9, //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 ee67122 : dd7122 {
+ int e;
+ virtual void foo(); // _ZN7ee671223fooEv
+ virtual void bar(); // _ZN7ee671223barEv
+ ~ee67122(); // tgen
+ ee67122(); // tgen
+};
+//SIG(1 ee67122) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67122 ::foo(){vfunc_called(this, "_ZN7ee671223fooEv");}
+void ee67122 ::bar(){vfunc_called(this, "_ZN7ee671223barEv");}
+ee67122 ::~ee67122(){ note_dtor("ee67122", this);} // tgen
+ee67122 ::ee67122(){ note_ctor("ee67122", this);} // tgen
+
+static void Test_ee67122()
+{
+ extern Class_Descriptor cd_ee67122;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee67122, buf);
+ ee67122 *dp, &lv = *(dp=new (buf) ee67122());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee67122)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67122)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee67122");
+ check_base_class_offset(lv, (bb22*)(cc122*), ABISELECT(32,20), "ee67122");
+ check_base_class_offset(lv, (cc122*)(dd7122*), ABISELECT(16,12), "ee67122");
+ check_base_class_offset(lv, (dd7122*), 0, "ee67122");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67122.e");
+ test_class_info(&lv, &cd_ee67122);
+ dp->~ee67122();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67122(Test_ee67122, "ee67122", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee67122C1Ev();
+extern void _ZN7ee67122D1Ev();
+Name_Map name_map_ee67122[] = {
+ NSPAIR(_ZN7ee67122C1Ev),
+ NSPAIR(_ZN7ee67122D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc122;
+extern VTBL_ENTRY _ZTI5cc122[];
+extern VTBL_ENTRY _ZTV5cc122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc122[];
+extern Class_Descriptor cd_dd7122;
+extern VTBL_ENTRY _ZTI6dd7122[];
+extern VTBL_ENTRY _ZTV6dd7122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7122[];
+static Base_Class bases_ee67122[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc122, 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_dd7122, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67122[];
+extern void _ZN7ee671223barEv();
+extern void _ZN7ee671223fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee671223fooEv,_ZTv0_n12_N7ee671223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee671223fooEv,_ZThn20_N7ee671223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee671223barEv,_ZTv0_n16_N7ee671223barEv)();
+extern void ABISELECT(_ZThn32_N7ee671223barEv,_ZThn20_N7ee671223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67122[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67122[0]),
+ (VTBL_ENTRY)&_ZN7ee671223barEv,
+ (VTBL_ENTRY)&_ZN7ee671223fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67122[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee67122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee671223fooEv,_ZTv0_n12_N7ee671223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee671223barEv,_ZTv0_n16_N7ee671223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee67122[];
+extern void _ZN6dd71223barEv();
+extern void _ZN6dd71223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7122__7ee67122[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7122[0]),
+ (VTBL_ENTRY)&_ZN6dd71223barEv,
+ (VTBL_ENTRY)&_ZN6dd71223fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc122__6dd7122__7ee67122[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7122[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd71223fooEv,_ZTv0_n12_N6dd71223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71223fooEv,_ZThn20_N6dd71223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71223barEv,_ZTv0_n16_N6dd71223barEv)();
+extern void ABISELECT(_ZThn32_N6dd71223barEv,_ZThn20_N6dd71223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd7122__7ee67122[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71223fooEv,_ZTv0_n12_N6dd71223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71223barEv,_ZTv0_n16_N6dd71223barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc122__7ee67122[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc122__7ee67122[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee67122[] = {
+ {&(_ZTV7ee67122[4]), 4,15},
+ {&(_tg__ZTV6dd7122__7ee67122[4]), 4,6},
+ {&(_tg__ZTV5cc122__6dd7122__7ee67122[3]), 3,3},
+ {&(_tg__ZTV4bb22__6dd7122__7ee67122[4]), 4,6},
+ {&(_ZTV7ee67122[9]), 9,15},
+ {&(_ZTV7ee67122[13]), 13,15},
+ {&(_tg__ZTV5cc122__7ee67122[3]), 3,3},
+ {&(_tg__ZTV4bb22__5cc122__7ee67122[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee67122[];
+extern VTBL_ENTRY _ZTV7ee67122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67122[];
+static VTBL_ENTRY alt_thunk_names960[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71223barEv,_ZTv0_n16_N6dd71223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71223barEv,_ZThn20_N6dd71223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71223fooEv,_ZTv0_n12_N6dd71223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71223fooEv,_ZThn20_N6dd71223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee671223barEv,_ZTv0_n16_N7ee671223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee671223barEv,_ZThn20_N7ee671223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee671223fooEv,_ZTv0_n12_N7ee671223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee671223fooEv,_ZThn20_N7ee671223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67122 = { "ee67122", // class name
+ bases_ee67122, 4,
+ &(vtc_ee67122[0]), // expected_vtbl_contents
+ &(vtt_ee67122[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee67122),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67122),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67122),8, //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 ee77122 : virtual dd7122 {
+ int e;
+ virtual void foo(); // _ZN7ee771223fooEv
+ virtual void bar(); // _ZN7ee771223barEv
+ ~ee77122(); // tgen
+ ee77122(); // tgen
+};
+//SIG(1 ee77122) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77122 ::foo(){vfunc_called(this, "_ZN7ee771223fooEv");}
+void ee77122 ::bar(){vfunc_called(this, "_ZN7ee771223barEv");}
+ee77122 ::~ee77122(){ note_dtor("ee77122", this);} // tgen
+ee77122 ::ee77122(){ note_ctor("ee77122", this);} // tgen
+
+static void Test_ee77122()
+{
+ extern Class_Descriptor cd_ee77122;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee77122, buf);
+ ee77122 *dp, &lv = *(dp=new (buf) ee77122());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee77122)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77122)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(48,24), "ee77122");
+ check_base_class_offset(lv, (bb22*)(cc122*), ABISELECT(48,24), "ee77122");
+ check_base_class_offset(lv, (cc122*)(dd7122*), ABISELECT(32,16), "ee77122");
+ check_base_class_offset(lv, (dd7122*), ABISELECT(16,8), "ee77122");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77122.e");
+ test_class_info(&lv, &cd_ee77122);
+ dp->~ee77122();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77122(Test_ee77122, "ee77122", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee77122C1Ev();
+extern void _ZN7ee77122D1Ev();
+Name_Map name_map_ee77122[] = {
+ NSPAIR(_ZN7ee77122C1Ev),
+ NSPAIR(_ZN7ee77122D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc122;
+extern VTBL_ENTRY _ZTI5cc122[];
+extern VTBL_ENTRY _ZTV5cc122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc122[];
+extern Class_Descriptor cd_dd7122;
+extern VTBL_ENTRY _ZTI6dd7122[];
+extern VTBL_ENTRY _ZTV6dd7122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7122[];
+static Base_Class bases_ee77122[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb22, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc122, 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_dd7122, 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 _ZTI7ee77122[];
+extern void _ZN7ee771223fooEv();
+extern void _ZN7ee771223barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee771223barEv,_ZTv0_n20_N7ee771223barEv)();
+extern void ABISELECT(_ZThn16_N7ee771223barEv,_ZThn8_N7ee771223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee771223fooEv,_ZTv0_n24_N7ee771223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee771223fooEv,_ZThn8_N7ee771223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee771223fooEv,_ZTv0_n12_N7ee771223fooEv)();
+extern void ABISELECT(_ZThn48_N7ee771223fooEv,_ZThn24_N7ee771223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee771223barEv,_ZTv0_n16_N7ee771223barEv)();
+extern void ABISELECT(_ZThn48_N7ee771223barEv,_ZThn24_N7ee771223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77122[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77122[0]),
+ (VTBL_ENTRY)&_ZN7ee771223fooEv,
+ (VTBL_ENTRY)&_ZN7ee771223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee771223barEv,_ZTv0_n20_N7ee771223barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee771223fooEv,_ZTv0_n24_N7ee771223fooEv),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77122[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee77122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee771223fooEv,_ZTv0_n12_N7ee771223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee771223barEv,_ZTv0_n16_N7ee771223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee77122[];
+extern void _ZN6dd71223barEv();
+extern void _ZN6dd71223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7122__7ee77122[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7122[0]),
+ (VTBL_ENTRY)&_ZN6dd71223barEv,
+ (VTBL_ENTRY)&_ZN6dd71223fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc122__6dd7122__7ee77122[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7122[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd71223fooEv,_ZTv0_n12_N6dd71223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71223fooEv,_ZThn16_N6dd71223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71223barEv,_ZTv0_n16_N6dd71223barEv)();
+extern void ABISELECT(_ZThn32_N6dd71223barEv,_ZThn16_N6dd71223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd7122__7ee77122[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71223fooEv,_ZTv0_n12_N6dd71223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71223barEv,_ZTv0_n16_N6dd71223barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc122__7ee77122[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc122__7ee77122[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc122[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee77122[] = {
+ {&(_ZTV7ee77122[5]), 5,24},
+ {&(_ZTV7ee77122[13]), 13,24},
+ {&(_ZTV7ee77122[18]), 18,24},
+ {&(_ZTV7ee77122[22]), 22,24},
+ {&(_tg__ZTV6dd7122__7ee77122[4]), 4,6},
+ {&(_tg__ZTV5cc122__6dd7122__7ee77122[3]), 3,3},
+ {&(_tg__ZTV4bb22__6dd7122__7ee77122[4]), 4,6},
+ {&(_tg__ZTV5cc122__7ee77122[3]), 3,3},
+ {&(_tg__ZTV4bb22__5cc122__7ee77122[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee77122[];
+extern VTBL_ENTRY _ZTV7ee77122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77122[];
+static VTBL_ENTRY alt_thunk_names961[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71223barEv,_ZTv0_n16_N6dd71223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71223barEv,_ZThn16_N6dd71223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71223fooEv,_ZTv0_n12_N6dd71223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71223fooEv,_ZThn16_N6dd71223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee771223barEv,_ZTv0_n16_N7ee771223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee771223barEv,_ZThn24_N7ee771223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee771223fooEv,_ZTv0_n12_N7ee771223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee771223fooEv,_ZThn24_N7ee771223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee771223fooEv,_ZTv0_n24_N7ee771223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee771223fooEv,_ZThn8_N7ee771223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee771223barEv,_ZTv0_n20_N7ee771223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee771223barEv,_ZThn8_N7ee771223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77122 = { "ee77122", // class name
+ bases_ee77122, 4,
+ &(vtc_ee77122[0]), // expected_vtbl_contents
+ &(vtt_ee77122[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee77122),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77122),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77122),9, //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 cc222 : bb22 {
+ int c;
+ virtual void foo(); // _ZN5cc2223fooEv
+ ~cc222(); // tgen
+ cc222(); // tgen
+};
+//SIG(-1 cc222) C1{ BC2{ BC3{ v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void cc222 ::foo(){vfunc_called(this, "_ZN5cc2223fooEv");}
+cc222 ::~cc222(){ note_dtor("cc222", this);} // tgen
+cc222 ::cc222(){ note_ctor("cc222", this);} // tgen
+
+static void Test_cc222()
+{
+ extern Class_Descriptor cd_cc222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,5)];
+ init_test(&cd_cc222, buf);
+ cc222 *dp, &lv = *(dp=new (buf) cc222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,16), "sizeof(cc222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc222)");
+ check_base_class_offset(lv, (aa2*)(bb22*), 0, "cc222");
+ check_base_class_offset(lv, (bb22*), 0, "cc222");
+ check_field_offset(lv, c, ABISELECT(16,12), "cc222.c");
+ test_class_info(&lv, &cd_cc222);
+ dp->~cc222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc222(Test_cc222, "cc222", ABISELECT(24,16));
+
+#else // __cplusplus
+
+extern void _ZN5cc222C1Ev();
+extern void _ZN5cc222D1Ev();
+Name_Map name_map_cc222[] = {
+ NSPAIR(_ZN5cc222C1Ev),
+ NSPAIR(_ZN5cc222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+static Base_Class bases_cc222[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI5cc222[];
+extern void _ZN5cc2223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_cc222[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc222[0]),
+ (VTBL_ENTRY)&_ZN5cc2223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTI5cc222[];
+extern VTBL_ENTRY _ZTV5cc222[];
+Class_Descriptor cd_cc222 = { "cc222", // class name
+ bases_cc222, 2,
+ &(vtc_cc222[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,16), // object size
+ NSPAIRA(_ZTI5cc222),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV5cc222),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 dd0222 : cc222 {
+ int d;
+ ~dd0222(); // tgen
+ dd0222(); // tgen
+};
+//SIG(-1 dd0222) C1{ BC2{ BC3{ BC4{ v1 v2 Fi} v1 Fi} v1 Fi} Fi}
+
+
+dd0222 ::~dd0222(){ note_dtor("dd0222", this);} // tgen
+dd0222 ::dd0222(){ note_ctor("dd0222", this);} // tgen
+
+static void Test_dd0222()
+{
+ extern Class_Descriptor cd_dd0222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd0222, buf);
+ dd0222 *dp, &lv = *(dp=new (buf) dd0222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd0222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0222)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc222*), 0, "dd0222");
+ check_base_class_offset(lv, (bb22*)(cc222*), 0, "dd0222");
+ check_base_class_offset(lv, (cc222*), 0, "dd0222");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd0222.d");
+ test_class_info(&lv, &cd_dd0222);
+ dp->~dd0222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0222(Test_dd0222, "dd0222", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd0222C1Ev();
+extern void _ZN6dd0222D1Ev();
+Name_Map name_map_dd0222[] = {
+ NSPAIR(_ZN6dd0222C1Ev),
+ NSPAIR(_ZN6dd0222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc222;
+extern VTBL_ENTRY _ZTI5cc222[];
+extern VTBL_ENTRY _ZTV5cc222[];
+static Base_Class bases_dd0222[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc222, 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 _ZTI6dd0222[];
+extern void _ZN5cc2223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_dd0222[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0222[0]),
+ (VTBL_ENTRY)&_ZN5cc2223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTI6dd0222[];
+extern VTBL_ENTRY _ZTV6dd0222[];
+Class_Descriptor cd_dd0222 = { "dd0222", // class name
+ bases_dd0222, 3,
+ &(vtc_dd0222[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd0222),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0222),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 ee00222 : dd0222 {
+ int e;
+ ~ee00222(); // tgen
+ ee00222(); // tgen
+};
+//SIG(1 ee00222) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v1 Fi} Fi} Fi}
+
+
+ee00222 ::~ee00222(){ note_dtor("ee00222", this);} // tgen
+ee00222 ::ee00222(){ note_ctor("ee00222", this);} // tgen
+
+static void Test_ee00222()
+{
+ extern Class_Descriptor cd_ee00222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee00222, buf);
+ ee00222 *dp, &lv = *(dp=new (buf) ee00222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee00222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00222)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc222*)(dd0222*), 0, "ee00222");
+ check_base_class_offset(lv, (bb22*)(cc222*)(dd0222*), 0, "ee00222");
+ check_base_class_offset(lv, (cc222*)(dd0222*), 0, "ee00222");
+ check_base_class_offset(lv, (dd0222*), 0, "ee00222");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee00222.e");
+ test_class_info(&lv, &cd_ee00222);
+ dp->~ee00222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00222(Test_ee00222, "ee00222", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee00222C1Ev();
+extern void _ZN7ee00222D1Ev();
+Name_Map name_map_ee00222[] = {
+ NSPAIR(_ZN7ee00222C1Ev),
+ NSPAIR(_ZN7ee00222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc222;
+extern VTBL_ENTRY _ZTI5cc222[];
+extern VTBL_ENTRY _ZTV5cc222[];
+extern Class_Descriptor cd_dd0222;
+extern VTBL_ENTRY _ZTI6dd0222[];
+extern VTBL_ENTRY _ZTV6dd0222[];
+static Base_Class bases_ee00222[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc222, 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_dd0222, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee00222[];
+extern void _ZN5cc2223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee00222[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00222[0]),
+ (VTBL_ENTRY)&_ZN5cc2223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTI7ee00222[];
+extern VTBL_ENTRY _ZTV7ee00222[];
+Class_Descriptor cd_ee00222 = { "ee00222", // class name
+ bases_ee00222, 4,
+ &(vtc_ee00222[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee00222),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00222),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 ee10222 : virtual dd0222 {
+ int e;
+ ~ee10222(); // tgen
+ ee10222(); // tgen
+};
+//SIG(1 ee10222) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v1 Fi} Fi} Fi}
+
+
+ee10222 ::~ee10222(){ note_dtor("ee10222", this);} // tgen
+ee10222 ::ee10222(){ note_ctor("ee10222", this);} // tgen
+
+static void Test_ee10222()
+{
+ extern Class_Descriptor cd_ee10222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee10222, buf);
+ ee10222 *dp, &lv = *(dp=new (buf) ee10222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee10222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10222)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc222*)(dd0222*), ABISELECT(16,8), "ee10222");
+ check_base_class_offset(lv, (bb22*)(cc222*)(dd0222*), ABISELECT(16,8), "ee10222");
+ check_base_class_offset(lv, (cc222*)(dd0222*), ABISELECT(16,8), "ee10222");
+ check_base_class_offset(lv, (dd0222*), ABISELECT(16,8), "ee10222");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10222.e");
+ test_class_info(&lv, &cd_ee10222);
+ dp->~ee10222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10222(Test_ee10222, "ee10222", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee10222C1Ev();
+extern void _ZN7ee10222D1Ev();
+Name_Map name_map_ee10222[] = {
+ NSPAIR(_ZN7ee10222C1Ev),
+ NSPAIR(_ZN7ee10222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc222;
+extern VTBL_ENTRY _ZTI5cc222[];
+extern VTBL_ENTRY _ZTV5cc222[];
+extern Class_Descriptor cd_dd0222;
+extern VTBL_ENTRY _ZTI6dd0222[];
+extern VTBL_ENTRY _ZTV6dd0222[];
+static Base_Class bases_ee10222[] = {
+ // 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_bb22, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc222, 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_dd0222, 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 _ZTI7ee10222[];
+extern void _ZN5cc2223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee10222[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10222[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10222[0]),
+ (VTBL_ENTRY)&_ZN5cc2223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee10222[];
+static VTT_ENTRY vtt_ee10222[] = {
+ {&(_ZTV7ee10222[3]), 3,9},
+ {&(_ZTV7ee10222[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee10222[];
+extern VTBL_ENTRY _ZTV7ee10222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10222[];
+Class_Descriptor cd_ee10222 = { "ee10222", // class name
+ bases_ee10222, 4,
+ &(vtc_ee10222[0]), // expected_vtbl_contents
+ &(vtt_ee10222[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee10222),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10222),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10222),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 ee20222 : dd0222 {
+ int e;
+ virtual void foo(); // _ZN7ee202223fooEv
+ ~ee20222(); // tgen
+ ee20222(); // tgen
+};
+//SIG(1 ee20222) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee20222 ::foo(){vfunc_called(this, "_ZN7ee202223fooEv");}
+ee20222 ::~ee20222(){ note_dtor("ee20222", this);} // tgen
+ee20222 ::ee20222(){ note_ctor("ee20222", this);} // tgen
+
+static void Test_ee20222()
+{
+ extern Class_Descriptor cd_ee20222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee20222, buf);
+ ee20222 *dp, &lv = *(dp=new (buf) ee20222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee20222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20222)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc222*)(dd0222*), 0, "ee20222");
+ check_base_class_offset(lv, (bb22*)(cc222*)(dd0222*), 0, "ee20222");
+ check_base_class_offset(lv, (cc222*)(dd0222*), 0, "ee20222");
+ check_base_class_offset(lv, (dd0222*), 0, "ee20222");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee20222.e");
+ test_class_info(&lv, &cd_ee20222);
+ dp->~ee20222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20222(Test_ee20222, "ee20222", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee20222C1Ev();
+extern void _ZN7ee20222D1Ev();
+Name_Map name_map_ee20222[] = {
+ NSPAIR(_ZN7ee20222C1Ev),
+ NSPAIR(_ZN7ee20222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc222;
+extern VTBL_ENTRY _ZTI5cc222[];
+extern VTBL_ENTRY _ZTV5cc222[];
+extern Class_Descriptor cd_dd0222;
+extern VTBL_ENTRY _ZTI6dd0222[];
+extern VTBL_ENTRY _ZTV6dd0222[];
+static Base_Class bases_ee20222[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc222, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd0222, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee20222[];
+extern void _ZN7ee202223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee20222[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20222[0]),
+ (VTBL_ENTRY)&_ZN7ee202223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTI7ee20222[];
+extern VTBL_ENTRY _ZTV7ee20222[];
+Class_Descriptor cd_ee20222 = { "ee20222", // class name
+ bases_ee20222, 4,
+ &(vtc_ee20222[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee20222),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20222),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 ee30222 : virtual dd0222 {
+ int e;
+ virtual void foo(); // _ZN7ee302223fooEv
+ ~ee30222(); // tgen
+ ee30222(); // tgen
+};
+//SIG(1 ee30222) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee30222 ::foo(){vfunc_called(this, "_ZN7ee302223fooEv");}
+ee30222 ::~ee30222(){ note_dtor("ee30222", this);} // tgen
+ee30222 ::ee30222(){ note_ctor("ee30222", this);} // tgen
+
+static void Test_ee30222()
+{
+ extern Class_Descriptor cd_ee30222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee30222, buf);
+ ee30222 *dp, &lv = *(dp=new (buf) ee30222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee30222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30222)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc222*)(dd0222*), ABISELECT(16,8), "ee30222");
+ check_base_class_offset(lv, (bb22*)(cc222*)(dd0222*), ABISELECT(16,8), "ee30222");
+ check_base_class_offset(lv, (cc222*)(dd0222*), ABISELECT(16,8), "ee30222");
+ check_base_class_offset(lv, (dd0222*), ABISELECT(16,8), "ee30222");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30222.e");
+ test_class_info(&lv, &cd_ee30222);
+ dp->~ee30222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30222(Test_ee30222, "ee30222", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee30222C1Ev();
+extern void _ZN7ee30222D1Ev();
+Name_Map name_map_ee30222[] = {
+ NSPAIR(_ZN7ee30222C1Ev),
+ NSPAIR(_ZN7ee30222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc222;
+extern VTBL_ENTRY _ZTI5cc222[];
+extern VTBL_ENTRY _ZTV5cc222[];
+extern Class_Descriptor cd_dd0222;
+extern VTBL_ENTRY _ZTI6dd0222[];
+extern VTBL_ENTRY _ZTV6dd0222[];
+static Base_Class bases_ee30222[] = {
+ // 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_bb22, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc222, 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_dd0222, 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 _ZTI7ee30222[];
+extern void _ZN7ee302223fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee302223fooEv,_ZTv0_n12_N7ee302223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee302223fooEv,_ZThn8_N7ee302223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee30222[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30222[0]),
+ (VTBL_ENTRY)&_ZN7ee302223fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee302223fooEv,_ZTv0_n12_N7ee302223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee30222[];
+static VTT_ENTRY vtt_ee30222[] = {
+ {&(_ZTV7ee30222[3]), 3,10},
+ {&(_ZTV7ee30222[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee30222[];
+extern VTBL_ENTRY _ZTV7ee30222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30222[];
+static VTBL_ENTRY alt_thunk_names962[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee302223fooEv,_ZTv0_n12_N7ee302223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee302223fooEv,_ZThn8_N7ee302223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30222 = { "ee30222", // class name
+ bases_ee30222, 4,
+ &(vtc_ee30222[0]), // expected_vtbl_contents
+ &(vtt_ee30222[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee30222),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30222),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30222),2, //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 ee40222 : dd0222 {
+ int e;
+ virtual void bar(); // _ZN7ee402223barEv
+ ~ee40222(); // tgen
+ ee40222(); // tgen
+};
+//SIG(1 ee40222) C1{ BC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee40222 ::bar(){vfunc_called(this, "_ZN7ee402223barEv");}
+ee40222 ::~ee40222(){ note_dtor("ee40222", this);} // tgen
+ee40222 ::ee40222(){ note_ctor("ee40222", this);} // tgen
+
+static void Test_ee40222()
+{
+ extern Class_Descriptor cd_ee40222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee40222, buf);
+ ee40222 *dp, &lv = *(dp=new (buf) ee40222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee40222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40222)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc222*)(dd0222*), 0, "ee40222");
+ check_base_class_offset(lv, (bb22*)(cc222*)(dd0222*), 0, "ee40222");
+ check_base_class_offset(lv, (cc222*)(dd0222*), 0, "ee40222");
+ check_base_class_offset(lv, (dd0222*), 0, "ee40222");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee40222.e");
+ test_class_info(&lv, &cd_ee40222);
+ dp->~ee40222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40222(Test_ee40222, "ee40222", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee40222C1Ev();
+extern void _ZN7ee40222D1Ev();
+Name_Map name_map_ee40222[] = {
+ NSPAIR(_ZN7ee40222C1Ev),
+ NSPAIR(_ZN7ee40222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc222;
+extern VTBL_ENTRY _ZTI5cc222[];
+extern VTBL_ENTRY _ZTV5cc222[];
+extern Class_Descriptor cd_dd0222;
+extern VTBL_ENTRY _ZTI6dd0222[];
+extern VTBL_ENTRY _ZTV6dd0222[];
+static Base_Class bases_ee40222[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc222, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd0222, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee40222[];
+extern void _ZN5cc2223fooEv();
+extern void _ZN7ee402223barEv();
+static VTBL_ENTRY vtc_ee40222[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40222[0]),
+ (VTBL_ENTRY)&_ZN5cc2223fooEv,
+ (VTBL_ENTRY)&_ZN7ee402223barEv,
+};
+extern VTBL_ENTRY _ZTI7ee40222[];
+extern VTBL_ENTRY _ZTV7ee40222[];
+Class_Descriptor cd_ee40222 = { "ee40222", // class name
+ bases_ee40222, 4,
+ &(vtc_ee40222[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee40222),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40222),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 ee50222 : virtual dd0222 {
+ int e;
+ virtual void bar(); // _ZN7ee502223barEv
+ ~ee50222(); // tgen
+ ee50222(); // tgen
+};
+//SIG(1 ee50222) C1{ VBC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee50222 ::bar(){vfunc_called(this, "_ZN7ee502223barEv");}
+ee50222 ::~ee50222(){ note_dtor("ee50222", this);} // tgen
+ee50222 ::ee50222(){ note_ctor("ee50222", this);} // tgen
+
+static void Test_ee50222()
+{
+ extern Class_Descriptor cd_ee50222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee50222, buf);
+ ee50222 *dp, &lv = *(dp=new (buf) ee50222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee50222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50222)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc222*)(dd0222*), ABISELECT(16,8), "ee50222");
+ check_base_class_offset(lv, (bb22*)(cc222*)(dd0222*), ABISELECT(16,8), "ee50222");
+ check_base_class_offset(lv, (cc222*)(dd0222*), ABISELECT(16,8), "ee50222");
+ check_base_class_offset(lv, (dd0222*), ABISELECT(16,8), "ee50222");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50222.e");
+ test_class_info(&lv, &cd_ee50222);
+ dp->~ee50222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50222(Test_ee50222, "ee50222", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee50222C1Ev();
+extern void _ZN7ee50222D1Ev();
+Name_Map name_map_ee50222[] = {
+ NSPAIR(_ZN7ee50222C1Ev),
+ NSPAIR(_ZN7ee50222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc222;
+extern VTBL_ENTRY _ZTI5cc222[];
+extern VTBL_ENTRY _ZTV5cc222[];
+extern Class_Descriptor cd_dd0222;
+extern VTBL_ENTRY _ZTI6dd0222[];
+extern VTBL_ENTRY _ZTV6dd0222[];
+static Base_Class bases_ee50222[] = {
+ // 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_bb22, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc222, 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_dd0222, 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 _ZTI7ee50222[];
+extern void _ZN7ee502223barEv();
+extern void _ZN5cc2223fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee502223barEv,_ZTv0_n16_N7ee502223barEv)();
+extern void ABISELECT(_ZThn16_N7ee502223barEv,_ZThn8_N7ee502223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee50222[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50222[0]),
+ (VTBL_ENTRY)&_ZN7ee502223barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50222[0]),
+ (VTBL_ENTRY)&_ZN5cc2223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee502223barEv,_ZTv0_n16_N7ee502223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee50222[];
+static VTT_ENTRY vtt_ee50222[] = {
+ {&(_ZTV7ee50222[3]), 3,10},
+ {&(_ZTV7ee50222[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee50222[];
+extern VTBL_ENTRY _ZTV7ee50222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50222[];
+static VTBL_ENTRY alt_thunk_names963[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee502223barEv,_ZTv0_n16_N7ee502223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee502223barEv,_ZThn8_N7ee502223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50222 = { "ee50222", // class name
+ bases_ee50222, 4,
+ &(vtc_ee50222[0]), // expected_vtbl_contents
+ &(vtt_ee50222[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee50222),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50222),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50222),2, //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 ee60222 : dd0222 {
+ int e;
+ virtual void foo(); // _ZN7ee602223fooEv
+ virtual void bar(); // _ZN7ee602223barEv
+ ~ee60222(); // tgen
+ ee60222(); // tgen
+};
+//SIG(1 ee60222) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee60222 ::foo(){vfunc_called(this, "_ZN7ee602223fooEv");}
+void ee60222 ::bar(){vfunc_called(this, "_ZN7ee602223barEv");}
+ee60222 ::~ee60222(){ note_dtor("ee60222", this);} // tgen
+ee60222 ::ee60222(){ note_ctor("ee60222", this);} // tgen
+
+static void Test_ee60222()
+{
+ extern Class_Descriptor cd_ee60222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee60222, buf);
+ ee60222 *dp, &lv = *(dp=new (buf) ee60222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee60222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60222)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc222*)(dd0222*), 0, "ee60222");
+ check_base_class_offset(lv, (bb22*)(cc222*)(dd0222*), 0, "ee60222");
+ check_base_class_offset(lv, (cc222*)(dd0222*), 0, "ee60222");
+ check_base_class_offset(lv, (dd0222*), 0, "ee60222");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee60222.e");
+ test_class_info(&lv, &cd_ee60222);
+ dp->~ee60222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60222(Test_ee60222, "ee60222", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee60222C1Ev();
+extern void _ZN7ee60222D1Ev();
+Name_Map name_map_ee60222[] = {
+ NSPAIR(_ZN7ee60222C1Ev),
+ NSPAIR(_ZN7ee60222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc222;
+extern VTBL_ENTRY _ZTI5cc222[];
+extern VTBL_ENTRY _ZTV5cc222[];
+extern Class_Descriptor cd_dd0222;
+extern VTBL_ENTRY _ZTI6dd0222[];
+extern VTBL_ENTRY _ZTV6dd0222[];
+static Base_Class bases_ee60222[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc222, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd0222, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee60222[];
+extern void _ZN7ee602223fooEv();
+extern void _ZN7ee602223barEv();
+static VTBL_ENTRY vtc_ee60222[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60222[0]),
+ (VTBL_ENTRY)&_ZN7ee602223fooEv,
+ (VTBL_ENTRY)&_ZN7ee602223barEv,
+};
+extern VTBL_ENTRY _ZTI7ee60222[];
+extern VTBL_ENTRY _ZTV7ee60222[];
+Class_Descriptor cd_ee60222 = { "ee60222", // class name
+ bases_ee60222, 4,
+ &(vtc_ee60222[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee60222),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60222),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 ee70222 : virtual dd0222 {
+ int e;
+ virtual void foo(); // _ZN7ee702223fooEv
+ virtual void bar(); // _ZN7ee702223barEv
+ ~ee70222(); // tgen
+ ee70222(); // tgen
+};
+//SIG(1 ee70222) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee70222 ::foo(){vfunc_called(this, "_ZN7ee702223fooEv");}
+void ee70222 ::bar(){vfunc_called(this, "_ZN7ee702223barEv");}
+ee70222 ::~ee70222(){ note_dtor("ee70222", this);} // tgen
+ee70222 ::ee70222(){ note_ctor("ee70222", this);} // tgen
+
+static void Test_ee70222()
+{
+ extern Class_Descriptor cd_ee70222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee70222, buf);
+ ee70222 *dp, &lv = *(dp=new (buf) ee70222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee70222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70222)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc222*)(dd0222*), ABISELECT(16,8), "ee70222");
+ check_base_class_offset(lv, (bb22*)(cc222*)(dd0222*), ABISELECT(16,8), "ee70222");
+ check_base_class_offset(lv, (cc222*)(dd0222*), ABISELECT(16,8), "ee70222");
+ check_base_class_offset(lv, (dd0222*), ABISELECT(16,8), "ee70222");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70222.e");
+ test_class_info(&lv, &cd_ee70222);
+ dp->~ee70222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70222(Test_ee70222, "ee70222", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee70222C1Ev();
+extern void _ZN7ee70222D1Ev();
+Name_Map name_map_ee70222[] = {
+ NSPAIR(_ZN7ee70222C1Ev),
+ NSPAIR(_ZN7ee70222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc222;
+extern VTBL_ENTRY _ZTI5cc222[];
+extern VTBL_ENTRY _ZTV5cc222[];
+extern Class_Descriptor cd_dd0222;
+extern VTBL_ENTRY _ZTI6dd0222[];
+extern VTBL_ENTRY _ZTV6dd0222[];
+static Base_Class bases_ee70222[] = {
+ // 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_bb22, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc222, 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_dd0222, 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 _ZTI7ee70222[];
+extern void _ZN7ee702223fooEv();
+extern void _ZN7ee702223barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee702223fooEv,_ZTv0_n12_N7ee702223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee702223fooEv,_ZThn8_N7ee702223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee702223barEv,_ZTv0_n16_N7ee702223barEv)();
+extern void ABISELECT(_ZThn16_N7ee702223barEv,_ZThn8_N7ee702223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70222[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70222[0]),
+ (VTBL_ENTRY)&_ZN7ee702223fooEv,
+ (VTBL_ENTRY)&_ZN7ee702223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee702223fooEv,_ZTv0_n12_N7ee702223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee702223barEv,_ZTv0_n16_N7ee702223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee70222[];
+static VTT_ENTRY vtt_ee70222[] = {
+ {&(_ZTV7ee70222[3]), 3,11},
+ {&(_ZTV7ee70222[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee70222[];
+extern VTBL_ENTRY _ZTV7ee70222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70222[];
+static VTBL_ENTRY alt_thunk_names964[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee702223barEv,_ZTv0_n16_N7ee702223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee702223barEv,_ZThn8_N7ee702223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee702223fooEv,_ZTv0_n12_N7ee702223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee702223fooEv,_ZThn8_N7ee702223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70222 = { "ee70222", // class name
+ bases_ee70222, 4,
+ &(vtc_ee70222[0]), // expected_vtbl_contents
+ &(vtt_ee70222[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee70222),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70222),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70222),2, //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 dd1222 : virtual cc222 {
+ int d;
+ ~dd1222(); // tgen
+ dd1222(); // tgen
+};
+//SIG(-1 dd1222) C1{ VBC2{ BC3{ BC4{ v1 v2 Fi} v1 Fi} v1 Fi} Fi}
+
+
+dd1222 ::~dd1222(){ note_dtor("dd1222", this);} // tgen
+dd1222 ::dd1222(){ note_ctor("dd1222", this);} // tgen
+
+static void Test_dd1222()
+{
+ extern Class_Descriptor cd_dd1222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd1222, buf);
+ dd1222 *dp, &lv = *(dp=new (buf) dd1222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd1222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1222)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc222*), ABISELECT(16,8), "dd1222");
+ check_base_class_offset(lv, (bb22*)(cc222*), ABISELECT(16,8), "dd1222");
+ check_base_class_offset(lv, (cc222*), ABISELECT(16,8), "dd1222");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1222.d");
+ test_class_info(&lv, &cd_dd1222);
+ dp->~dd1222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1222(Test_dd1222, "dd1222", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd1222C1Ev();
+extern void _ZN6dd1222D1Ev();
+Name_Map name_map_dd1222[] = {
+ NSPAIR(_ZN6dd1222C1Ev),
+ NSPAIR(_ZN6dd1222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc222;
+extern VTBL_ENTRY _ZTI5cc222[];
+extern VTBL_ENTRY _ZTV5cc222[];
+static Base_Class bases_dd1222[] = {
+ // 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_bb22, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc222, 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 _ZTI6dd1222[];
+extern void _ZN5cc2223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_dd1222[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1222[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1222[0]),
+ (VTBL_ENTRY)&_ZN5cc2223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV6dd1222[];
+static VTT_ENTRY vtt_dd1222[] = {
+ {&(_ZTV6dd1222[3]), 3,9},
+ {&(_ZTV6dd1222[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI6dd1222[];
+extern VTBL_ENTRY _ZTV6dd1222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1222[];
+Class_Descriptor cd_dd1222 = { "dd1222", // class name
+ bases_dd1222, 3,
+ &(vtc_dd1222[0]), // expected_vtbl_contents
+ &(vtt_dd1222[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd1222),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1222),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1222),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 ee01222 : dd1222 {
+ int e;
+ ~ee01222(); // tgen
+ ee01222(); // tgen
+};
+//SIG(1 ee01222) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v1 Fi} Fi} Fi}
+
+
+ee01222 ::~ee01222(){ note_dtor("ee01222", this);} // tgen
+ee01222 ::ee01222(){ note_ctor("ee01222", this);} // tgen
+
+static void Test_ee01222()
+{
+ extern Class_Descriptor cd_ee01222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee01222, buf);
+ ee01222 *dp, &lv = *(dp=new (buf) ee01222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee01222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01222)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc222*), ABISELECT(16,12), "ee01222");
+ check_base_class_offset(lv, (bb22*)(cc222*), ABISELECT(16,12), "ee01222");
+ check_base_class_offset(lv, (cc222*)(dd1222*), ABISELECT(16,12), "ee01222");
+ check_base_class_offset(lv, (dd1222*), 0, "ee01222");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01222.e");
+ test_class_info(&lv, &cd_ee01222);
+ dp->~ee01222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01222(Test_ee01222, "ee01222", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee01222C1Ev();
+extern void _ZN7ee01222D1Ev();
+Name_Map name_map_ee01222[] = {
+ NSPAIR(_ZN7ee01222C1Ev),
+ NSPAIR(_ZN7ee01222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc222;
+extern VTBL_ENTRY _ZTI5cc222[];
+extern VTBL_ENTRY _ZTV5cc222[];
+extern Class_Descriptor cd_dd1222;
+extern VTBL_ENTRY _ZTI6dd1222[];
+extern VTBL_ENTRY _ZTV6dd1222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1222[];
+static Base_Class bases_ee01222[] = {
+ // 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_bb22, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc222, 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_dd1222, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01222[];
+extern void _ZN5cc2223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee01222[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01222[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01222[0]),
+ (VTBL_ENTRY)&_ZN5cc2223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee01222[];
+static VTBL_ENTRY _tg__ZTV6dd1222__7ee01222[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1222[0]),
+};
+extern void _ZN5cc2223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV5cc222__6dd1222__7ee01222[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1222[0]),
+ (VTBL_ENTRY)&_ZN5cc2223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee01222[] = {
+ {&(_ZTV7ee01222[3]), 3,9},
+ {&(_tg__ZTV6dd1222__7ee01222[3]), 3,3},
+ {&(_tg__ZTV5cc222__6dd1222__7ee01222[4]), 4,6},
+ {&(_ZTV7ee01222[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee01222[];
+extern VTBL_ENTRY _ZTV7ee01222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01222[];
+Class_Descriptor cd_ee01222 = { "ee01222", // class name
+ bases_ee01222, 4,
+ &(vtc_ee01222[0]), // expected_vtbl_contents
+ &(vtt_ee01222[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee01222),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01222),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01222),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 ee11222 : virtual dd1222 {
+ int e;
+ ~ee11222(); // tgen
+ ee11222(); // tgen
+};
+//SIG(1 ee11222) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v1 Fi} Fi} Fi}
+
+
+ee11222 ::~ee11222(){ note_dtor("ee11222", this);} // tgen
+ee11222 ::ee11222(){ note_ctor("ee11222", this);} // tgen
+
+static void Test_ee11222()
+{
+ extern Class_Descriptor cd_ee11222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee11222, buf);
+ ee11222 *dp, &lv = *(dp=new (buf) ee11222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee11222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11222)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc222*), ABISELECT(32,16), "ee11222");
+ check_base_class_offset(lv, (bb22*)(cc222*), ABISELECT(32,16), "ee11222");
+ check_base_class_offset(lv, (cc222*)(dd1222*), ABISELECT(32,16), "ee11222");
+ check_base_class_offset(lv, (dd1222*), ABISELECT(16,8), "ee11222");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11222.e");
+ test_class_info(&lv, &cd_ee11222);
+ dp->~ee11222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11222(Test_ee11222, "ee11222", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee11222C1Ev();
+extern void _ZN7ee11222D1Ev();
+Name_Map name_map_ee11222[] = {
+ NSPAIR(_ZN7ee11222C1Ev),
+ NSPAIR(_ZN7ee11222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc222;
+extern VTBL_ENTRY _ZTI5cc222[];
+extern VTBL_ENTRY _ZTV5cc222[];
+extern Class_Descriptor cd_dd1222;
+extern VTBL_ENTRY _ZTI6dd1222[];
+extern VTBL_ENTRY _ZTV6dd1222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1222[];
+static Base_Class bases_ee11222[] = {
+ // 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_bb22, 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_cc222, 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_dd1222, 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 _ZTI7ee11222[];
+extern void _ZN5cc2223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee11222[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11222[0]),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11222[0]),
+ 0,
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11222[0]),
+ (VTBL_ENTRY)&_ZN5cc2223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee11222[];
+static VTBL_ENTRY _tg__ZTV6dd1222__7ee11222[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1222[0]),
+};
+extern void _ZN5cc2223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV5cc222__6dd1222__7ee11222[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1222[0]),
+ (VTBL_ENTRY)&_ZN5cc2223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee11222[] = {
+ {&(_ZTV7ee11222[4]), 4,13},
+ {&(_ZTV7ee11222[7]), 7,13},
+ {&(_ZTV7ee11222[11]), 11,13},
+ {&(_tg__ZTV6dd1222__7ee11222[3]), 3,3},
+ {&(_tg__ZTV5cc222__6dd1222__7ee11222[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee11222[];
+extern VTBL_ENTRY _ZTV7ee11222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11222[];
+Class_Descriptor cd_ee11222 = { "ee11222", // class name
+ bases_ee11222, 4,
+ &(vtc_ee11222[0]), // expected_vtbl_contents
+ &(vtt_ee11222[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee11222),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11222),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11222),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 ee21222 : dd1222 {
+ int e;
+ virtual void foo(); // _ZN7ee212223fooEv
+ ~ee21222(); // tgen
+ ee21222(); // tgen
+};
+//SIG(1 ee21222) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee21222 ::foo(){vfunc_called(this, "_ZN7ee212223fooEv");}
+ee21222 ::~ee21222(){ note_dtor("ee21222", this);} // tgen
+ee21222 ::ee21222(){ note_ctor("ee21222", this);} // tgen
+
+static void Test_ee21222()
+{
+ extern Class_Descriptor cd_ee21222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee21222, buf);
+ ee21222 *dp, &lv = *(dp=new (buf) ee21222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee21222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21222)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc222*), ABISELECT(16,12), "ee21222");
+ check_base_class_offset(lv, (bb22*)(cc222*), ABISELECT(16,12), "ee21222");
+ check_base_class_offset(lv, (cc222*)(dd1222*), ABISELECT(16,12), "ee21222");
+ check_base_class_offset(lv, (dd1222*), 0, "ee21222");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21222.e");
+ test_class_info(&lv, &cd_ee21222);
+ dp->~ee21222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21222(Test_ee21222, "ee21222", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee21222C1Ev();
+extern void _ZN7ee21222D1Ev();
+Name_Map name_map_ee21222[] = {
+ NSPAIR(_ZN7ee21222C1Ev),
+ NSPAIR(_ZN7ee21222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc222;
+extern VTBL_ENTRY _ZTI5cc222[];
+extern VTBL_ENTRY _ZTV5cc222[];
+extern Class_Descriptor cd_dd1222;
+extern VTBL_ENTRY _ZTI6dd1222[];
+extern VTBL_ENTRY _ZTV6dd1222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1222[];
+static Base_Class bases_ee21222[] = {
+ // 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_bb22, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc222, 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_dd1222, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21222[];
+extern void _ZN7ee212223fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee212223fooEv,_ZTv0_n12_N7ee212223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee212223fooEv,_ZThn12_N7ee212223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee21222[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21222[0]),
+ (VTBL_ENTRY)&_ZN7ee212223fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee212223fooEv,_ZTv0_n12_N7ee212223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee21222[];
+static VTBL_ENTRY _tg__ZTV6dd1222__7ee21222[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1222[0]),
+};
+extern void _ZN5cc2223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV5cc222__6dd1222__7ee21222[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1222[0]),
+ (VTBL_ENTRY)&_ZN5cc2223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee21222[] = {
+ {&(_ZTV7ee21222[3]), 3,10},
+ {&(_tg__ZTV6dd1222__7ee21222[3]), 3,3},
+ {&(_tg__ZTV5cc222__6dd1222__7ee21222[4]), 4,6},
+ {&(_ZTV7ee21222[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee21222[];
+extern VTBL_ENTRY _ZTV7ee21222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21222[];
+static VTBL_ENTRY alt_thunk_names965[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee212223fooEv,_ZTv0_n12_N7ee212223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee212223fooEv,_ZThn12_N7ee212223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21222 = { "ee21222", // class name
+ bases_ee21222, 4,
+ &(vtc_ee21222[0]), // expected_vtbl_contents
+ &(vtt_ee21222[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee21222),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21222),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21222),4, //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 ee31222 : virtual dd1222 {
+ int e;
+ virtual void foo(); // _ZN7ee312223fooEv
+ ~ee31222(); // tgen
+ ee31222(); // tgen
+};
+//SIG(1 ee31222) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee31222 ::foo(){vfunc_called(this, "_ZN7ee312223fooEv");}
+ee31222 ::~ee31222(){ note_dtor("ee31222", this);} // tgen
+ee31222 ::ee31222(){ note_ctor("ee31222", this);} // tgen
+
+static void Test_ee31222()
+{
+ extern Class_Descriptor cd_ee31222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee31222, buf);
+ ee31222 *dp, &lv = *(dp=new (buf) ee31222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee31222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31222)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc222*), ABISELECT(32,16), "ee31222");
+ check_base_class_offset(lv, (bb22*)(cc222*), ABISELECT(32,16), "ee31222");
+ check_base_class_offset(lv, (cc222*)(dd1222*), ABISELECT(32,16), "ee31222");
+ check_base_class_offset(lv, (dd1222*), ABISELECT(16,8), "ee31222");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31222.e");
+ test_class_info(&lv, &cd_ee31222);
+ dp->~ee31222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31222(Test_ee31222, "ee31222", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee31222C1Ev();
+extern void _ZN7ee31222D1Ev();
+Name_Map name_map_ee31222[] = {
+ NSPAIR(_ZN7ee31222C1Ev),
+ NSPAIR(_ZN7ee31222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc222;
+extern VTBL_ENTRY _ZTI5cc222[];
+extern VTBL_ENTRY _ZTV5cc222[];
+extern Class_Descriptor cd_dd1222;
+extern VTBL_ENTRY _ZTI6dd1222[];
+extern VTBL_ENTRY _ZTV6dd1222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1222[];
+static Base_Class bases_ee31222[] = {
+ // 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_bb22, 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_cc222, 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_dd1222, 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 _ZTI7ee31222[];
+extern void _ZN7ee312223fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee312223fooEv,_ZTv0_n12_N7ee312223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee312223fooEv,_ZThn16_N7ee312223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee31222[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31222[0]),
+ (VTBL_ENTRY)&_ZN7ee312223fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31222[0]),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee312223fooEv,_ZTv0_n12_N7ee312223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee31222[];
+static VTBL_ENTRY _tg__ZTV6dd1222__7ee31222[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1222[0]),
+};
+extern void _ZN5cc2223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV5cc222__6dd1222__7ee31222[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1222[0]),
+ (VTBL_ENTRY)&_ZN5cc2223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee31222[] = {
+ {&(_ZTV7ee31222[4]), 4,14},
+ {&(_ZTV7ee31222[8]), 8,14},
+ {&(_ZTV7ee31222[12]), 12,14},
+ {&(_tg__ZTV6dd1222__7ee31222[3]), 3,3},
+ {&(_tg__ZTV5cc222__6dd1222__7ee31222[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee31222[];
+extern VTBL_ENTRY _ZTV7ee31222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31222[];
+static VTBL_ENTRY alt_thunk_names966[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee312223fooEv,_ZTv0_n12_N7ee312223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee312223fooEv,_ZThn16_N7ee312223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31222 = { "ee31222", // class name
+ bases_ee31222, 4,
+ &(vtc_ee31222[0]), // expected_vtbl_contents
+ &(vtt_ee31222[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee31222),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31222),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31222),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names966,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee41222 : dd1222 {
+ int e;
+ virtual void bar(); // _ZN7ee412223barEv
+ ~ee41222(); // tgen
+ ee41222(); // tgen
+};
+//SIG(1 ee41222) C1{ BC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee41222 ::bar(){vfunc_called(this, "_ZN7ee412223barEv");}
+ee41222 ::~ee41222(){ note_dtor("ee41222", this);} // tgen
+ee41222 ::ee41222(){ note_ctor("ee41222", this);} // tgen
+
+static void Test_ee41222()
+{
+ extern Class_Descriptor cd_ee41222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee41222, buf);
+ ee41222 *dp, &lv = *(dp=new (buf) ee41222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee41222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41222)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc222*), ABISELECT(16,12), "ee41222");
+ check_base_class_offset(lv, (bb22*)(cc222*), ABISELECT(16,12), "ee41222");
+ check_base_class_offset(lv, (cc222*)(dd1222*), ABISELECT(16,12), "ee41222");
+ check_base_class_offset(lv, (dd1222*), 0, "ee41222");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41222.e");
+ test_class_info(&lv, &cd_ee41222);
+ dp->~ee41222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41222(Test_ee41222, "ee41222", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee41222C1Ev();
+extern void _ZN7ee41222D1Ev();
+Name_Map name_map_ee41222[] = {
+ NSPAIR(_ZN7ee41222C1Ev),
+ NSPAIR(_ZN7ee41222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc222;
+extern VTBL_ENTRY _ZTI5cc222[];
+extern VTBL_ENTRY _ZTV5cc222[];
+extern Class_Descriptor cd_dd1222;
+extern VTBL_ENTRY _ZTI6dd1222[];
+extern VTBL_ENTRY _ZTV6dd1222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1222[];
+static Base_Class bases_ee41222[] = {
+ // 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_bb22, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc222, 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_dd1222, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41222[];
+extern void _ZN7ee412223barEv();
+extern void _ZN5cc2223fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee412223barEv,_ZTv0_n16_N7ee412223barEv)();
+extern void ABISELECT(_ZThn16_N7ee412223barEv,_ZThn12_N7ee412223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee41222[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41222[0]),
+ (VTBL_ENTRY)&_ZN7ee412223barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41222[0]),
+ (VTBL_ENTRY)&_ZN5cc2223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee412223barEv,_ZTv0_n16_N7ee412223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee41222[];
+static VTBL_ENTRY _tg__ZTV6dd1222__7ee41222[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1222[0]),
+};
+extern void _ZN5cc2223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV5cc222__6dd1222__7ee41222[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1222[0]),
+ (VTBL_ENTRY)&_ZN5cc2223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee41222[] = {
+ {&(_ZTV7ee41222[3]), 3,10},
+ {&(_tg__ZTV6dd1222__7ee41222[3]), 3,3},
+ {&(_tg__ZTV5cc222__6dd1222__7ee41222[4]), 4,6},
+ {&(_ZTV7ee41222[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee41222[];
+extern VTBL_ENTRY _ZTV7ee41222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41222[];
+static VTBL_ENTRY alt_thunk_names967[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee412223barEv,_ZTv0_n16_N7ee412223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee412223barEv,_ZThn12_N7ee412223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41222 = { "ee41222", // class name
+ bases_ee41222, 4,
+ &(vtc_ee41222[0]), // expected_vtbl_contents
+ &(vtt_ee41222[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee41222),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41222),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41222),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names967,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee51222 : virtual dd1222 {
+ int e;
+ virtual void bar(); // _ZN7ee512223barEv
+ ~ee51222(); // tgen
+ ee51222(); // tgen
+};
+//SIG(1 ee51222) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee51222 ::bar(){vfunc_called(this, "_ZN7ee512223barEv");}
+ee51222 ::~ee51222(){ note_dtor("ee51222", this);} // tgen
+ee51222 ::ee51222(){ note_ctor("ee51222", this);} // tgen
+
+static void Test_ee51222()
+{
+ extern Class_Descriptor cd_ee51222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee51222, buf);
+ ee51222 *dp, &lv = *(dp=new (buf) ee51222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee51222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51222)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc222*), ABISELECT(32,16), "ee51222");
+ check_base_class_offset(lv, (bb22*)(cc222*), ABISELECT(32,16), "ee51222");
+ check_base_class_offset(lv, (cc222*)(dd1222*), ABISELECT(32,16), "ee51222");
+ check_base_class_offset(lv, (dd1222*), ABISELECT(16,8), "ee51222");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51222.e");
+ test_class_info(&lv, &cd_ee51222);
+ dp->~ee51222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51222(Test_ee51222, "ee51222", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee51222C1Ev();
+extern void _ZN7ee51222D1Ev();
+Name_Map name_map_ee51222[] = {
+ NSPAIR(_ZN7ee51222C1Ev),
+ NSPAIR(_ZN7ee51222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc222;
+extern VTBL_ENTRY _ZTI5cc222[];
+extern VTBL_ENTRY _ZTV5cc222[];
+extern Class_Descriptor cd_dd1222;
+extern VTBL_ENTRY _ZTI6dd1222[];
+extern VTBL_ENTRY _ZTV6dd1222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1222[];
+static Base_Class bases_ee51222[] = {
+ // 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_bb22, 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_cc222, 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_dd1222, 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 _ZTI7ee51222[];
+extern void _ZN7ee512223barEv();
+extern void _ZN5cc2223fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee512223barEv,_ZTv0_n16_N7ee512223barEv)();
+extern void ABISELECT(_ZThn32_N7ee512223barEv,_ZThn16_N7ee512223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee51222[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51222[0]),
+ (VTBL_ENTRY)&_ZN7ee512223barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51222[0]),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51222[0]),
+ (VTBL_ENTRY)&_ZN5cc2223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee512223barEv,_ZTv0_n16_N7ee512223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee51222[];
+static VTBL_ENTRY _tg__ZTV6dd1222__7ee51222[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1222[0]),
+};
+extern void _ZN5cc2223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV5cc222__6dd1222__7ee51222[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1222[0]),
+ (VTBL_ENTRY)&_ZN5cc2223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee51222[] = {
+ {&(_ZTV7ee51222[4]), 4,14},
+ {&(_ZTV7ee51222[8]), 8,14},
+ {&(_ZTV7ee51222[12]), 12,14},
+ {&(_tg__ZTV6dd1222__7ee51222[3]), 3,3},
+ {&(_tg__ZTV5cc222__6dd1222__7ee51222[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee51222[];
+extern VTBL_ENTRY _ZTV7ee51222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51222[];
+static VTBL_ENTRY alt_thunk_names968[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee512223barEv,_ZTv0_n16_N7ee512223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee512223barEv,_ZThn16_N7ee512223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51222 = { "ee51222", // class name
+ bases_ee51222, 4,
+ &(vtc_ee51222[0]), // expected_vtbl_contents
+ &(vtt_ee51222[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee51222),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51222),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51222),5, //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 ee61222 : dd1222 {
+ int e;
+ virtual void foo(); // _ZN7ee612223fooEv
+ virtual void bar(); // _ZN7ee612223barEv
+ ~ee61222(); // tgen
+ ee61222(); // tgen
+};
+//SIG(1 ee61222) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee61222 ::foo(){vfunc_called(this, "_ZN7ee612223fooEv");}
+void ee61222 ::bar(){vfunc_called(this, "_ZN7ee612223barEv");}
+ee61222 ::~ee61222(){ note_dtor("ee61222", this);} // tgen
+ee61222 ::ee61222(){ note_ctor("ee61222", this);} // tgen
+
+static void Test_ee61222()
+{
+ extern Class_Descriptor cd_ee61222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee61222, buf);
+ ee61222 *dp, &lv = *(dp=new (buf) ee61222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee61222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61222)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc222*), ABISELECT(16,12), "ee61222");
+ check_base_class_offset(lv, (bb22*)(cc222*), ABISELECT(16,12), "ee61222");
+ check_base_class_offset(lv, (cc222*)(dd1222*), ABISELECT(16,12), "ee61222");
+ check_base_class_offset(lv, (dd1222*), 0, "ee61222");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61222.e");
+ test_class_info(&lv, &cd_ee61222);
+ dp->~ee61222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61222(Test_ee61222, "ee61222", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee61222C1Ev();
+extern void _ZN7ee61222D1Ev();
+Name_Map name_map_ee61222[] = {
+ NSPAIR(_ZN7ee61222C1Ev),
+ NSPAIR(_ZN7ee61222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc222;
+extern VTBL_ENTRY _ZTI5cc222[];
+extern VTBL_ENTRY _ZTV5cc222[];
+extern Class_Descriptor cd_dd1222;
+extern VTBL_ENTRY _ZTI6dd1222[];
+extern VTBL_ENTRY _ZTV6dd1222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1222[];
+static Base_Class bases_ee61222[] = {
+ // 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_bb22, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc222, 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_dd1222, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61222[];
+extern void _ZN7ee612223fooEv();
+extern void _ZN7ee612223barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee612223fooEv,_ZTv0_n12_N7ee612223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee612223fooEv,_ZThn12_N7ee612223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee612223barEv,_ZTv0_n16_N7ee612223barEv)();
+extern void ABISELECT(_ZThn16_N7ee612223barEv,_ZThn12_N7ee612223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61222[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61222[0]),
+ (VTBL_ENTRY)&_ZN7ee612223fooEv,
+ (VTBL_ENTRY)&_ZN7ee612223barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee612223fooEv,_ZTv0_n12_N7ee612223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee612223barEv,_ZTv0_n16_N7ee612223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee61222[];
+static VTBL_ENTRY _tg__ZTV6dd1222__7ee61222[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1222[0]),
+};
+extern void _ZN5cc2223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV5cc222__6dd1222__7ee61222[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1222[0]),
+ (VTBL_ENTRY)&_ZN5cc2223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee61222[] = {
+ {&(_ZTV7ee61222[3]), 3,11},
+ {&(_tg__ZTV6dd1222__7ee61222[3]), 3,3},
+ {&(_tg__ZTV5cc222__6dd1222__7ee61222[4]), 4,6},
+ {&(_ZTV7ee61222[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee61222[];
+extern VTBL_ENTRY _ZTV7ee61222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61222[];
+static VTBL_ENTRY alt_thunk_names969[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee612223barEv,_ZTv0_n16_N7ee612223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee612223barEv,_ZThn12_N7ee612223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee612223fooEv,_ZTv0_n12_N7ee612223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee612223fooEv,_ZThn12_N7ee612223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61222 = { "ee61222", // class name
+ bases_ee61222, 4,
+ &(vtc_ee61222[0]), // expected_vtbl_contents
+ &(vtt_ee61222[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee61222),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61222),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61222),4, //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 ee71222 : virtual dd1222 {
+ int e;
+ virtual void foo(); // _ZN7ee712223fooEv
+ virtual void bar(); // _ZN7ee712223barEv
+ ~ee71222(); // tgen
+ ee71222(); // tgen
+};
+//SIG(1 ee71222) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee71222 ::foo(){vfunc_called(this, "_ZN7ee712223fooEv");}
+void ee71222 ::bar(){vfunc_called(this, "_ZN7ee712223barEv");}
+ee71222 ::~ee71222(){ note_dtor("ee71222", this);} // tgen
+ee71222 ::ee71222(){ note_ctor("ee71222", this);} // tgen
+
+static void Test_ee71222()
+{
+ extern Class_Descriptor cd_ee71222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee71222, buf);
+ ee71222 *dp, &lv = *(dp=new (buf) ee71222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee71222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71222)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc222*), ABISELECT(32,16), "ee71222");
+ check_base_class_offset(lv, (bb22*)(cc222*), ABISELECT(32,16), "ee71222");
+ check_base_class_offset(lv, (cc222*)(dd1222*), ABISELECT(32,16), "ee71222");
+ check_base_class_offset(lv, (dd1222*), ABISELECT(16,8), "ee71222");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71222.e");
+ test_class_info(&lv, &cd_ee71222);
+ dp->~ee71222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71222(Test_ee71222, "ee71222", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee71222C1Ev();
+extern void _ZN7ee71222D1Ev();
+Name_Map name_map_ee71222[] = {
+ NSPAIR(_ZN7ee71222C1Ev),
+ NSPAIR(_ZN7ee71222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc222;
+extern VTBL_ENTRY _ZTI5cc222[];
+extern VTBL_ENTRY _ZTV5cc222[];
+extern Class_Descriptor cd_dd1222;
+extern VTBL_ENTRY _ZTI6dd1222[];
+extern VTBL_ENTRY _ZTV6dd1222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1222[];
+static Base_Class bases_ee71222[] = {
+ // 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_bb22, 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_cc222, 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_dd1222, 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 _ZTI7ee71222[];
+extern void _ZN7ee712223fooEv();
+extern void _ZN7ee712223barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee712223fooEv,_ZTv0_n12_N7ee712223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee712223fooEv,_ZThn16_N7ee712223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee712223barEv,_ZTv0_n16_N7ee712223barEv)();
+extern void ABISELECT(_ZThn32_N7ee712223barEv,_ZThn16_N7ee712223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71222[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71222[0]),
+ (VTBL_ENTRY)&_ZN7ee712223fooEv,
+ (VTBL_ENTRY)&_ZN7ee712223barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71222[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee712223fooEv,_ZTv0_n12_N7ee712223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee712223barEv,_ZTv0_n16_N7ee712223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee71222[];
+static VTBL_ENTRY _tg__ZTV6dd1222__7ee71222[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1222[0]),
+};
+extern void _ZN5cc2223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV5cc222__6dd1222__7ee71222[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1222[0]),
+ (VTBL_ENTRY)&_ZN5cc2223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee71222[] = {
+ {&(_ZTV7ee71222[4]), 4,15},
+ {&(_ZTV7ee71222[9]), 9,15},
+ {&(_ZTV7ee71222[13]), 13,15},
+ {&(_tg__ZTV6dd1222__7ee71222[3]), 3,3},
+ {&(_tg__ZTV5cc222__6dd1222__7ee71222[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee71222[];
+extern VTBL_ENTRY _ZTV7ee71222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71222[];
+static VTBL_ENTRY alt_thunk_names970[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee712223barEv,_ZTv0_n16_N7ee712223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee712223barEv,_ZThn16_N7ee712223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee712223fooEv,_ZTv0_n12_N7ee712223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee712223fooEv,_ZThn16_N7ee712223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71222 = { "ee71222", // class name
+ bases_ee71222, 4,
+ &(vtc_ee71222[0]), // expected_vtbl_contents
+ &(vtt_ee71222[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee71222),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71222),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71222),5, //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 dd2222 : cc222 {
+ int d;
+ virtual void foo(); // _ZN6dd22223fooEv
+ ~dd2222(); // tgen
+ dd2222(); // tgen
+};
+//SIG(-1 dd2222) C1{ BC2{ BC3{ BC4{ v1 v2 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void dd2222 ::foo(){vfunc_called(this, "_ZN6dd22223fooEv");}
+dd2222 ::~dd2222(){ note_dtor("dd2222", this);} // tgen
+dd2222 ::dd2222(){ note_ctor("dd2222", this);} // tgen
+
+static void Test_dd2222()
+{
+ extern Class_Descriptor cd_dd2222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd2222, buf);
+ dd2222 *dp, &lv = *(dp=new (buf) dd2222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd2222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2222)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc222*), 0, "dd2222");
+ check_base_class_offset(lv, (bb22*)(cc222*), 0, "dd2222");
+ check_base_class_offset(lv, (cc222*), 0, "dd2222");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd2222.d");
+ test_class_info(&lv, &cd_dd2222);
+ dp->~dd2222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2222(Test_dd2222, "dd2222", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd2222C1Ev();
+extern void _ZN6dd2222D1Ev();
+Name_Map name_map_dd2222[] = {
+ NSPAIR(_ZN6dd2222C1Ev),
+ NSPAIR(_ZN6dd2222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc222;
+extern VTBL_ENTRY _ZTI5cc222[];
+extern VTBL_ENTRY _ZTV5cc222[];
+static Base_Class bases_dd2222[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc222, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI6dd2222[];
+extern void _ZN6dd22223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_dd2222[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2222[0]),
+ (VTBL_ENTRY)&_ZN6dd22223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTI6dd2222[];
+extern VTBL_ENTRY _ZTV6dd2222[];
+Class_Descriptor cd_dd2222 = { "dd2222", // class name
+ bases_dd2222, 3,
+ &(vtc_dd2222[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd2222),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2222),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 ee02222 : dd2222 {
+ int e;
+ ~ee02222(); // tgen
+ ee02222(); // tgen
+};
+//SIG(1 ee02222) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee02222 ::~ee02222(){ note_dtor("ee02222", this);} // tgen
+ee02222 ::ee02222(){ note_ctor("ee02222", this);} // tgen
+
+static void Test_ee02222()
+{
+ extern Class_Descriptor cd_ee02222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee02222, buf);
+ ee02222 *dp, &lv = *(dp=new (buf) ee02222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee02222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02222)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc222*)(dd2222*), 0, "ee02222");
+ check_base_class_offset(lv, (bb22*)(cc222*)(dd2222*), 0, "ee02222");
+ check_base_class_offset(lv, (cc222*)(dd2222*), 0, "ee02222");
+ check_base_class_offset(lv, (dd2222*), 0, "ee02222");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee02222.e");
+ test_class_info(&lv, &cd_ee02222);
+ dp->~ee02222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02222(Test_ee02222, "ee02222", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee02222C1Ev();
+extern void _ZN7ee02222D1Ev();
+Name_Map name_map_ee02222[] = {
+ NSPAIR(_ZN7ee02222C1Ev),
+ NSPAIR(_ZN7ee02222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc222;
+extern VTBL_ENTRY _ZTI5cc222[];
+extern VTBL_ENTRY _ZTV5cc222[];
+extern Class_Descriptor cd_dd2222;
+extern VTBL_ENTRY _ZTI6dd2222[];
+extern VTBL_ENTRY _ZTV6dd2222[];
+static Base_Class bases_ee02222[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc222, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2222, 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 _ZTI7ee02222[];
+extern void _ZN6dd22223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee02222[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02222[0]),
+ (VTBL_ENTRY)&_ZN6dd22223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTI7ee02222[];
+extern VTBL_ENTRY _ZTV7ee02222[];
+Class_Descriptor cd_ee02222 = { "ee02222", // class name
+ bases_ee02222, 4,
+ &(vtc_ee02222[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee02222),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02222),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 ee12222 : virtual dd2222 {
+ int e;
+ ~ee12222(); // tgen
+ ee12222(); // tgen
+};
+//SIG(1 ee12222) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee12222 ::~ee12222(){ note_dtor("ee12222", this);} // tgen
+ee12222 ::ee12222(){ note_ctor("ee12222", this);} // tgen
+
+static void Test_ee12222()
+{
+ extern Class_Descriptor cd_ee12222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee12222, buf);
+ ee12222 *dp, &lv = *(dp=new (buf) ee12222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee12222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12222)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc222*)(dd2222*), ABISELECT(16,8), "ee12222");
+ check_base_class_offset(lv, (bb22*)(cc222*)(dd2222*), ABISELECT(16,8), "ee12222");
+ check_base_class_offset(lv, (cc222*)(dd2222*), ABISELECT(16,8), "ee12222");
+ check_base_class_offset(lv, (dd2222*), ABISELECT(16,8), "ee12222");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12222.e");
+ test_class_info(&lv, &cd_ee12222);
+ dp->~ee12222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12222(Test_ee12222, "ee12222", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee12222C1Ev();
+extern void _ZN7ee12222D1Ev();
+Name_Map name_map_ee12222[] = {
+ NSPAIR(_ZN7ee12222C1Ev),
+ NSPAIR(_ZN7ee12222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc222;
+extern VTBL_ENTRY _ZTI5cc222[];
+extern VTBL_ENTRY _ZTV5cc222[];
+extern Class_Descriptor cd_dd2222;
+extern VTBL_ENTRY _ZTI6dd2222[];
+extern VTBL_ENTRY _ZTV6dd2222[];
+static Base_Class bases_ee12222[] = {
+ // 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_bb22, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc222, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2222, 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 _ZTI7ee12222[];
+extern void _ZN6dd22223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee12222[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12222[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12222[0]),
+ (VTBL_ENTRY)&_ZN6dd22223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee12222[];
+static VTT_ENTRY vtt_ee12222[] = {
+ {&(_ZTV7ee12222[3]), 3,9},
+ {&(_ZTV7ee12222[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee12222[];
+extern VTBL_ENTRY _ZTV7ee12222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12222[];
+Class_Descriptor cd_ee12222 = { "ee12222", // class name
+ bases_ee12222, 4,
+ &(vtc_ee12222[0]), // expected_vtbl_contents
+ &(vtt_ee12222[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee12222),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12222),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12222),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 ee22222 : dd2222 {
+ int e;
+ virtual void foo(); // _ZN7ee222223fooEv
+ ~ee22222(); // tgen
+ ee22222(); // tgen
+};
+//SIG(1 ee22222) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee22222 ::foo(){vfunc_called(this, "_ZN7ee222223fooEv");}
+ee22222 ::~ee22222(){ note_dtor("ee22222", this);} // tgen
+ee22222 ::ee22222(){ note_ctor("ee22222", this);} // tgen
+
+static void Test_ee22222()
+{
+ extern Class_Descriptor cd_ee22222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee22222, buf);
+ ee22222 *dp, &lv = *(dp=new (buf) ee22222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee22222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22222)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc222*)(dd2222*), 0, "ee22222");
+ check_base_class_offset(lv, (bb22*)(cc222*)(dd2222*), 0, "ee22222");
+ check_base_class_offset(lv, (cc222*)(dd2222*), 0, "ee22222");
+ check_base_class_offset(lv, (dd2222*), 0, "ee22222");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee22222.e");
+ test_class_info(&lv, &cd_ee22222);
+ dp->~ee22222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22222(Test_ee22222, "ee22222", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee22222C1Ev();
+extern void _ZN7ee22222D1Ev();
+Name_Map name_map_ee22222[] = {
+ NSPAIR(_ZN7ee22222C1Ev),
+ NSPAIR(_ZN7ee22222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc222;
+extern VTBL_ENTRY _ZTI5cc222[];
+extern VTBL_ENTRY _ZTV5cc222[];
+extern Class_Descriptor cd_dd2222;
+extern VTBL_ENTRY _ZTI6dd2222[];
+extern VTBL_ENTRY _ZTV6dd2222[];
+static Base_Class bases_ee22222[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc222, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2222, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee22222[];
+extern void _ZN7ee222223fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee22222[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22222[0]),
+ (VTBL_ENTRY)&_ZN7ee222223fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTI7ee22222[];
+extern VTBL_ENTRY _ZTV7ee22222[];
+Class_Descriptor cd_ee22222 = { "ee22222", // class name
+ bases_ee22222, 4,
+ &(vtc_ee22222[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee22222),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22222),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 ee32222 : virtual dd2222 {
+ int e;
+ virtual void foo(); // _ZN7ee322223fooEv
+ ~ee32222(); // tgen
+ ee32222(); // tgen
+};
+//SIG(1 ee32222) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee32222 ::foo(){vfunc_called(this, "_ZN7ee322223fooEv");}
+ee32222 ::~ee32222(){ note_dtor("ee32222", this);} // tgen
+ee32222 ::ee32222(){ note_ctor("ee32222", this);} // tgen
+
+static void Test_ee32222()
+{
+ extern Class_Descriptor cd_ee32222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee32222, buf);
+ ee32222 *dp, &lv = *(dp=new (buf) ee32222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee32222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32222)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc222*)(dd2222*), ABISELECT(16,8), "ee32222");
+ check_base_class_offset(lv, (bb22*)(cc222*)(dd2222*), ABISELECT(16,8), "ee32222");
+ check_base_class_offset(lv, (cc222*)(dd2222*), ABISELECT(16,8), "ee32222");
+ check_base_class_offset(lv, (dd2222*), ABISELECT(16,8), "ee32222");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32222.e");
+ test_class_info(&lv, &cd_ee32222);
+ dp->~ee32222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32222(Test_ee32222, "ee32222", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee32222C1Ev();
+extern void _ZN7ee32222D1Ev();
+Name_Map name_map_ee32222[] = {
+ NSPAIR(_ZN7ee32222C1Ev),
+ NSPAIR(_ZN7ee32222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc222;
+extern VTBL_ENTRY _ZTI5cc222[];
+extern VTBL_ENTRY _ZTV5cc222[];
+extern Class_Descriptor cd_dd2222;
+extern VTBL_ENTRY _ZTI6dd2222[];
+extern VTBL_ENTRY _ZTV6dd2222[];
+static Base_Class bases_ee32222[] = {
+ // 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_bb22, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc222, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2222, 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 _ZTI7ee32222[];
+extern void _ZN7ee322223fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee322223fooEv,_ZTv0_n12_N7ee322223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee322223fooEv,_ZThn8_N7ee322223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee32222[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32222[0]),
+ (VTBL_ENTRY)&_ZN7ee322223fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee322223fooEv,_ZTv0_n12_N7ee322223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee32222[];
+static VTT_ENTRY vtt_ee32222[] = {
+ {&(_ZTV7ee32222[3]), 3,10},
+ {&(_ZTV7ee32222[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee32222[];
+extern VTBL_ENTRY _ZTV7ee32222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32222[];
+static VTBL_ENTRY alt_thunk_names971[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee322223fooEv,_ZTv0_n12_N7ee322223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee322223fooEv,_ZThn8_N7ee322223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32222 = { "ee32222", // class name
+ bases_ee32222, 4,
+ &(vtc_ee32222[0]), // expected_vtbl_contents
+ &(vtt_ee32222[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee32222),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32222),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32222),2, //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 ee42222 : dd2222 {
+ int e;
+ virtual void bar(); // _ZN7ee422223barEv
+ ~ee42222(); // tgen
+ ee42222(); // tgen
+};
+//SIG(1 ee42222) C1{ BC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee42222 ::bar(){vfunc_called(this, "_ZN7ee422223barEv");}
+ee42222 ::~ee42222(){ note_dtor("ee42222", this);} // tgen
+ee42222 ::ee42222(){ note_ctor("ee42222", this);} // tgen
+
+static void Test_ee42222()
+{
+ extern Class_Descriptor cd_ee42222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee42222, buf);
+ ee42222 *dp, &lv = *(dp=new (buf) ee42222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee42222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42222)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc222*)(dd2222*), 0, "ee42222");
+ check_base_class_offset(lv, (bb22*)(cc222*)(dd2222*), 0, "ee42222");
+ check_base_class_offset(lv, (cc222*)(dd2222*), 0, "ee42222");
+ check_base_class_offset(lv, (dd2222*), 0, "ee42222");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee42222.e");
+ test_class_info(&lv, &cd_ee42222);
+ dp->~ee42222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42222(Test_ee42222, "ee42222", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee42222C1Ev();
+extern void _ZN7ee42222D1Ev();
+Name_Map name_map_ee42222[] = {
+ NSPAIR(_ZN7ee42222C1Ev),
+ NSPAIR(_ZN7ee42222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc222;
+extern VTBL_ENTRY _ZTI5cc222[];
+extern VTBL_ENTRY _ZTV5cc222[];
+extern Class_Descriptor cd_dd2222;
+extern VTBL_ENTRY _ZTI6dd2222[];
+extern VTBL_ENTRY _ZTV6dd2222[];
+static Base_Class bases_ee42222[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc222, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2222, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee42222[];
+extern void _ZN6dd22223fooEv();
+extern void _ZN7ee422223barEv();
+static VTBL_ENTRY vtc_ee42222[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42222[0]),
+ (VTBL_ENTRY)&_ZN6dd22223fooEv,
+ (VTBL_ENTRY)&_ZN7ee422223barEv,
+};
+extern VTBL_ENTRY _ZTI7ee42222[];
+extern VTBL_ENTRY _ZTV7ee42222[];
+Class_Descriptor cd_ee42222 = { "ee42222", // class name
+ bases_ee42222, 4,
+ &(vtc_ee42222[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee42222),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42222),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 ee52222 : virtual dd2222 {
+ int e;
+ virtual void bar(); // _ZN7ee522223barEv
+ ~ee52222(); // tgen
+ ee52222(); // tgen
+};
+//SIG(1 ee52222) C1{ VBC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee52222 ::bar(){vfunc_called(this, "_ZN7ee522223barEv");}
+ee52222 ::~ee52222(){ note_dtor("ee52222", this);} // tgen
+ee52222 ::ee52222(){ note_ctor("ee52222", this);} // tgen
+
+static void Test_ee52222()
+{
+ extern Class_Descriptor cd_ee52222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee52222, buf);
+ ee52222 *dp, &lv = *(dp=new (buf) ee52222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee52222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52222)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc222*)(dd2222*), ABISELECT(16,8), "ee52222");
+ check_base_class_offset(lv, (bb22*)(cc222*)(dd2222*), ABISELECT(16,8), "ee52222");
+ check_base_class_offset(lv, (cc222*)(dd2222*), ABISELECT(16,8), "ee52222");
+ check_base_class_offset(lv, (dd2222*), ABISELECT(16,8), "ee52222");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52222.e");
+ test_class_info(&lv, &cd_ee52222);
+ dp->~ee52222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52222(Test_ee52222, "ee52222", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee52222C1Ev();
+extern void _ZN7ee52222D1Ev();
+Name_Map name_map_ee52222[] = {
+ NSPAIR(_ZN7ee52222C1Ev),
+ NSPAIR(_ZN7ee52222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc222;
+extern VTBL_ENTRY _ZTI5cc222[];
+extern VTBL_ENTRY _ZTV5cc222[];
+extern Class_Descriptor cd_dd2222;
+extern VTBL_ENTRY _ZTI6dd2222[];
+extern VTBL_ENTRY _ZTV6dd2222[];
+static Base_Class bases_ee52222[] = {
+ // 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_bb22, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc222, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2222, 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 _ZTI7ee52222[];
+extern void _ZN7ee522223barEv();
+extern void _ZN6dd22223fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee522223barEv,_ZTv0_n16_N7ee522223barEv)();
+extern void ABISELECT(_ZThn16_N7ee522223barEv,_ZThn8_N7ee522223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee52222[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52222[0]),
+ (VTBL_ENTRY)&_ZN7ee522223barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52222[0]),
+ (VTBL_ENTRY)&_ZN6dd22223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee522223barEv,_ZTv0_n16_N7ee522223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee52222[];
+static VTT_ENTRY vtt_ee52222[] = {
+ {&(_ZTV7ee52222[3]), 3,10},
+ {&(_ZTV7ee52222[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee52222[];
+extern VTBL_ENTRY _ZTV7ee52222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52222[];
+static VTBL_ENTRY alt_thunk_names972[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee522223barEv,_ZTv0_n16_N7ee522223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee522223barEv,_ZThn8_N7ee522223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52222 = { "ee52222", // class name
+ bases_ee52222, 4,
+ &(vtc_ee52222[0]), // expected_vtbl_contents
+ &(vtt_ee52222[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee52222),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52222),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52222),2, //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 ee62222 : dd2222 {
+ int e;
+ virtual void foo(); // _ZN7ee622223fooEv
+ virtual void bar(); // _ZN7ee622223barEv
+ ~ee62222(); // tgen
+ ee62222(); // tgen
+};
+//SIG(1 ee62222) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62222 ::foo(){vfunc_called(this, "_ZN7ee622223fooEv");}
+void ee62222 ::bar(){vfunc_called(this, "_ZN7ee622223barEv");}
+ee62222 ::~ee62222(){ note_dtor("ee62222", this);} // tgen
+ee62222 ::ee62222(){ note_ctor("ee62222", this);} // tgen
+
+static void Test_ee62222()
+{
+ extern Class_Descriptor cd_ee62222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee62222, buf);
+ ee62222 *dp, &lv = *(dp=new (buf) ee62222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee62222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62222)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc222*)(dd2222*), 0, "ee62222");
+ check_base_class_offset(lv, (bb22*)(cc222*)(dd2222*), 0, "ee62222");
+ check_base_class_offset(lv, (cc222*)(dd2222*), 0, "ee62222");
+ check_base_class_offset(lv, (dd2222*), 0, "ee62222");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee62222.e");
+ test_class_info(&lv, &cd_ee62222);
+ dp->~ee62222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62222(Test_ee62222, "ee62222", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee62222C1Ev();
+extern void _ZN7ee62222D1Ev();
+Name_Map name_map_ee62222[] = {
+ NSPAIR(_ZN7ee62222C1Ev),
+ NSPAIR(_ZN7ee62222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc222;
+extern VTBL_ENTRY _ZTI5cc222[];
+extern VTBL_ENTRY _ZTV5cc222[];
+extern Class_Descriptor cd_dd2222;
+extern VTBL_ENTRY _ZTI6dd2222[];
+extern VTBL_ENTRY _ZTV6dd2222[];
+static Base_Class bases_ee62222[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc222, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2222, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee62222[];
+extern void _ZN7ee622223fooEv();
+extern void _ZN7ee622223barEv();
+static VTBL_ENTRY vtc_ee62222[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62222[0]),
+ (VTBL_ENTRY)&_ZN7ee622223fooEv,
+ (VTBL_ENTRY)&_ZN7ee622223barEv,
+};
+extern VTBL_ENTRY _ZTI7ee62222[];
+extern VTBL_ENTRY _ZTV7ee62222[];
+Class_Descriptor cd_ee62222 = { "ee62222", // class name
+ bases_ee62222, 4,
+ &(vtc_ee62222[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee62222),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62222),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 ee72222 : virtual dd2222 {
+ int e;
+ virtual void foo(); // _ZN7ee722223fooEv
+ virtual void bar(); // _ZN7ee722223barEv
+ ~ee72222(); // tgen
+ ee72222(); // tgen
+};
+//SIG(1 ee72222) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72222 ::foo(){vfunc_called(this, "_ZN7ee722223fooEv");}
+void ee72222 ::bar(){vfunc_called(this, "_ZN7ee722223barEv");}
+ee72222 ::~ee72222(){ note_dtor("ee72222", this);} // tgen
+ee72222 ::ee72222(){ note_ctor("ee72222", this);} // tgen
+
+static void Test_ee72222()
+{
+ extern Class_Descriptor cd_ee72222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee72222, buf);
+ ee72222 *dp, &lv = *(dp=new (buf) ee72222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee72222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72222)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc222*)(dd2222*), ABISELECT(16,8), "ee72222");
+ check_base_class_offset(lv, (bb22*)(cc222*)(dd2222*), ABISELECT(16,8), "ee72222");
+ check_base_class_offset(lv, (cc222*)(dd2222*), ABISELECT(16,8), "ee72222");
+ check_base_class_offset(lv, (dd2222*), ABISELECT(16,8), "ee72222");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72222.e");
+ test_class_info(&lv, &cd_ee72222);
+ dp->~ee72222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72222(Test_ee72222, "ee72222", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee72222C1Ev();
+extern void _ZN7ee72222D1Ev();
+Name_Map name_map_ee72222[] = {
+ NSPAIR(_ZN7ee72222C1Ev),
+ NSPAIR(_ZN7ee72222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc222;
+extern VTBL_ENTRY _ZTI5cc222[];
+extern VTBL_ENTRY _ZTV5cc222[];
+extern Class_Descriptor cd_dd2222;
+extern VTBL_ENTRY _ZTI6dd2222[];
+extern VTBL_ENTRY _ZTV6dd2222[];
+static Base_Class bases_ee72222[] = {
+ // 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_bb22, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc222, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2222, 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 _ZTI7ee72222[];
+extern void _ZN7ee722223fooEv();
+extern void _ZN7ee722223barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee722223fooEv,_ZTv0_n12_N7ee722223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee722223fooEv,_ZThn8_N7ee722223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee722223barEv,_ZTv0_n16_N7ee722223barEv)();
+extern void ABISELECT(_ZThn16_N7ee722223barEv,_ZThn8_N7ee722223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72222[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72222[0]),
+ (VTBL_ENTRY)&_ZN7ee722223fooEv,
+ (VTBL_ENTRY)&_ZN7ee722223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee722223fooEv,_ZTv0_n12_N7ee722223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee722223barEv,_ZTv0_n16_N7ee722223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee72222[];
+static VTT_ENTRY vtt_ee72222[] = {
+ {&(_ZTV7ee72222[3]), 3,11},
+ {&(_ZTV7ee72222[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee72222[];
+extern VTBL_ENTRY _ZTV7ee72222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72222[];
+static VTBL_ENTRY alt_thunk_names973[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee722223barEv,_ZTv0_n16_N7ee722223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee722223barEv,_ZThn8_N7ee722223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee722223fooEv,_ZTv0_n12_N7ee722223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee722223fooEv,_ZThn8_N7ee722223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72222 = { "ee72222", // class name
+ bases_ee72222, 4,
+ &(vtc_ee72222[0]), // expected_vtbl_contents
+ &(vtt_ee72222[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee72222),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72222),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72222),2, //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 dd3222 : virtual cc222 {
+ int d;
+ virtual void foo(); // _ZN6dd32223fooEv
+ ~dd3222(); // tgen
+ dd3222(); // tgen
+};
+//SIG(-1 dd3222) C1{ VBC2{ BC3{ BC4{ v1 v2 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void dd3222 ::foo(){vfunc_called(this, "_ZN6dd32223fooEv");}
+dd3222 ::~dd3222(){ note_dtor("dd3222", this);} // tgen
+dd3222 ::dd3222(){ note_ctor("dd3222", this);} // tgen
+
+static void Test_dd3222()
+{
+ extern Class_Descriptor cd_dd3222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd3222, buf);
+ dd3222 *dp, &lv = *(dp=new (buf) dd3222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd3222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3222)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc222*), ABISELECT(16,8), "dd3222");
+ check_base_class_offset(lv, (bb22*)(cc222*), ABISELECT(16,8), "dd3222");
+ check_base_class_offset(lv, (cc222*), ABISELECT(16,8), "dd3222");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3222.d");
+ test_class_info(&lv, &cd_dd3222);
+ dp->~dd3222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3222(Test_dd3222, "dd3222", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd3222C1Ev();
+extern void _ZN6dd3222D1Ev();
+Name_Map name_map_dd3222[] = {
+ NSPAIR(_ZN6dd3222C1Ev),
+ NSPAIR(_ZN6dd3222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc222;
+extern VTBL_ENTRY _ZTI5cc222[];
+extern VTBL_ENTRY _ZTV5cc222[];
+static Base_Class bases_dd3222[] = {
+ // 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_bb22, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc222, 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 _ZTI6dd3222[];
+extern void _ZN6dd32223fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd32223fooEv,_ZTv0_n12_N6dd32223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32223fooEv,_ZThn8_N6dd32223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_dd3222[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3222[0]),
+ (VTBL_ENTRY)&_ZN6dd32223fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32223fooEv,_ZTv0_n12_N6dd32223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV6dd3222[];
+static VTT_ENTRY vtt_dd3222[] = {
+ {&(_ZTV6dd3222[3]), 3,10},
+ {&(_ZTV6dd3222[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd3222[];
+extern VTBL_ENTRY _ZTV6dd3222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3222[];
+static VTBL_ENTRY alt_thunk_names974[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32223fooEv,_ZTv0_n12_N6dd32223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32223fooEv,_ZThn8_N6dd32223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3222 = { "dd3222", // class name
+ bases_dd3222, 3,
+ &(vtc_dd3222[0]), // expected_vtbl_contents
+ &(vtt_dd3222[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd3222),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3222),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3222),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names974,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03222 : dd3222 {
+ int e;
+ ~ee03222(); // tgen
+ ee03222(); // tgen
+};
+//SIG(1 ee03222) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee03222 ::~ee03222(){ note_dtor("ee03222", this);} // tgen
+ee03222 ::ee03222(){ note_ctor("ee03222", this);} // tgen
+
+static void Test_ee03222()
+{
+ extern Class_Descriptor cd_ee03222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee03222, buf);
+ ee03222 *dp, &lv = *(dp=new (buf) ee03222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee03222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03222)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc222*), ABISELECT(16,12), "ee03222");
+ check_base_class_offset(lv, (bb22*)(cc222*), ABISELECT(16,12), "ee03222");
+ check_base_class_offset(lv, (cc222*)(dd3222*), ABISELECT(16,12), "ee03222");
+ check_base_class_offset(lv, (dd3222*), 0, "ee03222");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03222.e");
+ test_class_info(&lv, &cd_ee03222);
+ dp->~ee03222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03222(Test_ee03222, "ee03222", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee03222C1Ev();
+extern void _ZN7ee03222D1Ev();
+Name_Map name_map_ee03222[] = {
+ NSPAIR(_ZN7ee03222C1Ev),
+ NSPAIR(_ZN7ee03222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc222;
+extern VTBL_ENTRY _ZTI5cc222[];
+extern VTBL_ENTRY _ZTV5cc222[];
+extern Class_Descriptor cd_dd3222;
+extern VTBL_ENTRY _ZTI6dd3222[];
+extern VTBL_ENTRY _ZTV6dd3222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3222[];
+static Base_Class bases_ee03222[] = {
+ // 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_bb22, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc222, 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_dd3222, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03222[];
+extern void _ZN6dd32223fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd32223fooEv,_ZTv0_n12_N6dd32223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32223fooEv,_ZThn12_N6dd32223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee03222[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03222[0]),
+ (VTBL_ENTRY)&_ZN6dd32223fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32223fooEv,_ZTv0_n12_N6dd32223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee03222[];
+extern void _ZN6dd32223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3222__7ee03222[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3222[0]),
+ (VTBL_ENTRY)&_ZN6dd32223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32223fooEv,_ZTv0_n12_N6dd32223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32223fooEv,_ZThn12_N6dd32223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV5cc222__6dd3222__7ee03222[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32223fooEv,_ZTv0_n12_N6dd32223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee03222[] = {
+ {&(_ZTV7ee03222[3]), 3,10},
+ {&(_tg__ZTV6dd3222__7ee03222[3]), 3,4},
+ {&(_tg__ZTV5cc222__6dd3222__7ee03222[4]), 4,6},
+ {&(_ZTV7ee03222[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee03222[];
+extern VTBL_ENTRY _ZTV7ee03222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03222[];
+static VTBL_ENTRY alt_thunk_names975[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32223fooEv,_ZTv0_n12_N6dd32223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32223fooEv,_ZThn12_N6dd32223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32223fooEv,_ZThn12_N6dd32223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03222 = { "ee03222", // class name
+ bases_ee03222, 4,
+ &(vtc_ee03222[0]), // expected_vtbl_contents
+ &(vtt_ee03222[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee03222),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03222),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03222),4, //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 ee13222 : virtual dd3222 {
+ int e;
+ ~ee13222(); // tgen
+ ee13222(); // tgen
+};
+//SIG(1 ee13222) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee13222 ::~ee13222(){ note_dtor("ee13222", this);} // tgen
+ee13222 ::ee13222(){ note_ctor("ee13222", this);} // tgen
+
+static void Test_ee13222()
+{
+ extern Class_Descriptor cd_ee13222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee13222, buf);
+ ee13222 *dp, &lv = *(dp=new (buf) ee13222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee13222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13222)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc222*), ABISELECT(32,16), "ee13222");
+ check_base_class_offset(lv, (bb22*)(cc222*), ABISELECT(32,16), "ee13222");
+ check_base_class_offset(lv, (cc222*)(dd3222*), ABISELECT(32,16), "ee13222");
+ check_base_class_offset(lv, (dd3222*), ABISELECT(16,8), "ee13222");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13222.e");
+ test_class_info(&lv, &cd_ee13222);
+ dp->~ee13222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13222(Test_ee13222, "ee13222", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee13222C1Ev();
+extern void _ZN7ee13222D1Ev();
+Name_Map name_map_ee13222[] = {
+ NSPAIR(_ZN7ee13222C1Ev),
+ NSPAIR(_ZN7ee13222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc222;
+extern VTBL_ENTRY _ZTI5cc222[];
+extern VTBL_ENTRY _ZTV5cc222[];
+extern Class_Descriptor cd_dd3222;
+extern VTBL_ENTRY _ZTI6dd3222[];
+extern VTBL_ENTRY _ZTV6dd3222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3222[];
+static Base_Class bases_ee13222[] = {
+ // 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_bb22, 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_cc222, 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_dd3222, 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 _ZTI7ee13222[];
+extern void _ZN6dd32223fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd32223fooEv,_ZTv0_n12_N6dd32223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32223fooEv,_ZThn8_N6dd32223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee13222[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13222[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13222[0]),
+ (VTBL_ENTRY)&_ZN6dd32223fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32223fooEv,_ZTv0_n12_N6dd32223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee13222[];
+extern void _ZN6dd32223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3222__7ee13222[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3222[0]),
+ (VTBL_ENTRY)&_ZN6dd32223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32223fooEv,_ZTv0_n12_N6dd32223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32223fooEv,_ZThn8_N6dd32223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV5cc222__6dd3222__7ee13222[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32223fooEv,_ZTv0_n12_N6dd32223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee13222[] = {
+ {&(_ZTV7ee13222[4]), 4,15},
+ {&(_ZTV7ee13222[8]), 8,15},
+ {&(_ZTV7ee13222[13]), 13,15},
+ {&(_tg__ZTV6dd3222__7ee13222[3]), 3,4},
+ {&(_tg__ZTV5cc222__6dd3222__7ee13222[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee13222[];
+extern VTBL_ENTRY _ZTV7ee13222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13222[];
+static VTBL_ENTRY alt_thunk_names976[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32223fooEv,_ZTv0_n12_N6dd32223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32223fooEv,_ZThn8_N6dd32223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32223fooEv,_ZThn8_N6dd32223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13222 = { "ee13222", // class name
+ bases_ee13222, 4,
+ &(vtc_ee13222[0]), // expected_vtbl_contents
+ &(vtt_ee13222[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee13222),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13222),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13222),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names976,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee23222 : dd3222 {
+ int e;
+ virtual void foo(); // _ZN7ee232223fooEv
+ ~ee23222(); // tgen
+ ee23222(); // tgen
+};
+//SIG(1 ee23222) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee23222 ::foo(){vfunc_called(this, "_ZN7ee232223fooEv");}
+ee23222 ::~ee23222(){ note_dtor("ee23222", this);} // tgen
+ee23222 ::ee23222(){ note_ctor("ee23222", this);} // tgen
+
+static void Test_ee23222()
+{
+ extern Class_Descriptor cd_ee23222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee23222, buf);
+ ee23222 *dp, &lv = *(dp=new (buf) ee23222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee23222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23222)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc222*), ABISELECT(16,12), "ee23222");
+ check_base_class_offset(lv, (bb22*)(cc222*), ABISELECT(16,12), "ee23222");
+ check_base_class_offset(lv, (cc222*)(dd3222*), ABISELECT(16,12), "ee23222");
+ check_base_class_offset(lv, (dd3222*), 0, "ee23222");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23222.e");
+ test_class_info(&lv, &cd_ee23222);
+ dp->~ee23222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23222(Test_ee23222, "ee23222", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee23222C1Ev();
+extern void _ZN7ee23222D1Ev();
+Name_Map name_map_ee23222[] = {
+ NSPAIR(_ZN7ee23222C1Ev),
+ NSPAIR(_ZN7ee23222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc222;
+extern VTBL_ENTRY _ZTI5cc222[];
+extern VTBL_ENTRY _ZTV5cc222[];
+extern Class_Descriptor cd_dd3222;
+extern VTBL_ENTRY _ZTI6dd3222[];
+extern VTBL_ENTRY _ZTV6dd3222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3222[];
+static Base_Class bases_ee23222[] = {
+ // 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_bb22, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc222, 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_dd3222, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23222[];
+extern void _ZN7ee232223fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee232223fooEv,_ZTv0_n12_N7ee232223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee232223fooEv,_ZThn12_N7ee232223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee23222[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23222[0]),
+ (VTBL_ENTRY)&_ZN7ee232223fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee232223fooEv,_ZTv0_n12_N7ee232223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee23222[];
+extern void _ZN6dd32223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3222__7ee23222[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3222[0]),
+ (VTBL_ENTRY)&_ZN6dd32223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32223fooEv,_ZTv0_n12_N6dd32223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32223fooEv,_ZThn12_N6dd32223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV5cc222__6dd3222__7ee23222[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32223fooEv,_ZTv0_n12_N6dd32223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee23222[] = {
+ {&(_ZTV7ee23222[3]), 3,10},
+ {&(_tg__ZTV6dd3222__7ee23222[3]), 3,4},
+ {&(_tg__ZTV5cc222__6dd3222__7ee23222[4]), 4,6},
+ {&(_ZTV7ee23222[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee23222[];
+extern VTBL_ENTRY _ZTV7ee23222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23222[];
+static VTBL_ENTRY alt_thunk_names977[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32223fooEv,_ZTv0_n12_N6dd32223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32223fooEv,_ZThn12_N6dd32223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee232223fooEv,_ZTv0_n12_N7ee232223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee232223fooEv,_ZThn12_N7ee232223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23222 = { "ee23222", // class name
+ bases_ee23222, 4,
+ &(vtc_ee23222[0]), // expected_vtbl_contents
+ &(vtt_ee23222[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee23222),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23222),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23222),4, //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 ee33222 : virtual dd3222 {
+ int e;
+ virtual void foo(); // _ZN7ee332223fooEv
+ ~ee33222(); // tgen
+ ee33222(); // tgen
+};
+//SIG(1 ee33222) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee33222 ::foo(){vfunc_called(this, "_ZN7ee332223fooEv");}
+ee33222 ::~ee33222(){ note_dtor("ee33222", this);} // tgen
+ee33222 ::ee33222(){ note_ctor("ee33222", this);} // tgen
+
+static void Test_ee33222()
+{
+ extern Class_Descriptor cd_ee33222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee33222, buf);
+ ee33222 *dp, &lv = *(dp=new (buf) ee33222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee33222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33222)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc222*), ABISELECT(32,16), "ee33222");
+ check_base_class_offset(lv, (bb22*)(cc222*), ABISELECT(32,16), "ee33222");
+ check_base_class_offset(lv, (cc222*)(dd3222*), ABISELECT(32,16), "ee33222");
+ check_base_class_offset(lv, (dd3222*), ABISELECT(16,8), "ee33222");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33222.e");
+ test_class_info(&lv, &cd_ee33222);
+ dp->~ee33222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33222(Test_ee33222, "ee33222", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee33222C1Ev();
+extern void _ZN7ee33222D1Ev();
+Name_Map name_map_ee33222[] = {
+ NSPAIR(_ZN7ee33222C1Ev),
+ NSPAIR(_ZN7ee33222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc222;
+extern VTBL_ENTRY _ZTI5cc222[];
+extern VTBL_ENTRY _ZTV5cc222[];
+extern Class_Descriptor cd_dd3222;
+extern VTBL_ENTRY _ZTI6dd3222[];
+extern VTBL_ENTRY _ZTV6dd3222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3222[];
+static Base_Class bases_ee33222[] = {
+ // 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_bb22, 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_cc222, 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_dd3222, 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 _ZTI7ee33222[];
+extern void _ZN7ee332223fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee332223fooEv,_ZTv0_n16_N7ee332223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee332223fooEv,_ZThn8_N7ee332223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee332223fooEv,_ZTv0_n12_N7ee332223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee332223fooEv,_ZThn16_N7ee332223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee33222[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33222[0]),
+ (VTBL_ENTRY)&_ZN7ee332223fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee332223fooEv,_ZTv0_n16_N7ee332223fooEv),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee332223fooEv,_ZTv0_n12_N7ee332223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee33222[];
+extern void _ZN6dd32223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3222__7ee33222[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3222[0]),
+ (VTBL_ENTRY)&_ZN6dd32223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32223fooEv,_ZTv0_n12_N6dd32223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32223fooEv,_ZThn8_N6dd32223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV5cc222__6dd3222__7ee33222[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32223fooEv,_ZTv0_n12_N6dd32223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee33222[] = {
+ {&(_ZTV7ee33222[4]), 4,16},
+ {&(_ZTV7ee33222[9]), 9,16},
+ {&(_ZTV7ee33222[14]), 14,16},
+ {&(_tg__ZTV6dd3222__7ee33222[3]), 3,4},
+ {&(_tg__ZTV5cc222__6dd3222__7ee33222[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee33222[];
+extern VTBL_ENTRY _ZTV7ee33222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33222[];
+static VTBL_ENTRY alt_thunk_names978[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32223fooEv,_ZTv0_n12_N6dd32223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32223fooEv,_ZThn8_N6dd32223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee332223fooEv,_ZTv0_n12_N7ee332223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee332223fooEv,_ZThn16_N7ee332223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee332223fooEv,_ZTv0_n16_N7ee332223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee332223fooEv,_ZThn8_N7ee332223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33222 = { "ee33222", // class name
+ bases_ee33222, 4,
+ &(vtc_ee33222[0]), // expected_vtbl_contents
+ &(vtt_ee33222[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee33222),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33222),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33222),5, //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 ee43222 : dd3222 {
+ int e;
+ virtual void bar(); // _ZN7ee432223barEv
+ ~ee43222(); // tgen
+ ee43222(); // tgen
+};
+//SIG(1 ee43222) C1{ BC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee43222 ::bar(){vfunc_called(this, "_ZN7ee432223barEv");}
+ee43222 ::~ee43222(){ note_dtor("ee43222", this);} // tgen
+ee43222 ::ee43222(){ note_ctor("ee43222", this);} // tgen
+
+static void Test_ee43222()
+{
+ extern Class_Descriptor cd_ee43222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee43222, buf);
+ ee43222 *dp, &lv = *(dp=new (buf) ee43222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee43222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43222)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc222*), ABISELECT(16,12), "ee43222");
+ check_base_class_offset(lv, (bb22*)(cc222*), ABISELECT(16,12), "ee43222");
+ check_base_class_offset(lv, (cc222*)(dd3222*), ABISELECT(16,12), "ee43222");
+ check_base_class_offset(lv, (dd3222*), 0, "ee43222");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43222.e");
+ test_class_info(&lv, &cd_ee43222);
+ dp->~ee43222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43222(Test_ee43222, "ee43222", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee43222C1Ev();
+extern void _ZN7ee43222D1Ev();
+Name_Map name_map_ee43222[] = {
+ NSPAIR(_ZN7ee43222C1Ev),
+ NSPAIR(_ZN7ee43222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc222;
+extern VTBL_ENTRY _ZTI5cc222[];
+extern VTBL_ENTRY _ZTV5cc222[];
+extern Class_Descriptor cd_dd3222;
+extern VTBL_ENTRY _ZTI6dd3222[];
+extern VTBL_ENTRY _ZTV6dd3222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3222[];
+static Base_Class bases_ee43222[] = {
+ // 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_bb22, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc222, 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_dd3222, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43222[];
+extern void _ZN6dd32223fooEv();
+extern void _ZN7ee432223barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd32223fooEv,_ZTv0_n12_N6dd32223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32223fooEv,_ZThn12_N6dd32223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee432223barEv,_ZTv0_n16_N7ee432223barEv)();
+extern void ABISELECT(_ZThn16_N7ee432223barEv,_ZThn12_N7ee432223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43222[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43222[0]),
+ (VTBL_ENTRY)&_ZN6dd32223fooEv,
+ (VTBL_ENTRY)&_ZN7ee432223barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32223fooEv,_ZTv0_n12_N6dd32223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee432223barEv,_ZTv0_n16_N7ee432223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee43222[];
+extern void _ZN6dd32223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3222__7ee43222[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3222[0]),
+ (VTBL_ENTRY)&_ZN6dd32223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32223fooEv,_ZTv0_n12_N6dd32223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32223fooEv,_ZThn12_N6dd32223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV5cc222__6dd3222__7ee43222[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32223fooEv,_ZTv0_n12_N6dd32223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee43222[] = {
+ {&(_ZTV7ee43222[3]), 3,11},
+ {&(_tg__ZTV6dd3222__7ee43222[3]), 3,4},
+ {&(_tg__ZTV5cc222__6dd3222__7ee43222[4]), 4,6},
+ {&(_ZTV7ee43222[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee43222[];
+extern VTBL_ENTRY _ZTV7ee43222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43222[];
+static VTBL_ENTRY alt_thunk_names979[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee432223barEv,_ZTv0_n16_N7ee432223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee432223barEv,_ZThn12_N7ee432223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32223fooEv,_ZTv0_n12_N6dd32223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32223fooEv,_ZThn12_N6dd32223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32223fooEv,_ZThn12_N6dd32223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43222 = { "ee43222", // class name
+ bases_ee43222, 4,
+ &(vtc_ee43222[0]), // expected_vtbl_contents
+ &(vtt_ee43222[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee43222),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43222),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43222),4, //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 ee53222 : virtual dd3222 {
+ int e;
+ virtual void bar(); // _ZN7ee532223barEv
+ ~ee53222(); // tgen
+ ee53222(); // tgen
+};
+//SIG(1 ee53222) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee53222 ::bar(){vfunc_called(this, "_ZN7ee532223barEv");}
+ee53222 ::~ee53222(){ note_dtor("ee53222", this);} // tgen
+ee53222 ::ee53222(){ note_ctor("ee53222", this);} // tgen
+
+static void Test_ee53222()
+{
+ extern Class_Descriptor cd_ee53222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee53222, buf);
+ ee53222 *dp, &lv = *(dp=new (buf) ee53222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee53222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53222)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc222*), ABISELECT(32,16), "ee53222");
+ check_base_class_offset(lv, (bb22*)(cc222*), ABISELECT(32,16), "ee53222");
+ check_base_class_offset(lv, (cc222*)(dd3222*), ABISELECT(32,16), "ee53222");
+ check_base_class_offset(lv, (dd3222*), ABISELECT(16,8), "ee53222");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53222.e");
+ test_class_info(&lv, &cd_ee53222);
+ dp->~ee53222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53222(Test_ee53222, "ee53222", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee53222C1Ev();
+extern void _ZN7ee53222D1Ev();
+Name_Map name_map_ee53222[] = {
+ NSPAIR(_ZN7ee53222C1Ev),
+ NSPAIR(_ZN7ee53222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc222;
+extern VTBL_ENTRY _ZTI5cc222[];
+extern VTBL_ENTRY _ZTV5cc222[];
+extern Class_Descriptor cd_dd3222;
+extern VTBL_ENTRY _ZTI6dd3222[];
+extern VTBL_ENTRY _ZTV6dd3222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3222[];
+static Base_Class bases_ee53222[] = {
+ // 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_bb22, 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_cc222, 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_dd3222, 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 _ZTI7ee53222[];
+extern void _ZN7ee532223barEv();
+extern void _ZN6dd32223fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd32223fooEv,_ZTv0_n12_N6dd32223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32223fooEv,_ZThn8_N6dd32223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee532223barEv,_ZTv0_n16_N7ee532223barEv)();
+extern void ABISELECT(_ZThn32_N7ee532223barEv,_ZThn16_N7ee532223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53222[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53222[0]),
+ (VTBL_ENTRY)&_ZN7ee532223barEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53222[0]),
+ (VTBL_ENTRY)&_ZN6dd32223fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32223fooEv,_ZTv0_n12_N6dd32223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee532223barEv,_ZTv0_n16_N7ee532223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee53222[];
+extern void _ZN6dd32223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3222__7ee53222[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3222[0]),
+ (VTBL_ENTRY)&_ZN6dd32223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32223fooEv,_ZTv0_n12_N6dd32223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32223fooEv,_ZThn8_N6dd32223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV5cc222__6dd3222__7ee53222[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32223fooEv,_ZTv0_n12_N6dd32223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee53222[] = {
+ {&(_ZTV7ee53222[4]), 4,16},
+ {&(_ZTV7ee53222[9]), 9,16},
+ {&(_ZTV7ee53222[14]), 14,16},
+ {&(_tg__ZTV6dd3222__7ee53222[3]), 3,4},
+ {&(_tg__ZTV5cc222__6dd3222__7ee53222[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee53222[];
+extern VTBL_ENTRY _ZTV7ee53222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53222[];
+static VTBL_ENTRY alt_thunk_names980[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee532223barEv,_ZTv0_n16_N7ee532223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee532223barEv,_ZThn16_N7ee532223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32223fooEv,_ZTv0_n12_N6dd32223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32223fooEv,_ZThn8_N6dd32223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32223fooEv,_ZThn8_N6dd32223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53222 = { "ee53222", // class name
+ bases_ee53222, 4,
+ &(vtc_ee53222[0]), // expected_vtbl_contents
+ &(vtt_ee53222[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee53222),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53222),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53222),5, //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 ee63222 : dd3222 {
+ int e;
+ virtual void foo(); // _ZN7ee632223fooEv
+ virtual void bar(); // _ZN7ee632223barEv
+ ~ee63222(); // tgen
+ ee63222(); // tgen
+};
+//SIG(1 ee63222) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63222 ::foo(){vfunc_called(this, "_ZN7ee632223fooEv");}
+void ee63222 ::bar(){vfunc_called(this, "_ZN7ee632223barEv");}
+ee63222 ::~ee63222(){ note_dtor("ee63222", this);} // tgen
+ee63222 ::ee63222(){ note_ctor("ee63222", this);} // tgen
+
+static void Test_ee63222()
+{
+ extern Class_Descriptor cd_ee63222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee63222, buf);
+ ee63222 *dp, &lv = *(dp=new (buf) ee63222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee63222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63222)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc222*), ABISELECT(16,12), "ee63222");
+ check_base_class_offset(lv, (bb22*)(cc222*), ABISELECT(16,12), "ee63222");
+ check_base_class_offset(lv, (cc222*)(dd3222*), ABISELECT(16,12), "ee63222");
+ check_base_class_offset(lv, (dd3222*), 0, "ee63222");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63222.e");
+ test_class_info(&lv, &cd_ee63222);
+ dp->~ee63222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63222(Test_ee63222, "ee63222", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee63222C1Ev();
+extern void _ZN7ee63222D1Ev();
+Name_Map name_map_ee63222[] = {
+ NSPAIR(_ZN7ee63222C1Ev),
+ NSPAIR(_ZN7ee63222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc222;
+extern VTBL_ENTRY _ZTI5cc222[];
+extern VTBL_ENTRY _ZTV5cc222[];
+extern Class_Descriptor cd_dd3222;
+extern VTBL_ENTRY _ZTI6dd3222[];
+extern VTBL_ENTRY _ZTV6dd3222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3222[];
+static Base_Class bases_ee63222[] = {
+ // 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_bb22, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc222, 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_dd3222, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63222[];
+extern void _ZN7ee632223fooEv();
+extern void _ZN7ee632223barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee632223fooEv,_ZTv0_n12_N7ee632223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee632223fooEv,_ZThn12_N7ee632223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee632223barEv,_ZTv0_n16_N7ee632223barEv)();
+extern void ABISELECT(_ZThn16_N7ee632223barEv,_ZThn12_N7ee632223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63222[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63222[0]),
+ (VTBL_ENTRY)&_ZN7ee632223fooEv,
+ (VTBL_ENTRY)&_ZN7ee632223barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee632223fooEv,_ZTv0_n12_N7ee632223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee632223barEv,_ZTv0_n16_N7ee632223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee63222[];
+extern void _ZN6dd32223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3222__7ee63222[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3222[0]),
+ (VTBL_ENTRY)&_ZN6dd32223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32223fooEv,_ZTv0_n12_N6dd32223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32223fooEv,_ZThn12_N6dd32223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV5cc222__6dd3222__7ee63222[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32223fooEv,_ZTv0_n12_N6dd32223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee63222[] = {
+ {&(_ZTV7ee63222[3]), 3,11},
+ {&(_tg__ZTV6dd3222__7ee63222[3]), 3,4},
+ {&(_tg__ZTV5cc222__6dd3222__7ee63222[4]), 4,6},
+ {&(_ZTV7ee63222[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee63222[];
+extern VTBL_ENTRY _ZTV7ee63222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63222[];
+static VTBL_ENTRY alt_thunk_names981[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32223fooEv,_ZTv0_n12_N6dd32223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32223fooEv,_ZThn12_N6dd32223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee632223barEv,_ZTv0_n16_N7ee632223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee632223barEv,_ZThn12_N7ee632223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee632223fooEv,_ZTv0_n12_N7ee632223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee632223fooEv,_ZThn12_N7ee632223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63222 = { "ee63222", // class name
+ bases_ee63222, 4,
+ &(vtc_ee63222[0]), // expected_vtbl_contents
+ &(vtt_ee63222[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee63222),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63222),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63222),4, //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 ee73222 : virtual dd3222 {
+ int e;
+ virtual void foo(); // _ZN7ee732223fooEv
+ virtual void bar(); // _ZN7ee732223barEv
+ ~ee73222(); // tgen
+ ee73222(); // tgen
+};
+//SIG(1 ee73222) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73222 ::foo(){vfunc_called(this, "_ZN7ee732223fooEv");}
+void ee73222 ::bar(){vfunc_called(this, "_ZN7ee732223barEv");}
+ee73222 ::~ee73222(){ note_dtor("ee73222", this);} // tgen
+ee73222 ::ee73222(){ note_ctor("ee73222", this);} // tgen
+
+static void Test_ee73222()
+{
+ extern Class_Descriptor cd_ee73222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee73222, buf);
+ ee73222 *dp, &lv = *(dp=new (buf) ee73222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee73222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73222)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc222*), ABISELECT(32,16), "ee73222");
+ check_base_class_offset(lv, (bb22*)(cc222*), ABISELECT(32,16), "ee73222");
+ check_base_class_offset(lv, (cc222*)(dd3222*), ABISELECT(32,16), "ee73222");
+ check_base_class_offset(lv, (dd3222*), ABISELECT(16,8), "ee73222");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73222.e");
+ test_class_info(&lv, &cd_ee73222);
+ dp->~ee73222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73222(Test_ee73222, "ee73222", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee73222C1Ev();
+extern void _ZN7ee73222D1Ev();
+Name_Map name_map_ee73222[] = {
+ NSPAIR(_ZN7ee73222C1Ev),
+ NSPAIR(_ZN7ee73222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc222;
+extern VTBL_ENTRY _ZTI5cc222[];
+extern VTBL_ENTRY _ZTV5cc222[];
+extern Class_Descriptor cd_dd3222;
+extern VTBL_ENTRY _ZTI6dd3222[];
+extern VTBL_ENTRY _ZTV6dd3222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3222[];
+static Base_Class bases_ee73222[] = {
+ // 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_bb22, 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_cc222, 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_dd3222, 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 _ZTI7ee73222[];
+extern void _ZN7ee732223fooEv();
+extern void _ZN7ee732223barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee732223fooEv,_ZTv0_n16_N7ee732223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee732223fooEv,_ZThn8_N7ee732223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee732223fooEv,_ZTv0_n12_N7ee732223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee732223fooEv,_ZThn16_N7ee732223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee732223barEv,_ZTv0_n16_N7ee732223barEv)();
+extern void ABISELECT(_ZThn32_N7ee732223barEv,_ZThn16_N7ee732223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73222[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73222[0]),
+ (VTBL_ENTRY)&_ZN7ee732223fooEv,
+ (VTBL_ENTRY)&_ZN7ee732223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee732223fooEv,_ZTv0_n16_N7ee732223fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee732223fooEv,_ZTv0_n12_N7ee732223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee732223barEv,_ZTv0_n16_N7ee732223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee73222[];
+extern void _ZN6dd32223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3222__7ee73222[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3222[0]),
+ (VTBL_ENTRY)&_ZN6dd32223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32223fooEv,_ZTv0_n12_N6dd32223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32223fooEv,_ZThn8_N6dd32223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV5cc222__6dd3222__7ee73222[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32223fooEv,_ZTv0_n12_N6dd32223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee73222[] = {
+ {&(_ZTV7ee73222[4]), 4,17},
+ {&(_ZTV7ee73222[10]), 10,17},
+ {&(_ZTV7ee73222[15]), 15,17},
+ {&(_tg__ZTV6dd3222__7ee73222[3]), 3,4},
+ {&(_tg__ZTV5cc222__6dd3222__7ee73222[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee73222[];
+extern VTBL_ENTRY _ZTV7ee73222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73222[];
+static VTBL_ENTRY alt_thunk_names982[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32223fooEv,_ZTv0_n12_N6dd32223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32223fooEv,_ZThn8_N6dd32223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee732223barEv,_ZTv0_n16_N7ee732223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee732223barEv,_ZThn16_N7ee732223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee732223fooEv,_ZTv0_n12_N7ee732223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee732223fooEv,_ZThn16_N7ee732223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee732223fooEv,_ZTv0_n16_N7ee732223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee732223fooEv,_ZThn8_N7ee732223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73222 = { "ee73222", // class name
+ bases_ee73222, 4,
+ &(vtc_ee73222[0]), // expected_vtbl_contents
+ &(vtt_ee73222[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee73222),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73222),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73222),5, //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 dd4222 : cc222 {
+ int d;
+ virtual void bar(); // _ZN6dd42223barEv
+ ~dd4222(); // tgen
+ dd4222(); // tgen
+};
+//SIG(-1 dd4222) C1{ BC2{ BC3{ BC4{ v2 v1 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void dd4222 ::bar(){vfunc_called(this, "_ZN6dd42223barEv");}
+dd4222 ::~dd4222(){ note_dtor("dd4222", this);} // tgen
+dd4222 ::dd4222(){ note_ctor("dd4222", this);} // tgen
+
+static void Test_dd4222()
+{
+ extern Class_Descriptor cd_dd4222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd4222, buf);
+ dd4222 *dp, &lv = *(dp=new (buf) dd4222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd4222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4222)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc222*), 0, "dd4222");
+ check_base_class_offset(lv, (bb22*)(cc222*), 0, "dd4222");
+ check_base_class_offset(lv, (cc222*), 0, "dd4222");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd4222.d");
+ test_class_info(&lv, &cd_dd4222);
+ dp->~dd4222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4222(Test_dd4222, "dd4222", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd4222C1Ev();
+extern void _ZN6dd4222D1Ev();
+Name_Map name_map_dd4222[] = {
+ NSPAIR(_ZN6dd4222C1Ev),
+ NSPAIR(_ZN6dd4222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc222;
+extern VTBL_ENTRY _ZTI5cc222[];
+extern VTBL_ENTRY _ZTV5cc222[];
+static Base_Class bases_dd4222[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc222, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI6dd4222[];
+extern void _ZN5cc2223fooEv();
+extern void _ZN6dd42223barEv();
+static VTBL_ENTRY vtc_dd4222[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4222[0]),
+ (VTBL_ENTRY)&_ZN5cc2223fooEv,
+ (VTBL_ENTRY)&_ZN6dd42223barEv,
+};
+extern VTBL_ENTRY _ZTI6dd4222[];
+extern VTBL_ENTRY _ZTV6dd4222[];
+Class_Descriptor cd_dd4222 = { "dd4222", // class name
+ bases_dd4222, 3,
+ &(vtc_dd4222[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd4222),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4222),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 ee04222 : dd4222 {
+ int e;
+ ~ee04222(); // tgen
+ ee04222(); // tgen
+};
+//SIG(1 ee04222) C1{ BC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee04222 ::~ee04222(){ note_dtor("ee04222", this);} // tgen
+ee04222 ::ee04222(){ note_ctor("ee04222", this);} // tgen
+
+static void Test_ee04222()
+{
+ extern Class_Descriptor cd_ee04222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee04222, buf);
+ ee04222 *dp, &lv = *(dp=new (buf) ee04222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee04222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04222)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc222*)(dd4222*), 0, "ee04222");
+ check_base_class_offset(lv, (bb22*)(cc222*)(dd4222*), 0, "ee04222");
+ check_base_class_offset(lv, (cc222*)(dd4222*), 0, "ee04222");
+ check_base_class_offset(lv, (dd4222*), 0, "ee04222");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee04222.e");
+ test_class_info(&lv, &cd_ee04222);
+ dp->~ee04222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04222(Test_ee04222, "ee04222", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee04222C1Ev();
+extern void _ZN7ee04222D1Ev();
+Name_Map name_map_ee04222[] = {
+ NSPAIR(_ZN7ee04222C1Ev),
+ NSPAIR(_ZN7ee04222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc222;
+extern VTBL_ENTRY _ZTI5cc222[];
+extern VTBL_ENTRY _ZTV5cc222[];
+extern Class_Descriptor cd_dd4222;
+extern VTBL_ENTRY _ZTI6dd4222[];
+extern VTBL_ENTRY _ZTV6dd4222[];
+static Base_Class bases_ee04222[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc222, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4222, 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 _ZTI7ee04222[];
+extern void _ZN5cc2223fooEv();
+extern void _ZN6dd42223barEv();
+static VTBL_ENTRY vtc_ee04222[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04222[0]),
+ (VTBL_ENTRY)&_ZN5cc2223fooEv,
+ (VTBL_ENTRY)&_ZN6dd42223barEv,
+};
+extern VTBL_ENTRY _ZTI7ee04222[];
+extern VTBL_ENTRY _ZTV7ee04222[];
+Class_Descriptor cd_ee04222 = { "ee04222", // class name
+ bases_ee04222, 4,
+ &(vtc_ee04222[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee04222),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04222),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 ee14222 : virtual dd4222 {
+ int e;
+ ~ee14222(); // tgen
+ ee14222(); // tgen
+};
+//SIG(1 ee14222) C1{ VBC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee14222 ::~ee14222(){ note_dtor("ee14222", this);} // tgen
+ee14222 ::ee14222(){ note_ctor("ee14222", this);} // tgen
+
+static void Test_ee14222()
+{
+ extern Class_Descriptor cd_ee14222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee14222, buf);
+ ee14222 *dp, &lv = *(dp=new (buf) ee14222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee14222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14222)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc222*)(dd4222*), ABISELECT(16,8), "ee14222");
+ check_base_class_offset(lv, (bb22*)(cc222*)(dd4222*), ABISELECT(16,8), "ee14222");
+ check_base_class_offset(lv, (cc222*)(dd4222*), ABISELECT(16,8), "ee14222");
+ check_base_class_offset(lv, (dd4222*), ABISELECT(16,8), "ee14222");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14222.e");
+ test_class_info(&lv, &cd_ee14222);
+ dp->~ee14222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14222(Test_ee14222, "ee14222", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee14222C1Ev();
+extern void _ZN7ee14222D1Ev();
+Name_Map name_map_ee14222[] = {
+ NSPAIR(_ZN7ee14222C1Ev),
+ NSPAIR(_ZN7ee14222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc222;
+extern VTBL_ENTRY _ZTI5cc222[];
+extern VTBL_ENTRY _ZTV5cc222[];
+extern Class_Descriptor cd_dd4222;
+extern VTBL_ENTRY _ZTI6dd4222[];
+extern VTBL_ENTRY _ZTV6dd4222[];
+static Base_Class bases_ee14222[] = {
+ // 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_bb22, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc222, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4222, 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 _ZTI7ee14222[];
+extern void _ZN5cc2223fooEv();
+extern void _ZN6dd42223barEv();
+static VTBL_ENTRY vtc_ee14222[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14222[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14222[0]),
+ (VTBL_ENTRY)&_ZN5cc2223fooEv,
+ (VTBL_ENTRY)&_ZN6dd42223barEv,
+};
+extern VTBL_ENTRY _ZTV7ee14222[];
+static VTT_ENTRY vtt_ee14222[] = {
+ {&(_ZTV7ee14222[3]), 3,9},
+ {&(_ZTV7ee14222[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee14222[];
+extern VTBL_ENTRY _ZTV7ee14222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14222[];
+Class_Descriptor cd_ee14222 = { "ee14222", // class name
+ bases_ee14222, 4,
+ &(vtc_ee14222[0]), // expected_vtbl_contents
+ &(vtt_ee14222[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee14222),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14222),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14222),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 ee24222 : dd4222 {
+ int e;
+ virtual void foo(); // _ZN7ee242223fooEv
+ ~ee24222(); // tgen
+ ee24222(); // tgen
+};
+//SIG(1 ee24222) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee24222 ::foo(){vfunc_called(this, "_ZN7ee242223fooEv");}
+ee24222 ::~ee24222(){ note_dtor("ee24222", this);} // tgen
+ee24222 ::ee24222(){ note_ctor("ee24222", this);} // tgen
+
+static void Test_ee24222()
+{
+ extern Class_Descriptor cd_ee24222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee24222, buf);
+ ee24222 *dp, &lv = *(dp=new (buf) ee24222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee24222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24222)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc222*)(dd4222*), 0, "ee24222");
+ check_base_class_offset(lv, (bb22*)(cc222*)(dd4222*), 0, "ee24222");
+ check_base_class_offset(lv, (cc222*)(dd4222*), 0, "ee24222");
+ check_base_class_offset(lv, (dd4222*), 0, "ee24222");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee24222.e");
+ test_class_info(&lv, &cd_ee24222);
+ dp->~ee24222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24222(Test_ee24222, "ee24222", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee24222C1Ev();
+extern void _ZN7ee24222D1Ev();
+Name_Map name_map_ee24222[] = {
+ NSPAIR(_ZN7ee24222C1Ev),
+ NSPAIR(_ZN7ee24222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc222;
+extern VTBL_ENTRY _ZTI5cc222[];
+extern VTBL_ENTRY _ZTV5cc222[];
+extern Class_Descriptor cd_dd4222;
+extern VTBL_ENTRY _ZTI6dd4222[];
+extern VTBL_ENTRY _ZTV6dd4222[];
+static Base_Class bases_ee24222[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc222, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4222, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee24222[];
+extern void _ZN7ee242223fooEv();
+extern void _ZN6dd42223barEv();
+static VTBL_ENTRY vtc_ee24222[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24222[0]),
+ (VTBL_ENTRY)&_ZN7ee242223fooEv,
+ (VTBL_ENTRY)&_ZN6dd42223barEv,
+};
+extern VTBL_ENTRY _ZTI7ee24222[];
+extern VTBL_ENTRY _ZTV7ee24222[];
+Class_Descriptor cd_ee24222 = { "ee24222", // class name
+ bases_ee24222, 4,
+ &(vtc_ee24222[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee24222),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24222),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 ee34222 : virtual dd4222 {
+ int e;
+ virtual void foo(); // _ZN7ee342223fooEv
+ ~ee34222(); // tgen
+ ee34222(); // tgen
+};
+//SIG(1 ee34222) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee34222 ::foo(){vfunc_called(this, "_ZN7ee342223fooEv");}
+ee34222 ::~ee34222(){ note_dtor("ee34222", this);} // tgen
+ee34222 ::ee34222(){ note_ctor("ee34222", this);} // tgen
+
+static void Test_ee34222()
+{
+ extern Class_Descriptor cd_ee34222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee34222, buf);
+ ee34222 *dp, &lv = *(dp=new (buf) ee34222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee34222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34222)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc222*)(dd4222*), ABISELECT(16,8), "ee34222");
+ check_base_class_offset(lv, (bb22*)(cc222*)(dd4222*), ABISELECT(16,8), "ee34222");
+ check_base_class_offset(lv, (cc222*)(dd4222*), ABISELECT(16,8), "ee34222");
+ check_base_class_offset(lv, (dd4222*), ABISELECT(16,8), "ee34222");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34222.e");
+ test_class_info(&lv, &cd_ee34222);
+ dp->~ee34222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34222(Test_ee34222, "ee34222", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee34222C1Ev();
+extern void _ZN7ee34222D1Ev();
+Name_Map name_map_ee34222[] = {
+ NSPAIR(_ZN7ee34222C1Ev),
+ NSPAIR(_ZN7ee34222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc222;
+extern VTBL_ENTRY _ZTI5cc222[];
+extern VTBL_ENTRY _ZTV5cc222[];
+extern Class_Descriptor cd_dd4222;
+extern VTBL_ENTRY _ZTI6dd4222[];
+extern VTBL_ENTRY _ZTV6dd4222[];
+static Base_Class bases_ee34222[] = {
+ // 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_bb22, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc222, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4222, 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 _ZTI7ee34222[];
+extern void _ZN7ee342223fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee342223fooEv,_ZTv0_n12_N7ee342223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee342223fooEv,_ZThn8_N7ee342223fooEv)() __attribute__((weak));
+extern void _ZN6dd42223barEv();
+static VTBL_ENTRY vtc_ee34222[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34222[0]),
+ (VTBL_ENTRY)&_ZN7ee342223fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee342223fooEv,_ZTv0_n12_N7ee342223fooEv),
+ (VTBL_ENTRY)&_ZN6dd42223barEv,
+};
+extern VTBL_ENTRY _ZTV7ee34222[];
+static VTT_ENTRY vtt_ee34222[] = {
+ {&(_ZTV7ee34222[3]), 3,10},
+ {&(_ZTV7ee34222[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee34222[];
+extern VTBL_ENTRY _ZTV7ee34222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34222[];
+static VTBL_ENTRY alt_thunk_names983[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee342223fooEv,_ZTv0_n12_N7ee342223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee342223fooEv,_ZThn8_N7ee342223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34222 = { "ee34222", // class name
+ bases_ee34222, 4,
+ &(vtc_ee34222[0]), // expected_vtbl_contents
+ &(vtt_ee34222[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee34222),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34222),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34222),2, //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 ee44222 : dd4222 {
+ int e;
+ virtual void bar(); // _ZN7ee442223barEv
+ ~ee44222(); // tgen
+ ee44222(); // tgen
+};
+//SIG(1 ee44222) C1{ BC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee44222 ::bar(){vfunc_called(this, "_ZN7ee442223barEv");}
+ee44222 ::~ee44222(){ note_dtor("ee44222", this);} // tgen
+ee44222 ::ee44222(){ note_ctor("ee44222", this);} // tgen
+
+static void Test_ee44222()
+{
+ extern Class_Descriptor cd_ee44222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee44222, buf);
+ ee44222 *dp, &lv = *(dp=new (buf) ee44222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee44222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44222)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc222*)(dd4222*), 0, "ee44222");
+ check_base_class_offset(lv, (bb22*)(cc222*)(dd4222*), 0, "ee44222");
+ check_base_class_offset(lv, (cc222*)(dd4222*), 0, "ee44222");
+ check_base_class_offset(lv, (dd4222*), 0, "ee44222");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee44222.e");
+ test_class_info(&lv, &cd_ee44222);
+ dp->~ee44222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44222(Test_ee44222, "ee44222", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee44222C1Ev();
+extern void _ZN7ee44222D1Ev();
+Name_Map name_map_ee44222[] = {
+ NSPAIR(_ZN7ee44222C1Ev),
+ NSPAIR(_ZN7ee44222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc222;
+extern VTBL_ENTRY _ZTI5cc222[];
+extern VTBL_ENTRY _ZTV5cc222[];
+extern Class_Descriptor cd_dd4222;
+extern VTBL_ENTRY _ZTI6dd4222[];
+extern VTBL_ENTRY _ZTV6dd4222[];
+static Base_Class bases_ee44222[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc222, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4222, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee44222[];
+extern void _ZN5cc2223fooEv();
+extern void _ZN7ee442223barEv();
+static VTBL_ENTRY vtc_ee44222[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44222[0]),
+ (VTBL_ENTRY)&_ZN5cc2223fooEv,
+ (VTBL_ENTRY)&_ZN7ee442223barEv,
+};
+extern VTBL_ENTRY _ZTI7ee44222[];
+extern VTBL_ENTRY _ZTV7ee44222[];
+Class_Descriptor cd_ee44222 = { "ee44222", // class name
+ bases_ee44222, 4,
+ &(vtc_ee44222[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee44222),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44222),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 ee54222 : virtual dd4222 {
+ int e;
+ virtual void bar(); // _ZN7ee542223barEv
+ ~ee54222(); // tgen
+ ee54222(); // tgen
+};
+//SIG(1 ee54222) C1{ VBC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee54222 ::bar(){vfunc_called(this, "_ZN7ee542223barEv");}
+ee54222 ::~ee54222(){ note_dtor("ee54222", this);} // tgen
+ee54222 ::ee54222(){ note_ctor("ee54222", this);} // tgen
+
+static void Test_ee54222()
+{
+ extern Class_Descriptor cd_ee54222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee54222, buf);
+ ee54222 *dp, &lv = *(dp=new (buf) ee54222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee54222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54222)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc222*)(dd4222*), ABISELECT(16,8), "ee54222");
+ check_base_class_offset(lv, (bb22*)(cc222*)(dd4222*), ABISELECT(16,8), "ee54222");
+ check_base_class_offset(lv, (cc222*)(dd4222*), ABISELECT(16,8), "ee54222");
+ check_base_class_offset(lv, (dd4222*), ABISELECT(16,8), "ee54222");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54222.e");
+ test_class_info(&lv, &cd_ee54222);
+ dp->~ee54222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54222(Test_ee54222, "ee54222", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee54222C1Ev();
+extern void _ZN7ee54222D1Ev();
+Name_Map name_map_ee54222[] = {
+ NSPAIR(_ZN7ee54222C1Ev),
+ NSPAIR(_ZN7ee54222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc222;
+extern VTBL_ENTRY _ZTI5cc222[];
+extern VTBL_ENTRY _ZTV5cc222[];
+extern Class_Descriptor cd_dd4222;
+extern VTBL_ENTRY _ZTI6dd4222[];
+extern VTBL_ENTRY _ZTV6dd4222[];
+static Base_Class bases_ee54222[] = {
+ // 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_bb22, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc222, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4222, 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 _ZTI7ee54222[];
+extern void _ZN7ee542223barEv();
+extern void _ZN5cc2223fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee542223barEv,_ZTv0_n16_N7ee542223barEv)();
+extern void ABISELECT(_ZThn16_N7ee542223barEv,_ZThn8_N7ee542223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54222[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54222[0]),
+ (VTBL_ENTRY)&_ZN7ee542223barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54222[0]),
+ (VTBL_ENTRY)&_ZN5cc2223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee542223barEv,_ZTv0_n16_N7ee542223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee54222[];
+static VTT_ENTRY vtt_ee54222[] = {
+ {&(_ZTV7ee54222[3]), 3,10},
+ {&(_ZTV7ee54222[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee54222[];
+extern VTBL_ENTRY _ZTV7ee54222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54222[];
+static VTBL_ENTRY alt_thunk_names984[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee542223barEv,_ZTv0_n16_N7ee542223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee542223barEv,_ZThn8_N7ee542223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54222 = { "ee54222", // class name
+ bases_ee54222, 4,
+ &(vtc_ee54222[0]), // expected_vtbl_contents
+ &(vtt_ee54222[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee54222),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54222),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54222),2, //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 ee64222 : dd4222 {
+ int e;
+ virtual void foo(); // _ZN7ee642223fooEv
+ virtual void bar(); // _ZN7ee642223barEv
+ ~ee64222(); // tgen
+ ee64222(); // tgen
+};
+//SIG(1 ee64222) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64222 ::foo(){vfunc_called(this, "_ZN7ee642223fooEv");}
+void ee64222 ::bar(){vfunc_called(this, "_ZN7ee642223barEv");}
+ee64222 ::~ee64222(){ note_dtor("ee64222", this);} // tgen
+ee64222 ::ee64222(){ note_ctor("ee64222", this);} // tgen
+
+static void Test_ee64222()
+{
+ extern Class_Descriptor cd_ee64222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee64222, buf);
+ ee64222 *dp, &lv = *(dp=new (buf) ee64222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee64222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64222)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc222*)(dd4222*), 0, "ee64222");
+ check_base_class_offset(lv, (bb22*)(cc222*)(dd4222*), 0, "ee64222");
+ check_base_class_offset(lv, (cc222*)(dd4222*), 0, "ee64222");
+ check_base_class_offset(lv, (dd4222*), 0, "ee64222");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee64222.e");
+ test_class_info(&lv, &cd_ee64222);
+ dp->~ee64222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64222(Test_ee64222, "ee64222", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee64222C1Ev();
+extern void _ZN7ee64222D1Ev();
+Name_Map name_map_ee64222[] = {
+ NSPAIR(_ZN7ee64222C1Ev),
+ NSPAIR(_ZN7ee64222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc222;
+extern VTBL_ENTRY _ZTI5cc222[];
+extern VTBL_ENTRY _ZTV5cc222[];
+extern Class_Descriptor cd_dd4222;
+extern VTBL_ENTRY _ZTI6dd4222[];
+extern VTBL_ENTRY _ZTV6dd4222[];
+static Base_Class bases_ee64222[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc222, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4222, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee64222[];
+extern void _ZN7ee642223fooEv();
+extern void _ZN7ee642223barEv();
+static VTBL_ENTRY vtc_ee64222[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64222[0]),
+ (VTBL_ENTRY)&_ZN7ee642223fooEv,
+ (VTBL_ENTRY)&_ZN7ee642223barEv,
+};
+extern VTBL_ENTRY _ZTI7ee64222[];
+extern VTBL_ENTRY _ZTV7ee64222[];
+Class_Descriptor cd_ee64222 = { "ee64222", // class name
+ bases_ee64222, 4,
+ &(vtc_ee64222[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee64222),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64222),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 ee74222 : virtual dd4222 {
+ int e;
+ virtual void foo(); // _ZN7ee742223fooEv
+ virtual void bar(); // _ZN7ee742223barEv
+ ~ee74222(); // tgen
+ ee74222(); // tgen
+};
+//SIG(1 ee74222) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74222 ::foo(){vfunc_called(this, "_ZN7ee742223fooEv");}
+void ee74222 ::bar(){vfunc_called(this, "_ZN7ee742223barEv");}
+ee74222 ::~ee74222(){ note_dtor("ee74222", this);} // tgen
+ee74222 ::ee74222(){ note_ctor("ee74222", this);} // tgen
+
+static void Test_ee74222()
+{
+ extern Class_Descriptor cd_ee74222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee74222, buf);
+ ee74222 *dp, &lv = *(dp=new (buf) ee74222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee74222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74222)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc222*)(dd4222*), ABISELECT(16,8), "ee74222");
+ check_base_class_offset(lv, (bb22*)(cc222*)(dd4222*), ABISELECT(16,8), "ee74222");
+ check_base_class_offset(lv, (cc222*)(dd4222*), ABISELECT(16,8), "ee74222");
+ check_base_class_offset(lv, (dd4222*), ABISELECT(16,8), "ee74222");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74222.e");
+ test_class_info(&lv, &cd_ee74222);
+ dp->~ee74222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74222(Test_ee74222, "ee74222", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee74222C1Ev();
+extern void _ZN7ee74222D1Ev();
+Name_Map name_map_ee74222[] = {
+ NSPAIR(_ZN7ee74222C1Ev),
+ NSPAIR(_ZN7ee74222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc222;
+extern VTBL_ENTRY _ZTI5cc222[];
+extern VTBL_ENTRY _ZTV5cc222[];
+extern Class_Descriptor cd_dd4222;
+extern VTBL_ENTRY _ZTI6dd4222[];
+extern VTBL_ENTRY _ZTV6dd4222[];
+static Base_Class bases_ee74222[] = {
+ // 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_bb22, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc222, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4222, 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 _ZTI7ee74222[];
+extern void _ZN7ee742223fooEv();
+extern void _ZN7ee742223barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee742223fooEv,_ZTv0_n12_N7ee742223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee742223fooEv,_ZThn8_N7ee742223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee742223barEv,_ZTv0_n16_N7ee742223barEv)();
+extern void ABISELECT(_ZThn16_N7ee742223barEv,_ZThn8_N7ee742223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74222[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74222[0]),
+ (VTBL_ENTRY)&_ZN7ee742223fooEv,
+ (VTBL_ENTRY)&_ZN7ee742223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee742223fooEv,_ZTv0_n12_N7ee742223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee742223barEv,_ZTv0_n16_N7ee742223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee74222[];
+static VTT_ENTRY vtt_ee74222[] = {
+ {&(_ZTV7ee74222[3]), 3,11},
+ {&(_ZTV7ee74222[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee74222[];
+extern VTBL_ENTRY _ZTV7ee74222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74222[];
+static VTBL_ENTRY alt_thunk_names985[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee742223barEv,_ZTv0_n16_N7ee742223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee742223barEv,_ZThn8_N7ee742223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee742223fooEv,_ZTv0_n12_N7ee742223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee742223fooEv,_ZThn8_N7ee742223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74222 = { "ee74222", // class name
+ bases_ee74222, 4,
+ &(vtc_ee74222[0]), // expected_vtbl_contents
+ &(vtt_ee74222[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee74222),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74222),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74222),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names985,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd5222 : virtual cc222 {
+ int d;
+ virtual void bar(); // _ZN6dd52223barEv
+ ~dd5222(); // tgen
+ dd5222(); // tgen
+};
+//SIG(-1 dd5222) C1{ VBC2{ BC3{ BC4{ v2 v1 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void dd5222 ::bar(){vfunc_called(this, "_ZN6dd52223barEv");}
+dd5222 ::~dd5222(){ note_dtor("dd5222", this);} // tgen
+dd5222 ::dd5222(){ note_ctor("dd5222", this);} // tgen
+
+static void Test_dd5222()
+{
+ extern Class_Descriptor cd_dd5222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd5222, buf);
+ dd5222 *dp, &lv = *(dp=new (buf) dd5222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd5222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5222)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc222*), ABISELECT(16,8), "dd5222");
+ check_base_class_offset(lv, (bb22*)(cc222*), ABISELECT(16,8), "dd5222");
+ check_base_class_offset(lv, (cc222*), ABISELECT(16,8), "dd5222");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5222.d");
+ test_class_info(&lv, &cd_dd5222);
+ dp->~dd5222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5222(Test_dd5222, "dd5222", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd5222C1Ev();
+extern void _ZN6dd5222D1Ev();
+Name_Map name_map_dd5222[] = {
+ NSPAIR(_ZN6dd5222C1Ev),
+ NSPAIR(_ZN6dd5222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc222;
+extern VTBL_ENTRY _ZTI5cc222[];
+extern VTBL_ENTRY _ZTV5cc222[];
+static Base_Class bases_dd5222[] = {
+ // 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_bb22, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc222, 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 _ZTI6dd5222[];
+extern void _ZN6dd52223barEv();
+extern void _ZN5cc2223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd52223barEv,_ZTv0_n16_N6dd52223barEv)();
+extern void ABISELECT(_ZThn16_N6dd52223barEv,_ZThn8_N6dd52223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd5222[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5222[0]),
+ (VTBL_ENTRY)&_ZN6dd52223barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5222[0]),
+ (VTBL_ENTRY)&_ZN5cc2223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52223barEv,_ZTv0_n16_N6dd52223barEv),
+};
+extern VTBL_ENTRY _ZTV6dd5222[];
+static VTT_ENTRY vtt_dd5222[] = {
+ {&(_ZTV6dd5222[3]), 3,10},
+ {&(_ZTV6dd5222[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd5222[];
+extern VTBL_ENTRY _ZTV6dd5222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5222[];
+static VTBL_ENTRY alt_thunk_names986[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd52223barEv,_ZTv0_n16_N6dd52223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52223barEv,_ZThn8_N6dd52223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5222 = { "dd5222", // class name
+ bases_dd5222, 3,
+ &(vtc_dd5222[0]), // expected_vtbl_contents
+ &(vtt_dd5222[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd5222),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5222),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5222),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names986,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05222 : dd5222 {
+ int e;
+ ~ee05222(); // tgen
+ ee05222(); // tgen
+};
+//SIG(1 ee05222) C1{ BC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee05222 ::~ee05222(){ note_dtor("ee05222", this);} // tgen
+ee05222 ::ee05222(){ note_ctor("ee05222", this);} // tgen
+
+static void Test_ee05222()
+{
+ extern Class_Descriptor cd_ee05222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee05222, buf);
+ ee05222 *dp, &lv = *(dp=new (buf) ee05222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee05222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05222)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc222*), ABISELECT(16,12), "ee05222");
+ check_base_class_offset(lv, (bb22*)(cc222*), ABISELECT(16,12), "ee05222");
+ check_base_class_offset(lv, (cc222*)(dd5222*), ABISELECT(16,12), "ee05222");
+ check_base_class_offset(lv, (dd5222*), 0, "ee05222");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05222.e");
+ test_class_info(&lv, &cd_ee05222);
+ dp->~ee05222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05222(Test_ee05222, "ee05222", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee05222C1Ev();
+extern void _ZN7ee05222D1Ev();
+Name_Map name_map_ee05222[] = {
+ NSPAIR(_ZN7ee05222C1Ev),
+ NSPAIR(_ZN7ee05222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc222;
+extern VTBL_ENTRY _ZTI5cc222[];
+extern VTBL_ENTRY _ZTV5cc222[];
+extern Class_Descriptor cd_dd5222;
+extern VTBL_ENTRY _ZTI6dd5222[];
+extern VTBL_ENTRY _ZTV6dd5222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5222[];
+static Base_Class bases_ee05222[] = {
+ // 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_bb22, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc222, 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_dd5222, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05222[];
+extern void _ZN6dd52223barEv();
+extern void _ZN5cc2223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd52223barEv,_ZTv0_n16_N6dd52223barEv)();
+extern void ABISELECT(_ZThn16_N6dd52223barEv,_ZThn12_N6dd52223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee05222[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05222[0]),
+ (VTBL_ENTRY)&_ZN6dd52223barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05222[0]),
+ (VTBL_ENTRY)&_ZN5cc2223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52223barEv,_ZTv0_n16_N6dd52223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee05222[];
+extern void _ZN6dd52223barEv();
+static VTBL_ENTRY _tg__ZTV6dd5222__7ee05222[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5222[0]),
+ (VTBL_ENTRY)&_ZN6dd52223barEv,
+};
+extern void _ZN5cc2223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd52223barEv,_ZTv0_n16_N6dd52223barEv)();
+extern void ABISELECT(_ZThn16_N6dd52223barEv,_ZThn12_N6dd52223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc222__6dd5222__7ee05222[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5222[0]),
+ (VTBL_ENTRY)&_ZN5cc2223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52223barEv,_ZTv0_n16_N6dd52223barEv),
+};
+static VTT_ENTRY vtt_ee05222[] = {
+ {&(_ZTV7ee05222[3]), 3,10},
+ {&(_tg__ZTV6dd5222__7ee05222[3]), 3,4},
+ {&(_tg__ZTV5cc222__6dd5222__7ee05222[4]), 4,6},
+ {&(_ZTV7ee05222[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee05222[];
+extern VTBL_ENTRY _ZTV7ee05222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05222[];
+static VTBL_ENTRY alt_thunk_names987[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd52223barEv,_ZTv0_n16_N6dd52223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52223barEv,_ZThn12_N6dd52223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52223barEv,_ZThn12_N6dd52223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05222 = { "ee05222", // class name
+ bases_ee05222, 4,
+ &(vtc_ee05222[0]), // expected_vtbl_contents
+ &(vtt_ee05222[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee05222),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05222),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05222),4, //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 ee15222 : virtual dd5222 {
+ int e;
+ ~ee15222(); // tgen
+ ee15222(); // tgen
+};
+//SIG(1 ee15222) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee15222 ::~ee15222(){ note_dtor("ee15222", this);} // tgen
+ee15222 ::ee15222(){ note_ctor("ee15222", this);} // tgen
+
+static void Test_ee15222()
+{
+ extern Class_Descriptor cd_ee15222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee15222, buf);
+ ee15222 *dp, &lv = *(dp=new (buf) ee15222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee15222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15222)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc222*), ABISELECT(32,16), "ee15222");
+ check_base_class_offset(lv, (bb22*)(cc222*), ABISELECT(32,16), "ee15222");
+ check_base_class_offset(lv, (cc222*)(dd5222*), ABISELECT(32,16), "ee15222");
+ check_base_class_offset(lv, (dd5222*), ABISELECT(16,8), "ee15222");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15222.e");
+ test_class_info(&lv, &cd_ee15222);
+ dp->~ee15222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15222(Test_ee15222, "ee15222", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee15222C1Ev();
+extern void _ZN7ee15222D1Ev();
+Name_Map name_map_ee15222[] = {
+ NSPAIR(_ZN7ee15222C1Ev),
+ NSPAIR(_ZN7ee15222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc222;
+extern VTBL_ENTRY _ZTI5cc222[];
+extern VTBL_ENTRY _ZTV5cc222[];
+extern Class_Descriptor cd_dd5222;
+extern VTBL_ENTRY _ZTI6dd5222[];
+extern VTBL_ENTRY _ZTV6dd5222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5222[];
+static Base_Class bases_ee15222[] = {
+ // 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_bb22, 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_cc222, 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_dd5222, 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 _ZTI7ee15222[];
+extern void _ZN6dd52223barEv();
+extern void _ZN5cc2223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd52223barEv,_ZTv0_n16_N6dd52223barEv)();
+extern void ABISELECT(_ZThn16_N6dd52223barEv,_ZThn8_N6dd52223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee15222[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15222[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15222[0]),
+ (VTBL_ENTRY)&_ZN6dd52223barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15222[0]),
+ (VTBL_ENTRY)&_ZN5cc2223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52223barEv,_ZTv0_n16_N6dd52223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee15222[];
+extern void _ZN6dd52223barEv();
+static VTBL_ENTRY _tg__ZTV6dd5222__7ee15222[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5222[0]),
+ (VTBL_ENTRY)&_ZN6dd52223barEv,
+};
+extern void _ZN5cc2223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd52223barEv,_ZTv0_n16_N6dd52223barEv)();
+extern void ABISELECT(_ZThn16_N6dd52223barEv,_ZThn8_N6dd52223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc222__6dd5222__7ee15222[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5222[0]),
+ (VTBL_ENTRY)&_ZN5cc2223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52223barEv,_ZTv0_n16_N6dd52223barEv),
+};
+static VTT_ENTRY vtt_ee15222[] = {
+ {&(_ZTV7ee15222[4]), 4,15},
+ {&(_ZTV7ee15222[8]), 8,15},
+ {&(_ZTV7ee15222[13]), 13,15},
+ {&(_tg__ZTV6dd5222__7ee15222[3]), 3,4},
+ {&(_tg__ZTV5cc222__6dd5222__7ee15222[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee15222[];
+extern VTBL_ENTRY _ZTV7ee15222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15222[];
+static VTBL_ENTRY alt_thunk_names988[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd52223barEv,_ZTv0_n16_N6dd52223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52223barEv,_ZThn8_N6dd52223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52223barEv,_ZThn8_N6dd52223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15222 = { "ee15222", // class name
+ bases_ee15222, 4,
+ &(vtc_ee15222[0]), // expected_vtbl_contents
+ &(vtt_ee15222[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee15222),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15222),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15222),5, //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 ee25222 : dd5222 {
+ int e;
+ virtual void foo(); // _ZN7ee252223fooEv
+ ~ee25222(); // tgen
+ ee25222(); // tgen
+};
+//SIG(1 ee25222) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee25222 ::foo(){vfunc_called(this, "_ZN7ee252223fooEv");}
+ee25222 ::~ee25222(){ note_dtor("ee25222", this);} // tgen
+ee25222 ::ee25222(){ note_ctor("ee25222", this);} // tgen
+
+static void Test_ee25222()
+{
+ extern Class_Descriptor cd_ee25222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee25222, buf);
+ ee25222 *dp, &lv = *(dp=new (buf) ee25222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee25222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25222)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc222*), ABISELECT(16,12), "ee25222");
+ check_base_class_offset(lv, (bb22*)(cc222*), ABISELECT(16,12), "ee25222");
+ check_base_class_offset(lv, (cc222*)(dd5222*), ABISELECT(16,12), "ee25222");
+ check_base_class_offset(lv, (dd5222*), 0, "ee25222");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25222.e");
+ test_class_info(&lv, &cd_ee25222);
+ dp->~ee25222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25222(Test_ee25222, "ee25222", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee25222C1Ev();
+extern void _ZN7ee25222D1Ev();
+Name_Map name_map_ee25222[] = {
+ NSPAIR(_ZN7ee25222C1Ev),
+ NSPAIR(_ZN7ee25222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc222;
+extern VTBL_ENTRY _ZTI5cc222[];
+extern VTBL_ENTRY _ZTV5cc222[];
+extern Class_Descriptor cd_dd5222;
+extern VTBL_ENTRY _ZTI6dd5222[];
+extern VTBL_ENTRY _ZTV6dd5222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5222[];
+static Base_Class bases_ee25222[] = {
+ // 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_bb22, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc222, 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_dd5222, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25222[];
+extern void _ZN6dd52223barEv();
+extern void _ZN7ee252223fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee252223fooEv,_ZTv0_n12_N7ee252223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee252223fooEv,_ZThn12_N7ee252223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd52223barEv,_ZTv0_n16_N6dd52223barEv)();
+extern void ABISELECT(_ZThn16_N6dd52223barEv,_ZThn12_N6dd52223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25222[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25222[0]),
+ (VTBL_ENTRY)&_ZN6dd52223barEv,
+ (VTBL_ENTRY)&_ZN7ee252223fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee252223fooEv,_ZTv0_n12_N7ee252223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52223barEv,_ZTv0_n16_N6dd52223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee25222[];
+extern void _ZN6dd52223barEv();
+static VTBL_ENTRY _tg__ZTV6dd5222__7ee25222[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5222[0]),
+ (VTBL_ENTRY)&_ZN6dd52223barEv,
+};
+extern void _ZN5cc2223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd52223barEv,_ZTv0_n16_N6dd52223barEv)();
+extern void ABISELECT(_ZThn16_N6dd52223barEv,_ZThn12_N6dd52223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc222__6dd5222__7ee25222[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5222[0]),
+ (VTBL_ENTRY)&_ZN5cc2223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52223barEv,_ZTv0_n16_N6dd52223barEv),
+};
+static VTT_ENTRY vtt_ee25222[] = {
+ {&(_ZTV7ee25222[3]), 3,11},
+ {&(_tg__ZTV6dd5222__7ee25222[3]), 3,4},
+ {&(_tg__ZTV5cc222__6dd5222__7ee25222[4]), 4,6},
+ {&(_ZTV7ee25222[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee25222[];
+extern VTBL_ENTRY _ZTV7ee25222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25222[];
+static VTBL_ENTRY alt_thunk_names989[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd52223barEv,_ZTv0_n16_N6dd52223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52223barEv,_ZThn12_N6dd52223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52223barEv,_ZThn12_N6dd52223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee252223fooEv,_ZTv0_n12_N7ee252223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee252223fooEv,_ZThn12_N7ee252223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25222 = { "ee25222", // class name
+ bases_ee25222, 4,
+ &(vtc_ee25222[0]), // expected_vtbl_contents
+ &(vtt_ee25222[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee25222),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25222),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25222),4, //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 ee35222 : virtual dd5222 {
+ int e;
+ virtual void foo(); // _ZN7ee352223fooEv
+ ~ee35222(); // tgen
+ ee35222(); // tgen
+};
+//SIG(1 ee35222) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee35222 ::foo(){vfunc_called(this, "_ZN7ee352223fooEv");}
+ee35222 ::~ee35222(){ note_dtor("ee35222", this);} // tgen
+ee35222 ::ee35222(){ note_ctor("ee35222", this);} // tgen
+
+static void Test_ee35222()
+{
+ extern Class_Descriptor cd_ee35222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee35222, buf);
+ ee35222 *dp, &lv = *(dp=new (buf) ee35222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee35222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35222)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc222*), ABISELECT(32,16), "ee35222");
+ check_base_class_offset(lv, (bb22*)(cc222*), ABISELECT(32,16), "ee35222");
+ check_base_class_offset(lv, (cc222*)(dd5222*), ABISELECT(32,16), "ee35222");
+ check_base_class_offset(lv, (dd5222*), ABISELECT(16,8), "ee35222");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35222.e");
+ test_class_info(&lv, &cd_ee35222);
+ dp->~ee35222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35222(Test_ee35222, "ee35222", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee35222C1Ev();
+extern void _ZN7ee35222D1Ev();
+Name_Map name_map_ee35222[] = {
+ NSPAIR(_ZN7ee35222C1Ev),
+ NSPAIR(_ZN7ee35222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc222;
+extern VTBL_ENTRY _ZTI5cc222[];
+extern VTBL_ENTRY _ZTV5cc222[];
+extern Class_Descriptor cd_dd5222;
+extern VTBL_ENTRY _ZTI6dd5222[];
+extern VTBL_ENTRY _ZTV6dd5222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5222[];
+static Base_Class bases_ee35222[] = {
+ // 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_bb22, 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_cc222, 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_dd5222, 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 _ZTI7ee35222[];
+extern void _ZN7ee352223fooEv();
+extern void _ZN6dd52223barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee352223fooEv,_ZTv0_n12_N7ee352223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee352223fooEv,_ZThn16_N7ee352223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd52223barEv,_ZTv0_n16_N6dd52223barEv)();
+extern void ABISELECT(_ZThn16_N6dd52223barEv,_ZThn8_N6dd52223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35222[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35222[0]),
+ (VTBL_ENTRY)&_ZN7ee352223fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35222[0]),
+ (VTBL_ENTRY)&_ZN6dd52223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee352223fooEv,_ZTv0_n12_N7ee352223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52223barEv,_ZTv0_n16_N6dd52223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee35222[];
+extern void _ZN6dd52223barEv();
+static VTBL_ENTRY _tg__ZTV6dd5222__7ee35222[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5222[0]),
+ (VTBL_ENTRY)&_ZN6dd52223barEv,
+};
+extern void _ZN5cc2223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd52223barEv,_ZTv0_n16_N6dd52223barEv)();
+extern void ABISELECT(_ZThn16_N6dd52223barEv,_ZThn8_N6dd52223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc222__6dd5222__7ee35222[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5222[0]),
+ (VTBL_ENTRY)&_ZN5cc2223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52223barEv,_ZTv0_n16_N6dd52223barEv),
+};
+static VTT_ENTRY vtt_ee35222[] = {
+ {&(_ZTV7ee35222[4]), 4,16},
+ {&(_ZTV7ee35222[9]), 9,16},
+ {&(_ZTV7ee35222[14]), 14,16},
+ {&(_tg__ZTV6dd5222__7ee35222[3]), 3,4},
+ {&(_tg__ZTV5cc222__6dd5222__7ee35222[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee35222[];
+extern VTBL_ENTRY _ZTV7ee35222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35222[];
+static VTBL_ENTRY alt_thunk_names990[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd52223barEv,_ZTv0_n16_N6dd52223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52223barEv,_ZThn8_N6dd52223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52223barEv,_ZThn8_N6dd52223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee352223fooEv,_ZTv0_n12_N7ee352223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee352223fooEv,_ZThn16_N7ee352223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35222 = { "ee35222", // class name
+ bases_ee35222, 4,
+ &(vtc_ee35222[0]), // expected_vtbl_contents
+ &(vtt_ee35222[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee35222),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35222),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35222),5, //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 ee45222 : dd5222 {
+ int e;
+ virtual void bar(); // _ZN7ee452223barEv
+ ~ee45222(); // tgen
+ ee45222(); // tgen
+};
+//SIG(1 ee45222) C1{ BC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee45222 ::bar(){vfunc_called(this, "_ZN7ee452223barEv");}
+ee45222 ::~ee45222(){ note_dtor("ee45222", this);} // tgen
+ee45222 ::ee45222(){ note_ctor("ee45222", this);} // tgen
+
+static void Test_ee45222()
+{
+ extern Class_Descriptor cd_ee45222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee45222, buf);
+ ee45222 *dp, &lv = *(dp=new (buf) ee45222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee45222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45222)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc222*), ABISELECT(16,12), "ee45222");
+ check_base_class_offset(lv, (bb22*)(cc222*), ABISELECT(16,12), "ee45222");
+ check_base_class_offset(lv, (cc222*)(dd5222*), ABISELECT(16,12), "ee45222");
+ check_base_class_offset(lv, (dd5222*), 0, "ee45222");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45222.e");
+ test_class_info(&lv, &cd_ee45222);
+ dp->~ee45222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45222(Test_ee45222, "ee45222", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee45222C1Ev();
+extern void _ZN7ee45222D1Ev();
+Name_Map name_map_ee45222[] = {
+ NSPAIR(_ZN7ee45222C1Ev),
+ NSPAIR(_ZN7ee45222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc222;
+extern VTBL_ENTRY _ZTI5cc222[];
+extern VTBL_ENTRY _ZTV5cc222[];
+extern Class_Descriptor cd_dd5222;
+extern VTBL_ENTRY _ZTI6dd5222[];
+extern VTBL_ENTRY _ZTV6dd5222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5222[];
+static Base_Class bases_ee45222[] = {
+ // 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_bb22, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc222, 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_dd5222, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45222[];
+extern void _ZN7ee452223barEv();
+extern void _ZN5cc2223fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee452223barEv,_ZTv0_n16_N7ee452223barEv)();
+extern void ABISELECT(_ZThn16_N7ee452223barEv,_ZThn12_N7ee452223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee45222[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45222[0]),
+ (VTBL_ENTRY)&_ZN7ee452223barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45222[0]),
+ (VTBL_ENTRY)&_ZN5cc2223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee452223barEv,_ZTv0_n16_N7ee452223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee45222[];
+extern void _ZN6dd52223barEv();
+static VTBL_ENTRY _tg__ZTV6dd5222__7ee45222[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5222[0]),
+ (VTBL_ENTRY)&_ZN6dd52223barEv,
+};
+extern void _ZN5cc2223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd52223barEv,_ZTv0_n16_N6dd52223barEv)();
+extern void ABISELECT(_ZThn16_N6dd52223barEv,_ZThn12_N6dd52223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc222__6dd5222__7ee45222[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5222[0]),
+ (VTBL_ENTRY)&_ZN5cc2223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52223barEv,_ZTv0_n16_N6dd52223barEv),
+};
+static VTT_ENTRY vtt_ee45222[] = {
+ {&(_ZTV7ee45222[3]), 3,10},
+ {&(_tg__ZTV6dd5222__7ee45222[3]), 3,4},
+ {&(_tg__ZTV5cc222__6dd5222__7ee45222[4]), 4,6},
+ {&(_ZTV7ee45222[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee45222[];
+extern VTBL_ENTRY _ZTV7ee45222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45222[];
+static VTBL_ENTRY alt_thunk_names991[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd52223barEv,_ZTv0_n16_N6dd52223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52223barEv,_ZThn12_N6dd52223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee452223barEv,_ZTv0_n16_N7ee452223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee452223barEv,_ZThn12_N7ee452223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45222 = { "ee45222", // class name
+ bases_ee45222, 4,
+ &(vtc_ee45222[0]), // expected_vtbl_contents
+ &(vtt_ee45222[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee45222),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45222),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45222),4, //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 ee55222 : virtual dd5222 {
+ int e;
+ virtual void bar(); // _ZN7ee552223barEv
+ ~ee55222(); // tgen
+ ee55222(); // tgen
+};
+//SIG(1 ee55222) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee55222 ::bar(){vfunc_called(this, "_ZN7ee552223barEv");}
+ee55222 ::~ee55222(){ note_dtor("ee55222", this);} // tgen
+ee55222 ::ee55222(){ note_ctor("ee55222", this);} // tgen
+
+static void Test_ee55222()
+{
+ extern Class_Descriptor cd_ee55222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee55222, buf);
+ ee55222 *dp, &lv = *(dp=new (buf) ee55222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee55222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55222)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc222*), ABISELECT(32,16), "ee55222");
+ check_base_class_offset(lv, (bb22*)(cc222*), ABISELECT(32,16), "ee55222");
+ check_base_class_offset(lv, (cc222*)(dd5222*), ABISELECT(32,16), "ee55222");
+ check_base_class_offset(lv, (dd5222*), ABISELECT(16,8), "ee55222");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55222.e");
+ test_class_info(&lv, &cd_ee55222);
+ dp->~ee55222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55222(Test_ee55222, "ee55222", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee55222C1Ev();
+extern void _ZN7ee55222D1Ev();
+Name_Map name_map_ee55222[] = {
+ NSPAIR(_ZN7ee55222C1Ev),
+ NSPAIR(_ZN7ee55222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc222;
+extern VTBL_ENTRY _ZTI5cc222[];
+extern VTBL_ENTRY _ZTV5cc222[];
+extern Class_Descriptor cd_dd5222;
+extern VTBL_ENTRY _ZTI6dd5222[];
+extern VTBL_ENTRY _ZTV6dd5222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5222[];
+static Base_Class bases_ee55222[] = {
+ // 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_bb22, 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_cc222, 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_dd5222, 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 _ZTI7ee55222[];
+extern void _ZN7ee552223barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee552223barEv,_ZTv0_n16_N7ee552223barEv)();
+extern void ABISELECT(_ZThn16_N7ee552223barEv,_ZThn8_N7ee552223barEv)() __attribute__((weak));
+extern void _ZN5cc2223fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee552223barEv,_ZTv0_n16_N7ee552223barEv)();
+extern void ABISELECT(_ZThn32_N7ee552223barEv,_ZThn16_N7ee552223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee55222[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55222[0]),
+ (VTBL_ENTRY)&_ZN7ee552223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee552223barEv,_ZTv0_n16_N7ee552223barEv),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55222[0]),
+ (VTBL_ENTRY)&_ZN5cc2223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee552223barEv,_ZTv0_n16_N7ee552223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee55222[];
+extern void _ZN6dd52223barEv();
+static VTBL_ENTRY _tg__ZTV6dd5222__7ee55222[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5222[0]),
+ (VTBL_ENTRY)&_ZN6dd52223barEv,
+};
+extern void _ZN5cc2223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd52223barEv,_ZTv0_n16_N6dd52223barEv)();
+extern void ABISELECT(_ZThn16_N6dd52223barEv,_ZThn8_N6dd52223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc222__6dd5222__7ee55222[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5222[0]),
+ (VTBL_ENTRY)&_ZN5cc2223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52223barEv,_ZTv0_n16_N6dd52223barEv),
+};
+static VTT_ENTRY vtt_ee55222[] = {
+ {&(_ZTV7ee55222[4]), 4,16},
+ {&(_ZTV7ee55222[9]), 9,16},
+ {&(_ZTV7ee55222[14]), 14,16},
+ {&(_tg__ZTV6dd5222__7ee55222[3]), 3,4},
+ {&(_tg__ZTV5cc222__6dd5222__7ee55222[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee55222[];
+extern VTBL_ENTRY _ZTV7ee55222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55222[];
+static VTBL_ENTRY alt_thunk_names992[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd52223barEv,_ZTv0_n16_N6dd52223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52223barEv,_ZThn8_N6dd52223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee552223barEv,_ZTv0_n16_N7ee552223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee552223barEv,_ZThn16_N7ee552223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee552223barEv,_ZThn8_N7ee552223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55222 = { "ee55222", // class name
+ bases_ee55222, 4,
+ &(vtc_ee55222[0]), // expected_vtbl_contents
+ &(vtt_ee55222[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee55222),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55222),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55222),5, //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 ee65222 : dd5222 {
+ int e;
+ virtual void foo(); // _ZN7ee652223fooEv
+ virtual void bar(); // _ZN7ee652223barEv
+ ~ee65222(); // tgen
+ ee65222(); // tgen
+};
+//SIG(1 ee65222) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65222 ::foo(){vfunc_called(this, "_ZN7ee652223fooEv");}
+void ee65222 ::bar(){vfunc_called(this, "_ZN7ee652223barEv");}
+ee65222 ::~ee65222(){ note_dtor("ee65222", this);} // tgen
+ee65222 ::ee65222(){ note_ctor("ee65222", this);} // tgen
+
+static void Test_ee65222()
+{
+ extern Class_Descriptor cd_ee65222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee65222, buf);
+ ee65222 *dp, &lv = *(dp=new (buf) ee65222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee65222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65222)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc222*), ABISELECT(16,12), "ee65222");
+ check_base_class_offset(lv, (bb22*)(cc222*), ABISELECT(16,12), "ee65222");
+ check_base_class_offset(lv, (cc222*)(dd5222*), ABISELECT(16,12), "ee65222");
+ check_base_class_offset(lv, (dd5222*), 0, "ee65222");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65222.e");
+ test_class_info(&lv, &cd_ee65222);
+ dp->~ee65222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65222(Test_ee65222, "ee65222", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee65222C1Ev();
+extern void _ZN7ee65222D1Ev();
+Name_Map name_map_ee65222[] = {
+ NSPAIR(_ZN7ee65222C1Ev),
+ NSPAIR(_ZN7ee65222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc222;
+extern VTBL_ENTRY _ZTI5cc222[];
+extern VTBL_ENTRY _ZTV5cc222[];
+extern Class_Descriptor cd_dd5222;
+extern VTBL_ENTRY _ZTI6dd5222[];
+extern VTBL_ENTRY _ZTV6dd5222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5222[];
+static Base_Class bases_ee65222[] = {
+ // 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_bb22, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc222, 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_dd5222, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65222[];
+extern void _ZN7ee652223barEv();
+extern void _ZN7ee652223fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee652223fooEv,_ZTv0_n12_N7ee652223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee652223fooEv,_ZThn12_N7ee652223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee652223barEv,_ZTv0_n16_N7ee652223barEv)();
+extern void ABISELECT(_ZThn16_N7ee652223barEv,_ZThn12_N7ee652223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65222[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65222[0]),
+ (VTBL_ENTRY)&_ZN7ee652223barEv,
+ (VTBL_ENTRY)&_ZN7ee652223fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee652223fooEv,_ZTv0_n12_N7ee652223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee652223barEv,_ZTv0_n16_N7ee652223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee65222[];
+extern void _ZN6dd52223barEv();
+static VTBL_ENTRY _tg__ZTV6dd5222__7ee65222[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5222[0]),
+ (VTBL_ENTRY)&_ZN6dd52223barEv,
+};
+extern void _ZN5cc2223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd52223barEv,_ZTv0_n16_N6dd52223barEv)();
+extern void ABISELECT(_ZThn16_N6dd52223barEv,_ZThn12_N6dd52223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc222__6dd5222__7ee65222[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5222[0]),
+ (VTBL_ENTRY)&_ZN5cc2223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52223barEv,_ZTv0_n16_N6dd52223barEv),
+};
+static VTT_ENTRY vtt_ee65222[] = {
+ {&(_ZTV7ee65222[3]), 3,11},
+ {&(_tg__ZTV6dd5222__7ee65222[3]), 3,4},
+ {&(_tg__ZTV5cc222__6dd5222__7ee65222[4]), 4,6},
+ {&(_ZTV7ee65222[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee65222[];
+extern VTBL_ENTRY _ZTV7ee65222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65222[];
+static VTBL_ENTRY alt_thunk_names993[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd52223barEv,_ZTv0_n16_N6dd52223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52223barEv,_ZThn12_N6dd52223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee652223barEv,_ZTv0_n16_N7ee652223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee652223barEv,_ZThn12_N7ee652223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee652223fooEv,_ZTv0_n12_N7ee652223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee652223fooEv,_ZThn12_N7ee652223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65222 = { "ee65222", // class name
+ bases_ee65222, 4,
+ &(vtc_ee65222[0]), // expected_vtbl_contents
+ &(vtt_ee65222[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee65222),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65222),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65222),4, //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 ee75222 : virtual dd5222 {
+ int e;
+ virtual void foo(); // _ZN7ee752223fooEv
+ virtual void bar(); // _ZN7ee752223barEv
+ ~ee75222(); // tgen
+ ee75222(); // tgen
+};
+//SIG(1 ee75222) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75222 ::foo(){vfunc_called(this, "_ZN7ee752223fooEv");}
+void ee75222 ::bar(){vfunc_called(this, "_ZN7ee752223barEv");}
+ee75222 ::~ee75222(){ note_dtor("ee75222", this);} // tgen
+ee75222 ::ee75222(){ note_ctor("ee75222", this);} // tgen
+
+static void Test_ee75222()
+{
+ extern Class_Descriptor cd_ee75222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee75222, buf);
+ ee75222 *dp, &lv = *(dp=new (buf) ee75222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee75222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75222)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc222*), ABISELECT(32,16), "ee75222");
+ check_base_class_offset(lv, (bb22*)(cc222*), ABISELECT(32,16), "ee75222");
+ check_base_class_offset(lv, (cc222*)(dd5222*), ABISELECT(32,16), "ee75222");
+ check_base_class_offset(lv, (dd5222*), ABISELECT(16,8), "ee75222");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75222.e");
+ test_class_info(&lv, &cd_ee75222);
+ dp->~ee75222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75222(Test_ee75222, "ee75222", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee75222C1Ev();
+extern void _ZN7ee75222D1Ev();
+Name_Map name_map_ee75222[] = {
+ NSPAIR(_ZN7ee75222C1Ev),
+ NSPAIR(_ZN7ee75222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc222;
+extern VTBL_ENTRY _ZTI5cc222[];
+extern VTBL_ENTRY _ZTV5cc222[];
+extern Class_Descriptor cd_dd5222;
+extern VTBL_ENTRY _ZTI6dd5222[];
+extern VTBL_ENTRY _ZTV6dd5222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5222[];
+static Base_Class bases_ee75222[] = {
+ // 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_bb22, 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_cc222, 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_dd5222, 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 _ZTI7ee75222[];
+extern void _ZN7ee752223fooEv();
+extern void _ZN7ee752223barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee752223barEv,_ZTv0_n16_N7ee752223barEv)();
+extern void ABISELECT(_ZThn16_N7ee752223barEv,_ZThn8_N7ee752223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee752223fooEv,_ZTv0_n12_N7ee752223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee752223fooEv,_ZThn16_N7ee752223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee752223barEv,_ZTv0_n16_N7ee752223barEv)();
+extern void ABISELECT(_ZThn32_N7ee752223barEv,_ZThn16_N7ee752223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75222[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75222[0]),
+ (VTBL_ENTRY)&_ZN7ee752223fooEv,
+ (VTBL_ENTRY)&_ZN7ee752223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee752223barEv,_ZTv0_n16_N7ee752223barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee752223fooEv,_ZTv0_n12_N7ee752223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee752223barEv,_ZTv0_n16_N7ee752223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee75222[];
+extern void _ZN6dd52223barEv();
+static VTBL_ENTRY _tg__ZTV6dd5222__7ee75222[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5222[0]),
+ (VTBL_ENTRY)&_ZN6dd52223barEv,
+};
+extern void _ZN5cc2223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd52223barEv,_ZTv0_n16_N6dd52223barEv)();
+extern void ABISELECT(_ZThn16_N6dd52223barEv,_ZThn8_N6dd52223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc222__6dd5222__7ee75222[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5222[0]),
+ (VTBL_ENTRY)&_ZN5cc2223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52223barEv,_ZTv0_n16_N6dd52223barEv),
+};
+static VTT_ENTRY vtt_ee75222[] = {
+ {&(_ZTV7ee75222[4]), 4,17},
+ {&(_ZTV7ee75222[10]), 10,17},
+ {&(_ZTV7ee75222[15]), 15,17},
+ {&(_tg__ZTV6dd5222__7ee75222[3]), 3,4},
+ {&(_tg__ZTV5cc222__6dd5222__7ee75222[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee75222[];
+extern VTBL_ENTRY _ZTV7ee75222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75222[];
+static VTBL_ENTRY alt_thunk_names994[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd52223barEv,_ZTv0_n16_N6dd52223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52223barEv,_ZThn8_N6dd52223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee752223fooEv,_ZTv0_n12_N7ee752223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee752223fooEv,_ZThn16_N7ee752223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee752223barEv,_ZTv0_n16_N7ee752223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee752223barEv,_ZThn16_N7ee752223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee752223barEv,_ZThn8_N7ee752223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75222 = { "ee75222", // class name
+ bases_ee75222, 4,
+ &(vtc_ee75222[0]), // expected_vtbl_contents
+ &(vtt_ee75222[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee75222),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75222),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75222),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names994,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd6222 : cc222 {
+ int d;
+ virtual void bar(); // _ZN6dd62223barEv
+ virtual void foo(); // _ZN6dd62223fooEv
+ ~dd6222(); // tgen
+ dd6222(); // tgen
+};
+//SIG(-1 dd6222) C1{ BC2{ BC3{ BC4{ v2 v1 Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void dd6222 ::bar(){vfunc_called(this, "_ZN6dd62223barEv");}
+void dd6222 ::foo(){vfunc_called(this, "_ZN6dd62223fooEv");}
+dd6222 ::~dd6222(){ note_dtor("dd6222", this);} // tgen
+dd6222 ::dd6222(){ note_ctor("dd6222", this);} // tgen
+
+static void Test_dd6222()
+{
+ extern Class_Descriptor cd_dd6222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd6222, buf);
+ dd6222 *dp, &lv = *(dp=new (buf) dd6222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd6222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6222)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc222*), 0, "dd6222");
+ check_base_class_offset(lv, (bb22*)(cc222*), 0, "dd6222");
+ check_base_class_offset(lv, (cc222*), 0, "dd6222");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd6222.d");
+ test_class_info(&lv, &cd_dd6222);
+ dp->~dd6222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6222(Test_dd6222, "dd6222", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd6222C1Ev();
+extern void _ZN6dd6222D1Ev();
+Name_Map name_map_dd6222[] = {
+ NSPAIR(_ZN6dd6222C1Ev),
+ NSPAIR(_ZN6dd6222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc222;
+extern VTBL_ENTRY _ZTI5cc222[];
+extern VTBL_ENTRY _ZTV5cc222[];
+static Base_Class bases_dd6222[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc222, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI6dd6222[];
+extern void _ZN6dd62223fooEv();
+extern void _ZN6dd62223barEv();
+static VTBL_ENTRY vtc_dd6222[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6222[0]),
+ (VTBL_ENTRY)&_ZN6dd62223fooEv,
+ (VTBL_ENTRY)&_ZN6dd62223barEv,
+};
+extern VTBL_ENTRY _ZTI6dd6222[];
+extern VTBL_ENTRY _ZTV6dd6222[];
+Class_Descriptor cd_dd6222 = { "dd6222", // class name
+ bases_dd6222, 3,
+ &(vtc_dd6222[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd6222),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6222),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 ee06222 : dd6222 {
+ int e;
+ ~ee06222(); // tgen
+ ee06222(); // tgen
+};
+//SIG(1 ee06222) C1{ BC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee06222 ::~ee06222(){ note_dtor("ee06222", this);} // tgen
+ee06222 ::ee06222(){ note_ctor("ee06222", this);} // tgen
+
+static void Test_ee06222()
+{
+ extern Class_Descriptor cd_ee06222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee06222, buf);
+ ee06222 *dp, &lv = *(dp=new (buf) ee06222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee06222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06222)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc222*)(dd6222*), 0, "ee06222");
+ check_base_class_offset(lv, (bb22*)(cc222*)(dd6222*), 0, "ee06222");
+ check_base_class_offset(lv, (cc222*)(dd6222*), 0, "ee06222");
+ check_base_class_offset(lv, (dd6222*), 0, "ee06222");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee06222.e");
+ test_class_info(&lv, &cd_ee06222);
+ dp->~ee06222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06222(Test_ee06222, "ee06222", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee06222C1Ev();
+extern void _ZN7ee06222D1Ev();
+Name_Map name_map_ee06222[] = {
+ NSPAIR(_ZN7ee06222C1Ev),
+ NSPAIR(_ZN7ee06222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc222;
+extern VTBL_ENTRY _ZTI5cc222[];
+extern VTBL_ENTRY _ZTV5cc222[];
+extern Class_Descriptor cd_dd6222;
+extern VTBL_ENTRY _ZTI6dd6222[];
+extern VTBL_ENTRY _ZTV6dd6222[];
+static Base_Class bases_ee06222[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc222, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6222, 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 _ZTI7ee06222[];
+extern void _ZN6dd62223fooEv();
+extern void _ZN6dd62223barEv();
+static VTBL_ENTRY vtc_ee06222[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06222[0]),
+ (VTBL_ENTRY)&_ZN6dd62223fooEv,
+ (VTBL_ENTRY)&_ZN6dd62223barEv,
+};
+extern VTBL_ENTRY _ZTI7ee06222[];
+extern VTBL_ENTRY _ZTV7ee06222[];
+Class_Descriptor cd_ee06222 = { "ee06222", // class name
+ bases_ee06222, 4,
+ &(vtc_ee06222[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee06222),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06222),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 ee16222 : virtual dd6222 {
+ int e;
+ ~ee16222(); // tgen
+ ee16222(); // tgen
+};
+//SIG(1 ee16222) C1{ VBC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee16222 ::~ee16222(){ note_dtor("ee16222", this);} // tgen
+ee16222 ::ee16222(){ note_ctor("ee16222", this);} // tgen
+
+static void Test_ee16222()
+{
+ extern Class_Descriptor cd_ee16222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee16222, buf);
+ ee16222 *dp, &lv = *(dp=new (buf) ee16222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee16222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16222)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc222*)(dd6222*), ABISELECT(16,8), "ee16222");
+ check_base_class_offset(lv, (bb22*)(cc222*)(dd6222*), ABISELECT(16,8), "ee16222");
+ check_base_class_offset(lv, (cc222*)(dd6222*), ABISELECT(16,8), "ee16222");
+ check_base_class_offset(lv, (dd6222*), ABISELECT(16,8), "ee16222");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16222.e");
+ test_class_info(&lv, &cd_ee16222);
+ dp->~ee16222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16222(Test_ee16222, "ee16222", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee16222C1Ev();
+extern void _ZN7ee16222D1Ev();
+Name_Map name_map_ee16222[] = {
+ NSPAIR(_ZN7ee16222C1Ev),
+ NSPAIR(_ZN7ee16222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc222;
+extern VTBL_ENTRY _ZTI5cc222[];
+extern VTBL_ENTRY _ZTV5cc222[];
+extern Class_Descriptor cd_dd6222;
+extern VTBL_ENTRY _ZTI6dd6222[];
+extern VTBL_ENTRY _ZTV6dd6222[];
+static Base_Class bases_ee16222[] = {
+ // 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_bb22, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc222, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6222, 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 _ZTI7ee16222[];
+extern void _ZN6dd62223fooEv();
+extern void _ZN6dd62223barEv();
+static VTBL_ENTRY vtc_ee16222[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16222[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16222[0]),
+ (VTBL_ENTRY)&_ZN6dd62223fooEv,
+ (VTBL_ENTRY)&_ZN6dd62223barEv,
+};
+extern VTBL_ENTRY _ZTV7ee16222[];
+static VTT_ENTRY vtt_ee16222[] = {
+ {&(_ZTV7ee16222[3]), 3,9},
+ {&(_ZTV7ee16222[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee16222[];
+extern VTBL_ENTRY _ZTV7ee16222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16222[];
+Class_Descriptor cd_ee16222 = { "ee16222", // class name
+ bases_ee16222, 4,
+ &(vtc_ee16222[0]), // expected_vtbl_contents
+ &(vtt_ee16222[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee16222),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16222),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16222),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 ee26222 : dd6222 {
+ int e;
+ virtual void foo(); // _ZN7ee262223fooEv
+ ~ee26222(); // tgen
+ ee26222(); // tgen
+};
+//SIG(1 ee26222) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26222 ::foo(){vfunc_called(this, "_ZN7ee262223fooEv");}
+ee26222 ::~ee26222(){ note_dtor("ee26222", this);} // tgen
+ee26222 ::ee26222(){ note_ctor("ee26222", this);} // tgen
+
+static void Test_ee26222()
+{
+ extern Class_Descriptor cd_ee26222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee26222, buf);
+ ee26222 *dp, &lv = *(dp=new (buf) ee26222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee26222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26222)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc222*)(dd6222*), 0, "ee26222");
+ check_base_class_offset(lv, (bb22*)(cc222*)(dd6222*), 0, "ee26222");
+ check_base_class_offset(lv, (cc222*)(dd6222*), 0, "ee26222");
+ check_base_class_offset(lv, (dd6222*), 0, "ee26222");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee26222.e");
+ test_class_info(&lv, &cd_ee26222);
+ dp->~ee26222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26222(Test_ee26222, "ee26222", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee26222C1Ev();
+extern void _ZN7ee26222D1Ev();
+Name_Map name_map_ee26222[] = {
+ NSPAIR(_ZN7ee26222C1Ev),
+ NSPAIR(_ZN7ee26222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc222;
+extern VTBL_ENTRY _ZTI5cc222[];
+extern VTBL_ENTRY _ZTV5cc222[];
+extern Class_Descriptor cd_dd6222;
+extern VTBL_ENTRY _ZTI6dd6222[];
+extern VTBL_ENTRY _ZTV6dd6222[];
+static Base_Class bases_ee26222[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc222, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6222, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee26222[];
+extern void _ZN7ee262223fooEv();
+extern void _ZN6dd62223barEv();
+static VTBL_ENTRY vtc_ee26222[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26222[0]),
+ (VTBL_ENTRY)&_ZN7ee262223fooEv,
+ (VTBL_ENTRY)&_ZN6dd62223barEv,
+};
+extern VTBL_ENTRY _ZTI7ee26222[];
+extern VTBL_ENTRY _ZTV7ee26222[];
+Class_Descriptor cd_ee26222 = { "ee26222", // class name
+ bases_ee26222, 4,
+ &(vtc_ee26222[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee26222),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26222),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 ee36222 : virtual dd6222 {
+ int e;
+ virtual void foo(); // _ZN7ee362223fooEv
+ ~ee36222(); // tgen
+ ee36222(); // tgen
+};
+//SIG(1 ee36222) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36222 ::foo(){vfunc_called(this, "_ZN7ee362223fooEv");}
+ee36222 ::~ee36222(){ note_dtor("ee36222", this);} // tgen
+ee36222 ::ee36222(){ note_ctor("ee36222", this);} // tgen
+
+static void Test_ee36222()
+{
+ extern Class_Descriptor cd_ee36222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee36222, buf);
+ ee36222 *dp, &lv = *(dp=new (buf) ee36222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee36222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36222)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc222*)(dd6222*), ABISELECT(16,8), "ee36222");
+ check_base_class_offset(lv, (bb22*)(cc222*)(dd6222*), ABISELECT(16,8), "ee36222");
+ check_base_class_offset(lv, (cc222*)(dd6222*), ABISELECT(16,8), "ee36222");
+ check_base_class_offset(lv, (dd6222*), ABISELECT(16,8), "ee36222");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36222.e");
+ test_class_info(&lv, &cd_ee36222);
+ dp->~ee36222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36222(Test_ee36222, "ee36222", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee36222C1Ev();
+extern void _ZN7ee36222D1Ev();
+Name_Map name_map_ee36222[] = {
+ NSPAIR(_ZN7ee36222C1Ev),
+ NSPAIR(_ZN7ee36222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc222;
+extern VTBL_ENTRY _ZTI5cc222[];
+extern VTBL_ENTRY _ZTV5cc222[];
+extern Class_Descriptor cd_dd6222;
+extern VTBL_ENTRY _ZTI6dd6222[];
+extern VTBL_ENTRY _ZTV6dd6222[];
+static Base_Class bases_ee36222[] = {
+ // 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_bb22, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc222, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6222, 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 _ZTI7ee36222[];
+extern void _ZN7ee362223fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee362223fooEv,_ZTv0_n12_N7ee362223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee362223fooEv,_ZThn8_N7ee362223fooEv)() __attribute__((weak));
+extern void _ZN6dd62223barEv();
+static VTBL_ENTRY vtc_ee36222[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36222[0]),
+ (VTBL_ENTRY)&_ZN7ee362223fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee362223fooEv,_ZTv0_n12_N7ee362223fooEv),
+ (VTBL_ENTRY)&_ZN6dd62223barEv,
+};
+extern VTBL_ENTRY _ZTV7ee36222[];
+static VTT_ENTRY vtt_ee36222[] = {
+ {&(_ZTV7ee36222[3]), 3,10},
+ {&(_ZTV7ee36222[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee36222[];
+extern VTBL_ENTRY _ZTV7ee36222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36222[];
+static VTBL_ENTRY alt_thunk_names995[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee362223fooEv,_ZTv0_n12_N7ee362223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee362223fooEv,_ZThn8_N7ee362223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36222 = { "ee36222", // class name
+ bases_ee36222, 4,
+ &(vtc_ee36222[0]), // expected_vtbl_contents
+ &(vtt_ee36222[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee36222),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36222),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36222),2, //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 ee46222 : dd6222 {
+ int e;
+ virtual void bar(); // _ZN7ee462223barEv
+ ~ee46222(); // tgen
+ ee46222(); // tgen
+};
+//SIG(1 ee46222) C1{ BC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46222 ::bar(){vfunc_called(this, "_ZN7ee462223barEv");}
+ee46222 ::~ee46222(){ note_dtor("ee46222", this);} // tgen
+ee46222 ::ee46222(){ note_ctor("ee46222", this);} // tgen
+
+static void Test_ee46222()
+{
+ extern Class_Descriptor cd_ee46222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee46222, buf);
+ ee46222 *dp, &lv = *(dp=new (buf) ee46222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee46222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46222)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc222*)(dd6222*), 0, "ee46222");
+ check_base_class_offset(lv, (bb22*)(cc222*)(dd6222*), 0, "ee46222");
+ check_base_class_offset(lv, (cc222*)(dd6222*), 0, "ee46222");
+ check_base_class_offset(lv, (dd6222*), 0, "ee46222");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee46222.e");
+ test_class_info(&lv, &cd_ee46222);
+ dp->~ee46222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46222(Test_ee46222, "ee46222", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee46222C1Ev();
+extern void _ZN7ee46222D1Ev();
+Name_Map name_map_ee46222[] = {
+ NSPAIR(_ZN7ee46222C1Ev),
+ NSPAIR(_ZN7ee46222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc222;
+extern VTBL_ENTRY _ZTI5cc222[];
+extern VTBL_ENTRY _ZTV5cc222[];
+extern Class_Descriptor cd_dd6222;
+extern VTBL_ENTRY _ZTI6dd6222[];
+extern VTBL_ENTRY _ZTV6dd6222[];
+static Base_Class bases_ee46222[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc222, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6222, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee46222[];
+extern void _ZN6dd62223fooEv();
+extern void _ZN7ee462223barEv();
+static VTBL_ENTRY vtc_ee46222[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46222[0]),
+ (VTBL_ENTRY)&_ZN6dd62223fooEv,
+ (VTBL_ENTRY)&_ZN7ee462223barEv,
+};
+extern VTBL_ENTRY _ZTI7ee46222[];
+extern VTBL_ENTRY _ZTV7ee46222[];
+Class_Descriptor cd_ee46222 = { "ee46222", // class name
+ bases_ee46222, 4,
+ &(vtc_ee46222[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee46222),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46222),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 ee56222 : virtual dd6222 {
+ int e;
+ virtual void bar(); // _ZN7ee562223barEv
+ ~ee56222(); // tgen
+ ee56222(); // tgen
+};
+//SIG(1 ee56222) C1{ VBC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56222 ::bar(){vfunc_called(this, "_ZN7ee562223barEv");}
+ee56222 ::~ee56222(){ note_dtor("ee56222", this);} // tgen
+ee56222 ::ee56222(){ note_ctor("ee56222", this);} // tgen
+
+static void Test_ee56222()
+{
+ extern Class_Descriptor cd_ee56222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee56222, buf);
+ ee56222 *dp, &lv = *(dp=new (buf) ee56222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee56222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56222)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc222*)(dd6222*), ABISELECT(16,8), "ee56222");
+ check_base_class_offset(lv, (bb22*)(cc222*)(dd6222*), ABISELECT(16,8), "ee56222");
+ check_base_class_offset(lv, (cc222*)(dd6222*), ABISELECT(16,8), "ee56222");
+ check_base_class_offset(lv, (dd6222*), ABISELECT(16,8), "ee56222");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56222.e");
+ test_class_info(&lv, &cd_ee56222);
+ dp->~ee56222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56222(Test_ee56222, "ee56222", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee56222C1Ev();
+extern void _ZN7ee56222D1Ev();
+Name_Map name_map_ee56222[] = {
+ NSPAIR(_ZN7ee56222C1Ev),
+ NSPAIR(_ZN7ee56222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc222;
+extern VTBL_ENTRY _ZTI5cc222[];
+extern VTBL_ENTRY _ZTV5cc222[];
+extern Class_Descriptor cd_dd6222;
+extern VTBL_ENTRY _ZTI6dd6222[];
+extern VTBL_ENTRY _ZTV6dd6222[];
+static Base_Class bases_ee56222[] = {
+ // 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_bb22, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc222, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6222, 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 _ZTI7ee56222[];
+extern void _ZN7ee562223barEv();
+extern void _ZN6dd62223fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee562223barEv,_ZTv0_n16_N7ee562223barEv)();
+extern void ABISELECT(_ZThn16_N7ee562223barEv,_ZThn8_N7ee562223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56222[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56222[0]),
+ (VTBL_ENTRY)&_ZN7ee562223barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56222[0]),
+ (VTBL_ENTRY)&_ZN6dd62223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee562223barEv,_ZTv0_n16_N7ee562223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee56222[];
+static VTT_ENTRY vtt_ee56222[] = {
+ {&(_ZTV7ee56222[3]), 3,10},
+ {&(_ZTV7ee56222[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee56222[];
+extern VTBL_ENTRY _ZTV7ee56222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56222[];
+static VTBL_ENTRY alt_thunk_names996[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee562223barEv,_ZTv0_n16_N7ee562223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee562223barEv,_ZThn8_N7ee562223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56222 = { "ee56222", // class name
+ bases_ee56222, 4,
+ &(vtc_ee56222[0]), // expected_vtbl_contents
+ &(vtt_ee56222[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee56222),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56222),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56222),2, //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 ee66222 : dd6222 {
+ int e;
+ virtual void foo(); // _ZN7ee662223fooEv
+ virtual void bar(); // _ZN7ee662223barEv
+ ~ee66222(); // tgen
+ ee66222(); // tgen
+};
+//SIG(1 ee66222) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66222 ::foo(){vfunc_called(this, "_ZN7ee662223fooEv");}
+void ee66222 ::bar(){vfunc_called(this, "_ZN7ee662223barEv");}
+ee66222 ::~ee66222(){ note_dtor("ee66222", this);} // tgen
+ee66222 ::ee66222(){ note_ctor("ee66222", this);} // tgen
+
+static void Test_ee66222()
+{
+ extern Class_Descriptor cd_ee66222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee66222, buf);
+ ee66222 *dp, &lv = *(dp=new (buf) ee66222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee66222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66222)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc222*)(dd6222*), 0, "ee66222");
+ check_base_class_offset(lv, (bb22*)(cc222*)(dd6222*), 0, "ee66222");
+ check_base_class_offset(lv, (cc222*)(dd6222*), 0, "ee66222");
+ check_base_class_offset(lv, (dd6222*), 0, "ee66222");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee66222.e");
+ test_class_info(&lv, &cd_ee66222);
+ dp->~ee66222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66222(Test_ee66222, "ee66222", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee66222C1Ev();
+extern void _ZN7ee66222D1Ev();
+Name_Map name_map_ee66222[] = {
+ NSPAIR(_ZN7ee66222C1Ev),
+ NSPAIR(_ZN7ee66222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc222;
+extern VTBL_ENTRY _ZTI5cc222[];
+extern VTBL_ENTRY _ZTV5cc222[];
+extern Class_Descriptor cd_dd6222;
+extern VTBL_ENTRY _ZTI6dd6222[];
+extern VTBL_ENTRY _ZTV6dd6222[];
+static Base_Class bases_ee66222[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc222, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6222, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee66222[];
+extern void _ZN7ee662223fooEv();
+extern void _ZN7ee662223barEv();
+static VTBL_ENTRY vtc_ee66222[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66222[0]),
+ (VTBL_ENTRY)&_ZN7ee662223fooEv,
+ (VTBL_ENTRY)&_ZN7ee662223barEv,
+};
+extern VTBL_ENTRY _ZTI7ee66222[];
+extern VTBL_ENTRY _ZTV7ee66222[];
+Class_Descriptor cd_ee66222 = { "ee66222", // class name
+ bases_ee66222, 4,
+ &(vtc_ee66222[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee66222),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66222),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 ee76222 : virtual dd6222 {
+ int e;
+ virtual void foo(); // _ZN7ee762223fooEv
+ virtual void bar(); // _ZN7ee762223barEv
+ ~ee76222(); // tgen
+ ee76222(); // tgen
+};
+//SIG(1 ee76222) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76222 ::foo(){vfunc_called(this, "_ZN7ee762223fooEv");}
+void ee76222 ::bar(){vfunc_called(this, "_ZN7ee762223barEv");}
+ee76222 ::~ee76222(){ note_dtor("ee76222", this);} // tgen
+ee76222 ::ee76222(){ note_ctor("ee76222", this);} // tgen
+
+static void Test_ee76222()
+{
+ extern Class_Descriptor cd_ee76222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee76222, buf);
+ ee76222 *dp, &lv = *(dp=new (buf) ee76222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee76222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76222)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc222*)(dd6222*), ABISELECT(16,8), "ee76222");
+ check_base_class_offset(lv, (bb22*)(cc222*)(dd6222*), ABISELECT(16,8), "ee76222");
+ check_base_class_offset(lv, (cc222*)(dd6222*), ABISELECT(16,8), "ee76222");
+ check_base_class_offset(lv, (dd6222*), ABISELECT(16,8), "ee76222");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76222.e");
+ test_class_info(&lv, &cd_ee76222);
+ dp->~ee76222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76222(Test_ee76222, "ee76222", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee76222C1Ev();
+extern void _ZN7ee76222D1Ev();
+Name_Map name_map_ee76222[] = {
+ NSPAIR(_ZN7ee76222C1Ev),
+ NSPAIR(_ZN7ee76222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc222;
+extern VTBL_ENTRY _ZTI5cc222[];
+extern VTBL_ENTRY _ZTV5cc222[];
+extern Class_Descriptor cd_dd6222;
+extern VTBL_ENTRY _ZTI6dd6222[];
+extern VTBL_ENTRY _ZTV6dd6222[];
+static Base_Class bases_ee76222[] = {
+ // 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_bb22, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc222, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6222, 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 _ZTI7ee76222[];
+extern void _ZN7ee762223fooEv();
+extern void _ZN7ee762223barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee762223fooEv,_ZTv0_n12_N7ee762223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee762223fooEv,_ZThn8_N7ee762223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee762223barEv,_ZTv0_n16_N7ee762223barEv)();
+extern void ABISELECT(_ZThn16_N7ee762223barEv,_ZThn8_N7ee762223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76222[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76222[0]),
+ (VTBL_ENTRY)&_ZN7ee762223fooEv,
+ (VTBL_ENTRY)&_ZN7ee762223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee762223fooEv,_ZTv0_n12_N7ee762223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee762223barEv,_ZTv0_n16_N7ee762223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee76222[];
+static VTT_ENTRY vtt_ee76222[] = {
+ {&(_ZTV7ee76222[3]), 3,11},
+ {&(_ZTV7ee76222[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee76222[];
+extern VTBL_ENTRY _ZTV7ee76222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76222[];
+static VTBL_ENTRY alt_thunk_names997[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee762223barEv,_ZTv0_n16_N7ee762223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee762223barEv,_ZThn8_N7ee762223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee762223fooEv,_ZTv0_n12_N7ee762223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee762223fooEv,_ZThn8_N7ee762223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76222 = { "ee76222", // class name
+ bases_ee76222, 4,
+ &(vtc_ee76222[0]), // expected_vtbl_contents
+ &(vtt_ee76222[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee76222),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76222),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76222),2, //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 dd7222 : virtual cc222 {
+ int d;
+ virtual void bar(); // _ZN6dd72223barEv
+ virtual void foo(); // _ZN6dd72223fooEv
+ ~dd7222(); // tgen
+ dd7222(); // tgen
+};
+//SIG(-1 dd7222) C1{ VBC2{ BC3{ BC4{ v2 v1 Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void dd7222 ::bar(){vfunc_called(this, "_ZN6dd72223barEv");}
+void dd7222 ::foo(){vfunc_called(this, "_ZN6dd72223fooEv");}
+dd7222 ::~dd7222(){ note_dtor("dd7222", this);} // tgen
+dd7222 ::dd7222(){ note_ctor("dd7222", this);} // tgen
+
+static void Test_dd7222()
+{
+ extern Class_Descriptor cd_dd7222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd7222, buf);
+ dd7222 *dp, &lv = *(dp=new (buf) dd7222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd7222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7222)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc222*), ABISELECT(16,8), "dd7222");
+ check_base_class_offset(lv, (bb22*)(cc222*), ABISELECT(16,8), "dd7222");
+ check_base_class_offset(lv, (cc222*), ABISELECT(16,8), "dd7222");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7222.d");
+ test_class_info(&lv, &cd_dd7222);
+ dp->~dd7222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7222(Test_dd7222, "dd7222", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd7222C1Ev();
+extern void _ZN6dd7222D1Ev();
+Name_Map name_map_dd7222[] = {
+ NSPAIR(_ZN6dd7222C1Ev),
+ NSPAIR(_ZN6dd7222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc222;
+extern VTBL_ENTRY _ZTI5cc222[];
+extern VTBL_ENTRY _ZTV5cc222[];
+static Base_Class bases_dd7222[] = {
+ // 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_bb22, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc222, 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 _ZTI6dd7222[];
+extern void _ZN6dd72223barEv();
+extern void _ZN6dd72223fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd72223fooEv,_ZTv0_n12_N6dd72223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72223fooEv,_ZThn8_N6dd72223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72223barEv,_ZTv0_n16_N6dd72223barEv)();
+extern void ABISELECT(_ZThn16_N6dd72223barEv,_ZThn8_N6dd72223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7222[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7222[0]),
+ (VTBL_ENTRY)&_ZN6dd72223barEv,
+ (VTBL_ENTRY)&_ZN6dd72223fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72223fooEv,_ZTv0_n12_N6dd72223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72223barEv,_ZTv0_n16_N6dd72223barEv),
+};
+extern VTBL_ENTRY _ZTV6dd7222[];
+static VTT_ENTRY vtt_dd7222[] = {
+ {&(_ZTV6dd7222[3]), 3,11},
+ {&(_ZTV6dd7222[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd7222[];
+extern VTBL_ENTRY _ZTV6dd7222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7222[];
+static VTBL_ENTRY alt_thunk_names998[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd72223barEv,_ZTv0_n16_N6dd72223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72223barEv,_ZThn8_N6dd72223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72223fooEv,_ZTv0_n12_N6dd72223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72223fooEv,_ZThn8_N6dd72223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7222 = { "dd7222", // class name
+ bases_dd7222, 3,
+ &(vtc_dd7222[0]), // expected_vtbl_contents
+ &(vtt_dd7222[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd7222),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7222),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7222),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names998,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07222 : dd7222 {
+ int e;
+ ~ee07222(); // tgen
+ ee07222(); // tgen
+};
+//SIG(1 ee07222) C1{ BC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee07222 ::~ee07222(){ note_dtor("ee07222", this);} // tgen
+ee07222 ::ee07222(){ note_ctor("ee07222", this);} // tgen
+
+static void Test_ee07222()
+{
+ extern Class_Descriptor cd_ee07222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee07222, buf);
+ ee07222 *dp, &lv = *(dp=new (buf) ee07222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee07222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07222)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc222*), ABISELECT(16,12), "ee07222");
+ check_base_class_offset(lv, (bb22*)(cc222*), ABISELECT(16,12), "ee07222");
+ check_base_class_offset(lv, (cc222*)(dd7222*), ABISELECT(16,12), "ee07222");
+ check_base_class_offset(lv, (dd7222*), 0, "ee07222");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07222.e");
+ test_class_info(&lv, &cd_ee07222);
+ dp->~ee07222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07222(Test_ee07222, "ee07222", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee07222C1Ev();
+extern void _ZN7ee07222D1Ev();
+Name_Map name_map_ee07222[] = {
+ NSPAIR(_ZN7ee07222C1Ev),
+ NSPAIR(_ZN7ee07222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc222;
+extern VTBL_ENTRY _ZTI5cc222[];
+extern VTBL_ENTRY _ZTV5cc222[];
+extern Class_Descriptor cd_dd7222;
+extern VTBL_ENTRY _ZTI6dd7222[];
+extern VTBL_ENTRY _ZTV6dd7222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7222[];
+static Base_Class bases_ee07222[] = {
+ // 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_bb22, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc222, 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_dd7222, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07222[];
+extern void _ZN6dd72223barEv();
+extern void _ZN6dd72223fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd72223fooEv,_ZTv0_n12_N6dd72223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72223fooEv,_ZThn12_N6dd72223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72223barEv,_ZTv0_n16_N6dd72223barEv)();
+extern void ABISELECT(_ZThn16_N6dd72223barEv,_ZThn12_N6dd72223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07222[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07222[0]),
+ (VTBL_ENTRY)&_ZN6dd72223barEv,
+ (VTBL_ENTRY)&_ZN6dd72223fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72223fooEv,_ZTv0_n12_N6dd72223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72223barEv,_ZTv0_n16_N6dd72223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee07222[];
+extern void _ZN6dd72223barEv();
+extern void _ZN6dd72223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7222__7ee07222[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7222[0]),
+ (VTBL_ENTRY)&_ZN6dd72223barEv,
+ (VTBL_ENTRY)&_ZN6dd72223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72223fooEv,_ZTv0_n12_N6dd72223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72223fooEv,_ZThn12_N6dd72223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72223barEv,_ZTv0_n16_N6dd72223barEv)();
+extern void ABISELECT(_ZThn16_N6dd72223barEv,_ZThn12_N6dd72223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc222__6dd7222__7ee07222[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72223fooEv,_ZTv0_n12_N6dd72223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72223barEv,_ZTv0_n16_N6dd72223barEv),
+};
+static VTT_ENTRY vtt_ee07222[] = {
+ {&(_ZTV7ee07222[3]), 3,11},
+ {&(_tg__ZTV6dd7222__7ee07222[3]), 3,5},
+ {&(_tg__ZTV5cc222__6dd7222__7ee07222[4]), 4,6},
+ {&(_ZTV7ee07222[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee07222[];
+extern VTBL_ENTRY _ZTV7ee07222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07222[];
+static VTBL_ENTRY alt_thunk_names999[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd72223barEv,_ZTv0_n16_N6dd72223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72223barEv,_ZThn12_N6dd72223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72223barEv,_ZThn12_N6dd72223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72223fooEv,_ZTv0_n12_N6dd72223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72223fooEv,_ZThn12_N6dd72223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72223fooEv,_ZThn12_N6dd72223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07222 = { "ee07222", // class name
+ bases_ee07222, 4,
+ &(vtc_ee07222[0]), // expected_vtbl_contents
+ &(vtt_ee07222[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee07222),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07222),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07222),4, //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 ee17222 : virtual dd7222 {
+ int e;
+ ~ee17222(); // tgen
+ ee17222(); // tgen
+};
+//SIG(1 ee17222) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee17222 ::~ee17222(){ note_dtor("ee17222", this);} // tgen
+ee17222 ::ee17222(){ note_ctor("ee17222", this);} // tgen
+
+static void Test_ee17222()
+{
+ extern Class_Descriptor cd_ee17222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee17222, buf);
+ ee17222 *dp, &lv = *(dp=new (buf) ee17222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee17222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17222)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc222*), ABISELECT(32,16), "ee17222");
+ check_base_class_offset(lv, (bb22*)(cc222*), ABISELECT(32,16), "ee17222");
+ check_base_class_offset(lv, (cc222*)(dd7222*), ABISELECT(32,16), "ee17222");
+ check_base_class_offset(lv, (dd7222*), ABISELECT(16,8), "ee17222");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17222.e");
+ test_class_info(&lv, &cd_ee17222);
+ dp->~ee17222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17222(Test_ee17222, "ee17222", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee17222C1Ev();
+extern void _ZN7ee17222D1Ev();
+Name_Map name_map_ee17222[] = {
+ NSPAIR(_ZN7ee17222C1Ev),
+ NSPAIR(_ZN7ee17222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc222;
+extern VTBL_ENTRY _ZTI5cc222[];
+extern VTBL_ENTRY _ZTV5cc222[];
+extern Class_Descriptor cd_dd7222;
+extern VTBL_ENTRY _ZTI6dd7222[];
+extern VTBL_ENTRY _ZTV6dd7222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7222[];
+static Base_Class bases_ee17222[] = {
+ // 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_bb22, 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_cc222, 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_dd7222, 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 _ZTI7ee17222[];
+extern void _ZN6dd72223barEv();
+extern void _ZN6dd72223fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd72223fooEv,_ZTv0_n12_N6dd72223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72223fooEv,_ZThn8_N6dd72223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72223barEv,_ZTv0_n16_N6dd72223barEv)();
+extern void ABISELECT(_ZThn16_N6dd72223barEv,_ZThn8_N6dd72223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17222[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17222[0]),
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17222[0]),
+ (VTBL_ENTRY)&_ZN6dd72223barEv,
+ (VTBL_ENTRY)&_ZN6dd72223fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72223fooEv,_ZTv0_n12_N6dd72223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72223barEv,_ZTv0_n16_N6dd72223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee17222[];
+extern void _ZN6dd72223barEv();
+extern void _ZN6dd72223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7222__7ee17222[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7222[0]),
+ (VTBL_ENTRY)&_ZN6dd72223barEv,
+ (VTBL_ENTRY)&_ZN6dd72223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72223fooEv,_ZTv0_n12_N6dd72223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72223fooEv,_ZThn8_N6dd72223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72223barEv,_ZTv0_n16_N6dd72223barEv)();
+extern void ABISELECT(_ZThn16_N6dd72223barEv,_ZThn8_N6dd72223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc222__6dd7222__7ee17222[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72223fooEv,_ZTv0_n12_N6dd72223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72223barEv,_ZTv0_n16_N6dd72223barEv),
+};
+static VTT_ENTRY vtt_ee17222[] = {
+ {&(_ZTV7ee17222[4]), 4,17},
+ {&(_ZTV7ee17222[9]), 9,17},
+ {&(_ZTV7ee17222[15]), 15,17},
+ {&(_tg__ZTV6dd7222__7ee17222[3]), 3,5},
+ {&(_tg__ZTV5cc222__6dd7222__7ee17222[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee17222[];
+extern VTBL_ENTRY _ZTV7ee17222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17222[];
+static VTBL_ENTRY alt_thunk_names1000[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd72223barEv,_ZTv0_n16_N6dd72223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72223barEv,_ZThn8_N6dd72223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72223barEv,_ZThn8_N6dd72223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72223fooEv,_ZTv0_n12_N6dd72223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72223fooEv,_ZThn8_N6dd72223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72223fooEv,_ZThn8_N6dd72223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17222 = { "ee17222", // class name
+ bases_ee17222, 4,
+ &(vtc_ee17222[0]), // expected_vtbl_contents
+ &(vtt_ee17222[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee17222),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17222),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17222),5, //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 ee27222 : dd7222 {
+ int e;
+ virtual void foo(); // _ZN7ee272223fooEv
+ ~ee27222(); // tgen
+ ee27222(); // tgen
+};
+//SIG(1 ee27222) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27222 ::foo(){vfunc_called(this, "_ZN7ee272223fooEv");}
+ee27222 ::~ee27222(){ note_dtor("ee27222", this);} // tgen
+ee27222 ::ee27222(){ note_ctor("ee27222", this);} // tgen
+
+static void Test_ee27222()
+{
+ extern Class_Descriptor cd_ee27222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee27222, buf);
+ ee27222 *dp, &lv = *(dp=new (buf) ee27222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee27222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27222)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc222*), ABISELECT(16,12), "ee27222");
+ check_base_class_offset(lv, (bb22*)(cc222*), ABISELECT(16,12), "ee27222");
+ check_base_class_offset(lv, (cc222*)(dd7222*), ABISELECT(16,12), "ee27222");
+ check_base_class_offset(lv, (dd7222*), 0, "ee27222");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27222.e");
+ test_class_info(&lv, &cd_ee27222);
+ dp->~ee27222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27222(Test_ee27222, "ee27222", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee27222C1Ev();
+extern void _ZN7ee27222D1Ev();
+Name_Map name_map_ee27222[] = {
+ NSPAIR(_ZN7ee27222C1Ev),
+ NSPAIR(_ZN7ee27222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc222;
+extern VTBL_ENTRY _ZTI5cc222[];
+extern VTBL_ENTRY _ZTV5cc222[];
+extern Class_Descriptor cd_dd7222;
+extern VTBL_ENTRY _ZTI6dd7222[];
+extern VTBL_ENTRY _ZTV6dd7222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7222[];
+static Base_Class bases_ee27222[] = {
+ // 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_bb22, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc222, 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_dd7222, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27222[];
+extern void _ZN6dd72223barEv();
+extern void _ZN7ee272223fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee272223fooEv,_ZTv0_n12_N7ee272223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee272223fooEv,_ZThn12_N7ee272223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72223barEv,_ZTv0_n16_N6dd72223barEv)();
+extern void ABISELECT(_ZThn16_N6dd72223barEv,_ZThn12_N6dd72223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27222[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27222[0]),
+ (VTBL_ENTRY)&_ZN6dd72223barEv,
+ (VTBL_ENTRY)&_ZN7ee272223fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee272223fooEv,_ZTv0_n12_N7ee272223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72223barEv,_ZTv0_n16_N6dd72223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee27222[];
+extern void _ZN6dd72223barEv();
+extern void _ZN6dd72223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7222__7ee27222[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7222[0]),
+ (VTBL_ENTRY)&_ZN6dd72223barEv,
+ (VTBL_ENTRY)&_ZN6dd72223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72223fooEv,_ZTv0_n12_N6dd72223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72223fooEv,_ZThn12_N6dd72223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72223barEv,_ZTv0_n16_N6dd72223barEv)();
+extern void ABISELECT(_ZThn16_N6dd72223barEv,_ZThn12_N6dd72223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc222__6dd7222__7ee27222[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72223fooEv,_ZTv0_n12_N6dd72223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72223barEv,_ZTv0_n16_N6dd72223barEv),
+};
+static VTT_ENTRY vtt_ee27222[] = {
+ {&(_ZTV7ee27222[3]), 3,11},
+ {&(_tg__ZTV6dd7222__7ee27222[3]), 3,5},
+ {&(_tg__ZTV5cc222__6dd7222__7ee27222[4]), 4,6},
+ {&(_ZTV7ee27222[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee27222[];
+extern VTBL_ENTRY _ZTV7ee27222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27222[];
+static VTBL_ENTRY alt_thunk_names1001[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72223fooEv,_ZTv0_n12_N6dd72223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72223fooEv,_ZThn12_N6dd72223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd72223barEv,_ZTv0_n16_N6dd72223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72223barEv,_ZThn12_N6dd72223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72223barEv,_ZThn12_N6dd72223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee272223fooEv,_ZTv0_n12_N7ee272223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee272223fooEv,_ZThn12_N7ee272223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27222 = { "ee27222", // class name
+ bases_ee27222, 4,
+ &(vtc_ee27222[0]), // expected_vtbl_contents
+ &(vtt_ee27222[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee27222),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27222),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27222),4, //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 ee37222 : virtual dd7222 {
+ int e;
+ virtual void foo(); // _ZN7ee372223fooEv
+ ~ee37222(); // tgen
+ ee37222(); // tgen
+};
+//SIG(1 ee37222) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37222 ::foo(){vfunc_called(this, "_ZN7ee372223fooEv");}
+ee37222 ::~ee37222(){ note_dtor("ee37222", this);} // tgen
+ee37222 ::ee37222(){ note_ctor("ee37222", this);} // tgen
+
+static void Test_ee37222()
+{
+ extern Class_Descriptor cd_ee37222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee37222, buf);
+ ee37222 *dp, &lv = *(dp=new (buf) ee37222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee37222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37222)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc222*), ABISELECT(32,16), "ee37222");
+ check_base_class_offset(lv, (bb22*)(cc222*), ABISELECT(32,16), "ee37222");
+ check_base_class_offset(lv, (cc222*)(dd7222*), ABISELECT(32,16), "ee37222");
+ check_base_class_offset(lv, (dd7222*), ABISELECT(16,8), "ee37222");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37222.e");
+ test_class_info(&lv, &cd_ee37222);
+ dp->~ee37222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37222(Test_ee37222, "ee37222", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee37222C1Ev();
+extern void _ZN7ee37222D1Ev();
+Name_Map name_map_ee37222[] = {
+ NSPAIR(_ZN7ee37222C1Ev),
+ NSPAIR(_ZN7ee37222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc222;
+extern VTBL_ENTRY _ZTI5cc222[];
+extern VTBL_ENTRY _ZTV5cc222[];
+extern Class_Descriptor cd_dd7222;
+extern VTBL_ENTRY _ZTI6dd7222[];
+extern VTBL_ENTRY _ZTV6dd7222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7222[];
+static Base_Class bases_ee37222[] = {
+ // 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_bb22, 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_cc222, 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_dd7222, 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 _ZTI7ee37222[];
+extern void _ZN7ee372223fooEv();
+extern void _ZN6dd72223barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee372223fooEv,_ZTv0_n20_N7ee372223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee372223fooEv,_ZThn8_N7ee372223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee372223fooEv,_ZTv0_n12_N7ee372223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee372223fooEv,_ZThn16_N7ee372223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72223barEv,_ZTv0_n16_N6dd72223barEv)();
+extern void ABISELECT(_ZThn16_N6dd72223barEv,_ZThn8_N6dd72223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37222[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37222[0]),
+ (VTBL_ENTRY)&_ZN7ee372223fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37222[0]),
+ (VTBL_ENTRY)&_ZN6dd72223barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee372223fooEv,_ZTv0_n20_N7ee372223fooEv),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee372223fooEv,_ZTv0_n12_N7ee372223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72223barEv,_ZTv0_n16_N6dd72223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee37222[];
+extern void _ZN6dd72223barEv();
+extern void _ZN6dd72223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7222__7ee37222[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7222[0]),
+ (VTBL_ENTRY)&_ZN6dd72223barEv,
+ (VTBL_ENTRY)&_ZN6dd72223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72223fooEv,_ZTv0_n12_N6dd72223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72223fooEv,_ZThn8_N6dd72223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72223barEv,_ZTv0_n16_N6dd72223barEv)();
+extern void ABISELECT(_ZThn16_N6dd72223barEv,_ZThn8_N6dd72223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc222__6dd7222__7ee37222[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72223fooEv,_ZTv0_n12_N6dd72223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72223barEv,_ZTv0_n16_N6dd72223barEv),
+};
+static VTT_ENTRY vtt_ee37222[] = {
+ {&(_ZTV7ee37222[4]), 4,18},
+ {&(_ZTV7ee37222[10]), 10,18},
+ {&(_ZTV7ee37222[16]), 16,18},
+ {&(_tg__ZTV6dd7222__7ee37222[3]), 3,5},
+ {&(_tg__ZTV5cc222__6dd7222__7ee37222[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee37222[];
+extern VTBL_ENTRY _ZTV7ee37222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37222[];
+static VTBL_ENTRY alt_thunk_names1002[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72223fooEv,_ZTv0_n12_N6dd72223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72223fooEv,_ZThn8_N6dd72223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd72223barEv,_ZTv0_n16_N6dd72223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72223barEv,_ZThn8_N6dd72223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72223barEv,_ZThn8_N6dd72223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee372223fooEv,_ZTv0_n12_N7ee372223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee372223fooEv,_ZThn16_N7ee372223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee372223fooEv,_ZTv0_n20_N7ee372223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee372223fooEv,_ZThn8_N7ee372223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37222 = { "ee37222", // class name
+ bases_ee37222, 4,
+ &(vtc_ee37222[0]), // expected_vtbl_contents
+ &(vtt_ee37222[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee37222),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37222),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37222),5, //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 ee47222 : dd7222 {
+ int e;
+ virtual void bar(); // _ZN7ee472223barEv
+ ~ee47222(); // tgen
+ ee47222(); // tgen
+};
+//SIG(1 ee47222) C1{ BC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47222 ::bar(){vfunc_called(this, "_ZN7ee472223barEv");}
+ee47222 ::~ee47222(){ note_dtor("ee47222", this);} // tgen
+ee47222 ::ee47222(){ note_ctor("ee47222", this);} // tgen
+
+static void Test_ee47222()
+{
+ extern Class_Descriptor cd_ee47222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee47222, buf);
+ ee47222 *dp, &lv = *(dp=new (buf) ee47222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee47222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47222)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc222*), ABISELECT(16,12), "ee47222");
+ check_base_class_offset(lv, (bb22*)(cc222*), ABISELECT(16,12), "ee47222");
+ check_base_class_offset(lv, (cc222*)(dd7222*), ABISELECT(16,12), "ee47222");
+ check_base_class_offset(lv, (dd7222*), 0, "ee47222");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47222.e");
+ test_class_info(&lv, &cd_ee47222);
+ dp->~ee47222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47222(Test_ee47222, "ee47222", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee47222C1Ev();
+extern void _ZN7ee47222D1Ev();
+Name_Map name_map_ee47222[] = {
+ NSPAIR(_ZN7ee47222C1Ev),
+ NSPAIR(_ZN7ee47222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc222;
+extern VTBL_ENTRY _ZTI5cc222[];
+extern VTBL_ENTRY _ZTV5cc222[];
+extern Class_Descriptor cd_dd7222;
+extern VTBL_ENTRY _ZTI6dd7222[];
+extern VTBL_ENTRY _ZTV6dd7222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7222[];
+static Base_Class bases_ee47222[] = {
+ // 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_bb22, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc222, 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_dd7222, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47222[];
+extern void _ZN7ee472223barEv();
+extern void _ZN6dd72223fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd72223fooEv,_ZTv0_n12_N6dd72223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72223fooEv,_ZThn12_N6dd72223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee472223barEv,_ZTv0_n16_N7ee472223barEv)();
+extern void ABISELECT(_ZThn16_N7ee472223barEv,_ZThn12_N7ee472223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47222[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47222[0]),
+ (VTBL_ENTRY)&_ZN7ee472223barEv,
+ (VTBL_ENTRY)&_ZN6dd72223fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72223fooEv,_ZTv0_n12_N6dd72223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee472223barEv,_ZTv0_n16_N7ee472223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee47222[];
+extern void _ZN6dd72223barEv();
+extern void _ZN6dd72223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7222__7ee47222[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7222[0]),
+ (VTBL_ENTRY)&_ZN6dd72223barEv,
+ (VTBL_ENTRY)&_ZN6dd72223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72223fooEv,_ZTv0_n12_N6dd72223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72223fooEv,_ZThn12_N6dd72223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72223barEv,_ZTv0_n16_N6dd72223barEv)();
+extern void ABISELECT(_ZThn16_N6dd72223barEv,_ZThn12_N6dd72223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc222__6dd7222__7ee47222[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72223fooEv,_ZTv0_n12_N6dd72223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72223barEv,_ZTv0_n16_N6dd72223barEv),
+};
+static VTT_ENTRY vtt_ee47222[] = {
+ {&(_ZTV7ee47222[3]), 3,11},
+ {&(_tg__ZTV6dd7222__7ee47222[3]), 3,5},
+ {&(_tg__ZTV5cc222__6dd7222__7ee47222[4]), 4,6},
+ {&(_ZTV7ee47222[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee47222[];
+extern VTBL_ENTRY _ZTV7ee47222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47222[];
+static VTBL_ENTRY alt_thunk_names1003[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd72223barEv,_ZTv0_n16_N6dd72223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72223barEv,_ZThn12_N6dd72223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee472223barEv,_ZTv0_n16_N7ee472223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee472223barEv,_ZThn12_N7ee472223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72223fooEv,_ZTv0_n12_N6dd72223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72223fooEv,_ZThn12_N6dd72223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72223fooEv,_ZThn12_N6dd72223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47222 = { "ee47222", // class name
+ bases_ee47222, 4,
+ &(vtc_ee47222[0]), // expected_vtbl_contents
+ &(vtt_ee47222[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee47222),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47222),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47222),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1003,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee57222 : virtual dd7222 {
+ int e;
+ virtual void bar(); // _ZN7ee572223barEv
+ ~ee57222(); // tgen
+ ee57222(); // tgen
+};
+//SIG(1 ee57222) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57222 ::bar(){vfunc_called(this, "_ZN7ee572223barEv");}
+ee57222 ::~ee57222(){ note_dtor("ee57222", this);} // tgen
+ee57222 ::ee57222(){ note_ctor("ee57222", this);} // tgen
+
+static void Test_ee57222()
+{
+ extern Class_Descriptor cd_ee57222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee57222, buf);
+ ee57222 *dp, &lv = *(dp=new (buf) ee57222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee57222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57222)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc222*), ABISELECT(32,16), "ee57222");
+ check_base_class_offset(lv, (bb22*)(cc222*), ABISELECT(32,16), "ee57222");
+ check_base_class_offset(lv, (cc222*)(dd7222*), ABISELECT(32,16), "ee57222");
+ check_base_class_offset(lv, (dd7222*), ABISELECT(16,8), "ee57222");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57222.e");
+ test_class_info(&lv, &cd_ee57222);
+ dp->~ee57222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57222(Test_ee57222, "ee57222", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee57222C1Ev();
+extern void _ZN7ee57222D1Ev();
+Name_Map name_map_ee57222[] = {
+ NSPAIR(_ZN7ee57222C1Ev),
+ NSPAIR(_ZN7ee57222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc222;
+extern VTBL_ENTRY _ZTI5cc222[];
+extern VTBL_ENTRY _ZTV5cc222[];
+extern Class_Descriptor cd_dd7222;
+extern VTBL_ENTRY _ZTI6dd7222[];
+extern VTBL_ENTRY _ZTV6dd7222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7222[];
+static Base_Class bases_ee57222[] = {
+ // 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_bb22, 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_cc222, 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_dd7222, 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 _ZTI7ee57222[];
+extern void _ZN7ee572223barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee572223barEv,_ZTv0_n16_N7ee572223barEv)();
+extern void ABISELECT(_ZThn16_N7ee572223barEv,_ZThn8_N7ee572223barEv)() __attribute__((weak));
+extern void _ZN6dd72223fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd72223fooEv,_ZTv0_n12_N6dd72223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72223fooEv,_ZThn8_N6dd72223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee572223barEv,_ZTv0_n16_N7ee572223barEv)();
+extern void ABISELECT(_ZThn32_N7ee572223barEv,_ZThn16_N7ee572223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57222[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57222[0]),
+ (VTBL_ENTRY)&_ZN7ee572223barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee572223barEv,_ZTv0_n16_N7ee572223barEv),
+ (VTBL_ENTRY)&_ZN6dd72223fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72223fooEv,_ZTv0_n12_N6dd72223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee572223barEv,_ZTv0_n16_N7ee572223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee57222[];
+extern void _ZN6dd72223barEv();
+extern void _ZN6dd72223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7222__7ee57222[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7222[0]),
+ (VTBL_ENTRY)&_ZN6dd72223barEv,
+ (VTBL_ENTRY)&_ZN6dd72223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72223fooEv,_ZTv0_n12_N6dd72223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72223fooEv,_ZThn8_N6dd72223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72223barEv,_ZTv0_n16_N6dd72223barEv)();
+extern void ABISELECT(_ZThn16_N6dd72223barEv,_ZThn8_N6dd72223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc222__6dd7222__7ee57222[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72223fooEv,_ZTv0_n12_N6dd72223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72223barEv,_ZTv0_n16_N6dd72223barEv),
+};
+static VTT_ENTRY vtt_ee57222[] = {
+ {&(_ZTV7ee57222[4]), 4,18},
+ {&(_ZTV7ee57222[10]), 10,18},
+ {&(_ZTV7ee57222[16]), 16,18},
+ {&(_tg__ZTV6dd7222__7ee57222[3]), 3,5},
+ {&(_tg__ZTV5cc222__6dd7222__7ee57222[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee57222[];
+extern VTBL_ENTRY _ZTV7ee57222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57222[];
+static VTBL_ENTRY alt_thunk_names1004[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd72223barEv,_ZTv0_n16_N6dd72223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72223barEv,_ZThn8_N6dd72223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72223fooEv,_ZTv0_n12_N6dd72223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72223fooEv,_ZThn8_N6dd72223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72223fooEv,_ZThn8_N6dd72223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee572223barEv,_ZTv0_n16_N7ee572223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee572223barEv,_ZThn16_N7ee572223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee572223barEv,_ZThn8_N7ee572223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57222 = { "ee57222", // class name
+ bases_ee57222, 4,
+ &(vtc_ee57222[0]), // expected_vtbl_contents
+ &(vtt_ee57222[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee57222),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57222),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57222),5, //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 ee67222 : dd7222 {
+ int e;
+ virtual void foo(); // _ZN7ee672223fooEv
+ virtual void bar(); // _ZN7ee672223barEv
+ ~ee67222(); // tgen
+ ee67222(); // tgen
+};
+//SIG(1 ee67222) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67222 ::foo(){vfunc_called(this, "_ZN7ee672223fooEv");}
+void ee67222 ::bar(){vfunc_called(this, "_ZN7ee672223barEv");}
+ee67222 ::~ee67222(){ note_dtor("ee67222", this);} // tgen
+ee67222 ::ee67222(){ note_ctor("ee67222", this);} // tgen
+
+static void Test_ee67222()
+{
+ extern Class_Descriptor cd_ee67222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee67222, buf);
+ ee67222 *dp, &lv = *(dp=new (buf) ee67222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee67222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67222)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc222*), ABISELECT(16,12), "ee67222");
+ check_base_class_offset(lv, (bb22*)(cc222*), ABISELECT(16,12), "ee67222");
+ check_base_class_offset(lv, (cc222*)(dd7222*), ABISELECT(16,12), "ee67222");
+ check_base_class_offset(lv, (dd7222*), 0, "ee67222");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67222.e");
+ test_class_info(&lv, &cd_ee67222);
+ dp->~ee67222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67222(Test_ee67222, "ee67222", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee67222C1Ev();
+extern void _ZN7ee67222D1Ev();
+Name_Map name_map_ee67222[] = {
+ NSPAIR(_ZN7ee67222C1Ev),
+ NSPAIR(_ZN7ee67222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc222;
+extern VTBL_ENTRY _ZTI5cc222[];
+extern VTBL_ENTRY _ZTV5cc222[];
+extern Class_Descriptor cd_dd7222;
+extern VTBL_ENTRY _ZTI6dd7222[];
+extern VTBL_ENTRY _ZTV6dd7222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7222[];
+static Base_Class bases_ee67222[] = {
+ // 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_bb22, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc222, 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_dd7222, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67222[];
+extern void _ZN7ee672223barEv();
+extern void _ZN7ee672223fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee672223fooEv,_ZTv0_n12_N7ee672223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee672223fooEv,_ZThn12_N7ee672223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee672223barEv,_ZTv0_n16_N7ee672223barEv)();
+extern void ABISELECT(_ZThn16_N7ee672223barEv,_ZThn12_N7ee672223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67222[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67222[0]),
+ (VTBL_ENTRY)&_ZN7ee672223barEv,
+ (VTBL_ENTRY)&_ZN7ee672223fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee672223fooEv,_ZTv0_n12_N7ee672223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee672223barEv,_ZTv0_n16_N7ee672223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee67222[];
+extern void _ZN6dd72223barEv();
+extern void _ZN6dd72223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7222__7ee67222[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7222[0]),
+ (VTBL_ENTRY)&_ZN6dd72223barEv,
+ (VTBL_ENTRY)&_ZN6dd72223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72223fooEv,_ZTv0_n12_N6dd72223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72223fooEv,_ZThn12_N6dd72223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72223barEv,_ZTv0_n16_N6dd72223barEv)();
+extern void ABISELECT(_ZThn16_N6dd72223barEv,_ZThn12_N6dd72223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc222__6dd7222__7ee67222[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72223fooEv,_ZTv0_n12_N6dd72223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72223barEv,_ZTv0_n16_N6dd72223barEv),
+};
+static VTT_ENTRY vtt_ee67222[] = {
+ {&(_ZTV7ee67222[3]), 3,11},
+ {&(_tg__ZTV6dd7222__7ee67222[3]), 3,5},
+ {&(_tg__ZTV5cc222__6dd7222__7ee67222[4]), 4,6},
+ {&(_ZTV7ee67222[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee67222[];
+extern VTBL_ENTRY _ZTV7ee67222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67222[];
+static VTBL_ENTRY alt_thunk_names1005[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd72223barEv,_ZTv0_n16_N6dd72223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72223barEv,_ZThn12_N6dd72223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72223fooEv,_ZTv0_n12_N6dd72223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72223fooEv,_ZThn12_N6dd72223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee672223barEv,_ZTv0_n16_N7ee672223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee672223barEv,_ZThn12_N7ee672223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee672223fooEv,_ZTv0_n12_N7ee672223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee672223fooEv,_ZThn12_N7ee672223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67222 = { "ee67222", // class name
+ bases_ee67222, 4,
+ &(vtc_ee67222[0]), // expected_vtbl_contents
+ &(vtt_ee67222[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee67222),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67222),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67222),4, //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 ee77222 : virtual dd7222 {
+ int e;
+ virtual void foo(); // _ZN7ee772223fooEv
+ virtual void bar(); // _ZN7ee772223barEv
+ ~ee77222(); // tgen
+ ee77222(); // tgen
+};
+//SIG(1 ee77222) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77222 ::foo(){vfunc_called(this, "_ZN7ee772223fooEv");}
+void ee77222 ::bar(){vfunc_called(this, "_ZN7ee772223barEv");}
+ee77222 ::~ee77222(){ note_dtor("ee77222", this);} // tgen
+ee77222 ::ee77222(){ note_ctor("ee77222", this);} // tgen
+
+static void Test_ee77222()
+{
+ extern Class_Descriptor cd_ee77222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee77222, buf);
+ ee77222 *dp, &lv = *(dp=new (buf) ee77222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee77222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77222)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc222*), ABISELECT(32,16), "ee77222");
+ check_base_class_offset(lv, (bb22*)(cc222*), ABISELECT(32,16), "ee77222");
+ check_base_class_offset(lv, (cc222*)(dd7222*), ABISELECT(32,16), "ee77222");
+ check_base_class_offset(lv, (dd7222*), ABISELECT(16,8), "ee77222");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77222.e");
+ test_class_info(&lv, &cd_ee77222);
+ dp->~ee77222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77222(Test_ee77222, "ee77222", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee77222C1Ev();
+extern void _ZN7ee77222D1Ev();
+Name_Map name_map_ee77222[] = {
+ NSPAIR(_ZN7ee77222C1Ev),
+ NSPAIR(_ZN7ee77222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc222;
+extern VTBL_ENTRY _ZTI5cc222[];
+extern VTBL_ENTRY _ZTV5cc222[];
+extern Class_Descriptor cd_dd7222;
+extern VTBL_ENTRY _ZTI6dd7222[];
+extern VTBL_ENTRY _ZTV6dd7222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7222[];
+static Base_Class bases_ee77222[] = {
+ // 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_bb22, 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_cc222, 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_dd7222, ABISELECT(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 _ZTI7ee77222[];
+extern void _ZN7ee772223fooEv();
+extern void _ZN7ee772223barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee772223barEv,_ZTv0_n16_N7ee772223barEv)();
+extern void ABISELECT(_ZThn16_N7ee772223barEv,_ZThn8_N7ee772223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee772223fooEv,_ZTv0_n20_N7ee772223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee772223fooEv,_ZThn8_N7ee772223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee772223fooEv,_ZTv0_n12_N7ee772223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee772223fooEv,_ZThn16_N7ee772223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee772223barEv,_ZTv0_n16_N7ee772223barEv)();
+extern void ABISELECT(_ZThn32_N7ee772223barEv,_ZThn16_N7ee772223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77222[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77222[0]),
+ (VTBL_ENTRY)&_ZN7ee772223fooEv,
+ (VTBL_ENTRY)&_ZN7ee772223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee772223barEv,_ZTv0_n16_N7ee772223barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee772223fooEv,_ZTv0_n20_N7ee772223fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee772223fooEv,_ZTv0_n12_N7ee772223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee772223barEv,_ZTv0_n16_N7ee772223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee77222[];
+extern void _ZN6dd72223barEv();
+extern void _ZN6dd72223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7222__7ee77222[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7222[0]),
+ (VTBL_ENTRY)&_ZN6dd72223barEv,
+ (VTBL_ENTRY)&_ZN6dd72223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72223fooEv,_ZTv0_n12_N6dd72223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72223fooEv,_ZThn8_N6dd72223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72223barEv,_ZTv0_n16_N6dd72223barEv)();
+extern void ABISELECT(_ZThn16_N6dd72223barEv,_ZThn8_N6dd72223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc222__6dd7222__7ee77222[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72223fooEv,_ZTv0_n12_N6dd72223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72223barEv,_ZTv0_n16_N6dd72223barEv),
+};
+static VTT_ENTRY vtt_ee77222[] = {
+ {&(_ZTV7ee77222[4]), 4,19},
+ {&(_ZTV7ee77222[11]), 11,19},
+ {&(_ZTV7ee77222[17]), 17,19},
+ {&(_tg__ZTV6dd7222__7ee77222[3]), 3,5},
+ {&(_tg__ZTV5cc222__6dd7222__7ee77222[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee77222[];
+extern VTBL_ENTRY _ZTV7ee77222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77222[];
+static VTBL_ENTRY alt_thunk_names1006[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd72223barEv,_ZTv0_n16_N6dd72223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72223barEv,_ZThn8_N6dd72223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72223fooEv,_ZTv0_n12_N6dd72223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72223fooEv,_ZThn8_N6dd72223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee772223fooEv,_ZTv0_n12_N7ee772223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee772223fooEv,_ZThn16_N7ee772223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee772223fooEv,_ZTv0_n20_N7ee772223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee772223fooEv,_ZThn8_N7ee772223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee772223barEv,_ZTv0_n16_N7ee772223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee772223barEv,_ZThn16_N7ee772223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee772223barEv,_ZThn8_N7ee772223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77222 = { "ee77222", // class name
+ bases_ee77222, 4,
+ &(vtc_ee77222[0]), // expected_vtbl_contents
+ &(vtt_ee77222[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee77222),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77222),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77222),5, //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 cc322 : virtual bb22 {
+ int c;
+ virtual void foo(); // _ZN5cc3223fooEv
+ ~cc322(); // tgen
+ cc322(); // tgen
+};
+//SIG(-1 cc322) C1{ VBC2{ BC3{ v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void cc322 ::foo(){vfunc_called(this, "_ZN5cc3223fooEv");}
+cc322 ::~cc322(){ note_dtor("cc322", this);} // tgen
+cc322 ::cc322(){ note_ctor("cc322", this);} // tgen
+
+static void Test_cc322()
+{
+ extern Class_Descriptor cd_cc322;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_cc322, buf);
+ cc322 *dp, &lv = *(dp=new (buf) cc322());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(cc322)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc322)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(16,8), "cc322");
+ check_base_class_offset(lv, (bb22*), ABISELECT(16,8), "cc322");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc322.c");
+ test_class_info(&lv, &cd_cc322);
+ dp->~cc322();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc322(Test_cc322, "cc322", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN5cc322C1Ev();
+extern void _ZN5cc322D1Ev();
+Name_Map name_map_cc322[] = {
+ NSPAIR(_ZN5cc322C1Ev),
+ NSPAIR(_ZN5cc322D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+static Base_Class bases_cc322[] = {
+ // 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_bb22, 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 _ZTI5cc322[];
+extern void _ZN5cc3223fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_cc322[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV5cc322[];
+static VTT_ENTRY vtt_cc322[] = {
+ {&(_ZTV5cc322[3]), 3,10},
+ {&(_ZTV5cc322[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI5cc322[];
+extern VTBL_ENTRY _ZTV5cc322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc322[];
+static VTBL_ENTRY alt_thunk_names1007[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_cc322 = { "cc322", // class name
+ bases_cc322, 2,
+ &(vtc_cc322[0]), // expected_vtbl_contents
+ &(vtt_cc322[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI5cc322),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV5cc322),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5cc322),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1007,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd0322 : cc322 {
+ int d;
+ ~dd0322(); // tgen
+ dd0322(); // tgen
+};
+//SIG(-1 dd0322) C1{ BC2{ VBC3{ BC4{ v1 v2 Fi} v1 Fi} v1 Fi} Fi}
+
+
+dd0322 ::~dd0322(){ note_dtor("dd0322", this);} // tgen
+dd0322 ::dd0322(){ note_ctor("dd0322", this);} // tgen
+
+static void Test_dd0322()
+{
+ extern Class_Descriptor cd_dd0322;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd0322, buf);
+ dd0322 *dp, &lv = *(dp=new (buf) dd0322());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd0322)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0322)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(16,12), "dd0322");
+ check_base_class_offset(lv, (bb22*)(cc322*), ABISELECT(16,12), "dd0322");
+ check_base_class_offset(lv, (cc322*), 0, "dd0322");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd0322.d");
+ test_class_info(&lv, &cd_dd0322);
+ dp->~dd0322();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0322(Test_dd0322, "dd0322", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd0322C1Ev();
+extern void _ZN6dd0322D1Ev();
+Name_Map name_map_dd0322[] = {
+ NSPAIR(_ZN6dd0322C1Ev),
+ NSPAIR(_ZN6dd0322D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc322;
+extern VTBL_ENTRY _ZTI5cc322[];
+extern VTBL_ENTRY _ZTV5cc322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc322[];
+static Base_Class bases_dd0322[] = {
+ // 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_bb22, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc322, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd0322[];
+extern void _ZN5cc3223fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn12_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_dd0322[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV6dd0322[];
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc322__6dd0322[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn12_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc322__6dd0322[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_dd0322[] = {
+ {&(_ZTV6dd0322[3]), 3,10},
+ {&(_tg__ZTV5cc322__6dd0322[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc322__6dd0322[4]), 4,6},
+ {&(_ZTV6dd0322[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd0322[];
+extern VTBL_ENTRY _ZTV6dd0322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0322[];
+static VTBL_ENTRY alt_thunk_names1008[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn12_N5cc3223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn12_N5cc3223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd0322 = { "dd0322", // class name
+ bases_dd0322, 3,
+ &(vtc_dd0322[0]), // expected_vtbl_contents
+ &(vtt_dd0322[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd0322),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0322),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd0322),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1008,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee00322 : dd0322 {
+ int e;
+ ~ee00322(); // tgen
+ ee00322(); // tgen
+};
+//SIG(1 ee00322) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v1 Fi} Fi} Fi}
+
+
+ee00322 ::~ee00322(){ note_dtor("ee00322", this);} // tgen
+ee00322 ::ee00322(){ note_ctor("ee00322", this);} // tgen
+
+static void Test_ee00322()
+{
+ extern Class_Descriptor cd_ee00322;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee00322, buf);
+ ee00322 *dp, &lv = *(dp=new (buf) ee00322());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee00322)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00322)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(24,16), "ee00322");
+ check_base_class_offset(lv, (bb22*)(cc322*)(dd0322*), ABISELECT(24,16), "ee00322");
+ check_base_class_offset(lv, (cc322*)(dd0322*), 0, "ee00322");
+ check_base_class_offset(lv, (dd0322*), 0, "ee00322");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee00322.e");
+ test_class_info(&lv, &cd_ee00322);
+ dp->~ee00322();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00322(Test_ee00322, "ee00322", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee00322C1Ev();
+extern void _ZN7ee00322D1Ev();
+Name_Map name_map_ee00322[] = {
+ NSPAIR(_ZN7ee00322C1Ev),
+ NSPAIR(_ZN7ee00322D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc322;
+extern VTBL_ENTRY _ZTI5cc322[];
+extern VTBL_ENTRY _ZTV5cc322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc322[];
+extern Class_Descriptor cd_dd0322;
+extern VTBL_ENTRY _ZTI6dd0322[];
+extern VTBL_ENTRY _ZTV6dd0322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0322[];
+static Base_Class bases_ee00322[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc322, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0322, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee00322[];
+extern void _ZN5cc3223fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3223fooEv,_ZThn16_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee00322[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee00322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee00322[];
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0322__7ee00322[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3226dd0322__7ee00322[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3223fooEv,_ZThn16_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc3226dd0322__7ee00322[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3223fooEv,_ZThn16_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__6dd0322__7ee00322[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee00322[] = {
+ {&(_ZTV7ee00322[3]), 3,10},
+ {&(_tg__ZTV6dd0322__7ee00322[3]), 3,4},
+ {&(_tg__ZTV5cc3226dd0322__7ee00322[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc3226dd0322__7ee00322[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd0322__7ee00322[4]), 4,6},
+ {&(_ZTV7ee00322[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee00322[];
+extern VTBL_ENTRY _ZTV7ee00322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee00322[];
+static VTBL_ENTRY alt_thunk_names1009[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3223fooEv,_ZThn16_N5cc3223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3223fooEv,_ZThn16_N5cc3223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3223fooEv,_ZThn16_N5cc3223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee00322 = { "ee00322", // class name
+ bases_ee00322, 4,
+ &(vtc_ee00322[0]), // expected_vtbl_contents
+ &(vtt_ee00322[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee00322),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00322),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee00322),6, //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 ee10322 : virtual dd0322 {
+ int e;
+ ~ee10322(); // tgen
+ ee10322(); // tgen
+};
+//SIG(1 ee10322) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v1 Fi} Fi} Fi}
+
+
+ee10322 ::~ee10322(){ note_dtor("ee10322", this);} // tgen
+ee10322 ::ee10322(){ note_ctor("ee10322", this);} // tgen
+
+static void Test_ee10322()
+{
+ extern Class_Descriptor cd_ee10322;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee10322, buf);
+ ee10322 *dp, &lv = *(dp=new (buf) ee10322());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee10322)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10322)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee10322");
+ check_base_class_offset(lv, (bb22*)(cc322*)(dd0322*), ABISELECT(32,20), "ee10322");
+ check_base_class_offset(lv, (cc322*)(dd0322*), ABISELECT(16,8), "ee10322");
+ check_base_class_offset(lv, (dd0322*), ABISELECT(16,8), "ee10322");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10322.e");
+ test_class_info(&lv, &cd_ee10322);
+ dp->~ee10322();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10322(Test_ee10322, "ee10322", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee10322C1Ev();
+extern void _ZN7ee10322D1Ev();
+Name_Map name_map_ee10322[] = {
+ NSPAIR(_ZN7ee10322C1Ev),
+ NSPAIR(_ZN7ee10322D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc322;
+extern VTBL_ENTRY _ZTI5cc322[];
+extern VTBL_ENTRY _ZTV5cc322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc322[];
+extern Class_Descriptor cd_dd0322;
+extern VTBL_ENTRY _ZTI6dd0322[];
+extern VTBL_ENTRY _ZTV6dd0322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0322[];
+static Base_Class bases_ee10322[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc322, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0322, 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 _ZTI7ee10322[];
+extern void _ZN5cc3223fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn12_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee10322[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10322[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee10322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee10322[];
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0322__7ee10322[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3226dd0322__7ee10322[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn12_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc3226dd0322__7ee10322[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn12_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__6dd0322__7ee10322[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee10322[] = {
+ {&(_ZTV7ee10322[4]), 4,15},
+ {&(_ZTV7ee10322[8]), 8,15},
+ {&(_ZTV7ee10322[13]), 13,15},
+ {&(_tg__ZTV6dd0322__7ee10322[3]), 3,4},
+ {&(_tg__ZTV5cc3226dd0322__7ee10322[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc3226dd0322__7ee10322[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd0322__7ee10322[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee10322[];
+extern VTBL_ENTRY _ZTV7ee10322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10322[];
+static VTBL_ENTRY alt_thunk_names1010[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn12_N5cc3223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn12_N5cc3223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn12_N5cc3223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee10322 = { "ee10322", // class name
+ bases_ee10322, 4,
+ &(vtc_ee10322[0]), // expected_vtbl_contents
+ &(vtt_ee10322[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee10322),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10322),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10322),7, //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 ee20322 : dd0322 {
+ int e;
+ virtual void foo(); // _ZN7ee203223fooEv
+ ~ee20322(); // tgen
+ ee20322(); // tgen
+};
+//SIG(1 ee20322) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee20322 ::foo(){vfunc_called(this, "_ZN7ee203223fooEv");}
+ee20322 ::~ee20322(){ note_dtor("ee20322", this);} // tgen
+ee20322 ::ee20322(){ note_ctor("ee20322", this);} // tgen
+
+static void Test_ee20322()
+{
+ extern Class_Descriptor cd_ee20322;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee20322, buf);
+ ee20322 *dp, &lv = *(dp=new (buf) ee20322());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee20322)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20322)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(24,16), "ee20322");
+ check_base_class_offset(lv, (bb22*)(cc322*)(dd0322*), ABISELECT(24,16), "ee20322");
+ check_base_class_offset(lv, (cc322*)(dd0322*), 0, "ee20322");
+ check_base_class_offset(lv, (dd0322*), 0, "ee20322");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee20322.e");
+ test_class_info(&lv, &cd_ee20322);
+ dp->~ee20322();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20322(Test_ee20322, "ee20322", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee20322C1Ev();
+extern void _ZN7ee20322D1Ev();
+Name_Map name_map_ee20322[] = {
+ NSPAIR(_ZN7ee20322C1Ev),
+ NSPAIR(_ZN7ee20322D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc322;
+extern VTBL_ENTRY _ZTI5cc322[];
+extern VTBL_ENTRY _ZTV5cc322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc322[];
+extern Class_Descriptor cd_dd0322;
+extern VTBL_ENTRY _ZTI6dd0322[];
+extern VTBL_ENTRY _ZTV6dd0322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0322[];
+static Base_Class bases_ee20322[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc322, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0322, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee20322[];
+extern void _ZN7ee203223fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee203223fooEv,_ZTv0_n12_N7ee203223fooEv)();
+extern void ABISELECT(_ZThn24_N7ee203223fooEv,_ZThn16_N7ee203223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee20322[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20322[0]),
+ (VTBL_ENTRY)&_ZN7ee203223fooEv,
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee20322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee203223fooEv,_ZTv0_n12_N7ee203223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee20322[];
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0322__7ee20322[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3226dd0322__7ee20322[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3223fooEv,_ZThn16_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc3226dd0322__7ee20322[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3223fooEv,_ZThn16_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__6dd0322__7ee20322[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee20322[] = {
+ {&(_ZTV7ee20322[3]), 3,10},
+ {&(_tg__ZTV6dd0322__7ee20322[3]), 3,4},
+ {&(_tg__ZTV5cc3226dd0322__7ee20322[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc3226dd0322__7ee20322[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd0322__7ee20322[4]), 4,6},
+ {&(_ZTV7ee20322[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee20322[];
+extern VTBL_ENTRY _ZTV7ee20322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee20322[];
+static VTBL_ENTRY alt_thunk_names1011[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3223fooEv,_ZThn16_N5cc3223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3223fooEv,_ZThn16_N5cc3223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee203223fooEv,_ZTv0_n12_N7ee203223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee203223fooEv,_ZThn16_N7ee203223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee20322 = { "ee20322", // class name
+ bases_ee20322, 4,
+ &(vtc_ee20322[0]), // expected_vtbl_contents
+ &(vtt_ee20322[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee20322),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20322),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee20322),6, //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 ee30322 : virtual dd0322 {
+ int e;
+ virtual void foo(); // _ZN7ee303223fooEv
+ ~ee30322(); // tgen
+ ee30322(); // tgen
+};
+//SIG(1 ee30322) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee30322 ::foo(){vfunc_called(this, "_ZN7ee303223fooEv");}
+ee30322 ::~ee30322(){ note_dtor("ee30322", this);} // tgen
+ee30322 ::ee30322(){ note_ctor("ee30322", this);} // tgen
+
+static void Test_ee30322()
+{
+ extern Class_Descriptor cd_ee30322;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee30322, buf);
+ ee30322 *dp, &lv = *(dp=new (buf) ee30322());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee30322)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30322)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee30322");
+ check_base_class_offset(lv, (bb22*)(cc322*)(dd0322*), ABISELECT(32,20), "ee30322");
+ check_base_class_offset(lv, (cc322*)(dd0322*), ABISELECT(16,8), "ee30322");
+ check_base_class_offset(lv, (dd0322*), ABISELECT(16,8), "ee30322");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30322.e");
+ test_class_info(&lv, &cd_ee30322);
+ dp->~ee30322();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30322(Test_ee30322, "ee30322", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee30322C1Ev();
+extern void _ZN7ee30322D1Ev();
+Name_Map name_map_ee30322[] = {
+ NSPAIR(_ZN7ee30322C1Ev),
+ NSPAIR(_ZN7ee30322D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc322;
+extern VTBL_ENTRY _ZTI5cc322[];
+extern VTBL_ENTRY _ZTV5cc322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc322[];
+extern Class_Descriptor cd_dd0322;
+extern VTBL_ENTRY _ZTI6dd0322[];
+extern VTBL_ENTRY _ZTV6dd0322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0322[];
+static Base_Class bases_ee30322[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc322, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0322, 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 _ZTI7ee30322[];
+extern void _ZN7ee303223fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee303223fooEv,_ZTv0_n16_N7ee303223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee303223fooEv,_ZThn8_N7ee303223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee303223fooEv,_ZTv0_n12_N7ee303223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee303223fooEv,_ZThn20_N7ee303223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee30322[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30322[0]),
+ (VTBL_ENTRY)&_ZN7ee303223fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee303223fooEv,_ZTv0_n16_N7ee303223fooEv),
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee30322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee303223fooEv,_ZTv0_n12_N7ee303223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee30322[];
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0322__7ee30322[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3226dd0322__7ee30322[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn12_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc3226dd0322__7ee30322[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn12_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__6dd0322__7ee30322[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee30322[] = {
+ {&(_ZTV7ee30322[4]), 4,16},
+ {&(_ZTV7ee30322[9]), 9,16},
+ {&(_ZTV7ee30322[14]), 14,16},
+ {&(_tg__ZTV6dd0322__7ee30322[3]), 3,4},
+ {&(_tg__ZTV5cc3226dd0322__7ee30322[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc3226dd0322__7ee30322[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd0322__7ee30322[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee30322[];
+extern VTBL_ENTRY _ZTV7ee30322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30322[];
+static VTBL_ENTRY alt_thunk_names1012[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn12_N5cc3223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn12_N5cc3223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee303223fooEv,_ZTv0_n12_N7ee303223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee303223fooEv,_ZThn20_N7ee303223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee303223fooEv,_ZTv0_n16_N7ee303223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee303223fooEv,_ZThn8_N7ee303223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30322 = { "ee30322", // class name
+ bases_ee30322, 4,
+ &(vtc_ee30322[0]), // expected_vtbl_contents
+ &(vtt_ee30322[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee30322),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30322),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30322),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1012,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee40322 : dd0322 {
+ int e;
+ virtual void bar(); // _ZN7ee403223barEv
+ ~ee40322(); // tgen
+ ee40322(); // tgen
+};
+//SIG(1 ee40322) C1{ BC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee40322 ::bar(){vfunc_called(this, "_ZN7ee403223barEv");}
+ee40322 ::~ee40322(){ note_dtor("ee40322", this);} // tgen
+ee40322 ::ee40322(){ note_ctor("ee40322", this);} // tgen
+
+static void Test_ee40322()
+{
+ extern Class_Descriptor cd_ee40322;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee40322, buf);
+ ee40322 *dp, &lv = *(dp=new (buf) ee40322());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee40322)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40322)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(24,16), "ee40322");
+ check_base_class_offset(lv, (bb22*)(cc322*)(dd0322*), ABISELECT(24,16), "ee40322");
+ check_base_class_offset(lv, (cc322*)(dd0322*), 0, "ee40322");
+ check_base_class_offset(lv, (dd0322*), 0, "ee40322");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee40322.e");
+ test_class_info(&lv, &cd_ee40322);
+ dp->~ee40322();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40322(Test_ee40322, "ee40322", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee40322C1Ev();
+extern void _ZN7ee40322D1Ev();
+Name_Map name_map_ee40322[] = {
+ NSPAIR(_ZN7ee40322C1Ev),
+ NSPAIR(_ZN7ee40322D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc322;
+extern VTBL_ENTRY _ZTI5cc322[];
+extern VTBL_ENTRY _ZTV5cc322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc322[];
+extern Class_Descriptor cd_dd0322;
+extern VTBL_ENTRY _ZTI6dd0322[];
+extern VTBL_ENTRY _ZTV6dd0322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0322[];
+static Base_Class bases_ee40322[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc322, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0322, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee40322[];
+extern void _ZN5cc3223fooEv();
+extern void _ZN7ee403223barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3223fooEv,_ZThn16_N5cc3223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee403223barEv,_ZTv0_n16_N7ee403223barEv)();
+extern void ABISELECT(_ZThn24_N7ee403223barEv,_ZThn16_N7ee403223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee40322[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+ (VTBL_ENTRY)&_ZN7ee403223barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee40322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee403223barEv,_ZTv0_n16_N7ee403223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee40322[];
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0322__7ee40322[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3226dd0322__7ee40322[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3223fooEv,_ZThn16_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc3226dd0322__7ee40322[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3223fooEv,_ZThn16_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__6dd0322__7ee40322[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee40322[] = {
+ {&(_ZTV7ee40322[3]), 3,11},
+ {&(_tg__ZTV6dd0322__7ee40322[3]), 3,4},
+ {&(_tg__ZTV5cc3226dd0322__7ee40322[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc3226dd0322__7ee40322[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd0322__7ee40322[4]), 4,6},
+ {&(_ZTV7ee40322[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee40322[];
+extern VTBL_ENTRY _ZTV7ee40322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee40322[];
+static VTBL_ENTRY alt_thunk_names1013[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee403223barEv,_ZTv0_n16_N7ee403223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee403223barEv,_ZThn16_N7ee403223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3223fooEv,_ZThn16_N5cc3223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3223fooEv,_ZThn16_N5cc3223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3223fooEv,_ZThn16_N5cc3223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee40322 = { "ee40322", // class name
+ bases_ee40322, 4,
+ &(vtc_ee40322[0]), // expected_vtbl_contents
+ &(vtt_ee40322[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee40322),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40322),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee40322),6, //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 ee50322 : virtual dd0322 {
+ int e;
+ virtual void bar(); // _ZN7ee503223barEv
+ ~ee50322(); // tgen
+ ee50322(); // tgen
+};
+//SIG(1 ee50322) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee50322 ::bar(){vfunc_called(this, "_ZN7ee503223barEv");}
+ee50322 ::~ee50322(){ note_dtor("ee50322", this);} // tgen
+ee50322 ::ee50322(){ note_ctor("ee50322", this);} // tgen
+
+static void Test_ee50322()
+{
+ extern Class_Descriptor cd_ee50322;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee50322, buf);
+ ee50322 *dp, &lv = *(dp=new (buf) ee50322());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee50322)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50322)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee50322");
+ check_base_class_offset(lv, (bb22*)(cc322*)(dd0322*), ABISELECT(32,20), "ee50322");
+ check_base_class_offset(lv, (cc322*)(dd0322*), ABISELECT(16,8), "ee50322");
+ check_base_class_offset(lv, (dd0322*), ABISELECT(16,8), "ee50322");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50322.e");
+ test_class_info(&lv, &cd_ee50322);
+ dp->~ee50322();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50322(Test_ee50322, "ee50322", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee50322C1Ev();
+extern void _ZN7ee50322D1Ev();
+Name_Map name_map_ee50322[] = {
+ NSPAIR(_ZN7ee50322C1Ev),
+ NSPAIR(_ZN7ee50322D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc322;
+extern VTBL_ENTRY _ZTI5cc322[];
+extern VTBL_ENTRY _ZTV5cc322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc322[];
+extern Class_Descriptor cd_dd0322;
+extern VTBL_ENTRY _ZTI6dd0322[];
+extern VTBL_ENTRY _ZTV6dd0322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0322[];
+static Base_Class bases_ee50322[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc322, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0322, 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 _ZTI7ee50322[];
+extern void _ZN7ee503223barEv();
+extern void _ZN5cc3223fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn12_N5cc3223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee503223barEv,_ZTv0_n16_N7ee503223barEv)();
+extern void ABISELECT(_ZThn32_N7ee503223barEv,_ZThn20_N7ee503223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee50322[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50322[0]),
+ (VTBL_ENTRY)&_ZN7ee503223barEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee50322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee503223barEv,_ZTv0_n16_N7ee503223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee50322[];
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0322__7ee50322[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3226dd0322__7ee50322[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn12_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc3226dd0322__7ee50322[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn12_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__6dd0322__7ee50322[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee50322[] = {
+ {&(_ZTV7ee50322[4]), 4,16},
+ {&(_ZTV7ee50322[9]), 9,16},
+ {&(_ZTV7ee50322[14]), 14,16},
+ {&(_tg__ZTV6dd0322__7ee50322[3]), 3,4},
+ {&(_tg__ZTV5cc3226dd0322__7ee50322[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc3226dd0322__7ee50322[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd0322__7ee50322[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee50322[];
+extern VTBL_ENTRY _ZTV7ee50322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50322[];
+static VTBL_ENTRY alt_thunk_names1014[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee503223barEv,_ZTv0_n16_N7ee503223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee503223barEv,_ZThn20_N7ee503223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn12_N5cc3223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn12_N5cc3223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn12_N5cc3223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50322 = { "ee50322", // class name
+ bases_ee50322, 4,
+ &(vtc_ee50322[0]), // expected_vtbl_contents
+ &(vtt_ee50322[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee50322),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50322),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50322),7, //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 ee60322 : dd0322 {
+ int e;
+ virtual void foo(); // _ZN7ee603223fooEv
+ virtual void bar(); // _ZN7ee603223barEv
+ ~ee60322(); // tgen
+ ee60322(); // tgen
+};
+//SIG(1 ee60322) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee60322 ::foo(){vfunc_called(this, "_ZN7ee603223fooEv");}
+void ee60322 ::bar(){vfunc_called(this, "_ZN7ee603223barEv");}
+ee60322 ::~ee60322(){ note_dtor("ee60322", this);} // tgen
+ee60322 ::ee60322(){ note_ctor("ee60322", this);} // tgen
+
+static void Test_ee60322()
+{
+ extern Class_Descriptor cd_ee60322;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee60322, buf);
+ ee60322 *dp, &lv = *(dp=new (buf) ee60322());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee60322)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60322)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(24,16), "ee60322");
+ check_base_class_offset(lv, (bb22*)(cc322*)(dd0322*), ABISELECT(24,16), "ee60322");
+ check_base_class_offset(lv, (cc322*)(dd0322*), 0, "ee60322");
+ check_base_class_offset(lv, (dd0322*), 0, "ee60322");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee60322.e");
+ test_class_info(&lv, &cd_ee60322);
+ dp->~ee60322();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60322(Test_ee60322, "ee60322", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee60322C1Ev();
+extern void _ZN7ee60322D1Ev();
+Name_Map name_map_ee60322[] = {
+ NSPAIR(_ZN7ee60322C1Ev),
+ NSPAIR(_ZN7ee60322D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc322;
+extern VTBL_ENTRY _ZTI5cc322[];
+extern VTBL_ENTRY _ZTV5cc322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc322[];
+extern Class_Descriptor cd_dd0322;
+extern VTBL_ENTRY _ZTI6dd0322[];
+extern VTBL_ENTRY _ZTV6dd0322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0322[];
+static Base_Class bases_ee60322[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc322, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0322, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee60322[];
+extern void _ZN7ee603223fooEv();
+extern void _ZN7ee603223barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee603223fooEv,_ZTv0_n12_N7ee603223fooEv)();
+extern void ABISELECT(_ZThn24_N7ee603223fooEv,_ZThn16_N7ee603223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee603223barEv,_ZTv0_n16_N7ee603223barEv)();
+extern void ABISELECT(_ZThn24_N7ee603223barEv,_ZThn16_N7ee603223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee60322[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60322[0]),
+ (VTBL_ENTRY)&_ZN7ee603223fooEv,
+ (VTBL_ENTRY)&_ZN7ee603223barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee60322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee603223fooEv,_ZTv0_n12_N7ee603223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee603223barEv,_ZTv0_n16_N7ee603223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee60322[];
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0322__7ee60322[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3226dd0322__7ee60322[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3223fooEv,_ZThn16_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc3226dd0322__7ee60322[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3223fooEv,_ZThn16_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__6dd0322__7ee60322[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee60322[] = {
+ {&(_ZTV7ee60322[3]), 3,11},
+ {&(_tg__ZTV6dd0322__7ee60322[3]), 3,4},
+ {&(_tg__ZTV5cc3226dd0322__7ee60322[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc3226dd0322__7ee60322[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd0322__7ee60322[4]), 4,6},
+ {&(_ZTV7ee60322[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee60322[];
+extern VTBL_ENTRY _ZTV7ee60322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee60322[];
+static VTBL_ENTRY alt_thunk_names1015[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3223fooEv,_ZThn16_N5cc3223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3223fooEv,_ZThn16_N5cc3223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee603223barEv,_ZTv0_n16_N7ee603223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee603223barEv,_ZThn16_N7ee603223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee603223fooEv,_ZTv0_n12_N7ee603223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee603223fooEv,_ZThn16_N7ee603223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee60322 = { "ee60322", // class name
+ bases_ee60322, 4,
+ &(vtc_ee60322[0]), // expected_vtbl_contents
+ &(vtt_ee60322[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee60322),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60322),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee60322),6, //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 ee70322 : virtual dd0322 {
+ int e;
+ virtual void foo(); // _ZN7ee703223fooEv
+ virtual void bar(); // _ZN7ee703223barEv
+ ~ee70322(); // tgen
+ ee70322(); // tgen
+};
+//SIG(1 ee70322) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee70322 ::foo(){vfunc_called(this, "_ZN7ee703223fooEv");}
+void ee70322 ::bar(){vfunc_called(this, "_ZN7ee703223barEv");}
+ee70322 ::~ee70322(){ note_dtor("ee70322", this);} // tgen
+ee70322 ::ee70322(){ note_ctor("ee70322", this);} // tgen
+
+static void Test_ee70322()
+{
+ extern Class_Descriptor cd_ee70322;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee70322, buf);
+ ee70322 *dp, &lv = *(dp=new (buf) ee70322());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee70322)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70322)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee70322");
+ check_base_class_offset(lv, (bb22*)(cc322*)(dd0322*), ABISELECT(32,20), "ee70322");
+ check_base_class_offset(lv, (cc322*)(dd0322*), ABISELECT(16,8), "ee70322");
+ check_base_class_offset(lv, (dd0322*), ABISELECT(16,8), "ee70322");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70322.e");
+ test_class_info(&lv, &cd_ee70322);
+ dp->~ee70322();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70322(Test_ee70322, "ee70322", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee70322C1Ev();
+extern void _ZN7ee70322D1Ev();
+Name_Map name_map_ee70322[] = {
+ NSPAIR(_ZN7ee70322C1Ev),
+ NSPAIR(_ZN7ee70322D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc322;
+extern VTBL_ENTRY _ZTI5cc322[];
+extern VTBL_ENTRY _ZTV5cc322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc322[];
+extern Class_Descriptor cd_dd0322;
+extern VTBL_ENTRY _ZTI6dd0322[];
+extern VTBL_ENTRY _ZTV6dd0322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0322[];
+static Base_Class bases_ee70322[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc322, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0322, 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 _ZTI7ee70322[];
+extern void _ZN7ee703223fooEv();
+extern void _ZN7ee703223barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee703223fooEv,_ZTv0_n16_N7ee703223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee703223fooEv,_ZThn8_N7ee703223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee703223fooEv,_ZTv0_n12_N7ee703223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee703223fooEv,_ZThn20_N7ee703223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee703223barEv,_ZTv0_n16_N7ee703223barEv)();
+extern void ABISELECT(_ZThn32_N7ee703223barEv,_ZThn20_N7ee703223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70322[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70322[0]),
+ (VTBL_ENTRY)&_ZN7ee703223fooEv,
+ (VTBL_ENTRY)&_ZN7ee703223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee703223fooEv,_ZTv0_n16_N7ee703223fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee70322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee703223fooEv,_ZTv0_n12_N7ee703223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee703223barEv,_ZTv0_n16_N7ee703223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee70322[];
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0322__7ee70322[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3226dd0322__7ee70322[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn12_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc3226dd0322__7ee70322[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn12_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__6dd0322__7ee70322[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee70322[] = {
+ {&(_ZTV7ee70322[4]), 4,17},
+ {&(_ZTV7ee70322[10]), 10,17},
+ {&(_ZTV7ee70322[15]), 15,17},
+ {&(_tg__ZTV6dd0322__7ee70322[3]), 3,4},
+ {&(_tg__ZTV5cc3226dd0322__7ee70322[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc3226dd0322__7ee70322[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd0322__7ee70322[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee70322[];
+extern VTBL_ENTRY _ZTV7ee70322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70322[];
+static VTBL_ENTRY alt_thunk_names1016[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn12_N5cc3223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn12_N5cc3223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee703223barEv,_ZTv0_n16_N7ee703223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee703223barEv,_ZThn20_N7ee703223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee703223fooEv,_ZTv0_n12_N7ee703223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee703223fooEv,_ZThn20_N7ee703223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee703223fooEv,_ZTv0_n16_N7ee703223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee703223fooEv,_ZThn8_N7ee703223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70322 = { "ee70322", // class name
+ bases_ee70322, 4,
+ &(vtc_ee70322[0]), // expected_vtbl_contents
+ &(vtt_ee70322[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee70322),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70322),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70322),7, //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 dd1322 : virtual cc322 {
+ int d;
+ ~dd1322(); // tgen
+ dd1322(); // tgen
+};
+//SIG(-1 dd1322) C1{ VBC2{ VBC3{ BC4{ v1 v2 Fi} v1 Fi} v1 Fi} Fi}
+
+
+dd1322 ::~dd1322(){ note_dtor("dd1322", this);} // tgen
+dd1322 ::dd1322(){ note_ctor("dd1322", this);} // tgen
+
+static void Test_dd1322()
+{
+ extern Class_Descriptor cd_dd1322;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd1322, buf);
+ dd1322 *dp, &lv = *(dp=new (buf) dd1322());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd1322)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1322)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,16), "dd1322");
+ check_base_class_offset(lv, (bb22*)(cc322*), ABISELECT(32,16), "dd1322");
+ check_base_class_offset(lv, (cc322*), ABISELECT(16,8), "dd1322");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1322.d");
+ test_class_info(&lv, &cd_dd1322);
+ dp->~dd1322();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1322(Test_dd1322, "dd1322", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd1322C1Ev();
+extern void _ZN6dd1322D1Ev();
+Name_Map name_map_dd1322[] = {
+ NSPAIR(_ZN6dd1322C1Ev),
+ NSPAIR(_ZN6dd1322D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc322;
+extern VTBL_ENTRY _ZTI5cc322[];
+extern VTBL_ENTRY _ZTV5cc322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc322[];
+static Base_Class bases_dd1322[] = {
+ // 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_bb22, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc322, 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 _ZTI6dd1322[];
+extern void _ZN5cc3223fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_dd1322[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1322[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV6dd1322[];
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc322__6dd1322[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc322__6dd1322[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_dd1322[] = {
+ {&(_ZTV6dd1322[4]), 4,15},
+ {&(_ZTV6dd1322[8]), 8,15},
+ {&(_ZTV6dd1322[13]), 13,15},
+ {&(_tg__ZTV5cc322__6dd1322[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc322__6dd1322[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd1322[];
+extern VTBL_ENTRY _ZTV6dd1322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1322[];
+static VTBL_ENTRY alt_thunk_names1017[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd1322 = { "dd1322", // class name
+ bases_dd1322, 3,
+ &(vtc_dd1322[0]), // expected_vtbl_contents
+ &(vtt_dd1322[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd1322),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1322),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1322),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1017,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee01322 : dd1322 {
+ int e;
+ ~ee01322(); // tgen
+ ee01322(); // tgen
+};
+//SIG(1 ee01322) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v1 Fi} Fi} Fi}
+
+
+ee01322 ::~ee01322(){ note_dtor("ee01322", this);} // tgen
+ee01322 ::ee01322(){ note_ctor("ee01322", this);} // tgen
+
+static void Test_ee01322()
+{
+ extern Class_Descriptor cd_ee01322;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee01322, buf);
+ ee01322 *dp, &lv = *(dp=new (buf) ee01322());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee01322)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01322)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee01322");
+ check_base_class_offset(lv, (bb22*)(cc322*), ABISELECT(32,20), "ee01322");
+ check_base_class_offset(lv, (cc322*)(dd1322*), ABISELECT(16,12), "ee01322");
+ check_base_class_offset(lv, (dd1322*), 0, "ee01322");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01322.e");
+ test_class_info(&lv, &cd_ee01322);
+ dp->~ee01322();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01322(Test_ee01322, "ee01322", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee01322C1Ev();
+extern void _ZN7ee01322D1Ev();
+Name_Map name_map_ee01322[] = {
+ NSPAIR(_ZN7ee01322C1Ev),
+ NSPAIR(_ZN7ee01322D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc322;
+extern VTBL_ENTRY _ZTI5cc322[];
+extern VTBL_ENTRY _ZTV5cc322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc322[];
+extern Class_Descriptor cd_dd1322;
+extern VTBL_ENTRY _ZTI6dd1322[];
+extern VTBL_ENTRY _ZTV6dd1322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1322[];
+static Base_Class bases_ee01322[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc322, 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_dd1322, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01322[];
+extern void _ZN5cc3223fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee01322[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01322[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee01322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee01322[];
+static VTBL_ENTRY _tg__ZTV6dd1322__7ee01322[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1322[0]),
+};
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc322__6dd1322__7ee01322[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__6dd1322__7ee01322[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc322__7ee01322[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc322__7ee01322[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee01322[] = {
+ {&(_ZTV7ee01322[4]), 4,15},
+ {&(_tg__ZTV6dd1322__7ee01322[4]), 4,4},
+ {&(_tg__ZTV5cc322__6dd1322__7ee01322[4]), 4,5},
+ {&(_tg__ZTV4bb22__6dd1322__7ee01322[4]), 4,6},
+ {&(_ZTV7ee01322[8]), 8,15},
+ {&(_ZTV7ee01322[13]), 13,15},
+ {&(_tg__ZTV5cc322__7ee01322[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc322__7ee01322[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee01322[];
+extern VTBL_ENTRY _ZTV7ee01322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01322[];
+static VTBL_ENTRY alt_thunk_names1018[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee01322 = { "ee01322", // class name
+ bases_ee01322, 4,
+ &(vtc_ee01322[0]), // expected_vtbl_contents
+ &(vtt_ee01322[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee01322),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01322),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01322),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1018,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee11322 : virtual dd1322 {
+ int e;
+ ~ee11322(); // tgen
+ ee11322(); // tgen
+};
+//SIG(1 ee11322) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v1 Fi} Fi} Fi}
+
+
+ee11322 ::~ee11322(){ note_dtor("ee11322", this);} // tgen
+ee11322 ::ee11322(){ note_ctor("ee11322", this);} // tgen
+
+static void Test_ee11322()
+{
+ extern Class_Descriptor cd_ee11322;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee11322, buf);
+ ee11322 *dp, &lv = *(dp=new (buf) ee11322());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee11322)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11322)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(48,24), "ee11322");
+ check_base_class_offset(lv, (bb22*)(cc322*), ABISELECT(48,24), "ee11322");
+ check_base_class_offset(lv, (cc322*)(dd1322*), ABISELECT(32,16), "ee11322");
+ check_base_class_offset(lv, (dd1322*), ABISELECT(16,8), "ee11322");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11322.e");
+ test_class_info(&lv, &cd_ee11322);
+ dp->~ee11322();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11322(Test_ee11322, "ee11322", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee11322C1Ev();
+extern void _ZN7ee11322D1Ev();
+Name_Map name_map_ee11322[] = {
+ NSPAIR(_ZN7ee11322C1Ev),
+ NSPAIR(_ZN7ee11322D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc322;
+extern VTBL_ENTRY _ZTI5cc322[];
+extern VTBL_ENTRY _ZTV5cc322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc322[];
+extern Class_Descriptor cd_dd1322;
+extern VTBL_ENTRY _ZTI6dd1322[];
+extern VTBL_ENTRY _ZTV6dd1322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1322[];
+static Base_Class bases_ee11322[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb22, ABISELECT(48,24), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc322, 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_dd1322, 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 _ZTI7ee11322[];
+extern void _ZN5cc3223fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee11322[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11322[0]),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11322[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee11322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee11322[];
+static VTBL_ENTRY _tg__ZTV6dd1322__7ee11322[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1322[0]),
+};
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc322__6dd1322__7ee11322[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__6dd1322__7ee11322[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc322__7ee11322[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc322__7ee11322[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee11322[] = {
+ {&(_ZTV7ee11322[5]), 5,20},
+ {&(_ZTV7ee11322[9]), 9,20},
+ {&(_ZTV7ee11322[13]), 13,20},
+ {&(_ZTV7ee11322[18]), 18,20},
+ {&(_tg__ZTV6dd1322__7ee11322[4]), 4,4},
+ {&(_tg__ZTV5cc322__6dd1322__7ee11322[4]), 4,5},
+ {&(_tg__ZTV4bb22__6dd1322__7ee11322[4]), 4,6},
+ {&(_tg__ZTV5cc322__7ee11322[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc322__7ee11322[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee11322[];
+extern VTBL_ENTRY _ZTV7ee11322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11322[];
+static VTBL_ENTRY alt_thunk_names1019[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee11322 = { "ee11322", // class name
+ bases_ee11322, 4,
+ &(vtc_ee11322[0]), // expected_vtbl_contents
+ &(vtt_ee11322[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee11322),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11322),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11322),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1019,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee21322 : dd1322 {
+ int e;
+ virtual void foo(); // _ZN7ee213223fooEv
+ ~ee21322(); // tgen
+ ee21322(); // tgen
+};
+//SIG(1 ee21322) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee21322 ::foo(){vfunc_called(this, "_ZN7ee213223fooEv");}
+ee21322 ::~ee21322(){ note_dtor("ee21322", this);} // tgen
+ee21322 ::ee21322(){ note_ctor("ee21322", this);} // tgen
+
+static void Test_ee21322()
+{
+ extern Class_Descriptor cd_ee21322;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee21322, buf);
+ ee21322 *dp, &lv = *(dp=new (buf) ee21322());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee21322)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21322)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee21322");
+ check_base_class_offset(lv, (bb22*)(cc322*), ABISELECT(32,20), "ee21322");
+ check_base_class_offset(lv, (cc322*)(dd1322*), ABISELECT(16,12), "ee21322");
+ check_base_class_offset(lv, (dd1322*), 0, "ee21322");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21322.e");
+ test_class_info(&lv, &cd_ee21322);
+ dp->~ee21322();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21322(Test_ee21322, "ee21322", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee21322C1Ev();
+extern void _ZN7ee21322D1Ev();
+Name_Map name_map_ee21322[] = {
+ NSPAIR(_ZN7ee21322C1Ev),
+ NSPAIR(_ZN7ee21322D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc322;
+extern VTBL_ENTRY _ZTI5cc322[];
+extern VTBL_ENTRY _ZTV5cc322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc322[];
+extern Class_Descriptor cd_dd1322;
+extern VTBL_ENTRY _ZTI6dd1322[];
+extern VTBL_ENTRY _ZTV6dd1322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1322[];
+static Base_Class bases_ee21322[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc322, 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_dd1322, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21322[];
+extern void _ZN7ee213223fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee213223fooEv,_ZTv0_n16_N7ee213223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee213223fooEv,_ZThn12_N7ee213223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee213223fooEv,_ZTv0_n12_N7ee213223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee213223fooEv,_ZThn20_N7ee213223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee21322[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21322[0]),
+ (VTBL_ENTRY)&_ZN7ee213223fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee213223fooEv,_ZTv0_n16_N7ee213223fooEv),
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee21322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee213223fooEv,_ZTv0_n12_N7ee213223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee21322[];
+static VTBL_ENTRY _tg__ZTV6dd1322__7ee21322[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1322[0]),
+};
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc322__6dd1322__7ee21322[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__6dd1322__7ee21322[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc322__7ee21322[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc322__7ee21322[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee21322[] = {
+ {&(_ZTV7ee21322[4]), 4,16},
+ {&(_tg__ZTV6dd1322__7ee21322[4]), 4,4},
+ {&(_tg__ZTV5cc322__6dd1322__7ee21322[4]), 4,5},
+ {&(_tg__ZTV4bb22__6dd1322__7ee21322[4]), 4,6},
+ {&(_ZTV7ee21322[9]), 9,16},
+ {&(_ZTV7ee21322[14]), 14,16},
+ {&(_tg__ZTV5cc322__7ee21322[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc322__7ee21322[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee21322[];
+extern VTBL_ENTRY _ZTV7ee21322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21322[];
+static VTBL_ENTRY alt_thunk_names1020[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee213223fooEv,_ZTv0_n12_N7ee213223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee213223fooEv,_ZThn20_N7ee213223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee213223fooEv,_ZTv0_n16_N7ee213223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee213223fooEv,_ZThn12_N7ee213223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21322 = { "ee21322", // class name
+ bases_ee21322, 4,
+ &(vtc_ee21322[0]), // expected_vtbl_contents
+ &(vtt_ee21322[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee21322),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21322),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21322),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1020,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee31322 : virtual dd1322 {
+ int e;
+ virtual void foo(); // _ZN7ee313223fooEv
+ ~ee31322(); // tgen
+ ee31322(); // tgen
+};
+//SIG(1 ee31322) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee31322 ::foo(){vfunc_called(this, "_ZN7ee313223fooEv");}
+ee31322 ::~ee31322(){ note_dtor("ee31322", this);} // tgen
+ee31322 ::ee31322(){ note_ctor("ee31322", this);} // tgen
+
+static void Test_ee31322()
+{
+ extern Class_Descriptor cd_ee31322;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee31322, buf);
+ ee31322 *dp, &lv = *(dp=new (buf) ee31322());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee31322)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31322)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(48,24), "ee31322");
+ check_base_class_offset(lv, (bb22*)(cc322*), ABISELECT(48,24), "ee31322");
+ check_base_class_offset(lv, (cc322*)(dd1322*), ABISELECT(32,16), "ee31322");
+ check_base_class_offset(lv, (dd1322*), ABISELECT(16,8), "ee31322");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31322.e");
+ test_class_info(&lv, &cd_ee31322);
+ dp->~ee31322();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31322(Test_ee31322, "ee31322", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee31322C1Ev();
+extern void _ZN7ee31322D1Ev();
+Name_Map name_map_ee31322[] = {
+ NSPAIR(_ZN7ee31322C1Ev),
+ NSPAIR(_ZN7ee31322D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc322;
+extern VTBL_ENTRY _ZTI5cc322[];
+extern VTBL_ENTRY _ZTV5cc322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc322[];
+extern Class_Descriptor cd_dd1322;
+extern VTBL_ENTRY _ZTI6dd1322[];
+extern VTBL_ENTRY _ZTV6dd1322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1322[];
+static Base_Class bases_ee31322[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb22, ABISELECT(48,24), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc322, 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_dd1322, 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 _ZTI7ee31322[];
+extern void _ZN7ee313223fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee313223fooEv,_ZTv0_n16_N7ee313223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee313223fooEv,_ZThn16_N7ee313223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee313223fooEv,_ZTv0_n12_N7ee313223fooEv)();
+extern void ABISELECT(_ZThn48_N7ee313223fooEv,_ZThn24_N7ee313223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee31322[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31322[0]),
+ (VTBL_ENTRY)&_ZN7ee313223fooEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31322[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee313223fooEv,_ZTv0_n16_N7ee313223fooEv),
+ 0,
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee31322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee313223fooEv,_ZTv0_n12_N7ee313223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee31322[];
+static VTBL_ENTRY _tg__ZTV6dd1322__7ee31322[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1322[0]),
+};
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc322__6dd1322__7ee31322[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__6dd1322__7ee31322[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc322__7ee31322[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc322__7ee31322[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee31322[] = {
+ {&(_ZTV7ee31322[5]), 5,21},
+ {&(_ZTV7ee31322[10]), 10,21},
+ {&(_ZTV7ee31322[14]), 14,21},
+ {&(_ZTV7ee31322[19]), 19,21},
+ {&(_tg__ZTV6dd1322__7ee31322[4]), 4,4},
+ {&(_tg__ZTV5cc322__6dd1322__7ee31322[4]), 4,5},
+ {&(_tg__ZTV4bb22__6dd1322__7ee31322[4]), 4,6},
+ {&(_tg__ZTV5cc322__7ee31322[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc322__7ee31322[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee31322[];
+extern VTBL_ENTRY _ZTV7ee31322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31322[];
+static VTBL_ENTRY alt_thunk_names1021[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee313223fooEv,_ZTv0_n12_N7ee313223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee313223fooEv,_ZThn24_N7ee313223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee313223fooEv,_ZTv0_n16_N7ee313223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee313223fooEv,_ZThn16_N7ee313223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31322 = { "ee31322", // class name
+ bases_ee31322, 4,
+ &(vtc_ee31322[0]), // expected_vtbl_contents
+ &(vtt_ee31322[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee31322),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31322),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31322),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1021,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee41322 : dd1322 {
+ int e;
+ virtual void bar(); // _ZN7ee413223barEv
+ ~ee41322(); // tgen
+ ee41322(); // tgen
+};
+//SIG(1 ee41322) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee41322 ::bar(){vfunc_called(this, "_ZN7ee413223barEv");}
+ee41322 ::~ee41322(){ note_dtor("ee41322", this);} // tgen
+ee41322 ::ee41322(){ note_ctor("ee41322", this);} // tgen
+
+static void Test_ee41322()
+{
+ extern Class_Descriptor cd_ee41322;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee41322, buf);
+ ee41322 *dp, &lv = *(dp=new (buf) ee41322());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee41322)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41322)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee41322");
+ check_base_class_offset(lv, (bb22*)(cc322*), ABISELECT(32,20), "ee41322");
+ check_base_class_offset(lv, (cc322*)(dd1322*), ABISELECT(16,12), "ee41322");
+ check_base_class_offset(lv, (dd1322*), 0, "ee41322");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41322.e");
+ test_class_info(&lv, &cd_ee41322);
+ dp->~ee41322();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41322(Test_ee41322, "ee41322", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee41322C1Ev();
+extern void _ZN7ee41322D1Ev();
+Name_Map name_map_ee41322[] = {
+ NSPAIR(_ZN7ee41322C1Ev),
+ NSPAIR(_ZN7ee41322D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc322;
+extern VTBL_ENTRY _ZTI5cc322[];
+extern VTBL_ENTRY _ZTV5cc322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc322[];
+extern Class_Descriptor cd_dd1322;
+extern VTBL_ENTRY _ZTI6dd1322[];
+extern VTBL_ENTRY _ZTV6dd1322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1322[];
+static Base_Class bases_ee41322[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc322, 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_dd1322, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41322[];
+extern void _ZN7ee413223barEv();
+extern void _ZN5cc3223fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee413223barEv,_ZTv0_n16_N7ee413223barEv)();
+extern void ABISELECT(_ZThn32_N7ee413223barEv,_ZThn20_N7ee413223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee41322[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41322[0]),
+ (VTBL_ENTRY)&_ZN7ee413223barEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee41322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee413223barEv,_ZTv0_n16_N7ee413223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee41322[];
+static VTBL_ENTRY _tg__ZTV6dd1322__7ee41322[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1322[0]),
+};
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc322__6dd1322__7ee41322[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__6dd1322__7ee41322[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc322__7ee41322[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc322__7ee41322[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee41322[] = {
+ {&(_ZTV7ee41322[4]), 4,16},
+ {&(_tg__ZTV6dd1322__7ee41322[4]), 4,4},
+ {&(_tg__ZTV5cc322__6dd1322__7ee41322[4]), 4,5},
+ {&(_tg__ZTV4bb22__6dd1322__7ee41322[4]), 4,6},
+ {&(_ZTV7ee41322[9]), 9,16},
+ {&(_ZTV7ee41322[14]), 14,16},
+ {&(_tg__ZTV5cc322__7ee41322[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc322__7ee41322[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee41322[];
+extern VTBL_ENTRY _ZTV7ee41322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41322[];
+static VTBL_ENTRY alt_thunk_names1022[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee413223barEv,_ZTv0_n16_N7ee413223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee413223barEv,_ZThn20_N7ee413223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41322 = { "ee41322", // class name
+ bases_ee41322, 4,
+ &(vtc_ee41322[0]), // expected_vtbl_contents
+ &(vtt_ee41322[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee41322),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41322),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41322),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1022,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee51322 : virtual dd1322 {
+ int e;
+ virtual void bar(); // _ZN7ee513223barEv
+ ~ee51322(); // tgen
+ ee51322(); // tgen
+};
+//SIG(1 ee51322) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee51322 ::bar(){vfunc_called(this, "_ZN7ee513223barEv");}
+ee51322 ::~ee51322(){ note_dtor("ee51322", this);} // tgen
+ee51322 ::ee51322(){ note_ctor("ee51322", this);} // tgen
+
+static void Test_ee51322()
+{
+ extern Class_Descriptor cd_ee51322;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee51322, buf);
+ ee51322 *dp, &lv = *(dp=new (buf) ee51322());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee51322)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51322)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(48,24), "ee51322");
+ check_base_class_offset(lv, (bb22*)(cc322*), ABISELECT(48,24), "ee51322");
+ check_base_class_offset(lv, (cc322*)(dd1322*), ABISELECT(32,16), "ee51322");
+ check_base_class_offset(lv, (dd1322*), ABISELECT(16,8), "ee51322");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51322.e");
+ test_class_info(&lv, &cd_ee51322);
+ dp->~ee51322();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51322(Test_ee51322, "ee51322", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee51322C1Ev();
+extern void _ZN7ee51322D1Ev();
+Name_Map name_map_ee51322[] = {
+ NSPAIR(_ZN7ee51322C1Ev),
+ NSPAIR(_ZN7ee51322D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc322;
+extern VTBL_ENTRY _ZTI5cc322[];
+extern VTBL_ENTRY _ZTV5cc322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc322[];
+extern Class_Descriptor cd_dd1322;
+extern VTBL_ENTRY _ZTI6dd1322[];
+extern VTBL_ENTRY _ZTV6dd1322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1322[];
+static Base_Class bases_ee51322[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb22, ABISELECT(48,24), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc322, 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_dd1322, 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 _ZTI7ee51322[];
+extern void _ZN7ee513223barEv();
+extern void _ZN5cc3223fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee513223barEv,_ZTv0_n16_N7ee513223barEv)();
+extern void ABISELECT(_ZThn48_N7ee513223barEv,_ZThn24_N7ee513223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee51322[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51322[0]),
+ (VTBL_ENTRY)&_ZN7ee513223barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51322[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+ ABISELECT(-48,-24),
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee51322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee513223barEv,_ZTv0_n16_N7ee513223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee51322[];
+static VTBL_ENTRY _tg__ZTV6dd1322__7ee51322[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1322[0]),
+};
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc322__6dd1322__7ee51322[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__6dd1322__7ee51322[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc322__7ee51322[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc322__7ee51322[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee51322[] = {
+ {&(_ZTV7ee51322[5]), 5,21},
+ {&(_ZTV7ee51322[10]), 10,21},
+ {&(_ZTV7ee51322[14]), 14,21},
+ {&(_ZTV7ee51322[19]), 19,21},
+ {&(_tg__ZTV6dd1322__7ee51322[4]), 4,4},
+ {&(_tg__ZTV5cc322__6dd1322__7ee51322[4]), 4,5},
+ {&(_tg__ZTV4bb22__6dd1322__7ee51322[4]), 4,6},
+ {&(_tg__ZTV5cc322__7ee51322[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc322__7ee51322[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee51322[];
+extern VTBL_ENTRY _ZTV7ee51322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51322[];
+static VTBL_ENTRY alt_thunk_names1023[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee513223barEv,_ZTv0_n16_N7ee513223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee513223barEv,_ZThn24_N7ee513223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51322 = { "ee51322", // class name
+ bases_ee51322, 4,
+ &(vtc_ee51322[0]), // expected_vtbl_contents
+ &(vtt_ee51322[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee51322),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51322),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51322),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1023,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee61322 : dd1322 {
+ int e;
+ virtual void foo(); // _ZN7ee613223fooEv
+ virtual void bar(); // _ZN7ee613223barEv
+ ~ee61322(); // tgen
+ ee61322(); // tgen
+};
+//SIG(1 ee61322) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee61322 ::foo(){vfunc_called(this, "_ZN7ee613223fooEv");}
+void ee61322 ::bar(){vfunc_called(this, "_ZN7ee613223barEv");}
+ee61322 ::~ee61322(){ note_dtor("ee61322", this);} // tgen
+ee61322 ::ee61322(){ note_ctor("ee61322", this);} // tgen
+
+static void Test_ee61322()
+{
+ extern Class_Descriptor cd_ee61322;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee61322, buf);
+ ee61322 *dp, &lv = *(dp=new (buf) ee61322());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee61322)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61322)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee61322");
+ check_base_class_offset(lv, (bb22*)(cc322*), ABISELECT(32,20), "ee61322");
+ check_base_class_offset(lv, (cc322*)(dd1322*), ABISELECT(16,12), "ee61322");
+ check_base_class_offset(lv, (dd1322*), 0, "ee61322");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61322.e");
+ test_class_info(&lv, &cd_ee61322);
+ dp->~ee61322();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61322(Test_ee61322, "ee61322", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee61322C1Ev();
+extern void _ZN7ee61322D1Ev();
+Name_Map name_map_ee61322[] = {
+ NSPAIR(_ZN7ee61322C1Ev),
+ NSPAIR(_ZN7ee61322D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc322;
+extern VTBL_ENTRY _ZTI5cc322[];
+extern VTBL_ENTRY _ZTV5cc322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc322[];
+extern Class_Descriptor cd_dd1322;
+extern VTBL_ENTRY _ZTI6dd1322[];
+extern VTBL_ENTRY _ZTV6dd1322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1322[];
+static Base_Class bases_ee61322[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc322, 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_dd1322, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61322[];
+extern void _ZN7ee613223fooEv();
+extern void _ZN7ee613223barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee613223fooEv,_ZTv0_n16_N7ee613223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee613223fooEv,_ZThn12_N7ee613223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee613223fooEv,_ZTv0_n12_N7ee613223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee613223fooEv,_ZThn20_N7ee613223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee613223barEv,_ZTv0_n16_N7ee613223barEv)();
+extern void ABISELECT(_ZThn32_N7ee613223barEv,_ZThn20_N7ee613223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61322[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61322[0]),
+ (VTBL_ENTRY)&_ZN7ee613223fooEv,
+ (VTBL_ENTRY)&_ZN7ee613223barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee613223fooEv,_ZTv0_n16_N7ee613223fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee61322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee613223fooEv,_ZTv0_n12_N7ee613223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee613223barEv,_ZTv0_n16_N7ee613223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee61322[];
+static VTBL_ENTRY _tg__ZTV6dd1322__7ee61322[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1322[0]),
+};
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc322__6dd1322__7ee61322[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__6dd1322__7ee61322[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc322__7ee61322[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc322__7ee61322[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee61322[] = {
+ {&(_ZTV7ee61322[4]), 4,17},
+ {&(_tg__ZTV6dd1322__7ee61322[4]), 4,4},
+ {&(_tg__ZTV5cc322__6dd1322__7ee61322[4]), 4,5},
+ {&(_tg__ZTV4bb22__6dd1322__7ee61322[4]), 4,6},
+ {&(_ZTV7ee61322[10]), 10,17},
+ {&(_ZTV7ee61322[15]), 15,17},
+ {&(_tg__ZTV5cc322__7ee61322[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc322__7ee61322[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee61322[];
+extern VTBL_ENTRY _ZTV7ee61322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61322[];
+static VTBL_ENTRY alt_thunk_names1024[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee613223barEv,_ZTv0_n16_N7ee613223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee613223barEv,_ZThn20_N7ee613223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee613223fooEv,_ZTv0_n12_N7ee613223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee613223fooEv,_ZThn20_N7ee613223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee613223fooEv,_ZTv0_n16_N7ee613223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee613223fooEv,_ZThn12_N7ee613223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61322 = { "ee61322", // class name
+ bases_ee61322, 4,
+ &(vtc_ee61322[0]), // expected_vtbl_contents
+ &(vtt_ee61322[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee61322),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61322),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61322),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1024,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee71322 : virtual dd1322 {
+ int e;
+ virtual void foo(); // _ZN7ee713223fooEv
+ virtual void bar(); // _ZN7ee713223barEv
+ ~ee71322(); // tgen
+ ee71322(); // tgen
+};
+//SIG(1 ee71322) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee71322 ::foo(){vfunc_called(this, "_ZN7ee713223fooEv");}
+void ee71322 ::bar(){vfunc_called(this, "_ZN7ee713223barEv");}
+ee71322 ::~ee71322(){ note_dtor("ee71322", this);} // tgen
+ee71322 ::ee71322(){ note_ctor("ee71322", this);} // tgen
+
+static void Test_ee71322()
+{
+ extern Class_Descriptor cd_ee71322;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee71322, buf);
+ ee71322 *dp, &lv = *(dp=new (buf) ee71322());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee71322)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71322)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(48,24), "ee71322");
+ check_base_class_offset(lv, (bb22*)(cc322*), ABISELECT(48,24), "ee71322");
+ check_base_class_offset(lv, (cc322*)(dd1322*), ABISELECT(32,16), "ee71322");
+ check_base_class_offset(lv, (dd1322*), ABISELECT(16,8), "ee71322");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71322.e");
+ test_class_info(&lv, &cd_ee71322);
+ dp->~ee71322();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71322(Test_ee71322, "ee71322", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee71322C1Ev();
+extern void _ZN7ee71322D1Ev();
+Name_Map name_map_ee71322[] = {
+ NSPAIR(_ZN7ee71322C1Ev),
+ NSPAIR(_ZN7ee71322D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc322;
+extern VTBL_ENTRY _ZTI5cc322[];
+extern VTBL_ENTRY _ZTV5cc322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc322[];
+extern Class_Descriptor cd_dd1322;
+extern VTBL_ENTRY _ZTI6dd1322[];
+extern VTBL_ENTRY _ZTV6dd1322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1322[];
+static Base_Class bases_ee71322[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb22, ABISELECT(48,24), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc322, 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_dd1322, 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 _ZTI7ee71322[];
+extern void _ZN7ee713223fooEv();
+extern void _ZN7ee713223barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee713223fooEv,_ZTv0_n16_N7ee713223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee713223fooEv,_ZThn16_N7ee713223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee713223fooEv,_ZTv0_n12_N7ee713223fooEv)();
+extern void ABISELECT(_ZThn48_N7ee713223fooEv,_ZThn24_N7ee713223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee713223barEv,_ZTv0_n16_N7ee713223barEv)();
+extern void ABISELECT(_ZThn48_N7ee713223barEv,_ZThn24_N7ee713223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71322[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71322[0]),
+ (VTBL_ENTRY)&_ZN7ee713223fooEv,
+ (VTBL_ENTRY)&_ZN7ee713223barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71322[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee713223fooEv,_ZTv0_n16_N7ee713223fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee71322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee713223fooEv,_ZTv0_n12_N7ee713223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee713223barEv,_ZTv0_n16_N7ee713223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee71322[];
+static VTBL_ENTRY _tg__ZTV6dd1322__7ee71322[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1322[0]),
+};
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc322__6dd1322__7ee71322[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__6dd1322__7ee71322[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc322__7ee71322[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc322__7ee71322[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee71322[] = {
+ {&(_ZTV7ee71322[5]), 5,22},
+ {&(_ZTV7ee71322[11]), 11,22},
+ {&(_ZTV7ee71322[15]), 15,22},
+ {&(_ZTV7ee71322[20]), 20,22},
+ {&(_tg__ZTV6dd1322__7ee71322[4]), 4,4},
+ {&(_tg__ZTV5cc322__6dd1322__7ee71322[4]), 4,5},
+ {&(_tg__ZTV4bb22__6dd1322__7ee71322[4]), 4,6},
+ {&(_tg__ZTV5cc322__7ee71322[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc322__7ee71322[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee71322[];
+extern VTBL_ENTRY _ZTV7ee71322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71322[];
+static VTBL_ENTRY alt_thunk_names1025[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee713223barEv,_ZTv0_n16_N7ee713223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee713223barEv,_ZThn24_N7ee713223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee713223fooEv,_ZTv0_n12_N7ee713223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee713223fooEv,_ZThn24_N7ee713223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee713223fooEv,_ZTv0_n16_N7ee713223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee713223fooEv,_ZThn16_N7ee713223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71322 = { "ee71322", // class name
+ bases_ee71322, 4,
+ &(vtc_ee71322[0]), // expected_vtbl_contents
+ &(vtt_ee71322[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee71322),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71322),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71322),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1025,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd2322 : cc322 {
+ int d;
+ virtual void foo(); // _ZN6dd23223fooEv
+ ~dd2322(); // tgen
+ dd2322(); // tgen
+};
+//SIG(-1 dd2322) C1{ BC2{ VBC3{ BC4{ v1 v2 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void dd2322 ::foo(){vfunc_called(this, "_ZN6dd23223fooEv");}
+dd2322 ::~dd2322(){ note_dtor("dd2322", this);} // tgen
+dd2322 ::dd2322(){ note_ctor("dd2322", this);} // tgen
+
+static void Test_dd2322()
+{
+ extern Class_Descriptor cd_dd2322;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd2322, buf);
+ dd2322 *dp, &lv = *(dp=new (buf) dd2322());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd2322)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2322)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(16,12), "dd2322");
+ check_base_class_offset(lv, (bb22*)(cc322*), ABISELECT(16,12), "dd2322");
+ check_base_class_offset(lv, (cc322*), 0, "dd2322");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd2322.d");
+ test_class_info(&lv, &cd_dd2322);
+ dp->~dd2322();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2322(Test_dd2322, "dd2322", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd2322C1Ev();
+extern void _ZN6dd2322D1Ev();
+Name_Map name_map_dd2322[] = {
+ NSPAIR(_ZN6dd2322C1Ev),
+ NSPAIR(_ZN6dd2322D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc322;
+extern VTBL_ENTRY _ZTI5cc322[];
+extern VTBL_ENTRY _ZTV5cc322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc322[];
+static Base_Class bases_dd2322[] = {
+ // 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_bb22, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc322, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd2322[];
+extern void _ZN6dd23223fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd23223fooEv,_ZTv0_n12_N6dd23223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd23223fooEv,_ZThn12_N6dd23223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_dd2322[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2322[0]),
+ (VTBL_ENTRY)&_ZN6dd23223fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23223fooEv,_ZTv0_n12_N6dd23223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV6dd2322[];
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc322__6dd2322[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn12_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc322__6dd2322[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_dd2322[] = {
+ {&(_ZTV6dd2322[3]), 3,10},
+ {&(_tg__ZTV5cc322__6dd2322[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc322__6dd2322[4]), 4,6},
+ {&(_ZTV6dd2322[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd2322[];
+extern VTBL_ENTRY _ZTV6dd2322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2322[];
+static VTBL_ENTRY alt_thunk_names1026[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn12_N5cc3223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23223fooEv,_ZTv0_n12_N6dd23223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd23223fooEv,_ZThn12_N6dd23223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd2322 = { "dd2322", // class name
+ bases_dd2322, 3,
+ &(vtc_dd2322[0]), // expected_vtbl_contents
+ &(vtt_dd2322[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd2322),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2322),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd2322),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1026,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee02322 : dd2322 {
+ int e;
+ ~ee02322(); // tgen
+ ee02322(); // tgen
+};
+//SIG(1 ee02322) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee02322 ::~ee02322(){ note_dtor("ee02322", this);} // tgen
+ee02322 ::ee02322(){ note_ctor("ee02322", this);} // tgen
+
+static void Test_ee02322()
+{
+ extern Class_Descriptor cd_ee02322;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee02322, buf);
+ ee02322 *dp, &lv = *(dp=new (buf) ee02322());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee02322)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02322)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(24,16), "ee02322");
+ check_base_class_offset(lv, (bb22*)(cc322*)(dd2322*), ABISELECT(24,16), "ee02322");
+ check_base_class_offset(lv, (cc322*)(dd2322*), 0, "ee02322");
+ check_base_class_offset(lv, (dd2322*), 0, "ee02322");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee02322.e");
+ test_class_info(&lv, &cd_ee02322);
+ dp->~ee02322();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02322(Test_ee02322, "ee02322", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee02322C1Ev();
+extern void _ZN7ee02322D1Ev();
+Name_Map name_map_ee02322[] = {
+ NSPAIR(_ZN7ee02322C1Ev),
+ NSPAIR(_ZN7ee02322D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc322;
+extern VTBL_ENTRY _ZTI5cc322[];
+extern VTBL_ENTRY _ZTV5cc322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc322[];
+extern Class_Descriptor cd_dd2322;
+extern VTBL_ENTRY _ZTI6dd2322[];
+extern VTBL_ENTRY _ZTV6dd2322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2322[];
+static Base_Class bases_ee02322[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc322, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2322, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee02322[];
+extern void _ZN6dd23223fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd23223fooEv,_ZTv0_n12_N6dd23223fooEv)();
+extern void ABISELECT(_ZThn24_N6dd23223fooEv,_ZThn16_N6dd23223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee02322[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02322[0]),
+ (VTBL_ENTRY)&_ZN6dd23223fooEv,
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee02322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23223fooEv,_ZTv0_n12_N6dd23223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee02322[];
+extern void _ZN6dd23223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2322__7ee02322[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2322[0]),
+ (VTBL_ENTRY)&_ZN6dd23223fooEv,
+};
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3226dd2322__7ee02322[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3223fooEv,_ZThn16_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc3226dd2322__7ee02322[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd23223fooEv,_ZTv0_n12_N6dd23223fooEv)();
+extern void ABISELECT(_ZThn24_N6dd23223fooEv,_ZThn16_N6dd23223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__6dd2322__7ee02322[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23223fooEv,_ZTv0_n12_N6dd23223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee02322[] = {
+ {&(_ZTV7ee02322[3]), 3,10},
+ {&(_tg__ZTV6dd2322__7ee02322[3]), 3,4},
+ {&(_tg__ZTV5cc3226dd2322__7ee02322[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc3226dd2322__7ee02322[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd2322__7ee02322[4]), 4,6},
+ {&(_ZTV7ee02322[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee02322[];
+extern VTBL_ENTRY _ZTV7ee02322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee02322[];
+static VTBL_ENTRY alt_thunk_names1027[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3223fooEv,_ZThn16_N5cc3223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23223fooEv,_ZTv0_n12_N6dd23223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd23223fooEv,_ZThn16_N6dd23223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd23223fooEv,_ZThn16_N6dd23223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee02322 = { "ee02322", // class name
+ bases_ee02322, 4,
+ &(vtc_ee02322[0]), // expected_vtbl_contents
+ &(vtt_ee02322[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee02322),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02322),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee02322),6, //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 ee12322 : virtual dd2322 {
+ int e;
+ ~ee12322(); // tgen
+ ee12322(); // tgen
+};
+//SIG(1 ee12322) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee12322 ::~ee12322(){ note_dtor("ee12322", this);} // tgen
+ee12322 ::ee12322(){ note_ctor("ee12322", this);} // tgen
+
+static void Test_ee12322()
+{
+ extern Class_Descriptor cd_ee12322;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee12322, buf);
+ ee12322 *dp, &lv = *(dp=new (buf) ee12322());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee12322)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12322)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee12322");
+ check_base_class_offset(lv, (bb22*)(cc322*)(dd2322*), ABISELECT(32,20), "ee12322");
+ check_base_class_offset(lv, (cc322*)(dd2322*), ABISELECT(16,8), "ee12322");
+ check_base_class_offset(lv, (dd2322*), ABISELECT(16,8), "ee12322");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12322.e");
+ test_class_info(&lv, &cd_ee12322);
+ dp->~ee12322();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12322(Test_ee12322, "ee12322", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee12322C1Ev();
+extern void _ZN7ee12322D1Ev();
+Name_Map name_map_ee12322[] = {
+ NSPAIR(_ZN7ee12322C1Ev),
+ NSPAIR(_ZN7ee12322D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc322;
+extern VTBL_ENTRY _ZTI5cc322[];
+extern VTBL_ENTRY _ZTV5cc322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc322[];
+extern Class_Descriptor cd_dd2322;
+extern VTBL_ENTRY _ZTI6dd2322[];
+extern VTBL_ENTRY _ZTV6dd2322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2322[];
+static Base_Class bases_ee12322[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc322, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2322, 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 _ZTI7ee12322[];
+extern void _ZN6dd23223fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd23223fooEv,_ZTv0_n12_N6dd23223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd23223fooEv,_ZThn12_N6dd23223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee12322[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12322[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12322[0]),
+ (VTBL_ENTRY)&_ZN6dd23223fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee12322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23223fooEv,_ZTv0_n12_N6dd23223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee12322[];
+extern void _ZN6dd23223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2322__7ee12322[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2322[0]),
+ (VTBL_ENTRY)&_ZN6dd23223fooEv,
+};
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3226dd2322__7ee12322[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn12_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc3226dd2322__7ee12322[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd23223fooEv,_ZTv0_n12_N6dd23223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd23223fooEv,_ZThn12_N6dd23223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__6dd2322__7ee12322[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23223fooEv,_ZTv0_n12_N6dd23223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee12322[] = {
+ {&(_ZTV7ee12322[4]), 4,15},
+ {&(_ZTV7ee12322[8]), 8,15},
+ {&(_ZTV7ee12322[13]), 13,15},
+ {&(_tg__ZTV6dd2322__7ee12322[3]), 3,4},
+ {&(_tg__ZTV5cc3226dd2322__7ee12322[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc3226dd2322__7ee12322[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd2322__7ee12322[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee12322[];
+extern VTBL_ENTRY _ZTV7ee12322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12322[];
+static VTBL_ENTRY alt_thunk_names1028[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn12_N5cc3223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23223fooEv,_ZTv0_n12_N6dd23223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd23223fooEv,_ZThn12_N6dd23223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd23223fooEv,_ZThn12_N6dd23223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee12322 = { "ee12322", // class name
+ bases_ee12322, 4,
+ &(vtc_ee12322[0]), // expected_vtbl_contents
+ &(vtt_ee12322[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee12322),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12322),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12322),7, //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 ee22322 : dd2322 {
+ int e;
+ virtual void foo(); // _ZN7ee223223fooEv
+ ~ee22322(); // tgen
+ ee22322(); // tgen
+};
+//SIG(1 ee22322) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee22322 ::foo(){vfunc_called(this, "_ZN7ee223223fooEv");}
+ee22322 ::~ee22322(){ note_dtor("ee22322", this);} // tgen
+ee22322 ::ee22322(){ note_ctor("ee22322", this);} // tgen
+
+static void Test_ee22322()
+{
+ extern Class_Descriptor cd_ee22322;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee22322, buf);
+ ee22322 *dp, &lv = *(dp=new (buf) ee22322());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee22322)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22322)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(24,16), "ee22322");
+ check_base_class_offset(lv, (bb22*)(cc322*)(dd2322*), ABISELECT(24,16), "ee22322");
+ check_base_class_offset(lv, (cc322*)(dd2322*), 0, "ee22322");
+ check_base_class_offset(lv, (dd2322*), 0, "ee22322");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee22322.e");
+ test_class_info(&lv, &cd_ee22322);
+ dp->~ee22322();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22322(Test_ee22322, "ee22322", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee22322C1Ev();
+extern void _ZN7ee22322D1Ev();
+Name_Map name_map_ee22322[] = {
+ NSPAIR(_ZN7ee22322C1Ev),
+ NSPAIR(_ZN7ee22322D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc322;
+extern VTBL_ENTRY _ZTI5cc322[];
+extern VTBL_ENTRY _ZTV5cc322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc322[];
+extern Class_Descriptor cd_dd2322;
+extern VTBL_ENTRY _ZTI6dd2322[];
+extern VTBL_ENTRY _ZTV6dd2322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2322[];
+static Base_Class bases_ee22322[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc322, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2322, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee22322[];
+extern void _ZN7ee223223fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee223223fooEv,_ZTv0_n12_N7ee223223fooEv)();
+extern void ABISELECT(_ZThn24_N7ee223223fooEv,_ZThn16_N7ee223223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee22322[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22322[0]),
+ (VTBL_ENTRY)&_ZN7ee223223fooEv,
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee22322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee223223fooEv,_ZTv0_n12_N7ee223223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee22322[];
+extern void _ZN6dd23223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2322__7ee22322[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2322[0]),
+ (VTBL_ENTRY)&_ZN6dd23223fooEv,
+};
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3226dd2322__7ee22322[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3223fooEv,_ZThn16_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc3226dd2322__7ee22322[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd23223fooEv,_ZTv0_n12_N6dd23223fooEv)();
+extern void ABISELECT(_ZThn24_N6dd23223fooEv,_ZThn16_N6dd23223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__6dd2322__7ee22322[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23223fooEv,_ZTv0_n12_N6dd23223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee22322[] = {
+ {&(_ZTV7ee22322[3]), 3,10},
+ {&(_tg__ZTV6dd2322__7ee22322[3]), 3,4},
+ {&(_tg__ZTV5cc3226dd2322__7ee22322[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc3226dd2322__7ee22322[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd2322__7ee22322[4]), 4,6},
+ {&(_ZTV7ee22322[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee22322[];
+extern VTBL_ENTRY _ZTV7ee22322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee22322[];
+static VTBL_ENTRY alt_thunk_names1029[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23223fooEv,_ZTv0_n12_N6dd23223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd23223fooEv,_ZThn16_N6dd23223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3223fooEv,_ZThn16_N5cc3223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee223223fooEv,_ZTv0_n12_N7ee223223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee223223fooEv,_ZThn16_N7ee223223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee22322 = { "ee22322", // class name
+ bases_ee22322, 4,
+ &(vtc_ee22322[0]), // expected_vtbl_contents
+ &(vtt_ee22322[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee22322),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22322),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee22322),6, //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 ee32322 : virtual dd2322 {
+ int e;
+ virtual void foo(); // _ZN7ee323223fooEv
+ ~ee32322(); // tgen
+ ee32322(); // tgen
+};
+//SIG(1 ee32322) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee32322 ::foo(){vfunc_called(this, "_ZN7ee323223fooEv");}
+ee32322 ::~ee32322(){ note_dtor("ee32322", this);} // tgen
+ee32322 ::ee32322(){ note_ctor("ee32322", this);} // tgen
+
+static void Test_ee32322()
+{
+ extern Class_Descriptor cd_ee32322;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee32322, buf);
+ ee32322 *dp, &lv = *(dp=new (buf) ee32322());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee32322)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32322)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee32322");
+ check_base_class_offset(lv, (bb22*)(cc322*)(dd2322*), ABISELECT(32,20), "ee32322");
+ check_base_class_offset(lv, (cc322*)(dd2322*), ABISELECT(16,8), "ee32322");
+ check_base_class_offset(lv, (dd2322*), ABISELECT(16,8), "ee32322");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32322.e");
+ test_class_info(&lv, &cd_ee32322);
+ dp->~ee32322();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32322(Test_ee32322, "ee32322", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee32322C1Ev();
+extern void _ZN7ee32322D1Ev();
+Name_Map name_map_ee32322[] = {
+ NSPAIR(_ZN7ee32322C1Ev),
+ NSPAIR(_ZN7ee32322D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc322;
+extern VTBL_ENTRY _ZTI5cc322[];
+extern VTBL_ENTRY _ZTV5cc322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc322[];
+extern Class_Descriptor cd_dd2322;
+extern VTBL_ENTRY _ZTI6dd2322[];
+extern VTBL_ENTRY _ZTV6dd2322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2322[];
+static Base_Class bases_ee32322[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc322, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2322, 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 _ZTI7ee32322[];
+extern void _ZN7ee323223fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee323223fooEv,_ZTv0_n16_N7ee323223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee323223fooEv,_ZThn8_N7ee323223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee323223fooEv,_ZTv0_n12_N7ee323223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee323223fooEv,_ZThn20_N7ee323223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee32322[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32322[0]),
+ (VTBL_ENTRY)&_ZN7ee323223fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee323223fooEv,_ZTv0_n16_N7ee323223fooEv),
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee32322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee323223fooEv,_ZTv0_n12_N7ee323223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee32322[];
+extern void _ZN6dd23223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2322__7ee32322[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2322[0]),
+ (VTBL_ENTRY)&_ZN6dd23223fooEv,
+};
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3226dd2322__7ee32322[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn12_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc3226dd2322__7ee32322[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd23223fooEv,_ZTv0_n12_N6dd23223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd23223fooEv,_ZThn12_N6dd23223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__6dd2322__7ee32322[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23223fooEv,_ZTv0_n12_N6dd23223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee32322[] = {
+ {&(_ZTV7ee32322[4]), 4,16},
+ {&(_ZTV7ee32322[9]), 9,16},
+ {&(_ZTV7ee32322[14]), 14,16},
+ {&(_tg__ZTV6dd2322__7ee32322[3]), 3,4},
+ {&(_tg__ZTV5cc3226dd2322__7ee32322[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc3226dd2322__7ee32322[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd2322__7ee32322[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee32322[];
+extern VTBL_ENTRY _ZTV7ee32322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32322[];
+static VTBL_ENTRY alt_thunk_names1030[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23223fooEv,_ZTv0_n12_N6dd23223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd23223fooEv,_ZThn12_N6dd23223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn12_N5cc3223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee323223fooEv,_ZTv0_n12_N7ee323223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee323223fooEv,_ZThn20_N7ee323223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee323223fooEv,_ZTv0_n16_N7ee323223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee323223fooEv,_ZThn8_N7ee323223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32322 = { "ee32322", // class name
+ bases_ee32322, 4,
+ &(vtc_ee32322[0]), // expected_vtbl_contents
+ &(vtt_ee32322[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee32322),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32322),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32322),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1030,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee42322 : dd2322 {
+ int e;
+ virtual void bar(); // _ZN7ee423223barEv
+ ~ee42322(); // tgen
+ ee42322(); // tgen
+};
+//SIG(1 ee42322) C1{ BC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee42322 ::bar(){vfunc_called(this, "_ZN7ee423223barEv");}
+ee42322 ::~ee42322(){ note_dtor("ee42322", this);} // tgen
+ee42322 ::ee42322(){ note_ctor("ee42322", this);} // tgen
+
+static void Test_ee42322()
+{
+ extern Class_Descriptor cd_ee42322;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee42322, buf);
+ ee42322 *dp, &lv = *(dp=new (buf) ee42322());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee42322)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42322)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(24,16), "ee42322");
+ check_base_class_offset(lv, (bb22*)(cc322*)(dd2322*), ABISELECT(24,16), "ee42322");
+ check_base_class_offset(lv, (cc322*)(dd2322*), 0, "ee42322");
+ check_base_class_offset(lv, (dd2322*), 0, "ee42322");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee42322.e");
+ test_class_info(&lv, &cd_ee42322);
+ dp->~ee42322();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42322(Test_ee42322, "ee42322", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee42322C1Ev();
+extern void _ZN7ee42322D1Ev();
+Name_Map name_map_ee42322[] = {
+ NSPAIR(_ZN7ee42322C1Ev),
+ NSPAIR(_ZN7ee42322D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc322;
+extern VTBL_ENTRY _ZTI5cc322[];
+extern VTBL_ENTRY _ZTV5cc322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc322[];
+extern Class_Descriptor cd_dd2322;
+extern VTBL_ENTRY _ZTI6dd2322[];
+extern VTBL_ENTRY _ZTV6dd2322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2322[];
+static Base_Class bases_ee42322[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc322, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2322, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee42322[];
+extern void _ZN6dd23223fooEv();
+extern void _ZN7ee423223barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd23223fooEv,_ZTv0_n12_N6dd23223fooEv)();
+extern void ABISELECT(_ZThn24_N6dd23223fooEv,_ZThn16_N6dd23223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee423223barEv,_ZTv0_n16_N7ee423223barEv)();
+extern void ABISELECT(_ZThn24_N7ee423223barEv,_ZThn16_N7ee423223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee42322[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42322[0]),
+ (VTBL_ENTRY)&_ZN6dd23223fooEv,
+ (VTBL_ENTRY)&_ZN7ee423223barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee42322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23223fooEv,_ZTv0_n12_N6dd23223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee423223barEv,_ZTv0_n16_N7ee423223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee42322[];
+extern void _ZN6dd23223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2322__7ee42322[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2322[0]),
+ (VTBL_ENTRY)&_ZN6dd23223fooEv,
+};
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3226dd2322__7ee42322[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3223fooEv,_ZThn16_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc3226dd2322__7ee42322[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd23223fooEv,_ZTv0_n12_N6dd23223fooEv)();
+extern void ABISELECT(_ZThn24_N6dd23223fooEv,_ZThn16_N6dd23223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__6dd2322__7ee42322[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23223fooEv,_ZTv0_n12_N6dd23223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee42322[] = {
+ {&(_ZTV7ee42322[3]), 3,11},
+ {&(_tg__ZTV6dd2322__7ee42322[3]), 3,4},
+ {&(_tg__ZTV5cc3226dd2322__7ee42322[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc3226dd2322__7ee42322[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd2322__7ee42322[4]), 4,6},
+ {&(_ZTV7ee42322[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee42322[];
+extern VTBL_ENTRY _ZTV7ee42322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee42322[];
+static VTBL_ENTRY alt_thunk_names1031[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3223fooEv,_ZThn16_N5cc3223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee423223barEv,_ZTv0_n16_N7ee423223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee423223barEv,_ZThn16_N7ee423223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23223fooEv,_ZTv0_n12_N6dd23223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd23223fooEv,_ZThn16_N6dd23223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd23223fooEv,_ZThn16_N6dd23223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee42322 = { "ee42322", // class name
+ bases_ee42322, 4,
+ &(vtc_ee42322[0]), // expected_vtbl_contents
+ &(vtt_ee42322[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee42322),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42322),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee42322),6, //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 ee52322 : virtual dd2322 {
+ int e;
+ virtual void bar(); // _ZN7ee523223barEv
+ ~ee52322(); // tgen
+ ee52322(); // tgen
+};
+//SIG(1 ee52322) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee52322 ::bar(){vfunc_called(this, "_ZN7ee523223barEv");}
+ee52322 ::~ee52322(){ note_dtor("ee52322", this);} // tgen
+ee52322 ::ee52322(){ note_ctor("ee52322", this);} // tgen
+
+static void Test_ee52322()
+{
+ extern Class_Descriptor cd_ee52322;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee52322, buf);
+ ee52322 *dp, &lv = *(dp=new (buf) ee52322());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee52322)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52322)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee52322");
+ check_base_class_offset(lv, (bb22*)(cc322*)(dd2322*), ABISELECT(32,20), "ee52322");
+ check_base_class_offset(lv, (cc322*)(dd2322*), ABISELECT(16,8), "ee52322");
+ check_base_class_offset(lv, (dd2322*), ABISELECT(16,8), "ee52322");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52322.e");
+ test_class_info(&lv, &cd_ee52322);
+ dp->~ee52322();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52322(Test_ee52322, "ee52322", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee52322C1Ev();
+extern void _ZN7ee52322D1Ev();
+Name_Map name_map_ee52322[] = {
+ NSPAIR(_ZN7ee52322C1Ev),
+ NSPAIR(_ZN7ee52322D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc322;
+extern VTBL_ENTRY _ZTI5cc322[];
+extern VTBL_ENTRY _ZTV5cc322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc322[];
+extern Class_Descriptor cd_dd2322;
+extern VTBL_ENTRY _ZTI6dd2322[];
+extern VTBL_ENTRY _ZTV6dd2322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2322[];
+static Base_Class bases_ee52322[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc322, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2322, 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 _ZTI7ee52322[];
+extern void _ZN7ee523223barEv();
+extern void _ZN6dd23223fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd23223fooEv,_ZTv0_n12_N6dd23223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd23223fooEv,_ZThn12_N6dd23223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee523223barEv,_ZTv0_n16_N7ee523223barEv)();
+extern void ABISELECT(_ZThn32_N7ee523223barEv,_ZThn20_N7ee523223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee52322[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52322[0]),
+ (VTBL_ENTRY)&_ZN7ee523223barEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52322[0]),
+ (VTBL_ENTRY)&_ZN6dd23223fooEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee52322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23223fooEv,_ZTv0_n12_N6dd23223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee523223barEv,_ZTv0_n16_N7ee523223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee52322[];
+extern void _ZN6dd23223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2322__7ee52322[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2322[0]),
+ (VTBL_ENTRY)&_ZN6dd23223fooEv,
+};
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3226dd2322__7ee52322[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn12_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc3226dd2322__7ee52322[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd23223fooEv,_ZTv0_n12_N6dd23223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd23223fooEv,_ZThn12_N6dd23223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__6dd2322__7ee52322[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23223fooEv,_ZTv0_n12_N6dd23223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee52322[] = {
+ {&(_ZTV7ee52322[4]), 4,16},
+ {&(_ZTV7ee52322[9]), 9,16},
+ {&(_ZTV7ee52322[14]), 14,16},
+ {&(_tg__ZTV6dd2322__7ee52322[3]), 3,4},
+ {&(_tg__ZTV5cc3226dd2322__7ee52322[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc3226dd2322__7ee52322[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd2322__7ee52322[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee52322[];
+extern VTBL_ENTRY _ZTV7ee52322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52322[];
+static VTBL_ENTRY alt_thunk_names1032[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn12_N5cc3223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee523223barEv,_ZTv0_n16_N7ee523223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee523223barEv,_ZThn20_N7ee523223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23223fooEv,_ZTv0_n12_N6dd23223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd23223fooEv,_ZThn12_N6dd23223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd23223fooEv,_ZThn12_N6dd23223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52322 = { "ee52322", // class name
+ bases_ee52322, 4,
+ &(vtc_ee52322[0]), // expected_vtbl_contents
+ &(vtt_ee52322[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee52322),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52322),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52322),7, //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 ee62322 : dd2322 {
+ int e;
+ virtual void foo(); // _ZN7ee623223fooEv
+ virtual void bar(); // _ZN7ee623223barEv
+ ~ee62322(); // tgen
+ ee62322(); // tgen
+};
+//SIG(1 ee62322) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62322 ::foo(){vfunc_called(this, "_ZN7ee623223fooEv");}
+void ee62322 ::bar(){vfunc_called(this, "_ZN7ee623223barEv");}
+ee62322 ::~ee62322(){ note_dtor("ee62322", this);} // tgen
+ee62322 ::ee62322(){ note_ctor("ee62322", this);} // tgen
+
+static void Test_ee62322()
+{
+ extern Class_Descriptor cd_ee62322;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee62322, buf);
+ ee62322 *dp, &lv = *(dp=new (buf) ee62322());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee62322)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62322)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(24,16), "ee62322");
+ check_base_class_offset(lv, (bb22*)(cc322*)(dd2322*), ABISELECT(24,16), "ee62322");
+ check_base_class_offset(lv, (cc322*)(dd2322*), 0, "ee62322");
+ check_base_class_offset(lv, (dd2322*), 0, "ee62322");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee62322.e");
+ test_class_info(&lv, &cd_ee62322);
+ dp->~ee62322();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62322(Test_ee62322, "ee62322", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee62322C1Ev();
+extern void _ZN7ee62322D1Ev();
+Name_Map name_map_ee62322[] = {
+ NSPAIR(_ZN7ee62322C1Ev),
+ NSPAIR(_ZN7ee62322D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc322;
+extern VTBL_ENTRY _ZTI5cc322[];
+extern VTBL_ENTRY _ZTV5cc322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc322[];
+extern Class_Descriptor cd_dd2322;
+extern VTBL_ENTRY _ZTI6dd2322[];
+extern VTBL_ENTRY _ZTV6dd2322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2322[];
+static Base_Class bases_ee62322[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc322, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2322, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee62322[];
+extern void _ZN7ee623223fooEv();
+extern void _ZN7ee623223barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee623223fooEv,_ZTv0_n12_N7ee623223fooEv)();
+extern void ABISELECT(_ZThn24_N7ee623223fooEv,_ZThn16_N7ee623223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee623223barEv,_ZTv0_n16_N7ee623223barEv)();
+extern void ABISELECT(_ZThn24_N7ee623223barEv,_ZThn16_N7ee623223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee62322[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62322[0]),
+ (VTBL_ENTRY)&_ZN7ee623223fooEv,
+ (VTBL_ENTRY)&_ZN7ee623223barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee62322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee623223fooEv,_ZTv0_n12_N7ee623223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee623223barEv,_ZTv0_n16_N7ee623223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee62322[];
+extern void _ZN6dd23223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2322__7ee62322[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2322[0]),
+ (VTBL_ENTRY)&_ZN6dd23223fooEv,
+};
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3226dd2322__7ee62322[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3223fooEv,_ZThn16_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc3226dd2322__7ee62322[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd23223fooEv,_ZTv0_n12_N6dd23223fooEv)();
+extern void ABISELECT(_ZThn24_N6dd23223fooEv,_ZThn16_N6dd23223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__6dd2322__7ee62322[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23223fooEv,_ZTv0_n12_N6dd23223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee62322[] = {
+ {&(_ZTV7ee62322[3]), 3,11},
+ {&(_tg__ZTV6dd2322__7ee62322[3]), 3,4},
+ {&(_tg__ZTV5cc3226dd2322__7ee62322[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc3226dd2322__7ee62322[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd2322__7ee62322[4]), 4,6},
+ {&(_ZTV7ee62322[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee62322[];
+extern VTBL_ENTRY _ZTV7ee62322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee62322[];
+static VTBL_ENTRY alt_thunk_names1033[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23223fooEv,_ZTv0_n12_N6dd23223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd23223fooEv,_ZThn16_N6dd23223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3223fooEv,_ZThn16_N5cc3223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee623223barEv,_ZTv0_n16_N7ee623223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee623223barEv,_ZThn16_N7ee623223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee623223fooEv,_ZTv0_n12_N7ee623223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee623223fooEv,_ZThn16_N7ee623223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee62322 = { "ee62322", // class name
+ bases_ee62322, 4,
+ &(vtc_ee62322[0]), // expected_vtbl_contents
+ &(vtt_ee62322[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee62322),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62322),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee62322),6, //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 ee72322 : virtual dd2322 {
+ int e;
+ virtual void foo(); // _ZN7ee723223fooEv
+ virtual void bar(); // _ZN7ee723223barEv
+ ~ee72322(); // tgen
+ ee72322(); // tgen
+};
+//SIG(1 ee72322) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72322 ::foo(){vfunc_called(this, "_ZN7ee723223fooEv");}
+void ee72322 ::bar(){vfunc_called(this, "_ZN7ee723223barEv");}
+ee72322 ::~ee72322(){ note_dtor("ee72322", this);} // tgen
+ee72322 ::ee72322(){ note_ctor("ee72322", this);} // tgen
+
+static void Test_ee72322()
+{
+ extern Class_Descriptor cd_ee72322;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee72322, buf);
+ ee72322 *dp, &lv = *(dp=new (buf) ee72322());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee72322)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72322)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee72322");
+ check_base_class_offset(lv, (bb22*)(cc322*)(dd2322*), ABISELECT(32,20), "ee72322");
+ check_base_class_offset(lv, (cc322*)(dd2322*), ABISELECT(16,8), "ee72322");
+ check_base_class_offset(lv, (dd2322*), ABISELECT(16,8), "ee72322");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72322.e");
+ test_class_info(&lv, &cd_ee72322);
+ dp->~ee72322();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72322(Test_ee72322, "ee72322", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee72322C1Ev();
+extern void _ZN7ee72322D1Ev();
+Name_Map name_map_ee72322[] = {
+ NSPAIR(_ZN7ee72322C1Ev),
+ NSPAIR(_ZN7ee72322D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc322;
+extern VTBL_ENTRY _ZTI5cc322[];
+extern VTBL_ENTRY _ZTV5cc322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc322[];
+extern Class_Descriptor cd_dd2322;
+extern VTBL_ENTRY _ZTI6dd2322[];
+extern VTBL_ENTRY _ZTV6dd2322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2322[];
+static Base_Class bases_ee72322[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc322, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2322, 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 _ZTI7ee72322[];
+extern void _ZN7ee723223fooEv();
+extern void _ZN7ee723223barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee723223fooEv,_ZTv0_n16_N7ee723223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee723223fooEv,_ZThn8_N7ee723223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee723223fooEv,_ZTv0_n12_N7ee723223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee723223fooEv,_ZThn20_N7ee723223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee723223barEv,_ZTv0_n16_N7ee723223barEv)();
+extern void ABISELECT(_ZThn32_N7ee723223barEv,_ZThn20_N7ee723223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72322[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72322[0]),
+ (VTBL_ENTRY)&_ZN7ee723223fooEv,
+ (VTBL_ENTRY)&_ZN7ee723223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee723223fooEv,_ZTv0_n16_N7ee723223fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee72322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee723223fooEv,_ZTv0_n12_N7ee723223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee723223barEv,_ZTv0_n16_N7ee723223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee72322[];
+extern void _ZN6dd23223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2322__7ee72322[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2322[0]),
+ (VTBL_ENTRY)&_ZN6dd23223fooEv,
+};
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3226dd2322__7ee72322[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn12_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc3226dd2322__7ee72322[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd23223fooEv,_ZTv0_n12_N6dd23223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd23223fooEv,_ZThn12_N6dd23223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__6dd2322__7ee72322[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23223fooEv,_ZTv0_n12_N6dd23223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee72322[] = {
+ {&(_ZTV7ee72322[4]), 4,17},
+ {&(_ZTV7ee72322[10]), 10,17},
+ {&(_ZTV7ee72322[15]), 15,17},
+ {&(_tg__ZTV6dd2322__7ee72322[3]), 3,4},
+ {&(_tg__ZTV5cc3226dd2322__7ee72322[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc3226dd2322__7ee72322[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd2322__7ee72322[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee72322[];
+extern VTBL_ENTRY _ZTV7ee72322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72322[];
+static VTBL_ENTRY alt_thunk_names1034[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23223fooEv,_ZTv0_n12_N6dd23223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd23223fooEv,_ZThn12_N6dd23223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn12_N5cc3223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee723223barEv,_ZTv0_n16_N7ee723223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee723223barEv,_ZThn20_N7ee723223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee723223fooEv,_ZTv0_n12_N7ee723223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee723223fooEv,_ZThn20_N7ee723223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee723223fooEv,_ZTv0_n16_N7ee723223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee723223fooEv,_ZThn8_N7ee723223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72322 = { "ee72322", // class name
+ bases_ee72322, 4,
+ &(vtc_ee72322[0]), // expected_vtbl_contents
+ &(vtt_ee72322[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee72322),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72322),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72322),7, //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 dd3322 : virtual cc322 {
+ int d;
+ virtual void foo(); // _ZN6dd33223fooEv
+ ~dd3322(); // tgen
+ dd3322(); // tgen
+};
+//SIG(-1 dd3322) C1{ VBC2{ VBC3{ BC4{ v1 v2 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void dd3322 ::foo(){vfunc_called(this, "_ZN6dd33223fooEv");}
+dd3322 ::~dd3322(){ note_dtor("dd3322", this);} // tgen
+dd3322 ::dd3322(){ note_ctor("dd3322", this);} // tgen
+
+static void Test_dd3322()
+{
+ extern Class_Descriptor cd_dd3322;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd3322, buf);
+ dd3322 *dp, &lv = *(dp=new (buf) dd3322());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd3322)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3322)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,16), "dd3322");
+ check_base_class_offset(lv, (bb22*)(cc322*), ABISELECT(32,16), "dd3322");
+ check_base_class_offset(lv, (cc322*), ABISELECT(16,8), "dd3322");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3322.d");
+ test_class_info(&lv, &cd_dd3322);
+ dp->~dd3322();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3322(Test_dd3322, "dd3322", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd3322C1Ev();
+extern void _ZN6dd3322D1Ev();
+Name_Map name_map_dd3322[] = {
+ NSPAIR(_ZN6dd3322C1Ev),
+ NSPAIR(_ZN6dd3322D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc322;
+extern VTBL_ENTRY _ZTI5cc322[];
+extern VTBL_ENTRY _ZTV5cc322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc322[];
+static Base_Class bases_dd3322[] = {
+ // 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_bb22, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc322, 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 _ZTI6dd3322[];
+extern void _ZN6dd33223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd33223fooEv,_ZTv0_n16_N6dd33223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33223fooEv,_ZThn8_N6dd33223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd33223fooEv,_ZTv0_n12_N6dd33223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33223fooEv,_ZThn16_N6dd33223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_dd3322[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3322[0]),
+ (VTBL_ENTRY)&_ZN6dd33223fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33223fooEv,_ZTv0_n16_N6dd33223fooEv),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33223fooEv,_ZTv0_n12_N6dd33223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV6dd3322[];
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc322__6dd3322[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc322__6dd3322[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_dd3322[] = {
+ {&(_ZTV6dd3322[4]), 4,16},
+ {&(_ZTV6dd3322[9]), 9,16},
+ {&(_ZTV6dd3322[14]), 14,16},
+ {&(_tg__ZTV5cc322__6dd3322[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc322__6dd3322[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd3322[];
+extern VTBL_ENTRY _ZTV6dd3322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3322[];
+static VTBL_ENTRY alt_thunk_names1035[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33223fooEv,_ZTv0_n12_N6dd33223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33223fooEv,_ZThn16_N6dd33223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33223fooEv,_ZTv0_n16_N6dd33223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33223fooEv,_ZThn8_N6dd33223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3322 = { "dd3322", // class name
+ bases_dd3322, 3,
+ &(vtc_dd3322[0]), // expected_vtbl_contents
+ &(vtt_dd3322[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd3322),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3322),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3322),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1035,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03322 : dd3322 {
+ int e;
+ ~ee03322(); // tgen
+ ee03322(); // tgen
+};
+//SIG(1 ee03322) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee03322 ::~ee03322(){ note_dtor("ee03322", this);} // tgen
+ee03322 ::ee03322(){ note_ctor("ee03322", this);} // tgen
+
+static void Test_ee03322()
+{
+ extern Class_Descriptor cd_ee03322;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee03322, buf);
+ ee03322 *dp, &lv = *(dp=new (buf) ee03322());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee03322)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03322)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee03322");
+ check_base_class_offset(lv, (bb22*)(cc322*), ABISELECT(32,20), "ee03322");
+ check_base_class_offset(lv, (cc322*)(dd3322*), ABISELECT(16,12), "ee03322");
+ check_base_class_offset(lv, (dd3322*), 0, "ee03322");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03322.e");
+ test_class_info(&lv, &cd_ee03322);
+ dp->~ee03322();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03322(Test_ee03322, "ee03322", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee03322C1Ev();
+extern void _ZN7ee03322D1Ev();
+Name_Map name_map_ee03322[] = {
+ NSPAIR(_ZN7ee03322C1Ev),
+ NSPAIR(_ZN7ee03322D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc322;
+extern VTBL_ENTRY _ZTI5cc322[];
+extern VTBL_ENTRY _ZTV5cc322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc322[];
+extern Class_Descriptor cd_dd3322;
+extern VTBL_ENTRY _ZTI6dd3322[];
+extern VTBL_ENTRY _ZTV6dd3322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3322[];
+static Base_Class bases_ee03322[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc322, 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_dd3322, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03322[];
+extern void _ZN6dd33223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd33223fooEv,_ZTv0_n16_N6dd33223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33223fooEv,_ZThn12_N6dd33223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd33223fooEv,_ZTv0_n12_N6dd33223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33223fooEv,_ZThn20_N6dd33223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee03322[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03322[0]),
+ (VTBL_ENTRY)&_ZN6dd33223fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33223fooEv,_ZTv0_n16_N6dd33223fooEv),
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee03322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33223fooEv,_ZTv0_n12_N6dd33223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee03322[];
+extern void _ZN6dd33223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3322__7ee03322[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3322[0]),
+ (VTBL_ENTRY)&_ZN6dd33223fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd33223fooEv,_ZTv0_n16_N6dd33223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33223fooEv,_ZThn12_N6dd33223fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc322__6dd3322__7ee03322[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33223fooEv,_ZTv0_n16_N6dd33223fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd33223fooEv,_ZTv0_n12_N6dd33223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33223fooEv,_ZThn20_N6dd33223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__6dd3322__7ee03322[] = {
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33223fooEv,_ZTv0_n12_N6dd33223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc322__7ee03322[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc322__7ee03322[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee03322[] = {
+ {&(_ZTV7ee03322[4]), 4,16},
+ {&(_tg__ZTV6dd3322__7ee03322[4]), 4,5},
+ {&(_tg__ZTV5cc322__6dd3322__7ee03322[4]), 4,5},
+ {&(_tg__ZTV4bb22__6dd3322__7ee03322[4]), 4,6},
+ {&(_ZTV7ee03322[9]), 9,16},
+ {&(_ZTV7ee03322[14]), 14,16},
+ {&(_tg__ZTV5cc322__7ee03322[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc322__7ee03322[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee03322[];
+extern VTBL_ENTRY _ZTV7ee03322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03322[];
+static VTBL_ENTRY alt_thunk_names1036[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33223fooEv,_ZTv0_n12_N6dd33223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33223fooEv,_ZThn20_N6dd33223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33223fooEv,_ZThn20_N6dd33223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33223fooEv,_ZTv0_n16_N6dd33223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33223fooEv,_ZThn12_N6dd33223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33223fooEv,_ZThn12_N6dd33223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03322 = { "ee03322", // class name
+ bases_ee03322, 4,
+ &(vtc_ee03322[0]), // expected_vtbl_contents
+ &(vtt_ee03322[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee03322),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03322),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03322),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1036,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee13322 : virtual dd3322 {
+ int e;
+ ~ee13322(); // tgen
+ ee13322(); // tgen
+};
+//SIG(1 ee13322) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee13322 ::~ee13322(){ note_dtor("ee13322", this);} // tgen
+ee13322 ::ee13322(){ note_ctor("ee13322", this);} // tgen
+
+static void Test_ee13322()
+{
+ extern Class_Descriptor cd_ee13322;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee13322, buf);
+ ee13322 *dp, &lv = *(dp=new (buf) ee13322());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee13322)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13322)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(48,24), "ee13322");
+ check_base_class_offset(lv, (bb22*)(cc322*), ABISELECT(48,24), "ee13322");
+ check_base_class_offset(lv, (cc322*)(dd3322*), ABISELECT(32,16), "ee13322");
+ check_base_class_offset(lv, (dd3322*), ABISELECT(16,8), "ee13322");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13322.e");
+ test_class_info(&lv, &cd_ee13322);
+ dp->~ee13322();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13322(Test_ee13322, "ee13322", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee13322C1Ev();
+extern void _ZN7ee13322D1Ev();
+Name_Map name_map_ee13322[] = {
+ NSPAIR(_ZN7ee13322C1Ev),
+ NSPAIR(_ZN7ee13322D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc322;
+extern VTBL_ENTRY _ZTI5cc322[];
+extern VTBL_ENTRY _ZTV5cc322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc322[];
+extern Class_Descriptor cd_dd3322;
+extern VTBL_ENTRY _ZTI6dd3322[];
+extern VTBL_ENTRY _ZTV6dd3322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3322[];
+static Base_Class bases_ee13322[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb22, ABISELECT(48,24), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc322, 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_dd3322, 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 _ZTI7ee13322[];
+extern void _ZN6dd33223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd33223fooEv,_ZTv0_n16_N6dd33223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33223fooEv,_ZThn8_N6dd33223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd33223fooEv,_ZTv0_n12_N6dd33223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33223fooEv,_ZThn16_N6dd33223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee13322[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13322[0]),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13322[0]),
+ (VTBL_ENTRY)&_ZN6dd33223fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33223fooEv,_ZTv0_n16_N6dd33223fooEv),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee13322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33223fooEv,_ZTv0_n12_N6dd33223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee13322[];
+extern void _ZN6dd33223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3322__7ee13322[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3322[0]),
+ (VTBL_ENTRY)&_ZN6dd33223fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd33223fooEv,_ZTv0_n16_N6dd33223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33223fooEv,_ZThn8_N6dd33223fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc322__6dd3322__7ee13322[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33223fooEv,_ZTv0_n16_N6dd33223fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd33223fooEv,_ZTv0_n12_N6dd33223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33223fooEv,_ZThn16_N6dd33223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__6dd3322__7ee13322[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33223fooEv,_ZTv0_n12_N6dd33223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc322__7ee13322[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc322__7ee13322[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee13322[] = {
+ {&(_ZTV7ee13322[5]), 5,22},
+ {&(_ZTV7ee13322[10]), 10,22},
+ {&(_ZTV7ee13322[15]), 15,22},
+ {&(_ZTV7ee13322[20]), 20,22},
+ {&(_tg__ZTV6dd3322__7ee13322[4]), 4,5},
+ {&(_tg__ZTV5cc322__6dd3322__7ee13322[4]), 4,5},
+ {&(_tg__ZTV4bb22__6dd3322__7ee13322[4]), 4,6},
+ {&(_tg__ZTV5cc322__7ee13322[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc322__7ee13322[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee13322[];
+extern VTBL_ENTRY _ZTV7ee13322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13322[];
+static VTBL_ENTRY alt_thunk_names1037[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33223fooEv,_ZTv0_n12_N6dd33223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33223fooEv,_ZThn16_N6dd33223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33223fooEv,_ZThn16_N6dd33223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33223fooEv,_ZTv0_n16_N6dd33223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33223fooEv,_ZThn8_N6dd33223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33223fooEv,_ZThn8_N6dd33223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13322 = { "ee13322", // class name
+ bases_ee13322, 4,
+ &(vtc_ee13322[0]), // expected_vtbl_contents
+ &(vtt_ee13322[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee13322),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13322),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13322),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1037,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee23322 : dd3322 {
+ int e;
+ virtual void foo(); // _ZN7ee233223fooEv
+ ~ee23322(); // tgen
+ ee23322(); // tgen
+};
+//SIG(1 ee23322) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee23322 ::foo(){vfunc_called(this, "_ZN7ee233223fooEv");}
+ee23322 ::~ee23322(){ note_dtor("ee23322", this);} // tgen
+ee23322 ::ee23322(){ note_ctor("ee23322", this);} // tgen
+
+static void Test_ee23322()
+{
+ extern Class_Descriptor cd_ee23322;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee23322, buf);
+ ee23322 *dp, &lv = *(dp=new (buf) ee23322());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee23322)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23322)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee23322");
+ check_base_class_offset(lv, (bb22*)(cc322*), ABISELECT(32,20), "ee23322");
+ check_base_class_offset(lv, (cc322*)(dd3322*), ABISELECT(16,12), "ee23322");
+ check_base_class_offset(lv, (dd3322*), 0, "ee23322");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23322.e");
+ test_class_info(&lv, &cd_ee23322);
+ dp->~ee23322();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23322(Test_ee23322, "ee23322", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee23322C1Ev();
+extern void _ZN7ee23322D1Ev();
+Name_Map name_map_ee23322[] = {
+ NSPAIR(_ZN7ee23322C1Ev),
+ NSPAIR(_ZN7ee23322D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc322;
+extern VTBL_ENTRY _ZTI5cc322[];
+extern VTBL_ENTRY _ZTV5cc322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc322[];
+extern Class_Descriptor cd_dd3322;
+extern VTBL_ENTRY _ZTI6dd3322[];
+extern VTBL_ENTRY _ZTV6dd3322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3322[];
+static Base_Class bases_ee23322[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc322, 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_dd3322, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23322[];
+extern void _ZN7ee233223fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee233223fooEv,_ZTv0_n16_N7ee233223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee233223fooEv,_ZThn12_N7ee233223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee233223fooEv,_ZTv0_n12_N7ee233223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee233223fooEv,_ZThn20_N7ee233223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee23322[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23322[0]),
+ (VTBL_ENTRY)&_ZN7ee233223fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee233223fooEv,_ZTv0_n16_N7ee233223fooEv),
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee23322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee233223fooEv,_ZTv0_n12_N7ee233223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee23322[];
+extern void _ZN6dd33223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3322__7ee23322[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3322[0]),
+ (VTBL_ENTRY)&_ZN6dd33223fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd33223fooEv,_ZTv0_n16_N6dd33223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33223fooEv,_ZThn12_N6dd33223fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc322__6dd3322__7ee23322[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33223fooEv,_ZTv0_n16_N6dd33223fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd33223fooEv,_ZTv0_n12_N6dd33223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33223fooEv,_ZThn20_N6dd33223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__6dd3322__7ee23322[] = {
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33223fooEv,_ZTv0_n12_N6dd33223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc322__7ee23322[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc322__7ee23322[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee23322[] = {
+ {&(_ZTV7ee23322[4]), 4,16},
+ {&(_tg__ZTV6dd3322__7ee23322[4]), 4,5},
+ {&(_tg__ZTV5cc322__6dd3322__7ee23322[4]), 4,5},
+ {&(_tg__ZTV4bb22__6dd3322__7ee23322[4]), 4,6},
+ {&(_ZTV7ee23322[9]), 9,16},
+ {&(_ZTV7ee23322[14]), 14,16},
+ {&(_tg__ZTV5cc322__7ee23322[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc322__7ee23322[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee23322[];
+extern VTBL_ENTRY _ZTV7ee23322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23322[];
+static VTBL_ENTRY alt_thunk_names1038[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33223fooEv,_ZTv0_n12_N6dd33223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33223fooEv,_ZThn20_N6dd33223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33223fooEv,_ZTv0_n16_N6dd33223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33223fooEv,_ZThn12_N6dd33223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee233223fooEv,_ZTv0_n12_N7ee233223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee233223fooEv,_ZThn20_N7ee233223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee233223fooEv,_ZTv0_n16_N7ee233223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee233223fooEv,_ZThn12_N7ee233223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23322 = { "ee23322", // class name
+ bases_ee23322, 4,
+ &(vtc_ee23322[0]), // expected_vtbl_contents
+ &(vtt_ee23322[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee23322),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23322),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23322),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1038,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee33322 : virtual dd3322 {
+ int e;
+ virtual void foo(); // _ZN7ee333223fooEv
+ ~ee33322(); // tgen
+ ee33322(); // tgen
+};
+//SIG(1 ee33322) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee33322 ::foo(){vfunc_called(this, "_ZN7ee333223fooEv");}
+ee33322 ::~ee33322(){ note_dtor("ee33322", this);} // tgen
+ee33322 ::ee33322(){ note_ctor("ee33322", this);} // tgen
+
+static void Test_ee33322()
+{
+ extern Class_Descriptor cd_ee33322;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee33322, buf);
+ ee33322 *dp, &lv = *(dp=new (buf) ee33322());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee33322)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33322)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(48,24), "ee33322");
+ check_base_class_offset(lv, (bb22*)(cc322*), ABISELECT(48,24), "ee33322");
+ check_base_class_offset(lv, (cc322*)(dd3322*), ABISELECT(32,16), "ee33322");
+ check_base_class_offset(lv, (dd3322*), ABISELECT(16,8), "ee33322");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33322.e");
+ test_class_info(&lv, &cd_ee33322);
+ dp->~ee33322();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33322(Test_ee33322, "ee33322", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee33322C1Ev();
+extern void _ZN7ee33322D1Ev();
+Name_Map name_map_ee33322[] = {
+ NSPAIR(_ZN7ee33322C1Ev),
+ NSPAIR(_ZN7ee33322D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc322;
+extern VTBL_ENTRY _ZTI5cc322[];
+extern VTBL_ENTRY _ZTV5cc322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc322[];
+extern Class_Descriptor cd_dd3322;
+extern VTBL_ENTRY _ZTI6dd3322[];
+extern VTBL_ENTRY _ZTV6dd3322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3322[];
+static Base_Class bases_ee33322[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb22, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc322, 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_dd3322, ABISELECT(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 _ZTI7ee33322[];
+extern void _ZN7ee333223fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee333223fooEv,_ZTv0_n20_N7ee333223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee333223fooEv,_ZThn8_N7ee333223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee333223fooEv,_ZTv0_n16_N7ee333223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee333223fooEv,_ZThn16_N7ee333223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee333223fooEv,_ZTv0_n12_N7ee333223fooEv)();
+extern void ABISELECT(_ZThn48_N7ee333223fooEv,_ZThn24_N7ee333223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee33322[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33322[0]),
+ (VTBL_ENTRY)&_ZN7ee333223fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee333223fooEv,_ZTv0_n20_N7ee333223fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee333223fooEv,_ZTv0_n16_N7ee333223fooEv),
+ 0,
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee33322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee333223fooEv,_ZTv0_n12_N7ee333223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee33322[];
+extern void _ZN6dd33223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3322__7ee33322[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3322[0]),
+ (VTBL_ENTRY)&_ZN6dd33223fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd33223fooEv,_ZTv0_n16_N6dd33223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33223fooEv,_ZThn8_N6dd33223fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc322__6dd3322__7ee33322[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33223fooEv,_ZTv0_n16_N6dd33223fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd33223fooEv,_ZTv0_n12_N6dd33223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33223fooEv,_ZThn16_N6dd33223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__6dd3322__7ee33322[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33223fooEv,_ZTv0_n12_N6dd33223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc322__7ee33322[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc322__7ee33322[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee33322[] = {
+ {&(_ZTV7ee33322[5]), 5,23},
+ {&(_ZTV7ee33322[11]), 11,23},
+ {&(_ZTV7ee33322[16]), 16,23},
+ {&(_ZTV7ee33322[21]), 21,23},
+ {&(_tg__ZTV6dd3322__7ee33322[4]), 4,5},
+ {&(_tg__ZTV5cc322__6dd3322__7ee33322[4]), 4,5},
+ {&(_tg__ZTV4bb22__6dd3322__7ee33322[4]), 4,6},
+ {&(_tg__ZTV5cc322__7ee33322[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc322__7ee33322[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee33322[];
+extern VTBL_ENTRY _ZTV7ee33322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33322[];
+static VTBL_ENTRY alt_thunk_names1039[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33223fooEv,_ZTv0_n12_N6dd33223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33223fooEv,_ZThn16_N6dd33223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33223fooEv,_ZTv0_n16_N6dd33223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33223fooEv,_ZThn8_N6dd33223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee333223fooEv,_ZTv0_n12_N7ee333223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee333223fooEv,_ZThn24_N7ee333223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee333223fooEv,_ZTv0_n16_N7ee333223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee333223fooEv,_ZThn16_N7ee333223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee333223fooEv,_ZTv0_n20_N7ee333223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee333223fooEv,_ZThn8_N7ee333223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33322 = { "ee33322", // class name
+ bases_ee33322, 4,
+ &(vtc_ee33322[0]), // expected_vtbl_contents
+ &(vtt_ee33322[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee33322),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33322),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33322),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1039,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee43322 : dd3322 {
+ int e;
+ virtual void bar(); // _ZN7ee433223barEv
+ ~ee43322(); // tgen
+ ee43322(); // tgen
+};
+//SIG(1 ee43322) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee43322 ::bar(){vfunc_called(this, "_ZN7ee433223barEv");}
+ee43322 ::~ee43322(){ note_dtor("ee43322", this);} // tgen
+ee43322 ::ee43322(){ note_ctor("ee43322", this);} // tgen
+
+static void Test_ee43322()
+{
+ extern Class_Descriptor cd_ee43322;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee43322, buf);
+ ee43322 *dp, &lv = *(dp=new (buf) ee43322());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee43322)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43322)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee43322");
+ check_base_class_offset(lv, (bb22*)(cc322*), ABISELECT(32,20), "ee43322");
+ check_base_class_offset(lv, (cc322*)(dd3322*), ABISELECT(16,12), "ee43322");
+ check_base_class_offset(lv, (dd3322*), 0, "ee43322");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43322.e");
+ test_class_info(&lv, &cd_ee43322);
+ dp->~ee43322();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43322(Test_ee43322, "ee43322", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee43322C1Ev();
+extern void _ZN7ee43322D1Ev();
+Name_Map name_map_ee43322[] = {
+ NSPAIR(_ZN7ee43322C1Ev),
+ NSPAIR(_ZN7ee43322D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc322;
+extern VTBL_ENTRY _ZTI5cc322[];
+extern VTBL_ENTRY _ZTV5cc322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc322[];
+extern Class_Descriptor cd_dd3322;
+extern VTBL_ENTRY _ZTI6dd3322[];
+extern VTBL_ENTRY _ZTV6dd3322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3322[];
+static Base_Class bases_ee43322[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc322, 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_dd3322, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43322[];
+extern void _ZN6dd33223fooEv();
+extern void _ZN7ee433223barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd33223fooEv,_ZTv0_n16_N6dd33223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33223fooEv,_ZThn12_N6dd33223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd33223fooEv,_ZTv0_n12_N6dd33223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33223fooEv,_ZThn20_N6dd33223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee433223barEv,_ZTv0_n16_N7ee433223barEv)();
+extern void ABISELECT(_ZThn32_N7ee433223barEv,_ZThn20_N7ee433223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43322[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43322[0]),
+ (VTBL_ENTRY)&_ZN6dd33223fooEv,
+ (VTBL_ENTRY)&_ZN7ee433223barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33223fooEv,_ZTv0_n16_N6dd33223fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee43322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33223fooEv,_ZTv0_n12_N6dd33223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee433223barEv,_ZTv0_n16_N7ee433223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee43322[];
+extern void _ZN6dd33223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3322__7ee43322[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3322[0]),
+ (VTBL_ENTRY)&_ZN6dd33223fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd33223fooEv,_ZTv0_n16_N6dd33223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33223fooEv,_ZThn12_N6dd33223fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc322__6dd3322__7ee43322[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33223fooEv,_ZTv0_n16_N6dd33223fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd33223fooEv,_ZTv0_n12_N6dd33223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33223fooEv,_ZThn20_N6dd33223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__6dd3322__7ee43322[] = {
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33223fooEv,_ZTv0_n12_N6dd33223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc322__7ee43322[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc322__7ee43322[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee43322[] = {
+ {&(_ZTV7ee43322[4]), 4,17},
+ {&(_tg__ZTV6dd3322__7ee43322[4]), 4,5},
+ {&(_tg__ZTV5cc322__6dd3322__7ee43322[4]), 4,5},
+ {&(_tg__ZTV4bb22__6dd3322__7ee43322[4]), 4,6},
+ {&(_ZTV7ee43322[10]), 10,17},
+ {&(_ZTV7ee43322[15]), 15,17},
+ {&(_tg__ZTV5cc322__7ee43322[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc322__7ee43322[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee43322[];
+extern VTBL_ENTRY _ZTV7ee43322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43322[];
+static VTBL_ENTRY alt_thunk_names1040[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee433223barEv,_ZTv0_n16_N7ee433223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee433223barEv,_ZThn20_N7ee433223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33223fooEv,_ZTv0_n12_N6dd33223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33223fooEv,_ZThn20_N6dd33223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33223fooEv,_ZThn20_N6dd33223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33223fooEv,_ZTv0_n16_N6dd33223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33223fooEv,_ZThn12_N6dd33223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33223fooEv,_ZThn12_N6dd33223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43322 = { "ee43322", // class name
+ bases_ee43322, 4,
+ &(vtc_ee43322[0]), // expected_vtbl_contents
+ &(vtt_ee43322[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee43322),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43322),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43322),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1040,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee53322 : virtual dd3322 {
+ int e;
+ virtual void bar(); // _ZN7ee533223barEv
+ ~ee53322(); // tgen
+ ee53322(); // tgen
+};
+//SIG(1 ee53322) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee53322 ::bar(){vfunc_called(this, "_ZN7ee533223barEv");}
+ee53322 ::~ee53322(){ note_dtor("ee53322", this);} // tgen
+ee53322 ::ee53322(){ note_ctor("ee53322", this);} // tgen
+
+static void Test_ee53322()
+{
+ extern Class_Descriptor cd_ee53322;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee53322, buf);
+ ee53322 *dp, &lv = *(dp=new (buf) ee53322());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee53322)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53322)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(48,24), "ee53322");
+ check_base_class_offset(lv, (bb22*)(cc322*), ABISELECT(48,24), "ee53322");
+ check_base_class_offset(lv, (cc322*)(dd3322*), ABISELECT(32,16), "ee53322");
+ check_base_class_offset(lv, (dd3322*), ABISELECT(16,8), "ee53322");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53322.e");
+ test_class_info(&lv, &cd_ee53322);
+ dp->~ee53322();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53322(Test_ee53322, "ee53322", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee53322C1Ev();
+extern void _ZN7ee53322D1Ev();
+Name_Map name_map_ee53322[] = {
+ NSPAIR(_ZN7ee53322C1Ev),
+ NSPAIR(_ZN7ee53322D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc322;
+extern VTBL_ENTRY _ZTI5cc322[];
+extern VTBL_ENTRY _ZTV5cc322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc322[];
+extern Class_Descriptor cd_dd3322;
+extern VTBL_ENTRY _ZTI6dd3322[];
+extern VTBL_ENTRY _ZTV6dd3322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3322[];
+static Base_Class bases_ee53322[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb22, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc322, 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_dd3322, ABISELECT(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 _ZTI7ee53322[];
+extern void _ZN7ee533223barEv();
+extern void _ZN6dd33223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd33223fooEv,_ZTv0_n16_N6dd33223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33223fooEv,_ZThn8_N6dd33223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd33223fooEv,_ZTv0_n12_N6dd33223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33223fooEv,_ZThn16_N6dd33223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee533223barEv,_ZTv0_n16_N7ee533223barEv)();
+extern void ABISELECT(_ZThn48_N7ee533223barEv,_ZThn24_N7ee533223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53322[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53322[0]),
+ (VTBL_ENTRY)&_ZN7ee533223barEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53322[0]),
+ (VTBL_ENTRY)&_ZN6dd33223fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33223fooEv,_ZTv0_n16_N6dd33223fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee53322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33223fooEv,_ZTv0_n12_N6dd33223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee533223barEv,_ZTv0_n16_N7ee533223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee53322[];
+extern void _ZN6dd33223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3322__7ee53322[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3322[0]),
+ (VTBL_ENTRY)&_ZN6dd33223fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd33223fooEv,_ZTv0_n16_N6dd33223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33223fooEv,_ZThn8_N6dd33223fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc322__6dd3322__7ee53322[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33223fooEv,_ZTv0_n16_N6dd33223fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd33223fooEv,_ZTv0_n12_N6dd33223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33223fooEv,_ZThn16_N6dd33223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__6dd3322__7ee53322[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33223fooEv,_ZTv0_n12_N6dd33223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc322__7ee53322[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc322__7ee53322[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee53322[] = {
+ {&(_ZTV7ee53322[5]), 5,23},
+ {&(_ZTV7ee53322[11]), 11,23},
+ {&(_ZTV7ee53322[16]), 16,23},
+ {&(_ZTV7ee53322[21]), 21,23},
+ {&(_tg__ZTV6dd3322__7ee53322[4]), 4,5},
+ {&(_tg__ZTV5cc322__6dd3322__7ee53322[4]), 4,5},
+ {&(_tg__ZTV4bb22__6dd3322__7ee53322[4]), 4,6},
+ {&(_tg__ZTV5cc322__7ee53322[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc322__7ee53322[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee53322[];
+extern VTBL_ENTRY _ZTV7ee53322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53322[];
+static VTBL_ENTRY alt_thunk_names1041[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee533223barEv,_ZTv0_n16_N7ee533223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee533223barEv,_ZThn24_N7ee533223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33223fooEv,_ZTv0_n12_N6dd33223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33223fooEv,_ZThn16_N6dd33223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33223fooEv,_ZThn16_N6dd33223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33223fooEv,_ZTv0_n16_N6dd33223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33223fooEv,_ZThn8_N6dd33223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33223fooEv,_ZThn8_N6dd33223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53322 = { "ee53322", // class name
+ bases_ee53322, 4,
+ &(vtc_ee53322[0]), // expected_vtbl_contents
+ &(vtt_ee53322[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee53322),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53322),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53322),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1041,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee63322 : dd3322 {
+ int e;
+ virtual void foo(); // _ZN7ee633223fooEv
+ virtual void bar(); // _ZN7ee633223barEv
+ ~ee63322(); // tgen
+ ee63322(); // tgen
+};
+//SIG(1 ee63322) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63322 ::foo(){vfunc_called(this, "_ZN7ee633223fooEv");}
+void ee63322 ::bar(){vfunc_called(this, "_ZN7ee633223barEv");}
+ee63322 ::~ee63322(){ note_dtor("ee63322", this);} // tgen
+ee63322 ::ee63322(){ note_ctor("ee63322", this);} // tgen
+
+static void Test_ee63322()
+{
+ extern Class_Descriptor cd_ee63322;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee63322, buf);
+ ee63322 *dp, &lv = *(dp=new (buf) ee63322());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee63322)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63322)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee63322");
+ check_base_class_offset(lv, (bb22*)(cc322*), ABISELECT(32,20), "ee63322");
+ check_base_class_offset(lv, (cc322*)(dd3322*), ABISELECT(16,12), "ee63322");
+ check_base_class_offset(lv, (dd3322*), 0, "ee63322");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63322.e");
+ test_class_info(&lv, &cd_ee63322);
+ dp->~ee63322();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63322(Test_ee63322, "ee63322", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee63322C1Ev();
+extern void _ZN7ee63322D1Ev();
+Name_Map name_map_ee63322[] = {
+ NSPAIR(_ZN7ee63322C1Ev),
+ NSPAIR(_ZN7ee63322D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc322;
+extern VTBL_ENTRY _ZTI5cc322[];
+extern VTBL_ENTRY _ZTV5cc322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc322[];
+extern Class_Descriptor cd_dd3322;
+extern VTBL_ENTRY _ZTI6dd3322[];
+extern VTBL_ENTRY _ZTV6dd3322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3322[];
+static Base_Class bases_ee63322[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc322, 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_dd3322, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63322[];
+extern void _ZN7ee633223fooEv();
+extern void _ZN7ee633223barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee633223fooEv,_ZTv0_n16_N7ee633223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee633223fooEv,_ZThn12_N7ee633223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee633223fooEv,_ZTv0_n12_N7ee633223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee633223fooEv,_ZThn20_N7ee633223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee633223barEv,_ZTv0_n16_N7ee633223barEv)();
+extern void ABISELECT(_ZThn32_N7ee633223barEv,_ZThn20_N7ee633223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63322[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63322[0]),
+ (VTBL_ENTRY)&_ZN7ee633223fooEv,
+ (VTBL_ENTRY)&_ZN7ee633223barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee633223fooEv,_ZTv0_n16_N7ee633223fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee63322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee633223fooEv,_ZTv0_n12_N7ee633223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee633223barEv,_ZTv0_n16_N7ee633223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee63322[];
+extern void _ZN6dd33223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3322__7ee63322[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3322[0]),
+ (VTBL_ENTRY)&_ZN6dd33223fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd33223fooEv,_ZTv0_n16_N6dd33223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33223fooEv,_ZThn12_N6dd33223fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc322__6dd3322__7ee63322[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33223fooEv,_ZTv0_n16_N6dd33223fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd33223fooEv,_ZTv0_n12_N6dd33223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33223fooEv,_ZThn20_N6dd33223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__6dd3322__7ee63322[] = {
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33223fooEv,_ZTv0_n12_N6dd33223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc322__7ee63322[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc322__7ee63322[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee63322[] = {
+ {&(_ZTV7ee63322[4]), 4,17},
+ {&(_tg__ZTV6dd3322__7ee63322[4]), 4,5},
+ {&(_tg__ZTV5cc322__6dd3322__7ee63322[4]), 4,5},
+ {&(_tg__ZTV4bb22__6dd3322__7ee63322[4]), 4,6},
+ {&(_ZTV7ee63322[10]), 10,17},
+ {&(_ZTV7ee63322[15]), 15,17},
+ {&(_tg__ZTV5cc322__7ee63322[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc322__7ee63322[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee63322[];
+extern VTBL_ENTRY _ZTV7ee63322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63322[];
+static VTBL_ENTRY alt_thunk_names1042[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33223fooEv,_ZTv0_n12_N6dd33223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33223fooEv,_ZThn20_N6dd33223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33223fooEv,_ZTv0_n16_N6dd33223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33223fooEv,_ZThn12_N6dd33223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee633223barEv,_ZTv0_n16_N7ee633223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee633223barEv,_ZThn20_N7ee633223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee633223fooEv,_ZTv0_n12_N7ee633223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee633223fooEv,_ZThn20_N7ee633223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee633223fooEv,_ZTv0_n16_N7ee633223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee633223fooEv,_ZThn12_N7ee633223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63322 = { "ee63322", // class name
+ bases_ee63322, 4,
+ &(vtc_ee63322[0]), // expected_vtbl_contents
+ &(vtt_ee63322[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee63322),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63322),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63322),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1042,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee73322 : virtual dd3322 {
+ int e;
+ virtual void foo(); // _ZN7ee733223fooEv
+ virtual void bar(); // _ZN7ee733223barEv
+ ~ee73322(); // tgen
+ ee73322(); // tgen
+};
+//SIG(1 ee73322) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73322 ::foo(){vfunc_called(this, "_ZN7ee733223fooEv");}
+void ee73322 ::bar(){vfunc_called(this, "_ZN7ee733223barEv");}
+ee73322 ::~ee73322(){ note_dtor("ee73322", this);} // tgen
+ee73322 ::ee73322(){ note_ctor("ee73322", this);} // tgen
+
+static void Test_ee73322()
+{
+ extern Class_Descriptor cd_ee73322;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee73322, buf);
+ ee73322 *dp, &lv = *(dp=new (buf) ee73322());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee73322)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73322)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(48,24), "ee73322");
+ check_base_class_offset(lv, (bb22*)(cc322*), ABISELECT(48,24), "ee73322");
+ check_base_class_offset(lv, (cc322*)(dd3322*), ABISELECT(32,16), "ee73322");
+ check_base_class_offset(lv, (dd3322*), ABISELECT(16,8), "ee73322");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73322.e");
+ test_class_info(&lv, &cd_ee73322);
+ dp->~ee73322();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73322(Test_ee73322, "ee73322", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee73322C1Ev();
+extern void _ZN7ee73322D1Ev();
+Name_Map name_map_ee73322[] = {
+ NSPAIR(_ZN7ee73322C1Ev),
+ NSPAIR(_ZN7ee73322D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc322;
+extern VTBL_ENTRY _ZTI5cc322[];
+extern VTBL_ENTRY _ZTV5cc322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc322[];
+extern Class_Descriptor cd_dd3322;
+extern VTBL_ENTRY _ZTI6dd3322[];
+extern VTBL_ENTRY _ZTV6dd3322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3322[];
+static Base_Class bases_ee73322[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb22, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc322, 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_dd3322, 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 _ZTI7ee73322[];
+extern void _ZN7ee733223fooEv();
+extern void _ZN7ee733223barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee733223fooEv,_ZTv0_n20_N7ee733223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee733223fooEv,_ZThn8_N7ee733223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee733223fooEv,_ZTv0_n16_N7ee733223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee733223fooEv,_ZThn16_N7ee733223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee733223fooEv,_ZTv0_n12_N7ee733223fooEv)();
+extern void ABISELECT(_ZThn48_N7ee733223fooEv,_ZThn24_N7ee733223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee733223barEv,_ZTv0_n16_N7ee733223barEv)();
+extern void ABISELECT(_ZThn48_N7ee733223barEv,_ZThn24_N7ee733223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73322[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73322[0]),
+ (VTBL_ENTRY)&_ZN7ee733223fooEv,
+ (VTBL_ENTRY)&_ZN7ee733223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee733223fooEv,_ZTv0_n20_N7ee733223fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee733223fooEv,_ZTv0_n16_N7ee733223fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee73322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee733223fooEv,_ZTv0_n12_N7ee733223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee733223barEv,_ZTv0_n16_N7ee733223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee73322[];
+extern void _ZN6dd33223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3322__7ee73322[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3322[0]),
+ (VTBL_ENTRY)&_ZN6dd33223fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd33223fooEv,_ZTv0_n16_N6dd33223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33223fooEv,_ZThn8_N6dd33223fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc322__6dd3322__7ee73322[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33223fooEv,_ZTv0_n16_N6dd33223fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd33223fooEv,_ZTv0_n12_N6dd33223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33223fooEv,_ZThn16_N6dd33223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__6dd3322__7ee73322[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33223fooEv,_ZTv0_n12_N6dd33223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc322__7ee73322[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc322__7ee73322[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee73322[] = {
+ {&(_ZTV7ee73322[5]), 5,24},
+ {&(_ZTV7ee73322[12]), 12,24},
+ {&(_ZTV7ee73322[17]), 17,24},
+ {&(_ZTV7ee73322[22]), 22,24},
+ {&(_tg__ZTV6dd3322__7ee73322[4]), 4,5},
+ {&(_tg__ZTV5cc322__6dd3322__7ee73322[4]), 4,5},
+ {&(_tg__ZTV4bb22__6dd3322__7ee73322[4]), 4,6},
+ {&(_tg__ZTV5cc322__7ee73322[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc322__7ee73322[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee73322[];
+extern VTBL_ENTRY _ZTV7ee73322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73322[];
+static VTBL_ENTRY alt_thunk_names1043[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33223fooEv,_ZTv0_n12_N6dd33223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33223fooEv,_ZThn16_N6dd33223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33223fooEv,_ZTv0_n16_N6dd33223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33223fooEv,_ZThn8_N6dd33223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee733223barEv,_ZTv0_n16_N7ee733223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee733223barEv,_ZThn24_N7ee733223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee733223fooEv,_ZTv0_n12_N7ee733223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee733223fooEv,_ZThn24_N7ee733223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee733223fooEv,_ZTv0_n16_N7ee733223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee733223fooEv,_ZThn16_N7ee733223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee733223fooEv,_ZTv0_n20_N7ee733223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee733223fooEv,_ZThn8_N7ee733223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73322 = { "ee73322", // class name
+ bases_ee73322, 4,
+ &(vtc_ee73322[0]), // expected_vtbl_contents
+ &(vtt_ee73322[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee73322),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73322),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73322),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1043,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd4322 : cc322 {
+ int d;
+ virtual void bar(); // _ZN6dd43223barEv
+ ~dd4322(); // tgen
+ dd4322(); // tgen
+};
+//SIG(-1 dd4322) C1{ BC2{ VBC3{ BC4{ v2 v1 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void dd4322 ::bar(){vfunc_called(this, "_ZN6dd43223barEv");}
+dd4322 ::~dd4322(){ note_dtor("dd4322", this);} // tgen
+dd4322 ::dd4322(){ note_ctor("dd4322", this);} // tgen
+
+static void Test_dd4322()
+{
+ extern Class_Descriptor cd_dd4322;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd4322, buf);
+ dd4322 *dp, &lv = *(dp=new (buf) dd4322());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd4322)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4322)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(16,12), "dd4322");
+ check_base_class_offset(lv, (bb22*)(cc322*), ABISELECT(16,12), "dd4322");
+ check_base_class_offset(lv, (cc322*), 0, "dd4322");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd4322.d");
+ test_class_info(&lv, &cd_dd4322);
+ dp->~dd4322();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4322(Test_dd4322, "dd4322", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd4322C1Ev();
+extern void _ZN6dd4322D1Ev();
+Name_Map name_map_dd4322[] = {
+ NSPAIR(_ZN6dd4322C1Ev),
+ NSPAIR(_ZN6dd4322D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc322;
+extern VTBL_ENTRY _ZTI5cc322[];
+extern VTBL_ENTRY _ZTV5cc322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc322[];
+static Base_Class bases_dd4322[] = {
+ // 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_bb22, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc322, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd4322[];
+extern void _ZN5cc3223fooEv();
+extern void _ZN6dd43223barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn12_N5cc3223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd43223barEv,_ZTv0_n16_N6dd43223barEv)();
+extern void ABISELECT(_ZThn16_N6dd43223barEv,_ZThn12_N6dd43223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd4322[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+ (VTBL_ENTRY)&_ZN6dd43223barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43223barEv,_ZTv0_n16_N6dd43223barEv),
+};
+extern VTBL_ENTRY _ZTV6dd4322[];
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc322__6dd4322[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn12_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc322__6dd4322[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_dd4322[] = {
+ {&(_ZTV6dd4322[3]), 3,11},
+ {&(_tg__ZTV5cc322__6dd4322[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc322__6dd4322[4]), 4,6},
+ {&(_ZTV6dd4322[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd4322[];
+extern VTBL_ENTRY _ZTV6dd4322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4322[];
+static VTBL_ENTRY alt_thunk_names1044[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd43223barEv,_ZTv0_n16_N6dd43223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd43223barEv,_ZThn12_N6dd43223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn12_N5cc3223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn12_N5cc3223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd4322 = { "dd4322", // class name
+ bases_dd4322, 3,
+ &(vtc_dd4322[0]), // expected_vtbl_contents
+ &(vtt_dd4322[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd4322),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4322),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd4322),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1044,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee04322 : dd4322 {
+ int e;
+ ~ee04322(); // tgen
+ ee04322(); // tgen
+};
+//SIG(1 ee04322) C1{ BC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee04322 ::~ee04322(){ note_dtor("ee04322", this);} // tgen
+ee04322 ::ee04322(){ note_ctor("ee04322", this);} // tgen
+
+static void Test_ee04322()
+{
+ extern Class_Descriptor cd_ee04322;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee04322, buf);
+ ee04322 *dp, &lv = *(dp=new (buf) ee04322());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee04322)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04322)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(24,16), "ee04322");
+ check_base_class_offset(lv, (bb22*)(cc322*)(dd4322*), ABISELECT(24,16), "ee04322");
+ check_base_class_offset(lv, (cc322*)(dd4322*), 0, "ee04322");
+ check_base_class_offset(lv, (dd4322*), 0, "ee04322");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee04322.e");
+ test_class_info(&lv, &cd_ee04322);
+ dp->~ee04322();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04322(Test_ee04322, "ee04322", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee04322C1Ev();
+extern void _ZN7ee04322D1Ev();
+Name_Map name_map_ee04322[] = {
+ NSPAIR(_ZN7ee04322C1Ev),
+ NSPAIR(_ZN7ee04322D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc322;
+extern VTBL_ENTRY _ZTI5cc322[];
+extern VTBL_ENTRY _ZTV5cc322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc322[];
+extern Class_Descriptor cd_dd4322;
+extern VTBL_ENTRY _ZTI6dd4322[];
+extern VTBL_ENTRY _ZTV6dd4322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4322[];
+static Base_Class bases_ee04322[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc322, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4322, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee04322[];
+extern void _ZN5cc3223fooEv();
+extern void _ZN6dd43223barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3223fooEv,_ZThn16_N5cc3223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd43223barEv,_ZTv0_n16_N6dd43223barEv)();
+extern void ABISELECT(_ZThn24_N6dd43223barEv,_ZThn16_N6dd43223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee04322[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+ (VTBL_ENTRY)&_ZN6dd43223barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee04322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43223barEv,_ZTv0_n16_N6dd43223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee04322[];
+extern void _ZN5cc3223fooEv();
+extern void _ZN6dd43223barEv();
+static VTBL_ENTRY _tg__ZTV6dd4322__7ee04322[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+ (VTBL_ENTRY)&_ZN6dd43223barEv,
+};
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3226dd4322__7ee04322[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3223fooEv,_ZThn16_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc3226dd4322__7ee04322[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3223fooEv,_ZThn16_N5cc3223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd43223barEv,_ZTv0_n16_N6dd43223barEv)();
+extern void ABISELECT(_ZThn24_N6dd43223barEv,_ZThn16_N6dd43223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd4322__7ee04322[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43223barEv,_ZTv0_n16_N6dd43223barEv),
+};
+static VTT_ENTRY vtt_ee04322[] = {
+ {&(_ZTV7ee04322[3]), 3,11},
+ {&(_tg__ZTV6dd4322__7ee04322[3]), 3,5},
+ {&(_tg__ZTV5cc3226dd4322__7ee04322[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc3226dd4322__7ee04322[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd4322__7ee04322[4]), 4,6},
+ {&(_ZTV7ee04322[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee04322[];
+extern VTBL_ENTRY _ZTV7ee04322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee04322[];
+static VTBL_ENTRY alt_thunk_names1045[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd43223barEv,_ZTv0_n16_N6dd43223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd43223barEv,_ZThn16_N6dd43223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd43223barEv,_ZThn16_N6dd43223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3223fooEv,_ZThn16_N5cc3223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3223fooEv,_ZThn16_N5cc3223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3223fooEv,_ZThn16_N5cc3223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee04322 = { "ee04322", // class name
+ bases_ee04322, 4,
+ &(vtc_ee04322[0]), // expected_vtbl_contents
+ &(vtt_ee04322[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee04322),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04322),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee04322),6, //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 ee14322 : virtual dd4322 {
+ int e;
+ ~ee14322(); // tgen
+ ee14322(); // tgen
+};
+//SIG(1 ee14322) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee14322 ::~ee14322(){ note_dtor("ee14322", this);} // tgen
+ee14322 ::ee14322(){ note_ctor("ee14322", this);} // tgen
+
+static void Test_ee14322()
+{
+ extern Class_Descriptor cd_ee14322;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee14322, buf);
+ ee14322 *dp, &lv = *(dp=new (buf) ee14322());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee14322)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14322)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee14322");
+ check_base_class_offset(lv, (bb22*)(cc322*)(dd4322*), ABISELECT(32,20), "ee14322");
+ check_base_class_offset(lv, (cc322*)(dd4322*), ABISELECT(16,8), "ee14322");
+ check_base_class_offset(lv, (dd4322*), ABISELECT(16,8), "ee14322");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14322.e");
+ test_class_info(&lv, &cd_ee14322);
+ dp->~ee14322();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14322(Test_ee14322, "ee14322", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee14322C1Ev();
+extern void _ZN7ee14322D1Ev();
+Name_Map name_map_ee14322[] = {
+ NSPAIR(_ZN7ee14322C1Ev),
+ NSPAIR(_ZN7ee14322D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc322;
+extern VTBL_ENTRY _ZTI5cc322[];
+extern VTBL_ENTRY _ZTV5cc322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc322[];
+extern Class_Descriptor cd_dd4322;
+extern VTBL_ENTRY _ZTI6dd4322[];
+extern VTBL_ENTRY _ZTV6dd4322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4322[];
+static Base_Class bases_ee14322[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc322, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4322, 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 _ZTI7ee14322[];
+extern void _ZN5cc3223fooEv();
+extern void _ZN6dd43223barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn12_N5cc3223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd43223barEv,_ZTv0_n16_N6dd43223barEv)();
+extern void ABISELECT(_ZThn16_N6dd43223barEv,_ZThn12_N6dd43223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee14322[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14322[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+ (VTBL_ENTRY)&_ZN6dd43223barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee14322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43223barEv,_ZTv0_n16_N6dd43223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee14322[];
+extern void _ZN5cc3223fooEv();
+extern void _ZN6dd43223barEv();
+static VTBL_ENTRY _tg__ZTV6dd4322__7ee14322[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+ (VTBL_ENTRY)&_ZN6dd43223barEv,
+};
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3226dd4322__7ee14322[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn12_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc3226dd4322__7ee14322[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn12_N5cc3223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd43223barEv,_ZTv0_n16_N6dd43223barEv)();
+extern void ABISELECT(_ZThn16_N6dd43223barEv,_ZThn12_N6dd43223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd4322__7ee14322[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43223barEv,_ZTv0_n16_N6dd43223barEv),
+};
+static VTT_ENTRY vtt_ee14322[] = {
+ {&(_ZTV7ee14322[4]), 4,17},
+ {&(_ZTV7ee14322[9]), 9,17},
+ {&(_ZTV7ee14322[15]), 15,17},
+ {&(_tg__ZTV6dd4322__7ee14322[3]), 3,5},
+ {&(_tg__ZTV5cc3226dd4322__7ee14322[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc3226dd4322__7ee14322[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd4322__7ee14322[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee14322[];
+extern VTBL_ENTRY _ZTV7ee14322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14322[];
+static VTBL_ENTRY alt_thunk_names1046[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd43223barEv,_ZTv0_n16_N6dd43223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd43223barEv,_ZThn12_N6dd43223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd43223barEv,_ZThn12_N6dd43223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn12_N5cc3223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn12_N5cc3223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn12_N5cc3223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee14322 = { "ee14322", // class name
+ bases_ee14322, 4,
+ &(vtc_ee14322[0]), // expected_vtbl_contents
+ &(vtt_ee14322[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee14322),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14322),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14322),7, //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 ee24322 : dd4322 {
+ int e;
+ virtual void foo(); // _ZN7ee243223fooEv
+ ~ee24322(); // tgen
+ ee24322(); // tgen
+};
+//SIG(1 ee24322) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee24322 ::foo(){vfunc_called(this, "_ZN7ee243223fooEv");}
+ee24322 ::~ee24322(){ note_dtor("ee24322", this);} // tgen
+ee24322 ::ee24322(){ note_ctor("ee24322", this);} // tgen
+
+static void Test_ee24322()
+{
+ extern Class_Descriptor cd_ee24322;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee24322, buf);
+ ee24322 *dp, &lv = *(dp=new (buf) ee24322());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee24322)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24322)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(24,16), "ee24322");
+ check_base_class_offset(lv, (bb22*)(cc322*)(dd4322*), ABISELECT(24,16), "ee24322");
+ check_base_class_offset(lv, (cc322*)(dd4322*), 0, "ee24322");
+ check_base_class_offset(lv, (dd4322*), 0, "ee24322");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee24322.e");
+ test_class_info(&lv, &cd_ee24322);
+ dp->~ee24322();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24322(Test_ee24322, "ee24322", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee24322C1Ev();
+extern void _ZN7ee24322D1Ev();
+Name_Map name_map_ee24322[] = {
+ NSPAIR(_ZN7ee24322C1Ev),
+ NSPAIR(_ZN7ee24322D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc322;
+extern VTBL_ENTRY _ZTI5cc322[];
+extern VTBL_ENTRY _ZTV5cc322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc322[];
+extern Class_Descriptor cd_dd4322;
+extern VTBL_ENTRY _ZTI6dd4322[];
+extern VTBL_ENTRY _ZTV6dd4322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4322[];
+static Base_Class bases_ee24322[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc322, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4322, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee24322[];
+extern void _ZN7ee243223fooEv();
+extern void _ZN6dd43223barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee243223fooEv,_ZTv0_n12_N7ee243223fooEv)();
+extern void ABISELECT(_ZThn24_N7ee243223fooEv,_ZThn16_N7ee243223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd43223barEv,_ZTv0_n16_N6dd43223barEv)();
+extern void ABISELECT(_ZThn24_N6dd43223barEv,_ZThn16_N6dd43223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee24322[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24322[0]),
+ (VTBL_ENTRY)&_ZN7ee243223fooEv,
+ (VTBL_ENTRY)&_ZN6dd43223barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee24322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee243223fooEv,_ZTv0_n12_N7ee243223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43223barEv,_ZTv0_n16_N6dd43223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee24322[];
+extern void _ZN5cc3223fooEv();
+extern void _ZN6dd43223barEv();
+static VTBL_ENTRY _tg__ZTV6dd4322__7ee24322[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+ (VTBL_ENTRY)&_ZN6dd43223barEv,
+};
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3226dd4322__7ee24322[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3223fooEv,_ZThn16_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc3226dd4322__7ee24322[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3223fooEv,_ZThn16_N5cc3223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd43223barEv,_ZTv0_n16_N6dd43223barEv)();
+extern void ABISELECT(_ZThn24_N6dd43223barEv,_ZThn16_N6dd43223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd4322__7ee24322[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43223barEv,_ZTv0_n16_N6dd43223barEv),
+};
+static VTT_ENTRY vtt_ee24322[] = {
+ {&(_ZTV7ee24322[3]), 3,11},
+ {&(_tg__ZTV6dd4322__7ee24322[3]), 3,5},
+ {&(_tg__ZTV5cc3226dd4322__7ee24322[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc3226dd4322__7ee24322[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd4322__7ee24322[4]), 4,6},
+ {&(_ZTV7ee24322[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee24322[];
+extern VTBL_ENTRY _ZTV7ee24322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee24322[];
+static VTBL_ENTRY alt_thunk_names1047[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3223fooEv,_ZThn16_N5cc3223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3223fooEv,_ZThn16_N5cc3223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd43223barEv,_ZTv0_n16_N6dd43223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd43223barEv,_ZThn16_N6dd43223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd43223barEv,_ZThn16_N6dd43223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee243223fooEv,_ZTv0_n12_N7ee243223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee243223fooEv,_ZThn16_N7ee243223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee24322 = { "ee24322", // class name
+ bases_ee24322, 4,
+ &(vtc_ee24322[0]), // expected_vtbl_contents
+ &(vtt_ee24322[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee24322),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24322),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee24322),6, //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 ee34322 : virtual dd4322 {
+ int e;
+ virtual void foo(); // _ZN7ee343223fooEv
+ ~ee34322(); // tgen
+ ee34322(); // tgen
+};
+//SIG(1 ee34322) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee34322 ::foo(){vfunc_called(this, "_ZN7ee343223fooEv");}
+ee34322 ::~ee34322(){ note_dtor("ee34322", this);} // tgen
+ee34322 ::ee34322(){ note_ctor("ee34322", this);} // tgen
+
+static void Test_ee34322()
+{
+ extern Class_Descriptor cd_ee34322;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee34322, buf);
+ ee34322 *dp, &lv = *(dp=new (buf) ee34322());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee34322)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34322)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee34322");
+ check_base_class_offset(lv, (bb22*)(cc322*)(dd4322*), ABISELECT(32,20), "ee34322");
+ check_base_class_offset(lv, (cc322*)(dd4322*), ABISELECT(16,8), "ee34322");
+ check_base_class_offset(lv, (dd4322*), ABISELECT(16,8), "ee34322");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34322.e");
+ test_class_info(&lv, &cd_ee34322);
+ dp->~ee34322();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34322(Test_ee34322, "ee34322", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee34322C1Ev();
+extern void _ZN7ee34322D1Ev();
+Name_Map name_map_ee34322[] = {
+ NSPAIR(_ZN7ee34322C1Ev),
+ NSPAIR(_ZN7ee34322D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc322;
+extern VTBL_ENTRY _ZTI5cc322[];
+extern VTBL_ENTRY _ZTV5cc322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc322[];
+extern Class_Descriptor cd_dd4322;
+extern VTBL_ENTRY _ZTI6dd4322[];
+extern VTBL_ENTRY _ZTV6dd4322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4322[];
+static Base_Class bases_ee34322[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc322, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4322, 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 _ZTI7ee34322[];
+extern void _ZN7ee343223fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee343223fooEv,_ZTv0_n16_N7ee343223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee343223fooEv,_ZThn8_N7ee343223fooEv)() __attribute__((weak));
+extern void _ZN6dd43223barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee343223fooEv,_ZTv0_n12_N7ee343223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee343223fooEv,_ZThn20_N7ee343223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd43223barEv,_ZTv0_n16_N6dd43223barEv)();
+extern void ABISELECT(_ZThn16_N6dd43223barEv,_ZThn12_N6dd43223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee34322[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34322[0]),
+ (VTBL_ENTRY)&_ZN7ee343223fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee343223fooEv,_ZTv0_n16_N7ee343223fooEv),
+ (VTBL_ENTRY)&_ZN6dd43223barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee34322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee343223fooEv,_ZTv0_n12_N7ee343223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43223barEv,_ZTv0_n16_N6dd43223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee34322[];
+extern void _ZN5cc3223fooEv();
+extern void _ZN6dd43223barEv();
+static VTBL_ENTRY _tg__ZTV6dd4322__7ee34322[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+ (VTBL_ENTRY)&_ZN6dd43223barEv,
+};
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3226dd4322__7ee34322[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn12_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc3226dd4322__7ee34322[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn12_N5cc3223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd43223barEv,_ZTv0_n16_N6dd43223barEv)();
+extern void ABISELECT(_ZThn16_N6dd43223barEv,_ZThn12_N6dd43223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd4322__7ee34322[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43223barEv,_ZTv0_n16_N6dd43223barEv),
+};
+static VTT_ENTRY vtt_ee34322[] = {
+ {&(_ZTV7ee34322[4]), 4,18},
+ {&(_ZTV7ee34322[10]), 10,18},
+ {&(_ZTV7ee34322[16]), 16,18},
+ {&(_tg__ZTV6dd4322__7ee34322[3]), 3,5},
+ {&(_tg__ZTV5cc3226dd4322__7ee34322[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc3226dd4322__7ee34322[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd4322__7ee34322[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee34322[];
+extern VTBL_ENTRY _ZTV7ee34322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34322[];
+static VTBL_ENTRY alt_thunk_names1048[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn12_N5cc3223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn12_N5cc3223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd43223barEv,_ZTv0_n16_N6dd43223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd43223barEv,_ZThn12_N6dd43223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd43223barEv,_ZThn12_N6dd43223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee343223fooEv,_ZTv0_n12_N7ee343223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee343223fooEv,_ZThn20_N7ee343223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee343223fooEv,_ZTv0_n16_N7ee343223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee343223fooEv,_ZThn8_N7ee343223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34322 = { "ee34322", // class name
+ bases_ee34322, 4,
+ &(vtc_ee34322[0]), // expected_vtbl_contents
+ &(vtt_ee34322[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee34322),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34322),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34322),7, //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 ee44322 : dd4322 {
+ int e;
+ virtual void bar(); // _ZN7ee443223barEv
+ ~ee44322(); // tgen
+ ee44322(); // tgen
+};
+//SIG(1 ee44322) C1{ BC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee44322 ::bar(){vfunc_called(this, "_ZN7ee443223barEv");}
+ee44322 ::~ee44322(){ note_dtor("ee44322", this);} // tgen
+ee44322 ::ee44322(){ note_ctor("ee44322", this);} // tgen
+
+static void Test_ee44322()
+{
+ extern Class_Descriptor cd_ee44322;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee44322, buf);
+ ee44322 *dp, &lv = *(dp=new (buf) ee44322());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee44322)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44322)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(24,16), "ee44322");
+ check_base_class_offset(lv, (bb22*)(cc322*)(dd4322*), ABISELECT(24,16), "ee44322");
+ check_base_class_offset(lv, (cc322*)(dd4322*), 0, "ee44322");
+ check_base_class_offset(lv, (dd4322*), 0, "ee44322");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee44322.e");
+ test_class_info(&lv, &cd_ee44322);
+ dp->~ee44322();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44322(Test_ee44322, "ee44322", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee44322C1Ev();
+extern void _ZN7ee44322D1Ev();
+Name_Map name_map_ee44322[] = {
+ NSPAIR(_ZN7ee44322C1Ev),
+ NSPAIR(_ZN7ee44322D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc322;
+extern VTBL_ENTRY _ZTI5cc322[];
+extern VTBL_ENTRY _ZTV5cc322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc322[];
+extern Class_Descriptor cd_dd4322;
+extern VTBL_ENTRY _ZTI6dd4322[];
+extern VTBL_ENTRY _ZTV6dd4322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4322[];
+static Base_Class bases_ee44322[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc322, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4322, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee44322[];
+extern void _ZN5cc3223fooEv();
+extern void _ZN7ee443223barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3223fooEv,_ZThn16_N5cc3223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee443223barEv,_ZTv0_n16_N7ee443223barEv)();
+extern void ABISELECT(_ZThn24_N7ee443223barEv,_ZThn16_N7ee443223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee44322[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+ (VTBL_ENTRY)&_ZN7ee443223barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee44322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee443223barEv,_ZTv0_n16_N7ee443223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee44322[];
+extern void _ZN5cc3223fooEv();
+extern void _ZN6dd43223barEv();
+static VTBL_ENTRY _tg__ZTV6dd4322__7ee44322[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+ (VTBL_ENTRY)&_ZN6dd43223barEv,
+};
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3226dd4322__7ee44322[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3223fooEv,_ZThn16_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc3226dd4322__7ee44322[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3223fooEv,_ZThn16_N5cc3223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd43223barEv,_ZTv0_n16_N6dd43223barEv)();
+extern void ABISELECT(_ZThn24_N6dd43223barEv,_ZThn16_N6dd43223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd4322__7ee44322[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43223barEv,_ZTv0_n16_N6dd43223barEv),
+};
+static VTT_ENTRY vtt_ee44322[] = {
+ {&(_ZTV7ee44322[3]), 3,11},
+ {&(_tg__ZTV6dd4322__7ee44322[3]), 3,5},
+ {&(_tg__ZTV5cc3226dd4322__7ee44322[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc3226dd4322__7ee44322[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd4322__7ee44322[4]), 4,6},
+ {&(_ZTV7ee44322[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee44322[];
+extern VTBL_ENTRY _ZTV7ee44322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee44322[];
+static VTBL_ENTRY alt_thunk_names1049[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd43223barEv,_ZTv0_n16_N6dd43223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd43223barEv,_ZThn16_N6dd43223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee443223barEv,_ZTv0_n16_N7ee443223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee443223barEv,_ZThn16_N7ee443223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3223fooEv,_ZThn16_N5cc3223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3223fooEv,_ZThn16_N5cc3223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3223fooEv,_ZThn16_N5cc3223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee44322 = { "ee44322", // class name
+ bases_ee44322, 4,
+ &(vtc_ee44322[0]), // expected_vtbl_contents
+ &(vtt_ee44322[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee44322),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44322),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee44322),6, //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 ee54322 : virtual dd4322 {
+ int e;
+ virtual void bar(); // _ZN7ee543223barEv
+ ~ee54322(); // tgen
+ ee54322(); // tgen
+};
+//SIG(1 ee54322) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee54322 ::bar(){vfunc_called(this, "_ZN7ee543223barEv");}
+ee54322 ::~ee54322(){ note_dtor("ee54322", this);} // tgen
+ee54322 ::ee54322(){ note_ctor("ee54322", this);} // tgen
+
+static void Test_ee54322()
+{
+ extern Class_Descriptor cd_ee54322;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee54322, buf);
+ ee54322 *dp, &lv = *(dp=new (buf) ee54322());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee54322)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54322)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee54322");
+ check_base_class_offset(lv, (bb22*)(cc322*)(dd4322*), ABISELECT(32,20), "ee54322");
+ check_base_class_offset(lv, (cc322*)(dd4322*), ABISELECT(16,8), "ee54322");
+ check_base_class_offset(lv, (dd4322*), ABISELECT(16,8), "ee54322");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54322.e");
+ test_class_info(&lv, &cd_ee54322);
+ dp->~ee54322();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54322(Test_ee54322, "ee54322", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee54322C1Ev();
+extern void _ZN7ee54322D1Ev();
+Name_Map name_map_ee54322[] = {
+ NSPAIR(_ZN7ee54322C1Ev),
+ NSPAIR(_ZN7ee54322D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc322;
+extern VTBL_ENTRY _ZTI5cc322[];
+extern VTBL_ENTRY _ZTV5cc322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc322[];
+extern Class_Descriptor cd_dd4322;
+extern VTBL_ENTRY _ZTI6dd4322[];
+extern VTBL_ENTRY _ZTV6dd4322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4322[];
+static Base_Class bases_ee54322[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc322, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4322, 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 _ZTI7ee54322[];
+extern void _ZN7ee543223barEv();
+extern void _ZN5cc3223fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee543223barEv,_ZTv0_n20_N7ee543223barEv)();
+extern void ABISELECT(_ZThn16_N7ee543223barEv,_ZThn8_N7ee543223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn12_N5cc3223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee543223barEv,_ZTv0_n16_N7ee543223barEv)();
+extern void ABISELECT(_ZThn32_N7ee543223barEv,_ZThn20_N7ee543223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54322[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54322[0]),
+ (VTBL_ENTRY)&_ZN7ee543223barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee543223barEv,_ZTv0_n20_N7ee543223barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee54322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee543223barEv,_ZTv0_n16_N7ee543223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee54322[];
+extern void _ZN5cc3223fooEv();
+extern void _ZN6dd43223barEv();
+static VTBL_ENTRY _tg__ZTV6dd4322__7ee54322[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+ (VTBL_ENTRY)&_ZN6dd43223barEv,
+};
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3226dd4322__7ee54322[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn12_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc3226dd4322__7ee54322[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn12_N5cc3223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd43223barEv,_ZTv0_n16_N6dd43223barEv)();
+extern void ABISELECT(_ZThn16_N6dd43223barEv,_ZThn12_N6dd43223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd4322__7ee54322[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43223barEv,_ZTv0_n16_N6dd43223barEv),
+};
+static VTT_ENTRY vtt_ee54322[] = {
+ {&(_ZTV7ee54322[4]), 4,18},
+ {&(_ZTV7ee54322[10]), 10,18},
+ {&(_ZTV7ee54322[16]), 16,18},
+ {&(_tg__ZTV6dd4322__7ee54322[3]), 3,5},
+ {&(_tg__ZTV5cc3226dd4322__7ee54322[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc3226dd4322__7ee54322[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd4322__7ee54322[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee54322[];
+extern VTBL_ENTRY _ZTV7ee54322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54322[];
+static VTBL_ENTRY alt_thunk_names1050[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd43223barEv,_ZTv0_n16_N6dd43223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd43223barEv,_ZThn12_N6dd43223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee543223barEv,_ZTv0_n16_N7ee543223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee543223barEv,_ZThn20_N7ee543223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn12_N5cc3223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn12_N5cc3223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn12_N5cc3223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee543223barEv,_ZTv0_n20_N7ee543223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee543223barEv,_ZThn8_N7ee543223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54322 = { "ee54322", // class name
+ bases_ee54322, 4,
+ &(vtc_ee54322[0]), // expected_vtbl_contents
+ &(vtt_ee54322[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee54322),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54322),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54322),7, //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 ee64322 : dd4322 {
+ int e;
+ virtual void foo(); // _ZN7ee643223fooEv
+ virtual void bar(); // _ZN7ee643223barEv
+ ~ee64322(); // tgen
+ ee64322(); // tgen
+};
+//SIG(1 ee64322) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64322 ::foo(){vfunc_called(this, "_ZN7ee643223fooEv");}
+void ee64322 ::bar(){vfunc_called(this, "_ZN7ee643223barEv");}
+ee64322 ::~ee64322(){ note_dtor("ee64322", this);} // tgen
+ee64322 ::ee64322(){ note_ctor("ee64322", this);} // tgen
+
+static void Test_ee64322()
+{
+ extern Class_Descriptor cd_ee64322;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee64322, buf);
+ ee64322 *dp, &lv = *(dp=new (buf) ee64322());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee64322)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64322)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(24,16), "ee64322");
+ check_base_class_offset(lv, (bb22*)(cc322*)(dd4322*), ABISELECT(24,16), "ee64322");
+ check_base_class_offset(lv, (cc322*)(dd4322*), 0, "ee64322");
+ check_base_class_offset(lv, (dd4322*), 0, "ee64322");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee64322.e");
+ test_class_info(&lv, &cd_ee64322);
+ dp->~ee64322();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64322(Test_ee64322, "ee64322", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee64322C1Ev();
+extern void _ZN7ee64322D1Ev();
+Name_Map name_map_ee64322[] = {
+ NSPAIR(_ZN7ee64322C1Ev),
+ NSPAIR(_ZN7ee64322D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc322;
+extern VTBL_ENTRY _ZTI5cc322[];
+extern VTBL_ENTRY _ZTV5cc322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc322[];
+extern Class_Descriptor cd_dd4322;
+extern VTBL_ENTRY _ZTI6dd4322[];
+extern VTBL_ENTRY _ZTV6dd4322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4322[];
+static Base_Class bases_ee64322[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc322, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4322, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee64322[];
+extern void _ZN7ee643223fooEv();
+extern void _ZN7ee643223barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee643223fooEv,_ZTv0_n12_N7ee643223fooEv)();
+extern void ABISELECT(_ZThn24_N7ee643223fooEv,_ZThn16_N7ee643223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee643223barEv,_ZTv0_n16_N7ee643223barEv)();
+extern void ABISELECT(_ZThn24_N7ee643223barEv,_ZThn16_N7ee643223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee64322[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64322[0]),
+ (VTBL_ENTRY)&_ZN7ee643223fooEv,
+ (VTBL_ENTRY)&_ZN7ee643223barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee64322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee643223fooEv,_ZTv0_n12_N7ee643223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee643223barEv,_ZTv0_n16_N7ee643223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee64322[];
+extern void _ZN5cc3223fooEv();
+extern void _ZN6dd43223barEv();
+static VTBL_ENTRY _tg__ZTV6dd4322__7ee64322[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+ (VTBL_ENTRY)&_ZN6dd43223barEv,
+};
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3226dd4322__7ee64322[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3223fooEv,_ZThn16_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc3226dd4322__7ee64322[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3223fooEv,_ZThn16_N5cc3223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd43223barEv,_ZTv0_n16_N6dd43223barEv)();
+extern void ABISELECT(_ZThn24_N6dd43223barEv,_ZThn16_N6dd43223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd4322__7ee64322[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43223barEv,_ZTv0_n16_N6dd43223barEv),
+};
+static VTT_ENTRY vtt_ee64322[] = {
+ {&(_ZTV7ee64322[3]), 3,11},
+ {&(_tg__ZTV6dd4322__7ee64322[3]), 3,5},
+ {&(_tg__ZTV5cc3226dd4322__7ee64322[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc3226dd4322__7ee64322[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd4322__7ee64322[4]), 4,6},
+ {&(_ZTV7ee64322[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee64322[];
+extern VTBL_ENTRY _ZTV7ee64322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee64322[];
+static VTBL_ENTRY alt_thunk_names1051[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd43223barEv,_ZTv0_n16_N6dd43223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd43223barEv,_ZThn16_N6dd43223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3223fooEv,_ZThn16_N5cc3223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3223fooEv,_ZThn16_N5cc3223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee643223barEv,_ZTv0_n16_N7ee643223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee643223barEv,_ZThn16_N7ee643223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee643223fooEv,_ZTv0_n12_N7ee643223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee643223fooEv,_ZThn16_N7ee643223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee64322 = { "ee64322", // class name
+ bases_ee64322, 4,
+ &(vtc_ee64322[0]), // expected_vtbl_contents
+ &(vtt_ee64322[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee64322),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64322),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee64322),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1051,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee74322 : virtual dd4322 {
+ int e;
+ virtual void foo(); // _ZN7ee743223fooEv
+ virtual void bar(); // _ZN7ee743223barEv
+ ~ee74322(); // tgen
+ ee74322(); // tgen
+};
+//SIG(1 ee74322) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74322 ::foo(){vfunc_called(this, "_ZN7ee743223fooEv");}
+void ee74322 ::bar(){vfunc_called(this, "_ZN7ee743223barEv");}
+ee74322 ::~ee74322(){ note_dtor("ee74322", this);} // tgen
+ee74322 ::ee74322(){ note_ctor("ee74322", this);} // tgen
+
+static void Test_ee74322()
+{
+ extern Class_Descriptor cd_ee74322;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee74322, buf);
+ ee74322 *dp, &lv = *(dp=new (buf) ee74322());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee74322)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74322)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee74322");
+ check_base_class_offset(lv, (bb22*)(cc322*)(dd4322*), ABISELECT(32,20), "ee74322");
+ check_base_class_offset(lv, (cc322*)(dd4322*), ABISELECT(16,8), "ee74322");
+ check_base_class_offset(lv, (dd4322*), ABISELECT(16,8), "ee74322");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74322.e");
+ test_class_info(&lv, &cd_ee74322);
+ dp->~ee74322();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74322(Test_ee74322, "ee74322", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee74322C1Ev();
+extern void _ZN7ee74322D1Ev();
+Name_Map name_map_ee74322[] = {
+ NSPAIR(_ZN7ee74322C1Ev),
+ NSPAIR(_ZN7ee74322D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc322;
+extern VTBL_ENTRY _ZTI5cc322[];
+extern VTBL_ENTRY _ZTV5cc322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc322[];
+extern Class_Descriptor cd_dd4322;
+extern VTBL_ENTRY _ZTI6dd4322[];
+extern VTBL_ENTRY _ZTV6dd4322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4322[];
+static Base_Class bases_ee74322[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc322, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4322, ABISELECT(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 _ZTI7ee74322[];
+extern void _ZN7ee743223fooEv();
+extern void _ZN7ee743223barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee743223fooEv,_ZTv0_n16_N7ee743223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee743223fooEv,_ZThn8_N7ee743223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee743223barEv,_ZTv0_n20_N7ee743223barEv)();
+extern void ABISELECT(_ZThn16_N7ee743223barEv,_ZThn8_N7ee743223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee743223fooEv,_ZTv0_n12_N7ee743223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee743223fooEv,_ZThn20_N7ee743223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee743223barEv,_ZTv0_n16_N7ee743223barEv)();
+extern void ABISELECT(_ZThn32_N7ee743223barEv,_ZThn20_N7ee743223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74322[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74322[0]),
+ (VTBL_ENTRY)&_ZN7ee743223fooEv,
+ (VTBL_ENTRY)&_ZN7ee743223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee743223fooEv,_ZTv0_n16_N7ee743223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee743223barEv,_ZTv0_n20_N7ee743223barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee74322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee743223fooEv,_ZTv0_n12_N7ee743223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee743223barEv,_ZTv0_n16_N7ee743223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee74322[];
+extern void _ZN5cc3223fooEv();
+extern void _ZN6dd43223barEv();
+static VTBL_ENTRY _tg__ZTV6dd4322__7ee74322[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+ (VTBL_ENTRY)&_ZN6dd43223barEv,
+};
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3226dd4322__7ee74322[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn12_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc3226dd4322__7ee74322[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn12_N5cc3223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd43223barEv,_ZTv0_n16_N6dd43223barEv)();
+extern void ABISELECT(_ZThn16_N6dd43223barEv,_ZThn12_N6dd43223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd4322__7ee74322[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43223barEv,_ZTv0_n16_N6dd43223barEv),
+};
+static VTT_ENTRY vtt_ee74322[] = {
+ {&(_ZTV7ee74322[4]), 4,19},
+ {&(_ZTV7ee74322[11]), 11,19},
+ {&(_ZTV7ee74322[17]), 17,19},
+ {&(_tg__ZTV6dd4322__7ee74322[3]), 3,5},
+ {&(_tg__ZTV5cc3226dd4322__7ee74322[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc3226dd4322__7ee74322[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd4322__7ee74322[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee74322[];
+extern VTBL_ENTRY _ZTV7ee74322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74322[];
+static VTBL_ENTRY alt_thunk_names1052[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd43223barEv,_ZTv0_n16_N6dd43223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd43223barEv,_ZThn12_N6dd43223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn12_N5cc3223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn12_N5cc3223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee743223barEv,_ZTv0_n16_N7ee743223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee743223barEv,_ZThn20_N7ee743223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee743223fooEv,_ZTv0_n12_N7ee743223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee743223fooEv,_ZThn20_N7ee743223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee743223barEv,_ZTv0_n20_N7ee743223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee743223barEv,_ZThn8_N7ee743223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee743223fooEv,_ZTv0_n16_N7ee743223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee743223fooEv,_ZThn8_N7ee743223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74322 = { "ee74322", // class name
+ bases_ee74322, 4,
+ &(vtc_ee74322[0]), // expected_vtbl_contents
+ &(vtt_ee74322[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee74322),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74322),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74322),7, //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 dd5322 : virtual cc322 {
+ int d;
+ virtual void bar(); // _ZN6dd53223barEv
+ ~dd5322(); // tgen
+ dd5322(); // tgen
+};
+//SIG(-1 dd5322) C1{ VBC2{ VBC3{ BC4{ v2 v1 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void dd5322 ::bar(){vfunc_called(this, "_ZN6dd53223barEv");}
+dd5322 ::~dd5322(){ note_dtor("dd5322", this);} // tgen
+dd5322 ::dd5322(){ note_ctor("dd5322", this);} // tgen
+
+static void Test_dd5322()
+{
+ extern Class_Descriptor cd_dd5322;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd5322, buf);
+ dd5322 *dp, &lv = *(dp=new (buf) dd5322());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd5322)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5322)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,16), "dd5322");
+ check_base_class_offset(lv, (bb22*)(cc322*), ABISELECT(32,16), "dd5322");
+ check_base_class_offset(lv, (cc322*), ABISELECT(16,8), "dd5322");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5322.d");
+ test_class_info(&lv, &cd_dd5322);
+ dp->~dd5322();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5322(Test_dd5322, "dd5322", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd5322C1Ev();
+extern void _ZN6dd5322D1Ev();
+Name_Map name_map_dd5322[] = {
+ NSPAIR(_ZN6dd5322C1Ev),
+ NSPAIR(_ZN6dd5322D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc322;
+extern VTBL_ENTRY _ZTI5cc322[];
+extern VTBL_ENTRY _ZTV5cc322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc322[];
+static Base_Class bases_dd5322[] = {
+ // 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_bb22, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc322, 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 _ZTI6dd5322[];
+extern void _ZN6dd53223barEv();
+extern void _ZN5cc3223fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd53223barEv,_ZTv0_n16_N6dd53223barEv)();
+extern void ABISELECT(_ZThn32_N6dd53223barEv,_ZThn16_N6dd53223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd5322[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5322[0]),
+ (VTBL_ENTRY)&_ZN6dd53223barEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53223barEv,_ZTv0_n16_N6dd53223barEv),
+};
+extern VTBL_ENTRY _ZTV6dd5322[];
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc322__6dd5322[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc322__6dd5322[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_dd5322[] = {
+ {&(_ZTV6dd5322[4]), 4,16},
+ {&(_ZTV6dd5322[9]), 9,16},
+ {&(_ZTV6dd5322[14]), 14,16},
+ {&(_tg__ZTV5cc322__6dd5322[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc322__6dd5322[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd5322[];
+extern VTBL_ENTRY _ZTV6dd5322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5322[];
+static VTBL_ENTRY alt_thunk_names1053[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd53223barEv,_ZTv0_n16_N6dd53223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53223barEv,_ZThn16_N6dd53223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5322 = { "dd5322", // class name
+ bases_dd5322, 3,
+ &(vtc_dd5322[0]), // expected_vtbl_contents
+ &(vtt_dd5322[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd5322),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5322),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5322),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1053,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05322 : dd5322 {
+ int e;
+ ~ee05322(); // tgen
+ ee05322(); // tgen
+};
+//SIG(1 ee05322) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee05322 ::~ee05322(){ note_dtor("ee05322", this);} // tgen
+ee05322 ::ee05322(){ note_ctor("ee05322", this);} // tgen
+
+static void Test_ee05322()
+{
+ extern Class_Descriptor cd_ee05322;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee05322, buf);
+ ee05322 *dp, &lv = *(dp=new (buf) ee05322());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee05322)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05322)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee05322");
+ check_base_class_offset(lv, (bb22*)(cc322*), ABISELECT(32,20), "ee05322");
+ check_base_class_offset(lv, (cc322*)(dd5322*), ABISELECT(16,12), "ee05322");
+ check_base_class_offset(lv, (dd5322*), 0, "ee05322");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05322.e");
+ test_class_info(&lv, &cd_ee05322);
+ dp->~ee05322();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05322(Test_ee05322, "ee05322", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee05322C1Ev();
+extern void _ZN7ee05322D1Ev();
+Name_Map name_map_ee05322[] = {
+ NSPAIR(_ZN7ee05322C1Ev),
+ NSPAIR(_ZN7ee05322D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc322;
+extern VTBL_ENTRY _ZTI5cc322[];
+extern VTBL_ENTRY _ZTV5cc322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc322[];
+extern Class_Descriptor cd_dd5322;
+extern VTBL_ENTRY _ZTI6dd5322[];
+extern VTBL_ENTRY _ZTV6dd5322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5322[];
+static Base_Class bases_ee05322[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc322, 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_dd5322, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05322[];
+extern void _ZN6dd53223barEv();
+extern void _ZN5cc3223fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd53223barEv,_ZTv0_n16_N6dd53223barEv)();
+extern void ABISELECT(_ZThn32_N6dd53223barEv,_ZThn20_N6dd53223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee05322[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05322[0]),
+ (VTBL_ENTRY)&_ZN6dd53223barEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee05322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53223barEv,_ZTv0_n16_N6dd53223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee05322[];
+extern void _ZN6dd53223barEv();
+static VTBL_ENTRY _tg__ZTV6dd5322__7ee05322[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5322[0]),
+ (VTBL_ENTRY)&_ZN6dd53223barEv,
+};
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc322__6dd5322__7ee05322[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd53223barEv,_ZTv0_n16_N6dd53223barEv)();
+extern void ABISELECT(_ZThn32_N6dd53223barEv,_ZThn20_N6dd53223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd5322__7ee05322[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53223barEv,_ZTv0_n16_N6dd53223barEv),
+};
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc322__7ee05322[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc322__7ee05322[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee05322[] = {
+ {&(_ZTV7ee05322[4]), 4,16},
+ {&(_tg__ZTV6dd5322__7ee05322[4]), 4,5},
+ {&(_tg__ZTV5cc322__6dd5322__7ee05322[4]), 4,5},
+ {&(_tg__ZTV4bb22__6dd5322__7ee05322[4]), 4,6},
+ {&(_ZTV7ee05322[9]), 9,16},
+ {&(_ZTV7ee05322[14]), 14,16},
+ {&(_tg__ZTV5cc322__7ee05322[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc322__7ee05322[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee05322[];
+extern VTBL_ENTRY _ZTV7ee05322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05322[];
+static VTBL_ENTRY alt_thunk_names1054[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd53223barEv,_ZTv0_n16_N6dd53223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53223barEv,_ZThn20_N6dd53223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53223barEv,_ZThn20_N6dd53223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05322 = { "ee05322", // class name
+ bases_ee05322, 4,
+ &(vtc_ee05322[0]), // expected_vtbl_contents
+ &(vtt_ee05322[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee05322),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05322),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05322),8, //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 ee15322 : virtual dd5322 {
+ int e;
+ ~ee15322(); // tgen
+ ee15322(); // tgen
+};
+//SIG(1 ee15322) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee15322 ::~ee15322(){ note_dtor("ee15322", this);} // tgen
+ee15322 ::ee15322(){ note_ctor("ee15322", this);} // tgen
+
+static void Test_ee15322()
+{
+ extern Class_Descriptor cd_ee15322;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee15322, buf);
+ ee15322 *dp, &lv = *(dp=new (buf) ee15322());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee15322)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15322)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(48,24), "ee15322");
+ check_base_class_offset(lv, (bb22*)(cc322*), ABISELECT(48,24), "ee15322");
+ check_base_class_offset(lv, (cc322*)(dd5322*), ABISELECT(32,16), "ee15322");
+ check_base_class_offset(lv, (dd5322*), ABISELECT(16,8), "ee15322");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15322.e");
+ test_class_info(&lv, &cd_ee15322);
+ dp->~ee15322();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15322(Test_ee15322, "ee15322", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee15322C1Ev();
+extern void _ZN7ee15322D1Ev();
+Name_Map name_map_ee15322[] = {
+ NSPAIR(_ZN7ee15322C1Ev),
+ NSPAIR(_ZN7ee15322D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc322;
+extern VTBL_ENTRY _ZTI5cc322[];
+extern VTBL_ENTRY _ZTV5cc322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc322[];
+extern Class_Descriptor cd_dd5322;
+extern VTBL_ENTRY _ZTI6dd5322[];
+extern VTBL_ENTRY _ZTV6dd5322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5322[];
+static Base_Class bases_ee15322[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb22, ABISELECT(48,24), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc322, 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_dd5322, 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 _ZTI7ee15322[];
+extern void _ZN6dd53223barEv();
+extern void _ZN5cc3223fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd53223barEv,_ZTv0_n16_N6dd53223barEv)();
+extern void ABISELECT(_ZThn32_N6dd53223barEv,_ZThn16_N6dd53223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee15322[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15322[0]),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15322[0]),
+ (VTBL_ENTRY)&_ZN6dd53223barEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee15322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53223barEv,_ZTv0_n16_N6dd53223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee15322[];
+extern void _ZN6dd53223barEv();
+static VTBL_ENTRY _tg__ZTV6dd5322__7ee15322[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5322[0]),
+ (VTBL_ENTRY)&_ZN6dd53223barEv,
+};
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc322__6dd5322__7ee15322[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd53223barEv,_ZTv0_n16_N6dd53223barEv)();
+extern void ABISELECT(_ZThn32_N6dd53223barEv,_ZThn16_N6dd53223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd5322__7ee15322[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53223barEv,_ZTv0_n16_N6dd53223barEv),
+};
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc322__7ee15322[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc322__7ee15322[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee15322[] = {
+ {&(_ZTV7ee15322[5]), 5,22},
+ {&(_ZTV7ee15322[10]), 10,22},
+ {&(_ZTV7ee15322[15]), 15,22},
+ {&(_ZTV7ee15322[20]), 20,22},
+ {&(_tg__ZTV6dd5322__7ee15322[4]), 4,5},
+ {&(_tg__ZTV5cc322__6dd5322__7ee15322[4]), 4,5},
+ {&(_tg__ZTV4bb22__6dd5322__7ee15322[4]), 4,6},
+ {&(_tg__ZTV5cc322__7ee15322[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc322__7ee15322[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee15322[];
+extern VTBL_ENTRY _ZTV7ee15322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15322[];
+static VTBL_ENTRY alt_thunk_names1055[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd53223barEv,_ZTv0_n16_N6dd53223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53223barEv,_ZThn16_N6dd53223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53223barEv,_ZThn16_N6dd53223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15322 = { "ee15322", // class name
+ bases_ee15322, 4,
+ &(vtc_ee15322[0]), // expected_vtbl_contents
+ &(vtt_ee15322[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee15322),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15322),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15322),9, //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 ee25322 : dd5322 {
+ int e;
+ virtual void foo(); // _ZN7ee253223fooEv
+ ~ee25322(); // tgen
+ ee25322(); // tgen
+};
+//SIG(1 ee25322) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee25322 ::foo(){vfunc_called(this, "_ZN7ee253223fooEv");}
+ee25322 ::~ee25322(){ note_dtor("ee25322", this);} // tgen
+ee25322 ::ee25322(){ note_ctor("ee25322", this);} // tgen
+
+static void Test_ee25322()
+{
+ extern Class_Descriptor cd_ee25322;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee25322, buf);
+ ee25322 *dp, &lv = *(dp=new (buf) ee25322());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee25322)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25322)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee25322");
+ check_base_class_offset(lv, (bb22*)(cc322*), ABISELECT(32,20), "ee25322");
+ check_base_class_offset(lv, (cc322*)(dd5322*), ABISELECT(16,12), "ee25322");
+ check_base_class_offset(lv, (dd5322*), 0, "ee25322");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25322.e");
+ test_class_info(&lv, &cd_ee25322);
+ dp->~ee25322();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25322(Test_ee25322, "ee25322", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee25322C1Ev();
+extern void _ZN7ee25322D1Ev();
+Name_Map name_map_ee25322[] = {
+ NSPAIR(_ZN7ee25322C1Ev),
+ NSPAIR(_ZN7ee25322D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc322;
+extern VTBL_ENTRY _ZTI5cc322[];
+extern VTBL_ENTRY _ZTV5cc322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc322[];
+extern Class_Descriptor cd_dd5322;
+extern VTBL_ENTRY _ZTI6dd5322[];
+extern VTBL_ENTRY _ZTV6dd5322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5322[];
+static Base_Class bases_ee25322[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc322, 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_dd5322, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25322[];
+extern void _ZN6dd53223barEv();
+extern void _ZN7ee253223fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee253223fooEv,_ZTv0_n16_N7ee253223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee253223fooEv,_ZThn12_N7ee253223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee253223fooEv,_ZTv0_n12_N7ee253223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee253223fooEv,_ZThn20_N7ee253223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd53223barEv,_ZTv0_n16_N6dd53223barEv)();
+extern void ABISELECT(_ZThn32_N6dd53223barEv,_ZThn20_N6dd53223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25322[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25322[0]),
+ (VTBL_ENTRY)&_ZN6dd53223barEv,
+ (VTBL_ENTRY)&_ZN7ee253223fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee253223fooEv,_ZTv0_n16_N7ee253223fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee25322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee253223fooEv,_ZTv0_n12_N7ee253223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53223barEv,_ZTv0_n16_N6dd53223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee25322[];
+extern void _ZN6dd53223barEv();
+static VTBL_ENTRY _tg__ZTV6dd5322__7ee25322[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5322[0]),
+ (VTBL_ENTRY)&_ZN6dd53223barEv,
+};
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc322__6dd5322__7ee25322[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd53223barEv,_ZTv0_n16_N6dd53223barEv)();
+extern void ABISELECT(_ZThn32_N6dd53223barEv,_ZThn20_N6dd53223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd5322__7ee25322[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53223barEv,_ZTv0_n16_N6dd53223barEv),
+};
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc322__7ee25322[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc322__7ee25322[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee25322[] = {
+ {&(_ZTV7ee25322[4]), 4,17},
+ {&(_tg__ZTV6dd5322__7ee25322[4]), 4,5},
+ {&(_tg__ZTV5cc322__6dd5322__7ee25322[4]), 4,5},
+ {&(_tg__ZTV4bb22__6dd5322__7ee25322[4]), 4,6},
+ {&(_ZTV7ee25322[10]), 10,17},
+ {&(_ZTV7ee25322[15]), 15,17},
+ {&(_tg__ZTV5cc322__7ee25322[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc322__7ee25322[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee25322[];
+extern VTBL_ENTRY _ZTV7ee25322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25322[];
+static VTBL_ENTRY alt_thunk_names1056[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd53223barEv,_ZTv0_n16_N6dd53223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53223barEv,_ZThn20_N6dd53223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53223barEv,_ZThn20_N6dd53223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee253223fooEv,_ZTv0_n12_N7ee253223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee253223fooEv,_ZThn20_N7ee253223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee253223fooEv,_ZTv0_n16_N7ee253223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee253223fooEv,_ZThn12_N7ee253223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25322 = { "ee25322", // class name
+ bases_ee25322, 4,
+ &(vtc_ee25322[0]), // expected_vtbl_contents
+ &(vtt_ee25322[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee25322),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25322),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25322),8, //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 ee35322 : virtual dd5322 {
+ int e;
+ virtual void foo(); // _ZN7ee353223fooEv
+ ~ee35322(); // tgen
+ ee35322(); // tgen
+};
+//SIG(1 ee35322) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee35322 ::foo(){vfunc_called(this, "_ZN7ee353223fooEv");}
+ee35322 ::~ee35322(){ note_dtor("ee35322", this);} // tgen
+ee35322 ::ee35322(){ note_ctor("ee35322", this);} // tgen
+
+static void Test_ee35322()
+{
+ extern Class_Descriptor cd_ee35322;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee35322, buf);
+ ee35322 *dp, &lv = *(dp=new (buf) ee35322());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee35322)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35322)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(48,24), "ee35322");
+ check_base_class_offset(lv, (bb22*)(cc322*), ABISELECT(48,24), "ee35322");
+ check_base_class_offset(lv, (cc322*)(dd5322*), ABISELECT(32,16), "ee35322");
+ check_base_class_offset(lv, (dd5322*), ABISELECT(16,8), "ee35322");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35322.e");
+ test_class_info(&lv, &cd_ee35322);
+ dp->~ee35322();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35322(Test_ee35322, "ee35322", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee35322C1Ev();
+extern void _ZN7ee35322D1Ev();
+Name_Map name_map_ee35322[] = {
+ NSPAIR(_ZN7ee35322C1Ev),
+ NSPAIR(_ZN7ee35322D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc322;
+extern VTBL_ENTRY _ZTI5cc322[];
+extern VTBL_ENTRY _ZTV5cc322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc322[];
+extern Class_Descriptor cd_dd5322;
+extern VTBL_ENTRY _ZTI6dd5322[];
+extern VTBL_ENTRY _ZTV6dd5322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5322[];
+static Base_Class bases_ee35322[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb22, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc322, 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_dd5322, ABISELECT(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 _ZTI7ee35322[];
+extern void _ZN7ee353223fooEv();
+extern void _ZN6dd53223barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee353223fooEv,_ZTv0_n16_N7ee353223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee353223fooEv,_ZThn16_N7ee353223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee353223fooEv,_ZTv0_n12_N7ee353223fooEv)();
+extern void ABISELECT(_ZThn48_N7ee353223fooEv,_ZThn24_N7ee353223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd53223barEv,_ZTv0_n16_N6dd53223barEv)();
+extern void ABISELECT(_ZThn32_N6dd53223barEv,_ZThn16_N6dd53223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35322[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35322[0]),
+ (VTBL_ENTRY)&_ZN7ee353223fooEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35322[0]),
+ (VTBL_ENTRY)&_ZN6dd53223barEv,
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee353223fooEv,_ZTv0_n16_N7ee353223fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee35322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee353223fooEv,_ZTv0_n12_N7ee353223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53223barEv,_ZTv0_n16_N6dd53223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee35322[];
+extern void _ZN6dd53223barEv();
+static VTBL_ENTRY _tg__ZTV6dd5322__7ee35322[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5322[0]),
+ (VTBL_ENTRY)&_ZN6dd53223barEv,
+};
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc322__6dd5322__7ee35322[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd53223barEv,_ZTv0_n16_N6dd53223barEv)();
+extern void ABISELECT(_ZThn32_N6dd53223barEv,_ZThn16_N6dd53223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd5322__7ee35322[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53223barEv,_ZTv0_n16_N6dd53223barEv),
+};
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc322__7ee35322[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc322__7ee35322[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee35322[] = {
+ {&(_ZTV7ee35322[5]), 5,23},
+ {&(_ZTV7ee35322[11]), 11,23},
+ {&(_ZTV7ee35322[16]), 16,23},
+ {&(_ZTV7ee35322[21]), 21,23},
+ {&(_tg__ZTV6dd5322__7ee35322[4]), 4,5},
+ {&(_tg__ZTV5cc322__6dd5322__7ee35322[4]), 4,5},
+ {&(_tg__ZTV4bb22__6dd5322__7ee35322[4]), 4,6},
+ {&(_tg__ZTV5cc322__7ee35322[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc322__7ee35322[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee35322[];
+extern VTBL_ENTRY _ZTV7ee35322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35322[];
+static VTBL_ENTRY alt_thunk_names1057[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd53223barEv,_ZTv0_n16_N6dd53223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53223barEv,_ZThn16_N6dd53223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53223barEv,_ZThn16_N6dd53223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee353223fooEv,_ZTv0_n12_N7ee353223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee353223fooEv,_ZThn24_N7ee353223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee353223fooEv,_ZTv0_n16_N7ee353223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee353223fooEv,_ZThn16_N7ee353223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35322 = { "ee35322", // class name
+ bases_ee35322, 4,
+ &(vtc_ee35322[0]), // expected_vtbl_contents
+ &(vtt_ee35322[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee35322),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35322),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35322),9, //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 ee45322 : dd5322 {
+ int e;
+ virtual void bar(); // _ZN7ee453223barEv
+ ~ee45322(); // tgen
+ ee45322(); // tgen
+};
+//SIG(1 ee45322) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee45322 ::bar(){vfunc_called(this, "_ZN7ee453223barEv");}
+ee45322 ::~ee45322(){ note_dtor("ee45322", this);} // tgen
+ee45322 ::ee45322(){ note_ctor("ee45322", this);} // tgen
+
+static void Test_ee45322()
+{
+ extern Class_Descriptor cd_ee45322;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee45322, buf);
+ ee45322 *dp, &lv = *(dp=new (buf) ee45322());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee45322)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45322)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee45322");
+ check_base_class_offset(lv, (bb22*)(cc322*), ABISELECT(32,20), "ee45322");
+ check_base_class_offset(lv, (cc322*)(dd5322*), ABISELECT(16,12), "ee45322");
+ check_base_class_offset(lv, (dd5322*), 0, "ee45322");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45322.e");
+ test_class_info(&lv, &cd_ee45322);
+ dp->~ee45322();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45322(Test_ee45322, "ee45322", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee45322C1Ev();
+extern void _ZN7ee45322D1Ev();
+Name_Map name_map_ee45322[] = {
+ NSPAIR(_ZN7ee45322C1Ev),
+ NSPAIR(_ZN7ee45322D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc322;
+extern VTBL_ENTRY _ZTI5cc322[];
+extern VTBL_ENTRY _ZTV5cc322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc322[];
+extern Class_Descriptor cd_dd5322;
+extern VTBL_ENTRY _ZTI6dd5322[];
+extern VTBL_ENTRY _ZTV6dd5322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5322[];
+static Base_Class bases_ee45322[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc322, 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_dd5322, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45322[];
+extern void _ZN7ee453223barEv();
+extern void _ZN5cc3223fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee453223barEv,_ZTv0_n16_N7ee453223barEv)();
+extern void ABISELECT(_ZThn32_N7ee453223barEv,_ZThn20_N7ee453223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee45322[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45322[0]),
+ (VTBL_ENTRY)&_ZN7ee453223barEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee45322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee453223barEv,_ZTv0_n16_N7ee453223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee45322[];
+extern void _ZN6dd53223barEv();
+static VTBL_ENTRY _tg__ZTV6dd5322__7ee45322[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5322[0]),
+ (VTBL_ENTRY)&_ZN6dd53223barEv,
+};
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc322__6dd5322__7ee45322[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd53223barEv,_ZTv0_n16_N6dd53223barEv)();
+extern void ABISELECT(_ZThn32_N6dd53223barEv,_ZThn20_N6dd53223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd5322__7ee45322[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53223barEv,_ZTv0_n16_N6dd53223barEv),
+};
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc322__7ee45322[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc322__7ee45322[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee45322[] = {
+ {&(_ZTV7ee45322[4]), 4,16},
+ {&(_tg__ZTV6dd5322__7ee45322[4]), 4,5},
+ {&(_tg__ZTV5cc322__6dd5322__7ee45322[4]), 4,5},
+ {&(_tg__ZTV4bb22__6dd5322__7ee45322[4]), 4,6},
+ {&(_ZTV7ee45322[9]), 9,16},
+ {&(_ZTV7ee45322[14]), 14,16},
+ {&(_tg__ZTV5cc322__7ee45322[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc322__7ee45322[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee45322[];
+extern VTBL_ENTRY _ZTV7ee45322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45322[];
+static VTBL_ENTRY alt_thunk_names1058[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd53223barEv,_ZTv0_n16_N6dd53223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53223barEv,_ZThn20_N6dd53223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee453223barEv,_ZTv0_n16_N7ee453223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee453223barEv,_ZThn20_N7ee453223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45322 = { "ee45322", // class name
+ bases_ee45322, 4,
+ &(vtc_ee45322[0]), // expected_vtbl_contents
+ &(vtt_ee45322[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee45322),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45322),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45322),8, //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 ee55322 : virtual dd5322 {
+ int e;
+ virtual void bar(); // _ZN7ee553223barEv
+ ~ee55322(); // tgen
+ ee55322(); // tgen
+};
+//SIG(1 ee55322) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee55322 ::bar(){vfunc_called(this, "_ZN7ee553223barEv");}
+ee55322 ::~ee55322(){ note_dtor("ee55322", this);} // tgen
+ee55322 ::ee55322(){ note_ctor("ee55322", this);} // tgen
+
+static void Test_ee55322()
+{
+ extern Class_Descriptor cd_ee55322;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee55322, buf);
+ ee55322 *dp, &lv = *(dp=new (buf) ee55322());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee55322)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55322)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(48,24), "ee55322");
+ check_base_class_offset(lv, (bb22*)(cc322*), ABISELECT(48,24), "ee55322");
+ check_base_class_offset(lv, (cc322*)(dd5322*), ABISELECT(32,16), "ee55322");
+ check_base_class_offset(lv, (dd5322*), ABISELECT(16,8), "ee55322");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55322.e");
+ test_class_info(&lv, &cd_ee55322);
+ dp->~ee55322();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55322(Test_ee55322, "ee55322", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee55322C1Ev();
+extern void _ZN7ee55322D1Ev();
+Name_Map name_map_ee55322[] = {
+ NSPAIR(_ZN7ee55322C1Ev),
+ NSPAIR(_ZN7ee55322D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc322;
+extern VTBL_ENTRY _ZTI5cc322[];
+extern VTBL_ENTRY _ZTV5cc322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc322[];
+extern Class_Descriptor cd_dd5322;
+extern VTBL_ENTRY _ZTI6dd5322[];
+extern VTBL_ENTRY _ZTV6dd5322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5322[];
+static Base_Class bases_ee55322[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb22, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc322, 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_dd5322, ABISELECT(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 _ZTI7ee55322[];
+extern void _ZN7ee553223barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee553223barEv,_ZTv0_n20_N7ee553223barEv)();
+extern void ABISELECT(_ZThn16_N7ee553223barEv,_ZThn8_N7ee553223barEv)() __attribute__((weak));
+extern void _ZN5cc3223fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee553223barEv,_ZTv0_n16_N7ee553223barEv)();
+extern void ABISELECT(_ZThn48_N7ee553223barEv,_ZThn24_N7ee553223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee55322[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55322[0]),
+ (VTBL_ENTRY)&_ZN7ee553223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee553223barEv,_ZTv0_n20_N7ee553223barEv),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+ ABISELECT(-48,-24),
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee55322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee553223barEv,_ZTv0_n16_N7ee553223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee55322[];
+extern void _ZN6dd53223barEv();
+static VTBL_ENTRY _tg__ZTV6dd5322__7ee55322[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5322[0]),
+ (VTBL_ENTRY)&_ZN6dd53223barEv,
+};
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc322__6dd5322__7ee55322[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd53223barEv,_ZTv0_n16_N6dd53223barEv)();
+extern void ABISELECT(_ZThn32_N6dd53223barEv,_ZThn16_N6dd53223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd5322__7ee55322[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53223barEv,_ZTv0_n16_N6dd53223barEv),
+};
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc322__7ee55322[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc322__7ee55322[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee55322[] = {
+ {&(_ZTV7ee55322[5]), 5,23},
+ {&(_ZTV7ee55322[11]), 11,23},
+ {&(_ZTV7ee55322[16]), 16,23},
+ {&(_ZTV7ee55322[21]), 21,23},
+ {&(_tg__ZTV6dd5322__7ee55322[4]), 4,5},
+ {&(_tg__ZTV5cc322__6dd5322__7ee55322[4]), 4,5},
+ {&(_tg__ZTV4bb22__6dd5322__7ee55322[4]), 4,6},
+ {&(_tg__ZTV5cc322__7ee55322[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc322__7ee55322[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee55322[];
+extern VTBL_ENTRY _ZTV7ee55322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55322[];
+static VTBL_ENTRY alt_thunk_names1059[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd53223barEv,_ZTv0_n16_N6dd53223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53223barEv,_ZThn16_N6dd53223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee553223barEv,_ZTv0_n16_N7ee553223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee553223barEv,_ZThn24_N7ee553223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee553223barEv,_ZTv0_n20_N7ee553223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee553223barEv,_ZThn8_N7ee553223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55322 = { "ee55322", // class name
+ bases_ee55322, 4,
+ &(vtc_ee55322[0]), // expected_vtbl_contents
+ &(vtt_ee55322[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee55322),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55322),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55322),9, //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 ee65322 : dd5322 {
+ int e;
+ virtual void foo(); // _ZN7ee653223fooEv
+ virtual void bar(); // _ZN7ee653223barEv
+ ~ee65322(); // tgen
+ ee65322(); // tgen
+};
+//SIG(1 ee65322) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65322 ::foo(){vfunc_called(this, "_ZN7ee653223fooEv");}
+void ee65322 ::bar(){vfunc_called(this, "_ZN7ee653223barEv");}
+ee65322 ::~ee65322(){ note_dtor("ee65322", this);} // tgen
+ee65322 ::ee65322(){ note_ctor("ee65322", this);} // tgen
+
+static void Test_ee65322()
+{
+ extern Class_Descriptor cd_ee65322;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee65322, buf);
+ ee65322 *dp, &lv = *(dp=new (buf) ee65322());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee65322)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65322)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee65322");
+ check_base_class_offset(lv, (bb22*)(cc322*), ABISELECT(32,20), "ee65322");
+ check_base_class_offset(lv, (cc322*)(dd5322*), ABISELECT(16,12), "ee65322");
+ check_base_class_offset(lv, (dd5322*), 0, "ee65322");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65322.e");
+ test_class_info(&lv, &cd_ee65322);
+ dp->~ee65322();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65322(Test_ee65322, "ee65322", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee65322C1Ev();
+extern void _ZN7ee65322D1Ev();
+Name_Map name_map_ee65322[] = {
+ NSPAIR(_ZN7ee65322C1Ev),
+ NSPAIR(_ZN7ee65322D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc322;
+extern VTBL_ENTRY _ZTI5cc322[];
+extern VTBL_ENTRY _ZTV5cc322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc322[];
+extern Class_Descriptor cd_dd5322;
+extern VTBL_ENTRY _ZTI6dd5322[];
+extern VTBL_ENTRY _ZTV6dd5322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5322[];
+static Base_Class bases_ee65322[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc322, 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_dd5322, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65322[];
+extern void _ZN7ee653223barEv();
+extern void _ZN7ee653223fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee653223fooEv,_ZTv0_n16_N7ee653223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee653223fooEv,_ZThn12_N7ee653223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee653223fooEv,_ZTv0_n12_N7ee653223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee653223fooEv,_ZThn20_N7ee653223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee653223barEv,_ZTv0_n16_N7ee653223barEv)();
+extern void ABISELECT(_ZThn32_N7ee653223barEv,_ZThn20_N7ee653223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65322[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65322[0]),
+ (VTBL_ENTRY)&_ZN7ee653223barEv,
+ (VTBL_ENTRY)&_ZN7ee653223fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee653223fooEv,_ZTv0_n16_N7ee653223fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee65322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee653223fooEv,_ZTv0_n12_N7ee653223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee653223barEv,_ZTv0_n16_N7ee653223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee65322[];
+extern void _ZN6dd53223barEv();
+static VTBL_ENTRY _tg__ZTV6dd5322__7ee65322[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5322[0]),
+ (VTBL_ENTRY)&_ZN6dd53223barEv,
+};
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc322__6dd5322__7ee65322[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd53223barEv,_ZTv0_n16_N6dd53223barEv)();
+extern void ABISELECT(_ZThn32_N6dd53223barEv,_ZThn20_N6dd53223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd5322__7ee65322[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53223barEv,_ZTv0_n16_N6dd53223barEv),
+};
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc322__7ee65322[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc322__7ee65322[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee65322[] = {
+ {&(_ZTV7ee65322[4]), 4,17},
+ {&(_tg__ZTV6dd5322__7ee65322[4]), 4,5},
+ {&(_tg__ZTV5cc322__6dd5322__7ee65322[4]), 4,5},
+ {&(_tg__ZTV4bb22__6dd5322__7ee65322[4]), 4,6},
+ {&(_ZTV7ee65322[10]), 10,17},
+ {&(_ZTV7ee65322[15]), 15,17},
+ {&(_tg__ZTV5cc322__7ee65322[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc322__7ee65322[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee65322[];
+extern VTBL_ENTRY _ZTV7ee65322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65322[];
+static VTBL_ENTRY alt_thunk_names1060[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd53223barEv,_ZTv0_n16_N6dd53223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53223barEv,_ZThn20_N6dd53223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee653223barEv,_ZTv0_n16_N7ee653223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee653223barEv,_ZThn20_N7ee653223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee653223fooEv,_ZTv0_n12_N7ee653223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee653223fooEv,_ZThn20_N7ee653223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee653223fooEv,_ZTv0_n16_N7ee653223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee653223fooEv,_ZThn12_N7ee653223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65322 = { "ee65322", // class name
+ bases_ee65322, 4,
+ &(vtc_ee65322[0]), // expected_vtbl_contents
+ &(vtt_ee65322[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee65322),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65322),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65322),8, //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 ee75322 : virtual dd5322 {
+ int e;
+ virtual void foo(); // _ZN7ee753223fooEv
+ virtual void bar(); // _ZN7ee753223barEv
+ ~ee75322(); // tgen
+ ee75322(); // tgen
+};
+//SIG(1 ee75322) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75322 ::foo(){vfunc_called(this, "_ZN7ee753223fooEv");}
+void ee75322 ::bar(){vfunc_called(this, "_ZN7ee753223barEv");}
+ee75322 ::~ee75322(){ note_dtor("ee75322", this);} // tgen
+ee75322 ::ee75322(){ note_ctor("ee75322", this);} // tgen
+
+static void Test_ee75322()
+{
+ extern Class_Descriptor cd_ee75322;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee75322, buf);
+ ee75322 *dp, &lv = *(dp=new (buf) ee75322());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee75322)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75322)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(48,24), "ee75322");
+ check_base_class_offset(lv, (bb22*)(cc322*), ABISELECT(48,24), "ee75322");
+ check_base_class_offset(lv, (cc322*)(dd5322*), ABISELECT(32,16), "ee75322");
+ check_base_class_offset(lv, (dd5322*), ABISELECT(16,8), "ee75322");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75322.e");
+ test_class_info(&lv, &cd_ee75322);
+ dp->~ee75322();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75322(Test_ee75322, "ee75322", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee75322C1Ev();
+extern void _ZN7ee75322D1Ev();
+Name_Map name_map_ee75322[] = {
+ NSPAIR(_ZN7ee75322C1Ev),
+ NSPAIR(_ZN7ee75322D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc322;
+extern VTBL_ENTRY _ZTI5cc322[];
+extern VTBL_ENTRY _ZTV5cc322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc322[];
+extern Class_Descriptor cd_dd5322;
+extern VTBL_ENTRY _ZTI6dd5322[];
+extern VTBL_ENTRY _ZTV6dd5322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5322[];
+static Base_Class bases_ee75322[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb22, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc322, 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_dd5322, 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 _ZTI7ee75322[];
+extern void _ZN7ee753223fooEv();
+extern void _ZN7ee753223barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee753223barEv,_ZTv0_n20_N7ee753223barEv)();
+extern void ABISELECT(_ZThn16_N7ee753223barEv,_ZThn8_N7ee753223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee753223fooEv,_ZTv0_n16_N7ee753223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee753223fooEv,_ZThn16_N7ee753223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee753223fooEv,_ZTv0_n12_N7ee753223fooEv)();
+extern void ABISELECT(_ZThn48_N7ee753223fooEv,_ZThn24_N7ee753223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee753223barEv,_ZTv0_n16_N7ee753223barEv)();
+extern void ABISELECT(_ZThn48_N7ee753223barEv,_ZThn24_N7ee753223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75322[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75322[0]),
+ (VTBL_ENTRY)&_ZN7ee753223fooEv,
+ (VTBL_ENTRY)&_ZN7ee753223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee753223barEv,_ZTv0_n20_N7ee753223barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee753223fooEv,_ZTv0_n16_N7ee753223fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee75322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee753223fooEv,_ZTv0_n12_N7ee753223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee753223barEv,_ZTv0_n16_N7ee753223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee75322[];
+extern void _ZN6dd53223barEv();
+static VTBL_ENTRY _tg__ZTV6dd5322__7ee75322[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5322[0]),
+ (VTBL_ENTRY)&_ZN6dd53223barEv,
+};
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc322__6dd5322__7ee75322[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd53223barEv,_ZTv0_n16_N6dd53223barEv)();
+extern void ABISELECT(_ZThn32_N6dd53223barEv,_ZThn16_N6dd53223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd5322__7ee75322[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53223barEv,_ZTv0_n16_N6dd53223barEv),
+};
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc322__7ee75322[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc322__7ee75322[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee75322[] = {
+ {&(_ZTV7ee75322[5]), 5,24},
+ {&(_ZTV7ee75322[12]), 12,24},
+ {&(_ZTV7ee75322[17]), 17,24},
+ {&(_ZTV7ee75322[22]), 22,24},
+ {&(_tg__ZTV6dd5322__7ee75322[4]), 4,5},
+ {&(_tg__ZTV5cc322__6dd5322__7ee75322[4]), 4,5},
+ {&(_tg__ZTV4bb22__6dd5322__7ee75322[4]), 4,6},
+ {&(_tg__ZTV5cc322__7ee75322[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc322__7ee75322[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee75322[];
+extern VTBL_ENTRY _ZTV7ee75322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75322[];
+static VTBL_ENTRY alt_thunk_names1061[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd53223barEv,_ZTv0_n16_N6dd53223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53223barEv,_ZThn16_N6dd53223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee753223barEv,_ZTv0_n16_N7ee753223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee753223barEv,_ZThn24_N7ee753223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee753223fooEv,_ZTv0_n12_N7ee753223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee753223fooEv,_ZThn24_N7ee753223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee753223fooEv,_ZTv0_n16_N7ee753223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee753223fooEv,_ZThn16_N7ee753223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee753223barEv,_ZTv0_n20_N7ee753223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee753223barEv,_ZThn8_N7ee753223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75322 = { "ee75322", // class name
+ bases_ee75322, 4,
+ &(vtc_ee75322[0]), // expected_vtbl_contents
+ &(vtt_ee75322[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee75322),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75322),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75322),9, //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 dd6322 : cc322 {
+ int d;
+ virtual void bar(); // _ZN6dd63223barEv
+ virtual void foo(); // _ZN6dd63223fooEv
+ ~dd6322(); // tgen
+ dd6322(); // tgen
+};
+//SIG(-1 dd6322) C1{ BC2{ VBC3{ BC4{ v2 v1 Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void dd6322 ::bar(){vfunc_called(this, "_ZN6dd63223barEv");}
+void dd6322 ::foo(){vfunc_called(this, "_ZN6dd63223fooEv");}
+dd6322 ::~dd6322(){ note_dtor("dd6322", this);} // tgen
+dd6322 ::dd6322(){ note_ctor("dd6322", this);} // tgen
+
+static void Test_dd6322()
+{
+ extern Class_Descriptor cd_dd6322;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd6322, buf);
+ dd6322 *dp, &lv = *(dp=new (buf) dd6322());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd6322)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6322)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(16,12), "dd6322");
+ check_base_class_offset(lv, (bb22*)(cc322*), ABISELECT(16,12), "dd6322");
+ check_base_class_offset(lv, (cc322*), 0, "dd6322");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd6322.d");
+ test_class_info(&lv, &cd_dd6322);
+ dp->~dd6322();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6322(Test_dd6322, "dd6322", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd6322C1Ev();
+extern void _ZN6dd6322D1Ev();
+Name_Map name_map_dd6322[] = {
+ NSPAIR(_ZN6dd6322C1Ev),
+ NSPAIR(_ZN6dd6322D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc322;
+extern VTBL_ENTRY _ZTI5cc322[];
+extern VTBL_ENTRY _ZTV5cc322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc322[];
+static Base_Class bases_dd6322[] = {
+ // 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_bb22, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc322, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd6322[];
+extern void _ZN6dd63223fooEv();
+extern void _ZN6dd63223barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd63223fooEv,_ZTv0_n12_N6dd63223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd63223fooEv,_ZThn12_N6dd63223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd63223barEv,_ZTv0_n16_N6dd63223barEv)();
+extern void ABISELECT(_ZThn16_N6dd63223barEv,_ZThn12_N6dd63223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd6322[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6322[0]),
+ (VTBL_ENTRY)&_ZN6dd63223fooEv,
+ (VTBL_ENTRY)&_ZN6dd63223barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63223fooEv,_ZTv0_n12_N6dd63223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63223barEv,_ZTv0_n16_N6dd63223barEv),
+};
+extern VTBL_ENTRY _ZTV6dd6322[];
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc322__6dd6322[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn12_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc322__6dd6322[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_dd6322[] = {
+ {&(_ZTV6dd6322[3]), 3,11},
+ {&(_tg__ZTV5cc322__6dd6322[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc322__6dd6322[4]), 4,6},
+ {&(_ZTV6dd6322[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd6322[];
+extern VTBL_ENTRY _ZTV6dd6322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6322[];
+static VTBL_ENTRY alt_thunk_names1062[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn12_N5cc3223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd63223barEv,_ZTv0_n16_N6dd63223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63223barEv,_ZThn12_N6dd63223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63223fooEv,_ZTv0_n12_N6dd63223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63223fooEv,_ZThn12_N6dd63223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd6322 = { "dd6322", // class name
+ bases_dd6322, 3,
+ &(vtc_dd6322[0]), // expected_vtbl_contents
+ &(vtt_dd6322[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd6322),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6322),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd6322),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1062,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee06322 : dd6322 {
+ int e;
+ ~ee06322(); // tgen
+ ee06322(); // tgen
+};
+//SIG(1 ee06322) C1{ BC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee06322 ::~ee06322(){ note_dtor("ee06322", this);} // tgen
+ee06322 ::ee06322(){ note_ctor("ee06322", this);} // tgen
+
+static void Test_ee06322()
+{
+ extern Class_Descriptor cd_ee06322;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee06322, buf);
+ ee06322 *dp, &lv = *(dp=new (buf) ee06322());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee06322)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06322)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(24,16), "ee06322");
+ check_base_class_offset(lv, (bb22*)(cc322*)(dd6322*), ABISELECT(24,16), "ee06322");
+ check_base_class_offset(lv, (cc322*)(dd6322*), 0, "ee06322");
+ check_base_class_offset(lv, (dd6322*), 0, "ee06322");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee06322.e");
+ test_class_info(&lv, &cd_ee06322);
+ dp->~ee06322();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06322(Test_ee06322, "ee06322", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee06322C1Ev();
+extern void _ZN7ee06322D1Ev();
+Name_Map name_map_ee06322[] = {
+ NSPAIR(_ZN7ee06322C1Ev),
+ NSPAIR(_ZN7ee06322D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc322;
+extern VTBL_ENTRY _ZTI5cc322[];
+extern VTBL_ENTRY _ZTV5cc322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc322[];
+extern Class_Descriptor cd_dd6322;
+extern VTBL_ENTRY _ZTI6dd6322[];
+extern VTBL_ENTRY _ZTV6dd6322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6322[];
+static Base_Class bases_ee06322[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc322, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6322, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee06322[];
+extern void _ZN6dd63223fooEv();
+extern void _ZN6dd63223barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd63223fooEv,_ZTv0_n12_N6dd63223fooEv)();
+extern void ABISELECT(_ZThn24_N6dd63223fooEv,_ZThn16_N6dd63223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd63223barEv,_ZTv0_n16_N6dd63223barEv)();
+extern void ABISELECT(_ZThn24_N6dd63223barEv,_ZThn16_N6dd63223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee06322[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06322[0]),
+ (VTBL_ENTRY)&_ZN6dd63223fooEv,
+ (VTBL_ENTRY)&_ZN6dd63223barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee06322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63223fooEv,_ZTv0_n12_N6dd63223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63223barEv,_ZTv0_n16_N6dd63223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee06322[];
+extern void _ZN6dd63223fooEv();
+extern void _ZN6dd63223barEv();
+static VTBL_ENTRY _tg__ZTV6dd6322__7ee06322[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6322[0]),
+ (VTBL_ENTRY)&_ZN6dd63223fooEv,
+ (VTBL_ENTRY)&_ZN6dd63223barEv,
+};
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3226dd6322__7ee06322[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3223fooEv,_ZThn16_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc3226dd6322__7ee06322[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd63223fooEv,_ZTv0_n12_N6dd63223fooEv)();
+extern void ABISELECT(_ZThn24_N6dd63223fooEv,_ZThn16_N6dd63223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd63223barEv,_ZTv0_n16_N6dd63223barEv)();
+extern void ABISELECT(_ZThn24_N6dd63223barEv,_ZThn16_N6dd63223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd6322__7ee06322[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63223fooEv,_ZTv0_n12_N6dd63223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63223barEv,_ZTv0_n16_N6dd63223barEv),
+};
+static VTT_ENTRY vtt_ee06322[] = {
+ {&(_ZTV7ee06322[3]), 3,11},
+ {&(_tg__ZTV6dd6322__7ee06322[3]), 3,5},
+ {&(_tg__ZTV5cc3226dd6322__7ee06322[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc3226dd6322__7ee06322[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd6322__7ee06322[4]), 4,6},
+ {&(_ZTV7ee06322[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee06322[];
+extern VTBL_ENTRY _ZTV7ee06322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee06322[];
+static VTBL_ENTRY alt_thunk_names1063[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3223fooEv,_ZThn16_N5cc3223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd63223barEv,_ZTv0_n16_N6dd63223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63223barEv,_ZThn16_N6dd63223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63223barEv,_ZThn16_N6dd63223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63223fooEv,_ZTv0_n12_N6dd63223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63223fooEv,_ZThn16_N6dd63223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63223fooEv,_ZThn16_N6dd63223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee06322 = { "ee06322", // class name
+ bases_ee06322, 4,
+ &(vtc_ee06322[0]), // expected_vtbl_contents
+ &(vtt_ee06322[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee06322),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06322),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee06322),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1063,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee16322 : virtual dd6322 {
+ int e;
+ ~ee16322(); // tgen
+ ee16322(); // tgen
+};
+//SIG(1 ee16322) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee16322 ::~ee16322(){ note_dtor("ee16322", this);} // tgen
+ee16322 ::ee16322(){ note_ctor("ee16322", this);} // tgen
+
+static void Test_ee16322()
+{
+ extern Class_Descriptor cd_ee16322;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee16322, buf);
+ ee16322 *dp, &lv = *(dp=new (buf) ee16322());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee16322)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16322)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee16322");
+ check_base_class_offset(lv, (bb22*)(cc322*)(dd6322*), ABISELECT(32,20), "ee16322");
+ check_base_class_offset(lv, (cc322*)(dd6322*), ABISELECT(16,8), "ee16322");
+ check_base_class_offset(lv, (dd6322*), ABISELECT(16,8), "ee16322");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16322.e");
+ test_class_info(&lv, &cd_ee16322);
+ dp->~ee16322();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16322(Test_ee16322, "ee16322", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee16322C1Ev();
+extern void _ZN7ee16322D1Ev();
+Name_Map name_map_ee16322[] = {
+ NSPAIR(_ZN7ee16322C1Ev),
+ NSPAIR(_ZN7ee16322D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc322;
+extern VTBL_ENTRY _ZTI5cc322[];
+extern VTBL_ENTRY _ZTV5cc322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc322[];
+extern Class_Descriptor cd_dd6322;
+extern VTBL_ENTRY _ZTI6dd6322[];
+extern VTBL_ENTRY _ZTV6dd6322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6322[];
+static Base_Class bases_ee16322[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc322, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6322, 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 _ZTI7ee16322[];
+extern void _ZN6dd63223fooEv();
+extern void _ZN6dd63223barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd63223fooEv,_ZTv0_n12_N6dd63223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd63223fooEv,_ZThn12_N6dd63223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd63223barEv,_ZTv0_n16_N6dd63223barEv)();
+extern void ABISELECT(_ZThn16_N6dd63223barEv,_ZThn12_N6dd63223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee16322[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16322[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16322[0]),
+ (VTBL_ENTRY)&_ZN6dd63223fooEv,
+ (VTBL_ENTRY)&_ZN6dd63223barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee16322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63223fooEv,_ZTv0_n12_N6dd63223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63223barEv,_ZTv0_n16_N6dd63223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee16322[];
+extern void _ZN6dd63223fooEv();
+extern void _ZN6dd63223barEv();
+static VTBL_ENTRY _tg__ZTV6dd6322__7ee16322[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6322[0]),
+ (VTBL_ENTRY)&_ZN6dd63223fooEv,
+ (VTBL_ENTRY)&_ZN6dd63223barEv,
+};
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3226dd6322__7ee16322[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn12_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc3226dd6322__7ee16322[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd63223fooEv,_ZTv0_n12_N6dd63223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd63223fooEv,_ZThn12_N6dd63223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd63223barEv,_ZTv0_n16_N6dd63223barEv)();
+extern void ABISELECT(_ZThn16_N6dd63223barEv,_ZThn12_N6dd63223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd6322__7ee16322[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63223fooEv,_ZTv0_n12_N6dd63223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63223barEv,_ZTv0_n16_N6dd63223barEv),
+};
+static VTT_ENTRY vtt_ee16322[] = {
+ {&(_ZTV7ee16322[4]), 4,17},
+ {&(_ZTV7ee16322[9]), 9,17},
+ {&(_ZTV7ee16322[15]), 15,17},
+ {&(_tg__ZTV6dd6322__7ee16322[3]), 3,5},
+ {&(_tg__ZTV5cc3226dd6322__7ee16322[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc3226dd6322__7ee16322[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd6322__7ee16322[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee16322[];
+extern VTBL_ENTRY _ZTV7ee16322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16322[];
+static VTBL_ENTRY alt_thunk_names1064[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn12_N5cc3223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd63223barEv,_ZTv0_n16_N6dd63223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63223barEv,_ZThn12_N6dd63223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63223barEv,_ZThn12_N6dd63223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63223fooEv,_ZTv0_n12_N6dd63223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63223fooEv,_ZThn12_N6dd63223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63223fooEv,_ZThn12_N6dd63223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee16322 = { "ee16322", // class name
+ bases_ee16322, 4,
+ &(vtc_ee16322[0]), // expected_vtbl_contents
+ &(vtt_ee16322[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee16322),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16322),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16322),7, //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 ee26322 : dd6322 {
+ int e;
+ virtual void foo(); // _ZN7ee263223fooEv
+ ~ee26322(); // tgen
+ ee26322(); // tgen
+};
+//SIG(1 ee26322) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26322 ::foo(){vfunc_called(this, "_ZN7ee263223fooEv");}
+ee26322 ::~ee26322(){ note_dtor("ee26322", this);} // tgen
+ee26322 ::ee26322(){ note_ctor("ee26322", this);} // tgen
+
+static void Test_ee26322()
+{
+ extern Class_Descriptor cd_ee26322;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee26322, buf);
+ ee26322 *dp, &lv = *(dp=new (buf) ee26322());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee26322)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26322)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(24,16), "ee26322");
+ check_base_class_offset(lv, (bb22*)(cc322*)(dd6322*), ABISELECT(24,16), "ee26322");
+ check_base_class_offset(lv, (cc322*)(dd6322*), 0, "ee26322");
+ check_base_class_offset(lv, (dd6322*), 0, "ee26322");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee26322.e");
+ test_class_info(&lv, &cd_ee26322);
+ dp->~ee26322();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26322(Test_ee26322, "ee26322", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee26322C1Ev();
+extern void _ZN7ee26322D1Ev();
+Name_Map name_map_ee26322[] = {
+ NSPAIR(_ZN7ee26322C1Ev),
+ NSPAIR(_ZN7ee26322D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc322;
+extern VTBL_ENTRY _ZTI5cc322[];
+extern VTBL_ENTRY _ZTV5cc322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc322[];
+extern Class_Descriptor cd_dd6322;
+extern VTBL_ENTRY _ZTI6dd6322[];
+extern VTBL_ENTRY _ZTV6dd6322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6322[];
+static Base_Class bases_ee26322[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc322, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6322, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee26322[];
+extern void _ZN7ee263223fooEv();
+extern void _ZN6dd63223barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee263223fooEv,_ZTv0_n12_N7ee263223fooEv)();
+extern void ABISELECT(_ZThn24_N7ee263223fooEv,_ZThn16_N7ee263223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd63223barEv,_ZTv0_n16_N6dd63223barEv)();
+extern void ABISELECT(_ZThn24_N6dd63223barEv,_ZThn16_N6dd63223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee26322[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26322[0]),
+ (VTBL_ENTRY)&_ZN7ee263223fooEv,
+ (VTBL_ENTRY)&_ZN6dd63223barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee26322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee263223fooEv,_ZTv0_n12_N7ee263223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63223barEv,_ZTv0_n16_N6dd63223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee26322[];
+extern void _ZN6dd63223fooEv();
+extern void _ZN6dd63223barEv();
+static VTBL_ENTRY _tg__ZTV6dd6322__7ee26322[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6322[0]),
+ (VTBL_ENTRY)&_ZN6dd63223fooEv,
+ (VTBL_ENTRY)&_ZN6dd63223barEv,
+};
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3226dd6322__7ee26322[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3223fooEv,_ZThn16_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc3226dd6322__7ee26322[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd63223fooEv,_ZTv0_n12_N6dd63223fooEv)();
+extern void ABISELECT(_ZThn24_N6dd63223fooEv,_ZThn16_N6dd63223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd63223barEv,_ZTv0_n16_N6dd63223barEv)();
+extern void ABISELECT(_ZThn24_N6dd63223barEv,_ZThn16_N6dd63223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd6322__7ee26322[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63223fooEv,_ZTv0_n12_N6dd63223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63223barEv,_ZTv0_n16_N6dd63223barEv),
+};
+static VTT_ENTRY vtt_ee26322[] = {
+ {&(_ZTV7ee26322[3]), 3,11},
+ {&(_tg__ZTV6dd6322__7ee26322[3]), 3,5},
+ {&(_tg__ZTV5cc3226dd6322__7ee26322[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc3226dd6322__7ee26322[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd6322__7ee26322[4]), 4,6},
+ {&(_ZTV7ee26322[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee26322[];
+extern VTBL_ENTRY _ZTV7ee26322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee26322[];
+static VTBL_ENTRY alt_thunk_names1065[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63223fooEv,_ZTv0_n12_N6dd63223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63223fooEv,_ZThn16_N6dd63223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3223fooEv,_ZThn16_N5cc3223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd63223barEv,_ZTv0_n16_N6dd63223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63223barEv,_ZThn16_N6dd63223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63223barEv,_ZThn16_N6dd63223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee263223fooEv,_ZTv0_n12_N7ee263223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee263223fooEv,_ZThn16_N7ee263223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee26322 = { "ee26322", // class name
+ bases_ee26322, 4,
+ &(vtc_ee26322[0]), // expected_vtbl_contents
+ &(vtt_ee26322[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee26322),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26322),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee26322),6, //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 ee36322 : virtual dd6322 {
+ int e;
+ virtual void foo(); // _ZN7ee363223fooEv
+ ~ee36322(); // tgen
+ ee36322(); // tgen
+};
+//SIG(1 ee36322) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36322 ::foo(){vfunc_called(this, "_ZN7ee363223fooEv");}
+ee36322 ::~ee36322(){ note_dtor("ee36322", this);} // tgen
+ee36322 ::ee36322(){ note_ctor("ee36322", this);} // tgen
+
+static void Test_ee36322()
+{
+ extern Class_Descriptor cd_ee36322;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee36322, buf);
+ ee36322 *dp, &lv = *(dp=new (buf) ee36322());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee36322)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36322)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee36322");
+ check_base_class_offset(lv, (bb22*)(cc322*)(dd6322*), ABISELECT(32,20), "ee36322");
+ check_base_class_offset(lv, (cc322*)(dd6322*), ABISELECT(16,8), "ee36322");
+ check_base_class_offset(lv, (dd6322*), ABISELECT(16,8), "ee36322");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36322.e");
+ test_class_info(&lv, &cd_ee36322);
+ dp->~ee36322();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36322(Test_ee36322, "ee36322", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee36322C1Ev();
+extern void _ZN7ee36322D1Ev();
+Name_Map name_map_ee36322[] = {
+ NSPAIR(_ZN7ee36322C1Ev),
+ NSPAIR(_ZN7ee36322D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc322;
+extern VTBL_ENTRY _ZTI5cc322[];
+extern VTBL_ENTRY _ZTV5cc322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc322[];
+extern Class_Descriptor cd_dd6322;
+extern VTBL_ENTRY _ZTI6dd6322[];
+extern VTBL_ENTRY _ZTV6dd6322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6322[];
+static Base_Class bases_ee36322[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc322, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6322, 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 _ZTI7ee36322[];
+extern void _ZN7ee363223fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee363223fooEv,_ZTv0_n16_N7ee363223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee363223fooEv,_ZThn8_N7ee363223fooEv)() __attribute__((weak));
+extern void _ZN6dd63223barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee363223fooEv,_ZTv0_n12_N7ee363223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee363223fooEv,_ZThn20_N7ee363223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd63223barEv,_ZTv0_n16_N6dd63223barEv)();
+extern void ABISELECT(_ZThn16_N6dd63223barEv,_ZThn12_N6dd63223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee36322[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36322[0]),
+ (VTBL_ENTRY)&_ZN7ee363223fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee363223fooEv,_ZTv0_n16_N7ee363223fooEv),
+ (VTBL_ENTRY)&_ZN6dd63223barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee36322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee363223fooEv,_ZTv0_n12_N7ee363223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63223barEv,_ZTv0_n16_N6dd63223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee36322[];
+extern void _ZN6dd63223fooEv();
+extern void _ZN6dd63223barEv();
+static VTBL_ENTRY _tg__ZTV6dd6322__7ee36322[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6322[0]),
+ (VTBL_ENTRY)&_ZN6dd63223fooEv,
+ (VTBL_ENTRY)&_ZN6dd63223barEv,
+};
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3226dd6322__7ee36322[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn12_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc3226dd6322__7ee36322[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd63223fooEv,_ZTv0_n12_N6dd63223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd63223fooEv,_ZThn12_N6dd63223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd63223barEv,_ZTv0_n16_N6dd63223barEv)();
+extern void ABISELECT(_ZThn16_N6dd63223barEv,_ZThn12_N6dd63223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd6322__7ee36322[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63223fooEv,_ZTv0_n12_N6dd63223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63223barEv,_ZTv0_n16_N6dd63223barEv),
+};
+static VTT_ENTRY vtt_ee36322[] = {
+ {&(_ZTV7ee36322[4]), 4,18},
+ {&(_ZTV7ee36322[10]), 10,18},
+ {&(_ZTV7ee36322[16]), 16,18},
+ {&(_tg__ZTV6dd6322__7ee36322[3]), 3,5},
+ {&(_tg__ZTV5cc3226dd6322__7ee36322[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc3226dd6322__7ee36322[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd6322__7ee36322[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee36322[];
+extern VTBL_ENTRY _ZTV7ee36322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36322[];
+static VTBL_ENTRY alt_thunk_names1066[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63223fooEv,_ZTv0_n12_N6dd63223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63223fooEv,_ZThn12_N6dd63223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn12_N5cc3223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd63223barEv,_ZTv0_n16_N6dd63223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63223barEv,_ZThn12_N6dd63223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63223barEv,_ZThn12_N6dd63223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee363223fooEv,_ZTv0_n12_N7ee363223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee363223fooEv,_ZThn20_N7ee363223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee363223fooEv,_ZTv0_n16_N7ee363223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee363223fooEv,_ZThn8_N7ee363223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36322 = { "ee36322", // class name
+ bases_ee36322, 4,
+ &(vtc_ee36322[0]), // expected_vtbl_contents
+ &(vtt_ee36322[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee36322),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36322),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36322),7, //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 ee46322 : dd6322 {
+ int e;
+ virtual void bar(); // _ZN7ee463223barEv
+ ~ee46322(); // tgen
+ ee46322(); // tgen
+};
+//SIG(1 ee46322) C1{ BC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46322 ::bar(){vfunc_called(this, "_ZN7ee463223barEv");}
+ee46322 ::~ee46322(){ note_dtor("ee46322", this);} // tgen
+ee46322 ::ee46322(){ note_ctor("ee46322", this);} // tgen
+
+static void Test_ee46322()
+{
+ extern Class_Descriptor cd_ee46322;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee46322, buf);
+ ee46322 *dp, &lv = *(dp=new (buf) ee46322());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee46322)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46322)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(24,16), "ee46322");
+ check_base_class_offset(lv, (bb22*)(cc322*)(dd6322*), ABISELECT(24,16), "ee46322");
+ check_base_class_offset(lv, (cc322*)(dd6322*), 0, "ee46322");
+ check_base_class_offset(lv, (dd6322*), 0, "ee46322");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee46322.e");
+ test_class_info(&lv, &cd_ee46322);
+ dp->~ee46322();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46322(Test_ee46322, "ee46322", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee46322C1Ev();
+extern void _ZN7ee46322D1Ev();
+Name_Map name_map_ee46322[] = {
+ NSPAIR(_ZN7ee46322C1Ev),
+ NSPAIR(_ZN7ee46322D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc322;
+extern VTBL_ENTRY _ZTI5cc322[];
+extern VTBL_ENTRY _ZTV5cc322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc322[];
+extern Class_Descriptor cd_dd6322;
+extern VTBL_ENTRY _ZTI6dd6322[];
+extern VTBL_ENTRY _ZTV6dd6322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6322[];
+static Base_Class bases_ee46322[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc322, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6322, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee46322[];
+extern void _ZN6dd63223fooEv();
+extern void _ZN7ee463223barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd63223fooEv,_ZTv0_n12_N6dd63223fooEv)();
+extern void ABISELECT(_ZThn24_N6dd63223fooEv,_ZThn16_N6dd63223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee463223barEv,_ZTv0_n16_N7ee463223barEv)();
+extern void ABISELECT(_ZThn24_N7ee463223barEv,_ZThn16_N7ee463223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee46322[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46322[0]),
+ (VTBL_ENTRY)&_ZN6dd63223fooEv,
+ (VTBL_ENTRY)&_ZN7ee463223barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee46322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63223fooEv,_ZTv0_n12_N6dd63223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee463223barEv,_ZTv0_n16_N7ee463223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee46322[];
+extern void _ZN6dd63223fooEv();
+extern void _ZN6dd63223barEv();
+static VTBL_ENTRY _tg__ZTV6dd6322__7ee46322[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6322[0]),
+ (VTBL_ENTRY)&_ZN6dd63223fooEv,
+ (VTBL_ENTRY)&_ZN6dd63223barEv,
+};
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3226dd6322__7ee46322[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3223fooEv,_ZThn16_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc3226dd6322__7ee46322[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd63223fooEv,_ZTv0_n12_N6dd63223fooEv)();
+extern void ABISELECT(_ZThn24_N6dd63223fooEv,_ZThn16_N6dd63223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd63223barEv,_ZTv0_n16_N6dd63223barEv)();
+extern void ABISELECT(_ZThn24_N6dd63223barEv,_ZThn16_N6dd63223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd6322__7ee46322[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63223fooEv,_ZTv0_n12_N6dd63223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63223barEv,_ZTv0_n16_N6dd63223barEv),
+};
+static VTT_ENTRY vtt_ee46322[] = {
+ {&(_ZTV7ee46322[3]), 3,11},
+ {&(_tg__ZTV6dd6322__7ee46322[3]), 3,5},
+ {&(_tg__ZTV5cc3226dd6322__7ee46322[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc3226dd6322__7ee46322[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd6322__7ee46322[4]), 4,6},
+ {&(_ZTV7ee46322[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee46322[];
+extern VTBL_ENTRY _ZTV7ee46322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee46322[];
+static VTBL_ENTRY alt_thunk_names1067[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd63223barEv,_ZTv0_n16_N6dd63223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63223barEv,_ZThn16_N6dd63223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3223fooEv,_ZThn16_N5cc3223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee463223barEv,_ZTv0_n16_N7ee463223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee463223barEv,_ZThn16_N7ee463223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63223fooEv,_ZTv0_n12_N6dd63223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63223fooEv,_ZThn16_N6dd63223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63223fooEv,_ZThn16_N6dd63223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee46322 = { "ee46322", // class name
+ bases_ee46322, 4,
+ &(vtc_ee46322[0]), // expected_vtbl_contents
+ &(vtt_ee46322[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee46322),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46322),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee46322),6, //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 ee56322 : virtual dd6322 {
+ int e;
+ virtual void bar(); // _ZN7ee563223barEv
+ ~ee56322(); // tgen
+ ee56322(); // tgen
+};
+//SIG(1 ee56322) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56322 ::bar(){vfunc_called(this, "_ZN7ee563223barEv");}
+ee56322 ::~ee56322(){ note_dtor("ee56322", this);} // tgen
+ee56322 ::ee56322(){ note_ctor("ee56322", this);} // tgen
+
+static void Test_ee56322()
+{
+ extern Class_Descriptor cd_ee56322;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee56322, buf);
+ ee56322 *dp, &lv = *(dp=new (buf) ee56322());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee56322)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56322)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee56322");
+ check_base_class_offset(lv, (bb22*)(cc322*)(dd6322*), ABISELECT(32,20), "ee56322");
+ check_base_class_offset(lv, (cc322*)(dd6322*), ABISELECT(16,8), "ee56322");
+ check_base_class_offset(lv, (dd6322*), ABISELECT(16,8), "ee56322");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56322.e");
+ test_class_info(&lv, &cd_ee56322);
+ dp->~ee56322();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56322(Test_ee56322, "ee56322", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee56322C1Ev();
+extern void _ZN7ee56322D1Ev();
+Name_Map name_map_ee56322[] = {
+ NSPAIR(_ZN7ee56322C1Ev),
+ NSPAIR(_ZN7ee56322D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc322;
+extern VTBL_ENTRY _ZTI5cc322[];
+extern VTBL_ENTRY _ZTV5cc322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc322[];
+extern Class_Descriptor cd_dd6322;
+extern VTBL_ENTRY _ZTI6dd6322[];
+extern VTBL_ENTRY _ZTV6dd6322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6322[];
+static Base_Class bases_ee56322[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc322, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6322, 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 _ZTI7ee56322[];
+extern void _ZN7ee563223barEv();
+extern void _ZN6dd63223fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee563223barEv,_ZTv0_n20_N7ee563223barEv)();
+extern void ABISELECT(_ZThn16_N7ee563223barEv,_ZThn8_N7ee563223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd63223fooEv,_ZTv0_n12_N6dd63223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd63223fooEv,_ZThn12_N6dd63223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee563223barEv,_ZTv0_n16_N7ee563223barEv)();
+extern void ABISELECT(_ZThn32_N7ee563223barEv,_ZThn20_N7ee563223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56322[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56322[0]),
+ (VTBL_ENTRY)&_ZN7ee563223barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56322[0]),
+ (VTBL_ENTRY)&_ZN6dd63223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee563223barEv,_ZTv0_n20_N7ee563223barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee56322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63223fooEv,_ZTv0_n12_N6dd63223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee563223barEv,_ZTv0_n16_N7ee563223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee56322[];
+extern void _ZN6dd63223fooEv();
+extern void _ZN6dd63223barEv();
+static VTBL_ENTRY _tg__ZTV6dd6322__7ee56322[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6322[0]),
+ (VTBL_ENTRY)&_ZN6dd63223fooEv,
+ (VTBL_ENTRY)&_ZN6dd63223barEv,
+};
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3226dd6322__7ee56322[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn12_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc3226dd6322__7ee56322[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd63223fooEv,_ZTv0_n12_N6dd63223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd63223fooEv,_ZThn12_N6dd63223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd63223barEv,_ZTv0_n16_N6dd63223barEv)();
+extern void ABISELECT(_ZThn16_N6dd63223barEv,_ZThn12_N6dd63223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd6322__7ee56322[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63223fooEv,_ZTv0_n12_N6dd63223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63223barEv,_ZTv0_n16_N6dd63223barEv),
+};
+static VTT_ENTRY vtt_ee56322[] = {
+ {&(_ZTV7ee56322[4]), 4,18},
+ {&(_ZTV7ee56322[10]), 10,18},
+ {&(_ZTV7ee56322[16]), 16,18},
+ {&(_tg__ZTV6dd6322__7ee56322[3]), 3,5},
+ {&(_tg__ZTV5cc3226dd6322__7ee56322[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc3226dd6322__7ee56322[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd6322__7ee56322[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee56322[];
+extern VTBL_ENTRY _ZTV7ee56322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56322[];
+static VTBL_ENTRY alt_thunk_names1068[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd63223barEv,_ZTv0_n16_N6dd63223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63223barEv,_ZThn12_N6dd63223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn12_N5cc3223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee563223barEv,_ZTv0_n16_N7ee563223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee563223barEv,_ZThn20_N7ee563223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63223fooEv,_ZTv0_n12_N6dd63223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63223fooEv,_ZThn12_N6dd63223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63223fooEv,_ZThn12_N6dd63223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee563223barEv,_ZTv0_n20_N7ee563223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee563223barEv,_ZThn8_N7ee563223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56322 = { "ee56322", // class name
+ bases_ee56322, 4,
+ &(vtc_ee56322[0]), // expected_vtbl_contents
+ &(vtt_ee56322[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee56322),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56322),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56322),7, //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 ee66322 : dd6322 {
+ int e;
+ virtual void foo(); // _ZN7ee663223fooEv
+ virtual void bar(); // _ZN7ee663223barEv
+ ~ee66322(); // tgen
+ ee66322(); // tgen
+};
+//SIG(1 ee66322) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66322 ::foo(){vfunc_called(this, "_ZN7ee663223fooEv");}
+void ee66322 ::bar(){vfunc_called(this, "_ZN7ee663223barEv");}
+ee66322 ::~ee66322(){ note_dtor("ee66322", this);} // tgen
+ee66322 ::ee66322(){ note_ctor("ee66322", this);} // tgen
+
+static void Test_ee66322()
+{
+ extern Class_Descriptor cd_ee66322;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee66322, buf);
+ ee66322 *dp, &lv = *(dp=new (buf) ee66322());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee66322)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66322)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(24,16), "ee66322");
+ check_base_class_offset(lv, (bb22*)(cc322*)(dd6322*), ABISELECT(24,16), "ee66322");
+ check_base_class_offset(lv, (cc322*)(dd6322*), 0, "ee66322");
+ check_base_class_offset(lv, (dd6322*), 0, "ee66322");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee66322.e");
+ test_class_info(&lv, &cd_ee66322);
+ dp->~ee66322();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66322(Test_ee66322, "ee66322", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee66322C1Ev();
+extern void _ZN7ee66322D1Ev();
+Name_Map name_map_ee66322[] = {
+ NSPAIR(_ZN7ee66322C1Ev),
+ NSPAIR(_ZN7ee66322D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc322;
+extern VTBL_ENTRY _ZTI5cc322[];
+extern VTBL_ENTRY _ZTV5cc322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc322[];
+extern Class_Descriptor cd_dd6322;
+extern VTBL_ENTRY _ZTI6dd6322[];
+extern VTBL_ENTRY _ZTV6dd6322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6322[];
+static Base_Class bases_ee66322[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc322, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6322, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee66322[];
+extern void _ZN7ee663223fooEv();
+extern void _ZN7ee663223barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee663223fooEv,_ZTv0_n12_N7ee663223fooEv)();
+extern void ABISELECT(_ZThn24_N7ee663223fooEv,_ZThn16_N7ee663223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee663223barEv,_ZTv0_n16_N7ee663223barEv)();
+extern void ABISELECT(_ZThn24_N7ee663223barEv,_ZThn16_N7ee663223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee66322[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66322[0]),
+ (VTBL_ENTRY)&_ZN7ee663223fooEv,
+ (VTBL_ENTRY)&_ZN7ee663223barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee66322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee663223fooEv,_ZTv0_n12_N7ee663223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee663223barEv,_ZTv0_n16_N7ee663223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee66322[];
+extern void _ZN6dd63223fooEv();
+extern void _ZN6dd63223barEv();
+static VTBL_ENTRY _tg__ZTV6dd6322__7ee66322[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6322[0]),
+ (VTBL_ENTRY)&_ZN6dd63223fooEv,
+ (VTBL_ENTRY)&_ZN6dd63223barEv,
+};
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3226dd6322__7ee66322[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3223fooEv,_ZThn16_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc3226dd6322__7ee66322[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd63223fooEv,_ZTv0_n12_N6dd63223fooEv)();
+extern void ABISELECT(_ZThn24_N6dd63223fooEv,_ZThn16_N6dd63223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd63223barEv,_ZTv0_n16_N6dd63223barEv)();
+extern void ABISELECT(_ZThn24_N6dd63223barEv,_ZThn16_N6dd63223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd6322__7ee66322[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63223fooEv,_ZTv0_n12_N6dd63223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63223barEv,_ZTv0_n16_N6dd63223barEv),
+};
+static VTT_ENTRY vtt_ee66322[] = {
+ {&(_ZTV7ee66322[3]), 3,11},
+ {&(_tg__ZTV6dd6322__7ee66322[3]), 3,5},
+ {&(_tg__ZTV5cc3226dd6322__7ee66322[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc3226dd6322__7ee66322[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd6322__7ee66322[4]), 4,6},
+ {&(_ZTV7ee66322[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee66322[];
+extern VTBL_ENTRY _ZTV7ee66322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee66322[];
+static VTBL_ENTRY alt_thunk_names1069[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd63223barEv,_ZTv0_n16_N6dd63223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63223barEv,_ZThn16_N6dd63223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63223fooEv,_ZTv0_n12_N6dd63223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63223fooEv,_ZThn16_N6dd63223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3223fooEv,_ZThn16_N5cc3223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee663223barEv,_ZTv0_n16_N7ee663223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee663223barEv,_ZThn16_N7ee663223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee663223fooEv,_ZTv0_n12_N7ee663223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee663223fooEv,_ZThn16_N7ee663223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee66322 = { "ee66322", // class name
+ bases_ee66322, 4,
+ &(vtc_ee66322[0]), // expected_vtbl_contents
+ &(vtt_ee66322[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee66322),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66322),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee66322),6, //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 ee76322 : virtual dd6322 {
+ int e;
+ virtual void foo(); // _ZN7ee763223fooEv
+ virtual void bar(); // _ZN7ee763223barEv
+ ~ee76322(); // tgen
+ ee76322(); // tgen
+};
+//SIG(1 ee76322) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76322 ::foo(){vfunc_called(this, "_ZN7ee763223fooEv");}
+void ee76322 ::bar(){vfunc_called(this, "_ZN7ee763223barEv");}
+ee76322 ::~ee76322(){ note_dtor("ee76322", this);} // tgen
+ee76322 ::ee76322(){ note_ctor("ee76322", this);} // tgen
+
+static void Test_ee76322()
+{
+ extern Class_Descriptor cd_ee76322;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee76322, buf);
+ ee76322 *dp, &lv = *(dp=new (buf) ee76322());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee76322)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76322)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee76322");
+ check_base_class_offset(lv, (bb22*)(cc322*)(dd6322*), ABISELECT(32,20), "ee76322");
+ check_base_class_offset(lv, (cc322*)(dd6322*), ABISELECT(16,8), "ee76322");
+ check_base_class_offset(lv, (dd6322*), ABISELECT(16,8), "ee76322");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76322.e");
+ test_class_info(&lv, &cd_ee76322);
+ dp->~ee76322();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76322(Test_ee76322, "ee76322", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee76322C1Ev();
+extern void _ZN7ee76322D1Ev();
+Name_Map name_map_ee76322[] = {
+ NSPAIR(_ZN7ee76322C1Ev),
+ NSPAIR(_ZN7ee76322D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc322;
+extern VTBL_ENTRY _ZTI5cc322[];
+extern VTBL_ENTRY _ZTV5cc322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc322[];
+extern Class_Descriptor cd_dd6322;
+extern VTBL_ENTRY _ZTI6dd6322[];
+extern VTBL_ENTRY _ZTV6dd6322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6322[];
+static Base_Class bases_ee76322[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc322, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6322, ABISELECT(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 _ZTI7ee76322[];
+extern void _ZN7ee763223fooEv();
+extern void _ZN7ee763223barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee763223fooEv,_ZTv0_n16_N7ee763223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee763223fooEv,_ZThn8_N7ee763223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee763223barEv,_ZTv0_n20_N7ee763223barEv)();
+extern void ABISELECT(_ZThn16_N7ee763223barEv,_ZThn8_N7ee763223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee763223fooEv,_ZTv0_n12_N7ee763223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee763223fooEv,_ZThn20_N7ee763223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee763223barEv,_ZTv0_n16_N7ee763223barEv)();
+extern void ABISELECT(_ZThn32_N7ee763223barEv,_ZThn20_N7ee763223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76322[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76322[0]),
+ (VTBL_ENTRY)&_ZN7ee763223fooEv,
+ (VTBL_ENTRY)&_ZN7ee763223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee763223fooEv,_ZTv0_n16_N7ee763223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee763223barEv,_ZTv0_n20_N7ee763223barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee76322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee763223fooEv,_ZTv0_n12_N7ee763223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee763223barEv,_ZTv0_n16_N7ee763223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee76322[];
+extern void _ZN6dd63223fooEv();
+extern void _ZN6dd63223barEv();
+static VTBL_ENTRY _tg__ZTV6dd6322__7ee76322[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6322[0]),
+ (VTBL_ENTRY)&_ZN6dd63223fooEv,
+ (VTBL_ENTRY)&_ZN6dd63223barEv,
+};
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3226dd6322__7ee76322[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn12_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc3226dd6322__7ee76322[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd63223fooEv,_ZTv0_n12_N6dd63223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd63223fooEv,_ZThn12_N6dd63223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd63223barEv,_ZTv0_n16_N6dd63223barEv)();
+extern void ABISELECT(_ZThn16_N6dd63223barEv,_ZThn12_N6dd63223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd6322__7ee76322[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63223fooEv,_ZTv0_n12_N6dd63223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63223barEv,_ZTv0_n16_N6dd63223barEv),
+};
+static VTT_ENTRY vtt_ee76322[] = {
+ {&(_ZTV7ee76322[4]), 4,19},
+ {&(_ZTV7ee76322[11]), 11,19},
+ {&(_ZTV7ee76322[17]), 17,19},
+ {&(_tg__ZTV6dd6322__7ee76322[3]), 3,5},
+ {&(_tg__ZTV5cc3226dd6322__7ee76322[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc3226dd6322__7ee76322[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd6322__7ee76322[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee76322[];
+extern VTBL_ENTRY _ZTV7ee76322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76322[];
+static VTBL_ENTRY alt_thunk_names1070[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd63223barEv,_ZTv0_n16_N6dd63223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63223barEv,_ZThn12_N6dd63223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63223fooEv,_ZTv0_n12_N6dd63223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63223fooEv,_ZThn12_N6dd63223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn12_N5cc3223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee763223barEv,_ZTv0_n16_N7ee763223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee763223barEv,_ZThn20_N7ee763223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee763223fooEv,_ZTv0_n12_N7ee763223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee763223fooEv,_ZThn20_N7ee763223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee763223barEv,_ZTv0_n20_N7ee763223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee763223barEv,_ZThn8_N7ee763223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee763223fooEv,_ZTv0_n16_N7ee763223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee763223fooEv,_ZThn8_N7ee763223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76322 = { "ee76322", // class name
+ bases_ee76322, 4,
+ &(vtc_ee76322[0]), // expected_vtbl_contents
+ &(vtt_ee76322[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee76322),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76322),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76322),7, //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 dd7322 : virtual cc322 {
+ int d;
+ virtual void bar(); // _ZN6dd73223barEv
+ virtual void foo(); // _ZN6dd73223fooEv
+ ~dd7322(); // tgen
+ dd7322(); // tgen
+};
+//SIG(-1 dd7322) C1{ VBC2{ VBC3{ BC4{ v2 v1 Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void dd7322 ::bar(){vfunc_called(this, "_ZN6dd73223barEv");}
+void dd7322 ::foo(){vfunc_called(this, "_ZN6dd73223fooEv");}
+dd7322 ::~dd7322(){ note_dtor("dd7322", this);} // tgen
+dd7322 ::dd7322(){ note_ctor("dd7322", this);} // tgen
+
+static void Test_dd7322()
+{
+ extern Class_Descriptor cd_dd7322;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd7322, buf);
+ dd7322 *dp, &lv = *(dp=new (buf) dd7322());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd7322)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7322)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,16), "dd7322");
+ check_base_class_offset(lv, (bb22*)(cc322*), ABISELECT(32,16), "dd7322");
+ check_base_class_offset(lv, (cc322*), ABISELECT(16,8), "dd7322");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7322.d");
+ test_class_info(&lv, &cd_dd7322);
+ dp->~dd7322();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7322(Test_dd7322, "dd7322", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd7322C1Ev();
+extern void _ZN6dd7322D1Ev();
+Name_Map name_map_dd7322[] = {
+ NSPAIR(_ZN6dd7322C1Ev),
+ NSPAIR(_ZN6dd7322D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc322;
+extern VTBL_ENTRY _ZTI5cc322[];
+extern VTBL_ENTRY _ZTV5cc322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc322[];
+static Base_Class bases_dd7322[] = {
+ // 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_bb22, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc322, 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 _ZTI6dd7322[];
+extern void _ZN6dd73223barEv();
+extern void _ZN6dd73223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd73223fooEv,_ZTv0_n16_N6dd73223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73223fooEv,_ZThn8_N6dd73223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd73223fooEv,_ZTv0_n12_N6dd73223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73223fooEv,_ZThn16_N6dd73223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73223barEv,_ZTv0_n16_N6dd73223barEv)();
+extern void ABISELECT(_ZThn32_N6dd73223barEv,_ZThn16_N6dd73223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7322[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7322[0]),
+ (VTBL_ENTRY)&_ZN6dd73223barEv,
+ (VTBL_ENTRY)&_ZN6dd73223fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73223fooEv,_ZTv0_n16_N6dd73223fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73223fooEv,_ZTv0_n12_N6dd73223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73223barEv,_ZTv0_n16_N6dd73223barEv),
+};
+extern VTBL_ENTRY _ZTV6dd7322[];
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc322__6dd7322[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc322__6dd7322[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_dd7322[] = {
+ {&(_ZTV6dd7322[4]), 4,17},
+ {&(_ZTV6dd7322[10]), 10,17},
+ {&(_ZTV6dd7322[15]), 15,17},
+ {&(_tg__ZTV5cc322__6dd7322[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc322__6dd7322[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd7322[];
+extern VTBL_ENTRY _ZTV6dd7322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7322[];
+static VTBL_ENTRY alt_thunk_names1071[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73223barEv,_ZTv0_n16_N6dd73223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73223barEv,_ZThn16_N6dd73223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73223fooEv,_ZTv0_n12_N6dd73223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73223fooEv,_ZThn16_N6dd73223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73223fooEv,_ZTv0_n16_N6dd73223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73223fooEv,_ZThn8_N6dd73223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7322 = { "dd7322", // class name
+ bases_dd7322, 3,
+ &(vtc_dd7322[0]), // expected_vtbl_contents
+ &(vtt_dd7322[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd7322),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7322),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7322),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1071,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07322 : dd7322 {
+ int e;
+ ~ee07322(); // tgen
+ ee07322(); // tgen
+};
+//SIG(1 ee07322) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee07322 ::~ee07322(){ note_dtor("ee07322", this);} // tgen
+ee07322 ::ee07322(){ note_ctor("ee07322", this);} // tgen
+
+static void Test_ee07322()
+{
+ extern Class_Descriptor cd_ee07322;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee07322, buf);
+ ee07322 *dp, &lv = *(dp=new (buf) ee07322());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee07322)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07322)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee07322");
+ check_base_class_offset(lv, (bb22*)(cc322*), ABISELECT(32,20), "ee07322");
+ check_base_class_offset(lv, (cc322*)(dd7322*), ABISELECT(16,12), "ee07322");
+ check_base_class_offset(lv, (dd7322*), 0, "ee07322");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07322.e");
+ test_class_info(&lv, &cd_ee07322);
+ dp->~ee07322();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07322(Test_ee07322, "ee07322", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee07322C1Ev();
+extern void _ZN7ee07322D1Ev();
+Name_Map name_map_ee07322[] = {
+ NSPAIR(_ZN7ee07322C1Ev),
+ NSPAIR(_ZN7ee07322D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc322;
+extern VTBL_ENTRY _ZTI5cc322[];
+extern VTBL_ENTRY _ZTV5cc322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc322[];
+extern Class_Descriptor cd_dd7322;
+extern VTBL_ENTRY _ZTI6dd7322[];
+extern VTBL_ENTRY _ZTV6dd7322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7322[];
+static Base_Class bases_ee07322[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc322, 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_dd7322, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07322[];
+extern void _ZN6dd73223barEv();
+extern void _ZN6dd73223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd73223fooEv,_ZTv0_n16_N6dd73223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73223fooEv,_ZThn12_N6dd73223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd73223fooEv,_ZTv0_n12_N6dd73223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73223fooEv,_ZThn20_N6dd73223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73223barEv,_ZTv0_n16_N6dd73223barEv)();
+extern void ABISELECT(_ZThn32_N6dd73223barEv,_ZThn20_N6dd73223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07322[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07322[0]),
+ (VTBL_ENTRY)&_ZN6dd73223barEv,
+ (VTBL_ENTRY)&_ZN6dd73223fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73223fooEv,_ZTv0_n16_N6dd73223fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee07322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73223fooEv,_ZTv0_n12_N6dd73223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73223barEv,_ZTv0_n16_N6dd73223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee07322[];
+extern void _ZN6dd73223barEv();
+extern void _ZN6dd73223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7322__7ee07322[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7322[0]),
+ (VTBL_ENTRY)&_ZN6dd73223barEv,
+ (VTBL_ENTRY)&_ZN6dd73223fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73223fooEv,_ZTv0_n16_N6dd73223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73223fooEv,_ZThn12_N6dd73223fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc322__6dd7322__7ee07322[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73223fooEv,_ZTv0_n16_N6dd73223fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd73223fooEv,_ZTv0_n12_N6dd73223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73223fooEv,_ZThn20_N6dd73223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73223barEv,_ZTv0_n16_N6dd73223barEv)();
+extern void ABISELECT(_ZThn32_N6dd73223barEv,_ZThn20_N6dd73223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd7322__7ee07322[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73223fooEv,_ZTv0_n12_N6dd73223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73223barEv,_ZTv0_n16_N6dd73223barEv),
+};
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc322__7ee07322[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc322__7ee07322[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee07322[] = {
+ {&(_ZTV7ee07322[4]), 4,17},
+ {&(_tg__ZTV6dd7322__7ee07322[4]), 4,6},
+ {&(_tg__ZTV5cc322__6dd7322__7ee07322[4]), 4,5},
+ {&(_tg__ZTV4bb22__6dd7322__7ee07322[4]), 4,6},
+ {&(_ZTV7ee07322[10]), 10,17},
+ {&(_ZTV7ee07322[15]), 15,17},
+ {&(_tg__ZTV5cc322__7ee07322[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc322__7ee07322[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee07322[];
+extern VTBL_ENTRY _ZTV7ee07322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07322[];
+static VTBL_ENTRY alt_thunk_names1072[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73223barEv,_ZTv0_n16_N6dd73223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73223barEv,_ZThn20_N6dd73223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73223barEv,_ZThn20_N6dd73223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73223fooEv,_ZTv0_n12_N6dd73223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73223fooEv,_ZThn20_N6dd73223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73223fooEv,_ZThn20_N6dd73223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73223fooEv,_ZTv0_n16_N6dd73223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73223fooEv,_ZThn12_N6dd73223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73223fooEv,_ZThn12_N6dd73223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07322 = { "ee07322", // class name
+ bases_ee07322, 4,
+ &(vtc_ee07322[0]), // expected_vtbl_contents
+ &(vtt_ee07322[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee07322),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07322),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07322),8, //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 ee17322 : virtual dd7322 {
+ int e;
+ ~ee17322(); // tgen
+ ee17322(); // tgen
+};
+//SIG(1 ee17322) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee17322 ::~ee17322(){ note_dtor("ee17322", this);} // tgen
+ee17322 ::ee17322(){ note_ctor("ee17322", this);} // tgen
+
+static void Test_ee17322()
+{
+ extern Class_Descriptor cd_ee17322;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee17322, buf);
+ ee17322 *dp, &lv = *(dp=new (buf) ee17322());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee17322)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17322)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(48,24), "ee17322");
+ check_base_class_offset(lv, (bb22*)(cc322*), ABISELECT(48,24), "ee17322");
+ check_base_class_offset(lv, (cc322*)(dd7322*), ABISELECT(32,16), "ee17322");
+ check_base_class_offset(lv, (dd7322*), ABISELECT(16,8), "ee17322");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17322.e");
+ test_class_info(&lv, &cd_ee17322);
+ dp->~ee17322();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17322(Test_ee17322, "ee17322", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee17322C1Ev();
+extern void _ZN7ee17322D1Ev();
+Name_Map name_map_ee17322[] = {
+ NSPAIR(_ZN7ee17322C1Ev),
+ NSPAIR(_ZN7ee17322D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc322;
+extern VTBL_ENTRY _ZTI5cc322[];
+extern VTBL_ENTRY _ZTV5cc322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc322[];
+extern Class_Descriptor cd_dd7322;
+extern VTBL_ENTRY _ZTI6dd7322[];
+extern VTBL_ENTRY _ZTV6dd7322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7322[];
+static Base_Class bases_ee17322[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb22, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc322, 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_dd7322, 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 _ZTI7ee17322[];
+extern void _ZN6dd73223barEv();
+extern void _ZN6dd73223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd73223fooEv,_ZTv0_n16_N6dd73223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73223fooEv,_ZThn8_N6dd73223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd73223fooEv,_ZTv0_n12_N6dd73223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73223fooEv,_ZThn16_N6dd73223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73223barEv,_ZTv0_n16_N6dd73223barEv)();
+extern void ABISELECT(_ZThn32_N6dd73223barEv,_ZThn16_N6dd73223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17322[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17322[0]),
+ 0,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17322[0]),
+ (VTBL_ENTRY)&_ZN6dd73223barEv,
+ (VTBL_ENTRY)&_ZN6dd73223fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73223fooEv,_ZTv0_n16_N6dd73223fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee17322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73223fooEv,_ZTv0_n12_N6dd73223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73223barEv,_ZTv0_n16_N6dd73223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee17322[];
+extern void _ZN6dd73223barEv();
+extern void _ZN6dd73223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7322__7ee17322[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7322[0]),
+ (VTBL_ENTRY)&_ZN6dd73223barEv,
+ (VTBL_ENTRY)&_ZN6dd73223fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73223fooEv,_ZTv0_n16_N6dd73223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73223fooEv,_ZThn8_N6dd73223fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc322__6dd7322__7ee17322[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73223fooEv,_ZTv0_n16_N6dd73223fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd73223fooEv,_ZTv0_n12_N6dd73223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73223fooEv,_ZThn16_N6dd73223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73223barEv,_ZTv0_n16_N6dd73223barEv)();
+extern void ABISELECT(_ZThn32_N6dd73223barEv,_ZThn16_N6dd73223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd7322__7ee17322[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73223fooEv,_ZTv0_n12_N6dd73223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73223barEv,_ZTv0_n16_N6dd73223barEv),
+};
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc322__7ee17322[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc322__7ee17322[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee17322[] = {
+ {&(_ZTV7ee17322[5]), 5,24},
+ {&(_ZTV7ee17322[11]), 11,24},
+ {&(_ZTV7ee17322[17]), 17,24},
+ {&(_ZTV7ee17322[22]), 22,24},
+ {&(_tg__ZTV6dd7322__7ee17322[4]), 4,6},
+ {&(_tg__ZTV5cc322__6dd7322__7ee17322[4]), 4,5},
+ {&(_tg__ZTV4bb22__6dd7322__7ee17322[4]), 4,6},
+ {&(_tg__ZTV5cc322__7ee17322[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc322__7ee17322[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee17322[];
+extern VTBL_ENTRY _ZTV7ee17322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17322[];
+static VTBL_ENTRY alt_thunk_names1073[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73223barEv,_ZTv0_n16_N6dd73223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73223barEv,_ZThn16_N6dd73223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73223barEv,_ZThn16_N6dd73223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73223fooEv,_ZTv0_n12_N6dd73223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73223fooEv,_ZThn16_N6dd73223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73223fooEv,_ZThn16_N6dd73223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73223fooEv,_ZTv0_n16_N6dd73223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73223fooEv,_ZThn8_N6dd73223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73223fooEv,_ZThn8_N6dd73223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17322 = { "ee17322", // class name
+ bases_ee17322, 4,
+ &(vtc_ee17322[0]), // expected_vtbl_contents
+ &(vtt_ee17322[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee17322),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17322),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17322),9, //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 ee27322 : dd7322 {
+ int e;
+ virtual void foo(); // _ZN7ee273223fooEv
+ ~ee27322(); // tgen
+ ee27322(); // tgen
+};
+//SIG(1 ee27322) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27322 ::foo(){vfunc_called(this, "_ZN7ee273223fooEv");}
+ee27322 ::~ee27322(){ note_dtor("ee27322", this);} // tgen
+ee27322 ::ee27322(){ note_ctor("ee27322", this);} // tgen
+
+static void Test_ee27322()
+{
+ extern Class_Descriptor cd_ee27322;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee27322, buf);
+ ee27322 *dp, &lv = *(dp=new (buf) ee27322());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee27322)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27322)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee27322");
+ check_base_class_offset(lv, (bb22*)(cc322*), ABISELECT(32,20), "ee27322");
+ check_base_class_offset(lv, (cc322*)(dd7322*), ABISELECT(16,12), "ee27322");
+ check_base_class_offset(lv, (dd7322*), 0, "ee27322");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27322.e");
+ test_class_info(&lv, &cd_ee27322);
+ dp->~ee27322();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27322(Test_ee27322, "ee27322", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee27322C1Ev();
+extern void _ZN7ee27322D1Ev();
+Name_Map name_map_ee27322[] = {
+ NSPAIR(_ZN7ee27322C1Ev),
+ NSPAIR(_ZN7ee27322D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc322;
+extern VTBL_ENTRY _ZTI5cc322[];
+extern VTBL_ENTRY _ZTV5cc322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc322[];
+extern Class_Descriptor cd_dd7322;
+extern VTBL_ENTRY _ZTI6dd7322[];
+extern VTBL_ENTRY _ZTV6dd7322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7322[];
+static Base_Class bases_ee27322[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc322, 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_dd7322, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27322[];
+extern void _ZN6dd73223barEv();
+extern void _ZN7ee273223fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee273223fooEv,_ZTv0_n16_N7ee273223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee273223fooEv,_ZThn12_N7ee273223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee273223fooEv,_ZTv0_n12_N7ee273223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee273223fooEv,_ZThn20_N7ee273223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73223barEv,_ZTv0_n16_N6dd73223barEv)();
+extern void ABISELECT(_ZThn32_N6dd73223barEv,_ZThn20_N6dd73223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27322[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27322[0]),
+ (VTBL_ENTRY)&_ZN6dd73223barEv,
+ (VTBL_ENTRY)&_ZN7ee273223fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee273223fooEv,_ZTv0_n16_N7ee273223fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee27322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee273223fooEv,_ZTv0_n12_N7ee273223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73223barEv,_ZTv0_n16_N6dd73223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee27322[];
+extern void _ZN6dd73223barEv();
+extern void _ZN6dd73223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7322__7ee27322[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7322[0]),
+ (VTBL_ENTRY)&_ZN6dd73223barEv,
+ (VTBL_ENTRY)&_ZN6dd73223fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73223fooEv,_ZTv0_n16_N6dd73223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73223fooEv,_ZThn12_N6dd73223fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc322__6dd7322__7ee27322[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73223fooEv,_ZTv0_n16_N6dd73223fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd73223fooEv,_ZTv0_n12_N6dd73223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73223fooEv,_ZThn20_N6dd73223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73223barEv,_ZTv0_n16_N6dd73223barEv)();
+extern void ABISELECT(_ZThn32_N6dd73223barEv,_ZThn20_N6dd73223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd7322__7ee27322[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73223fooEv,_ZTv0_n12_N6dd73223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73223barEv,_ZTv0_n16_N6dd73223barEv),
+};
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc322__7ee27322[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc322__7ee27322[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee27322[] = {
+ {&(_ZTV7ee27322[4]), 4,17},
+ {&(_tg__ZTV6dd7322__7ee27322[4]), 4,6},
+ {&(_tg__ZTV5cc322__6dd7322__7ee27322[4]), 4,5},
+ {&(_tg__ZTV4bb22__6dd7322__7ee27322[4]), 4,6},
+ {&(_ZTV7ee27322[10]), 10,17},
+ {&(_ZTV7ee27322[15]), 15,17},
+ {&(_tg__ZTV5cc322__7ee27322[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc322__7ee27322[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee27322[];
+extern VTBL_ENTRY _ZTV7ee27322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27322[];
+static VTBL_ENTRY alt_thunk_names1074[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73223fooEv,_ZTv0_n12_N6dd73223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73223fooEv,_ZThn20_N6dd73223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73223fooEv,_ZTv0_n16_N6dd73223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73223fooEv,_ZThn12_N6dd73223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73223barEv,_ZTv0_n16_N6dd73223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73223barEv,_ZThn20_N6dd73223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73223barEv,_ZThn20_N6dd73223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee273223fooEv,_ZTv0_n12_N7ee273223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee273223fooEv,_ZThn20_N7ee273223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee273223fooEv,_ZTv0_n16_N7ee273223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee273223fooEv,_ZThn12_N7ee273223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27322 = { "ee27322", // class name
+ bases_ee27322, 4,
+ &(vtc_ee27322[0]), // expected_vtbl_contents
+ &(vtt_ee27322[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee27322),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27322),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27322),8, //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 ee37322 : virtual dd7322 {
+ int e;
+ virtual void foo(); // _ZN7ee373223fooEv
+ ~ee37322(); // tgen
+ ee37322(); // tgen
+};
+//SIG(1 ee37322) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37322 ::foo(){vfunc_called(this, "_ZN7ee373223fooEv");}
+ee37322 ::~ee37322(){ note_dtor("ee37322", this);} // tgen
+ee37322 ::ee37322(){ note_ctor("ee37322", this);} // tgen
+
+static void Test_ee37322()
+{
+ extern Class_Descriptor cd_ee37322;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee37322, buf);
+ ee37322 *dp, &lv = *(dp=new (buf) ee37322());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee37322)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37322)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(48,24), "ee37322");
+ check_base_class_offset(lv, (bb22*)(cc322*), ABISELECT(48,24), "ee37322");
+ check_base_class_offset(lv, (cc322*)(dd7322*), ABISELECT(32,16), "ee37322");
+ check_base_class_offset(lv, (dd7322*), ABISELECT(16,8), "ee37322");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37322.e");
+ test_class_info(&lv, &cd_ee37322);
+ dp->~ee37322();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37322(Test_ee37322, "ee37322", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee37322C1Ev();
+extern void _ZN7ee37322D1Ev();
+Name_Map name_map_ee37322[] = {
+ NSPAIR(_ZN7ee37322C1Ev),
+ NSPAIR(_ZN7ee37322D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc322;
+extern VTBL_ENTRY _ZTI5cc322[];
+extern VTBL_ENTRY _ZTV5cc322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc322[];
+extern Class_Descriptor cd_dd7322;
+extern VTBL_ENTRY _ZTI6dd7322[];
+extern VTBL_ENTRY _ZTV6dd7322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7322[];
+static Base_Class bases_ee37322[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb22, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc322, 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_dd7322, 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 _ZTI7ee37322[];
+extern void _ZN7ee373223fooEv();
+extern void _ZN6dd73223barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee373223fooEv,_ZTv0_n24_N7ee373223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee373223fooEv,_ZThn8_N7ee373223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee373223fooEv,_ZTv0_n16_N7ee373223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee373223fooEv,_ZThn16_N7ee373223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee373223fooEv,_ZTv0_n12_N7ee373223fooEv)();
+extern void ABISELECT(_ZThn48_N7ee373223fooEv,_ZThn24_N7ee373223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73223barEv,_ZTv0_n16_N6dd73223barEv)();
+extern void ABISELECT(_ZThn32_N6dd73223barEv,_ZThn16_N6dd73223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37322[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37322[0]),
+ (VTBL_ENTRY)&_ZN7ee373223fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37322[0]),
+ (VTBL_ENTRY)&_ZN6dd73223barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee373223fooEv,_ZTv0_n24_N7ee373223fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee373223fooEv,_ZTv0_n16_N7ee373223fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee37322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee373223fooEv,_ZTv0_n12_N7ee373223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73223barEv,_ZTv0_n16_N6dd73223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee37322[];
+extern void _ZN6dd73223barEv();
+extern void _ZN6dd73223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7322__7ee37322[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7322[0]),
+ (VTBL_ENTRY)&_ZN6dd73223barEv,
+ (VTBL_ENTRY)&_ZN6dd73223fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73223fooEv,_ZTv0_n16_N6dd73223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73223fooEv,_ZThn8_N6dd73223fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc322__6dd7322__7ee37322[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73223fooEv,_ZTv0_n16_N6dd73223fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd73223fooEv,_ZTv0_n12_N6dd73223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73223fooEv,_ZThn16_N6dd73223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73223barEv,_ZTv0_n16_N6dd73223barEv)();
+extern void ABISELECT(_ZThn32_N6dd73223barEv,_ZThn16_N6dd73223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd7322__7ee37322[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73223fooEv,_ZTv0_n12_N6dd73223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73223barEv,_ZTv0_n16_N6dd73223barEv),
+};
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc322__7ee37322[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc322__7ee37322[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee37322[] = {
+ {&(_ZTV7ee37322[5]), 5,25},
+ {&(_ZTV7ee37322[12]), 12,25},
+ {&(_ZTV7ee37322[18]), 18,25},
+ {&(_ZTV7ee37322[23]), 23,25},
+ {&(_tg__ZTV6dd7322__7ee37322[4]), 4,6},
+ {&(_tg__ZTV5cc322__6dd7322__7ee37322[4]), 4,5},
+ {&(_tg__ZTV4bb22__6dd7322__7ee37322[4]), 4,6},
+ {&(_tg__ZTV5cc322__7ee37322[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc322__7ee37322[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee37322[];
+extern VTBL_ENTRY _ZTV7ee37322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37322[];
+static VTBL_ENTRY alt_thunk_names1075[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73223fooEv,_ZTv0_n12_N6dd73223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73223fooEv,_ZThn16_N6dd73223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73223fooEv,_ZTv0_n16_N6dd73223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73223fooEv,_ZThn8_N6dd73223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73223barEv,_ZTv0_n16_N6dd73223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73223barEv,_ZThn16_N6dd73223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73223barEv,_ZThn16_N6dd73223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee373223fooEv,_ZTv0_n12_N7ee373223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee373223fooEv,_ZThn24_N7ee373223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee373223fooEv,_ZTv0_n16_N7ee373223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee373223fooEv,_ZThn16_N7ee373223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee373223fooEv,_ZTv0_n24_N7ee373223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee373223fooEv,_ZThn8_N7ee373223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37322 = { "ee37322", // class name
+ bases_ee37322, 4,
+ &(vtc_ee37322[0]), // expected_vtbl_contents
+ &(vtt_ee37322[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee37322),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37322),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37322),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1075,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee47322 : dd7322 {
+ int e;
+ virtual void bar(); // _ZN7ee473223barEv
+ ~ee47322(); // tgen
+ ee47322(); // tgen
+};
+//SIG(1 ee47322) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47322 ::bar(){vfunc_called(this, "_ZN7ee473223barEv");}
+ee47322 ::~ee47322(){ note_dtor("ee47322", this);} // tgen
+ee47322 ::ee47322(){ note_ctor("ee47322", this);} // tgen
+
+static void Test_ee47322()
+{
+ extern Class_Descriptor cd_ee47322;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee47322, buf);
+ ee47322 *dp, &lv = *(dp=new (buf) ee47322());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee47322)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47322)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee47322");
+ check_base_class_offset(lv, (bb22*)(cc322*), ABISELECT(32,20), "ee47322");
+ check_base_class_offset(lv, (cc322*)(dd7322*), ABISELECT(16,12), "ee47322");
+ check_base_class_offset(lv, (dd7322*), 0, "ee47322");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47322.e");
+ test_class_info(&lv, &cd_ee47322);
+ dp->~ee47322();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47322(Test_ee47322, "ee47322", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee47322C1Ev();
+extern void _ZN7ee47322D1Ev();
+Name_Map name_map_ee47322[] = {
+ NSPAIR(_ZN7ee47322C1Ev),
+ NSPAIR(_ZN7ee47322D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc322;
+extern VTBL_ENTRY _ZTI5cc322[];
+extern VTBL_ENTRY _ZTV5cc322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc322[];
+extern Class_Descriptor cd_dd7322;
+extern VTBL_ENTRY _ZTI6dd7322[];
+extern VTBL_ENTRY _ZTV6dd7322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7322[];
+static Base_Class bases_ee47322[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc322, 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_dd7322, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47322[];
+extern void _ZN7ee473223barEv();
+extern void _ZN6dd73223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd73223fooEv,_ZTv0_n16_N6dd73223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73223fooEv,_ZThn12_N6dd73223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd73223fooEv,_ZTv0_n12_N6dd73223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73223fooEv,_ZThn20_N6dd73223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee473223barEv,_ZTv0_n16_N7ee473223barEv)();
+extern void ABISELECT(_ZThn32_N7ee473223barEv,_ZThn20_N7ee473223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47322[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47322[0]),
+ (VTBL_ENTRY)&_ZN7ee473223barEv,
+ (VTBL_ENTRY)&_ZN6dd73223fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73223fooEv,_ZTv0_n16_N6dd73223fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee47322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73223fooEv,_ZTv0_n12_N6dd73223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee473223barEv,_ZTv0_n16_N7ee473223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee47322[];
+extern void _ZN6dd73223barEv();
+extern void _ZN6dd73223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7322__7ee47322[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7322[0]),
+ (VTBL_ENTRY)&_ZN6dd73223barEv,
+ (VTBL_ENTRY)&_ZN6dd73223fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73223fooEv,_ZTv0_n16_N6dd73223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73223fooEv,_ZThn12_N6dd73223fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc322__6dd7322__7ee47322[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73223fooEv,_ZTv0_n16_N6dd73223fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd73223fooEv,_ZTv0_n12_N6dd73223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73223fooEv,_ZThn20_N6dd73223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73223barEv,_ZTv0_n16_N6dd73223barEv)();
+extern void ABISELECT(_ZThn32_N6dd73223barEv,_ZThn20_N6dd73223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd7322__7ee47322[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73223fooEv,_ZTv0_n12_N6dd73223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73223barEv,_ZTv0_n16_N6dd73223barEv),
+};
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc322__7ee47322[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc322__7ee47322[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee47322[] = {
+ {&(_ZTV7ee47322[4]), 4,17},
+ {&(_tg__ZTV6dd7322__7ee47322[4]), 4,6},
+ {&(_tg__ZTV5cc322__6dd7322__7ee47322[4]), 4,5},
+ {&(_tg__ZTV4bb22__6dd7322__7ee47322[4]), 4,6},
+ {&(_ZTV7ee47322[10]), 10,17},
+ {&(_ZTV7ee47322[15]), 15,17},
+ {&(_tg__ZTV5cc322__7ee47322[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc322__7ee47322[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee47322[];
+extern VTBL_ENTRY _ZTV7ee47322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47322[];
+static VTBL_ENTRY alt_thunk_names1076[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73223barEv,_ZTv0_n16_N6dd73223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73223barEv,_ZThn20_N6dd73223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee473223barEv,_ZTv0_n16_N7ee473223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee473223barEv,_ZThn20_N7ee473223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73223fooEv,_ZTv0_n12_N6dd73223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73223fooEv,_ZThn20_N6dd73223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73223fooEv,_ZThn20_N6dd73223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73223fooEv,_ZTv0_n16_N6dd73223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73223fooEv,_ZThn12_N6dd73223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73223fooEv,_ZThn12_N6dd73223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47322 = { "ee47322", // class name
+ bases_ee47322, 4,
+ &(vtc_ee47322[0]), // expected_vtbl_contents
+ &(vtt_ee47322[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee47322),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47322),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47322),8, //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 ee57322 : virtual dd7322 {
+ int e;
+ virtual void bar(); // _ZN7ee573223barEv
+ ~ee57322(); // tgen
+ ee57322(); // tgen
+};
+//SIG(1 ee57322) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57322 ::bar(){vfunc_called(this, "_ZN7ee573223barEv");}
+ee57322 ::~ee57322(){ note_dtor("ee57322", this);} // tgen
+ee57322 ::ee57322(){ note_ctor("ee57322", this);} // tgen
+
+static void Test_ee57322()
+{
+ extern Class_Descriptor cd_ee57322;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee57322, buf);
+ ee57322 *dp, &lv = *(dp=new (buf) ee57322());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee57322)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57322)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(48,24), "ee57322");
+ check_base_class_offset(lv, (bb22*)(cc322*), ABISELECT(48,24), "ee57322");
+ check_base_class_offset(lv, (cc322*)(dd7322*), ABISELECT(32,16), "ee57322");
+ check_base_class_offset(lv, (dd7322*), ABISELECT(16,8), "ee57322");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57322.e");
+ test_class_info(&lv, &cd_ee57322);
+ dp->~ee57322();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57322(Test_ee57322, "ee57322", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee57322C1Ev();
+extern void _ZN7ee57322D1Ev();
+Name_Map name_map_ee57322[] = {
+ NSPAIR(_ZN7ee57322C1Ev),
+ NSPAIR(_ZN7ee57322D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc322;
+extern VTBL_ENTRY _ZTI5cc322[];
+extern VTBL_ENTRY _ZTV5cc322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc322[];
+extern Class_Descriptor cd_dd7322;
+extern VTBL_ENTRY _ZTI6dd7322[];
+extern VTBL_ENTRY _ZTV6dd7322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7322[];
+static Base_Class bases_ee57322[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb22, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc322, 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_dd7322, 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 _ZTI7ee57322[];
+extern void _ZN7ee573223barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee573223barEv,_ZTv0_n20_N7ee573223barEv)();
+extern void ABISELECT(_ZThn16_N7ee573223barEv,_ZThn8_N7ee573223barEv)() __attribute__((weak));
+extern void _ZN6dd73223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd73223fooEv,_ZTv0_n16_N6dd73223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73223fooEv,_ZThn8_N6dd73223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd73223fooEv,_ZTv0_n12_N6dd73223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73223fooEv,_ZThn16_N6dd73223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee573223barEv,_ZTv0_n16_N7ee573223barEv)();
+extern void ABISELECT(_ZThn48_N7ee573223barEv,_ZThn24_N7ee573223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57322[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57322[0]),
+ (VTBL_ENTRY)&_ZN7ee573223barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee573223barEv,_ZTv0_n20_N7ee573223barEv),
+ (VTBL_ENTRY)&_ZN6dd73223fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73223fooEv,_ZTv0_n16_N6dd73223fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee57322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73223fooEv,_ZTv0_n12_N6dd73223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee573223barEv,_ZTv0_n16_N7ee573223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee57322[];
+extern void _ZN6dd73223barEv();
+extern void _ZN6dd73223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7322__7ee57322[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7322[0]),
+ (VTBL_ENTRY)&_ZN6dd73223barEv,
+ (VTBL_ENTRY)&_ZN6dd73223fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73223fooEv,_ZTv0_n16_N6dd73223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73223fooEv,_ZThn8_N6dd73223fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc322__6dd7322__7ee57322[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73223fooEv,_ZTv0_n16_N6dd73223fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd73223fooEv,_ZTv0_n12_N6dd73223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73223fooEv,_ZThn16_N6dd73223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73223barEv,_ZTv0_n16_N6dd73223barEv)();
+extern void ABISELECT(_ZThn32_N6dd73223barEv,_ZThn16_N6dd73223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd7322__7ee57322[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73223fooEv,_ZTv0_n12_N6dd73223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73223barEv,_ZTv0_n16_N6dd73223barEv),
+};
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc322__7ee57322[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc322__7ee57322[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee57322[] = {
+ {&(_ZTV7ee57322[5]), 5,25},
+ {&(_ZTV7ee57322[12]), 12,25},
+ {&(_ZTV7ee57322[18]), 18,25},
+ {&(_ZTV7ee57322[23]), 23,25},
+ {&(_tg__ZTV6dd7322__7ee57322[4]), 4,6},
+ {&(_tg__ZTV5cc322__6dd7322__7ee57322[4]), 4,5},
+ {&(_tg__ZTV4bb22__6dd7322__7ee57322[4]), 4,6},
+ {&(_tg__ZTV5cc322__7ee57322[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc322__7ee57322[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee57322[];
+extern VTBL_ENTRY _ZTV7ee57322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57322[];
+static VTBL_ENTRY alt_thunk_names1077[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73223barEv,_ZTv0_n16_N6dd73223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73223barEv,_ZThn16_N6dd73223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee573223barEv,_ZTv0_n16_N7ee573223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee573223barEv,_ZThn24_N7ee573223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73223fooEv,_ZTv0_n12_N6dd73223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73223fooEv,_ZThn16_N6dd73223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73223fooEv,_ZThn16_N6dd73223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73223fooEv,_ZTv0_n16_N6dd73223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73223fooEv,_ZThn8_N6dd73223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73223fooEv,_ZThn8_N6dd73223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee573223barEv,_ZTv0_n20_N7ee573223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee573223barEv,_ZThn8_N7ee573223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57322 = { "ee57322", // class name
+ bases_ee57322, 4,
+ &(vtc_ee57322[0]), // expected_vtbl_contents
+ &(vtt_ee57322[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee57322),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57322),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57322),9, //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 ee67322 : dd7322 {
+ int e;
+ virtual void foo(); // _ZN7ee673223fooEv
+ virtual void bar(); // _ZN7ee673223barEv
+ ~ee67322(); // tgen
+ ee67322(); // tgen
+};
+//SIG(1 ee67322) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67322 ::foo(){vfunc_called(this, "_ZN7ee673223fooEv");}
+void ee67322 ::bar(){vfunc_called(this, "_ZN7ee673223barEv");}
+ee67322 ::~ee67322(){ note_dtor("ee67322", this);} // tgen
+ee67322 ::ee67322(){ note_ctor("ee67322", this);} // tgen
+
+static void Test_ee67322()
+{
+ extern Class_Descriptor cd_ee67322;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee67322, buf);
+ ee67322 *dp, &lv = *(dp=new (buf) ee67322());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee67322)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67322)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee67322");
+ check_base_class_offset(lv, (bb22*)(cc322*), ABISELECT(32,20), "ee67322");
+ check_base_class_offset(lv, (cc322*)(dd7322*), ABISELECT(16,12), "ee67322");
+ check_base_class_offset(lv, (dd7322*), 0, "ee67322");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67322.e");
+ test_class_info(&lv, &cd_ee67322);
+ dp->~ee67322();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67322(Test_ee67322, "ee67322", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee67322C1Ev();
+extern void _ZN7ee67322D1Ev();
+Name_Map name_map_ee67322[] = {
+ NSPAIR(_ZN7ee67322C1Ev),
+ NSPAIR(_ZN7ee67322D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc322;
+extern VTBL_ENTRY _ZTI5cc322[];
+extern VTBL_ENTRY _ZTV5cc322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc322[];
+extern Class_Descriptor cd_dd7322;
+extern VTBL_ENTRY _ZTI6dd7322[];
+extern VTBL_ENTRY _ZTV6dd7322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7322[];
+static Base_Class bases_ee67322[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc322, 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_dd7322, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67322[];
+extern void _ZN7ee673223barEv();
+extern void _ZN7ee673223fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee673223fooEv,_ZTv0_n16_N7ee673223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee673223fooEv,_ZThn12_N7ee673223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee673223fooEv,_ZTv0_n12_N7ee673223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee673223fooEv,_ZThn20_N7ee673223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee673223barEv,_ZTv0_n16_N7ee673223barEv)();
+extern void ABISELECT(_ZThn32_N7ee673223barEv,_ZThn20_N7ee673223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67322[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67322[0]),
+ (VTBL_ENTRY)&_ZN7ee673223barEv,
+ (VTBL_ENTRY)&_ZN7ee673223fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee673223fooEv,_ZTv0_n16_N7ee673223fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee67322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee673223fooEv,_ZTv0_n12_N7ee673223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee673223barEv,_ZTv0_n16_N7ee673223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee67322[];
+extern void _ZN6dd73223barEv();
+extern void _ZN6dd73223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7322__7ee67322[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7322[0]),
+ (VTBL_ENTRY)&_ZN6dd73223barEv,
+ (VTBL_ENTRY)&_ZN6dd73223fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73223fooEv,_ZTv0_n16_N6dd73223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73223fooEv,_ZThn12_N6dd73223fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc322__6dd7322__7ee67322[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73223fooEv,_ZTv0_n16_N6dd73223fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd73223fooEv,_ZTv0_n12_N6dd73223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73223fooEv,_ZThn20_N6dd73223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73223barEv,_ZTv0_n16_N6dd73223barEv)();
+extern void ABISELECT(_ZThn32_N6dd73223barEv,_ZThn20_N6dd73223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd7322__7ee67322[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73223fooEv,_ZTv0_n12_N6dd73223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73223barEv,_ZTv0_n16_N6dd73223barEv),
+};
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc322__7ee67322[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc322__7ee67322[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee67322[] = {
+ {&(_ZTV7ee67322[4]), 4,17},
+ {&(_tg__ZTV6dd7322__7ee67322[4]), 4,6},
+ {&(_tg__ZTV5cc322__6dd7322__7ee67322[4]), 4,5},
+ {&(_tg__ZTV4bb22__6dd7322__7ee67322[4]), 4,6},
+ {&(_ZTV7ee67322[10]), 10,17},
+ {&(_ZTV7ee67322[15]), 15,17},
+ {&(_tg__ZTV5cc322__7ee67322[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc322__7ee67322[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee67322[];
+extern VTBL_ENTRY _ZTV7ee67322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67322[];
+static VTBL_ENTRY alt_thunk_names1078[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73223barEv,_ZTv0_n16_N6dd73223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73223barEv,_ZThn20_N6dd73223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73223fooEv,_ZTv0_n12_N6dd73223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73223fooEv,_ZThn20_N6dd73223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73223fooEv,_ZTv0_n16_N6dd73223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73223fooEv,_ZThn12_N6dd73223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee673223barEv,_ZTv0_n16_N7ee673223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee673223barEv,_ZThn20_N7ee673223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee673223fooEv,_ZTv0_n12_N7ee673223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee673223fooEv,_ZThn20_N7ee673223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee673223fooEv,_ZTv0_n16_N7ee673223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee673223fooEv,_ZThn12_N7ee673223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67322 = { "ee67322", // class name
+ bases_ee67322, 4,
+ &(vtc_ee67322[0]), // expected_vtbl_contents
+ &(vtt_ee67322[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee67322),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67322),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67322),8, //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 ee77322 : virtual dd7322 {
+ int e;
+ virtual void foo(); // _ZN7ee773223fooEv
+ virtual void bar(); // _ZN7ee773223barEv
+ ~ee77322(); // tgen
+ ee77322(); // tgen
+};
+//SIG(1 ee77322) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77322 ::foo(){vfunc_called(this, "_ZN7ee773223fooEv");}
+void ee77322 ::bar(){vfunc_called(this, "_ZN7ee773223barEv");}
+ee77322 ::~ee77322(){ note_dtor("ee77322", this);} // tgen
+ee77322 ::ee77322(){ note_ctor("ee77322", this);} // tgen
+
+static void Test_ee77322()
+{
+ extern Class_Descriptor cd_ee77322;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee77322, buf);
+ ee77322 *dp, &lv = *(dp=new (buf) ee77322());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee77322)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77322)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(48,24), "ee77322");
+ check_base_class_offset(lv, (bb22*)(cc322*), ABISELECT(48,24), "ee77322");
+ check_base_class_offset(lv, (cc322*)(dd7322*), ABISELECT(32,16), "ee77322");
+ check_base_class_offset(lv, (dd7322*), ABISELECT(16,8), "ee77322");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77322.e");
+ test_class_info(&lv, &cd_ee77322);
+ dp->~ee77322();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77322(Test_ee77322, "ee77322", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee77322C1Ev();
+extern void _ZN7ee77322D1Ev();
+Name_Map name_map_ee77322[] = {
+ NSPAIR(_ZN7ee77322C1Ev),
+ NSPAIR(_ZN7ee77322D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc322;
+extern VTBL_ENTRY _ZTI5cc322[];
+extern VTBL_ENTRY _ZTV5cc322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc322[];
+extern Class_Descriptor cd_dd7322;
+extern VTBL_ENTRY _ZTI6dd7322[];
+extern VTBL_ENTRY _ZTV6dd7322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7322[];
+static Base_Class bases_ee77322[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb22, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc322, 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_dd7322, 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 _ZTI7ee77322[];
+extern void _ZN7ee773223fooEv();
+extern void _ZN7ee773223barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee773223barEv,_ZTv0_n20_N7ee773223barEv)();
+extern void ABISELECT(_ZThn16_N7ee773223barEv,_ZThn8_N7ee773223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee773223fooEv,_ZTv0_n24_N7ee773223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee773223fooEv,_ZThn8_N7ee773223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee773223fooEv,_ZTv0_n16_N7ee773223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee773223fooEv,_ZThn16_N7ee773223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee773223fooEv,_ZTv0_n12_N7ee773223fooEv)();
+extern void ABISELECT(_ZThn48_N7ee773223fooEv,_ZThn24_N7ee773223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee773223barEv,_ZTv0_n16_N7ee773223barEv)();
+extern void ABISELECT(_ZThn48_N7ee773223barEv,_ZThn24_N7ee773223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77322[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77322[0]),
+ (VTBL_ENTRY)&_ZN7ee773223fooEv,
+ (VTBL_ENTRY)&_ZN7ee773223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee773223barEv,_ZTv0_n20_N7ee773223barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee773223fooEv,_ZTv0_n24_N7ee773223fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee773223fooEv,_ZTv0_n16_N7ee773223fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee77322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee773223fooEv,_ZTv0_n12_N7ee773223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee773223barEv,_ZTv0_n16_N7ee773223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee77322[];
+extern void _ZN6dd73223barEv();
+extern void _ZN6dd73223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7322__7ee77322[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7322[0]),
+ (VTBL_ENTRY)&_ZN6dd73223barEv,
+ (VTBL_ENTRY)&_ZN6dd73223fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73223fooEv,_ZTv0_n16_N6dd73223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73223fooEv,_ZThn8_N6dd73223fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc322__6dd7322__7ee77322[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73223fooEv,_ZTv0_n16_N6dd73223fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd73223fooEv,_ZTv0_n12_N6dd73223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73223fooEv,_ZThn16_N6dd73223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73223barEv,_ZTv0_n16_N6dd73223barEv)();
+extern void ABISELECT(_ZThn32_N6dd73223barEv,_ZThn16_N6dd73223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd7322__7ee77322[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73223fooEv,_ZTv0_n12_N6dd73223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73223barEv,_ZTv0_n16_N6dd73223barEv),
+};
+extern void _ZN5cc3223fooEv();
+static VTBL_ENTRY _tg__ZTV5cc322__7ee77322[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&_ZN5cc3223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV4bb22__5cc322__7ee77322[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee77322[] = {
+ {&(_ZTV7ee77322[5]), 5,26},
+ {&(_ZTV7ee77322[13]), 13,26},
+ {&(_ZTV7ee77322[19]), 19,26},
+ {&(_ZTV7ee77322[24]), 24,26},
+ {&(_tg__ZTV6dd7322__7ee77322[4]), 4,6},
+ {&(_tg__ZTV5cc322__6dd7322__7ee77322[4]), 4,5},
+ {&(_tg__ZTV4bb22__6dd7322__7ee77322[4]), 4,6},
+ {&(_tg__ZTV5cc322__7ee77322[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc322__7ee77322[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee77322[];
+extern VTBL_ENTRY _ZTV7ee77322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77322[];
+static VTBL_ENTRY alt_thunk_names1079[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3223fooEv,_ZTv0_n12_N5cc3223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3223fooEv,_ZThn8_N5cc3223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73223barEv,_ZTv0_n16_N6dd73223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73223barEv,_ZThn16_N6dd73223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73223fooEv,_ZTv0_n12_N6dd73223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73223fooEv,_ZThn16_N6dd73223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73223fooEv,_ZTv0_n16_N6dd73223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73223fooEv,_ZThn8_N6dd73223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee773223barEv,_ZTv0_n16_N7ee773223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee773223barEv,_ZThn24_N7ee773223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee773223fooEv,_ZTv0_n12_N7ee773223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee773223fooEv,_ZThn24_N7ee773223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee773223fooEv,_ZTv0_n16_N7ee773223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee773223fooEv,_ZThn16_N7ee773223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee773223fooEv,_ZTv0_n24_N7ee773223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee773223fooEv,_ZThn8_N7ee773223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee773223barEv,_ZTv0_n20_N7ee773223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee773223barEv,_ZThn8_N7ee773223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77322 = { "ee77322", // class name
+ bases_ee77322, 4,
+ &(vtc_ee77322[0]), // expected_vtbl_contents
+ &(vtt_ee77322[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee77322),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77322),26, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77322),9, //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 cc422 : bb22 {
+ int c;
+ virtual void bar(); // _ZN5cc4223barEv
+ ~cc422(); // tgen
+ cc422(); // tgen
+};
+//SIG(-1 cc422) C1{ BC2{ BC3{ v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void cc422 ::bar(){vfunc_called(this, "_ZN5cc4223barEv");}
+cc422 ::~cc422(){ note_dtor("cc422", this);} // tgen
+cc422 ::cc422(){ note_ctor("cc422", this);} // tgen
+
+static void Test_cc422()
+{
+ extern Class_Descriptor cd_cc422;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,5)];
+ init_test(&cd_cc422, buf);
+ cc422 *dp, &lv = *(dp=new (buf) cc422());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,16), "sizeof(cc422)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc422)");
+ check_base_class_offset(lv, (aa2*)(bb22*), 0, "cc422");
+ check_base_class_offset(lv, (bb22*), 0, "cc422");
+ check_field_offset(lv, c, ABISELECT(16,12), "cc422.c");
+ test_class_info(&lv, &cd_cc422);
+ dp->~cc422();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc422(Test_cc422, "cc422", ABISELECT(24,16));
+
+#else // __cplusplus
+
+extern void _ZN5cc422C1Ev();
+extern void _ZN5cc422D1Ev();
+Name_Map name_map_cc422[] = {
+ NSPAIR(_ZN5cc422C1Ev),
+ NSPAIR(_ZN5cc422D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+static Base_Class bases_cc422[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI5cc422[];
+extern void _ZN4bb223fooEv();
+extern void _ZN5cc4223barEv();
+static VTBL_ENTRY vtc_cc422[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc422[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN5cc4223barEv,
+};
+extern VTBL_ENTRY _ZTI5cc422[];
+extern VTBL_ENTRY _ZTV5cc422[];
+Class_Descriptor cd_cc422 = { "cc422", // class name
+ bases_cc422, 2,
+ &(vtc_cc422[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,16), // object size
+ NSPAIRA(_ZTI5cc422),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV5cc422),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 dd0422 : cc422 {
+ int d;
+ ~dd0422(); // tgen
+ dd0422(); // tgen
+};
+//SIG(-1 dd0422) C1{ BC2{ BC3{ BC4{ v2 v1 Fi} v2 Fi} v1 Fi} Fi}
+
+
+dd0422 ::~dd0422(){ note_dtor("dd0422", this);} // tgen
+dd0422 ::dd0422(){ note_ctor("dd0422", this);} // tgen
+
+static void Test_dd0422()
+{
+ extern Class_Descriptor cd_dd0422;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd0422, buf);
+ dd0422 *dp, &lv = *(dp=new (buf) dd0422());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd0422)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0422)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc422*), 0, "dd0422");
+ check_base_class_offset(lv, (bb22*)(cc422*), 0, "dd0422");
+ check_base_class_offset(lv, (cc422*), 0, "dd0422");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd0422.d");
+ test_class_info(&lv, &cd_dd0422);
+ dp->~dd0422();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0422(Test_dd0422, "dd0422", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd0422C1Ev();
+extern void _ZN6dd0422D1Ev();
+Name_Map name_map_dd0422[] = {
+ NSPAIR(_ZN6dd0422C1Ev),
+ NSPAIR(_ZN6dd0422D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc422;
+extern VTBL_ENTRY _ZTI5cc422[];
+extern VTBL_ENTRY _ZTV5cc422[];
+static Base_Class bases_dd0422[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc422, 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 _ZTI6dd0422[];
+extern void _ZN4bb223fooEv();
+extern void _ZN5cc4223barEv();
+static VTBL_ENTRY vtc_dd0422[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0422[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN5cc4223barEv,
+};
+extern VTBL_ENTRY _ZTI6dd0422[];
+extern VTBL_ENTRY _ZTV6dd0422[];
+Class_Descriptor cd_dd0422 = { "dd0422", // class name
+ bases_dd0422, 3,
+ &(vtc_dd0422[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd0422),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0422),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 ee00422 : dd0422 {
+ int e;
+ ~ee00422(); // tgen
+ ee00422(); // tgen
+};
+//SIG(1 ee00422) C1{ BC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} v1 Fi} Fi} Fi}
+
+
+ee00422 ::~ee00422(){ note_dtor("ee00422", this);} // tgen
+ee00422 ::ee00422(){ note_ctor("ee00422", this);} // tgen
+
+static void Test_ee00422()
+{
+ extern Class_Descriptor cd_ee00422;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee00422, buf);
+ ee00422 *dp, &lv = *(dp=new (buf) ee00422());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee00422)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00422)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc422*)(dd0422*), 0, "ee00422");
+ check_base_class_offset(lv, (bb22*)(cc422*)(dd0422*), 0, "ee00422");
+ check_base_class_offset(lv, (cc422*)(dd0422*), 0, "ee00422");
+ check_base_class_offset(lv, (dd0422*), 0, "ee00422");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee00422.e");
+ test_class_info(&lv, &cd_ee00422);
+ dp->~ee00422();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00422(Test_ee00422, "ee00422", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee00422C1Ev();
+extern void _ZN7ee00422D1Ev();
+Name_Map name_map_ee00422[] = {
+ NSPAIR(_ZN7ee00422C1Ev),
+ NSPAIR(_ZN7ee00422D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc422;
+extern VTBL_ENTRY _ZTI5cc422[];
+extern VTBL_ENTRY _ZTV5cc422[];
+extern Class_Descriptor cd_dd0422;
+extern VTBL_ENTRY _ZTI6dd0422[];
+extern VTBL_ENTRY _ZTV6dd0422[];
+static Base_Class bases_ee00422[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc422, 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_dd0422, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee00422[];
+extern void _ZN4bb223fooEv();
+extern void _ZN5cc4223barEv();
+static VTBL_ENTRY vtc_ee00422[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00422[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN5cc4223barEv,
+};
+extern VTBL_ENTRY _ZTI7ee00422[];
+extern VTBL_ENTRY _ZTV7ee00422[];
+Class_Descriptor cd_ee00422 = { "ee00422", // class name
+ bases_ee00422, 4,
+ &(vtc_ee00422[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee00422),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00422),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 ee10422 : virtual dd0422 {
+ int e;
+ ~ee10422(); // tgen
+ ee10422(); // tgen
+};
+//SIG(1 ee10422) C1{ VBC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} v1 Fi} Fi} Fi}
+
+
+ee10422 ::~ee10422(){ note_dtor("ee10422", this);} // tgen
+ee10422 ::ee10422(){ note_ctor("ee10422", this);} // tgen
+
+static void Test_ee10422()
+{
+ extern Class_Descriptor cd_ee10422;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee10422, buf);
+ ee10422 *dp, &lv = *(dp=new (buf) ee10422());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee10422)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10422)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc422*)(dd0422*), ABISELECT(16,8), "ee10422");
+ check_base_class_offset(lv, (bb22*)(cc422*)(dd0422*), ABISELECT(16,8), "ee10422");
+ check_base_class_offset(lv, (cc422*)(dd0422*), ABISELECT(16,8), "ee10422");
+ check_base_class_offset(lv, (dd0422*), ABISELECT(16,8), "ee10422");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10422.e");
+ test_class_info(&lv, &cd_ee10422);
+ dp->~ee10422();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10422(Test_ee10422, "ee10422", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee10422C1Ev();
+extern void _ZN7ee10422D1Ev();
+Name_Map name_map_ee10422[] = {
+ NSPAIR(_ZN7ee10422C1Ev),
+ NSPAIR(_ZN7ee10422D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc422;
+extern VTBL_ENTRY _ZTI5cc422[];
+extern VTBL_ENTRY _ZTV5cc422[];
+extern Class_Descriptor cd_dd0422;
+extern VTBL_ENTRY _ZTI6dd0422[];
+extern VTBL_ENTRY _ZTV6dd0422[];
+static Base_Class bases_ee10422[] = {
+ // 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_bb22, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc422, 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_dd0422, 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 _ZTI7ee10422[];
+extern void _ZN4bb223fooEv();
+extern void _ZN5cc4223barEv();
+static VTBL_ENTRY vtc_ee10422[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10422[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10422[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN5cc4223barEv,
+};
+extern VTBL_ENTRY _ZTV7ee10422[];
+static VTT_ENTRY vtt_ee10422[] = {
+ {&(_ZTV7ee10422[3]), 3,9},
+ {&(_ZTV7ee10422[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee10422[];
+extern VTBL_ENTRY _ZTV7ee10422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10422[];
+Class_Descriptor cd_ee10422 = { "ee10422", // class name
+ bases_ee10422, 4,
+ &(vtc_ee10422[0]), // expected_vtbl_contents
+ &(vtt_ee10422[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee10422),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10422),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10422),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 ee20422 : dd0422 {
+ int e;
+ virtual void foo(); // _ZN7ee204223fooEv
+ ~ee20422(); // tgen
+ ee20422(); // tgen
+};
+//SIG(1 ee20422) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee20422 ::foo(){vfunc_called(this, "_ZN7ee204223fooEv");}
+ee20422 ::~ee20422(){ note_dtor("ee20422", this);} // tgen
+ee20422 ::ee20422(){ note_ctor("ee20422", this);} // tgen
+
+static void Test_ee20422()
+{
+ extern Class_Descriptor cd_ee20422;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee20422, buf);
+ ee20422 *dp, &lv = *(dp=new (buf) ee20422());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee20422)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20422)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc422*)(dd0422*), 0, "ee20422");
+ check_base_class_offset(lv, (bb22*)(cc422*)(dd0422*), 0, "ee20422");
+ check_base_class_offset(lv, (cc422*)(dd0422*), 0, "ee20422");
+ check_base_class_offset(lv, (dd0422*), 0, "ee20422");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee20422.e");
+ test_class_info(&lv, &cd_ee20422);
+ dp->~ee20422();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20422(Test_ee20422, "ee20422", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee20422C1Ev();
+extern void _ZN7ee20422D1Ev();
+Name_Map name_map_ee20422[] = {
+ NSPAIR(_ZN7ee20422C1Ev),
+ NSPAIR(_ZN7ee20422D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc422;
+extern VTBL_ENTRY _ZTI5cc422[];
+extern VTBL_ENTRY _ZTV5cc422[];
+extern Class_Descriptor cd_dd0422;
+extern VTBL_ENTRY _ZTI6dd0422[];
+extern VTBL_ENTRY _ZTV6dd0422[];
+static Base_Class bases_ee20422[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc422, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd0422, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee20422[];
+extern void _ZN7ee204223fooEv();
+extern void _ZN5cc4223barEv();
+static VTBL_ENTRY vtc_ee20422[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20422[0]),
+ (VTBL_ENTRY)&_ZN7ee204223fooEv,
+ (VTBL_ENTRY)&_ZN5cc4223barEv,
+};
+extern VTBL_ENTRY _ZTI7ee20422[];
+extern VTBL_ENTRY _ZTV7ee20422[];
+Class_Descriptor cd_ee20422 = { "ee20422", // class name
+ bases_ee20422, 4,
+ &(vtc_ee20422[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee20422),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20422),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 ee30422 : virtual dd0422 {
+ int e;
+ virtual void foo(); // _ZN7ee304223fooEv
+ ~ee30422(); // tgen
+ ee30422(); // tgen
+};
+//SIG(1 ee30422) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee30422 ::foo(){vfunc_called(this, "_ZN7ee304223fooEv");}
+ee30422 ::~ee30422(){ note_dtor("ee30422", this);} // tgen
+ee30422 ::ee30422(){ note_ctor("ee30422", this);} // tgen
+
+static void Test_ee30422()
+{
+ extern Class_Descriptor cd_ee30422;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee30422, buf);
+ ee30422 *dp, &lv = *(dp=new (buf) ee30422());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee30422)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30422)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc422*)(dd0422*), ABISELECT(16,8), "ee30422");
+ check_base_class_offset(lv, (bb22*)(cc422*)(dd0422*), ABISELECT(16,8), "ee30422");
+ check_base_class_offset(lv, (cc422*)(dd0422*), ABISELECT(16,8), "ee30422");
+ check_base_class_offset(lv, (dd0422*), ABISELECT(16,8), "ee30422");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30422.e");
+ test_class_info(&lv, &cd_ee30422);
+ dp->~ee30422();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30422(Test_ee30422, "ee30422", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee30422C1Ev();
+extern void _ZN7ee30422D1Ev();
+Name_Map name_map_ee30422[] = {
+ NSPAIR(_ZN7ee30422C1Ev),
+ NSPAIR(_ZN7ee30422D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc422;
+extern VTBL_ENTRY _ZTI5cc422[];
+extern VTBL_ENTRY _ZTV5cc422[];
+extern Class_Descriptor cd_dd0422;
+extern VTBL_ENTRY _ZTI6dd0422[];
+extern VTBL_ENTRY _ZTV6dd0422[];
+static Base_Class bases_ee30422[] = {
+ // 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_bb22, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc422, 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_dd0422, 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 _ZTI7ee30422[];
+extern void _ZN7ee304223fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee304223fooEv,_ZTv0_n12_N7ee304223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee304223fooEv,_ZThn8_N7ee304223fooEv)() __attribute__((weak));
+extern void _ZN5cc4223barEv();
+static VTBL_ENTRY vtc_ee30422[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30422[0]),
+ (VTBL_ENTRY)&_ZN7ee304223fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30422[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee304223fooEv,_ZTv0_n12_N7ee304223fooEv),
+ (VTBL_ENTRY)&_ZN5cc4223barEv,
+};
+extern VTBL_ENTRY _ZTV7ee30422[];
+static VTT_ENTRY vtt_ee30422[] = {
+ {&(_ZTV7ee30422[3]), 3,10},
+ {&(_ZTV7ee30422[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee30422[];
+extern VTBL_ENTRY _ZTV7ee30422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30422[];
+static VTBL_ENTRY alt_thunk_names1080[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee304223fooEv,_ZTv0_n12_N7ee304223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee304223fooEv,_ZThn8_N7ee304223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30422 = { "ee30422", // class name
+ bases_ee30422, 4,
+ &(vtc_ee30422[0]), // expected_vtbl_contents
+ &(vtt_ee30422[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee30422),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30422),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30422),2, //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 ee40422 : dd0422 {
+ int e;
+ virtual void bar(); // _ZN7ee404223barEv
+ ~ee40422(); // tgen
+ ee40422(); // tgen
+};
+//SIG(1 ee40422) C1{ BC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee40422 ::bar(){vfunc_called(this, "_ZN7ee404223barEv");}
+ee40422 ::~ee40422(){ note_dtor("ee40422", this);} // tgen
+ee40422 ::ee40422(){ note_ctor("ee40422", this);} // tgen
+
+static void Test_ee40422()
+{
+ extern Class_Descriptor cd_ee40422;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee40422, buf);
+ ee40422 *dp, &lv = *(dp=new (buf) ee40422());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee40422)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40422)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc422*)(dd0422*), 0, "ee40422");
+ check_base_class_offset(lv, (bb22*)(cc422*)(dd0422*), 0, "ee40422");
+ check_base_class_offset(lv, (cc422*)(dd0422*), 0, "ee40422");
+ check_base_class_offset(lv, (dd0422*), 0, "ee40422");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee40422.e");
+ test_class_info(&lv, &cd_ee40422);
+ dp->~ee40422();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40422(Test_ee40422, "ee40422", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee40422C1Ev();
+extern void _ZN7ee40422D1Ev();
+Name_Map name_map_ee40422[] = {
+ NSPAIR(_ZN7ee40422C1Ev),
+ NSPAIR(_ZN7ee40422D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc422;
+extern VTBL_ENTRY _ZTI5cc422[];
+extern VTBL_ENTRY _ZTV5cc422[];
+extern Class_Descriptor cd_dd0422;
+extern VTBL_ENTRY _ZTI6dd0422[];
+extern VTBL_ENTRY _ZTV6dd0422[];
+static Base_Class bases_ee40422[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc422, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd0422, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee40422[];
+extern void _ZN4bb223fooEv();
+extern void _ZN7ee404223barEv();
+static VTBL_ENTRY vtc_ee40422[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40422[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN7ee404223barEv,
+};
+extern VTBL_ENTRY _ZTI7ee40422[];
+extern VTBL_ENTRY _ZTV7ee40422[];
+Class_Descriptor cd_ee40422 = { "ee40422", // class name
+ bases_ee40422, 4,
+ &(vtc_ee40422[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee40422),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40422),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 ee50422 : virtual dd0422 {
+ int e;
+ virtual void bar(); // _ZN7ee504223barEv
+ ~ee50422(); // tgen
+ ee50422(); // tgen
+};
+//SIG(1 ee50422) C1{ VBC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee50422 ::bar(){vfunc_called(this, "_ZN7ee504223barEv");}
+ee50422 ::~ee50422(){ note_dtor("ee50422", this);} // tgen
+ee50422 ::ee50422(){ note_ctor("ee50422", this);} // tgen
+
+static void Test_ee50422()
+{
+ extern Class_Descriptor cd_ee50422;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee50422, buf);
+ ee50422 *dp, &lv = *(dp=new (buf) ee50422());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee50422)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50422)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc422*)(dd0422*), ABISELECT(16,8), "ee50422");
+ check_base_class_offset(lv, (bb22*)(cc422*)(dd0422*), ABISELECT(16,8), "ee50422");
+ check_base_class_offset(lv, (cc422*)(dd0422*), ABISELECT(16,8), "ee50422");
+ check_base_class_offset(lv, (dd0422*), ABISELECT(16,8), "ee50422");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50422.e");
+ test_class_info(&lv, &cd_ee50422);
+ dp->~ee50422();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50422(Test_ee50422, "ee50422", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee50422C1Ev();
+extern void _ZN7ee50422D1Ev();
+Name_Map name_map_ee50422[] = {
+ NSPAIR(_ZN7ee50422C1Ev),
+ NSPAIR(_ZN7ee50422D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc422;
+extern VTBL_ENTRY _ZTI5cc422[];
+extern VTBL_ENTRY _ZTV5cc422[];
+extern Class_Descriptor cd_dd0422;
+extern VTBL_ENTRY _ZTI6dd0422[];
+extern VTBL_ENTRY _ZTV6dd0422[];
+static Base_Class bases_ee50422[] = {
+ // 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_bb22, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc422, 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_dd0422, 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 _ZTI7ee50422[];
+extern void _ZN7ee504223barEv();
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee504223barEv,_ZTv0_n16_N7ee504223barEv)();
+extern void ABISELECT(_ZThn16_N7ee504223barEv,_ZThn8_N7ee504223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee50422[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50422[0]),
+ (VTBL_ENTRY)&_ZN7ee504223barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50422[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee504223barEv,_ZTv0_n16_N7ee504223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee50422[];
+static VTT_ENTRY vtt_ee50422[] = {
+ {&(_ZTV7ee50422[3]), 3,10},
+ {&(_ZTV7ee50422[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee50422[];
+extern VTBL_ENTRY _ZTV7ee50422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50422[];
+static VTBL_ENTRY alt_thunk_names1081[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee504223barEv,_ZTv0_n16_N7ee504223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee504223barEv,_ZThn8_N7ee504223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50422 = { "ee50422", // class name
+ bases_ee50422, 4,
+ &(vtc_ee50422[0]), // expected_vtbl_contents
+ &(vtt_ee50422[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee50422),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50422),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50422),2, //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 ee60422 : dd0422 {
+ int e;
+ virtual void foo(); // _ZN7ee604223fooEv
+ virtual void bar(); // _ZN7ee604223barEv
+ ~ee60422(); // tgen
+ ee60422(); // tgen
+};
+//SIG(1 ee60422) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee60422 ::foo(){vfunc_called(this, "_ZN7ee604223fooEv");}
+void ee60422 ::bar(){vfunc_called(this, "_ZN7ee604223barEv");}
+ee60422 ::~ee60422(){ note_dtor("ee60422", this);} // tgen
+ee60422 ::ee60422(){ note_ctor("ee60422", this);} // tgen
+
+static void Test_ee60422()
+{
+ extern Class_Descriptor cd_ee60422;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee60422, buf);
+ ee60422 *dp, &lv = *(dp=new (buf) ee60422());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee60422)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60422)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc422*)(dd0422*), 0, "ee60422");
+ check_base_class_offset(lv, (bb22*)(cc422*)(dd0422*), 0, "ee60422");
+ check_base_class_offset(lv, (cc422*)(dd0422*), 0, "ee60422");
+ check_base_class_offset(lv, (dd0422*), 0, "ee60422");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee60422.e");
+ test_class_info(&lv, &cd_ee60422);
+ dp->~ee60422();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60422(Test_ee60422, "ee60422", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee60422C1Ev();
+extern void _ZN7ee60422D1Ev();
+Name_Map name_map_ee60422[] = {
+ NSPAIR(_ZN7ee60422C1Ev),
+ NSPAIR(_ZN7ee60422D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc422;
+extern VTBL_ENTRY _ZTI5cc422[];
+extern VTBL_ENTRY _ZTV5cc422[];
+extern Class_Descriptor cd_dd0422;
+extern VTBL_ENTRY _ZTI6dd0422[];
+extern VTBL_ENTRY _ZTV6dd0422[];
+static Base_Class bases_ee60422[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc422, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd0422, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee60422[];
+extern void _ZN7ee604223fooEv();
+extern void _ZN7ee604223barEv();
+static VTBL_ENTRY vtc_ee60422[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60422[0]),
+ (VTBL_ENTRY)&_ZN7ee604223fooEv,
+ (VTBL_ENTRY)&_ZN7ee604223barEv,
+};
+extern VTBL_ENTRY _ZTI7ee60422[];
+extern VTBL_ENTRY _ZTV7ee60422[];
+Class_Descriptor cd_ee60422 = { "ee60422", // class name
+ bases_ee60422, 4,
+ &(vtc_ee60422[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee60422),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60422),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 ee70422 : virtual dd0422 {
+ int e;
+ virtual void foo(); // _ZN7ee704223fooEv
+ virtual void bar(); // _ZN7ee704223barEv
+ ~ee70422(); // tgen
+ ee70422(); // tgen
+};
+//SIG(1 ee70422) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee70422 ::foo(){vfunc_called(this, "_ZN7ee704223fooEv");}
+void ee70422 ::bar(){vfunc_called(this, "_ZN7ee704223barEv");}
+ee70422 ::~ee70422(){ note_dtor("ee70422", this);} // tgen
+ee70422 ::ee70422(){ note_ctor("ee70422", this);} // tgen
+
+static void Test_ee70422()
+{
+ extern Class_Descriptor cd_ee70422;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee70422, buf);
+ ee70422 *dp, &lv = *(dp=new (buf) ee70422());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee70422)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70422)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc422*)(dd0422*), ABISELECT(16,8), "ee70422");
+ check_base_class_offset(lv, (bb22*)(cc422*)(dd0422*), ABISELECT(16,8), "ee70422");
+ check_base_class_offset(lv, (cc422*)(dd0422*), ABISELECT(16,8), "ee70422");
+ check_base_class_offset(lv, (dd0422*), ABISELECT(16,8), "ee70422");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70422.e");
+ test_class_info(&lv, &cd_ee70422);
+ dp->~ee70422();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70422(Test_ee70422, "ee70422", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee70422C1Ev();
+extern void _ZN7ee70422D1Ev();
+Name_Map name_map_ee70422[] = {
+ NSPAIR(_ZN7ee70422C1Ev),
+ NSPAIR(_ZN7ee70422D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc422;
+extern VTBL_ENTRY _ZTI5cc422[];
+extern VTBL_ENTRY _ZTV5cc422[];
+extern Class_Descriptor cd_dd0422;
+extern VTBL_ENTRY _ZTI6dd0422[];
+extern VTBL_ENTRY _ZTV6dd0422[];
+static Base_Class bases_ee70422[] = {
+ // 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_bb22, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc422, 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_dd0422, 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 _ZTI7ee70422[];
+extern void _ZN7ee704223fooEv();
+extern void _ZN7ee704223barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee704223fooEv,_ZTv0_n12_N7ee704223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee704223fooEv,_ZThn8_N7ee704223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee704223barEv,_ZTv0_n16_N7ee704223barEv)();
+extern void ABISELECT(_ZThn16_N7ee704223barEv,_ZThn8_N7ee704223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70422[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70422[0]),
+ (VTBL_ENTRY)&_ZN7ee704223fooEv,
+ (VTBL_ENTRY)&_ZN7ee704223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70422[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee704223fooEv,_ZTv0_n12_N7ee704223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee704223barEv,_ZTv0_n16_N7ee704223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee70422[];
+static VTT_ENTRY vtt_ee70422[] = {
+ {&(_ZTV7ee70422[3]), 3,11},
+ {&(_ZTV7ee70422[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee70422[];
+extern VTBL_ENTRY _ZTV7ee70422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70422[];
+static VTBL_ENTRY alt_thunk_names1082[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee704223barEv,_ZTv0_n16_N7ee704223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee704223barEv,_ZThn8_N7ee704223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee704223fooEv,_ZTv0_n12_N7ee704223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee704223fooEv,_ZThn8_N7ee704223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70422 = { "ee70422", // class name
+ bases_ee70422, 4,
+ &(vtc_ee70422[0]), // expected_vtbl_contents
+ &(vtt_ee70422[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee70422),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70422),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70422),2, //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 dd1422 : virtual cc422 {
+ int d;
+ ~dd1422(); // tgen
+ dd1422(); // tgen
+};
+//SIG(-1 dd1422) C1{ VBC2{ BC3{ BC4{ v2 v1 Fi} v2 Fi} v1 Fi} Fi}
+
+
+dd1422 ::~dd1422(){ note_dtor("dd1422", this);} // tgen
+dd1422 ::dd1422(){ note_ctor("dd1422", this);} // tgen
+
+static void Test_dd1422()
+{
+ extern Class_Descriptor cd_dd1422;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd1422, buf);
+ dd1422 *dp, &lv = *(dp=new (buf) dd1422());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd1422)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1422)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc422*), ABISELECT(16,8), "dd1422");
+ check_base_class_offset(lv, (bb22*)(cc422*), ABISELECT(16,8), "dd1422");
+ check_base_class_offset(lv, (cc422*), ABISELECT(16,8), "dd1422");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1422.d");
+ test_class_info(&lv, &cd_dd1422);
+ dp->~dd1422();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1422(Test_dd1422, "dd1422", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd1422C1Ev();
+extern void _ZN6dd1422D1Ev();
+Name_Map name_map_dd1422[] = {
+ NSPAIR(_ZN6dd1422C1Ev),
+ NSPAIR(_ZN6dd1422D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc422;
+extern VTBL_ENTRY _ZTI5cc422[];
+extern VTBL_ENTRY _ZTV5cc422[];
+static Base_Class bases_dd1422[] = {
+ // 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_bb22, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc422, 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 _ZTI6dd1422[];
+extern void _ZN4bb223fooEv();
+extern void _ZN5cc4223barEv();
+static VTBL_ENTRY vtc_dd1422[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1422[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1422[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN5cc4223barEv,
+};
+extern VTBL_ENTRY _ZTV6dd1422[];
+static VTT_ENTRY vtt_dd1422[] = {
+ {&(_ZTV6dd1422[3]), 3,9},
+ {&(_ZTV6dd1422[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI6dd1422[];
+extern VTBL_ENTRY _ZTV6dd1422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1422[];
+Class_Descriptor cd_dd1422 = { "dd1422", // class name
+ bases_dd1422, 3,
+ &(vtc_dd1422[0]), // expected_vtbl_contents
+ &(vtt_dd1422[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd1422),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1422),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1422),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 ee01422 : dd1422 {
+ int e;
+ ~ee01422(); // tgen
+ ee01422(); // tgen
+};
+//SIG(1 ee01422) C1{ BC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} v1 Fi} Fi} Fi}
+
+
+ee01422 ::~ee01422(){ note_dtor("ee01422", this);} // tgen
+ee01422 ::ee01422(){ note_ctor("ee01422", this);} // tgen
+
+static void Test_ee01422()
+{
+ extern Class_Descriptor cd_ee01422;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee01422, buf);
+ ee01422 *dp, &lv = *(dp=new (buf) ee01422());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee01422)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01422)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc422*), ABISELECT(16,12), "ee01422");
+ check_base_class_offset(lv, (bb22*)(cc422*), ABISELECT(16,12), "ee01422");
+ check_base_class_offset(lv, (cc422*)(dd1422*), ABISELECT(16,12), "ee01422");
+ check_base_class_offset(lv, (dd1422*), 0, "ee01422");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01422.e");
+ test_class_info(&lv, &cd_ee01422);
+ dp->~ee01422();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01422(Test_ee01422, "ee01422", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee01422C1Ev();
+extern void _ZN7ee01422D1Ev();
+Name_Map name_map_ee01422[] = {
+ NSPAIR(_ZN7ee01422C1Ev),
+ NSPAIR(_ZN7ee01422D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc422;
+extern VTBL_ENTRY _ZTI5cc422[];
+extern VTBL_ENTRY _ZTV5cc422[];
+extern Class_Descriptor cd_dd1422;
+extern VTBL_ENTRY _ZTI6dd1422[];
+extern VTBL_ENTRY _ZTV6dd1422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1422[];
+static Base_Class bases_ee01422[] = {
+ // 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_bb22, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc422, 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_dd1422, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01422[];
+extern void _ZN4bb223fooEv();
+extern void _ZN5cc4223barEv();
+static VTBL_ENTRY vtc_ee01422[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01422[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01422[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN5cc4223barEv,
+};
+extern VTBL_ENTRY _ZTV7ee01422[];
+static VTBL_ENTRY _tg__ZTV6dd1422__7ee01422[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1422[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN5cc4223barEv();
+static VTBL_ENTRY _tg__ZTV5cc422__6dd1422__7ee01422[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1422[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN5cc4223barEv,
+};
+static VTT_ENTRY vtt_ee01422[] = {
+ {&(_ZTV7ee01422[3]), 3,9},
+ {&(_tg__ZTV6dd1422__7ee01422[3]), 3,3},
+ {&(_tg__ZTV5cc422__6dd1422__7ee01422[4]), 4,6},
+ {&(_ZTV7ee01422[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee01422[];
+extern VTBL_ENTRY _ZTV7ee01422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01422[];
+Class_Descriptor cd_ee01422 = { "ee01422", // class name
+ bases_ee01422, 4,
+ &(vtc_ee01422[0]), // expected_vtbl_contents
+ &(vtt_ee01422[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee01422),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01422),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01422),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 ee11422 : virtual dd1422 {
+ int e;
+ ~ee11422(); // tgen
+ ee11422(); // tgen
+};
+//SIG(1 ee11422) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} v1 Fi} Fi} Fi}
+
+
+ee11422 ::~ee11422(){ note_dtor("ee11422", this);} // tgen
+ee11422 ::ee11422(){ note_ctor("ee11422", this);} // tgen
+
+static void Test_ee11422()
+{
+ extern Class_Descriptor cd_ee11422;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee11422, buf);
+ ee11422 *dp, &lv = *(dp=new (buf) ee11422());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee11422)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11422)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc422*), ABISELECT(32,16), "ee11422");
+ check_base_class_offset(lv, (bb22*)(cc422*), ABISELECT(32,16), "ee11422");
+ check_base_class_offset(lv, (cc422*)(dd1422*), ABISELECT(32,16), "ee11422");
+ check_base_class_offset(lv, (dd1422*), ABISELECT(16,8), "ee11422");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11422.e");
+ test_class_info(&lv, &cd_ee11422);
+ dp->~ee11422();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11422(Test_ee11422, "ee11422", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee11422C1Ev();
+extern void _ZN7ee11422D1Ev();
+Name_Map name_map_ee11422[] = {
+ NSPAIR(_ZN7ee11422C1Ev),
+ NSPAIR(_ZN7ee11422D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc422;
+extern VTBL_ENTRY _ZTI5cc422[];
+extern VTBL_ENTRY _ZTV5cc422[];
+extern Class_Descriptor cd_dd1422;
+extern VTBL_ENTRY _ZTI6dd1422[];
+extern VTBL_ENTRY _ZTV6dd1422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1422[];
+static Base_Class bases_ee11422[] = {
+ // 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_bb22, 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_cc422, 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_dd1422, 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 _ZTI7ee11422[];
+extern void _ZN4bb223fooEv();
+extern void _ZN5cc4223barEv();
+static VTBL_ENTRY vtc_ee11422[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11422[0]),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11422[0]),
+ 0,
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11422[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN5cc4223barEv,
+};
+extern VTBL_ENTRY _ZTV7ee11422[];
+static VTBL_ENTRY _tg__ZTV6dd1422__7ee11422[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1422[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN5cc4223barEv();
+static VTBL_ENTRY _tg__ZTV5cc422__6dd1422__7ee11422[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1422[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN5cc4223barEv,
+};
+static VTT_ENTRY vtt_ee11422[] = {
+ {&(_ZTV7ee11422[4]), 4,13},
+ {&(_ZTV7ee11422[7]), 7,13},
+ {&(_ZTV7ee11422[11]), 11,13},
+ {&(_tg__ZTV6dd1422__7ee11422[3]), 3,3},
+ {&(_tg__ZTV5cc422__6dd1422__7ee11422[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee11422[];
+extern VTBL_ENTRY _ZTV7ee11422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11422[];
+Class_Descriptor cd_ee11422 = { "ee11422", // class name
+ bases_ee11422, 4,
+ &(vtc_ee11422[0]), // expected_vtbl_contents
+ &(vtt_ee11422[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee11422),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11422),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11422),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 ee21422 : dd1422 {
+ int e;
+ virtual void foo(); // _ZN7ee214223fooEv
+ ~ee21422(); // tgen
+ ee21422(); // tgen
+};
+//SIG(1 ee21422) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee21422 ::foo(){vfunc_called(this, "_ZN7ee214223fooEv");}
+ee21422 ::~ee21422(){ note_dtor("ee21422", this);} // tgen
+ee21422 ::ee21422(){ note_ctor("ee21422", this);} // tgen
+
+static void Test_ee21422()
+{
+ extern Class_Descriptor cd_ee21422;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee21422, buf);
+ ee21422 *dp, &lv = *(dp=new (buf) ee21422());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee21422)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21422)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc422*), ABISELECT(16,12), "ee21422");
+ check_base_class_offset(lv, (bb22*)(cc422*), ABISELECT(16,12), "ee21422");
+ check_base_class_offset(lv, (cc422*)(dd1422*), ABISELECT(16,12), "ee21422");
+ check_base_class_offset(lv, (dd1422*), 0, "ee21422");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21422.e");
+ test_class_info(&lv, &cd_ee21422);
+ dp->~ee21422();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21422(Test_ee21422, "ee21422", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee21422C1Ev();
+extern void _ZN7ee21422D1Ev();
+Name_Map name_map_ee21422[] = {
+ NSPAIR(_ZN7ee21422C1Ev),
+ NSPAIR(_ZN7ee21422D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc422;
+extern VTBL_ENTRY _ZTI5cc422[];
+extern VTBL_ENTRY _ZTV5cc422[];
+extern Class_Descriptor cd_dd1422;
+extern VTBL_ENTRY _ZTI6dd1422[];
+extern VTBL_ENTRY _ZTV6dd1422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1422[];
+static Base_Class bases_ee21422[] = {
+ // 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_bb22, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc422, 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_dd1422, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21422[];
+extern void _ZN7ee214223fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee214223fooEv,_ZTv0_n12_N7ee214223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee214223fooEv,_ZThn12_N7ee214223fooEv)() __attribute__((weak));
+extern void _ZN5cc4223barEv();
+static VTBL_ENTRY vtc_ee21422[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21422[0]),
+ (VTBL_ENTRY)&_ZN7ee214223fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21422[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee214223fooEv,_ZTv0_n12_N7ee214223fooEv),
+ (VTBL_ENTRY)&_ZN5cc4223barEv,
+};
+extern VTBL_ENTRY _ZTV7ee21422[];
+static VTBL_ENTRY _tg__ZTV6dd1422__7ee21422[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1422[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN5cc4223barEv();
+static VTBL_ENTRY _tg__ZTV5cc422__6dd1422__7ee21422[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1422[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN5cc4223barEv,
+};
+static VTT_ENTRY vtt_ee21422[] = {
+ {&(_ZTV7ee21422[3]), 3,10},
+ {&(_tg__ZTV6dd1422__7ee21422[3]), 3,3},
+ {&(_tg__ZTV5cc422__6dd1422__7ee21422[4]), 4,6},
+ {&(_ZTV7ee21422[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee21422[];
+extern VTBL_ENTRY _ZTV7ee21422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21422[];
+static VTBL_ENTRY alt_thunk_names1083[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee214223fooEv,_ZTv0_n12_N7ee214223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee214223fooEv,_ZThn12_N7ee214223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21422 = { "ee21422", // class name
+ bases_ee21422, 4,
+ &(vtc_ee21422[0]), // expected_vtbl_contents
+ &(vtt_ee21422[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee21422),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21422),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21422),4, //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 ee31422 : virtual dd1422 {
+ int e;
+ virtual void foo(); // _ZN7ee314223fooEv
+ ~ee31422(); // tgen
+ ee31422(); // tgen
+};
+//SIG(1 ee31422) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee31422 ::foo(){vfunc_called(this, "_ZN7ee314223fooEv");}
+ee31422 ::~ee31422(){ note_dtor("ee31422", this);} // tgen
+ee31422 ::ee31422(){ note_ctor("ee31422", this);} // tgen
+
+static void Test_ee31422()
+{
+ extern Class_Descriptor cd_ee31422;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee31422, buf);
+ ee31422 *dp, &lv = *(dp=new (buf) ee31422());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee31422)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31422)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc422*), ABISELECT(32,16), "ee31422");
+ check_base_class_offset(lv, (bb22*)(cc422*), ABISELECT(32,16), "ee31422");
+ check_base_class_offset(lv, (cc422*)(dd1422*), ABISELECT(32,16), "ee31422");
+ check_base_class_offset(lv, (dd1422*), ABISELECT(16,8), "ee31422");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31422.e");
+ test_class_info(&lv, &cd_ee31422);
+ dp->~ee31422();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31422(Test_ee31422, "ee31422", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee31422C1Ev();
+extern void _ZN7ee31422D1Ev();
+Name_Map name_map_ee31422[] = {
+ NSPAIR(_ZN7ee31422C1Ev),
+ NSPAIR(_ZN7ee31422D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc422;
+extern VTBL_ENTRY _ZTI5cc422[];
+extern VTBL_ENTRY _ZTV5cc422[];
+extern Class_Descriptor cd_dd1422;
+extern VTBL_ENTRY _ZTI6dd1422[];
+extern VTBL_ENTRY _ZTV6dd1422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1422[];
+static Base_Class bases_ee31422[] = {
+ // 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_bb22, 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_cc422, 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_dd1422, 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 _ZTI7ee31422[];
+extern void _ZN7ee314223fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee314223fooEv,_ZTv0_n12_N7ee314223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee314223fooEv,_ZThn16_N7ee314223fooEv)() __attribute__((weak));
+extern void _ZN5cc4223barEv();
+static VTBL_ENTRY vtc_ee31422[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31422[0]),
+ (VTBL_ENTRY)&_ZN7ee314223fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31422[0]),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31422[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee314223fooEv,_ZTv0_n12_N7ee314223fooEv),
+ (VTBL_ENTRY)&_ZN5cc4223barEv,
+};
+extern VTBL_ENTRY _ZTV7ee31422[];
+static VTBL_ENTRY _tg__ZTV6dd1422__7ee31422[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1422[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN5cc4223barEv();
+static VTBL_ENTRY _tg__ZTV5cc422__6dd1422__7ee31422[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1422[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN5cc4223barEv,
+};
+static VTT_ENTRY vtt_ee31422[] = {
+ {&(_ZTV7ee31422[4]), 4,14},
+ {&(_ZTV7ee31422[8]), 8,14},
+ {&(_ZTV7ee31422[12]), 12,14},
+ {&(_tg__ZTV6dd1422__7ee31422[3]), 3,3},
+ {&(_tg__ZTV5cc422__6dd1422__7ee31422[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee31422[];
+extern VTBL_ENTRY _ZTV7ee31422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31422[];
+static VTBL_ENTRY alt_thunk_names1084[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee314223fooEv,_ZTv0_n12_N7ee314223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee314223fooEv,_ZThn16_N7ee314223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31422 = { "ee31422", // class name
+ bases_ee31422, 4,
+ &(vtc_ee31422[0]), // expected_vtbl_contents
+ &(vtt_ee31422[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee31422),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31422),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31422),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1084,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee41422 : dd1422 {
+ int e;
+ virtual void bar(); // _ZN7ee414223barEv
+ ~ee41422(); // tgen
+ ee41422(); // tgen
+};
+//SIG(1 ee41422) C1{ BC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee41422 ::bar(){vfunc_called(this, "_ZN7ee414223barEv");}
+ee41422 ::~ee41422(){ note_dtor("ee41422", this);} // tgen
+ee41422 ::ee41422(){ note_ctor("ee41422", this);} // tgen
+
+static void Test_ee41422()
+{
+ extern Class_Descriptor cd_ee41422;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee41422, buf);
+ ee41422 *dp, &lv = *(dp=new (buf) ee41422());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee41422)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41422)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc422*), ABISELECT(16,12), "ee41422");
+ check_base_class_offset(lv, (bb22*)(cc422*), ABISELECT(16,12), "ee41422");
+ check_base_class_offset(lv, (cc422*)(dd1422*), ABISELECT(16,12), "ee41422");
+ check_base_class_offset(lv, (dd1422*), 0, "ee41422");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41422.e");
+ test_class_info(&lv, &cd_ee41422);
+ dp->~ee41422();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41422(Test_ee41422, "ee41422", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee41422C1Ev();
+extern void _ZN7ee41422D1Ev();
+Name_Map name_map_ee41422[] = {
+ NSPAIR(_ZN7ee41422C1Ev),
+ NSPAIR(_ZN7ee41422D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc422;
+extern VTBL_ENTRY _ZTI5cc422[];
+extern VTBL_ENTRY _ZTV5cc422[];
+extern Class_Descriptor cd_dd1422;
+extern VTBL_ENTRY _ZTI6dd1422[];
+extern VTBL_ENTRY _ZTV6dd1422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1422[];
+static Base_Class bases_ee41422[] = {
+ // 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_bb22, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc422, 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_dd1422, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41422[];
+extern void _ZN7ee414223barEv();
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee414223barEv,_ZTv0_n16_N7ee414223barEv)();
+extern void ABISELECT(_ZThn16_N7ee414223barEv,_ZThn12_N7ee414223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee41422[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41422[0]),
+ (VTBL_ENTRY)&_ZN7ee414223barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41422[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee414223barEv,_ZTv0_n16_N7ee414223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee41422[];
+static VTBL_ENTRY _tg__ZTV6dd1422__7ee41422[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1422[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN5cc4223barEv();
+static VTBL_ENTRY _tg__ZTV5cc422__6dd1422__7ee41422[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1422[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN5cc4223barEv,
+};
+static VTT_ENTRY vtt_ee41422[] = {
+ {&(_ZTV7ee41422[3]), 3,10},
+ {&(_tg__ZTV6dd1422__7ee41422[3]), 3,3},
+ {&(_tg__ZTV5cc422__6dd1422__7ee41422[4]), 4,6},
+ {&(_ZTV7ee41422[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee41422[];
+extern VTBL_ENTRY _ZTV7ee41422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41422[];
+static VTBL_ENTRY alt_thunk_names1085[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee414223barEv,_ZTv0_n16_N7ee414223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee414223barEv,_ZThn12_N7ee414223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41422 = { "ee41422", // class name
+ bases_ee41422, 4,
+ &(vtc_ee41422[0]), // expected_vtbl_contents
+ &(vtt_ee41422[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee41422),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41422),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41422),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1085,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee51422 : virtual dd1422 {
+ int e;
+ virtual void bar(); // _ZN7ee514223barEv
+ ~ee51422(); // tgen
+ ee51422(); // tgen
+};
+//SIG(1 ee51422) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee51422 ::bar(){vfunc_called(this, "_ZN7ee514223barEv");}
+ee51422 ::~ee51422(){ note_dtor("ee51422", this);} // tgen
+ee51422 ::ee51422(){ note_ctor("ee51422", this);} // tgen
+
+static void Test_ee51422()
+{
+ extern Class_Descriptor cd_ee51422;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee51422, buf);
+ ee51422 *dp, &lv = *(dp=new (buf) ee51422());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee51422)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51422)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc422*), ABISELECT(32,16), "ee51422");
+ check_base_class_offset(lv, (bb22*)(cc422*), ABISELECT(32,16), "ee51422");
+ check_base_class_offset(lv, (cc422*)(dd1422*), ABISELECT(32,16), "ee51422");
+ check_base_class_offset(lv, (dd1422*), ABISELECT(16,8), "ee51422");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51422.e");
+ test_class_info(&lv, &cd_ee51422);
+ dp->~ee51422();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51422(Test_ee51422, "ee51422", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee51422C1Ev();
+extern void _ZN7ee51422D1Ev();
+Name_Map name_map_ee51422[] = {
+ NSPAIR(_ZN7ee51422C1Ev),
+ NSPAIR(_ZN7ee51422D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc422;
+extern VTBL_ENTRY _ZTI5cc422[];
+extern VTBL_ENTRY _ZTV5cc422[];
+extern Class_Descriptor cd_dd1422;
+extern VTBL_ENTRY _ZTI6dd1422[];
+extern VTBL_ENTRY _ZTV6dd1422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1422[];
+static Base_Class bases_ee51422[] = {
+ // 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_bb22, 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_cc422, 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_dd1422, 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 _ZTI7ee51422[];
+extern void _ZN7ee514223barEv();
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee514223barEv,_ZTv0_n16_N7ee514223barEv)();
+extern void ABISELECT(_ZThn32_N7ee514223barEv,_ZThn16_N7ee514223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee51422[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51422[0]),
+ (VTBL_ENTRY)&_ZN7ee514223barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51422[0]),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51422[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee514223barEv,_ZTv0_n16_N7ee514223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee51422[];
+static VTBL_ENTRY _tg__ZTV6dd1422__7ee51422[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1422[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN5cc4223barEv();
+static VTBL_ENTRY _tg__ZTV5cc422__6dd1422__7ee51422[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1422[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN5cc4223barEv,
+};
+static VTT_ENTRY vtt_ee51422[] = {
+ {&(_ZTV7ee51422[4]), 4,14},
+ {&(_ZTV7ee51422[8]), 8,14},
+ {&(_ZTV7ee51422[12]), 12,14},
+ {&(_tg__ZTV6dd1422__7ee51422[3]), 3,3},
+ {&(_tg__ZTV5cc422__6dd1422__7ee51422[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee51422[];
+extern VTBL_ENTRY _ZTV7ee51422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51422[];
+static VTBL_ENTRY alt_thunk_names1086[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee514223barEv,_ZTv0_n16_N7ee514223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee514223barEv,_ZThn16_N7ee514223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51422 = { "ee51422", // class name
+ bases_ee51422, 4,
+ &(vtc_ee51422[0]), // expected_vtbl_contents
+ &(vtt_ee51422[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee51422),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51422),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51422),5, //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 ee61422 : dd1422 {
+ int e;
+ virtual void foo(); // _ZN7ee614223fooEv
+ virtual void bar(); // _ZN7ee614223barEv
+ ~ee61422(); // tgen
+ ee61422(); // tgen
+};
+//SIG(1 ee61422) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee61422 ::foo(){vfunc_called(this, "_ZN7ee614223fooEv");}
+void ee61422 ::bar(){vfunc_called(this, "_ZN7ee614223barEv");}
+ee61422 ::~ee61422(){ note_dtor("ee61422", this);} // tgen
+ee61422 ::ee61422(){ note_ctor("ee61422", this);} // tgen
+
+static void Test_ee61422()
+{
+ extern Class_Descriptor cd_ee61422;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee61422, buf);
+ ee61422 *dp, &lv = *(dp=new (buf) ee61422());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee61422)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61422)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc422*), ABISELECT(16,12), "ee61422");
+ check_base_class_offset(lv, (bb22*)(cc422*), ABISELECT(16,12), "ee61422");
+ check_base_class_offset(lv, (cc422*)(dd1422*), ABISELECT(16,12), "ee61422");
+ check_base_class_offset(lv, (dd1422*), 0, "ee61422");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61422.e");
+ test_class_info(&lv, &cd_ee61422);
+ dp->~ee61422();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61422(Test_ee61422, "ee61422", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee61422C1Ev();
+extern void _ZN7ee61422D1Ev();
+Name_Map name_map_ee61422[] = {
+ NSPAIR(_ZN7ee61422C1Ev),
+ NSPAIR(_ZN7ee61422D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc422;
+extern VTBL_ENTRY _ZTI5cc422[];
+extern VTBL_ENTRY _ZTV5cc422[];
+extern Class_Descriptor cd_dd1422;
+extern VTBL_ENTRY _ZTI6dd1422[];
+extern VTBL_ENTRY _ZTV6dd1422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1422[];
+static Base_Class bases_ee61422[] = {
+ // 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_bb22, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc422, 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_dd1422, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61422[];
+extern void _ZN7ee614223fooEv();
+extern void _ZN7ee614223barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee614223fooEv,_ZTv0_n12_N7ee614223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee614223fooEv,_ZThn12_N7ee614223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee614223barEv,_ZTv0_n16_N7ee614223barEv)();
+extern void ABISELECT(_ZThn16_N7ee614223barEv,_ZThn12_N7ee614223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61422[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61422[0]),
+ (VTBL_ENTRY)&_ZN7ee614223fooEv,
+ (VTBL_ENTRY)&_ZN7ee614223barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61422[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee614223fooEv,_ZTv0_n12_N7ee614223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee614223barEv,_ZTv0_n16_N7ee614223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee61422[];
+static VTBL_ENTRY _tg__ZTV6dd1422__7ee61422[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1422[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN5cc4223barEv();
+static VTBL_ENTRY _tg__ZTV5cc422__6dd1422__7ee61422[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1422[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN5cc4223barEv,
+};
+static VTT_ENTRY vtt_ee61422[] = {
+ {&(_ZTV7ee61422[3]), 3,11},
+ {&(_tg__ZTV6dd1422__7ee61422[3]), 3,3},
+ {&(_tg__ZTV5cc422__6dd1422__7ee61422[4]), 4,6},
+ {&(_ZTV7ee61422[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee61422[];
+extern VTBL_ENTRY _ZTV7ee61422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61422[];
+static VTBL_ENTRY alt_thunk_names1087[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee614223barEv,_ZTv0_n16_N7ee614223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee614223barEv,_ZThn12_N7ee614223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee614223fooEv,_ZTv0_n12_N7ee614223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee614223fooEv,_ZThn12_N7ee614223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61422 = { "ee61422", // class name
+ bases_ee61422, 4,
+ &(vtc_ee61422[0]), // expected_vtbl_contents
+ &(vtt_ee61422[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee61422),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61422),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61422),4, //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 ee71422 : virtual dd1422 {
+ int e;
+ virtual void foo(); // _ZN7ee714223fooEv
+ virtual void bar(); // _ZN7ee714223barEv
+ ~ee71422(); // tgen
+ ee71422(); // tgen
+};
+//SIG(1 ee71422) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee71422 ::foo(){vfunc_called(this, "_ZN7ee714223fooEv");}
+void ee71422 ::bar(){vfunc_called(this, "_ZN7ee714223barEv");}
+ee71422 ::~ee71422(){ note_dtor("ee71422", this);} // tgen
+ee71422 ::ee71422(){ note_ctor("ee71422", this);} // tgen
+
+static void Test_ee71422()
+{
+ extern Class_Descriptor cd_ee71422;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee71422, buf);
+ ee71422 *dp, &lv = *(dp=new (buf) ee71422());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee71422)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71422)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc422*), ABISELECT(32,16), "ee71422");
+ check_base_class_offset(lv, (bb22*)(cc422*), ABISELECT(32,16), "ee71422");
+ check_base_class_offset(lv, (cc422*)(dd1422*), ABISELECT(32,16), "ee71422");
+ check_base_class_offset(lv, (dd1422*), ABISELECT(16,8), "ee71422");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71422.e");
+ test_class_info(&lv, &cd_ee71422);
+ dp->~ee71422();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71422(Test_ee71422, "ee71422", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee71422C1Ev();
+extern void _ZN7ee71422D1Ev();
+Name_Map name_map_ee71422[] = {
+ NSPAIR(_ZN7ee71422C1Ev),
+ NSPAIR(_ZN7ee71422D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc422;
+extern VTBL_ENTRY _ZTI5cc422[];
+extern VTBL_ENTRY _ZTV5cc422[];
+extern Class_Descriptor cd_dd1422;
+extern VTBL_ENTRY _ZTI6dd1422[];
+extern VTBL_ENTRY _ZTV6dd1422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1422[];
+static Base_Class bases_ee71422[] = {
+ // 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_bb22, 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_cc422, 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_dd1422, 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 _ZTI7ee71422[];
+extern void _ZN7ee714223fooEv();
+extern void _ZN7ee714223barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee714223fooEv,_ZTv0_n12_N7ee714223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee714223fooEv,_ZThn16_N7ee714223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee714223barEv,_ZTv0_n16_N7ee714223barEv)();
+extern void ABISELECT(_ZThn32_N7ee714223barEv,_ZThn16_N7ee714223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71422[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71422[0]),
+ (VTBL_ENTRY)&_ZN7ee714223fooEv,
+ (VTBL_ENTRY)&_ZN7ee714223barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71422[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71422[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee714223fooEv,_ZTv0_n12_N7ee714223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee714223barEv,_ZTv0_n16_N7ee714223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee71422[];
+static VTBL_ENTRY _tg__ZTV6dd1422__7ee71422[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1422[0]),
+};
+extern void _ZN4bb223fooEv();
+extern void _ZN5cc4223barEv();
+static VTBL_ENTRY _tg__ZTV5cc422__6dd1422__7ee71422[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1422[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN5cc4223barEv,
+};
+static VTT_ENTRY vtt_ee71422[] = {
+ {&(_ZTV7ee71422[4]), 4,15},
+ {&(_ZTV7ee71422[9]), 9,15},
+ {&(_ZTV7ee71422[13]), 13,15},
+ {&(_tg__ZTV6dd1422__7ee71422[3]), 3,3},
+ {&(_tg__ZTV5cc422__6dd1422__7ee71422[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee71422[];
+extern VTBL_ENTRY _ZTV7ee71422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71422[];
+static VTBL_ENTRY alt_thunk_names1088[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee714223barEv,_ZTv0_n16_N7ee714223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee714223barEv,_ZThn16_N7ee714223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee714223fooEv,_ZTv0_n12_N7ee714223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee714223fooEv,_ZThn16_N7ee714223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71422 = { "ee71422", // class name
+ bases_ee71422, 4,
+ &(vtc_ee71422[0]), // expected_vtbl_contents
+ &(vtt_ee71422[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee71422),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71422),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71422),5, //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 dd2422 : cc422 {
+ int d;
+ virtual void foo(); // _ZN6dd24223fooEv
+ ~dd2422(); // tgen
+ dd2422(); // tgen
+};
+//SIG(-1 dd2422) C1{ BC2{ BC3{ BC4{ v1 v2 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void dd2422 ::foo(){vfunc_called(this, "_ZN6dd24223fooEv");}
+dd2422 ::~dd2422(){ note_dtor("dd2422", this);} // tgen
+dd2422 ::dd2422(){ note_ctor("dd2422", this);} // tgen
+
+static void Test_dd2422()
+{
+ extern Class_Descriptor cd_dd2422;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd2422, buf);
+ dd2422 *dp, &lv = *(dp=new (buf) dd2422());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd2422)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2422)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc422*), 0, "dd2422");
+ check_base_class_offset(lv, (bb22*)(cc422*), 0, "dd2422");
+ check_base_class_offset(lv, (cc422*), 0, "dd2422");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd2422.d");
+ test_class_info(&lv, &cd_dd2422);
+ dp->~dd2422();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2422(Test_dd2422, "dd2422", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd2422C1Ev();
+extern void _ZN6dd2422D1Ev();
+Name_Map name_map_dd2422[] = {
+ NSPAIR(_ZN6dd2422C1Ev),
+ NSPAIR(_ZN6dd2422D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc422;
+extern VTBL_ENTRY _ZTI5cc422[];
+extern VTBL_ENTRY _ZTV5cc422[];
+static Base_Class bases_dd2422[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc422, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI6dd2422[];
+extern void _ZN6dd24223fooEv();
+extern void _ZN5cc4223barEv();
+static VTBL_ENTRY vtc_dd2422[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2422[0]),
+ (VTBL_ENTRY)&_ZN6dd24223fooEv,
+ (VTBL_ENTRY)&_ZN5cc4223barEv,
+};
+extern VTBL_ENTRY _ZTI6dd2422[];
+extern VTBL_ENTRY _ZTV6dd2422[];
+Class_Descriptor cd_dd2422 = { "dd2422", // class name
+ bases_dd2422, 3,
+ &(vtc_dd2422[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd2422),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2422),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 ee02422 : dd2422 {
+ int e;
+ ~ee02422(); // tgen
+ ee02422(); // tgen
+};
+//SIG(1 ee02422) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee02422 ::~ee02422(){ note_dtor("ee02422", this);} // tgen
+ee02422 ::ee02422(){ note_ctor("ee02422", this);} // tgen
+
+static void Test_ee02422()
+{
+ extern Class_Descriptor cd_ee02422;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee02422, buf);
+ ee02422 *dp, &lv = *(dp=new (buf) ee02422());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee02422)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02422)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc422*)(dd2422*), 0, "ee02422");
+ check_base_class_offset(lv, (bb22*)(cc422*)(dd2422*), 0, "ee02422");
+ check_base_class_offset(lv, (cc422*)(dd2422*), 0, "ee02422");
+ check_base_class_offset(lv, (dd2422*), 0, "ee02422");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee02422.e");
+ test_class_info(&lv, &cd_ee02422);
+ dp->~ee02422();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02422(Test_ee02422, "ee02422", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee02422C1Ev();
+extern void _ZN7ee02422D1Ev();
+Name_Map name_map_ee02422[] = {
+ NSPAIR(_ZN7ee02422C1Ev),
+ NSPAIR(_ZN7ee02422D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc422;
+extern VTBL_ENTRY _ZTI5cc422[];
+extern VTBL_ENTRY _ZTV5cc422[];
+extern Class_Descriptor cd_dd2422;
+extern VTBL_ENTRY _ZTI6dd2422[];
+extern VTBL_ENTRY _ZTV6dd2422[];
+static Base_Class bases_ee02422[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc422, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2422, 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 _ZTI7ee02422[];
+extern void _ZN6dd24223fooEv();
+extern void _ZN5cc4223barEv();
+static VTBL_ENTRY vtc_ee02422[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02422[0]),
+ (VTBL_ENTRY)&_ZN6dd24223fooEv,
+ (VTBL_ENTRY)&_ZN5cc4223barEv,
+};
+extern VTBL_ENTRY _ZTI7ee02422[];
+extern VTBL_ENTRY _ZTV7ee02422[];
+Class_Descriptor cd_ee02422 = { "ee02422", // class name
+ bases_ee02422, 4,
+ &(vtc_ee02422[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee02422),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02422),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 ee12422 : virtual dd2422 {
+ int e;
+ ~ee12422(); // tgen
+ ee12422(); // tgen
+};
+//SIG(1 ee12422) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee12422 ::~ee12422(){ note_dtor("ee12422", this);} // tgen
+ee12422 ::ee12422(){ note_ctor("ee12422", this);} // tgen
+
+static void Test_ee12422()
+{
+ extern Class_Descriptor cd_ee12422;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee12422, buf);
+ ee12422 *dp, &lv = *(dp=new (buf) ee12422());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee12422)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12422)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc422*)(dd2422*), ABISELECT(16,8), "ee12422");
+ check_base_class_offset(lv, (bb22*)(cc422*)(dd2422*), ABISELECT(16,8), "ee12422");
+ check_base_class_offset(lv, (cc422*)(dd2422*), ABISELECT(16,8), "ee12422");
+ check_base_class_offset(lv, (dd2422*), ABISELECT(16,8), "ee12422");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12422.e");
+ test_class_info(&lv, &cd_ee12422);
+ dp->~ee12422();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12422(Test_ee12422, "ee12422", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee12422C1Ev();
+extern void _ZN7ee12422D1Ev();
+Name_Map name_map_ee12422[] = {
+ NSPAIR(_ZN7ee12422C1Ev),
+ NSPAIR(_ZN7ee12422D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc422;
+extern VTBL_ENTRY _ZTI5cc422[];
+extern VTBL_ENTRY _ZTV5cc422[];
+extern Class_Descriptor cd_dd2422;
+extern VTBL_ENTRY _ZTI6dd2422[];
+extern VTBL_ENTRY _ZTV6dd2422[];
+static Base_Class bases_ee12422[] = {
+ // 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_bb22, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc422, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2422, 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 _ZTI7ee12422[];
+extern void _ZN6dd24223fooEv();
+extern void _ZN5cc4223barEv();
+static VTBL_ENTRY vtc_ee12422[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12422[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12422[0]),
+ (VTBL_ENTRY)&_ZN6dd24223fooEv,
+ (VTBL_ENTRY)&_ZN5cc4223barEv,
+};
+extern VTBL_ENTRY _ZTV7ee12422[];
+static VTT_ENTRY vtt_ee12422[] = {
+ {&(_ZTV7ee12422[3]), 3,9},
+ {&(_ZTV7ee12422[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee12422[];
+extern VTBL_ENTRY _ZTV7ee12422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12422[];
+Class_Descriptor cd_ee12422 = { "ee12422", // class name
+ bases_ee12422, 4,
+ &(vtc_ee12422[0]), // expected_vtbl_contents
+ &(vtt_ee12422[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee12422),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12422),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12422),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 ee22422 : dd2422 {
+ int e;
+ virtual void foo(); // _ZN7ee224223fooEv
+ ~ee22422(); // tgen
+ ee22422(); // tgen
+};
+//SIG(1 ee22422) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee22422 ::foo(){vfunc_called(this, "_ZN7ee224223fooEv");}
+ee22422 ::~ee22422(){ note_dtor("ee22422", this);} // tgen
+ee22422 ::ee22422(){ note_ctor("ee22422", this);} // tgen
+
+static void Test_ee22422()
+{
+ extern Class_Descriptor cd_ee22422;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee22422, buf);
+ ee22422 *dp, &lv = *(dp=new (buf) ee22422());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee22422)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22422)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc422*)(dd2422*), 0, "ee22422");
+ check_base_class_offset(lv, (bb22*)(cc422*)(dd2422*), 0, "ee22422");
+ check_base_class_offset(lv, (cc422*)(dd2422*), 0, "ee22422");
+ check_base_class_offset(lv, (dd2422*), 0, "ee22422");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee22422.e");
+ test_class_info(&lv, &cd_ee22422);
+ dp->~ee22422();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22422(Test_ee22422, "ee22422", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee22422C1Ev();
+extern void _ZN7ee22422D1Ev();
+Name_Map name_map_ee22422[] = {
+ NSPAIR(_ZN7ee22422C1Ev),
+ NSPAIR(_ZN7ee22422D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc422;
+extern VTBL_ENTRY _ZTI5cc422[];
+extern VTBL_ENTRY _ZTV5cc422[];
+extern Class_Descriptor cd_dd2422;
+extern VTBL_ENTRY _ZTI6dd2422[];
+extern VTBL_ENTRY _ZTV6dd2422[];
+static Base_Class bases_ee22422[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc422, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2422, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee22422[];
+extern void _ZN7ee224223fooEv();
+extern void _ZN5cc4223barEv();
+static VTBL_ENTRY vtc_ee22422[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22422[0]),
+ (VTBL_ENTRY)&_ZN7ee224223fooEv,
+ (VTBL_ENTRY)&_ZN5cc4223barEv,
+};
+extern VTBL_ENTRY _ZTI7ee22422[];
+extern VTBL_ENTRY _ZTV7ee22422[];
+Class_Descriptor cd_ee22422 = { "ee22422", // class name
+ bases_ee22422, 4,
+ &(vtc_ee22422[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee22422),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22422),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 ee32422 : virtual dd2422 {
+ int e;
+ virtual void foo(); // _ZN7ee324223fooEv
+ ~ee32422(); // tgen
+ ee32422(); // tgen
+};
+//SIG(1 ee32422) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee32422 ::foo(){vfunc_called(this, "_ZN7ee324223fooEv");}
+ee32422 ::~ee32422(){ note_dtor("ee32422", this);} // tgen
+ee32422 ::ee32422(){ note_ctor("ee32422", this);} // tgen
+
+static void Test_ee32422()
+{
+ extern Class_Descriptor cd_ee32422;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee32422, buf);
+ ee32422 *dp, &lv = *(dp=new (buf) ee32422());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee32422)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32422)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc422*)(dd2422*), ABISELECT(16,8), "ee32422");
+ check_base_class_offset(lv, (bb22*)(cc422*)(dd2422*), ABISELECT(16,8), "ee32422");
+ check_base_class_offset(lv, (cc422*)(dd2422*), ABISELECT(16,8), "ee32422");
+ check_base_class_offset(lv, (dd2422*), ABISELECT(16,8), "ee32422");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32422.e");
+ test_class_info(&lv, &cd_ee32422);
+ dp->~ee32422();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32422(Test_ee32422, "ee32422", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee32422C1Ev();
+extern void _ZN7ee32422D1Ev();
+Name_Map name_map_ee32422[] = {
+ NSPAIR(_ZN7ee32422C1Ev),
+ NSPAIR(_ZN7ee32422D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc422;
+extern VTBL_ENTRY _ZTI5cc422[];
+extern VTBL_ENTRY _ZTV5cc422[];
+extern Class_Descriptor cd_dd2422;
+extern VTBL_ENTRY _ZTI6dd2422[];
+extern VTBL_ENTRY _ZTV6dd2422[];
+static Base_Class bases_ee32422[] = {
+ // 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_bb22, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc422, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2422, 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 _ZTI7ee32422[];
+extern void _ZN7ee324223fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee324223fooEv,_ZTv0_n12_N7ee324223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee324223fooEv,_ZThn8_N7ee324223fooEv)() __attribute__((weak));
+extern void _ZN5cc4223barEv();
+static VTBL_ENTRY vtc_ee32422[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32422[0]),
+ (VTBL_ENTRY)&_ZN7ee324223fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32422[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee324223fooEv,_ZTv0_n12_N7ee324223fooEv),
+ (VTBL_ENTRY)&_ZN5cc4223barEv,
+};
+extern VTBL_ENTRY _ZTV7ee32422[];
+static VTT_ENTRY vtt_ee32422[] = {
+ {&(_ZTV7ee32422[3]), 3,10},
+ {&(_ZTV7ee32422[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee32422[];
+extern VTBL_ENTRY _ZTV7ee32422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32422[];
+static VTBL_ENTRY alt_thunk_names1089[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee324223fooEv,_ZTv0_n12_N7ee324223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee324223fooEv,_ZThn8_N7ee324223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32422 = { "ee32422", // class name
+ bases_ee32422, 4,
+ &(vtc_ee32422[0]), // expected_vtbl_contents
+ &(vtt_ee32422[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee32422),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32422),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32422),2, //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 ee42422 : dd2422 {
+ int e;
+ virtual void bar(); // _ZN7ee424223barEv
+ ~ee42422(); // tgen
+ ee42422(); // tgen
+};
+//SIG(1 ee42422) C1{ BC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee42422 ::bar(){vfunc_called(this, "_ZN7ee424223barEv");}
+ee42422 ::~ee42422(){ note_dtor("ee42422", this);} // tgen
+ee42422 ::ee42422(){ note_ctor("ee42422", this);} // tgen
+
+static void Test_ee42422()
+{
+ extern Class_Descriptor cd_ee42422;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee42422, buf);
+ ee42422 *dp, &lv = *(dp=new (buf) ee42422());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee42422)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42422)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc422*)(dd2422*), 0, "ee42422");
+ check_base_class_offset(lv, (bb22*)(cc422*)(dd2422*), 0, "ee42422");
+ check_base_class_offset(lv, (cc422*)(dd2422*), 0, "ee42422");
+ check_base_class_offset(lv, (dd2422*), 0, "ee42422");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee42422.e");
+ test_class_info(&lv, &cd_ee42422);
+ dp->~ee42422();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42422(Test_ee42422, "ee42422", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee42422C1Ev();
+extern void _ZN7ee42422D1Ev();
+Name_Map name_map_ee42422[] = {
+ NSPAIR(_ZN7ee42422C1Ev),
+ NSPAIR(_ZN7ee42422D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc422;
+extern VTBL_ENTRY _ZTI5cc422[];
+extern VTBL_ENTRY _ZTV5cc422[];
+extern Class_Descriptor cd_dd2422;
+extern VTBL_ENTRY _ZTI6dd2422[];
+extern VTBL_ENTRY _ZTV6dd2422[];
+static Base_Class bases_ee42422[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc422, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2422, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee42422[];
+extern void _ZN6dd24223fooEv();
+extern void _ZN7ee424223barEv();
+static VTBL_ENTRY vtc_ee42422[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42422[0]),
+ (VTBL_ENTRY)&_ZN6dd24223fooEv,
+ (VTBL_ENTRY)&_ZN7ee424223barEv,
+};
+extern VTBL_ENTRY _ZTI7ee42422[];
+extern VTBL_ENTRY _ZTV7ee42422[];
+Class_Descriptor cd_ee42422 = { "ee42422", // class name
+ bases_ee42422, 4,
+ &(vtc_ee42422[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee42422),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42422),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 ee52422 : virtual dd2422 {
+ int e;
+ virtual void bar(); // _ZN7ee524223barEv
+ ~ee52422(); // tgen
+ ee52422(); // tgen
+};
+//SIG(1 ee52422) C1{ VBC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee52422 ::bar(){vfunc_called(this, "_ZN7ee524223barEv");}
+ee52422 ::~ee52422(){ note_dtor("ee52422", this);} // tgen
+ee52422 ::ee52422(){ note_ctor("ee52422", this);} // tgen
+
+static void Test_ee52422()
+{
+ extern Class_Descriptor cd_ee52422;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee52422, buf);
+ ee52422 *dp, &lv = *(dp=new (buf) ee52422());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee52422)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52422)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc422*)(dd2422*), ABISELECT(16,8), "ee52422");
+ check_base_class_offset(lv, (bb22*)(cc422*)(dd2422*), ABISELECT(16,8), "ee52422");
+ check_base_class_offset(lv, (cc422*)(dd2422*), ABISELECT(16,8), "ee52422");
+ check_base_class_offset(lv, (dd2422*), ABISELECT(16,8), "ee52422");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52422.e");
+ test_class_info(&lv, &cd_ee52422);
+ dp->~ee52422();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52422(Test_ee52422, "ee52422", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee52422C1Ev();
+extern void _ZN7ee52422D1Ev();
+Name_Map name_map_ee52422[] = {
+ NSPAIR(_ZN7ee52422C1Ev),
+ NSPAIR(_ZN7ee52422D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc422;
+extern VTBL_ENTRY _ZTI5cc422[];
+extern VTBL_ENTRY _ZTV5cc422[];
+extern Class_Descriptor cd_dd2422;
+extern VTBL_ENTRY _ZTI6dd2422[];
+extern VTBL_ENTRY _ZTV6dd2422[];
+static Base_Class bases_ee52422[] = {
+ // 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_bb22, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc422, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2422, 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 _ZTI7ee52422[];
+extern void _ZN7ee524223barEv();
+extern void _ZN6dd24223fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee524223barEv,_ZTv0_n16_N7ee524223barEv)();
+extern void ABISELECT(_ZThn16_N7ee524223barEv,_ZThn8_N7ee524223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee52422[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52422[0]),
+ (VTBL_ENTRY)&_ZN7ee524223barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52422[0]),
+ (VTBL_ENTRY)&_ZN6dd24223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee524223barEv,_ZTv0_n16_N7ee524223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee52422[];
+static VTT_ENTRY vtt_ee52422[] = {
+ {&(_ZTV7ee52422[3]), 3,10},
+ {&(_ZTV7ee52422[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee52422[];
+extern VTBL_ENTRY _ZTV7ee52422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52422[];
+static VTBL_ENTRY alt_thunk_names1090[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee524223barEv,_ZTv0_n16_N7ee524223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee524223barEv,_ZThn8_N7ee524223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52422 = { "ee52422", // class name
+ bases_ee52422, 4,
+ &(vtc_ee52422[0]), // expected_vtbl_contents
+ &(vtt_ee52422[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee52422),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52422),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52422),2, //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 ee62422 : dd2422 {
+ int e;
+ virtual void foo(); // _ZN7ee624223fooEv
+ virtual void bar(); // _ZN7ee624223barEv
+ ~ee62422(); // tgen
+ ee62422(); // tgen
+};
+//SIG(1 ee62422) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62422 ::foo(){vfunc_called(this, "_ZN7ee624223fooEv");}
+void ee62422 ::bar(){vfunc_called(this, "_ZN7ee624223barEv");}
+ee62422 ::~ee62422(){ note_dtor("ee62422", this);} // tgen
+ee62422 ::ee62422(){ note_ctor("ee62422", this);} // tgen
+
+static void Test_ee62422()
+{
+ extern Class_Descriptor cd_ee62422;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee62422, buf);
+ ee62422 *dp, &lv = *(dp=new (buf) ee62422());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee62422)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62422)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc422*)(dd2422*), 0, "ee62422");
+ check_base_class_offset(lv, (bb22*)(cc422*)(dd2422*), 0, "ee62422");
+ check_base_class_offset(lv, (cc422*)(dd2422*), 0, "ee62422");
+ check_base_class_offset(lv, (dd2422*), 0, "ee62422");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee62422.e");
+ test_class_info(&lv, &cd_ee62422);
+ dp->~ee62422();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62422(Test_ee62422, "ee62422", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee62422C1Ev();
+extern void _ZN7ee62422D1Ev();
+Name_Map name_map_ee62422[] = {
+ NSPAIR(_ZN7ee62422C1Ev),
+ NSPAIR(_ZN7ee62422D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc422;
+extern VTBL_ENTRY _ZTI5cc422[];
+extern VTBL_ENTRY _ZTV5cc422[];
+extern Class_Descriptor cd_dd2422;
+extern VTBL_ENTRY _ZTI6dd2422[];
+extern VTBL_ENTRY _ZTV6dd2422[];
+static Base_Class bases_ee62422[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc422, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2422, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee62422[];
+extern void _ZN7ee624223fooEv();
+extern void _ZN7ee624223barEv();
+static VTBL_ENTRY vtc_ee62422[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62422[0]),
+ (VTBL_ENTRY)&_ZN7ee624223fooEv,
+ (VTBL_ENTRY)&_ZN7ee624223barEv,
+};
+extern VTBL_ENTRY _ZTI7ee62422[];
+extern VTBL_ENTRY _ZTV7ee62422[];
+Class_Descriptor cd_ee62422 = { "ee62422", // class name
+ bases_ee62422, 4,
+ &(vtc_ee62422[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee62422),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62422),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 ee72422 : virtual dd2422 {
+ int e;
+ virtual void foo(); // _ZN7ee724223fooEv
+ virtual void bar(); // _ZN7ee724223barEv
+ ~ee72422(); // tgen
+ ee72422(); // tgen
+};
+//SIG(1 ee72422) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72422 ::foo(){vfunc_called(this, "_ZN7ee724223fooEv");}
+void ee72422 ::bar(){vfunc_called(this, "_ZN7ee724223barEv");}
+ee72422 ::~ee72422(){ note_dtor("ee72422", this);} // tgen
+ee72422 ::ee72422(){ note_ctor("ee72422", this);} // tgen
+
+static void Test_ee72422()
+{
+ extern Class_Descriptor cd_ee72422;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee72422, buf);
+ ee72422 *dp, &lv = *(dp=new (buf) ee72422());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee72422)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72422)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc422*)(dd2422*), ABISELECT(16,8), "ee72422");
+ check_base_class_offset(lv, (bb22*)(cc422*)(dd2422*), ABISELECT(16,8), "ee72422");
+ check_base_class_offset(lv, (cc422*)(dd2422*), ABISELECT(16,8), "ee72422");
+ check_base_class_offset(lv, (dd2422*), ABISELECT(16,8), "ee72422");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72422.e");
+ test_class_info(&lv, &cd_ee72422);
+ dp->~ee72422();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72422(Test_ee72422, "ee72422", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee72422C1Ev();
+extern void _ZN7ee72422D1Ev();
+Name_Map name_map_ee72422[] = {
+ NSPAIR(_ZN7ee72422C1Ev),
+ NSPAIR(_ZN7ee72422D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc422;
+extern VTBL_ENTRY _ZTI5cc422[];
+extern VTBL_ENTRY _ZTV5cc422[];
+extern Class_Descriptor cd_dd2422;
+extern VTBL_ENTRY _ZTI6dd2422[];
+extern VTBL_ENTRY _ZTV6dd2422[];
+static Base_Class bases_ee72422[] = {
+ // 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_bb22, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc422, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2422, 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 _ZTI7ee72422[];
+extern void _ZN7ee724223fooEv();
+extern void _ZN7ee724223barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee724223fooEv,_ZTv0_n12_N7ee724223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee724223fooEv,_ZThn8_N7ee724223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee724223barEv,_ZTv0_n16_N7ee724223barEv)();
+extern void ABISELECT(_ZThn16_N7ee724223barEv,_ZThn8_N7ee724223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72422[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72422[0]),
+ (VTBL_ENTRY)&_ZN7ee724223fooEv,
+ (VTBL_ENTRY)&_ZN7ee724223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72422[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee724223fooEv,_ZTv0_n12_N7ee724223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee724223barEv,_ZTv0_n16_N7ee724223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee72422[];
+static VTT_ENTRY vtt_ee72422[] = {
+ {&(_ZTV7ee72422[3]), 3,11},
+ {&(_ZTV7ee72422[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee72422[];
+extern VTBL_ENTRY _ZTV7ee72422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72422[];
+static VTBL_ENTRY alt_thunk_names1091[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee724223barEv,_ZTv0_n16_N7ee724223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee724223barEv,_ZThn8_N7ee724223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee724223fooEv,_ZTv0_n12_N7ee724223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee724223fooEv,_ZThn8_N7ee724223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72422 = { "ee72422", // class name
+ bases_ee72422, 4,
+ &(vtc_ee72422[0]), // expected_vtbl_contents
+ &(vtt_ee72422[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee72422),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72422),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72422),2, //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 dd3422 : virtual cc422 {
+ int d;
+ virtual void foo(); // _ZN6dd34223fooEv
+ ~dd3422(); // tgen
+ dd3422(); // tgen
+};
+//SIG(-1 dd3422) C1{ VBC2{ BC3{ BC4{ v1 v2 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void dd3422 ::foo(){vfunc_called(this, "_ZN6dd34223fooEv");}
+dd3422 ::~dd3422(){ note_dtor("dd3422", this);} // tgen
+dd3422 ::dd3422(){ note_ctor("dd3422", this);} // tgen
+
+static void Test_dd3422()
+{
+ extern Class_Descriptor cd_dd3422;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd3422, buf);
+ dd3422 *dp, &lv = *(dp=new (buf) dd3422());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd3422)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3422)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc422*), ABISELECT(16,8), "dd3422");
+ check_base_class_offset(lv, (bb22*)(cc422*), ABISELECT(16,8), "dd3422");
+ check_base_class_offset(lv, (cc422*), ABISELECT(16,8), "dd3422");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3422.d");
+ test_class_info(&lv, &cd_dd3422);
+ dp->~dd3422();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3422(Test_dd3422, "dd3422", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd3422C1Ev();
+extern void _ZN6dd3422D1Ev();
+Name_Map name_map_dd3422[] = {
+ NSPAIR(_ZN6dd3422C1Ev),
+ NSPAIR(_ZN6dd3422D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc422;
+extern VTBL_ENTRY _ZTI5cc422[];
+extern VTBL_ENTRY _ZTV5cc422[];
+static Base_Class bases_dd3422[] = {
+ // 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_bb22, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc422, 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 _ZTI6dd3422[];
+extern void _ZN6dd34223fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd34223fooEv,_ZTv0_n12_N6dd34223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34223fooEv,_ZThn8_N6dd34223fooEv)() __attribute__((weak));
+extern void _ZN5cc4223barEv();
+static VTBL_ENTRY vtc_dd3422[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3422[0]),
+ (VTBL_ENTRY)&_ZN6dd34223fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3422[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34223fooEv,_ZTv0_n12_N6dd34223fooEv),
+ (VTBL_ENTRY)&_ZN5cc4223barEv,
+};
+extern VTBL_ENTRY _ZTV6dd3422[];
+static VTT_ENTRY vtt_dd3422[] = {
+ {&(_ZTV6dd3422[3]), 3,10},
+ {&(_ZTV6dd3422[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd3422[];
+extern VTBL_ENTRY _ZTV6dd3422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3422[];
+static VTBL_ENTRY alt_thunk_names1092[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34223fooEv,_ZTv0_n12_N6dd34223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34223fooEv,_ZThn8_N6dd34223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3422 = { "dd3422", // class name
+ bases_dd3422, 3,
+ &(vtc_dd3422[0]), // expected_vtbl_contents
+ &(vtt_dd3422[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd3422),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3422),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3422),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1092,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03422 : dd3422 {
+ int e;
+ ~ee03422(); // tgen
+ ee03422(); // tgen
+};
+//SIG(1 ee03422) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee03422 ::~ee03422(){ note_dtor("ee03422", this);} // tgen
+ee03422 ::ee03422(){ note_ctor("ee03422", this);} // tgen
+
+static void Test_ee03422()
+{
+ extern Class_Descriptor cd_ee03422;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee03422, buf);
+ ee03422 *dp, &lv = *(dp=new (buf) ee03422());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee03422)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03422)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc422*), ABISELECT(16,12), "ee03422");
+ check_base_class_offset(lv, (bb22*)(cc422*), ABISELECT(16,12), "ee03422");
+ check_base_class_offset(lv, (cc422*)(dd3422*), ABISELECT(16,12), "ee03422");
+ check_base_class_offset(lv, (dd3422*), 0, "ee03422");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03422.e");
+ test_class_info(&lv, &cd_ee03422);
+ dp->~ee03422();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03422(Test_ee03422, "ee03422", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee03422C1Ev();
+extern void _ZN7ee03422D1Ev();
+Name_Map name_map_ee03422[] = {
+ NSPAIR(_ZN7ee03422C1Ev),
+ NSPAIR(_ZN7ee03422D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc422;
+extern VTBL_ENTRY _ZTI5cc422[];
+extern VTBL_ENTRY _ZTV5cc422[];
+extern Class_Descriptor cd_dd3422;
+extern VTBL_ENTRY _ZTI6dd3422[];
+extern VTBL_ENTRY _ZTV6dd3422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3422[];
+static Base_Class bases_ee03422[] = {
+ // 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_bb22, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc422, 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_dd3422, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03422[];
+extern void _ZN6dd34223fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd34223fooEv,_ZTv0_n12_N6dd34223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34223fooEv,_ZThn12_N6dd34223fooEv)() __attribute__((weak));
+extern void _ZN5cc4223barEv();
+static VTBL_ENTRY vtc_ee03422[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03422[0]),
+ (VTBL_ENTRY)&_ZN6dd34223fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03422[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34223fooEv,_ZTv0_n12_N6dd34223fooEv),
+ (VTBL_ENTRY)&_ZN5cc4223barEv,
+};
+extern VTBL_ENTRY _ZTV7ee03422[];
+extern void _ZN6dd34223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3422__7ee03422[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3422[0]),
+ (VTBL_ENTRY)&_ZN6dd34223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd34223fooEv,_ZTv0_n12_N6dd34223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34223fooEv,_ZThn12_N6dd34223fooEv)() __attribute__((weak));
+extern void _ZN5cc4223barEv();
+static VTBL_ENTRY _tg__ZTV5cc422__6dd3422__7ee03422[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3422[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34223fooEv,_ZTv0_n12_N6dd34223fooEv),
+ (VTBL_ENTRY)&_ZN5cc4223barEv,
+};
+static VTT_ENTRY vtt_ee03422[] = {
+ {&(_ZTV7ee03422[3]), 3,10},
+ {&(_tg__ZTV6dd3422__7ee03422[3]), 3,4},
+ {&(_tg__ZTV5cc422__6dd3422__7ee03422[4]), 4,6},
+ {&(_ZTV7ee03422[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee03422[];
+extern VTBL_ENTRY _ZTV7ee03422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03422[];
+static VTBL_ENTRY alt_thunk_names1093[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34223fooEv,_ZTv0_n12_N6dd34223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34223fooEv,_ZThn12_N6dd34223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34223fooEv,_ZThn12_N6dd34223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03422 = { "ee03422", // class name
+ bases_ee03422, 4,
+ &(vtc_ee03422[0]), // expected_vtbl_contents
+ &(vtt_ee03422[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee03422),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03422),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03422),4, //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 ee13422 : virtual dd3422 {
+ int e;
+ ~ee13422(); // tgen
+ ee13422(); // tgen
+};
+//SIG(1 ee13422) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee13422 ::~ee13422(){ note_dtor("ee13422", this);} // tgen
+ee13422 ::ee13422(){ note_ctor("ee13422", this);} // tgen
+
+static void Test_ee13422()
+{
+ extern Class_Descriptor cd_ee13422;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee13422, buf);
+ ee13422 *dp, &lv = *(dp=new (buf) ee13422());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee13422)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13422)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc422*), ABISELECT(32,16), "ee13422");
+ check_base_class_offset(lv, (bb22*)(cc422*), ABISELECT(32,16), "ee13422");
+ check_base_class_offset(lv, (cc422*)(dd3422*), ABISELECT(32,16), "ee13422");
+ check_base_class_offset(lv, (dd3422*), ABISELECT(16,8), "ee13422");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13422.e");
+ test_class_info(&lv, &cd_ee13422);
+ dp->~ee13422();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13422(Test_ee13422, "ee13422", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee13422C1Ev();
+extern void _ZN7ee13422D1Ev();
+Name_Map name_map_ee13422[] = {
+ NSPAIR(_ZN7ee13422C1Ev),
+ NSPAIR(_ZN7ee13422D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc422;
+extern VTBL_ENTRY _ZTI5cc422[];
+extern VTBL_ENTRY _ZTV5cc422[];
+extern Class_Descriptor cd_dd3422;
+extern VTBL_ENTRY _ZTI6dd3422[];
+extern VTBL_ENTRY _ZTV6dd3422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3422[];
+static Base_Class bases_ee13422[] = {
+ // 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_bb22, 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_cc422, 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_dd3422, 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 _ZTI7ee13422[];
+extern void _ZN6dd34223fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd34223fooEv,_ZTv0_n12_N6dd34223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34223fooEv,_ZThn8_N6dd34223fooEv)() __attribute__((weak));
+extern void _ZN5cc4223barEv();
+static VTBL_ENTRY vtc_ee13422[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13422[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13422[0]),
+ (VTBL_ENTRY)&_ZN6dd34223fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13422[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34223fooEv,_ZTv0_n12_N6dd34223fooEv),
+ (VTBL_ENTRY)&_ZN5cc4223barEv,
+};
+extern VTBL_ENTRY _ZTV7ee13422[];
+extern void _ZN6dd34223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3422__7ee13422[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3422[0]),
+ (VTBL_ENTRY)&_ZN6dd34223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd34223fooEv,_ZTv0_n12_N6dd34223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34223fooEv,_ZThn8_N6dd34223fooEv)() __attribute__((weak));
+extern void _ZN5cc4223barEv();
+static VTBL_ENTRY _tg__ZTV5cc422__6dd3422__7ee13422[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3422[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34223fooEv,_ZTv0_n12_N6dd34223fooEv),
+ (VTBL_ENTRY)&_ZN5cc4223barEv,
+};
+static VTT_ENTRY vtt_ee13422[] = {
+ {&(_ZTV7ee13422[4]), 4,15},
+ {&(_ZTV7ee13422[8]), 8,15},
+ {&(_ZTV7ee13422[13]), 13,15},
+ {&(_tg__ZTV6dd3422__7ee13422[3]), 3,4},
+ {&(_tg__ZTV5cc422__6dd3422__7ee13422[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee13422[];
+extern VTBL_ENTRY _ZTV7ee13422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13422[];
+static VTBL_ENTRY alt_thunk_names1094[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34223fooEv,_ZTv0_n12_N6dd34223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34223fooEv,_ZThn8_N6dd34223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34223fooEv,_ZThn8_N6dd34223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13422 = { "ee13422", // class name
+ bases_ee13422, 4,
+ &(vtc_ee13422[0]), // expected_vtbl_contents
+ &(vtt_ee13422[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee13422),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13422),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13422),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1094,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee23422 : dd3422 {
+ int e;
+ virtual void foo(); // _ZN7ee234223fooEv
+ ~ee23422(); // tgen
+ ee23422(); // tgen
+};
+//SIG(1 ee23422) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee23422 ::foo(){vfunc_called(this, "_ZN7ee234223fooEv");}
+ee23422 ::~ee23422(){ note_dtor("ee23422", this);} // tgen
+ee23422 ::ee23422(){ note_ctor("ee23422", this);} // tgen
+
+static void Test_ee23422()
+{
+ extern Class_Descriptor cd_ee23422;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee23422, buf);
+ ee23422 *dp, &lv = *(dp=new (buf) ee23422());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee23422)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23422)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc422*), ABISELECT(16,12), "ee23422");
+ check_base_class_offset(lv, (bb22*)(cc422*), ABISELECT(16,12), "ee23422");
+ check_base_class_offset(lv, (cc422*)(dd3422*), ABISELECT(16,12), "ee23422");
+ check_base_class_offset(lv, (dd3422*), 0, "ee23422");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23422.e");
+ test_class_info(&lv, &cd_ee23422);
+ dp->~ee23422();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23422(Test_ee23422, "ee23422", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee23422C1Ev();
+extern void _ZN7ee23422D1Ev();
+Name_Map name_map_ee23422[] = {
+ NSPAIR(_ZN7ee23422C1Ev),
+ NSPAIR(_ZN7ee23422D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc422;
+extern VTBL_ENTRY _ZTI5cc422[];
+extern VTBL_ENTRY _ZTV5cc422[];
+extern Class_Descriptor cd_dd3422;
+extern VTBL_ENTRY _ZTI6dd3422[];
+extern VTBL_ENTRY _ZTV6dd3422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3422[];
+static Base_Class bases_ee23422[] = {
+ // 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_bb22, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc422, 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_dd3422, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23422[];
+extern void _ZN7ee234223fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee234223fooEv,_ZTv0_n12_N7ee234223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee234223fooEv,_ZThn12_N7ee234223fooEv)() __attribute__((weak));
+extern void _ZN5cc4223barEv();
+static VTBL_ENTRY vtc_ee23422[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23422[0]),
+ (VTBL_ENTRY)&_ZN7ee234223fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23422[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee234223fooEv,_ZTv0_n12_N7ee234223fooEv),
+ (VTBL_ENTRY)&_ZN5cc4223barEv,
+};
+extern VTBL_ENTRY _ZTV7ee23422[];
+extern void _ZN6dd34223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3422__7ee23422[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3422[0]),
+ (VTBL_ENTRY)&_ZN6dd34223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd34223fooEv,_ZTv0_n12_N6dd34223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34223fooEv,_ZThn12_N6dd34223fooEv)() __attribute__((weak));
+extern void _ZN5cc4223barEv();
+static VTBL_ENTRY _tg__ZTV5cc422__6dd3422__7ee23422[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3422[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34223fooEv,_ZTv0_n12_N6dd34223fooEv),
+ (VTBL_ENTRY)&_ZN5cc4223barEv,
+};
+static VTT_ENTRY vtt_ee23422[] = {
+ {&(_ZTV7ee23422[3]), 3,10},
+ {&(_tg__ZTV6dd3422__7ee23422[3]), 3,4},
+ {&(_tg__ZTV5cc422__6dd3422__7ee23422[4]), 4,6},
+ {&(_ZTV7ee23422[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee23422[];
+extern VTBL_ENTRY _ZTV7ee23422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23422[];
+static VTBL_ENTRY alt_thunk_names1095[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34223fooEv,_ZTv0_n12_N6dd34223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34223fooEv,_ZThn12_N6dd34223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee234223fooEv,_ZTv0_n12_N7ee234223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee234223fooEv,_ZThn12_N7ee234223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23422 = { "ee23422", // class name
+ bases_ee23422, 4,
+ &(vtc_ee23422[0]), // expected_vtbl_contents
+ &(vtt_ee23422[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee23422),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23422),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23422),4, //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 ee33422 : virtual dd3422 {
+ int e;
+ virtual void foo(); // _ZN7ee334223fooEv
+ ~ee33422(); // tgen
+ ee33422(); // tgen
+};
+//SIG(1 ee33422) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee33422 ::foo(){vfunc_called(this, "_ZN7ee334223fooEv");}
+ee33422 ::~ee33422(){ note_dtor("ee33422", this);} // tgen
+ee33422 ::ee33422(){ note_ctor("ee33422", this);} // tgen
+
+static void Test_ee33422()
+{
+ extern Class_Descriptor cd_ee33422;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee33422, buf);
+ ee33422 *dp, &lv = *(dp=new (buf) ee33422());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee33422)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33422)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc422*), ABISELECT(32,16), "ee33422");
+ check_base_class_offset(lv, (bb22*)(cc422*), ABISELECT(32,16), "ee33422");
+ check_base_class_offset(lv, (cc422*)(dd3422*), ABISELECT(32,16), "ee33422");
+ check_base_class_offset(lv, (dd3422*), ABISELECT(16,8), "ee33422");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33422.e");
+ test_class_info(&lv, &cd_ee33422);
+ dp->~ee33422();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33422(Test_ee33422, "ee33422", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee33422C1Ev();
+extern void _ZN7ee33422D1Ev();
+Name_Map name_map_ee33422[] = {
+ NSPAIR(_ZN7ee33422C1Ev),
+ NSPAIR(_ZN7ee33422D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc422;
+extern VTBL_ENTRY _ZTI5cc422[];
+extern VTBL_ENTRY _ZTV5cc422[];
+extern Class_Descriptor cd_dd3422;
+extern VTBL_ENTRY _ZTI6dd3422[];
+extern VTBL_ENTRY _ZTV6dd3422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3422[];
+static Base_Class bases_ee33422[] = {
+ // 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_bb22, 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_cc422, 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_dd3422, 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 _ZTI7ee33422[];
+extern void _ZN7ee334223fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee334223fooEv,_ZTv0_n16_N7ee334223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee334223fooEv,_ZThn8_N7ee334223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee334223fooEv,_ZTv0_n12_N7ee334223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee334223fooEv,_ZThn16_N7ee334223fooEv)() __attribute__((weak));
+extern void _ZN5cc4223barEv();
+static VTBL_ENTRY vtc_ee33422[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33422[0]),
+ (VTBL_ENTRY)&_ZN7ee334223fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33422[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee334223fooEv,_ZTv0_n16_N7ee334223fooEv),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33422[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee334223fooEv,_ZTv0_n12_N7ee334223fooEv),
+ (VTBL_ENTRY)&_ZN5cc4223barEv,
+};
+extern VTBL_ENTRY _ZTV7ee33422[];
+extern void _ZN6dd34223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3422__7ee33422[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3422[0]),
+ (VTBL_ENTRY)&_ZN6dd34223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd34223fooEv,_ZTv0_n12_N6dd34223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34223fooEv,_ZThn8_N6dd34223fooEv)() __attribute__((weak));
+extern void _ZN5cc4223barEv();
+static VTBL_ENTRY _tg__ZTV5cc422__6dd3422__7ee33422[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3422[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34223fooEv,_ZTv0_n12_N6dd34223fooEv),
+ (VTBL_ENTRY)&_ZN5cc4223barEv,
+};
+static VTT_ENTRY vtt_ee33422[] = {
+ {&(_ZTV7ee33422[4]), 4,16},
+ {&(_ZTV7ee33422[9]), 9,16},
+ {&(_ZTV7ee33422[14]), 14,16},
+ {&(_tg__ZTV6dd3422__7ee33422[3]), 3,4},
+ {&(_tg__ZTV5cc422__6dd3422__7ee33422[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee33422[];
+extern VTBL_ENTRY _ZTV7ee33422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33422[];
+static VTBL_ENTRY alt_thunk_names1096[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34223fooEv,_ZTv0_n12_N6dd34223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34223fooEv,_ZThn8_N6dd34223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee334223fooEv,_ZTv0_n12_N7ee334223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee334223fooEv,_ZThn16_N7ee334223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee334223fooEv,_ZTv0_n16_N7ee334223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee334223fooEv,_ZThn8_N7ee334223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33422 = { "ee33422", // class name
+ bases_ee33422, 4,
+ &(vtc_ee33422[0]), // expected_vtbl_contents
+ &(vtt_ee33422[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee33422),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33422),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33422),5, //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 ee43422 : dd3422 {
+ int e;
+ virtual void bar(); // _ZN7ee434223barEv
+ ~ee43422(); // tgen
+ ee43422(); // tgen
+};
+//SIG(1 ee43422) C1{ BC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee43422 ::bar(){vfunc_called(this, "_ZN7ee434223barEv");}
+ee43422 ::~ee43422(){ note_dtor("ee43422", this);} // tgen
+ee43422 ::ee43422(){ note_ctor("ee43422", this);} // tgen
+
+static void Test_ee43422()
+{
+ extern Class_Descriptor cd_ee43422;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee43422, buf);
+ ee43422 *dp, &lv = *(dp=new (buf) ee43422());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee43422)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43422)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc422*), ABISELECT(16,12), "ee43422");
+ check_base_class_offset(lv, (bb22*)(cc422*), ABISELECT(16,12), "ee43422");
+ check_base_class_offset(lv, (cc422*)(dd3422*), ABISELECT(16,12), "ee43422");
+ check_base_class_offset(lv, (dd3422*), 0, "ee43422");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43422.e");
+ test_class_info(&lv, &cd_ee43422);
+ dp->~ee43422();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43422(Test_ee43422, "ee43422", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee43422C1Ev();
+extern void _ZN7ee43422D1Ev();
+Name_Map name_map_ee43422[] = {
+ NSPAIR(_ZN7ee43422C1Ev),
+ NSPAIR(_ZN7ee43422D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc422;
+extern VTBL_ENTRY _ZTI5cc422[];
+extern VTBL_ENTRY _ZTV5cc422[];
+extern Class_Descriptor cd_dd3422;
+extern VTBL_ENTRY _ZTI6dd3422[];
+extern VTBL_ENTRY _ZTV6dd3422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3422[];
+static Base_Class bases_ee43422[] = {
+ // 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_bb22, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc422, 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_dd3422, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43422[];
+extern void _ZN6dd34223fooEv();
+extern void _ZN7ee434223barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd34223fooEv,_ZTv0_n12_N6dd34223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34223fooEv,_ZThn12_N6dd34223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee434223barEv,_ZTv0_n16_N7ee434223barEv)();
+extern void ABISELECT(_ZThn16_N7ee434223barEv,_ZThn12_N7ee434223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43422[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43422[0]),
+ (VTBL_ENTRY)&_ZN6dd34223fooEv,
+ (VTBL_ENTRY)&_ZN7ee434223barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43422[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34223fooEv,_ZTv0_n12_N6dd34223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee434223barEv,_ZTv0_n16_N7ee434223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee43422[];
+extern void _ZN6dd34223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3422__7ee43422[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3422[0]),
+ (VTBL_ENTRY)&_ZN6dd34223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd34223fooEv,_ZTv0_n12_N6dd34223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34223fooEv,_ZThn12_N6dd34223fooEv)() __attribute__((weak));
+extern void _ZN5cc4223barEv();
+static VTBL_ENTRY _tg__ZTV5cc422__6dd3422__7ee43422[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3422[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34223fooEv,_ZTv0_n12_N6dd34223fooEv),
+ (VTBL_ENTRY)&_ZN5cc4223barEv,
+};
+static VTT_ENTRY vtt_ee43422[] = {
+ {&(_ZTV7ee43422[3]), 3,11},
+ {&(_tg__ZTV6dd3422__7ee43422[3]), 3,4},
+ {&(_tg__ZTV5cc422__6dd3422__7ee43422[4]), 4,6},
+ {&(_ZTV7ee43422[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee43422[];
+extern VTBL_ENTRY _ZTV7ee43422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43422[];
+static VTBL_ENTRY alt_thunk_names1097[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee434223barEv,_ZTv0_n16_N7ee434223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee434223barEv,_ZThn12_N7ee434223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34223fooEv,_ZTv0_n12_N6dd34223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34223fooEv,_ZThn12_N6dd34223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34223fooEv,_ZThn12_N6dd34223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43422 = { "ee43422", // class name
+ bases_ee43422, 4,
+ &(vtc_ee43422[0]), // expected_vtbl_contents
+ &(vtt_ee43422[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee43422),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43422),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43422),4, //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 ee53422 : virtual dd3422 {
+ int e;
+ virtual void bar(); // _ZN7ee534223barEv
+ ~ee53422(); // tgen
+ ee53422(); // tgen
+};
+//SIG(1 ee53422) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee53422 ::bar(){vfunc_called(this, "_ZN7ee534223barEv");}
+ee53422 ::~ee53422(){ note_dtor("ee53422", this);} // tgen
+ee53422 ::ee53422(){ note_ctor("ee53422", this);} // tgen
+
+static void Test_ee53422()
+{
+ extern Class_Descriptor cd_ee53422;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee53422, buf);
+ ee53422 *dp, &lv = *(dp=new (buf) ee53422());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee53422)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53422)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc422*), ABISELECT(32,16), "ee53422");
+ check_base_class_offset(lv, (bb22*)(cc422*), ABISELECT(32,16), "ee53422");
+ check_base_class_offset(lv, (cc422*)(dd3422*), ABISELECT(32,16), "ee53422");
+ check_base_class_offset(lv, (dd3422*), ABISELECT(16,8), "ee53422");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53422.e");
+ test_class_info(&lv, &cd_ee53422);
+ dp->~ee53422();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53422(Test_ee53422, "ee53422", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee53422C1Ev();
+extern void _ZN7ee53422D1Ev();
+Name_Map name_map_ee53422[] = {
+ NSPAIR(_ZN7ee53422C1Ev),
+ NSPAIR(_ZN7ee53422D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc422;
+extern VTBL_ENTRY _ZTI5cc422[];
+extern VTBL_ENTRY _ZTV5cc422[];
+extern Class_Descriptor cd_dd3422;
+extern VTBL_ENTRY _ZTI6dd3422[];
+extern VTBL_ENTRY _ZTV6dd3422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3422[];
+static Base_Class bases_ee53422[] = {
+ // 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_bb22, 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_cc422, 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_dd3422, 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 _ZTI7ee53422[];
+extern void _ZN7ee534223barEv();
+extern void _ZN6dd34223fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd34223fooEv,_ZTv0_n12_N6dd34223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34223fooEv,_ZThn8_N6dd34223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee534223barEv,_ZTv0_n16_N7ee534223barEv)();
+extern void ABISELECT(_ZThn32_N7ee534223barEv,_ZThn16_N7ee534223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53422[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53422[0]),
+ (VTBL_ENTRY)&_ZN7ee534223barEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53422[0]),
+ (VTBL_ENTRY)&_ZN6dd34223fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53422[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34223fooEv,_ZTv0_n12_N6dd34223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee534223barEv,_ZTv0_n16_N7ee534223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee53422[];
+extern void _ZN6dd34223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3422__7ee53422[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3422[0]),
+ (VTBL_ENTRY)&_ZN6dd34223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd34223fooEv,_ZTv0_n12_N6dd34223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34223fooEv,_ZThn8_N6dd34223fooEv)() __attribute__((weak));
+extern void _ZN5cc4223barEv();
+static VTBL_ENTRY _tg__ZTV5cc422__6dd3422__7ee53422[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3422[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34223fooEv,_ZTv0_n12_N6dd34223fooEv),
+ (VTBL_ENTRY)&_ZN5cc4223barEv,
+};
+static VTT_ENTRY vtt_ee53422[] = {
+ {&(_ZTV7ee53422[4]), 4,16},
+ {&(_ZTV7ee53422[9]), 9,16},
+ {&(_ZTV7ee53422[14]), 14,16},
+ {&(_tg__ZTV6dd3422__7ee53422[3]), 3,4},
+ {&(_tg__ZTV5cc422__6dd3422__7ee53422[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee53422[];
+extern VTBL_ENTRY _ZTV7ee53422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53422[];
+static VTBL_ENTRY alt_thunk_names1098[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee534223barEv,_ZTv0_n16_N7ee534223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee534223barEv,_ZThn16_N7ee534223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34223fooEv,_ZTv0_n12_N6dd34223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34223fooEv,_ZThn8_N6dd34223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34223fooEv,_ZThn8_N6dd34223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53422 = { "ee53422", // class name
+ bases_ee53422, 4,
+ &(vtc_ee53422[0]), // expected_vtbl_contents
+ &(vtt_ee53422[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee53422),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53422),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53422),5, //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 ee63422 : dd3422 {
+ int e;
+ virtual void foo(); // _ZN7ee634223fooEv
+ virtual void bar(); // _ZN7ee634223barEv
+ ~ee63422(); // tgen
+ ee63422(); // tgen
+};
+//SIG(1 ee63422) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63422 ::foo(){vfunc_called(this, "_ZN7ee634223fooEv");}
+void ee63422 ::bar(){vfunc_called(this, "_ZN7ee634223barEv");}
+ee63422 ::~ee63422(){ note_dtor("ee63422", this);} // tgen
+ee63422 ::ee63422(){ note_ctor("ee63422", this);} // tgen
+
+static void Test_ee63422()
+{
+ extern Class_Descriptor cd_ee63422;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee63422, buf);
+ ee63422 *dp, &lv = *(dp=new (buf) ee63422());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee63422)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63422)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc422*), ABISELECT(16,12), "ee63422");
+ check_base_class_offset(lv, (bb22*)(cc422*), ABISELECT(16,12), "ee63422");
+ check_base_class_offset(lv, (cc422*)(dd3422*), ABISELECT(16,12), "ee63422");
+ check_base_class_offset(lv, (dd3422*), 0, "ee63422");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63422.e");
+ test_class_info(&lv, &cd_ee63422);
+ dp->~ee63422();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63422(Test_ee63422, "ee63422", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee63422C1Ev();
+extern void _ZN7ee63422D1Ev();
+Name_Map name_map_ee63422[] = {
+ NSPAIR(_ZN7ee63422C1Ev),
+ NSPAIR(_ZN7ee63422D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc422;
+extern VTBL_ENTRY _ZTI5cc422[];
+extern VTBL_ENTRY _ZTV5cc422[];
+extern Class_Descriptor cd_dd3422;
+extern VTBL_ENTRY _ZTI6dd3422[];
+extern VTBL_ENTRY _ZTV6dd3422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3422[];
+static Base_Class bases_ee63422[] = {
+ // 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_bb22, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc422, 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_dd3422, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63422[];
+extern void _ZN7ee634223fooEv();
+extern void _ZN7ee634223barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee634223fooEv,_ZTv0_n12_N7ee634223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee634223fooEv,_ZThn12_N7ee634223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee634223barEv,_ZTv0_n16_N7ee634223barEv)();
+extern void ABISELECT(_ZThn16_N7ee634223barEv,_ZThn12_N7ee634223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63422[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63422[0]),
+ (VTBL_ENTRY)&_ZN7ee634223fooEv,
+ (VTBL_ENTRY)&_ZN7ee634223barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63422[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee634223fooEv,_ZTv0_n12_N7ee634223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee634223barEv,_ZTv0_n16_N7ee634223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee63422[];
+extern void _ZN6dd34223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3422__7ee63422[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3422[0]),
+ (VTBL_ENTRY)&_ZN6dd34223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd34223fooEv,_ZTv0_n12_N6dd34223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34223fooEv,_ZThn12_N6dd34223fooEv)() __attribute__((weak));
+extern void _ZN5cc4223barEv();
+static VTBL_ENTRY _tg__ZTV5cc422__6dd3422__7ee63422[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3422[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34223fooEv,_ZTv0_n12_N6dd34223fooEv),
+ (VTBL_ENTRY)&_ZN5cc4223barEv,
+};
+static VTT_ENTRY vtt_ee63422[] = {
+ {&(_ZTV7ee63422[3]), 3,11},
+ {&(_tg__ZTV6dd3422__7ee63422[3]), 3,4},
+ {&(_tg__ZTV5cc422__6dd3422__7ee63422[4]), 4,6},
+ {&(_ZTV7ee63422[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee63422[];
+extern VTBL_ENTRY _ZTV7ee63422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63422[];
+static VTBL_ENTRY alt_thunk_names1099[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34223fooEv,_ZTv0_n12_N6dd34223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34223fooEv,_ZThn12_N6dd34223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee634223barEv,_ZTv0_n16_N7ee634223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee634223barEv,_ZThn12_N7ee634223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee634223fooEv,_ZTv0_n12_N7ee634223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee634223fooEv,_ZThn12_N7ee634223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63422 = { "ee63422", // class name
+ bases_ee63422, 4,
+ &(vtc_ee63422[0]), // expected_vtbl_contents
+ &(vtt_ee63422[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee63422),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63422),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63422),4, //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 ee73422 : virtual dd3422 {
+ int e;
+ virtual void foo(); // _ZN7ee734223fooEv
+ virtual void bar(); // _ZN7ee734223barEv
+ ~ee73422(); // tgen
+ ee73422(); // tgen
+};
+//SIG(1 ee73422) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73422 ::foo(){vfunc_called(this, "_ZN7ee734223fooEv");}
+void ee73422 ::bar(){vfunc_called(this, "_ZN7ee734223barEv");}
+ee73422 ::~ee73422(){ note_dtor("ee73422", this);} // tgen
+ee73422 ::ee73422(){ note_ctor("ee73422", this);} // tgen
+
+static void Test_ee73422()
+{
+ extern Class_Descriptor cd_ee73422;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee73422, buf);
+ ee73422 *dp, &lv = *(dp=new (buf) ee73422());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee73422)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73422)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc422*), ABISELECT(32,16), "ee73422");
+ check_base_class_offset(lv, (bb22*)(cc422*), ABISELECT(32,16), "ee73422");
+ check_base_class_offset(lv, (cc422*)(dd3422*), ABISELECT(32,16), "ee73422");
+ check_base_class_offset(lv, (dd3422*), ABISELECT(16,8), "ee73422");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73422.e");
+ test_class_info(&lv, &cd_ee73422);
+ dp->~ee73422();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73422(Test_ee73422, "ee73422", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee73422C1Ev();
+extern void _ZN7ee73422D1Ev();
+Name_Map name_map_ee73422[] = {
+ NSPAIR(_ZN7ee73422C1Ev),
+ NSPAIR(_ZN7ee73422D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc422;
+extern VTBL_ENTRY _ZTI5cc422[];
+extern VTBL_ENTRY _ZTV5cc422[];
+extern Class_Descriptor cd_dd3422;
+extern VTBL_ENTRY _ZTI6dd3422[];
+extern VTBL_ENTRY _ZTV6dd3422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3422[];
+static Base_Class bases_ee73422[] = {
+ // 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_bb22, 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_cc422, 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_dd3422, 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 _ZTI7ee73422[];
+extern void _ZN7ee734223fooEv();
+extern void _ZN7ee734223barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee734223fooEv,_ZTv0_n16_N7ee734223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee734223fooEv,_ZThn8_N7ee734223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee734223fooEv,_ZTv0_n12_N7ee734223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee734223fooEv,_ZThn16_N7ee734223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee734223barEv,_ZTv0_n16_N7ee734223barEv)();
+extern void ABISELECT(_ZThn32_N7ee734223barEv,_ZThn16_N7ee734223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73422[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73422[0]),
+ (VTBL_ENTRY)&_ZN7ee734223fooEv,
+ (VTBL_ENTRY)&_ZN7ee734223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73422[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee734223fooEv,_ZTv0_n16_N7ee734223fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73422[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee734223fooEv,_ZTv0_n12_N7ee734223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee734223barEv,_ZTv0_n16_N7ee734223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee73422[];
+extern void _ZN6dd34223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3422__7ee73422[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3422[0]),
+ (VTBL_ENTRY)&_ZN6dd34223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd34223fooEv,_ZTv0_n12_N6dd34223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34223fooEv,_ZThn8_N6dd34223fooEv)() __attribute__((weak));
+extern void _ZN5cc4223barEv();
+static VTBL_ENTRY _tg__ZTV5cc422__6dd3422__7ee73422[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3422[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34223fooEv,_ZTv0_n12_N6dd34223fooEv),
+ (VTBL_ENTRY)&_ZN5cc4223barEv,
+};
+static VTT_ENTRY vtt_ee73422[] = {
+ {&(_ZTV7ee73422[4]), 4,17},
+ {&(_ZTV7ee73422[10]), 10,17},
+ {&(_ZTV7ee73422[15]), 15,17},
+ {&(_tg__ZTV6dd3422__7ee73422[3]), 3,4},
+ {&(_tg__ZTV5cc422__6dd3422__7ee73422[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee73422[];
+extern VTBL_ENTRY _ZTV7ee73422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73422[];
+static VTBL_ENTRY alt_thunk_names1100[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34223fooEv,_ZTv0_n12_N6dd34223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34223fooEv,_ZThn8_N6dd34223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee734223barEv,_ZTv0_n16_N7ee734223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee734223barEv,_ZThn16_N7ee734223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee734223fooEv,_ZTv0_n12_N7ee734223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee734223fooEv,_ZThn16_N7ee734223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee734223fooEv,_ZTv0_n16_N7ee734223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee734223fooEv,_ZThn8_N7ee734223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73422 = { "ee73422", // class name
+ bases_ee73422, 4,
+ &(vtc_ee73422[0]), // expected_vtbl_contents
+ &(vtt_ee73422[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee73422),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73422),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73422),5, //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 dd4422 : cc422 {
+ int d;
+ virtual void bar(); // _ZN6dd44223barEv
+ ~dd4422(); // tgen
+ dd4422(); // tgen
+};
+//SIG(-1 dd4422) C1{ BC2{ BC3{ BC4{ v2 v1 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void dd4422 ::bar(){vfunc_called(this, "_ZN6dd44223barEv");}
+dd4422 ::~dd4422(){ note_dtor("dd4422", this);} // tgen
+dd4422 ::dd4422(){ note_ctor("dd4422", this);} // tgen
+
+static void Test_dd4422()
+{
+ extern Class_Descriptor cd_dd4422;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd4422, buf);
+ dd4422 *dp, &lv = *(dp=new (buf) dd4422());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd4422)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4422)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc422*), 0, "dd4422");
+ check_base_class_offset(lv, (bb22*)(cc422*), 0, "dd4422");
+ check_base_class_offset(lv, (cc422*), 0, "dd4422");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd4422.d");
+ test_class_info(&lv, &cd_dd4422);
+ dp->~dd4422();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4422(Test_dd4422, "dd4422", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd4422C1Ev();
+extern void _ZN6dd4422D1Ev();
+Name_Map name_map_dd4422[] = {
+ NSPAIR(_ZN6dd4422C1Ev),
+ NSPAIR(_ZN6dd4422D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc422;
+extern VTBL_ENTRY _ZTI5cc422[];
+extern VTBL_ENTRY _ZTV5cc422[];
+static Base_Class bases_dd4422[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc422, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI6dd4422[];
+extern void _ZN4bb223fooEv();
+extern void _ZN6dd44223barEv();
+static VTBL_ENTRY vtc_dd4422[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4422[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN6dd44223barEv,
+};
+extern VTBL_ENTRY _ZTI6dd4422[];
+extern VTBL_ENTRY _ZTV6dd4422[];
+Class_Descriptor cd_dd4422 = { "dd4422", // class name
+ bases_dd4422, 3,
+ &(vtc_dd4422[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd4422),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4422),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 ee04422 : dd4422 {
+ int e;
+ ~ee04422(); // tgen
+ ee04422(); // tgen
+};
+//SIG(1 ee04422) C1{ BC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee04422 ::~ee04422(){ note_dtor("ee04422", this);} // tgen
+ee04422 ::ee04422(){ note_ctor("ee04422", this);} // tgen
+
+static void Test_ee04422()
+{
+ extern Class_Descriptor cd_ee04422;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee04422, buf);
+ ee04422 *dp, &lv = *(dp=new (buf) ee04422());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee04422)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04422)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc422*)(dd4422*), 0, "ee04422");
+ check_base_class_offset(lv, (bb22*)(cc422*)(dd4422*), 0, "ee04422");
+ check_base_class_offset(lv, (cc422*)(dd4422*), 0, "ee04422");
+ check_base_class_offset(lv, (dd4422*), 0, "ee04422");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee04422.e");
+ test_class_info(&lv, &cd_ee04422);
+ dp->~ee04422();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04422(Test_ee04422, "ee04422", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee04422C1Ev();
+extern void _ZN7ee04422D1Ev();
+Name_Map name_map_ee04422[] = {
+ NSPAIR(_ZN7ee04422C1Ev),
+ NSPAIR(_ZN7ee04422D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc422;
+extern VTBL_ENTRY _ZTI5cc422[];
+extern VTBL_ENTRY _ZTV5cc422[];
+extern Class_Descriptor cd_dd4422;
+extern VTBL_ENTRY _ZTI6dd4422[];
+extern VTBL_ENTRY _ZTV6dd4422[];
+static Base_Class bases_ee04422[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc422, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4422, 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 _ZTI7ee04422[];
+extern void _ZN4bb223fooEv();
+extern void _ZN6dd44223barEv();
+static VTBL_ENTRY vtc_ee04422[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04422[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN6dd44223barEv,
+};
+extern VTBL_ENTRY _ZTI7ee04422[];
+extern VTBL_ENTRY _ZTV7ee04422[];
+Class_Descriptor cd_ee04422 = { "ee04422", // class name
+ bases_ee04422, 4,
+ &(vtc_ee04422[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee04422),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04422),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 ee14422 : virtual dd4422 {
+ int e;
+ ~ee14422(); // tgen
+ ee14422(); // tgen
+};
+//SIG(1 ee14422) C1{ VBC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee14422 ::~ee14422(){ note_dtor("ee14422", this);} // tgen
+ee14422 ::ee14422(){ note_ctor("ee14422", this);} // tgen
+
+static void Test_ee14422()
+{
+ extern Class_Descriptor cd_ee14422;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee14422, buf);
+ ee14422 *dp, &lv = *(dp=new (buf) ee14422());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee14422)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14422)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc422*)(dd4422*), ABISELECT(16,8), "ee14422");
+ check_base_class_offset(lv, (bb22*)(cc422*)(dd4422*), ABISELECT(16,8), "ee14422");
+ check_base_class_offset(lv, (cc422*)(dd4422*), ABISELECT(16,8), "ee14422");
+ check_base_class_offset(lv, (dd4422*), ABISELECT(16,8), "ee14422");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14422.e");
+ test_class_info(&lv, &cd_ee14422);
+ dp->~ee14422();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14422(Test_ee14422, "ee14422", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee14422C1Ev();
+extern void _ZN7ee14422D1Ev();
+Name_Map name_map_ee14422[] = {
+ NSPAIR(_ZN7ee14422C1Ev),
+ NSPAIR(_ZN7ee14422D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc422;
+extern VTBL_ENTRY _ZTI5cc422[];
+extern VTBL_ENTRY _ZTV5cc422[];
+extern Class_Descriptor cd_dd4422;
+extern VTBL_ENTRY _ZTI6dd4422[];
+extern VTBL_ENTRY _ZTV6dd4422[];
+static Base_Class bases_ee14422[] = {
+ // 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_bb22, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc422, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4422, 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 _ZTI7ee14422[];
+extern void _ZN4bb223fooEv();
+extern void _ZN6dd44223barEv();
+static VTBL_ENTRY vtc_ee14422[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14422[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14422[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN6dd44223barEv,
+};
+extern VTBL_ENTRY _ZTV7ee14422[];
+static VTT_ENTRY vtt_ee14422[] = {
+ {&(_ZTV7ee14422[3]), 3,9},
+ {&(_ZTV7ee14422[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee14422[];
+extern VTBL_ENTRY _ZTV7ee14422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14422[];
+Class_Descriptor cd_ee14422 = { "ee14422", // class name
+ bases_ee14422, 4,
+ &(vtc_ee14422[0]), // expected_vtbl_contents
+ &(vtt_ee14422[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee14422),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14422),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14422),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 ee24422 : dd4422 {
+ int e;
+ virtual void foo(); // _ZN7ee244223fooEv
+ ~ee24422(); // tgen
+ ee24422(); // tgen
+};
+//SIG(1 ee24422) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee24422 ::foo(){vfunc_called(this, "_ZN7ee244223fooEv");}
+ee24422 ::~ee24422(){ note_dtor("ee24422", this);} // tgen
+ee24422 ::ee24422(){ note_ctor("ee24422", this);} // tgen
+
+static void Test_ee24422()
+{
+ extern Class_Descriptor cd_ee24422;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee24422, buf);
+ ee24422 *dp, &lv = *(dp=new (buf) ee24422());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee24422)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24422)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc422*)(dd4422*), 0, "ee24422");
+ check_base_class_offset(lv, (bb22*)(cc422*)(dd4422*), 0, "ee24422");
+ check_base_class_offset(lv, (cc422*)(dd4422*), 0, "ee24422");
+ check_base_class_offset(lv, (dd4422*), 0, "ee24422");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee24422.e");
+ test_class_info(&lv, &cd_ee24422);
+ dp->~ee24422();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24422(Test_ee24422, "ee24422", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee24422C1Ev();
+extern void _ZN7ee24422D1Ev();
+Name_Map name_map_ee24422[] = {
+ NSPAIR(_ZN7ee24422C1Ev),
+ NSPAIR(_ZN7ee24422D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc422;
+extern VTBL_ENTRY _ZTI5cc422[];
+extern VTBL_ENTRY _ZTV5cc422[];
+extern Class_Descriptor cd_dd4422;
+extern VTBL_ENTRY _ZTI6dd4422[];
+extern VTBL_ENTRY _ZTV6dd4422[];
+static Base_Class bases_ee24422[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc422, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4422, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee24422[];
+extern void _ZN7ee244223fooEv();
+extern void _ZN6dd44223barEv();
+static VTBL_ENTRY vtc_ee24422[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24422[0]),
+ (VTBL_ENTRY)&_ZN7ee244223fooEv,
+ (VTBL_ENTRY)&_ZN6dd44223barEv,
+};
+extern VTBL_ENTRY _ZTI7ee24422[];
+extern VTBL_ENTRY _ZTV7ee24422[];
+Class_Descriptor cd_ee24422 = { "ee24422", // class name
+ bases_ee24422, 4,
+ &(vtc_ee24422[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee24422),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24422),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 ee34422 : virtual dd4422 {
+ int e;
+ virtual void foo(); // _ZN7ee344223fooEv
+ ~ee34422(); // tgen
+ ee34422(); // tgen
+};
+//SIG(1 ee34422) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee34422 ::foo(){vfunc_called(this, "_ZN7ee344223fooEv");}
+ee34422 ::~ee34422(){ note_dtor("ee34422", this);} // tgen
+ee34422 ::ee34422(){ note_ctor("ee34422", this);} // tgen
+
+static void Test_ee34422()
+{
+ extern Class_Descriptor cd_ee34422;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee34422, buf);
+ ee34422 *dp, &lv = *(dp=new (buf) ee34422());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee34422)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34422)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc422*)(dd4422*), ABISELECT(16,8), "ee34422");
+ check_base_class_offset(lv, (bb22*)(cc422*)(dd4422*), ABISELECT(16,8), "ee34422");
+ check_base_class_offset(lv, (cc422*)(dd4422*), ABISELECT(16,8), "ee34422");
+ check_base_class_offset(lv, (dd4422*), ABISELECT(16,8), "ee34422");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34422.e");
+ test_class_info(&lv, &cd_ee34422);
+ dp->~ee34422();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34422(Test_ee34422, "ee34422", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee34422C1Ev();
+extern void _ZN7ee34422D1Ev();
+Name_Map name_map_ee34422[] = {
+ NSPAIR(_ZN7ee34422C1Ev),
+ NSPAIR(_ZN7ee34422D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc422;
+extern VTBL_ENTRY _ZTI5cc422[];
+extern VTBL_ENTRY _ZTV5cc422[];
+extern Class_Descriptor cd_dd4422;
+extern VTBL_ENTRY _ZTI6dd4422[];
+extern VTBL_ENTRY _ZTV6dd4422[];
+static Base_Class bases_ee34422[] = {
+ // 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_bb22, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc422, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4422, 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 _ZTI7ee34422[];
+extern void _ZN7ee344223fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee344223fooEv,_ZTv0_n12_N7ee344223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee344223fooEv,_ZThn8_N7ee344223fooEv)() __attribute__((weak));
+extern void _ZN6dd44223barEv();
+static VTBL_ENTRY vtc_ee34422[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34422[0]),
+ (VTBL_ENTRY)&_ZN7ee344223fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34422[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee344223fooEv,_ZTv0_n12_N7ee344223fooEv),
+ (VTBL_ENTRY)&_ZN6dd44223barEv,
+};
+extern VTBL_ENTRY _ZTV7ee34422[];
+static VTT_ENTRY vtt_ee34422[] = {
+ {&(_ZTV7ee34422[3]), 3,10},
+ {&(_ZTV7ee34422[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee34422[];
+extern VTBL_ENTRY _ZTV7ee34422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34422[];
+static VTBL_ENTRY alt_thunk_names1101[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee344223fooEv,_ZTv0_n12_N7ee344223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee344223fooEv,_ZThn8_N7ee344223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34422 = { "ee34422", // class name
+ bases_ee34422, 4,
+ &(vtc_ee34422[0]), // expected_vtbl_contents
+ &(vtt_ee34422[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee34422),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34422),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34422),2, //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 ee44422 : dd4422 {
+ int e;
+ virtual void bar(); // _ZN7ee444223barEv
+ ~ee44422(); // tgen
+ ee44422(); // tgen
+};
+//SIG(1 ee44422) C1{ BC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee44422 ::bar(){vfunc_called(this, "_ZN7ee444223barEv");}
+ee44422 ::~ee44422(){ note_dtor("ee44422", this);} // tgen
+ee44422 ::ee44422(){ note_ctor("ee44422", this);} // tgen
+
+static void Test_ee44422()
+{
+ extern Class_Descriptor cd_ee44422;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee44422, buf);
+ ee44422 *dp, &lv = *(dp=new (buf) ee44422());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee44422)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44422)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc422*)(dd4422*), 0, "ee44422");
+ check_base_class_offset(lv, (bb22*)(cc422*)(dd4422*), 0, "ee44422");
+ check_base_class_offset(lv, (cc422*)(dd4422*), 0, "ee44422");
+ check_base_class_offset(lv, (dd4422*), 0, "ee44422");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee44422.e");
+ test_class_info(&lv, &cd_ee44422);
+ dp->~ee44422();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44422(Test_ee44422, "ee44422", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee44422C1Ev();
+extern void _ZN7ee44422D1Ev();
+Name_Map name_map_ee44422[] = {
+ NSPAIR(_ZN7ee44422C1Ev),
+ NSPAIR(_ZN7ee44422D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc422;
+extern VTBL_ENTRY _ZTI5cc422[];
+extern VTBL_ENTRY _ZTV5cc422[];
+extern Class_Descriptor cd_dd4422;
+extern VTBL_ENTRY _ZTI6dd4422[];
+extern VTBL_ENTRY _ZTV6dd4422[];
+static Base_Class bases_ee44422[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc422, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4422, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee44422[];
+extern void _ZN4bb223fooEv();
+extern void _ZN7ee444223barEv();
+static VTBL_ENTRY vtc_ee44422[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44422[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&_ZN7ee444223barEv,
+};
+extern VTBL_ENTRY _ZTI7ee44422[];
+extern VTBL_ENTRY _ZTV7ee44422[];
+Class_Descriptor cd_ee44422 = { "ee44422", // class name
+ bases_ee44422, 4,
+ &(vtc_ee44422[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee44422),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44422),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 ee54422 : virtual dd4422 {
+ int e;
+ virtual void bar(); // _ZN7ee544223barEv
+ ~ee54422(); // tgen
+ ee54422(); // tgen
+};
+//SIG(1 ee54422) C1{ VBC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee54422 ::bar(){vfunc_called(this, "_ZN7ee544223barEv");}
+ee54422 ::~ee54422(){ note_dtor("ee54422", this);} // tgen
+ee54422 ::ee54422(){ note_ctor("ee54422", this);} // tgen
+
+static void Test_ee54422()
+{
+ extern Class_Descriptor cd_ee54422;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee54422, buf);
+ ee54422 *dp, &lv = *(dp=new (buf) ee54422());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee54422)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54422)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc422*)(dd4422*), ABISELECT(16,8), "ee54422");
+ check_base_class_offset(lv, (bb22*)(cc422*)(dd4422*), ABISELECT(16,8), "ee54422");
+ check_base_class_offset(lv, (cc422*)(dd4422*), ABISELECT(16,8), "ee54422");
+ check_base_class_offset(lv, (dd4422*), ABISELECT(16,8), "ee54422");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54422.e");
+ test_class_info(&lv, &cd_ee54422);
+ dp->~ee54422();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54422(Test_ee54422, "ee54422", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee54422C1Ev();
+extern void _ZN7ee54422D1Ev();
+Name_Map name_map_ee54422[] = {
+ NSPAIR(_ZN7ee54422C1Ev),
+ NSPAIR(_ZN7ee54422D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc422;
+extern VTBL_ENTRY _ZTI5cc422[];
+extern VTBL_ENTRY _ZTV5cc422[];
+extern Class_Descriptor cd_dd4422;
+extern VTBL_ENTRY _ZTI6dd4422[];
+extern VTBL_ENTRY _ZTV6dd4422[];
+static Base_Class bases_ee54422[] = {
+ // 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_bb22, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc422, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4422, 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 _ZTI7ee54422[];
+extern void _ZN7ee544223barEv();
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee544223barEv,_ZTv0_n16_N7ee544223barEv)();
+extern void ABISELECT(_ZThn16_N7ee544223barEv,_ZThn8_N7ee544223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54422[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54422[0]),
+ (VTBL_ENTRY)&_ZN7ee544223barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54422[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee544223barEv,_ZTv0_n16_N7ee544223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee54422[];
+static VTT_ENTRY vtt_ee54422[] = {
+ {&(_ZTV7ee54422[3]), 3,10},
+ {&(_ZTV7ee54422[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee54422[];
+extern VTBL_ENTRY _ZTV7ee54422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54422[];
+static VTBL_ENTRY alt_thunk_names1102[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee544223barEv,_ZTv0_n16_N7ee544223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee544223barEv,_ZThn8_N7ee544223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54422 = { "ee54422", // class name
+ bases_ee54422, 4,
+ &(vtc_ee54422[0]), // expected_vtbl_contents
+ &(vtt_ee54422[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee54422),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54422),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54422),2, //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 ee64422 : dd4422 {
+ int e;
+ virtual void foo(); // _ZN7ee644223fooEv
+ virtual void bar(); // _ZN7ee644223barEv
+ ~ee64422(); // tgen
+ ee64422(); // tgen
+};
+//SIG(1 ee64422) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64422 ::foo(){vfunc_called(this, "_ZN7ee644223fooEv");}
+void ee64422 ::bar(){vfunc_called(this, "_ZN7ee644223barEv");}
+ee64422 ::~ee64422(){ note_dtor("ee64422", this);} // tgen
+ee64422 ::ee64422(){ note_ctor("ee64422", this);} // tgen
+
+static void Test_ee64422()
+{
+ extern Class_Descriptor cd_ee64422;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee64422, buf);
+ ee64422 *dp, &lv = *(dp=new (buf) ee64422());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee64422)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64422)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc422*)(dd4422*), 0, "ee64422");
+ check_base_class_offset(lv, (bb22*)(cc422*)(dd4422*), 0, "ee64422");
+ check_base_class_offset(lv, (cc422*)(dd4422*), 0, "ee64422");
+ check_base_class_offset(lv, (dd4422*), 0, "ee64422");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee64422.e");
+ test_class_info(&lv, &cd_ee64422);
+ dp->~ee64422();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64422(Test_ee64422, "ee64422", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee64422C1Ev();
+extern void _ZN7ee64422D1Ev();
+Name_Map name_map_ee64422[] = {
+ NSPAIR(_ZN7ee64422C1Ev),
+ NSPAIR(_ZN7ee64422D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc422;
+extern VTBL_ENTRY _ZTI5cc422[];
+extern VTBL_ENTRY _ZTV5cc422[];
+extern Class_Descriptor cd_dd4422;
+extern VTBL_ENTRY _ZTI6dd4422[];
+extern VTBL_ENTRY _ZTV6dd4422[];
+static Base_Class bases_ee64422[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc422, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4422, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee64422[];
+extern void _ZN7ee644223fooEv();
+extern void _ZN7ee644223barEv();
+static VTBL_ENTRY vtc_ee64422[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64422[0]),
+ (VTBL_ENTRY)&_ZN7ee644223fooEv,
+ (VTBL_ENTRY)&_ZN7ee644223barEv,
+};
+extern VTBL_ENTRY _ZTI7ee64422[];
+extern VTBL_ENTRY _ZTV7ee64422[];
+Class_Descriptor cd_ee64422 = { "ee64422", // class name
+ bases_ee64422, 4,
+ &(vtc_ee64422[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee64422),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64422),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 ee74422 : virtual dd4422 {
+ int e;
+ virtual void foo(); // _ZN7ee744223fooEv
+ virtual void bar(); // _ZN7ee744223barEv
+ ~ee74422(); // tgen
+ ee74422(); // tgen
+};
+//SIG(1 ee74422) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74422 ::foo(){vfunc_called(this, "_ZN7ee744223fooEv");}
+void ee74422 ::bar(){vfunc_called(this, "_ZN7ee744223barEv");}
+ee74422 ::~ee74422(){ note_dtor("ee74422", this);} // tgen
+ee74422 ::ee74422(){ note_ctor("ee74422", this);} // tgen
+
+static void Test_ee74422()
+{
+ extern Class_Descriptor cd_ee74422;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee74422, buf);
+ ee74422 *dp, &lv = *(dp=new (buf) ee74422());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee74422)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74422)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc422*)(dd4422*), ABISELECT(16,8), "ee74422");
+ check_base_class_offset(lv, (bb22*)(cc422*)(dd4422*), ABISELECT(16,8), "ee74422");
+ check_base_class_offset(lv, (cc422*)(dd4422*), ABISELECT(16,8), "ee74422");
+ check_base_class_offset(lv, (dd4422*), ABISELECT(16,8), "ee74422");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74422.e");
+ test_class_info(&lv, &cd_ee74422);
+ dp->~ee74422();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74422(Test_ee74422, "ee74422", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee74422C1Ev();
+extern void _ZN7ee74422D1Ev();
+Name_Map name_map_ee74422[] = {
+ NSPAIR(_ZN7ee74422C1Ev),
+ NSPAIR(_ZN7ee74422D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc422;
+extern VTBL_ENTRY _ZTI5cc422[];
+extern VTBL_ENTRY _ZTV5cc422[];
+extern Class_Descriptor cd_dd4422;
+extern VTBL_ENTRY _ZTI6dd4422[];
+extern VTBL_ENTRY _ZTV6dd4422[];
+static Base_Class bases_ee74422[] = {
+ // 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_bb22, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc422, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4422, 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 _ZTI7ee74422[];
+extern void _ZN7ee744223fooEv();
+extern void _ZN7ee744223barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee744223fooEv,_ZTv0_n12_N7ee744223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee744223fooEv,_ZThn8_N7ee744223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee744223barEv,_ZTv0_n16_N7ee744223barEv)();
+extern void ABISELECT(_ZThn16_N7ee744223barEv,_ZThn8_N7ee744223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74422[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74422[0]),
+ (VTBL_ENTRY)&_ZN7ee744223fooEv,
+ (VTBL_ENTRY)&_ZN7ee744223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74422[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee744223fooEv,_ZTv0_n12_N7ee744223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee744223barEv,_ZTv0_n16_N7ee744223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee74422[];
+static VTT_ENTRY vtt_ee74422[] = {
+ {&(_ZTV7ee74422[3]), 3,11},
+ {&(_ZTV7ee74422[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee74422[];
+extern VTBL_ENTRY _ZTV7ee74422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74422[];
+static VTBL_ENTRY alt_thunk_names1103[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee744223barEv,_ZTv0_n16_N7ee744223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee744223barEv,_ZThn8_N7ee744223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee744223fooEv,_ZTv0_n12_N7ee744223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee744223fooEv,_ZThn8_N7ee744223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74422 = { "ee74422", // class name
+ bases_ee74422, 4,
+ &(vtc_ee74422[0]), // expected_vtbl_contents
+ &(vtt_ee74422[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee74422),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74422),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74422),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1103,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd5422 : virtual cc422 {
+ int d;
+ virtual void bar(); // _ZN6dd54223barEv
+ ~dd5422(); // tgen
+ dd5422(); // tgen
+};
+//SIG(-1 dd5422) C1{ VBC2{ BC3{ BC4{ v2 v1 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void dd5422 ::bar(){vfunc_called(this, "_ZN6dd54223barEv");}
+dd5422 ::~dd5422(){ note_dtor("dd5422", this);} // tgen
+dd5422 ::dd5422(){ note_ctor("dd5422", this);} // tgen
+
+static void Test_dd5422()
+{
+ extern Class_Descriptor cd_dd5422;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd5422, buf);
+ dd5422 *dp, &lv = *(dp=new (buf) dd5422());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd5422)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5422)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc422*), ABISELECT(16,8), "dd5422");
+ check_base_class_offset(lv, (bb22*)(cc422*), ABISELECT(16,8), "dd5422");
+ check_base_class_offset(lv, (cc422*), ABISELECT(16,8), "dd5422");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5422.d");
+ test_class_info(&lv, &cd_dd5422);
+ dp->~dd5422();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5422(Test_dd5422, "dd5422", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd5422C1Ev();
+extern void _ZN6dd5422D1Ev();
+Name_Map name_map_dd5422[] = {
+ NSPAIR(_ZN6dd5422C1Ev),
+ NSPAIR(_ZN6dd5422D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc422;
+extern VTBL_ENTRY _ZTI5cc422[];
+extern VTBL_ENTRY _ZTV5cc422[];
+static Base_Class bases_dd5422[] = {
+ // 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_bb22, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc422, 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 _ZTI6dd5422[];
+extern void _ZN6dd54223barEv();
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54223barEv,_ZTv0_n16_N6dd54223barEv)();
+extern void ABISELECT(_ZThn16_N6dd54223barEv,_ZThn8_N6dd54223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd5422[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5422[0]),
+ (VTBL_ENTRY)&_ZN6dd54223barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5422[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54223barEv,_ZTv0_n16_N6dd54223barEv),
+};
+extern VTBL_ENTRY _ZTV6dd5422[];
+static VTT_ENTRY vtt_dd5422[] = {
+ {&(_ZTV6dd5422[3]), 3,10},
+ {&(_ZTV6dd5422[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd5422[];
+extern VTBL_ENTRY _ZTV6dd5422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5422[];
+static VTBL_ENTRY alt_thunk_names1104[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54223barEv,_ZTv0_n16_N6dd54223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54223barEv,_ZThn8_N6dd54223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5422 = { "dd5422", // class name
+ bases_dd5422, 3,
+ &(vtc_dd5422[0]), // expected_vtbl_contents
+ &(vtt_dd5422[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd5422),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5422),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5422),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1104,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05422 : dd5422 {
+ int e;
+ ~ee05422(); // tgen
+ ee05422(); // tgen
+};
+//SIG(1 ee05422) C1{ BC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee05422 ::~ee05422(){ note_dtor("ee05422", this);} // tgen
+ee05422 ::ee05422(){ note_ctor("ee05422", this);} // tgen
+
+static void Test_ee05422()
+{
+ extern Class_Descriptor cd_ee05422;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee05422, buf);
+ ee05422 *dp, &lv = *(dp=new (buf) ee05422());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee05422)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05422)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc422*), ABISELECT(16,12), "ee05422");
+ check_base_class_offset(lv, (bb22*)(cc422*), ABISELECT(16,12), "ee05422");
+ check_base_class_offset(lv, (cc422*)(dd5422*), ABISELECT(16,12), "ee05422");
+ check_base_class_offset(lv, (dd5422*), 0, "ee05422");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05422.e");
+ test_class_info(&lv, &cd_ee05422);
+ dp->~ee05422();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05422(Test_ee05422, "ee05422", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee05422C1Ev();
+extern void _ZN7ee05422D1Ev();
+Name_Map name_map_ee05422[] = {
+ NSPAIR(_ZN7ee05422C1Ev),
+ NSPAIR(_ZN7ee05422D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc422;
+extern VTBL_ENTRY _ZTI5cc422[];
+extern VTBL_ENTRY _ZTV5cc422[];
+extern Class_Descriptor cd_dd5422;
+extern VTBL_ENTRY _ZTI6dd5422[];
+extern VTBL_ENTRY _ZTV6dd5422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5422[];
+static Base_Class bases_ee05422[] = {
+ // 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_bb22, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc422, 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_dd5422, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05422[];
+extern void _ZN6dd54223barEv();
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54223barEv,_ZTv0_n16_N6dd54223barEv)();
+extern void ABISELECT(_ZThn16_N6dd54223barEv,_ZThn12_N6dd54223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee05422[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05422[0]),
+ (VTBL_ENTRY)&_ZN6dd54223barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05422[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54223barEv,_ZTv0_n16_N6dd54223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee05422[];
+extern void _ZN6dd54223barEv();
+static VTBL_ENTRY _tg__ZTV6dd5422__7ee05422[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5422[0]),
+ (VTBL_ENTRY)&_ZN6dd54223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54223barEv,_ZTv0_n16_N6dd54223barEv)();
+extern void ABISELECT(_ZThn16_N6dd54223barEv,_ZThn12_N6dd54223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc422__6dd5422__7ee05422[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5422[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54223barEv,_ZTv0_n16_N6dd54223barEv),
+};
+static VTT_ENTRY vtt_ee05422[] = {
+ {&(_ZTV7ee05422[3]), 3,10},
+ {&(_tg__ZTV6dd5422__7ee05422[3]), 3,4},
+ {&(_tg__ZTV5cc422__6dd5422__7ee05422[4]), 4,6},
+ {&(_ZTV7ee05422[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee05422[];
+extern VTBL_ENTRY _ZTV7ee05422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05422[];
+static VTBL_ENTRY alt_thunk_names1105[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54223barEv,_ZTv0_n16_N6dd54223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54223barEv,_ZThn12_N6dd54223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54223barEv,_ZThn12_N6dd54223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05422 = { "ee05422", // class name
+ bases_ee05422, 4,
+ &(vtc_ee05422[0]), // expected_vtbl_contents
+ &(vtt_ee05422[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee05422),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05422),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05422),4, //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 ee15422 : virtual dd5422 {
+ int e;
+ ~ee15422(); // tgen
+ ee15422(); // tgen
+};
+//SIG(1 ee15422) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee15422 ::~ee15422(){ note_dtor("ee15422", this);} // tgen
+ee15422 ::ee15422(){ note_ctor("ee15422", this);} // tgen
+
+static void Test_ee15422()
+{
+ extern Class_Descriptor cd_ee15422;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee15422, buf);
+ ee15422 *dp, &lv = *(dp=new (buf) ee15422());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee15422)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15422)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc422*), ABISELECT(32,16), "ee15422");
+ check_base_class_offset(lv, (bb22*)(cc422*), ABISELECT(32,16), "ee15422");
+ check_base_class_offset(lv, (cc422*)(dd5422*), ABISELECT(32,16), "ee15422");
+ check_base_class_offset(lv, (dd5422*), ABISELECT(16,8), "ee15422");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15422.e");
+ test_class_info(&lv, &cd_ee15422);
+ dp->~ee15422();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15422(Test_ee15422, "ee15422", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee15422C1Ev();
+extern void _ZN7ee15422D1Ev();
+Name_Map name_map_ee15422[] = {
+ NSPAIR(_ZN7ee15422C1Ev),
+ NSPAIR(_ZN7ee15422D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc422;
+extern VTBL_ENTRY _ZTI5cc422[];
+extern VTBL_ENTRY _ZTV5cc422[];
+extern Class_Descriptor cd_dd5422;
+extern VTBL_ENTRY _ZTI6dd5422[];
+extern VTBL_ENTRY _ZTV6dd5422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5422[];
+static Base_Class bases_ee15422[] = {
+ // 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_bb22, 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_cc422, 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_dd5422, 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 _ZTI7ee15422[];
+extern void _ZN6dd54223barEv();
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54223barEv,_ZTv0_n16_N6dd54223barEv)();
+extern void ABISELECT(_ZThn16_N6dd54223barEv,_ZThn8_N6dd54223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee15422[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15422[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15422[0]),
+ (VTBL_ENTRY)&_ZN6dd54223barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15422[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54223barEv,_ZTv0_n16_N6dd54223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee15422[];
+extern void _ZN6dd54223barEv();
+static VTBL_ENTRY _tg__ZTV6dd5422__7ee15422[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5422[0]),
+ (VTBL_ENTRY)&_ZN6dd54223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54223barEv,_ZTv0_n16_N6dd54223barEv)();
+extern void ABISELECT(_ZThn16_N6dd54223barEv,_ZThn8_N6dd54223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc422__6dd5422__7ee15422[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5422[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54223barEv,_ZTv0_n16_N6dd54223barEv),
+};
+static VTT_ENTRY vtt_ee15422[] = {
+ {&(_ZTV7ee15422[4]), 4,15},
+ {&(_ZTV7ee15422[8]), 8,15},
+ {&(_ZTV7ee15422[13]), 13,15},
+ {&(_tg__ZTV6dd5422__7ee15422[3]), 3,4},
+ {&(_tg__ZTV5cc422__6dd5422__7ee15422[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee15422[];
+extern VTBL_ENTRY _ZTV7ee15422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15422[];
+static VTBL_ENTRY alt_thunk_names1106[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54223barEv,_ZTv0_n16_N6dd54223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54223barEv,_ZThn8_N6dd54223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54223barEv,_ZThn8_N6dd54223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15422 = { "ee15422", // class name
+ bases_ee15422, 4,
+ &(vtc_ee15422[0]), // expected_vtbl_contents
+ &(vtt_ee15422[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee15422),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15422),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15422),5, //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 ee25422 : dd5422 {
+ int e;
+ virtual void foo(); // _ZN7ee254223fooEv
+ ~ee25422(); // tgen
+ ee25422(); // tgen
+};
+//SIG(1 ee25422) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee25422 ::foo(){vfunc_called(this, "_ZN7ee254223fooEv");}
+ee25422 ::~ee25422(){ note_dtor("ee25422", this);} // tgen
+ee25422 ::ee25422(){ note_ctor("ee25422", this);} // tgen
+
+static void Test_ee25422()
+{
+ extern Class_Descriptor cd_ee25422;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee25422, buf);
+ ee25422 *dp, &lv = *(dp=new (buf) ee25422());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee25422)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25422)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc422*), ABISELECT(16,12), "ee25422");
+ check_base_class_offset(lv, (bb22*)(cc422*), ABISELECT(16,12), "ee25422");
+ check_base_class_offset(lv, (cc422*)(dd5422*), ABISELECT(16,12), "ee25422");
+ check_base_class_offset(lv, (dd5422*), 0, "ee25422");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25422.e");
+ test_class_info(&lv, &cd_ee25422);
+ dp->~ee25422();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25422(Test_ee25422, "ee25422", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee25422C1Ev();
+extern void _ZN7ee25422D1Ev();
+Name_Map name_map_ee25422[] = {
+ NSPAIR(_ZN7ee25422C1Ev),
+ NSPAIR(_ZN7ee25422D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc422;
+extern VTBL_ENTRY _ZTI5cc422[];
+extern VTBL_ENTRY _ZTV5cc422[];
+extern Class_Descriptor cd_dd5422;
+extern VTBL_ENTRY _ZTI6dd5422[];
+extern VTBL_ENTRY _ZTV6dd5422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5422[];
+static Base_Class bases_ee25422[] = {
+ // 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_bb22, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc422, 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_dd5422, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25422[];
+extern void _ZN6dd54223barEv();
+extern void _ZN7ee254223fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee254223fooEv,_ZTv0_n12_N7ee254223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee254223fooEv,_ZThn12_N7ee254223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd54223barEv,_ZTv0_n16_N6dd54223barEv)();
+extern void ABISELECT(_ZThn16_N6dd54223barEv,_ZThn12_N6dd54223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25422[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25422[0]),
+ (VTBL_ENTRY)&_ZN6dd54223barEv,
+ (VTBL_ENTRY)&_ZN7ee254223fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25422[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee254223fooEv,_ZTv0_n12_N7ee254223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54223barEv,_ZTv0_n16_N6dd54223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee25422[];
+extern void _ZN6dd54223barEv();
+static VTBL_ENTRY _tg__ZTV6dd5422__7ee25422[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5422[0]),
+ (VTBL_ENTRY)&_ZN6dd54223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54223barEv,_ZTv0_n16_N6dd54223barEv)();
+extern void ABISELECT(_ZThn16_N6dd54223barEv,_ZThn12_N6dd54223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc422__6dd5422__7ee25422[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5422[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54223barEv,_ZTv0_n16_N6dd54223barEv),
+};
+static VTT_ENTRY vtt_ee25422[] = {
+ {&(_ZTV7ee25422[3]), 3,11},
+ {&(_tg__ZTV6dd5422__7ee25422[3]), 3,4},
+ {&(_tg__ZTV5cc422__6dd5422__7ee25422[4]), 4,6},
+ {&(_ZTV7ee25422[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee25422[];
+extern VTBL_ENTRY _ZTV7ee25422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25422[];
+static VTBL_ENTRY alt_thunk_names1107[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54223barEv,_ZTv0_n16_N6dd54223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54223barEv,_ZThn12_N6dd54223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54223barEv,_ZThn12_N6dd54223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee254223fooEv,_ZTv0_n12_N7ee254223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee254223fooEv,_ZThn12_N7ee254223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25422 = { "ee25422", // class name
+ bases_ee25422, 4,
+ &(vtc_ee25422[0]), // expected_vtbl_contents
+ &(vtt_ee25422[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee25422),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25422),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25422),4, //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 ee35422 : virtual dd5422 {
+ int e;
+ virtual void foo(); // _ZN7ee354223fooEv
+ ~ee35422(); // tgen
+ ee35422(); // tgen
+};
+//SIG(1 ee35422) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee35422 ::foo(){vfunc_called(this, "_ZN7ee354223fooEv");}
+ee35422 ::~ee35422(){ note_dtor("ee35422", this);} // tgen
+ee35422 ::ee35422(){ note_ctor("ee35422", this);} // tgen
+
+static void Test_ee35422()
+{
+ extern Class_Descriptor cd_ee35422;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee35422, buf);
+ ee35422 *dp, &lv = *(dp=new (buf) ee35422());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee35422)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35422)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc422*), ABISELECT(32,16), "ee35422");
+ check_base_class_offset(lv, (bb22*)(cc422*), ABISELECT(32,16), "ee35422");
+ check_base_class_offset(lv, (cc422*)(dd5422*), ABISELECT(32,16), "ee35422");
+ check_base_class_offset(lv, (dd5422*), ABISELECT(16,8), "ee35422");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35422.e");
+ test_class_info(&lv, &cd_ee35422);
+ dp->~ee35422();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35422(Test_ee35422, "ee35422", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee35422C1Ev();
+extern void _ZN7ee35422D1Ev();
+Name_Map name_map_ee35422[] = {
+ NSPAIR(_ZN7ee35422C1Ev),
+ NSPAIR(_ZN7ee35422D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc422;
+extern VTBL_ENTRY _ZTI5cc422[];
+extern VTBL_ENTRY _ZTV5cc422[];
+extern Class_Descriptor cd_dd5422;
+extern VTBL_ENTRY _ZTI6dd5422[];
+extern VTBL_ENTRY _ZTV6dd5422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5422[];
+static Base_Class bases_ee35422[] = {
+ // 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_bb22, 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_cc422, 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_dd5422, 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 _ZTI7ee35422[];
+extern void _ZN7ee354223fooEv();
+extern void _ZN6dd54223barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee354223fooEv,_ZTv0_n12_N7ee354223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee354223fooEv,_ZThn16_N7ee354223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd54223barEv,_ZTv0_n16_N6dd54223barEv)();
+extern void ABISELECT(_ZThn16_N6dd54223barEv,_ZThn8_N6dd54223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35422[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35422[0]),
+ (VTBL_ENTRY)&_ZN7ee354223fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35422[0]),
+ (VTBL_ENTRY)&_ZN6dd54223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35422[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee354223fooEv,_ZTv0_n12_N7ee354223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54223barEv,_ZTv0_n16_N6dd54223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee35422[];
+extern void _ZN6dd54223barEv();
+static VTBL_ENTRY _tg__ZTV6dd5422__7ee35422[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5422[0]),
+ (VTBL_ENTRY)&_ZN6dd54223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54223barEv,_ZTv0_n16_N6dd54223barEv)();
+extern void ABISELECT(_ZThn16_N6dd54223barEv,_ZThn8_N6dd54223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc422__6dd5422__7ee35422[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5422[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54223barEv,_ZTv0_n16_N6dd54223barEv),
+};
+static VTT_ENTRY vtt_ee35422[] = {
+ {&(_ZTV7ee35422[4]), 4,16},
+ {&(_ZTV7ee35422[9]), 9,16},
+ {&(_ZTV7ee35422[14]), 14,16},
+ {&(_tg__ZTV6dd5422__7ee35422[3]), 3,4},
+ {&(_tg__ZTV5cc422__6dd5422__7ee35422[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee35422[];
+extern VTBL_ENTRY _ZTV7ee35422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35422[];
+static VTBL_ENTRY alt_thunk_names1108[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54223barEv,_ZTv0_n16_N6dd54223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54223barEv,_ZThn8_N6dd54223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54223barEv,_ZThn8_N6dd54223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee354223fooEv,_ZTv0_n12_N7ee354223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee354223fooEv,_ZThn16_N7ee354223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35422 = { "ee35422", // class name
+ bases_ee35422, 4,
+ &(vtc_ee35422[0]), // expected_vtbl_contents
+ &(vtt_ee35422[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee35422),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35422),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35422),5, //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 ee45422 : dd5422 {
+ int e;
+ virtual void bar(); // _ZN7ee454223barEv
+ ~ee45422(); // tgen
+ ee45422(); // tgen
+};
+//SIG(1 ee45422) C1{ BC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee45422 ::bar(){vfunc_called(this, "_ZN7ee454223barEv");}
+ee45422 ::~ee45422(){ note_dtor("ee45422", this);} // tgen
+ee45422 ::ee45422(){ note_ctor("ee45422", this);} // tgen
+
+static void Test_ee45422()
+{
+ extern Class_Descriptor cd_ee45422;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee45422, buf);
+ ee45422 *dp, &lv = *(dp=new (buf) ee45422());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee45422)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45422)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc422*), ABISELECT(16,12), "ee45422");
+ check_base_class_offset(lv, (bb22*)(cc422*), ABISELECT(16,12), "ee45422");
+ check_base_class_offset(lv, (cc422*)(dd5422*), ABISELECT(16,12), "ee45422");
+ check_base_class_offset(lv, (dd5422*), 0, "ee45422");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45422.e");
+ test_class_info(&lv, &cd_ee45422);
+ dp->~ee45422();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45422(Test_ee45422, "ee45422", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee45422C1Ev();
+extern void _ZN7ee45422D1Ev();
+Name_Map name_map_ee45422[] = {
+ NSPAIR(_ZN7ee45422C1Ev),
+ NSPAIR(_ZN7ee45422D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc422;
+extern VTBL_ENTRY _ZTI5cc422[];
+extern VTBL_ENTRY _ZTV5cc422[];
+extern Class_Descriptor cd_dd5422;
+extern VTBL_ENTRY _ZTI6dd5422[];
+extern VTBL_ENTRY _ZTV6dd5422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5422[];
+static Base_Class bases_ee45422[] = {
+ // 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_bb22, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc422, 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_dd5422, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45422[];
+extern void _ZN7ee454223barEv();
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee454223barEv,_ZTv0_n16_N7ee454223barEv)();
+extern void ABISELECT(_ZThn16_N7ee454223barEv,_ZThn12_N7ee454223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee45422[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45422[0]),
+ (VTBL_ENTRY)&_ZN7ee454223barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45422[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee454223barEv,_ZTv0_n16_N7ee454223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee45422[];
+extern void _ZN6dd54223barEv();
+static VTBL_ENTRY _tg__ZTV6dd5422__7ee45422[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5422[0]),
+ (VTBL_ENTRY)&_ZN6dd54223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54223barEv,_ZTv0_n16_N6dd54223barEv)();
+extern void ABISELECT(_ZThn16_N6dd54223barEv,_ZThn12_N6dd54223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc422__6dd5422__7ee45422[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5422[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54223barEv,_ZTv0_n16_N6dd54223barEv),
+};
+static VTT_ENTRY vtt_ee45422[] = {
+ {&(_ZTV7ee45422[3]), 3,10},
+ {&(_tg__ZTV6dd5422__7ee45422[3]), 3,4},
+ {&(_tg__ZTV5cc422__6dd5422__7ee45422[4]), 4,6},
+ {&(_ZTV7ee45422[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee45422[];
+extern VTBL_ENTRY _ZTV7ee45422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45422[];
+static VTBL_ENTRY alt_thunk_names1109[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54223barEv,_ZTv0_n16_N6dd54223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54223barEv,_ZThn12_N6dd54223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee454223barEv,_ZTv0_n16_N7ee454223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee454223barEv,_ZThn12_N7ee454223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45422 = { "ee45422", // class name
+ bases_ee45422, 4,
+ &(vtc_ee45422[0]), // expected_vtbl_contents
+ &(vtt_ee45422[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee45422),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45422),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45422),4, //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 ee55422 : virtual dd5422 {
+ int e;
+ virtual void bar(); // _ZN7ee554223barEv
+ ~ee55422(); // tgen
+ ee55422(); // tgen
+};
+//SIG(1 ee55422) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee55422 ::bar(){vfunc_called(this, "_ZN7ee554223barEv");}
+ee55422 ::~ee55422(){ note_dtor("ee55422", this);} // tgen
+ee55422 ::ee55422(){ note_ctor("ee55422", this);} // tgen
+
+static void Test_ee55422()
+{
+ extern Class_Descriptor cd_ee55422;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee55422, buf);
+ ee55422 *dp, &lv = *(dp=new (buf) ee55422());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee55422)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55422)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc422*), ABISELECT(32,16), "ee55422");
+ check_base_class_offset(lv, (bb22*)(cc422*), ABISELECT(32,16), "ee55422");
+ check_base_class_offset(lv, (cc422*)(dd5422*), ABISELECT(32,16), "ee55422");
+ check_base_class_offset(lv, (dd5422*), ABISELECT(16,8), "ee55422");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55422.e");
+ test_class_info(&lv, &cd_ee55422);
+ dp->~ee55422();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55422(Test_ee55422, "ee55422", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee55422C1Ev();
+extern void _ZN7ee55422D1Ev();
+Name_Map name_map_ee55422[] = {
+ NSPAIR(_ZN7ee55422C1Ev),
+ NSPAIR(_ZN7ee55422D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc422;
+extern VTBL_ENTRY _ZTI5cc422[];
+extern VTBL_ENTRY _ZTV5cc422[];
+extern Class_Descriptor cd_dd5422;
+extern VTBL_ENTRY _ZTI6dd5422[];
+extern VTBL_ENTRY _ZTV6dd5422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5422[];
+static Base_Class bases_ee55422[] = {
+ // 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_bb22, 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_cc422, 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_dd5422, 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 _ZTI7ee55422[];
+extern void _ZN7ee554223barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee554223barEv,_ZTv0_n16_N7ee554223barEv)();
+extern void ABISELECT(_ZThn16_N7ee554223barEv,_ZThn8_N7ee554223barEv)() __attribute__((weak));
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee554223barEv,_ZTv0_n16_N7ee554223barEv)();
+extern void ABISELECT(_ZThn32_N7ee554223barEv,_ZThn16_N7ee554223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee55422[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55422[0]),
+ (VTBL_ENTRY)&_ZN7ee554223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55422[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee554223barEv,_ZTv0_n16_N7ee554223barEv),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55422[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee554223barEv,_ZTv0_n16_N7ee554223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee55422[];
+extern void _ZN6dd54223barEv();
+static VTBL_ENTRY _tg__ZTV6dd5422__7ee55422[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5422[0]),
+ (VTBL_ENTRY)&_ZN6dd54223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54223barEv,_ZTv0_n16_N6dd54223barEv)();
+extern void ABISELECT(_ZThn16_N6dd54223barEv,_ZThn8_N6dd54223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc422__6dd5422__7ee55422[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5422[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54223barEv,_ZTv0_n16_N6dd54223barEv),
+};
+static VTT_ENTRY vtt_ee55422[] = {
+ {&(_ZTV7ee55422[4]), 4,16},
+ {&(_ZTV7ee55422[9]), 9,16},
+ {&(_ZTV7ee55422[14]), 14,16},
+ {&(_tg__ZTV6dd5422__7ee55422[3]), 3,4},
+ {&(_tg__ZTV5cc422__6dd5422__7ee55422[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee55422[];
+extern VTBL_ENTRY _ZTV7ee55422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55422[];
+static VTBL_ENTRY alt_thunk_names1110[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54223barEv,_ZTv0_n16_N6dd54223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54223barEv,_ZThn8_N6dd54223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee554223barEv,_ZTv0_n16_N7ee554223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee554223barEv,_ZThn16_N7ee554223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee554223barEv,_ZThn8_N7ee554223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55422 = { "ee55422", // class name
+ bases_ee55422, 4,
+ &(vtc_ee55422[0]), // expected_vtbl_contents
+ &(vtt_ee55422[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee55422),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55422),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55422),5, //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 ee65422 : dd5422 {
+ int e;
+ virtual void foo(); // _ZN7ee654223fooEv
+ virtual void bar(); // _ZN7ee654223barEv
+ ~ee65422(); // tgen
+ ee65422(); // tgen
+};
+//SIG(1 ee65422) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65422 ::foo(){vfunc_called(this, "_ZN7ee654223fooEv");}
+void ee65422 ::bar(){vfunc_called(this, "_ZN7ee654223barEv");}
+ee65422 ::~ee65422(){ note_dtor("ee65422", this);} // tgen
+ee65422 ::ee65422(){ note_ctor("ee65422", this);} // tgen
+
+static void Test_ee65422()
+{
+ extern Class_Descriptor cd_ee65422;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee65422, buf);
+ ee65422 *dp, &lv = *(dp=new (buf) ee65422());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee65422)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65422)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc422*), ABISELECT(16,12), "ee65422");
+ check_base_class_offset(lv, (bb22*)(cc422*), ABISELECT(16,12), "ee65422");
+ check_base_class_offset(lv, (cc422*)(dd5422*), ABISELECT(16,12), "ee65422");
+ check_base_class_offset(lv, (dd5422*), 0, "ee65422");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65422.e");
+ test_class_info(&lv, &cd_ee65422);
+ dp->~ee65422();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65422(Test_ee65422, "ee65422", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee65422C1Ev();
+extern void _ZN7ee65422D1Ev();
+Name_Map name_map_ee65422[] = {
+ NSPAIR(_ZN7ee65422C1Ev),
+ NSPAIR(_ZN7ee65422D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc422;
+extern VTBL_ENTRY _ZTI5cc422[];
+extern VTBL_ENTRY _ZTV5cc422[];
+extern Class_Descriptor cd_dd5422;
+extern VTBL_ENTRY _ZTI6dd5422[];
+extern VTBL_ENTRY _ZTV6dd5422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5422[];
+static Base_Class bases_ee65422[] = {
+ // 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_bb22, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc422, 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_dd5422, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65422[];
+extern void _ZN7ee654223barEv();
+extern void _ZN7ee654223fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee654223fooEv,_ZTv0_n12_N7ee654223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee654223fooEv,_ZThn12_N7ee654223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee654223barEv,_ZTv0_n16_N7ee654223barEv)();
+extern void ABISELECT(_ZThn16_N7ee654223barEv,_ZThn12_N7ee654223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65422[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65422[0]),
+ (VTBL_ENTRY)&_ZN7ee654223barEv,
+ (VTBL_ENTRY)&_ZN7ee654223fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65422[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee654223fooEv,_ZTv0_n12_N7ee654223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee654223barEv,_ZTv0_n16_N7ee654223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee65422[];
+extern void _ZN6dd54223barEv();
+static VTBL_ENTRY _tg__ZTV6dd5422__7ee65422[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5422[0]),
+ (VTBL_ENTRY)&_ZN6dd54223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54223barEv,_ZTv0_n16_N6dd54223barEv)();
+extern void ABISELECT(_ZThn16_N6dd54223barEv,_ZThn12_N6dd54223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc422__6dd5422__7ee65422[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5422[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54223barEv,_ZTv0_n16_N6dd54223barEv),
+};
+static VTT_ENTRY vtt_ee65422[] = {
+ {&(_ZTV7ee65422[3]), 3,11},
+ {&(_tg__ZTV6dd5422__7ee65422[3]), 3,4},
+ {&(_tg__ZTV5cc422__6dd5422__7ee65422[4]), 4,6},
+ {&(_ZTV7ee65422[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee65422[];
+extern VTBL_ENTRY _ZTV7ee65422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65422[];
+static VTBL_ENTRY alt_thunk_names1111[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54223barEv,_ZTv0_n16_N6dd54223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54223barEv,_ZThn12_N6dd54223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee654223barEv,_ZTv0_n16_N7ee654223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee654223barEv,_ZThn12_N7ee654223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee654223fooEv,_ZTv0_n12_N7ee654223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee654223fooEv,_ZThn12_N7ee654223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65422 = { "ee65422", // class name
+ bases_ee65422, 4,
+ &(vtc_ee65422[0]), // expected_vtbl_contents
+ &(vtt_ee65422[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee65422),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65422),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65422),4, //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 ee75422 : virtual dd5422 {
+ int e;
+ virtual void foo(); // _ZN7ee754223fooEv
+ virtual void bar(); // _ZN7ee754223barEv
+ ~ee75422(); // tgen
+ ee75422(); // tgen
+};
+//SIG(1 ee75422) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75422 ::foo(){vfunc_called(this, "_ZN7ee754223fooEv");}
+void ee75422 ::bar(){vfunc_called(this, "_ZN7ee754223barEv");}
+ee75422 ::~ee75422(){ note_dtor("ee75422", this);} // tgen
+ee75422 ::ee75422(){ note_ctor("ee75422", this);} // tgen
+
+static void Test_ee75422()
+{
+ extern Class_Descriptor cd_ee75422;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee75422, buf);
+ ee75422 *dp, &lv = *(dp=new (buf) ee75422());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee75422)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75422)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc422*), ABISELECT(32,16), "ee75422");
+ check_base_class_offset(lv, (bb22*)(cc422*), ABISELECT(32,16), "ee75422");
+ check_base_class_offset(lv, (cc422*)(dd5422*), ABISELECT(32,16), "ee75422");
+ check_base_class_offset(lv, (dd5422*), ABISELECT(16,8), "ee75422");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75422.e");
+ test_class_info(&lv, &cd_ee75422);
+ dp->~ee75422();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75422(Test_ee75422, "ee75422", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee75422C1Ev();
+extern void _ZN7ee75422D1Ev();
+Name_Map name_map_ee75422[] = {
+ NSPAIR(_ZN7ee75422C1Ev),
+ NSPAIR(_ZN7ee75422D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc422;
+extern VTBL_ENTRY _ZTI5cc422[];
+extern VTBL_ENTRY _ZTV5cc422[];
+extern Class_Descriptor cd_dd5422;
+extern VTBL_ENTRY _ZTI6dd5422[];
+extern VTBL_ENTRY _ZTV6dd5422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5422[];
+static Base_Class bases_ee75422[] = {
+ // 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_bb22, 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_cc422, 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_dd5422, 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 _ZTI7ee75422[];
+extern void _ZN7ee754223fooEv();
+extern void _ZN7ee754223barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee754223barEv,_ZTv0_n16_N7ee754223barEv)();
+extern void ABISELECT(_ZThn16_N7ee754223barEv,_ZThn8_N7ee754223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee754223fooEv,_ZTv0_n12_N7ee754223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee754223fooEv,_ZThn16_N7ee754223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee754223barEv,_ZTv0_n16_N7ee754223barEv)();
+extern void ABISELECT(_ZThn32_N7ee754223barEv,_ZThn16_N7ee754223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75422[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75422[0]),
+ (VTBL_ENTRY)&_ZN7ee754223fooEv,
+ (VTBL_ENTRY)&_ZN7ee754223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75422[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee754223barEv,_ZTv0_n16_N7ee754223barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75422[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee754223fooEv,_ZTv0_n12_N7ee754223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee754223barEv,_ZTv0_n16_N7ee754223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee75422[];
+extern void _ZN6dd54223barEv();
+static VTBL_ENTRY _tg__ZTV6dd5422__7ee75422[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5422[0]),
+ (VTBL_ENTRY)&_ZN6dd54223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54223barEv,_ZTv0_n16_N6dd54223barEv)();
+extern void ABISELECT(_ZThn16_N6dd54223barEv,_ZThn8_N6dd54223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc422__6dd5422__7ee75422[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5422[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54223barEv,_ZTv0_n16_N6dd54223barEv),
+};
+static VTT_ENTRY vtt_ee75422[] = {
+ {&(_ZTV7ee75422[4]), 4,17},
+ {&(_ZTV7ee75422[10]), 10,17},
+ {&(_ZTV7ee75422[15]), 15,17},
+ {&(_tg__ZTV6dd5422__7ee75422[3]), 3,4},
+ {&(_tg__ZTV5cc422__6dd5422__7ee75422[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee75422[];
+extern VTBL_ENTRY _ZTV7ee75422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75422[];
+static VTBL_ENTRY alt_thunk_names1112[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54223barEv,_ZTv0_n16_N6dd54223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54223barEv,_ZThn8_N6dd54223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee754223fooEv,_ZTv0_n12_N7ee754223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee754223fooEv,_ZThn16_N7ee754223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee754223barEv,_ZTv0_n16_N7ee754223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee754223barEv,_ZThn16_N7ee754223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee754223barEv,_ZThn8_N7ee754223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75422 = { "ee75422", // class name
+ bases_ee75422, 4,
+ &(vtc_ee75422[0]), // expected_vtbl_contents
+ &(vtt_ee75422[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee75422),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75422),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75422),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1112,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd6422 : cc422 {
+ int d;
+ virtual void bar(); // _ZN6dd64223barEv
+ virtual void foo(); // _ZN6dd64223fooEv
+ ~dd6422(); // tgen
+ dd6422(); // tgen
+};
+//SIG(-1 dd6422) C1{ BC2{ BC3{ BC4{ v2 v1 Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void dd6422 ::bar(){vfunc_called(this, "_ZN6dd64223barEv");}
+void dd6422 ::foo(){vfunc_called(this, "_ZN6dd64223fooEv");}
+dd6422 ::~dd6422(){ note_dtor("dd6422", this);} // tgen
+dd6422 ::dd6422(){ note_ctor("dd6422", this);} // tgen
+
+static void Test_dd6422()
+{
+ extern Class_Descriptor cd_dd6422;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd6422, buf);
+ dd6422 *dp, &lv = *(dp=new (buf) dd6422());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd6422)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6422)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc422*), 0, "dd6422");
+ check_base_class_offset(lv, (bb22*)(cc422*), 0, "dd6422");
+ check_base_class_offset(lv, (cc422*), 0, "dd6422");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd6422.d");
+ test_class_info(&lv, &cd_dd6422);
+ dp->~dd6422();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6422(Test_dd6422, "dd6422", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd6422C1Ev();
+extern void _ZN6dd6422D1Ev();
+Name_Map name_map_dd6422[] = {
+ NSPAIR(_ZN6dd6422C1Ev),
+ NSPAIR(_ZN6dd6422D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc422;
+extern VTBL_ENTRY _ZTI5cc422[];
+extern VTBL_ENTRY _ZTV5cc422[];
+static Base_Class bases_dd6422[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc422, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI6dd6422[];
+extern void _ZN6dd64223fooEv();
+extern void _ZN6dd64223barEv();
+static VTBL_ENTRY vtc_dd6422[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6422[0]),
+ (VTBL_ENTRY)&_ZN6dd64223fooEv,
+ (VTBL_ENTRY)&_ZN6dd64223barEv,
+};
+extern VTBL_ENTRY _ZTI6dd6422[];
+extern VTBL_ENTRY _ZTV6dd6422[];
+Class_Descriptor cd_dd6422 = { "dd6422", // class name
+ bases_dd6422, 3,
+ &(vtc_dd6422[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd6422),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6422),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 ee06422 : dd6422 {
+ int e;
+ ~ee06422(); // tgen
+ ee06422(); // tgen
+};
+//SIG(1 ee06422) C1{ BC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee06422 ::~ee06422(){ note_dtor("ee06422", this);} // tgen
+ee06422 ::ee06422(){ note_ctor("ee06422", this);} // tgen
+
+static void Test_ee06422()
+{
+ extern Class_Descriptor cd_ee06422;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee06422, buf);
+ ee06422 *dp, &lv = *(dp=new (buf) ee06422());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee06422)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06422)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc422*)(dd6422*), 0, "ee06422");
+ check_base_class_offset(lv, (bb22*)(cc422*)(dd6422*), 0, "ee06422");
+ check_base_class_offset(lv, (cc422*)(dd6422*), 0, "ee06422");
+ check_base_class_offset(lv, (dd6422*), 0, "ee06422");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee06422.e");
+ test_class_info(&lv, &cd_ee06422);
+ dp->~ee06422();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06422(Test_ee06422, "ee06422", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee06422C1Ev();
+extern void _ZN7ee06422D1Ev();
+Name_Map name_map_ee06422[] = {
+ NSPAIR(_ZN7ee06422C1Ev),
+ NSPAIR(_ZN7ee06422D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc422;
+extern VTBL_ENTRY _ZTI5cc422[];
+extern VTBL_ENTRY _ZTV5cc422[];
+extern Class_Descriptor cd_dd6422;
+extern VTBL_ENTRY _ZTI6dd6422[];
+extern VTBL_ENTRY _ZTV6dd6422[];
+static Base_Class bases_ee06422[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc422, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6422, 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 _ZTI7ee06422[];
+extern void _ZN6dd64223fooEv();
+extern void _ZN6dd64223barEv();
+static VTBL_ENTRY vtc_ee06422[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06422[0]),
+ (VTBL_ENTRY)&_ZN6dd64223fooEv,
+ (VTBL_ENTRY)&_ZN6dd64223barEv,
+};
+extern VTBL_ENTRY _ZTI7ee06422[];
+extern VTBL_ENTRY _ZTV7ee06422[];
+Class_Descriptor cd_ee06422 = { "ee06422", // class name
+ bases_ee06422, 4,
+ &(vtc_ee06422[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee06422),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06422),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 ee16422 : virtual dd6422 {
+ int e;
+ ~ee16422(); // tgen
+ ee16422(); // tgen
+};
+//SIG(1 ee16422) C1{ VBC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee16422 ::~ee16422(){ note_dtor("ee16422", this);} // tgen
+ee16422 ::ee16422(){ note_ctor("ee16422", this);} // tgen
+
+static void Test_ee16422()
+{
+ extern Class_Descriptor cd_ee16422;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee16422, buf);
+ ee16422 *dp, &lv = *(dp=new (buf) ee16422());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee16422)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16422)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc422*)(dd6422*), ABISELECT(16,8), "ee16422");
+ check_base_class_offset(lv, (bb22*)(cc422*)(dd6422*), ABISELECT(16,8), "ee16422");
+ check_base_class_offset(lv, (cc422*)(dd6422*), ABISELECT(16,8), "ee16422");
+ check_base_class_offset(lv, (dd6422*), ABISELECT(16,8), "ee16422");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16422.e");
+ test_class_info(&lv, &cd_ee16422);
+ dp->~ee16422();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16422(Test_ee16422, "ee16422", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee16422C1Ev();
+extern void _ZN7ee16422D1Ev();
+Name_Map name_map_ee16422[] = {
+ NSPAIR(_ZN7ee16422C1Ev),
+ NSPAIR(_ZN7ee16422D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc422;
+extern VTBL_ENTRY _ZTI5cc422[];
+extern VTBL_ENTRY _ZTV5cc422[];
+extern Class_Descriptor cd_dd6422;
+extern VTBL_ENTRY _ZTI6dd6422[];
+extern VTBL_ENTRY _ZTV6dd6422[];
+static Base_Class bases_ee16422[] = {
+ // 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_bb22, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc422, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6422, 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 _ZTI7ee16422[];
+extern void _ZN6dd64223fooEv();
+extern void _ZN6dd64223barEv();
+static VTBL_ENTRY vtc_ee16422[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16422[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16422[0]),
+ (VTBL_ENTRY)&_ZN6dd64223fooEv,
+ (VTBL_ENTRY)&_ZN6dd64223barEv,
+};
+extern VTBL_ENTRY _ZTV7ee16422[];
+static VTT_ENTRY vtt_ee16422[] = {
+ {&(_ZTV7ee16422[3]), 3,9},
+ {&(_ZTV7ee16422[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee16422[];
+extern VTBL_ENTRY _ZTV7ee16422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16422[];
+Class_Descriptor cd_ee16422 = { "ee16422", // class name
+ bases_ee16422, 4,
+ &(vtc_ee16422[0]), // expected_vtbl_contents
+ &(vtt_ee16422[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee16422),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16422),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16422),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 ee26422 : dd6422 {
+ int e;
+ virtual void foo(); // _ZN7ee264223fooEv
+ ~ee26422(); // tgen
+ ee26422(); // tgen
+};
+//SIG(1 ee26422) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26422 ::foo(){vfunc_called(this, "_ZN7ee264223fooEv");}
+ee26422 ::~ee26422(){ note_dtor("ee26422", this);} // tgen
+ee26422 ::ee26422(){ note_ctor("ee26422", this);} // tgen
+
+static void Test_ee26422()
+{
+ extern Class_Descriptor cd_ee26422;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee26422, buf);
+ ee26422 *dp, &lv = *(dp=new (buf) ee26422());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee26422)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26422)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc422*)(dd6422*), 0, "ee26422");
+ check_base_class_offset(lv, (bb22*)(cc422*)(dd6422*), 0, "ee26422");
+ check_base_class_offset(lv, (cc422*)(dd6422*), 0, "ee26422");
+ check_base_class_offset(lv, (dd6422*), 0, "ee26422");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee26422.e");
+ test_class_info(&lv, &cd_ee26422);
+ dp->~ee26422();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26422(Test_ee26422, "ee26422", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee26422C1Ev();
+extern void _ZN7ee26422D1Ev();
+Name_Map name_map_ee26422[] = {
+ NSPAIR(_ZN7ee26422C1Ev),
+ NSPAIR(_ZN7ee26422D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc422;
+extern VTBL_ENTRY _ZTI5cc422[];
+extern VTBL_ENTRY _ZTV5cc422[];
+extern Class_Descriptor cd_dd6422;
+extern VTBL_ENTRY _ZTI6dd6422[];
+extern VTBL_ENTRY _ZTV6dd6422[];
+static Base_Class bases_ee26422[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc422, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6422, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee26422[];
+extern void _ZN7ee264223fooEv();
+extern void _ZN6dd64223barEv();
+static VTBL_ENTRY vtc_ee26422[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26422[0]),
+ (VTBL_ENTRY)&_ZN7ee264223fooEv,
+ (VTBL_ENTRY)&_ZN6dd64223barEv,
+};
+extern VTBL_ENTRY _ZTI7ee26422[];
+extern VTBL_ENTRY _ZTV7ee26422[];
+Class_Descriptor cd_ee26422 = { "ee26422", // class name
+ bases_ee26422, 4,
+ &(vtc_ee26422[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee26422),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26422),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 ee36422 : virtual dd6422 {
+ int e;
+ virtual void foo(); // _ZN7ee364223fooEv
+ ~ee36422(); // tgen
+ ee36422(); // tgen
+};
+//SIG(1 ee36422) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36422 ::foo(){vfunc_called(this, "_ZN7ee364223fooEv");}
+ee36422 ::~ee36422(){ note_dtor("ee36422", this);} // tgen
+ee36422 ::ee36422(){ note_ctor("ee36422", this);} // tgen
+
+static void Test_ee36422()
+{
+ extern Class_Descriptor cd_ee36422;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee36422, buf);
+ ee36422 *dp, &lv = *(dp=new (buf) ee36422());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee36422)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36422)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc422*)(dd6422*), ABISELECT(16,8), "ee36422");
+ check_base_class_offset(lv, (bb22*)(cc422*)(dd6422*), ABISELECT(16,8), "ee36422");
+ check_base_class_offset(lv, (cc422*)(dd6422*), ABISELECT(16,8), "ee36422");
+ check_base_class_offset(lv, (dd6422*), ABISELECT(16,8), "ee36422");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36422.e");
+ test_class_info(&lv, &cd_ee36422);
+ dp->~ee36422();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36422(Test_ee36422, "ee36422", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee36422C1Ev();
+extern void _ZN7ee36422D1Ev();
+Name_Map name_map_ee36422[] = {
+ NSPAIR(_ZN7ee36422C1Ev),
+ NSPAIR(_ZN7ee36422D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc422;
+extern VTBL_ENTRY _ZTI5cc422[];
+extern VTBL_ENTRY _ZTV5cc422[];
+extern Class_Descriptor cd_dd6422;
+extern VTBL_ENTRY _ZTI6dd6422[];
+extern VTBL_ENTRY _ZTV6dd6422[];
+static Base_Class bases_ee36422[] = {
+ // 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_bb22, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc422, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6422, 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 _ZTI7ee36422[];
+extern void _ZN7ee364223fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee364223fooEv,_ZTv0_n12_N7ee364223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee364223fooEv,_ZThn8_N7ee364223fooEv)() __attribute__((weak));
+extern void _ZN6dd64223barEv();
+static VTBL_ENTRY vtc_ee36422[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36422[0]),
+ (VTBL_ENTRY)&_ZN7ee364223fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36422[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee364223fooEv,_ZTv0_n12_N7ee364223fooEv),
+ (VTBL_ENTRY)&_ZN6dd64223barEv,
+};
+extern VTBL_ENTRY _ZTV7ee36422[];
+static VTT_ENTRY vtt_ee36422[] = {
+ {&(_ZTV7ee36422[3]), 3,10},
+ {&(_ZTV7ee36422[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee36422[];
+extern VTBL_ENTRY _ZTV7ee36422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36422[];
+static VTBL_ENTRY alt_thunk_names1113[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee364223fooEv,_ZTv0_n12_N7ee364223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee364223fooEv,_ZThn8_N7ee364223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36422 = { "ee36422", // class name
+ bases_ee36422, 4,
+ &(vtc_ee36422[0]), // expected_vtbl_contents
+ &(vtt_ee36422[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee36422),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36422),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36422),2, //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 ee46422 : dd6422 {
+ int e;
+ virtual void bar(); // _ZN7ee464223barEv
+ ~ee46422(); // tgen
+ ee46422(); // tgen
+};
+//SIG(1 ee46422) C1{ BC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46422 ::bar(){vfunc_called(this, "_ZN7ee464223barEv");}
+ee46422 ::~ee46422(){ note_dtor("ee46422", this);} // tgen
+ee46422 ::ee46422(){ note_ctor("ee46422", this);} // tgen
+
+static void Test_ee46422()
+{
+ extern Class_Descriptor cd_ee46422;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee46422, buf);
+ ee46422 *dp, &lv = *(dp=new (buf) ee46422());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee46422)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46422)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc422*)(dd6422*), 0, "ee46422");
+ check_base_class_offset(lv, (bb22*)(cc422*)(dd6422*), 0, "ee46422");
+ check_base_class_offset(lv, (cc422*)(dd6422*), 0, "ee46422");
+ check_base_class_offset(lv, (dd6422*), 0, "ee46422");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee46422.e");
+ test_class_info(&lv, &cd_ee46422);
+ dp->~ee46422();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46422(Test_ee46422, "ee46422", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee46422C1Ev();
+extern void _ZN7ee46422D1Ev();
+Name_Map name_map_ee46422[] = {
+ NSPAIR(_ZN7ee46422C1Ev),
+ NSPAIR(_ZN7ee46422D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc422;
+extern VTBL_ENTRY _ZTI5cc422[];
+extern VTBL_ENTRY _ZTV5cc422[];
+extern Class_Descriptor cd_dd6422;
+extern VTBL_ENTRY _ZTI6dd6422[];
+extern VTBL_ENTRY _ZTV6dd6422[];
+static Base_Class bases_ee46422[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc422, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6422, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee46422[];
+extern void _ZN6dd64223fooEv();
+extern void _ZN7ee464223barEv();
+static VTBL_ENTRY vtc_ee46422[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46422[0]),
+ (VTBL_ENTRY)&_ZN6dd64223fooEv,
+ (VTBL_ENTRY)&_ZN7ee464223barEv,
+};
+extern VTBL_ENTRY _ZTI7ee46422[];
+extern VTBL_ENTRY _ZTV7ee46422[];
+Class_Descriptor cd_ee46422 = { "ee46422", // class name
+ bases_ee46422, 4,
+ &(vtc_ee46422[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee46422),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46422),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 ee56422 : virtual dd6422 {
+ int e;
+ virtual void bar(); // _ZN7ee564223barEv
+ ~ee56422(); // tgen
+ ee56422(); // tgen
+};
+//SIG(1 ee56422) C1{ VBC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56422 ::bar(){vfunc_called(this, "_ZN7ee564223barEv");}
+ee56422 ::~ee56422(){ note_dtor("ee56422", this);} // tgen
+ee56422 ::ee56422(){ note_ctor("ee56422", this);} // tgen
+
+static void Test_ee56422()
+{
+ extern Class_Descriptor cd_ee56422;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee56422, buf);
+ ee56422 *dp, &lv = *(dp=new (buf) ee56422());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee56422)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56422)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc422*)(dd6422*), ABISELECT(16,8), "ee56422");
+ check_base_class_offset(lv, (bb22*)(cc422*)(dd6422*), ABISELECT(16,8), "ee56422");
+ check_base_class_offset(lv, (cc422*)(dd6422*), ABISELECT(16,8), "ee56422");
+ check_base_class_offset(lv, (dd6422*), ABISELECT(16,8), "ee56422");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56422.e");
+ test_class_info(&lv, &cd_ee56422);
+ dp->~ee56422();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56422(Test_ee56422, "ee56422", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee56422C1Ev();
+extern void _ZN7ee56422D1Ev();
+Name_Map name_map_ee56422[] = {
+ NSPAIR(_ZN7ee56422C1Ev),
+ NSPAIR(_ZN7ee56422D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc422;
+extern VTBL_ENTRY _ZTI5cc422[];
+extern VTBL_ENTRY _ZTV5cc422[];
+extern Class_Descriptor cd_dd6422;
+extern VTBL_ENTRY _ZTI6dd6422[];
+extern VTBL_ENTRY _ZTV6dd6422[];
+static Base_Class bases_ee56422[] = {
+ // 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_bb22, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc422, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6422, 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 _ZTI7ee56422[];
+extern void _ZN7ee564223barEv();
+extern void _ZN6dd64223fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee564223barEv,_ZTv0_n16_N7ee564223barEv)();
+extern void ABISELECT(_ZThn16_N7ee564223barEv,_ZThn8_N7ee564223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56422[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56422[0]),
+ (VTBL_ENTRY)&_ZN7ee564223barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56422[0]),
+ (VTBL_ENTRY)&_ZN6dd64223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee564223barEv,_ZTv0_n16_N7ee564223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee56422[];
+static VTT_ENTRY vtt_ee56422[] = {
+ {&(_ZTV7ee56422[3]), 3,10},
+ {&(_ZTV7ee56422[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee56422[];
+extern VTBL_ENTRY _ZTV7ee56422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56422[];
+static VTBL_ENTRY alt_thunk_names1114[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee564223barEv,_ZTv0_n16_N7ee564223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee564223barEv,_ZThn8_N7ee564223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56422 = { "ee56422", // class name
+ bases_ee56422, 4,
+ &(vtc_ee56422[0]), // expected_vtbl_contents
+ &(vtt_ee56422[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee56422),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56422),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56422),2, //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 ee66422 : dd6422 {
+ int e;
+ virtual void foo(); // _ZN7ee664223fooEv
+ virtual void bar(); // _ZN7ee664223barEv
+ ~ee66422(); // tgen
+ ee66422(); // tgen
+};
+//SIG(1 ee66422) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66422 ::foo(){vfunc_called(this, "_ZN7ee664223fooEv");}
+void ee66422 ::bar(){vfunc_called(this, "_ZN7ee664223barEv");}
+ee66422 ::~ee66422(){ note_dtor("ee66422", this);} // tgen
+ee66422 ::ee66422(){ note_ctor("ee66422", this);} // tgen
+
+static void Test_ee66422()
+{
+ extern Class_Descriptor cd_ee66422;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee66422, buf);
+ ee66422 *dp, &lv = *(dp=new (buf) ee66422());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee66422)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66422)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc422*)(dd6422*), 0, "ee66422");
+ check_base_class_offset(lv, (bb22*)(cc422*)(dd6422*), 0, "ee66422");
+ check_base_class_offset(lv, (cc422*)(dd6422*), 0, "ee66422");
+ check_base_class_offset(lv, (dd6422*), 0, "ee66422");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee66422.e");
+ test_class_info(&lv, &cd_ee66422);
+ dp->~ee66422();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66422(Test_ee66422, "ee66422", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee66422C1Ev();
+extern void _ZN7ee66422D1Ev();
+Name_Map name_map_ee66422[] = {
+ NSPAIR(_ZN7ee66422C1Ev),
+ NSPAIR(_ZN7ee66422D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc422;
+extern VTBL_ENTRY _ZTI5cc422[];
+extern VTBL_ENTRY _ZTV5cc422[];
+extern Class_Descriptor cd_dd6422;
+extern VTBL_ENTRY _ZTI6dd6422[];
+extern VTBL_ENTRY _ZTV6dd6422[];
+static Base_Class bases_ee66422[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc422, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6422, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee66422[];
+extern void _ZN7ee664223fooEv();
+extern void _ZN7ee664223barEv();
+static VTBL_ENTRY vtc_ee66422[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66422[0]),
+ (VTBL_ENTRY)&_ZN7ee664223fooEv,
+ (VTBL_ENTRY)&_ZN7ee664223barEv,
+};
+extern VTBL_ENTRY _ZTI7ee66422[];
+extern VTBL_ENTRY _ZTV7ee66422[];
+Class_Descriptor cd_ee66422 = { "ee66422", // class name
+ bases_ee66422, 4,
+ &(vtc_ee66422[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee66422),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66422),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 ee76422 : virtual dd6422 {
+ int e;
+ virtual void foo(); // _ZN7ee764223fooEv
+ virtual void bar(); // _ZN7ee764223barEv
+ ~ee76422(); // tgen
+ ee76422(); // tgen
+};
+//SIG(1 ee76422) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76422 ::foo(){vfunc_called(this, "_ZN7ee764223fooEv");}
+void ee76422 ::bar(){vfunc_called(this, "_ZN7ee764223barEv");}
+ee76422 ::~ee76422(){ note_dtor("ee76422", this);} // tgen
+ee76422 ::ee76422(){ note_ctor("ee76422", this);} // tgen
+
+static void Test_ee76422()
+{
+ extern Class_Descriptor cd_ee76422;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee76422, buf);
+ ee76422 *dp, &lv = *(dp=new (buf) ee76422());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee76422)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76422)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc422*)(dd6422*), ABISELECT(16,8), "ee76422");
+ check_base_class_offset(lv, (bb22*)(cc422*)(dd6422*), ABISELECT(16,8), "ee76422");
+ check_base_class_offset(lv, (cc422*)(dd6422*), ABISELECT(16,8), "ee76422");
+ check_base_class_offset(lv, (dd6422*), ABISELECT(16,8), "ee76422");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76422.e");
+ test_class_info(&lv, &cd_ee76422);
+ dp->~ee76422();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76422(Test_ee76422, "ee76422", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee76422C1Ev();
+extern void _ZN7ee76422D1Ev();
+Name_Map name_map_ee76422[] = {
+ NSPAIR(_ZN7ee76422C1Ev),
+ NSPAIR(_ZN7ee76422D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc422;
+extern VTBL_ENTRY _ZTI5cc422[];
+extern VTBL_ENTRY _ZTV5cc422[];
+extern Class_Descriptor cd_dd6422;
+extern VTBL_ENTRY _ZTI6dd6422[];
+extern VTBL_ENTRY _ZTV6dd6422[];
+static Base_Class bases_ee76422[] = {
+ // 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_bb22, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc422, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6422, 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 _ZTI7ee76422[];
+extern void _ZN7ee764223fooEv();
+extern void _ZN7ee764223barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee764223fooEv,_ZTv0_n12_N7ee764223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee764223fooEv,_ZThn8_N7ee764223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee764223barEv,_ZTv0_n16_N7ee764223barEv)();
+extern void ABISELECT(_ZThn16_N7ee764223barEv,_ZThn8_N7ee764223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76422[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76422[0]),
+ (VTBL_ENTRY)&_ZN7ee764223fooEv,
+ (VTBL_ENTRY)&_ZN7ee764223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76422[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee764223fooEv,_ZTv0_n12_N7ee764223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee764223barEv,_ZTv0_n16_N7ee764223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee76422[];
+static VTT_ENTRY vtt_ee76422[] = {
+ {&(_ZTV7ee76422[3]), 3,11},
+ {&(_ZTV7ee76422[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee76422[];
+extern VTBL_ENTRY _ZTV7ee76422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76422[];
+static VTBL_ENTRY alt_thunk_names1115[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee764223barEv,_ZTv0_n16_N7ee764223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee764223barEv,_ZThn8_N7ee764223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee764223fooEv,_ZTv0_n12_N7ee764223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee764223fooEv,_ZThn8_N7ee764223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76422 = { "ee76422", // class name
+ bases_ee76422, 4,
+ &(vtc_ee76422[0]), // expected_vtbl_contents
+ &(vtt_ee76422[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee76422),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76422),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76422),2, //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 dd7422 : virtual cc422 {
+ int d;
+ virtual void bar(); // _ZN6dd74223barEv
+ virtual void foo(); // _ZN6dd74223fooEv
+ ~dd7422(); // tgen
+ dd7422(); // tgen
+};
+//SIG(-1 dd7422) C1{ VBC2{ BC3{ BC4{ v2 v1 Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void dd7422 ::bar(){vfunc_called(this, "_ZN6dd74223barEv");}
+void dd7422 ::foo(){vfunc_called(this, "_ZN6dd74223fooEv");}
+dd7422 ::~dd7422(){ note_dtor("dd7422", this);} // tgen
+dd7422 ::dd7422(){ note_ctor("dd7422", this);} // tgen
+
+static void Test_dd7422()
+{
+ extern Class_Descriptor cd_dd7422;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd7422, buf);
+ dd7422 *dp, &lv = *(dp=new (buf) dd7422());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd7422)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7422)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc422*), ABISELECT(16,8), "dd7422");
+ check_base_class_offset(lv, (bb22*)(cc422*), ABISELECT(16,8), "dd7422");
+ check_base_class_offset(lv, (cc422*), ABISELECT(16,8), "dd7422");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7422.d");
+ test_class_info(&lv, &cd_dd7422);
+ dp->~dd7422();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7422(Test_dd7422, "dd7422", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd7422C1Ev();
+extern void _ZN6dd7422D1Ev();
+Name_Map name_map_dd7422[] = {
+ NSPAIR(_ZN6dd7422C1Ev),
+ NSPAIR(_ZN6dd7422D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc422;
+extern VTBL_ENTRY _ZTI5cc422[];
+extern VTBL_ENTRY _ZTV5cc422[];
+static Base_Class bases_dd7422[] = {
+ // 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_bb22, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc422, 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 _ZTI6dd7422[];
+extern void _ZN6dd74223barEv();
+extern void _ZN6dd74223fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd74223fooEv,_ZTv0_n12_N6dd74223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74223fooEv,_ZThn8_N6dd74223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74223barEv,_ZTv0_n16_N6dd74223barEv)();
+extern void ABISELECT(_ZThn16_N6dd74223barEv,_ZThn8_N6dd74223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7422[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7422[0]),
+ (VTBL_ENTRY)&_ZN6dd74223barEv,
+ (VTBL_ENTRY)&_ZN6dd74223fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7422[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74223fooEv,_ZTv0_n12_N6dd74223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74223barEv,_ZTv0_n16_N6dd74223barEv),
+};
+extern VTBL_ENTRY _ZTV6dd7422[];
+static VTT_ENTRY vtt_dd7422[] = {
+ {&(_ZTV6dd7422[3]), 3,11},
+ {&(_ZTV6dd7422[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd7422[];
+extern VTBL_ENTRY _ZTV6dd7422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7422[];
+static VTBL_ENTRY alt_thunk_names1116[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74223barEv,_ZTv0_n16_N6dd74223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74223barEv,_ZThn8_N6dd74223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74223fooEv,_ZTv0_n12_N6dd74223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74223fooEv,_ZThn8_N6dd74223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7422 = { "dd7422", // class name
+ bases_dd7422, 3,
+ &(vtc_dd7422[0]), // expected_vtbl_contents
+ &(vtt_dd7422[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd7422),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7422),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7422),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1116,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07422 : dd7422 {
+ int e;
+ ~ee07422(); // tgen
+ ee07422(); // tgen
+};
+//SIG(1 ee07422) C1{ BC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee07422 ::~ee07422(){ note_dtor("ee07422", this);} // tgen
+ee07422 ::ee07422(){ note_ctor("ee07422", this);} // tgen
+
+static void Test_ee07422()
+{
+ extern Class_Descriptor cd_ee07422;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee07422, buf);
+ ee07422 *dp, &lv = *(dp=new (buf) ee07422());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee07422)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07422)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc422*), ABISELECT(16,12), "ee07422");
+ check_base_class_offset(lv, (bb22*)(cc422*), ABISELECT(16,12), "ee07422");
+ check_base_class_offset(lv, (cc422*)(dd7422*), ABISELECT(16,12), "ee07422");
+ check_base_class_offset(lv, (dd7422*), 0, "ee07422");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07422.e");
+ test_class_info(&lv, &cd_ee07422);
+ dp->~ee07422();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07422(Test_ee07422, "ee07422", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee07422C1Ev();
+extern void _ZN7ee07422D1Ev();
+Name_Map name_map_ee07422[] = {
+ NSPAIR(_ZN7ee07422C1Ev),
+ NSPAIR(_ZN7ee07422D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc422;
+extern VTBL_ENTRY _ZTI5cc422[];
+extern VTBL_ENTRY _ZTV5cc422[];
+extern Class_Descriptor cd_dd7422;
+extern VTBL_ENTRY _ZTI6dd7422[];
+extern VTBL_ENTRY _ZTV6dd7422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7422[];
+static Base_Class bases_ee07422[] = {
+ // 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_bb22, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc422, 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_dd7422, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07422[];
+extern void _ZN6dd74223barEv();
+extern void _ZN6dd74223fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd74223fooEv,_ZTv0_n12_N6dd74223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74223fooEv,_ZThn12_N6dd74223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74223barEv,_ZTv0_n16_N6dd74223barEv)();
+extern void ABISELECT(_ZThn16_N6dd74223barEv,_ZThn12_N6dd74223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07422[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07422[0]),
+ (VTBL_ENTRY)&_ZN6dd74223barEv,
+ (VTBL_ENTRY)&_ZN6dd74223fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07422[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74223fooEv,_ZTv0_n12_N6dd74223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74223barEv,_ZTv0_n16_N6dd74223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee07422[];
+extern void _ZN6dd74223barEv();
+extern void _ZN6dd74223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7422__7ee07422[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7422[0]),
+ (VTBL_ENTRY)&_ZN6dd74223barEv,
+ (VTBL_ENTRY)&_ZN6dd74223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74223fooEv,_ZTv0_n12_N6dd74223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74223fooEv,_ZThn12_N6dd74223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74223barEv,_ZTv0_n16_N6dd74223barEv)();
+extern void ABISELECT(_ZThn16_N6dd74223barEv,_ZThn12_N6dd74223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc422__6dd7422__7ee07422[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7422[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74223fooEv,_ZTv0_n12_N6dd74223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74223barEv,_ZTv0_n16_N6dd74223barEv),
+};
+static VTT_ENTRY vtt_ee07422[] = {
+ {&(_ZTV7ee07422[3]), 3,11},
+ {&(_tg__ZTV6dd7422__7ee07422[3]), 3,5},
+ {&(_tg__ZTV5cc422__6dd7422__7ee07422[4]), 4,6},
+ {&(_ZTV7ee07422[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee07422[];
+extern VTBL_ENTRY _ZTV7ee07422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07422[];
+static VTBL_ENTRY alt_thunk_names1117[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74223barEv,_ZTv0_n16_N6dd74223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74223barEv,_ZThn12_N6dd74223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74223barEv,_ZThn12_N6dd74223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74223fooEv,_ZTv0_n12_N6dd74223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74223fooEv,_ZThn12_N6dd74223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74223fooEv,_ZThn12_N6dd74223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07422 = { "ee07422", // class name
+ bases_ee07422, 4,
+ &(vtc_ee07422[0]), // expected_vtbl_contents
+ &(vtt_ee07422[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee07422),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07422),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07422),4, //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 ee17422 : virtual dd7422 {
+ int e;
+ ~ee17422(); // tgen
+ ee17422(); // tgen
+};
+//SIG(1 ee17422) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee17422 ::~ee17422(){ note_dtor("ee17422", this);} // tgen
+ee17422 ::ee17422(){ note_ctor("ee17422", this);} // tgen
+
+static void Test_ee17422()
+{
+ extern Class_Descriptor cd_ee17422;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee17422, buf);
+ ee17422 *dp, &lv = *(dp=new (buf) ee17422());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee17422)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17422)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc422*), ABISELECT(32,16), "ee17422");
+ check_base_class_offset(lv, (bb22*)(cc422*), ABISELECT(32,16), "ee17422");
+ check_base_class_offset(lv, (cc422*)(dd7422*), ABISELECT(32,16), "ee17422");
+ check_base_class_offset(lv, (dd7422*), ABISELECT(16,8), "ee17422");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17422.e");
+ test_class_info(&lv, &cd_ee17422);
+ dp->~ee17422();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17422(Test_ee17422, "ee17422", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee17422C1Ev();
+extern void _ZN7ee17422D1Ev();
+Name_Map name_map_ee17422[] = {
+ NSPAIR(_ZN7ee17422C1Ev),
+ NSPAIR(_ZN7ee17422D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc422;
+extern VTBL_ENTRY _ZTI5cc422[];
+extern VTBL_ENTRY _ZTV5cc422[];
+extern Class_Descriptor cd_dd7422;
+extern VTBL_ENTRY _ZTI6dd7422[];
+extern VTBL_ENTRY _ZTV6dd7422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7422[];
+static Base_Class bases_ee17422[] = {
+ // 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_bb22, 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_cc422, 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_dd7422, 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 _ZTI7ee17422[];
+extern void _ZN6dd74223barEv();
+extern void _ZN6dd74223fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd74223fooEv,_ZTv0_n12_N6dd74223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74223fooEv,_ZThn8_N6dd74223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74223barEv,_ZTv0_n16_N6dd74223barEv)();
+extern void ABISELECT(_ZThn16_N6dd74223barEv,_ZThn8_N6dd74223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17422[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17422[0]),
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17422[0]),
+ (VTBL_ENTRY)&_ZN6dd74223barEv,
+ (VTBL_ENTRY)&_ZN6dd74223fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17422[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74223fooEv,_ZTv0_n12_N6dd74223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74223barEv,_ZTv0_n16_N6dd74223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee17422[];
+extern void _ZN6dd74223barEv();
+extern void _ZN6dd74223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7422__7ee17422[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7422[0]),
+ (VTBL_ENTRY)&_ZN6dd74223barEv,
+ (VTBL_ENTRY)&_ZN6dd74223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74223fooEv,_ZTv0_n12_N6dd74223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74223fooEv,_ZThn8_N6dd74223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74223barEv,_ZTv0_n16_N6dd74223barEv)();
+extern void ABISELECT(_ZThn16_N6dd74223barEv,_ZThn8_N6dd74223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc422__6dd7422__7ee17422[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7422[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74223fooEv,_ZTv0_n12_N6dd74223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74223barEv,_ZTv0_n16_N6dd74223barEv),
+};
+static VTT_ENTRY vtt_ee17422[] = {
+ {&(_ZTV7ee17422[4]), 4,17},
+ {&(_ZTV7ee17422[9]), 9,17},
+ {&(_ZTV7ee17422[15]), 15,17},
+ {&(_tg__ZTV6dd7422__7ee17422[3]), 3,5},
+ {&(_tg__ZTV5cc422__6dd7422__7ee17422[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee17422[];
+extern VTBL_ENTRY _ZTV7ee17422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17422[];
+static VTBL_ENTRY alt_thunk_names1118[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74223barEv,_ZTv0_n16_N6dd74223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74223barEv,_ZThn8_N6dd74223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74223barEv,_ZThn8_N6dd74223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74223fooEv,_ZTv0_n12_N6dd74223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74223fooEv,_ZThn8_N6dd74223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74223fooEv,_ZThn8_N6dd74223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17422 = { "ee17422", // class name
+ bases_ee17422, 4,
+ &(vtc_ee17422[0]), // expected_vtbl_contents
+ &(vtt_ee17422[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee17422),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17422),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17422),5, //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 ee27422 : dd7422 {
+ int e;
+ virtual void foo(); // _ZN7ee274223fooEv
+ ~ee27422(); // tgen
+ ee27422(); // tgen
+};
+//SIG(1 ee27422) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27422 ::foo(){vfunc_called(this, "_ZN7ee274223fooEv");}
+ee27422 ::~ee27422(){ note_dtor("ee27422", this);} // tgen
+ee27422 ::ee27422(){ note_ctor("ee27422", this);} // tgen
+
+static void Test_ee27422()
+{
+ extern Class_Descriptor cd_ee27422;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee27422, buf);
+ ee27422 *dp, &lv = *(dp=new (buf) ee27422());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee27422)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27422)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc422*), ABISELECT(16,12), "ee27422");
+ check_base_class_offset(lv, (bb22*)(cc422*), ABISELECT(16,12), "ee27422");
+ check_base_class_offset(lv, (cc422*)(dd7422*), ABISELECT(16,12), "ee27422");
+ check_base_class_offset(lv, (dd7422*), 0, "ee27422");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27422.e");
+ test_class_info(&lv, &cd_ee27422);
+ dp->~ee27422();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27422(Test_ee27422, "ee27422", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee27422C1Ev();
+extern void _ZN7ee27422D1Ev();
+Name_Map name_map_ee27422[] = {
+ NSPAIR(_ZN7ee27422C1Ev),
+ NSPAIR(_ZN7ee27422D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc422;
+extern VTBL_ENTRY _ZTI5cc422[];
+extern VTBL_ENTRY _ZTV5cc422[];
+extern Class_Descriptor cd_dd7422;
+extern VTBL_ENTRY _ZTI6dd7422[];
+extern VTBL_ENTRY _ZTV6dd7422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7422[];
+static Base_Class bases_ee27422[] = {
+ // 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_bb22, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc422, 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_dd7422, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27422[];
+extern void _ZN6dd74223barEv();
+extern void _ZN7ee274223fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee274223fooEv,_ZTv0_n12_N7ee274223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee274223fooEv,_ZThn12_N7ee274223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74223barEv,_ZTv0_n16_N6dd74223barEv)();
+extern void ABISELECT(_ZThn16_N6dd74223barEv,_ZThn12_N6dd74223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27422[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27422[0]),
+ (VTBL_ENTRY)&_ZN6dd74223barEv,
+ (VTBL_ENTRY)&_ZN7ee274223fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27422[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee274223fooEv,_ZTv0_n12_N7ee274223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74223barEv,_ZTv0_n16_N6dd74223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee27422[];
+extern void _ZN6dd74223barEv();
+extern void _ZN6dd74223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7422__7ee27422[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7422[0]),
+ (VTBL_ENTRY)&_ZN6dd74223barEv,
+ (VTBL_ENTRY)&_ZN6dd74223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74223fooEv,_ZTv0_n12_N6dd74223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74223fooEv,_ZThn12_N6dd74223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74223barEv,_ZTv0_n16_N6dd74223barEv)();
+extern void ABISELECT(_ZThn16_N6dd74223barEv,_ZThn12_N6dd74223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc422__6dd7422__7ee27422[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7422[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74223fooEv,_ZTv0_n12_N6dd74223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74223barEv,_ZTv0_n16_N6dd74223barEv),
+};
+static VTT_ENTRY vtt_ee27422[] = {
+ {&(_ZTV7ee27422[3]), 3,11},
+ {&(_tg__ZTV6dd7422__7ee27422[3]), 3,5},
+ {&(_tg__ZTV5cc422__6dd7422__7ee27422[4]), 4,6},
+ {&(_ZTV7ee27422[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee27422[];
+extern VTBL_ENTRY _ZTV7ee27422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27422[];
+static VTBL_ENTRY alt_thunk_names1119[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74223fooEv,_ZTv0_n12_N6dd74223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74223fooEv,_ZThn12_N6dd74223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74223barEv,_ZTv0_n16_N6dd74223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74223barEv,_ZThn12_N6dd74223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74223barEv,_ZThn12_N6dd74223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee274223fooEv,_ZTv0_n12_N7ee274223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee274223fooEv,_ZThn12_N7ee274223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27422 = { "ee27422", // class name
+ bases_ee27422, 4,
+ &(vtc_ee27422[0]), // expected_vtbl_contents
+ &(vtt_ee27422[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee27422),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27422),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27422),4, //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 ee37422 : virtual dd7422 {
+ int e;
+ virtual void foo(); // _ZN7ee374223fooEv
+ ~ee37422(); // tgen
+ ee37422(); // tgen
+};
+//SIG(1 ee37422) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37422 ::foo(){vfunc_called(this, "_ZN7ee374223fooEv");}
+ee37422 ::~ee37422(){ note_dtor("ee37422", this);} // tgen
+ee37422 ::ee37422(){ note_ctor("ee37422", this);} // tgen
+
+static void Test_ee37422()
+{
+ extern Class_Descriptor cd_ee37422;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee37422, buf);
+ ee37422 *dp, &lv = *(dp=new (buf) ee37422());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee37422)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37422)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc422*), ABISELECT(32,16), "ee37422");
+ check_base_class_offset(lv, (bb22*)(cc422*), ABISELECT(32,16), "ee37422");
+ check_base_class_offset(lv, (cc422*)(dd7422*), ABISELECT(32,16), "ee37422");
+ check_base_class_offset(lv, (dd7422*), ABISELECT(16,8), "ee37422");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37422.e");
+ test_class_info(&lv, &cd_ee37422);
+ dp->~ee37422();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37422(Test_ee37422, "ee37422", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee37422C1Ev();
+extern void _ZN7ee37422D1Ev();
+Name_Map name_map_ee37422[] = {
+ NSPAIR(_ZN7ee37422C1Ev),
+ NSPAIR(_ZN7ee37422D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc422;
+extern VTBL_ENTRY _ZTI5cc422[];
+extern VTBL_ENTRY _ZTV5cc422[];
+extern Class_Descriptor cd_dd7422;
+extern VTBL_ENTRY _ZTI6dd7422[];
+extern VTBL_ENTRY _ZTV6dd7422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7422[];
+static Base_Class bases_ee37422[] = {
+ // 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_bb22, 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_cc422, 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_dd7422, 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 _ZTI7ee37422[];
+extern void _ZN7ee374223fooEv();
+extern void _ZN6dd74223barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee374223fooEv,_ZTv0_n20_N7ee374223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee374223fooEv,_ZThn8_N7ee374223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee374223fooEv,_ZTv0_n12_N7ee374223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee374223fooEv,_ZThn16_N7ee374223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74223barEv,_ZTv0_n16_N6dd74223barEv)();
+extern void ABISELECT(_ZThn16_N6dd74223barEv,_ZThn8_N6dd74223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37422[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37422[0]),
+ (VTBL_ENTRY)&_ZN7ee374223fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37422[0]),
+ (VTBL_ENTRY)&_ZN6dd74223barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee374223fooEv,_ZTv0_n20_N7ee374223fooEv),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37422[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee374223fooEv,_ZTv0_n12_N7ee374223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74223barEv,_ZTv0_n16_N6dd74223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee37422[];
+extern void _ZN6dd74223barEv();
+extern void _ZN6dd74223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7422__7ee37422[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7422[0]),
+ (VTBL_ENTRY)&_ZN6dd74223barEv,
+ (VTBL_ENTRY)&_ZN6dd74223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74223fooEv,_ZTv0_n12_N6dd74223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74223fooEv,_ZThn8_N6dd74223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74223barEv,_ZTv0_n16_N6dd74223barEv)();
+extern void ABISELECT(_ZThn16_N6dd74223barEv,_ZThn8_N6dd74223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc422__6dd7422__7ee37422[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7422[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74223fooEv,_ZTv0_n12_N6dd74223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74223barEv,_ZTv0_n16_N6dd74223barEv),
+};
+static VTT_ENTRY vtt_ee37422[] = {
+ {&(_ZTV7ee37422[4]), 4,18},
+ {&(_ZTV7ee37422[10]), 10,18},
+ {&(_ZTV7ee37422[16]), 16,18},
+ {&(_tg__ZTV6dd7422__7ee37422[3]), 3,5},
+ {&(_tg__ZTV5cc422__6dd7422__7ee37422[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee37422[];
+extern VTBL_ENTRY _ZTV7ee37422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37422[];
+static VTBL_ENTRY alt_thunk_names1120[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74223fooEv,_ZTv0_n12_N6dd74223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74223fooEv,_ZThn8_N6dd74223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74223barEv,_ZTv0_n16_N6dd74223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74223barEv,_ZThn8_N6dd74223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74223barEv,_ZThn8_N6dd74223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee374223fooEv,_ZTv0_n12_N7ee374223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee374223fooEv,_ZThn16_N7ee374223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee374223fooEv,_ZTv0_n20_N7ee374223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee374223fooEv,_ZThn8_N7ee374223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37422 = { "ee37422", // class name
+ bases_ee37422, 4,
+ &(vtc_ee37422[0]), // expected_vtbl_contents
+ &(vtt_ee37422[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee37422),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37422),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37422),5, //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 ee47422 : dd7422 {
+ int e;
+ virtual void bar(); // _ZN7ee474223barEv
+ ~ee47422(); // tgen
+ ee47422(); // tgen
+};
+//SIG(1 ee47422) C1{ BC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47422 ::bar(){vfunc_called(this, "_ZN7ee474223barEv");}
+ee47422 ::~ee47422(){ note_dtor("ee47422", this);} // tgen
+ee47422 ::ee47422(){ note_ctor("ee47422", this);} // tgen
+
+static void Test_ee47422()
+{
+ extern Class_Descriptor cd_ee47422;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee47422, buf);
+ ee47422 *dp, &lv = *(dp=new (buf) ee47422());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee47422)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47422)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc422*), ABISELECT(16,12), "ee47422");
+ check_base_class_offset(lv, (bb22*)(cc422*), ABISELECT(16,12), "ee47422");
+ check_base_class_offset(lv, (cc422*)(dd7422*), ABISELECT(16,12), "ee47422");
+ check_base_class_offset(lv, (dd7422*), 0, "ee47422");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47422.e");
+ test_class_info(&lv, &cd_ee47422);
+ dp->~ee47422();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47422(Test_ee47422, "ee47422", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee47422C1Ev();
+extern void _ZN7ee47422D1Ev();
+Name_Map name_map_ee47422[] = {
+ NSPAIR(_ZN7ee47422C1Ev),
+ NSPAIR(_ZN7ee47422D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc422;
+extern VTBL_ENTRY _ZTI5cc422[];
+extern VTBL_ENTRY _ZTV5cc422[];
+extern Class_Descriptor cd_dd7422;
+extern VTBL_ENTRY _ZTI6dd7422[];
+extern VTBL_ENTRY _ZTV6dd7422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7422[];
+static Base_Class bases_ee47422[] = {
+ // 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_bb22, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc422, 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_dd7422, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47422[];
+extern void _ZN7ee474223barEv();
+extern void _ZN6dd74223fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd74223fooEv,_ZTv0_n12_N6dd74223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74223fooEv,_ZThn12_N6dd74223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee474223barEv,_ZTv0_n16_N7ee474223barEv)();
+extern void ABISELECT(_ZThn16_N7ee474223barEv,_ZThn12_N7ee474223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47422[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47422[0]),
+ (VTBL_ENTRY)&_ZN7ee474223barEv,
+ (VTBL_ENTRY)&_ZN6dd74223fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47422[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74223fooEv,_ZTv0_n12_N6dd74223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee474223barEv,_ZTv0_n16_N7ee474223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee47422[];
+extern void _ZN6dd74223barEv();
+extern void _ZN6dd74223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7422__7ee47422[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7422[0]),
+ (VTBL_ENTRY)&_ZN6dd74223barEv,
+ (VTBL_ENTRY)&_ZN6dd74223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74223fooEv,_ZTv0_n12_N6dd74223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74223fooEv,_ZThn12_N6dd74223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74223barEv,_ZTv0_n16_N6dd74223barEv)();
+extern void ABISELECT(_ZThn16_N6dd74223barEv,_ZThn12_N6dd74223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc422__6dd7422__7ee47422[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7422[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74223fooEv,_ZTv0_n12_N6dd74223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74223barEv,_ZTv0_n16_N6dd74223barEv),
+};
+static VTT_ENTRY vtt_ee47422[] = {
+ {&(_ZTV7ee47422[3]), 3,11},
+ {&(_tg__ZTV6dd7422__7ee47422[3]), 3,5},
+ {&(_tg__ZTV5cc422__6dd7422__7ee47422[4]), 4,6},
+ {&(_ZTV7ee47422[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee47422[];
+extern VTBL_ENTRY _ZTV7ee47422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47422[];
+static VTBL_ENTRY alt_thunk_names1121[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74223barEv,_ZTv0_n16_N6dd74223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74223barEv,_ZThn12_N6dd74223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee474223barEv,_ZTv0_n16_N7ee474223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee474223barEv,_ZThn12_N7ee474223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74223fooEv,_ZTv0_n12_N6dd74223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74223fooEv,_ZThn12_N6dd74223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74223fooEv,_ZThn12_N6dd74223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47422 = { "ee47422", // class name
+ bases_ee47422, 4,
+ &(vtc_ee47422[0]), // expected_vtbl_contents
+ &(vtt_ee47422[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee47422),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47422),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47422),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1121,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee57422 : virtual dd7422 {
+ int e;
+ virtual void bar(); // _ZN7ee574223barEv
+ ~ee57422(); // tgen
+ ee57422(); // tgen
+};
+//SIG(1 ee57422) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57422 ::bar(){vfunc_called(this, "_ZN7ee574223barEv");}
+ee57422 ::~ee57422(){ note_dtor("ee57422", this);} // tgen
+ee57422 ::ee57422(){ note_ctor("ee57422", this);} // tgen
+
+static void Test_ee57422()
+{
+ extern Class_Descriptor cd_ee57422;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee57422, buf);
+ ee57422 *dp, &lv = *(dp=new (buf) ee57422());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee57422)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57422)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc422*), ABISELECT(32,16), "ee57422");
+ check_base_class_offset(lv, (bb22*)(cc422*), ABISELECT(32,16), "ee57422");
+ check_base_class_offset(lv, (cc422*)(dd7422*), ABISELECT(32,16), "ee57422");
+ check_base_class_offset(lv, (dd7422*), ABISELECT(16,8), "ee57422");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57422.e");
+ test_class_info(&lv, &cd_ee57422);
+ dp->~ee57422();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57422(Test_ee57422, "ee57422", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee57422C1Ev();
+extern void _ZN7ee57422D1Ev();
+Name_Map name_map_ee57422[] = {
+ NSPAIR(_ZN7ee57422C1Ev),
+ NSPAIR(_ZN7ee57422D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc422;
+extern VTBL_ENTRY _ZTI5cc422[];
+extern VTBL_ENTRY _ZTV5cc422[];
+extern Class_Descriptor cd_dd7422;
+extern VTBL_ENTRY _ZTI6dd7422[];
+extern VTBL_ENTRY _ZTV6dd7422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7422[];
+static Base_Class bases_ee57422[] = {
+ // 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_bb22, 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_cc422, 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_dd7422, 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 _ZTI7ee57422[];
+extern void _ZN7ee574223barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee574223barEv,_ZTv0_n16_N7ee574223barEv)();
+extern void ABISELECT(_ZThn16_N7ee574223barEv,_ZThn8_N7ee574223barEv)() __attribute__((weak));
+extern void _ZN6dd74223fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd74223fooEv,_ZTv0_n12_N6dd74223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74223fooEv,_ZThn8_N6dd74223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee574223barEv,_ZTv0_n16_N7ee574223barEv)();
+extern void ABISELECT(_ZThn32_N7ee574223barEv,_ZThn16_N7ee574223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57422[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57422[0]),
+ (VTBL_ENTRY)&_ZN7ee574223barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57422[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee574223barEv,_ZTv0_n16_N7ee574223barEv),
+ (VTBL_ENTRY)&_ZN6dd74223fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57422[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74223fooEv,_ZTv0_n12_N6dd74223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee574223barEv,_ZTv0_n16_N7ee574223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee57422[];
+extern void _ZN6dd74223barEv();
+extern void _ZN6dd74223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7422__7ee57422[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7422[0]),
+ (VTBL_ENTRY)&_ZN6dd74223barEv,
+ (VTBL_ENTRY)&_ZN6dd74223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74223fooEv,_ZTv0_n12_N6dd74223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74223fooEv,_ZThn8_N6dd74223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74223barEv,_ZTv0_n16_N6dd74223barEv)();
+extern void ABISELECT(_ZThn16_N6dd74223barEv,_ZThn8_N6dd74223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc422__6dd7422__7ee57422[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7422[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74223fooEv,_ZTv0_n12_N6dd74223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74223barEv,_ZTv0_n16_N6dd74223barEv),
+};
+static VTT_ENTRY vtt_ee57422[] = {
+ {&(_ZTV7ee57422[4]), 4,18},
+ {&(_ZTV7ee57422[10]), 10,18},
+ {&(_ZTV7ee57422[16]), 16,18},
+ {&(_tg__ZTV6dd7422__7ee57422[3]), 3,5},
+ {&(_tg__ZTV5cc422__6dd7422__7ee57422[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee57422[];
+extern VTBL_ENTRY _ZTV7ee57422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57422[];
+static VTBL_ENTRY alt_thunk_names1122[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74223barEv,_ZTv0_n16_N6dd74223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74223barEv,_ZThn8_N6dd74223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74223fooEv,_ZTv0_n12_N6dd74223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74223fooEv,_ZThn8_N6dd74223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74223fooEv,_ZThn8_N6dd74223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee574223barEv,_ZTv0_n16_N7ee574223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee574223barEv,_ZThn16_N7ee574223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee574223barEv,_ZThn8_N7ee574223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57422 = { "ee57422", // class name
+ bases_ee57422, 4,
+ &(vtc_ee57422[0]), // expected_vtbl_contents
+ &(vtt_ee57422[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee57422),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57422),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57422),5, //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 ee67422 : dd7422 {
+ int e;
+ virtual void foo(); // _ZN7ee674223fooEv
+ virtual void bar(); // _ZN7ee674223barEv
+ ~ee67422(); // tgen
+ ee67422(); // tgen
+};
+//SIG(1 ee67422) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67422 ::foo(){vfunc_called(this, "_ZN7ee674223fooEv");}
+void ee67422 ::bar(){vfunc_called(this, "_ZN7ee674223barEv");}
+ee67422 ::~ee67422(){ note_dtor("ee67422", this);} // tgen
+ee67422 ::ee67422(){ note_ctor("ee67422", this);} // tgen
+
+static void Test_ee67422()
+{
+ extern Class_Descriptor cd_ee67422;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee67422, buf);
+ ee67422 *dp, &lv = *(dp=new (buf) ee67422());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee67422)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67422)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc422*), ABISELECT(16,12), "ee67422");
+ check_base_class_offset(lv, (bb22*)(cc422*), ABISELECT(16,12), "ee67422");
+ check_base_class_offset(lv, (cc422*)(dd7422*), ABISELECT(16,12), "ee67422");
+ check_base_class_offset(lv, (dd7422*), 0, "ee67422");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67422.e");
+ test_class_info(&lv, &cd_ee67422);
+ dp->~ee67422();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67422(Test_ee67422, "ee67422", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee67422C1Ev();
+extern void _ZN7ee67422D1Ev();
+Name_Map name_map_ee67422[] = {
+ NSPAIR(_ZN7ee67422C1Ev),
+ NSPAIR(_ZN7ee67422D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc422;
+extern VTBL_ENTRY _ZTI5cc422[];
+extern VTBL_ENTRY _ZTV5cc422[];
+extern Class_Descriptor cd_dd7422;
+extern VTBL_ENTRY _ZTI6dd7422[];
+extern VTBL_ENTRY _ZTV6dd7422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7422[];
+static Base_Class bases_ee67422[] = {
+ // 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_bb22, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc422, 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_dd7422, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67422[];
+extern void _ZN7ee674223barEv();
+extern void _ZN7ee674223fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee674223fooEv,_ZTv0_n12_N7ee674223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee674223fooEv,_ZThn12_N7ee674223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee674223barEv,_ZTv0_n16_N7ee674223barEv)();
+extern void ABISELECT(_ZThn16_N7ee674223barEv,_ZThn12_N7ee674223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67422[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67422[0]),
+ (VTBL_ENTRY)&_ZN7ee674223barEv,
+ (VTBL_ENTRY)&_ZN7ee674223fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67422[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee674223fooEv,_ZTv0_n12_N7ee674223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee674223barEv,_ZTv0_n16_N7ee674223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee67422[];
+extern void _ZN6dd74223barEv();
+extern void _ZN6dd74223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7422__7ee67422[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7422[0]),
+ (VTBL_ENTRY)&_ZN6dd74223barEv,
+ (VTBL_ENTRY)&_ZN6dd74223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74223fooEv,_ZTv0_n12_N6dd74223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74223fooEv,_ZThn12_N6dd74223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74223barEv,_ZTv0_n16_N6dd74223barEv)();
+extern void ABISELECT(_ZThn16_N6dd74223barEv,_ZThn12_N6dd74223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc422__6dd7422__7ee67422[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7422[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74223fooEv,_ZTv0_n12_N6dd74223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74223barEv,_ZTv0_n16_N6dd74223barEv),
+};
+static VTT_ENTRY vtt_ee67422[] = {
+ {&(_ZTV7ee67422[3]), 3,11},
+ {&(_tg__ZTV6dd7422__7ee67422[3]), 3,5},
+ {&(_tg__ZTV5cc422__6dd7422__7ee67422[4]), 4,6},
+ {&(_ZTV7ee67422[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee67422[];
+extern VTBL_ENTRY _ZTV7ee67422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67422[];
+static VTBL_ENTRY alt_thunk_names1123[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74223barEv,_ZTv0_n16_N6dd74223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74223barEv,_ZThn12_N6dd74223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74223fooEv,_ZTv0_n12_N6dd74223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74223fooEv,_ZThn12_N6dd74223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee674223barEv,_ZTv0_n16_N7ee674223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee674223barEv,_ZThn12_N7ee674223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee674223fooEv,_ZTv0_n12_N7ee674223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee674223fooEv,_ZThn12_N7ee674223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67422 = { "ee67422", // class name
+ bases_ee67422, 4,
+ &(vtc_ee67422[0]), // expected_vtbl_contents
+ &(vtt_ee67422[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee67422),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67422),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67422),4, //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 ee77422 : virtual dd7422 {
+ int e;
+ virtual void foo(); // _ZN7ee774223fooEv
+ virtual void bar(); // _ZN7ee774223barEv
+ ~ee77422(); // tgen
+ ee77422(); // tgen
+};
+//SIG(1 ee77422) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77422 ::foo(){vfunc_called(this, "_ZN7ee774223fooEv");}
+void ee77422 ::bar(){vfunc_called(this, "_ZN7ee774223barEv");}
+ee77422 ::~ee77422(){ note_dtor("ee77422", this);} // tgen
+ee77422 ::ee77422(){ note_ctor("ee77422", this);} // tgen
+
+static void Test_ee77422()
+{
+ extern Class_Descriptor cd_ee77422;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee77422, buf);
+ ee77422 *dp, &lv = *(dp=new (buf) ee77422());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee77422)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77422)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc422*), ABISELECT(32,16), "ee77422");
+ check_base_class_offset(lv, (bb22*)(cc422*), ABISELECT(32,16), "ee77422");
+ check_base_class_offset(lv, (cc422*)(dd7422*), ABISELECT(32,16), "ee77422");
+ check_base_class_offset(lv, (dd7422*), ABISELECT(16,8), "ee77422");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77422.e");
+ test_class_info(&lv, &cd_ee77422);
+ dp->~ee77422();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77422(Test_ee77422, "ee77422", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee77422C1Ev();
+extern void _ZN7ee77422D1Ev();
+Name_Map name_map_ee77422[] = {
+ NSPAIR(_ZN7ee77422C1Ev),
+ NSPAIR(_ZN7ee77422D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc422;
+extern VTBL_ENTRY _ZTI5cc422[];
+extern VTBL_ENTRY _ZTV5cc422[];
+extern Class_Descriptor cd_dd7422;
+extern VTBL_ENTRY _ZTI6dd7422[];
+extern VTBL_ENTRY _ZTV6dd7422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7422[];
+static Base_Class bases_ee77422[] = {
+ // 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_bb22, 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_cc422, 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_dd7422, ABISELECT(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 _ZTI7ee77422[];
+extern void _ZN7ee774223fooEv();
+extern void _ZN7ee774223barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee774223barEv,_ZTv0_n16_N7ee774223barEv)();
+extern void ABISELECT(_ZThn16_N7ee774223barEv,_ZThn8_N7ee774223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee774223fooEv,_ZTv0_n20_N7ee774223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee774223fooEv,_ZThn8_N7ee774223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee774223fooEv,_ZTv0_n12_N7ee774223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee774223fooEv,_ZThn16_N7ee774223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee774223barEv,_ZTv0_n16_N7ee774223barEv)();
+extern void ABISELECT(_ZThn32_N7ee774223barEv,_ZThn16_N7ee774223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77422[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77422[0]),
+ (VTBL_ENTRY)&_ZN7ee774223fooEv,
+ (VTBL_ENTRY)&_ZN7ee774223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77422[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee774223barEv,_ZTv0_n16_N7ee774223barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee774223fooEv,_ZTv0_n20_N7ee774223fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77422[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee774223fooEv,_ZTv0_n12_N7ee774223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee774223barEv,_ZTv0_n16_N7ee774223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee77422[];
+extern void _ZN6dd74223barEv();
+extern void _ZN6dd74223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7422__7ee77422[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7422[0]),
+ (VTBL_ENTRY)&_ZN6dd74223barEv,
+ (VTBL_ENTRY)&_ZN6dd74223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74223fooEv,_ZTv0_n12_N6dd74223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74223fooEv,_ZThn8_N6dd74223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74223barEv,_ZTv0_n16_N6dd74223barEv)();
+extern void ABISELECT(_ZThn16_N6dd74223barEv,_ZThn8_N6dd74223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc422__6dd7422__7ee77422[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7422[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74223fooEv,_ZTv0_n12_N6dd74223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74223barEv,_ZTv0_n16_N6dd74223barEv),
+};
+static VTT_ENTRY vtt_ee77422[] = {
+ {&(_ZTV7ee77422[4]), 4,19},
+ {&(_ZTV7ee77422[11]), 11,19},
+ {&(_ZTV7ee77422[17]), 17,19},
+ {&(_tg__ZTV6dd7422__7ee77422[3]), 3,5},
+ {&(_tg__ZTV5cc422__6dd7422__7ee77422[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee77422[];
+extern VTBL_ENTRY _ZTV7ee77422[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77422[];
+static VTBL_ENTRY alt_thunk_names1124[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74223barEv,_ZTv0_n16_N6dd74223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74223barEv,_ZThn8_N6dd74223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74223fooEv,_ZTv0_n12_N6dd74223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74223fooEv,_ZThn8_N6dd74223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee774223fooEv,_ZTv0_n12_N7ee774223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee774223fooEv,_ZThn16_N7ee774223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee774223fooEv,_ZTv0_n20_N7ee774223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee774223fooEv,_ZThn8_N7ee774223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee774223barEv,_ZTv0_n16_N7ee774223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee774223barEv,_ZThn16_N7ee774223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee774223barEv,_ZThn8_N7ee774223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77422 = { "ee77422", // class name
+ bases_ee77422, 4,
+ &(vtc_ee77422[0]), // expected_vtbl_contents
+ &(vtt_ee77422[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee77422),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77422),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77422),5, //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 cc522 : virtual bb22 {
+ int c;
+ virtual void bar(); // _ZN5cc5223barEv
+ ~cc522(); // tgen
+ cc522(); // tgen
+};
+//SIG(-1 cc522) C1{ VBC2{ BC3{ v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void cc522 ::bar(){vfunc_called(this, "_ZN5cc5223barEv");}
+cc522 ::~cc522(){ note_dtor("cc522", this);} // tgen
+cc522 ::cc522(){ note_ctor("cc522", this);} // tgen
+
+static void Test_cc522()
+{
+ extern Class_Descriptor cd_cc522;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_cc522, buf);
+ cc522 *dp, &lv = *(dp=new (buf) cc522());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(cc522)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc522)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(16,8), "cc522");
+ check_base_class_offset(lv, (bb22*), ABISELECT(16,8), "cc522");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc522.c");
+ test_class_info(&lv, &cd_cc522);
+ dp->~cc522();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc522(Test_cc522, "cc522", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN5cc522C1Ev();
+extern void _ZN5cc522D1Ev();
+Name_Map name_map_cc522[] = {
+ NSPAIR(_ZN5cc522C1Ev),
+ NSPAIR(_ZN5cc522D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+static Base_Class bases_cc522[] = {
+ // 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_bb22, 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 _ZTI5cc522[];
+extern void _ZN5cc5223barEv();
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_cc522[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+extern VTBL_ENTRY _ZTV5cc522[];
+static VTT_ENTRY vtt_cc522[] = {
+ {&(_ZTV5cc522[3]), 3,10},
+ {&(_ZTV5cc522[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI5cc522[];
+extern VTBL_ENTRY _ZTV5cc522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc522[];
+static VTBL_ENTRY alt_thunk_names1125[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_cc522 = { "cc522", // class name
+ bases_cc522, 2,
+ &(vtc_cc522[0]), // expected_vtbl_contents
+ &(vtt_cc522[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI5cc522),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV5cc522),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5cc522),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1125,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd0522 : cc522 {
+ int d;
+ ~dd0522(); // tgen
+ dd0522(); // tgen
+};
+//SIG(-1 dd0522) C1{ BC2{ VBC3{ BC4{ v2 v1 Fi} v2 Fi} v1 Fi} Fi}
+
+
+dd0522 ::~dd0522(){ note_dtor("dd0522", this);} // tgen
+dd0522 ::dd0522(){ note_ctor("dd0522", this);} // tgen
+
+static void Test_dd0522()
+{
+ extern Class_Descriptor cd_dd0522;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd0522, buf);
+ dd0522 *dp, &lv = *(dp=new (buf) dd0522());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd0522)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0522)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(16,12), "dd0522");
+ check_base_class_offset(lv, (bb22*)(cc522*), ABISELECT(16,12), "dd0522");
+ check_base_class_offset(lv, (cc522*), 0, "dd0522");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd0522.d");
+ test_class_info(&lv, &cd_dd0522);
+ dp->~dd0522();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0522(Test_dd0522, "dd0522", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd0522C1Ev();
+extern void _ZN6dd0522D1Ev();
+Name_Map name_map_dd0522[] = {
+ NSPAIR(_ZN6dd0522C1Ev),
+ NSPAIR(_ZN6dd0522D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc522;
+extern VTBL_ENTRY _ZTI5cc522[];
+extern VTBL_ENTRY _ZTV5cc522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc522[];
+static Base_Class bases_dd0522[] = {
+ // 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_bb22, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc522, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd0522[];
+extern void _ZN5cc5223barEv();
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn12_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd0522[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+extern VTBL_ENTRY _ZTV6dd0522[];
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc522__6dd0522[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn12_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc522__6dd0522[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+static VTT_ENTRY vtt_dd0522[] = {
+ {&(_ZTV6dd0522[3]), 3,10},
+ {&(_tg__ZTV5cc522__6dd0522[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc522__6dd0522[4]), 4,6},
+ {&(_ZTV6dd0522[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd0522[];
+extern VTBL_ENTRY _ZTV6dd0522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0522[];
+static VTBL_ENTRY alt_thunk_names1126[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn12_N5cc5223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn12_N5cc5223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd0522 = { "dd0522", // class name
+ bases_dd0522, 3,
+ &(vtc_dd0522[0]), // expected_vtbl_contents
+ &(vtt_dd0522[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd0522),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0522),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd0522),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1126,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee00522 : dd0522 {
+ int e;
+ ~ee00522(); // tgen
+ ee00522(); // tgen
+};
+//SIG(1 ee00522) C1{ BC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} v1 Fi} Fi} Fi}
+
+
+ee00522 ::~ee00522(){ note_dtor("ee00522", this);} // tgen
+ee00522 ::ee00522(){ note_ctor("ee00522", this);} // tgen
+
+static void Test_ee00522()
+{
+ extern Class_Descriptor cd_ee00522;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee00522, buf);
+ ee00522 *dp, &lv = *(dp=new (buf) ee00522());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee00522)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00522)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(24,16), "ee00522");
+ check_base_class_offset(lv, (bb22*)(cc522*)(dd0522*), ABISELECT(24,16), "ee00522");
+ check_base_class_offset(lv, (cc522*)(dd0522*), 0, "ee00522");
+ check_base_class_offset(lv, (dd0522*), 0, "ee00522");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee00522.e");
+ test_class_info(&lv, &cd_ee00522);
+ dp->~ee00522();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00522(Test_ee00522, "ee00522", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee00522C1Ev();
+extern void _ZN7ee00522D1Ev();
+Name_Map name_map_ee00522[] = {
+ NSPAIR(_ZN7ee00522C1Ev),
+ NSPAIR(_ZN7ee00522D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc522;
+extern VTBL_ENTRY _ZTI5cc522[];
+extern VTBL_ENTRY _ZTV5cc522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc522[];
+extern Class_Descriptor cd_dd0522;
+extern VTBL_ENTRY _ZTI6dd0522[];
+extern VTBL_ENTRY _ZTV6dd0522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0522[];
+static Base_Class bases_ee00522[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc522, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0522, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee00522[];
+extern void _ZN5cc5223barEv();
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn24_N5cc5223barEv,_ZThn16_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee00522[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee00522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee00522[];
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV6dd0522__7ee00522[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc5226dd0522__7ee00522[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn24_N5cc5223barEv,_ZThn16_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc5226dd0522__7ee00522[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn24_N5cc5223barEv,_ZThn16_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd0522__7ee00522[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+static VTT_ENTRY vtt_ee00522[] = {
+ {&(_ZTV7ee00522[3]), 3,10},
+ {&(_tg__ZTV6dd0522__7ee00522[3]), 3,4},
+ {&(_tg__ZTV5cc5226dd0522__7ee00522[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc5226dd0522__7ee00522[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd0522__7ee00522[4]), 4,6},
+ {&(_ZTV7ee00522[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee00522[];
+extern VTBL_ENTRY _ZTV7ee00522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee00522[];
+static VTBL_ENTRY alt_thunk_names1127[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5223barEv,_ZThn16_N5cc5223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5223barEv,_ZThn16_N5cc5223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5223barEv,_ZThn16_N5cc5223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee00522 = { "ee00522", // class name
+ bases_ee00522, 4,
+ &(vtc_ee00522[0]), // expected_vtbl_contents
+ &(vtt_ee00522[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee00522),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00522),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee00522),6, //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 ee10522 : virtual dd0522 {
+ int e;
+ ~ee10522(); // tgen
+ ee10522(); // tgen
+};
+//SIG(1 ee10522) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} v1 Fi} Fi} Fi}
+
+
+ee10522 ::~ee10522(){ note_dtor("ee10522", this);} // tgen
+ee10522 ::ee10522(){ note_ctor("ee10522", this);} // tgen
+
+static void Test_ee10522()
+{
+ extern Class_Descriptor cd_ee10522;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee10522, buf);
+ ee10522 *dp, &lv = *(dp=new (buf) ee10522());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee10522)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10522)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee10522");
+ check_base_class_offset(lv, (bb22*)(cc522*)(dd0522*), ABISELECT(32,20), "ee10522");
+ check_base_class_offset(lv, (cc522*)(dd0522*), ABISELECT(16,8), "ee10522");
+ check_base_class_offset(lv, (dd0522*), ABISELECT(16,8), "ee10522");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10522.e");
+ test_class_info(&lv, &cd_ee10522);
+ dp->~ee10522();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10522(Test_ee10522, "ee10522", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee10522C1Ev();
+extern void _ZN7ee10522D1Ev();
+Name_Map name_map_ee10522[] = {
+ NSPAIR(_ZN7ee10522C1Ev),
+ NSPAIR(_ZN7ee10522D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc522;
+extern VTBL_ENTRY _ZTI5cc522[];
+extern VTBL_ENTRY _ZTV5cc522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc522[];
+extern Class_Descriptor cd_dd0522;
+extern VTBL_ENTRY _ZTI6dd0522[];
+extern VTBL_ENTRY _ZTV6dd0522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0522[];
+static Base_Class bases_ee10522[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc522, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0522, 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 _ZTI7ee10522[];
+extern void _ZN5cc5223barEv();
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn12_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee10522[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10522[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee10522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee10522[];
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV6dd0522__7ee10522[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc5226dd0522__7ee10522[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn12_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc5226dd0522__7ee10522[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn12_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd0522__7ee10522[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+static VTT_ENTRY vtt_ee10522[] = {
+ {&(_ZTV7ee10522[4]), 4,15},
+ {&(_ZTV7ee10522[8]), 8,15},
+ {&(_ZTV7ee10522[13]), 13,15},
+ {&(_tg__ZTV6dd0522__7ee10522[3]), 3,4},
+ {&(_tg__ZTV5cc5226dd0522__7ee10522[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc5226dd0522__7ee10522[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd0522__7ee10522[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee10522[];
+extern VTBL_ENTRY _ZTV7ee10522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10522[];
+static VTBL_ENTRY alt_thunk_names1128[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn12_N5cc5223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn12_N5cc5223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn12_N5cc5223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee10522 = { "ee10522", // class name
+ bases_ee10522, 4,
+ &(vtc_ee10522[0]), // expected_vtbl_contents
+ &(vtt_ee10522[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee10522),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10522),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10522),7, //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 ee20522 : dd0522 {
+ int e;
+ virtual void foo(); // _ZN7ee205223fooEv
+ ~ee20522(); // tgen
+ ee20522(); // tgen
+};
+//SIG(1 ee20522) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee20522 ::foo(){vfunc_called(this, "_ZN7ee205223fooEv");}
+ee20522 ::~ee20522(){ note_dtor("ee20522", this);} // tgen
+ee20522 ::ee20522(){ note_ctor("ee20522", this);} // tgen
+
+static void Test_ee20522()
+{
+ extern Class_Descriptor cd_ee20522;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee20522, buf);
+ ee20522 *dp, &lv = *(dp=new (buf) ee20522());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee20522)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20522)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(24,16), "ee20522");
+ check_base_class_offset(lv, (bb22*)(cc522*)(dd0522*), ABISELECT(24,16), "ee20522");
+ check_base_class_offset(lv, (cc522*)(dd0522*), 0, "ee20522");
+ check_base_class_offset(lv, (dd0522*), 0, "ee20522");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee20522.e");
+ test_class_info(&lv, &cd_ee20522);
+ dp->~ee20522();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20522(Test_ee20522, "ee20522", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee20522C1Ev();
+extern void _ZN7ee20522D1Ev();
+Name_Map name_map_ee20522[] = {
+ NSPAIR(_ZN7ee20522C1Ev),
+ NSPAIR(_ZN7ee20522D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc522;
+extern VTBL_ENTRY _ZTI5cc522[];
+extern VTBL_ENTRY _ZTV5cc522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc522[];
+extern Class_Descriptor cd_dd0522;
+extern VTBL_ENTRY _ZTI6dd0522[];
+extern VTBL_ENTRY _ZTV6dd0522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0522[];
+static Base_Class bases_ee20522[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc522, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0522, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee20522[];
+extern void _ZN5cc5223barEv();
+extern void _ZN7ee205223fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee205223fooEv,_ZTv0_n12_N7ee205223fooEv)();
+extern void ABISELECT(_ZThn24_N7ee205223fooEv,_ZThn16_N7ee205223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn24_N5cc5223barEv,_ZThn16_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee20522[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+ (VTBL_ENTRY)&_ZN7ee205223fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee20522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee205223fooEv,_ZTv0_n12_N7ee205223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee20522[];
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV6dd0522__7ee20522[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc5226dd0522__7ee20522[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn24_N5cc5223barEv,_ZThn16_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc5226dd0522__7ee20522[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn24_N5cc5223barEv,_ZThn16_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd0522__7ee20522[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+static VTT_ENTRY vtt_ee20522[] = {
+ {&(_ZTV7ee20522[3]), 3,11},
+ {&(_tg__ZTV6dd0522__7ee20522[3]), 3,4},
+ {&(_tg__ZTV5cc5226dd0522__7ee20522[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc5226dd0522__7ee20522[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd0522__7ee20522[4]), 4,6},
+ {&(_ZTV7ee20522[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee20522[];
+extern VTBL_ENTRY _ZTV7ee20522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee20522[];
+static VTBL_ENTRY alt_thunk_names1129[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5223barEv,_ZThn16_N5cc5223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5223barEv,_ZThn16_N5cc5223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5223barEv,_ZThn16_N5cc5223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee205223fooEv,_ZTv0_n12_N7ee205223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee205223fooEv,_ZThn16_N7ee205223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee20522 = { "ee20522", // class name
+ bases_ee20522, 4,
+ &(vtc_ee20522[0]), // expected_vtbl_contents
+ &(vtt_ee20522[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee20522),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20522),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee20522),6, //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 ee30522 : virtual dd0522 {
+ int e;
+ virtual void foo(); // _ZN7ee305223fooEv
+ ~ee30522(); // tgen
+ ee30522(); // tgen
+};
+//SIG(1 ee30522) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee30522 ::foo(){vfunc_called(this, "_ZN7ee305223fooEv");}
+ee30522 ::~ee30522(){ note_dtor("ee30522", this);} // tgen
+ee30522 ::ee30522(){ note_ctor("ee30522", this);} // tgen
+
+static void Test_ee30522()
+{
+ extern Class_Descriptor cd_ee30522;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee30522, buf);
+ ee30522 *dp, &lv = *(dp=new (buf) ee30522());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee30522)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30522)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee30522");
+ check_base_class_offset(lv, (bb22*)(cc522*)(dd0522*), ABISELECT(32,20), "ee30522");
+ check_base_class_offset(lv, (cc522*)(dd0522*), ABISELECT(16,8), "ee30522");
+ check_base_class_offset(lv, (dd0522*), ABISELECT(16,8), "ee30522");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30522.e");
+ test_class_info(&lv, &cd_ee30522);
+ dp->~ee30522();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30522(Test_ee30522, "ee30522", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee30522C1Ev();
+extern void _ZN7ee30522D1Ev();
+Name_Map name_map_ee30522[] = {
+ NSPAIR(_ZN7ee30522C1Ev),
+ NSPAIR(_ZN7ee30522D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc522;
+extern VTBL_ENTRY _ZTI5cc522[];
+extern VTBL_ENTRY _ZTV5cc522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc522[];
+extern Class_Descriptor cd_dd0522;
+extern VTBL_ENTRY _ZTI6dd0522[];
+extern VTBL_ENTRY _ZTV6dd0522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0522[];
+static Base_Class bases_ee30522[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc522, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0522, 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 _ZTI7ee30522[];
+extern void _ZN7ee305223fooEv();
+extern void _ZN5cc5223barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee305223fooEv,_ZTv0_n12_N7ee305223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee305223fooEv,_ZThn20_N7ee305223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn12_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee30522[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30522[0]),
+ (VTBL_ENTRY)&_ZN7ee305223fooEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee30522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee305223fooEv,_ZTv0_n12_N7ee305223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee30522[];
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV6dd0522__7ee30522[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc5226dd0522__7ee30522[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn12_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc5226dd0522__7ee30522[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn12_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd0522__7ee30522[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+static VTT_ENTRY vtt_ee30522[] = {
+ {&(_ZTV7ee30522[4]), 4,16},
+ {&(_ZTV7ee30522[9]), 9,16},
+ {&(_ZTV7ee30522[14]), 14,16},
+ {&(_tg__ZTV6dd0522__7ee30522[3]), 3,4},
+ {&(_tg__ZTV5cc5226dd0522__7ee30522[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc5226dd0522__7ee30522[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd0522__7ee30522[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee30522[];
+extern VTBL_ENTRY _ZTV7ee30522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30522[];
+static VTBL_ENTRY alt_thunk_names1130[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn12_N5cc5223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn12_N5cc5223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn12_N5cc5223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee305223fooEv,_ZTv0_n12_N7ee305223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee305223fooEv,_ZThn20_N7ee305223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30522 = { "ee30522", // class name
+ bases_ee30522, 4,
+ &(vtc_ee30522[0]), // expected_vtbl_contents
+ &(vtt_ee30522[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee30522),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30522),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30522),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1130,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee40522 : dd0522 {
+ int e;
+ virtual void bar(); // _ZN7ee405223barEv
+ ~ee40522(); // tgen
+ ee40522(); // tgen
+};
+//SIG(1 ee40522) C1{ BC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee40522 ::bar(){vfunc_called(this, "_ZN7ee405223barEv");}
+ee40522 ::~ee40522(){ note_dtor("ee40522", this);} // tgen
+ee40522 ::ee40522(){ note_ctor("ee40522", this);} // tgen
+
+static void Test_ee40522()
+{
+ extern Class_Descriptor cd_ee40522;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee40522, buf);
+ ee40522 *dp, &lv = *(dp=new (buf) ee40522());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee40522)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40522)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(24,16), "ee40522");
+ check_base_class_offset(lv, (bb22*)(cc522*)(dd0522*), ABISELECT(24,16), "ee40522");
+ check_base_class_offset(lv, (cc522*)(dd0522*), 0, "ee40522");
+ check_base_class_offset(lv, (dd0522*), 0, "ee40522");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee40522.e");
+ test_class_info(&lv, &cd_ee40522);
+ dp->~ee40522();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40522(Test_ee40522, "ee40522", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee40522C1Ev();
+extern void _ZN7ee40522D1Ev();
+Name_Map name_map_ee40522[] = {
+ NSPAIR(_ZN7ee40522C1Ev),
+ NSPAIR(_ZN7ee40522D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc522;
+extern VTBL_ENTRY _ZTI5cc522[];
+extern VTBL_ENTRY _ZTV5cc522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc522[];
+extern Class_Descriptor cd_dd0522;
+extern VTBL_ENTRY _ZTI6dd0522[];
+extern VTBL_ENTRY _ZTV6dd0522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0522[];
+static Base_Class bases_ee40522[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc522, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0522, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee40522[];
+extern void _ZN7ee405223barEv();
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee405223barEv,_ZTv0_n16_N7ee405223barEv)();
+extern void ABISELECT(_ZThn24_N7ee405223barEv,_ZThn16_N7ee405223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee40522[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40522[0]),
+ (VTBL_ENTRY)&_ZN7ee405223barEv,
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee40522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee405223barEv,_ZTv0_n16_N7ee405223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee40522[];
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV6dd0522__7ee40522[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc5226dd0522__7ee40522[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn24_N5cc5223barEv,_ZThn16_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc5226dd0522__7ee40522[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn24_N5cc5223barEv,_ZThn16_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd0522__7ee40522[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+static VTT_ENTRY vtt_ee40522[] = {
+ {&(_ZTV7ee40522[3]), 3,10},
+ {&(_tg__ZTV6dd0522__7ee40522[3]), 3,4},
+ {&(_tg__ZTV5cc5226dd0522__7ee40522[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc5226dd0522__7ee40522[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd0522__7ee40522[4]), 4,6},
+ {&(_ZTV7ee40522[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee40522[];
+extern VTBL_ENTRY _ZTV7ee40522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee40522[];
+static VTBL_ENTRY alt_thunk_names1131[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5223barEv,_ZThn16_N5cc5223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5223barEv,_ZThn16_N5cc5223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee405223barEv,_ZTv0_n16_N7ee405223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee405223barEv,_ZThn16_N7ee405223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee40522 = { "ee40522", // class name
+ bases_ee40522, 4,
+ &(vtc_ee40522[0]), // expected_vtbl_contents
+ &(vtt_ee40522[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee40522),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40522),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee40522),6, //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 ee50522 : virtual dd0522 {
+ int e;
+ virtual void bar(); // _ZN7ee505223barEv
+ ~ee50522(); // tgen
+ ee50522(); // tgen
+};
+//SIG(1 ee50522) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee50522 ::bar(){vfunc_called(this, "_ZN7ee505223barEv");}
+ee50522 ::~ee50522(){ note_dtor("ee50522", this);} // tgen
+ee50522 ::ee50522(){ note_ctor("ee50522", this);} // tgen
+
+static void Test_ee50522()
+{
+ extern Class_Descriptor cd_ee50522;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee50522, buf);
+ ee50522 *dp, &lv = *(dp=new (buf) ee50522());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee50522)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50522)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee50522");
+ check_base_class_offset(lv, (bb22*)(cc522*)(dd0522*), ABISELECT(32,20), "ee50522");
+ check_base_class_offset(lv, (cc522*)(dd0522*), ABISELECT(16,8), "ee50522");
+ check_base_class_offset(lv, (dd0522*), ABISELECT(16,8), "ee50522");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50522.e");
+ test_class_info(&lv, &cd_ee50522);
+ dp->~ee50522();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50522(Test_ee50522, "ee50522", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee50522C1Ev();
+extern void _ZN7ee50522D1Ev();
+Name_Map name_map_ee50522[] = {
+ NSPAIR(_ZN7ee50522C1Ev),
+ NSPAIR(_ZN7ee50522D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc522;
+extern VTBL_ENTRY _ZTI5cc522[];
+extern VTBL_ENTRY _ZTV5cc522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc522[];
+extern Class_Descriptor cd_dd0522;
+extern VTBL_ENTRY _ZTI6dd0522[];
+extern VTBL_ENTRY _ZTV6dd0522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0522[];
+static Base_Class bases_ee50522[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc522, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0522, 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 _ZTI7ee50522[];
+extern void _ZN7ee505223barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee505223barEv,_ZTv0_n16_N7ee505223barEv)();
+extern void ABISELECT(_ZThn16_N7ee505223barEv,_ZThn8_N7ee505223barEv)() __attribute__((weak));
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee505223barEv,_ZTv0_n16_N7ee505223barEv)();
+extern void ABISELECT(_ZThn32_N7ee505223barEv,_ZThn20_N7ee505223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee50522[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50522[0]),
+ (VTBL_ENTRY)&_ZN7ee505223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee505223barEv,_ZTv0_n16_N7ee505223barEv),
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee50522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee505223barEv,_ZTv0_n16_N7ee505223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee50522[];
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV6dd0522__7ee50522[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc5226dd0522__7ee50522[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn12_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc5226dd0522__7ee50522[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn12_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd0522__7ee50522[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+static VTT_ENTRY vtt_ee50522[] = {
+ {&(_ZTV7ee50522[4]), 4,16},
+ {&(_ZTV7ee50522[9]), 9,16},
+ {&(_ZTV7ee50522[14]), 14,16},
+ {&(_tg__ZTV6dd0522__7ee50522[3]), 3,4},
+ {&(_tg__ZTV5cc5226dd0522__7ee50522[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc5226dd0522__7ee50522[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd0522__7ee50522[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee50522[];
+extern VTBL_ENTRY _ZTV7ee50522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50522[];
+static VTBL_ENTRY alt_thunk_names1132[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn12_N5cc5223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn12_N5cc5223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee505223barEv,_ZTv0_n16_N7ee505223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee505223barEv,_ZThn20_N7ee505223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee505223barEv,_ZThn8_N7ee505223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50522 = { "ee50522", // class name
+ bases_ee50522, 4,
+ &(vtc_ee50522[0]), // expected_vtbl_contents
+ &(vtt_ee50522[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee50522),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50522),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50522),7, //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 ee60522 : dd0522 {
+ int e;
+ virtual void foo(); // _ZN7ee605223fooEv
+ virtual void bar(); // _ZN7ee605223barEv
+ ~ee60522(); // tgen
+ ee60522(); // tgen
+};
+//SIG(1 ee60522) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee60522 ::foo(){vfunc_called(this, "_ZN7ee605223fooEv");}
+void ee60522 ::bar(){vfunc_called(this, "_ZN7ee605223barEv");}
+ee60522 ::~ee60522(){ note_dtor("ee60522", this);} // tgen
+ee60522 ::ee60522(){ note_ctor("ee60522", this);} // tgen
+
+static void Test_ee60522()
+{
+ extern Class_Descriptor cd_ee60522;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee60522, buf);
+ ee60522 *dp, &lv = *(dp=new (buf) ee60522());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee60522)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60522)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(24,16), "ee60522");
+ check_base_class_offset(lv, (bb22*)(cc522*)(dd0522*), ABISELECT(24,16), "ee60522");
+ check_base_class_offset(lv, (cc522*)(dd0522*), 0, "ee60522");
+ check_base_class_offset(lv, (dd0522*), 0, "ee60522");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee60522.e");
+ test_class_info(&lv, &cd_ee60522);
+ dp->~ee60522();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60522(Test_ee60522, "ee60522", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee60522C1Ev();
+extern void _ZN7ee60522D1Ev();
+Name_Map name_map_ee60522[] = {
+ NSPAIR(_ZN7ee60522C1Ev),
+ NSPAIR(_ZN7ee60522D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc522;
+extern VTBL_ENTRY _ZTI5cc522[];
+extern VTBL_ENTRY _ZTV5cc522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc522[];
+extern Class_Descriptor cd_dd0522;
+extern VTBL_ENTRY _ZTI6dd0522[];
+extern VTBL_ENTRY _ZTV6dd0522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0522[];
+static Base_Class bases_ee60522[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc522, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0522, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee60522[];
+extern void _ZN7ee605223barEv();
+extern void _ZN7ee605223fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee605223fooEv,_ZTv0_n12_N7ee605223fooEv)();
+extern void ABISELECT(_ZThn24_N7ee605223fooEv,_ZThn16_N7ee605223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee605223barEv,_ZTv0_n16_N7ee605223barEv)();
+extern void ABISELECT(_ZThn24_N7ee605223barEv,_ZThn16_N7ee605223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee60522[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60522[0]),
+ (VTBL_ENTRY)&_ZN7ee605223barEv,
+ (VTBL_ENTRY)&_ZN7ee605223fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee60522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee605223fooEv,_ZTv0_n12_N7ee605223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee605223barEv,_ZTv0_n16_N7ee605223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee60522[];
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV6dd0522__7ee60522[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc5226dd0522__7ee60522[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn24_N5cc5223barEv,_ZThn16_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc5226dd0522__7ee60522[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn24_N5cc5223barEv,_ZThn16_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd0522__7ee60522[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+static VTT_ENTRY vtt_ee60522[] = {
+ {&(_ZTV7ee60522[3]), 3,11},
+ {&(_tg__ZTV6dd0522__7ee60522[3]), 3,4},
+ {&(_tg__ZTV5cc5226dd0522__7ee60522[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc5226dd0522__7ee60522[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd0522__7ee60522[4]), 4,6},
+ {&(_ZTV7ee60522[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee60522[];
+extern VTBL_ENTRY _ZTV7ee60522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee60522[];
+static VTBL_ENTRY alt_thunk_names1133[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5223barEv,_ZThn16_N5cc5223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5223barEv,_ZThn16_N5cc5223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee605223barEv,_ZTv0_n16_N7ee605223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee605223barEv,_ZThn16_N7ee605223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee605223fooEv,_ZTv0_n12_N7ee605223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee605223fooEv,_ZThn16_N7ee605223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee60522 = { "ee60522", // class name
+ bases_ee60522, 4,
+ &(vtc_ee60522[0]), // expected_vtbl_contents
+ &(vtt_ee60522[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee60522),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60522),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee60522),6, //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 ee70522 : virtual dd0522 {
+ int e;
+ virtual void foo(); // _ZN7ee705223fooEv
+ virtual void bar(); // _ZN7ee705223barEv
+ ~ee70522(); // tgen
+ ee70522(); // tgen
+};
+//SIG(1 ee70522) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee70522 ::foo(){vfunc_called(this, "_ZN7ee705223fooEv");}
+void ee70522 ::bar(){vfunc_called(this, "_ZN7ee705223barEv");}
+ee70522 ::~ee70522(){ note_dtor("ee70522", this);} // tgen
+ee70522 ::ee70522(){ note_ctor("ee70522", this);} // tgen
+
+static void Test_ee70522()
+{
+ extern Class_Descriptor cd_ee70522;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee70522, buf);
+ ee70522 *dp, &lv = *(dp=new (buf) ee70522());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee70522)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70522)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee70522");
+ check_base_class_offset(lv, (bb22*)(cc522*)(dd0522*), ABISELECT(32,20), "ee70522");
+ check_base_class_offset(lv, (cc522*)(dd0522*), ABISELECT(16,8), "ee70522");
+ check_base_class_offset(lv, (dd0522*), ABISELECT(16,8), "ee70522");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70522.e");
+ test_class_info(&lv, &cd_ee70522);
+ dp->~ee70522();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70522(Test_ee70522, "ee70522", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee70522C1Ev();
+extern void _ZN7ee70522D1Ev();
+Name_Map name_map_ee70522[] = {
+ NSPAIR(_ZN7ee70522C1Ev),
+ NSPAIR(_ZN7ee70522D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc522;
+extern VTBL_ENTRY _ZTI5cc522[];
+extern VTBL_ENTRY _ZTV5cc522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc522[];
+extern Class_Descriptor cd_dd0522;
+extern VTBL_ENTRY _ZTI6dd0522[];
+extern VTBL_ENTRY _ZTV6dd0522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0522[];
+static Base_Class bases_ee70522[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc522, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0522, 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 _ZTI7ee70522[];
+extern void _ZN7ee705223fooEv();
+extern void _ZN7ee705223barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee705223barEv,_ZTv0_n16_N7ee705223barEv)();
+extern void ABISELECT(_ZThn16_N7ee705223barEv,_ZThn8_N7ee705223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee705223fooEv,_ZTv0_n12_N7ee705223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee705223fooEv,_ZThn20_N7ee705223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee705223barEv,_ZTv0_n16_N7ee705223barEv)();
+extern void ABISELECT(_ZThn32_N7ee705223barEv,_ZThn20_N7ee705223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70522[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70522[0]),
+ (VTBL_ENTRY)&_ZN7ee705223fooEv,
+ (VTBL_ENTRY)&_ZN7ee705223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee705223barEv,_ZTv0_n16_N7ee705223barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee70522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee705223fooEv,_ZTv0_n12_N7ee705223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee705223barEv,_ZTv0_n16_N7ee705223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee70522[];
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV6dd0522__7ee70522[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc5226dd0522__7ee70522[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn12_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc5226dd0522__7ee70522[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn12_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd0522__7ee70522[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+static VTT_ENTRY vtt_ee70522[] = {
+ {&(_ZTV7ee70522[4]), 4,17},
+ {&(_ZTV7ee70522[10]), 10,17},
+ {&(_ZTV7ee70522[15]), 15,17},
+ {&(_tg__ZTV6dd0522__7ee70522[3]), 3,4},
+ {&(_tg__ZTV5cc5226dd0522__7ee70522[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc5226dd0522__7ee70522[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd0522__7ee70522[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee70522[];
+extern VTBL_ENTRY _ZTV7ee70522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70522[];
+static VTBL_ENTRY alt_thunk_names1134[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn12_N5cc5223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn12_N5cc5223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee705223fooEv,_ZTv0_n12_N7ee705223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee705223fooEv,_ZThn20_N7ee705223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee705223barEv,_ZTv0_n16_N7ee705223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee705223barEv,_ZThn20_N7ee705223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee705223barEv,_ZThn8_N7ee705223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70522 = { "ee70522", // class name
+ bases_ee70522, 4,
+ &(vtc_ee70522[0]), // expected_vtbl_contents
+ &(vtt_ee70522[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee70522),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70522),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70522),7, //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 dd1522 : virtual cc522 {
+ int d;
+ ~dd1522(); // tgen
+ dd1522(); // tgen
+};
+//SIG(-1 dd1522) C1{ VBC2{ VBC3{ BC4{ v2 v1 Fi} v2 Fi} v1 Fi} Fi}
+
+
+dd1522 ::~dd1522(){ note_dtor("dd1522", this);} // tgen
+dd1522 ::dd1522(){ note_ctor("dd1522", this);} // tgen
+
+static void Test_dd1522()
+{
+ extern Class_Descriptor cd_dd1522;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd1522, buf);
+ dd1522 *dp, &lv = *(dp=new (buf) dd1522());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd1522)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1522)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,16), "dd1522");
+ check_base_class_offset(lv, (bb22*)(cc522*), ABISELECT(32,16), "dd1522");
+ check_base_class_offset(lv, (cc522*), ABISELECT(16,8), "dd1522");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1522.d");
+ test_class_info(&lv, &cd_dd1522);
+ dp->~dd1522();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1522(Test_dd1522, "dd1522", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd1522C1Ev();
+extern void _ZN6dd1522D1Ev();
+Name_Map name_map_dd1522[] = {
+ NSPAIR(_ZN6dd1522C1Ev),
+ NSPAIR(_ZN6dd1522D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc522;
+extern VTBL_ENTRY _ZTI5cc522[];
+extern VTBL_ENTRY _ZTV5cc522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc522[];
+static Base_Class bases_dd1522[] = {
+ // 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_bb22, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc522, 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 _ZTI6dd1522[];
+extern void _ZN5cc5223barEv();
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd1522[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1522[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+extern VTBL_ENTRY _ZTV6dd1522[];
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc522__6dd1522[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc522__6dd1522[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+static VTT_ENTRY vtt_dd1522[] = {
+ {&(_ZTV6dd1522[4]), 4,15},
+ {&(_ZTV6dd1522[8]), 8,15},
+ {&(_ZTV6dd1522[13]), 13,15},
+ {&(_tg__ZTV5cc522__6dd1522[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc522__6dd1522[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd1522[];
+extern VTBL_ENTRY _ZTV6dd1522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1522[];
+static VTBL_ENTRY alt_thunk_names1135[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd1522 = { "dd1522", // class name
+ bases_dd1522, 3,
+ &(vtc_dd1522[0]), // expected_vtbl_contents
+ &(vtt_dd1522[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd1522),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1522),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1522),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1135,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee01522 : dd1522 {
+ int e;
+ ~ee01522(); // tgen
+ ee01522(); // tgen
+};
+//SIG(1 ee01522) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} v1 Fi} Fi} Fi}
+
+
+ee01522 ::~ee01522(){ note_dtor("ee01522", this);} // tgen
+ee01522 ::ee01522(){ note_ctor("ee01522", this);} // tgen
+
+static void Test_ee01522()
+{
+ extern Class_Descriptor cd_ee01522;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee01522, buf);
+ ee01522 *dp, &lv = *(dp=new (buf) ee01522());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee01522)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01522)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee01522");
+ check_base_class_offset(lv, (bb22*)(cc522*), ABISELECT(32,20), "ee01522");
+ check_base_class_offset(lv, (cc522*)(dd1522*), ABISELECT(16,12), "ee01522");
+ check_base_class_offset(lv, (dd1522*), 0, "ee01522");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01522.e");
+ test_class_info(&lv, &cd_ee01522);
+ dp->~ee01522();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01522(Test_ee01522, "ee01522", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee01522C1Ev();
+extern void _ZN7ee01522D1Ev();
+Name_Map name_map_ee01522[] = {
+ NSPAIR(_ZN7ee01522C1Ev),
+ NSPAIR(_ZN7ee01522D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc522;
+extern VTBL_ENTRY _ZTI5cc522[];
+extern VTBL_ENTRY _ZTV5cc522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc522[];
+extern Class_Descriptor cd_dd1522;
+extern VTBL_ENTRY _ZTI6dd1522[];
+extern VTBL_ENTRY _ZTV6dd1522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1522[];
+static Base_Class bases_ee01522[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc522, 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_dd1522, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01522[];
+extern void _ZN5cc5223barEv();
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee01522[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01522[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee01522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee01522[];
+static VTBL_ENTRY _tg__ZTV6dd1522__7ee01522[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1522[0]),
+};
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc522__6dd1522__7ee01522[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd1522__7ee01522[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc522__7ee01522[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc522__7ee01522[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+static VTT_ENTRY vtt_ee01522[] = {
+ {&(_ZTV7ee01522[4]), 4,15},
+ {&(_tg__ZTV6dd1522__7ee01522[4]), 4,4},
+ {&(_tg__ZTV5cc522__6dd1522__7ee01522[4]), 4,5},
+ {&(_tg__ZTV4bb22__6dd1522__7ee01522[4]), 4,6},
+ {&(_ZTV7ee01522[8]), 8,15},
+ {&(_ZTV7ee01522[13]), 13,15},
+ {&(_tg__ZTV5cc522__7ee01522[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc522__7ee01522[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee01522[];
+extern VTBL_ENTRY _ZTV7ee01522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01522[];
+static VTBL_ENTRY alt_thunk_names1136[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee01522 = { "ee01522", // class name
+ bases_ee01522, 4,
+ &(vtc_ee01522[0]), // expected_vtbl_contents
+ &(vtt_ee01522[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee01522),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01522),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01522),8, //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 ee11522 : virtual dd1522 {
+ int e;
+ ~ee11522(); // tgen
+ ee11522(); // tgen
+};
+//SIG(1 ee11522) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} v1 Fi} Fi} Fi}
+
+
+ee11522 ::~ee11522(){ note_dtor("ee11522", this);} // tgen
+ee11522 ::ee11522(){ note_ctor("ee11522", this);} // tgen
+
+static void Test_ee11522()
+{
+ extern Class_Descriptor cd_ee11522;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee11522, buf);
+ ee11522 *dp, &lv = *(dp=new (buf) ee11522());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee11522)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11522)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(48,24), "ee11522");
+ check_base_class_offset(lv, (bb22*)(cc522*), ABISELECT(48,24), "ee11522");
+ check_base_class_offset(lv, (cc522*)(dd1522*), ABISELECT(32,16), "ee11522");
+ check_base_class_offset(lv, (dd1522*), ABISELECT(16,8), "ee11522");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11522.e");
+ test_class_info(&lv, &cd_ee11522);
+ dp->~ee11522();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11522(Test_ee11522, "ee11522", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee11522C1Ev();
+extern void _ZN7ee11522D1Ev();
+Name_Map name_map_ee11522[] = {
+ NSPAIR(_ZN7ee11522C1Ev),
+ NSPAIR(_ZN7ee11522D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc522;
+extern VTBL_ENTRY _ZTI5cc522[];
+extern VTBL_ENTRY _ZTV5cc522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc522[];
+extern Class_Descriptor cd_dd1522;
+extern VTBL_ENTRY _ZTI6dd1522[];
+extern VTBL_ENTRY _ZTV6dd1522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1522[];
+static Base_Class bases_ee11522[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb22, ABISELECT(48,24), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc522, 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_dd1522, 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 _ZTI7ee11522[];
+extern void _ZN5cc5223barEv();
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee11522[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11522[0]),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11522[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee11522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee11522[];
+static VTBL_ENTRY _tg__ZTV6dd1522__7ee11522[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1522[0]),
+};
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc522__6dd1522__7ee11522[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd1522__7ee11522[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc522__7ee11522[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc522__7ee11522[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+static VTT_ENTRY vtt_ee11522[] = {
+ {&(_ZTV7ee11522[5]), 5,20},
+ {&(_ZTV7ee11522[9]), 9,20},
+ {&(_ZTV7ee11522[13]), 13,20},
+ {&(_ZTV7ee11522[18]), 18,20},
+ {&(_tg__ZTV6dd1522__7ee11522[4]), 4,4},
+ {&(_tg__ZTV5cc522__6dd1522__7ee11522[4]), 4,5},
+ {&(_tg__ZTV4bb22__6dd1522__7ee11522[4]), 4,6},
+ {&(_tg__ZTV5cc522__7ee11522[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc522__7ee11522[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee11522[];
+extern VTBL_ENTRY _ZTV7ee11522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11522[];
+static VTBL_ENTRY alt_thunk_names1137[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee11522 = { "ee11522", // class name
+ bases_ee11522, 4,
+ &(vtc_ee11522[0]), // expected_vtbl_contents
+ &(vtt_ee11522[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee11522),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11522),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11522),9, //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 ee21522 : dd1522 {
+ int e;
+ virtual void foo(); // _ZN7ee215223fooEv
+ ~ee21522(); // tgen
+ ee21522(); // tgen
+};
+//SIG(1 ee21522) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee21522 ::foo(){vfunc_called(this, "_ZN7ee215223fooEv");}
+ee21522 ::~ee21522(){ note_dtor("ee21522", this);} // tgen
+ee21522 ::ee21522(){ note_ctor("ee21522", this);} // tgen
+
+static void Test_ee21522()
+{
+ extern Class_Descriptor cd_ee21522;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee21522, buf);
+ ee21522 *dp, &lv = *(dp=new (buf) ee21522());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee21522)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21522)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee21522");
+ check_base_class_offset(lv, (bb22*)(cc522*), ABISELECT(32,20), "ee21522");
+ check_base_class_offset(lv, (cc522*)(dd1522*), ABISELECT(16,12), "ee21522");
+ check_base_class_offset(lv, (dd1522*), 0, "ee21522");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21522.e");
+ test_class_info(&lv, &cd_ee21522);
+ dp->~ee21522();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21522(Test_ee21522, "ee21522", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee21522C1Ev();
+extern void _ZN7ee21522D1Ev();
+Name_Map name_map_ee21522[] = {
+ NSPAIR(_ZN7ee21522C1Ev),
+ NSPAIR(_ZN7ee21522D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc522;
+extern VTBL_ENTRY _ZTI5cc522[];
+extern VTBL_ENTRY _ZTV5cc522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc522[];
+extern Class_Descriptor cd_dd1522;
+extern VTBL_ENTRY _ZTI6dd1522[];
+extern VTBL_ENTRY _ZTV6dd1522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1522[];
+static Base_Class bases_ee21522[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc522, 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_dd1522, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21522[];
+extern void _ZN7ee215223fooEv();
+extern void _ZN5cc5223barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee215223fooEv,_ZTv0_n12_N7ee215223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee215223fooEv,_ZThn20_N7ee215223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee21522[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21522[0]),
+ (VTBL_ENTRY)&_ZN7ee215223fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee21522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee215223fooEv,_ZTv0_n12_N7ee215223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee21522[];
+static VTBL_ENTRY _tg__ZTV6dd1522__7ee21522[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1522[0]),
+};
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc522__6dd1522__7ee21522[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd1522__7ee21522[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc522__7ee21522[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc522__7ee21522[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+static VTT_ENTRY vtt_ee21522[] = {
+ {&(_ZTV7ee21522[4]), 4,16},
+ {&(_tg__ZTV6dd1522__7ee21522[4]), 4,4},
+ {&(_tg__ZTV5cc522__6dd1522__7ee21522[4]), 4,5},
+ {&(_tg__ZTV4bb22__6dd1522__7ee21522[4]), 4,6},
+ {&(_ZTV7ee21522[9]), 9,16},
+ {&(_ZTV7ee21522[14]), 14,16},
+ {&(_tg__ZTV5cc522__7ee21522[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc522__7ee21522[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee21522[];
+extern VTBL_ENTRY _ZTV7ee21522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21522[];
+static VTBL_ENTRY alt_thunk_names1138[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee215223fooEv,_ZTv0_n12_N7ee215223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee215223fooEv,_ZThn20_N7ee215223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21522 = { "ee21522", // class name
+ bases_ee21522, 4,
+ &(vtc_ee21522[0]), // expected_vtbl_contents
+ &(vtt_ee21522[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee21522),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21522),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21522),8, //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 ee31522 : virtual dd1522 {
+ int e;
+ virtual void foo(); // _ZN7ee315223fooEv
+ ~ee31522(); // tgen
+ ee31522(); // tgen
+};
+//SIG(1 ee31522) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee31522 ::foo(){vfunc_called(this, "_ZN7ee315223fooEv");}
+ee31522 ::~ee31522(){ note_dtor("ee31522", this);} // tgen
+ee31522 ::ee31522(){ note_ctor("ee31522", this);} // tgen
+
+static void Test_ee31522()
+{
+ extern Class_Descriptor cd_ee31522;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee31522, buf);
+ ee31522 *dp, &lv = *(dp=new (buf) ee31522());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee31522)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31522)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(48,24), "ee31522");
+ check_base_class_offset(lv, (bb22*)(cc522*), ABISELECT(48,24), "ee31522");
+ check_base_class_offset(lv, (cc522*)(dd1522*), ABISELECT(32,16), "ee31522");
+ check_base_class_offset(lv, (dd1522*), ABISELECT(16,8), "ee31522");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31522.e");
+ test_class_info(&lv, &cd_ee31522);
+ dp->~ee31522();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31522(Test_ee31522, "ee31522", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee31522C1Ev();
+extern void _ZN7ee31522D1Ev();
+Name_Map name_map_ee31522[] = {
+ NSPAIR(_ZN7ee31522C1Ev),
+ NSPAIR(_ZN7ee31522D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc522;
+extern VTBL_ENTRY _ZTI5cc522[];
+extern VTBL_ENTRY _ZTV5cc522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc522[];
+extern Class_Descriptor cd_dd1522;
+extern VTBL_ENTRY _ZTI6dd1522[];
+extern VTBL_ENTRY _ZTV6dd1522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1522[];
+static Base_Class bases_ee31522[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb22, ABISELECT(48,24), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc522, 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_dd1522, 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 _ZTI7ee31522[];
+extern void _ZN7ee315223fooEv();
+extern void _ZN5cc5223barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee315223fooEv,_ZTv0_n12_N7ee315223fooEv)();
+extern void ABISELECT(_ZThn48_N7ee315223fooEv,_ZThn24_N7ee315223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee31522[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31522[0]),
+ (VTBL_ENTRY)&_ZN7ee315223fooEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31522[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee31522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee315223fooEv,_ZTv0_n12_N7ee315223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee31522[];
+static VTBL_ENTRY _tg__ZTV6dd1522__7ee31522[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1522[0]),
+};
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc522__6dd1522__7ee31522[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd1522__7ee31522[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc522__7ee31522[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc522__7ee31522[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+static VTT_ENTRY vtt_ee31522[] = {
+ {&(_ZTV7ee31522[5]), 5,21},
+ {&(_ZTV7ee31522[10]), 10,21},
+ {&(_ZTV7ee31522[14]), 14,21},
+ {&(_ZTV7ee31522[19]), 19,21},
+ {&(_tg__ZTV6dd1522__7ee31522[4]), 4,4},
+ {&(_tg__ZTV5cc522__6dd1522__7ee31522[4]), 4,5},
+ {&(_tg__ZTV4bb22__6dd1522__7ee31522[4]), 4,6},
+ {&(_tg__ZTV5cc522__7ee31522[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc522__7ee31522[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee31522[];
+extern VTBL_ENTRY _ZTV7ee31522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31522[];
+static VTBL_ENTRY alt_thunk_names1139[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee315223fooEv,_ZTv0_n12_N7ee315223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee315223fooEv,_ZThn24_N7ee315223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31522 = { "ee31522", // class name
+ bases_ee31522, 4,
+ &(vtc_ee31522[0]), // expected_vtbl_contents
+ &(vtt_ee31522[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee31522),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31522),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31522),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1139,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee41522 : dd1522 {
+ int e;
+ virtual void bar(); // _ZN7ee415223barEv
+ ~ee41522(); // tgen
+ ee41522(); // tgen
+};
+//SIG(1 ee41522) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee41522 ::bar(){vfunc_called(this, "_ZN7ee415223barEv");}
+ee41522 ::~ee41522(){ note_dtor("ee41522", this);} // tgen
+ee41522 ::ee41522(){ note_ctor("ee41522", this);} // tgen
+
+static void Test_ee41522()
+{
+ extern Class_Descriptor cd_ee41522;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee41522, buf);
+ ee41522 *dp, &lv = *(dp=new (buf) ee41522());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee41522)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41522)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee41522");
+ check_base_class_offset(lv, (bb22*)(cc522*), ABISELECT(32,20), "ee41522");
+ check_base_class_offset(lv, (cc522*)(dd1522*), ABISELECT(16,12), "ee41522");
+ check_base_class_offset(lv, (dd1522*), 0, "ee41522");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41522.e");
+ test_class_info(&lv, &cd_ee41522);
+ dp->~ee41522();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41522(Test_ee41522, "ee41522", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee41522C1Ev();
+extern void _ZN7ee41522D1Ev();
+Name_Map name_map_ee41522[] = {
+ NSPAIR(_ZN7ee41522C1Ev),
+ NSPAIR(_ZN7ee41522D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc522;
+extern VTBL_ENTRY _ZTI5cc522[];
+extern VTBL_ENTRY _ZTV5cc522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc522[];
+extern Class_Descriptor cd_dd1522;
+extern VTBL_ENTRY _ZTI6dd1522[];
+extern VTBL_ENTRY _ZTV6dd1522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1522[];
+static Base_Class bases_ee41522[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc522, 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_dd1522, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41522[];
+extern void _ZN7ee415223barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee415223barEv,_ZTv0_n16_N7ee415223barEv)();
+extern void ABISELECT(_ZThn16_N7ee415223barEv,_ZThn12_N7ee415223barEv)() __attribute__((weak));
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee415223barEv,_ZTv0_n16_N7ee415223barEv)();
+extern void ABISELECT(_ZThn32_N7ee415223barEv,_ZThn20_N7ee415223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee41522[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41522[0]),
+ (VTBL_ENTRY)&_ZN7ee415223barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee415223barEv,_ZTv0_n16_N7ee415223barEv),
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee41522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee415223barEv,_ZTv0_n16_N7ee415223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee41522[];
+static VTBL_ENTRY _tg__ZTV6dd1522__7ee41522[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1522[0]),
+};
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc522__6dd1522__7ee41522[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd1522__7ee41522[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc522__7ee41522[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc522__7ee41522[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+static VTT_ENTRY vtt_ee41522[] = {
+ {&(_ZTV7ee41522[4]), 4,16},
+ {&(_tg__ZTV6dd1522__7ee41522[4]), 4,4},
+ {&(_tg__ZTV5cc522__6dd1522__7ee41522[4]), 4,5},
+ {&(_tg__ZTV4bb22__6dd1522__7ee41522[4]), 4,6},
+ {&(_ZTV7ee41522[9]), 9,16},
+ {&(_ZTV7ee41522[14]), 14,16},
+ {&(_tg__ZTV5cc522__7ee41522[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc522__7ee41522[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee41522[];
+extern VTBL_ENTRY _ZTV7ee41522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41522[];
+static VTBL_ENTRY alt_thunk_names1140[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee415223barEv,_ZTv0_n16_N7ee415223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee415223barEv,_ZThn20_N7ee415223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee415223barEv,_ZThn12_N7ee415223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41522 = { "ee41522", // class name
+ bases_ee41522, 4,
+ &(vtc_ee41522[0]), // expected_vtbl_contents
+ &(vtt_ee41522[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee41522),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41522),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41522),8, //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 ee51522 : virtual dd1522 {
+ int e;
+ virtual void bar(); // _ZN7ee515223barEv
+ ~ee51522(); // tgen
+ ee51522(); // tgen
+};
+//SIG(1 ee51522) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee51522 ::bar(){vfunc_called(this, "_ZN7ee515223barEv");}
+ee51522 ::~ee51522(){ note_dtor("ee51522", this);} // tgen
+ee51522 ::ee51522(){ note_ctor("ee51522", this);} // tgen
+
+static void Test_ee51522()
+{
+ extern Class_Descriptor cd_ee51522;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee51522, buf);
+ ee51522 *dp, &lv = *(dp=new (buf) ee51522());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee51522)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51522)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(48,24), "ee51522");
+ check_base_class_offset(lv, (bb22*)(cc522*), ABISELECT(48,24), "ee51522");
+ check_base_class_offset(lv, (cc522*)(dd1522*), ABISELECT(32,16), "ee51522");
+ check_base_class_offset(lv, (dd1522*), ABISELECT(16,8), "ee51522");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51522.e");
+ test_class_info(&lv, &cd_ee51522);
+ dp->~ee51522();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51522(Test_ee51522, "ee51522", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee51522C1Ev();
+extern void _ZN7ee51522D1Ev();
+Name_Map name_map_ee51522[] = {
+ NSPAIR(_ZN7ee51522C1Ev),
+ NSPAIR(_ZN7ee51522D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc522;
+extern VTBL_ENTRY _ZTI5cc522[];
+extern VTBL_ENTRY _ZTV5cc522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc522[];
+extern Class_Descriptor cd_dd1522;
+extern VTBL_ENTRY _ZTI6dd1522[];
+extern VTBL_ENTRY _ZTV6dd1522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1522[];
+static Base_Class bases_ee51522[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb22, ABISELECT(48,24), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc522, 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_dd1522, 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 _ZTI7ee51522[];
+extern void _ZN7ee515223barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee515223barEv,_ZTv0_n16_N7ee515223barEv)();
+extern void ABISELECT(_ZThn32_N7ee515223barEv,_ZThn16_N7ee515223barEv)() __attribute__((weak));
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee515223barEv,_ZTv0_n16_N7ee515223barEv)();
+extern void ABISELECT(_ZThn48_N7ee515223barEv,_ZThn24_N7ee515223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee51522[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51522[0]),
+ (VTBL_ENTRY)&_ZN7ee515223barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51522[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee515223barEv,_ZTv0_n16_N7ee515223barEv),
+ ABISELECT(-48,-24),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee51522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee515223barEv,_ZTv0_n16_N7ee515223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee51522[];
+static VTBL_ENTRY _tg__ZTV6dd1522__7ee51522[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1522[0]),
+};
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc522__6dd1522__7ee51522[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd1522__7ee51522[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc522__7ee51522[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc522__7ee51522[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+static VTT_ENTRY vtt_ee51522[] = {
+ {&(_ZTV7ee51522[5]), 5,21},
+ {&(_ZTV7ee51522[10]), 10,21},
+ {&(_ZTV7ee51522[14]), 14,21},
+ {&(_ZTV7ee51522[19]), 19,21},
+ {&(_tg__ZTV6dd1522__7ee51522[4]), 4,4},
+ {&(_tg__ZTV5cc522__6dd1522__7ee51522[4]), 4,5},
+ {&(_tg__ZTV4bb22__6dd1522__7ee51522[4]), 4,6},
+ {&(_tg__ZTV5cc522__7ee51522[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc522__7ee51522[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee51522[];
+extern VTBL_ENTRY _ZTV7ee51522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51522[];
+static VTBL_ENTRY alt_thunk_names1141[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee515223barEv,_ZTv0_n16_N7ee515223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee515223barEv,_ZThn24_N7ee515223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee515223barEv,_ZThn16_N7ee515223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51522 = { "ee51522", // class name
+ bases_ee51522, 4,
+ &(vtc_ee51522[0]), // expected_vtbl_contents
+ &(vtt_ee51522[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee51522),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51522),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51522),9, //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 ee61522 : dd1522 {
+ int e;
+ virtual void foo(); // _ZN7ee615223fooEv
+ virtual void bar(); // _ZN7ee615223barEv
+ ~ee61522(); // tgen
+ ee61522(); // tgen
+};
+//SIG(1 ee61522) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee61522 ::foo(){vfunc_called(this, "_ZN7ee615223fooEv");}
+void ee61522 ::bar(){vfunc_called(this, "_ZN7ee615223barEv");}
+ee61522 ::~ee61522(){ note_dtor("ee61522", this);} // tgen
+ee61522 ::ee61522(){ note_ctor("ee61522", this);} // tgen
+
+static void Test_ee61522()
+{
+ extern Class_Descriptor cd_ee61522;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee61522, buf);
+ ee61522 *dp, &lv = *(dp=new (buf) ee61522());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee61522)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61522)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee61522");
+ check_base_class_offset(lv, (bb22*)(cc522*), ABISELECT(32,20), "ee61522");
+ check_base_class_offset(lv, (cc522*)(dd1522*), ABISELECT(16,12), "ee61522");
+ check_base_class_offset(lv, (dd1522*), 0, "ee61522");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61522.e");
+ test_class_info(&lv, &cd_ee61522);
+ dp->~ee61522();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61522(Test_ee61522, "ee61522", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee61522C1Ev();
+extern void _ZN7ee61522D1Ev();
+Name_Map name_map_ee61522[] = {
+ NSPAIR(_ZN7ee61522C1Ev),
+ NSPAIR(_ZN7ee61522D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc522;
+extern VTBL_ENTRY _ZTI5cc522[];
+extern VTBL_ENTRY _ZTV5cc522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc522[];
+extern Class_Descriptor cd_dd1522;
+extern VTBL_ENTRY _ZTI6dd1522[];
+extern VTBL_ENTRY _ZTV6dd1522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1522[];
+static Base_Class bases_ee61522[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc522, 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_dd1522, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61522[];
+extern void _ZN7ee615223fooEv();
+extern void _ZN7ee615223barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee615223barEv,_ZTv0_n16_N7ee615223barEv)();
+extern void ABISELECT(_ZThn16_N7ee615223barEv,_ZThn12_N7ee615223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee615223fooEv,_ZTv0_n12_N7ee615223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee615223fooEv,_ZThn20_N7ee615223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee615223barEv,_ZTv0_n16_N7ee615223barEv)();
+extern void ABISELECT(_ZThn32_N7ee615223barEv,_ZThn20_N7ee615223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61522[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61522[0]),
+ (VTBL_ENTRY)&_ZN7ee615223fooEv,
+ (VTBL_ENTRY)&_ZN7ee615223barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee615223barEv,_ZTv0_n16_N7ee615223barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee61522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee615223fooEv,_ZTv0_n12_N7ee615223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee615223barEv,_ZTv0_n16_N7ee615223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee61522[];
+static VTBL_ENTRY _tg__ZTV6dd1522__7ee61522[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1522[0]),
+};
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc522__6dd1522__7ee61522[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd1522__7ee61522[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc522__7ee61522[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc522__7ee61522[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+static VTT_ENTRY vtt_ee61522[] = {
+ {&(_ZTV7ee61522[4]), 4,17},
+ {&(_tg__ZTV6dd1522__7ee61522[4]), 4,4},
+ {&(_tg__ZTV5cc522__6dd1522__7ee61522[4]), 4,5},
+ {&(_tg__ZTV4bb22__6dd1522__7ee61522[4]), 4,6},
+ {&(_ZTV7ee61522[10]), 10,17},
+ {&(_ZTV7ee61522[15]), 15,17},
+ {&(_tg__ZTV5cc522__7ee61522[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc522__7ee61522[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee61522[];
+extern VTBL_ENTRY _ZTV7ee61522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61522[];
+static VTBL_ENTRY alt_thunk_names1142[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee615223fooEv,_ZTv0_n12_N7ee615223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee615223fooEv,_ZThn20_N7ee615223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee615223barEv,_ZTv0_n16_N7ee615223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee615223barEv,_ZThn20_N7ee615223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee615223barEv,_ZThn12_N7ee615223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61522 = { "ee61522", // class name
+ bases_ee61522, 4,
+ &(vtc_ee61522[0]), // expected_vtbl_contents
+ &(vtt_ee61522[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee61522),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61522),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61522),8, //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 ee71522 : virtual dd1522 {
+ int e;
+ virtual void foo(); // _ZN7ee715223fooEv
+ virtual void bar(); // _ZN7ee715223barEv
+ ~ee71522(); // tgen
+ ee71522(); // tgen
+};
+//SIG(1 ee71522) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee71522 ::foo(){vfunc_called(this, "_ZN7ee715223fooEv");}
+void ee71522 ::bar(){vfunc_called(this, "_ZN7ee715223barEv");}
+ee71522 ::~ee71522(){ note_dtor("ee71522", this);} // tgen
+ee71522 ::ee71522(){ note_ctor("ee71522", this);} // tgen
+
+static void Test_ee71522()
+{
+ extern Class_Descriptor cd_ee71522;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee71522, buf);
+ ee71522 *dp, &lv = *(dp=new (buf) ee71522());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee71522)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71522)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(48,24), "ee71522");
+ check_base_class_offset(lv, (bb22*)(cc522*), ABISELECT(48,24), "ee71522");
+ check_base_class_offset(lv, (cc522*)(dd1522*), ABISELECT(32,16), "ee71522");
+ check_base_class_offset(lv, (dd1522*), ABISELECT(16,8), "ee71522");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71522.e");
+ test_class_info(&lv, &cd_ee71522);
+ dp->~ee71522();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71522(Test_ee71522, "ee71522", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee71522C1Ev();
+extern void _ZN7ee71522D1Ev();
+Name_Map name_map_ee71522[] = {
+ NSPAIR(_ZN7ee71522C1Ev),
+ NSPAIR(_ZN7ee71522D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc522;
+extern VTBL_ENTRY _ZTI5cc522[];
+extern VTBL_ENTRY _ZTV5cc522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc522[];
+extern Class_Descriptor cd_dd1522;
+extern VTBL_ENTRY _ZTI6dd1522[];
+extern VTBL_ENTRY _ZTV6dd1522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1522[];
+static Base_Class bases_ee71522[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb22, ABISELECT(48,24), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc522, 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_dd1522, 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 _ZTI7ee71522[];
+extern void _ZN7ee715223fooEv();
+extern void _ZN7ee715223barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee715223barEv,_ZTv0_n16_N7ee715223barEv)();
+extern void ABISELECT(_ZThn32_N7ee715223barEv,_ZThn16_N7ee715223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee715223fooEv,_ZTv0_n12_N7ee715223fooEv)();
+extern void ABISELECT(_ZThn48_N7ee715223fooEv,_ZThn24_N7ee715223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee715223barEv,_ZTv0_n16_N7ee715223barEv)();
+extern void ABISELECT(_ZThn48_N7ee715223barEv,_ZThn24_N7ee715223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71522[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71522[0]),
+ (VTBL_ENTRY)&_ZN7ee715223fooEv,
+ (VTBL_ENTRY)&_ZN7ee715223barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71522[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee715223barEv,_ZTv0_n16_N7ee715223barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee71522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee715223fooEv,_ZTv0_n12_N7ee715223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee715223barEv,_ZTv0_n16_N7ee715223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee71522[];
+static VTBL_ENTRY _tg__ZTV6dd1522__7ee71522[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1522[0]),
+};
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc522__6dd1522__7ee71522[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd1522__7ee71522[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc522__7ee71522[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc522__7ee71522[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+static VTT_ENTRY vtt_ee71522[] = {
+ {&(_ZTV7ee71522[5]), 5,22},
+ {&(_ZTV7ee71522[11]), 11,22},
+ {&(_ZTV7ee71522[15]), 15,22},
+ {&(_ZTV7ee71522[20]), 20,22},
+ {&(_tg__ZTV6dd1522__7ee71522[4]), 4,4},
+ {&(_tg__ZTV5cc522__6dd1522__7ee71522[4]), 4,5},
+ {&(_tg__ZTV4bb22__6dd1522__7ee71522[4]), 4,6},
+ {&(_tg__ZTV5cc522__7ee71522[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc522__7ee71522[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee71522[];
+extern VTBL_ENTRY _ZTV7ee71522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71522[];
+static VTBL_ENTRY alt_thunk_names1143[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee715223fooEv,_ZTv0_n12_N7ee715223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee715223fooEv,_ZThn24_N7ee715223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee715223barEv,_ZTv0_n16_N7ee715223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee715223barEv,_ZThn24_N7ee715223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee715223barEv,_ZThn16_N7ee715223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71522 = { "ee71522", // class name
+ bases_ee71522, 4,
+ &(vtc_ee71522[0]), // expected_vtbl_contents
+ &(vtt_ee71522[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee71522),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71522),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71522),9, //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 dd2522 : cc522 {
+ int d;
+ virtual void foo(); // _ZN6dd25223fooEv
+ ~dd2522(); // tgen
+ dd2522(); // tgen
+};
+//SIG(-1 dd2522) C1{ BC2{ VBC3{ BC4{ v1 v2 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void dd2522 ::foo(){vfunc_called(this, "_ZN6dd25223fooEv");}
+dd2522 ::~dd2522(){ note_dtor("dd2522", this);} // tgen
+dd2522 ::dd2522(){ note_ctor("dd2522", this);} // tgen
+
+static void Test_dd2522()
+{
+ extern Class_Descriptor cd_dd2522;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd2522, buf);
+ dd2522 *dp, &lv = *(dp=new (buf) dd2522());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd2522)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2522)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(16,12), "dd2522");
+ check_base_class_offset(lv, (bb22*)(cc522*), ABISELECT(16,12), "dd2522");
+ check_base_class_offset(lv, (cc522*), 0, "dd2522");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd2522.d");
+ test_class_info(&lv, &cd_dd2522);
+ dp->~dd2522();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2522(Test_dd2522, "dd2522", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd2522C1Ev();
+extern void _ZN6dd2522D1Ev();
+Name_Map name_map_dd2522[] = {
+ NSPAIR(_ZN6dd2522C1Ev),
+ NSPAIR(_ZN6dd2522D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc522;
+extern VTBL_ENTRY _ZTI5cc522[];
+extern VTBL_ENTRY _ZTV5cc522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc522[];
+static Base_Class bases_dd2522[] = {
+ // 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_bb22, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc522, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd2522[];
+extern void _ZN5cc5223barEv();
+extern void _ZN6dd25223fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd25223fooEv,_ZTv0_n12_N6dd25223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd25223fooEv,_ZThn12_N6dd25223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn12_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd2522[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+ (VTBL_ENTRY)&_ZN6dd25223fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25223fooEv,_ZTv0_n12_N6dd25223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+extern VTBL_ENTRY _ZTV6dd2522[];
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc522__6dd2522[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn12_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc522__6dd2522[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+static VTT_ENTRY vtt_dd2522[] = {
+ {&(_ZTV6dd2522[3]), 3,11},
+ {&(_tg__ZTV5cc522__6dd2522[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc522__6dd2522[4]), 4,6},
+ {&(_ZTV6dd2522[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd2522[];
+extern VTBL_ENTRY _ZTV6dd2522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2522[];
+static VTBL_ENTRY alt_thunk_names1144[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn12_N5cc5223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn12_N5cc5223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25223fooEv,_ZTv0_n12_N6dd25223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd25223fooEv,_ZThn12_N6dd25223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd2522 = { "dd2522", // class name
+ bases_dd2522, 3,
+ &(vtc_dd2522[0]), // expected_vtbl_contents
+ &(vtt_dd2522[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd2522),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2522),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd2522),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1144,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee02522 : dd2522 {
+ int e;
+ ~ee02522(); // tgen
+ ee02522(); // tgen
+};
+//SIG(1 ee02522) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee02522 ::~ee02522(){ note_dtor("ee02522", this);} // tgen
+ee02522 ::ee02522(){ note_ctor("ee02522", this);} // tgen
+
+static void Test_ee02522()
+{
+ extern Class_Descriptor cd_ee02522;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee02522, buf);
+ ee02522 *dp, &lv = *(dp=new (buf) ee02522());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee02522)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02522)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(24,16), "ee02522");
+ check_base_class_offset(lv, (bb22*)(cc522*)(dd2522*), ABISELECT(24,16), "ee02522");
+ check_base_class_offset(lv, (cc522*)(dd2522*), 0, "ee02522");
+ check_base_class_offset(lv, (dd2522*), 0, "ee02522");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee02522.e");
+ test_class_info(&lv, &cd_ee02522);
+ dp->~ee02522();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02522(Test_ee02522, "ee02522", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee02522C1Ev();
+extern void _ZN7ee02522D1Ev();
+Name_Map name_map_ee02522[] = {
+ NSPAIR(_ZN7ee02522C1Ev),
+ NSPAIR(_ZN7ee02522D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc522;
+extern VTBL_ENTRY _ZTI5cc522[];
+extern VTBL_ENTRY _ZTV5cc522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc522[];
+extern Class_Descriptor cd_dd2522;
+extern VTBL_ENTRY _ZTI6dd2522[];
+extern VTBL_ENTRY _ZTV6dd2522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2522[];
+static Base_Class bases_ee02522[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc522, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2522, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee02522[];
+extern void _ZN5cc5223barEv();
+extern void _ZN6dd25223fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd25223fooEv,_ZTv0_n12_N6dd25223fooEv)();
+extern void ABISELECT(_ZThn24_N6dd25223fooEv,_ZThn16_N6dd25223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn24_N5cc5223barEv,_ZThn16_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee02522[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+ (VTBL_ENTRY)&_ZN6dd25223fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee02522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25223fooEv,_ZTv0_n12_N6dd25223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee02522[];
+extern void _ZN5cc5223barEv();
+extern void _ZN6dd25223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2522__7ee02522[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+ (VTBL_ENTRY)&_ZN6dd25223fooEv,
+};
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc5226dd2522__7ee02522[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn24_N5cc5223barEv,_ZThn16_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc5226dd2522__7ee02522[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd25223fooEv,_ZTv0_n12_N6dd25223fooEv)();
+extern void ABISELECT(_ZThn24_N6dd25223fooEv,_ZThn16_N6dd25223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn24_N5cc5223barEv,_ZThn16_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd2522__7ee02522[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25223fooEv,_ZTv0_n12_N6dd25223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+static VTT_ENTRY vtt_ee02522[] = {
+ {&(_ZTV7ee02522[3]), 3,11},
+ {&(_tg__ZTV6dd2522__7ee02522[3]), 3,5},
+ {&(_tg__ZTV5cc5226dd2522__7ee02522[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc5226dd2522__7ee02522[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd2522__7ee02522[4]), 4,6},
+ {&(_ZTV7ee02522[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee02522[];
+extern VTBL_ENTRY _ZTV7ee02522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee02522[];
+static VTBL_ENTRY alt_thunk_names1145[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5223barEv,_ZThn16_N5cc5223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5223barEv,_ZThn16_N5cc5223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5223barEv,_ZThn16_N5cc5223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25223fooEv,_ZTv0_n12_N6dd25223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd25223fooEv,_ZThn16_N6dd25223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd25223fooEv,_ZThn16_N6dd25223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee02522 = { "ee02522", // class name
+ bases_ee02522, 4,
+ &(vtc_ee02522[0]), // expected_vtbl_contents
+ &(vtt_ee02522[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee02522),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02522),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee02522),6, //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 ee12522 : virtual dd2522 {
+ int e;
+ ~ee12522(); // tgen
+ ee12522(); // tgen
+};
+//SIG(1 ee12522) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee12522 ::~ee12522(){ note_dtor("ee12522", this);} // tgen
+ee12522 ::ee12522(){ note_ctor("ee12522", this);} // tgen
+
+static void Test_ee12522()
+{
+ extern Class_Descriptor cd_ee12522;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee12522, buf);
+ ee12522 *dp, &lv = *(dp=new (buf) ee12522());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee12522)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12522)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee12522");
+ check_base_class_offset(lv, (bb22*)(cc522*)(dd2522*), ABISELECT(32,20), "ee12522");
+ check_base_class_offset(lv, (cc522*)(dd2522*), ABISELECT(16,8), "ee12522");
+ check_base_class_offset(lv, (dd2522*), ABISELECT(16,8), "ee12522");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12522.e");
+ test_class_info(&lv, &cd_ee12522);
+ dp->~ee12522();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12522(Test_ee12522, "ee12522", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee12522C1Ev();
+extern void _ZN7ee12522D1Ev();
+Name_Map name_map_ee12522[] = {
+ NSPAIR(_ZN7ee12522C1Ev),
+ NSPAIR(_ZN7ee12522D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc522;
+extern VTBL_ENTRY _ZTI5cc522[];
+extern VTBL_ENTRY _ZTV5cc522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc522[];
+extern Class_Descriptor cd_dd2522;
+extern VTBL_ENTRY _ZTI6dd2522[];
+extern VTBL_ENTRY _ZTV6dd2522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2522[];
+static Base_Class bases_ee12522[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc522, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2522, 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 _ZTI7ee12522[];
+extern void _ZN5cc5223barEv();
+extern void _ZN6dd25223fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd25223fooEv,_ZTv0_n12_N6dd25223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd25223fooEv,_ZThn12_N6dd25223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn12_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee12522[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12522[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+ (VTBL_ENTRY)&_ZN6dd25223fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee12522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25223fooEv,_ZTv0_n12_N6dd25223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee12522[];
+extern void _ZN5cc5223barEv();
+extern void _ZN6dd25223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2522__7ee12522[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+ (VTBL_ENTRY)&_ZN6dd25223fooEv,
+};
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc5226dd2522__7ee12522[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn12_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc5226dd2522__7ee12522[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd25223fooEv,_ZTv0_n12_N6dd25223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd25223fooEv,_ZThn12_N6dd25223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn12_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd2522__7ee12522[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25223fooEv,_ZTv0_n12_N6dd25223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+static VTT_ENTRY vtt_ee12522[] = {
+ {&(_ZTV7ee12522[4]), 4,17},
+ {&(_ZTV7ee12522[9]), 9,17},
+ {&(_ZTV7ee12522[15]), 15,17},
+ {&(_tg__ZTV6dd2522__7ee12522[3]), 3,5},
+ {&(_tg__ZTV5cc5226dd2522__7ee12522[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc5226dd2522__7ee12522[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd2522__7ee12522[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee12522[];
+extern VTBL_ENTRY _ZTV7ee12522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12522[];
+static VTBL_ENTRY alt_thunk_names1146[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn12_N5cc5223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn12_N5cc5223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn12_N5cc5223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25223fooEv,_ZTv0_n12_N6dd25223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd25223fooEv,_ZThn12_N6dd25223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd25223fooEv,_ZThn12_N6dd25223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee12522 = { "ee12522", // class name
+ bases_ee12522, 4,
+ &(vtc_ee12522[0]), // expected_vtbl_contents
+ &(vtt_ee12522[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee12522),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12522),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12522),7, //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 ee22522 : dd2522 {
+ int e;
+ virtual void foo(); // _ZN7ee225223fooEv
+ ~ee22522(); // tgen
+ ee22522(); // tgen
+};
+//SIG(1 ee22522) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee22522 ::foo(){vfunc_called(this, "_ZN7ee225223fooEv");}
+ee22522 ::~ee22522(){ note_dtor("ee22522", this);} // tgen
+ee22522 ::ee22522(){ note_ctor("ee22522", this);} // tgen
+
+static void Test_ee22522()
+{
+ extern Class_Descriptor cd_ee22522;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee22522, buf);
+ ee22522 *dp, &lv = *(dp=new (buf) ee22522());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee22522)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22522)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(24,16), "ee22522");
+ check_base_class_offset(lv, (bb22*)(cc522*)(dd2522*), ABISELECT(24,16), "ee22522");
+ check_base_class_offset(lv, (cc522*)(dd2522*), 0, "ee22522");
+ check_base_class_offset(lv, (dd2522*), 0, "ee22522");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee22522.e");
+ test_class_info(&lv, &cd_ee22522);
+ dp->~ee22522();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22522(Test_ee22522, "ee22522", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee22522C1Ev();
+extern void _ZN7ee22522D1Ev();
+Name_Map name_map_ee22522[] = {
+ NSPAIR(_ZN7ee22522C1Ev),
+ NSPAIR(_ZN7ee22522D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc522;
+extern VTBL_ENTRY _ZTI5cc522[];
+extern VTBL_ENTRY _ZTV5cc522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc522[];
+extern Class_Descriptor cd_dd2522;
+extern VTBL_ENTRY _ZTI6dd2522[];
+extern VTBL_ENTRY _ZTV6dd2522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2522[];
+static Base_Class bases_ee22522[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc522, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2522, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee22522[];
+extern void _ZN5cc5223barEv();
+extern void _ZN7ee225223fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee225223fooEv,_ZTv0_n12_N7ee225223fooEv)();
+extern void ABISELECT(_ZThn24_N7ee225223fooEv,_ZThn16_N7ee225223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn24_N5cc5223barEv,_ZThn16_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee22522[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+ (VTBL_ENTRY)&_ZN7ee225223fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee22522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee225223fooEv,_ZTv0_n12_N7ee225223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee22522[];
+extern void _ZN5cc5223barEv();
+extern void _ZN6dd25223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2522__7ee22522[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+ (VTBL_ENTRY)&_ZN6dd25223fooEv,
+};
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc5226dd2522__7ee22522[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn24_N5cc5223barEv,_ZThn16_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc5226dd2522__7ee22522[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd25223fooEv,_ZTv0_n12_N6dd25223fooEv)();
+extern void ABISELECT(_ZThn24_N6dd25223fooEv,_ZThn16_N6dd25223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn24_N5cc5223barEv,_ZThn16_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd2522__7ee22522[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25223fooEv,_ZTv0_n12_N6dd25223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+static VTT_ENTRY vtt_ee22522[] = {
+ {&(_ZTV7ee22522[3]), 3,11},
+ {&(_tg__ZTV6dd2522__7ee22522[3]), 3,5},
+ {&(_tg__ZTV5cc5226dd2522__7ee22522[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc5226dd2522__7ee22522[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd2522__7ee22522[4]), 4,6},
+ {&(_ZTV7ee22522[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee22522[];
+extern VTBL_ENTRY _ZTV7ee22522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee22522[];
+static VTBL_ENTRY alt_thunk_names1147[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25223fooEv,_ZTv0_n12_N6dd25223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd25223fooEv,_ZThn16_N6dd25223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5223barEv,_ZThn16_N5cc5223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5223barEv,_ZThn16_N5cc5223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5223barEv,_ZThn16_N5cc5223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee225223fooEv,_ZTv0_n12_N7ee225223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee225223fooEv,_ZThn16_N7ee225223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee22522 = { "ee22522", // class name
+ bases_ee22522, 4,
+ &(vtc_ee22522[0]), // expected_vtbl_contents
+ &(vtt_ee22522[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee22522),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22522),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee22522),6, //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 ee32522 : virtual dd2522 {
+ int e;
+ virtual void foo(); // _ZN7ee325223fooEv
+ ~ee32522(); // tgen
+ ee32522(); // tgen
+};
+//SIG(1 ee32522) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee32522 ::foo(){vfunc_called(this, "_ZN7ee325223fooEv");}
+ee32522 ::~ee32522(){ note_dtor("ee32522", this);} // tgen
+ee32522 ::ee32522(){ note_ctor("ee32522", this);} // tgen
+
+static void Test_ee32522()
+{
+ extern Class_Descriptor cd_ee32522;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee32522, buf);
+ ee32522 *dp, &lv = *(dp=new (buf) ee32522());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee32522)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32522)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee32522");
+ check_base_class_offset(lv, (bb22*)(cc522*)(dd2522*), ABISELECT(32,20), "ee32522");
+ check_base_class_offset(lv, (cc522*)(dd2522*), ABISELECT(16,8), "ee32522");
+ check_base_class_offset(lv, (dd2522*), ABISELECT(16,8), "ee32522");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32522.e");
+ test_class_info(&lv, &cd_ee32522);
+ dp->~ee32522();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32522(Test_ee32522, "ee32522", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee32522C1Ev();
+extern void _ZN7ee32522D1Ev();
+Name_Map name_map_ee32522[] = {
+ NSPAIR(_ZN7ee32522C1Ev),
+ NSPAIR(_ZN7ee32522D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc522;
+extern VTBL_ENTRY _ZTI5cc522[];
+extern VTBL_ENTRY _ZTV5cc522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc522[];
+extern Class_Descriptor cd_dd2522;
+extern VTBL_ENTRY _ZTI6dd2522[];
+extern VTBL_ENTRY _ZTV6dd2522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2522[];
+static Base_Class bases_ee32522[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc522, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2522, 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 _ZTI7ee32522[];
+extern void _ZN7ee325223fooEv();
+extern void _ZN5cc5223barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee325223fooEv,_ZTv0_n20_N7ee325223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee325223fooEv,_ZThn8_N7ee325223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee325223fooEv,_ZTv0_n12_N7ee325223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee325223fooEv,_ZThn20_N7ee325223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn12_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee32522[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32522[0]),
+ (VTBL_ENTRY)&_ZN7ee325223fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee325223fooEv,_ZTv0_n20_N7ee325223fooEv),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee32522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee325223fooEv,_ZTv0_n12_N7ee325223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee32522[];
+extern void _ZN5cc5223barEv();
+extern void _ZN6dd25223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2522__7ee32522[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+ (VTBL_ENTRY)&_ZN6dd25223fooEv,
+};
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc5226dd2522__7ee32522[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn12_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc5226dd2522__7ee32522[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd25223fooEv,_ZTv0_n12_N6dd25223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd25223fooEv,_ZThn12_N6dd25223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn12_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd2522__7ee32522[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25223fooEv,_ZTv0_n12_N6dd25223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+static VTT_ENTRY vtt_ee32522[] = {
+ {&(_ZTV7ee32522[4]), 4,18},
+ {&(_ZTV7ee32522[10]), 10,18},
+ {&(_ZTV7ee32522[16]), 16,18},
+ {&(_tg__ZTV6dd2522__7ee32522[3]), 3,5},
+ {&(_tg__ZTV5cc5226dd2522__7ee32522[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc5226dd2522__7ee32522[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd2522__7ee32522[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee32522[];
+extern VTBL_ENTRY _ZTV7ee32522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32522[];
+static VTBL_ENTRY alt_thunk_names1148[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25223fooEv,_ZTv0_n12_N6dd25223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd25223fooEv,_ZThn12_N6dd25223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn12_N5cc5223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn12_N5cc5223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn12_N5cc5223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee325223fooEv,_ZTv0_n12_N7ee325223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee325223fooEv,_ZThn20_N7ee325223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee325223fooEv,_ZTv0_n20_N7ee325223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee325223fooEv,_ZThn8_N7ee325223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32522 = { "ee32522", // class name
+ bases_ee32522, 4,
+ &(vtc_ee32522[0]), // expected_vtbl_contents
+ &(vtt_ee32522[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee32522),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32522),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32522),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1148,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee42522 : dd2522 {
+ int e;
+ virtual void bar(); // _ZN7ee425223barEv
+ ~ee42522(); // tgen
+ ee42522(); // tgen
+};
+//SIG(1 ee42522) C1{ BC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee42522 ::bar(){vfunc_called(this, "_ZN7ee425223barEv");}
+ee42522 ::~ee42522(){ note_dtor("ee42522", this);} // tgen
+ee42522 ::ee42522(){ note_ctor("ee42522", this);} // tgen
+
+static void Test_ee42522()
+{
+ extern Class_Descriptor cd_ee42522;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee42522, buf);
+ ee42522 *dp, &lv = *(dp=new (buf) ee42522());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee42522)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42522)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(24,16), "ee42522");
+ check_base_class_offset(lv, (bb22*)(cc522*)(dd2522*), ABISELECT(24,16), "ee42522");
+ check_base_class_offset(lv, (cc522*)(dd2522*), 0, "ee42522");
+ check_base_class_offset(lv, (dd2522*), 0, "ee42522");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee42522.e");
+ test_class_info(&lv, &cd_ee42522);
+ dp->~ee42522();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42522(Test_ee42522, "ee42522", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee42522C1Ev();
+extern void _ZN7ee42522D1Ev();
+Name_Map name_map_ee42522[] = {
+ NSPAIR(_ZN7ee42522C1Ev),
+ NSPAIR(_ZN7ee42522D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc522;
+extern VTBL_ENTRY _ZTI5cc522[];
+extern VTBL_ENTRY _ZTV5cc522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc522[];
+extern Class_Descriptor cd_dd2522;
+extern VTBL_ENTRY _ZTI6dd2522[];
+extern VTBL_ENTRY _ZTV6dd2522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2522[];
+static Base_Class bases_ee42522[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc522, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2522, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee42522[];
+extern void _ZN7ee425223barEv();
+extern void _ZN6dd25223fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd25223fooEv,_ZTv0_n12_N6dd25223fooEv)();
+extern void ABISELECT(_ZThn24_N6dd25223fooEv,_ZThn16_N6dd25223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee425223barEv,_ZTv0_n16_N7ee425223barEv)();
+extern void ABISELECT(_ZThn24_N7ee425223barEv,_ZThn16_N7ee425223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee42522[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42522[0]),
+ (VTBL_ENTRY)&_ZN7ee425223barEv,
+ (VTBL_ENTRY)&_ZN6dd25223fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee42522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25223fooEv,_ZTv0_n12_N6dd25223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee425223barEv,_ZTv0_n16_N7ee425223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee42522[];
+extern void _ZN5cc5223barEv();
+extern void _ZN6dd25223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2522__7ee42522[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+ (VTBL_ENTRY)&_ZN6dd25223fooEv,
+};
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc5226dd2522__7ee42522[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn24_N5cc5223barEv,_ZThn16_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc5226dd2522__7ee42522[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd25223fooEv,_ZTv0_n12_N6dd25223fooEv)();
+extern void ABISELECT(_ZThn24_N6dd25223fooEv,_ZThn16_N6dd25223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn24_N5cc5223barEv,_ZThn16_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd2522__7ee42522[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25223fooEv,_ZTv0_n12_N6dd25223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+static VTT_ENTRY vtt_ee42522[] = {
+ {&(_ZTV7ee42522[3]), 3,11},
+ {&(_tg__ZTV6dd2522__7ee42522[3]), 3,5},
+ {&(_tg__ZTV5cc5226dd2522__7ee42522[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc5226dd2522__7ee42522[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd2522__7ee42522[4]), 4,6},
+ {&(_ZTV7ee42522[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee42522[];
+extern VTBL_ENTRY _ZTV7ee42522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee42522[];
+static VTBL_ENTRY alt_thunk_names1149[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5223barEv,_ZThn16_N5cc5223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5223barEv,_ZThn16_N5cc5223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee425223barEv,_ZTv0_n16_N7ee425223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee425223barEv,_ZThn16_N7ee425223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25223fooEv,_ZTv0_n12_N6dd25223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd25223fooEv,_ZThn16_N6dd25223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd25223fooEv,_ZThn16_N6dd25223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee42522 = { "ee42522", // class name
+ bases_ee42522, 4,
+ &(vtc_ee42522[0]), // expected_vtbl_contents
+ &(vtt_ee42522[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee42522),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42522),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee42522),6, //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 ee52522 : virtual dd2522 {
+ int e;
+ virtual void bar(); // _ZN7ee525223barEv
+ ~ee52522(); // tgen
+ ee52522(); // tgen
+};
+//SIG(1 ee52522) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee52522 ::bar(){vfunc_called(this, "_ZN7ee525223barEv");}
+ee52522 ::~ee52522(){ note_dtor("ee52522", this);} // tgen
+ee52522 ::ee52522(){ note_ctor("ee52522", this);} // tgen
+
+static void Test_ee52522()
+{
+ extern Class_Descriptor cd_ee52522;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee52522, buf);
+ ee52522 *dp, &lv = *(dp=new (buf) ee52522());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee52522)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52522)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee52522");
+ check_base_class_offset(lv, (bb22*)(cc522*)(dd2522*), ABISELECT(32,20), "ee52522");
+ check_base_class_offset(lv, (cc522*)(dd2522*), ABISELECT(16,8), "ee52522");
+ check_base_class_offset(lv, (dd2522*), ABISELECT(16,8), "ee52522");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52522.e");
+ test_class_info(&lv, &cd_ee52522);
+ dp->~ee52522();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52522(Test_ee52522, "ee52522", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee52522C1Ev();
+extern void _ZN7ee52522D1Ev();
+Name_Map name_map_ee52522[] = {
+ NSPAIR(_ZN7ee52522C1Ev),
+ NSPAIR(_ZN7ee52522D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc522;
+extern VTBL_ENTRY _ZTI5cc522[];
+extern VTBL_ENTRY _ZTV5cc522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc522[];
+extern Class_Descriptor cd_dd2522;
+extern VTBL_ENTRY _ZTI6dd2522[];
+extern VTBL_ENTRY _ZTV6dd2522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2522[];
+static Base_Class bases_ee52522[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc522, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2522, 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 _ZTI7ee52522[];
+extern void _ZN7ee525223barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee525223barEv,_ZTv0_n16_N7ee525223barEv)();
+extern void ABISELECT(_ZThn16_N7ee525223barEv,_ZThn8_N7ee525223barEv)() __attribute__((weak));
+extern void _ZN6dd25223fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd25223fooEv,_ZTv0_n12_N6dd25223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd25223fooEv,_ZThn12_N6dd25223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee525223barEv,_ZTv0_n16_N7ee525223barEv)();
+extern void ABISELECT(_ZThn32_N7ee525223barEv,_ZThn20_N7ee525223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee52522[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52522[0]),
+ (VTBL_ENTRY)&_ZN7ee525223barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee525223barEv,_ZTv0_n16_N7ee525223barEv),
+ (VTBL_ENTRY)&_ZN6dd25223fooEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee52522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25223fooEv,_ZTv0_n12_N6dd25223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee525223barEv,_ZTv0_n16_N7ee525223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee52522[];
+extern void _ZN5cc5223barEv();
+extern void _ZN6dd25223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2522__7ee52522[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+ (VTBL_ENTRY)&_ZN6dd25223fooEv,
+};
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc5226dd2522__7ee52522[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn12_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc5226dd2522__7ee52522[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd25223fooEv,_ZTv0_n12_N6dd25223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd25223fooEv,_ZThn12_N6dd25223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn12_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd2522__7ee52522[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25223fooEv,_ZTv0_n12_N6dd25223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+static VTT_ENTRY vtt_ee52522[] = {
+ {&(_ZTV7ee52522[4]), 4,18},
+ {&(_ZTV7ee52522[10]), 10,18},
+ {&(_ZTV7ee52522[16]), 16,18},
+ {&(_tg__ZTV6dd2522__7ee52522[3]), 3,5},
+ {&(_tg__ZTV5cc5226dd2522__7ee52522[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc5226dd2522__7ee52522[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd2522__7ee52522[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee52522[];
+extern VTBL_ENTRY _ZTV7ee52522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52522[];
+static VTBL_ENTRY alt_thunk_names1150[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn12_N5cc5223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn12_N5cc5223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25223fooEv,_ZTv0_n12_N6dd25223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd25223fooEv,_ZThn12_N6dd25223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd25223fooEv,_ZThn12_N6dd25223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee525223barEv,_ZTv0_n16_N7ee525223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee525223barEv,_ZThn20_N7ee525223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee525223barEv,_ZThn8_N7ee525223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52522 = { "ee52522", // class name
+ bases_ee52522, 4,
+ &(vtc_ee52522[0]), // expected_vtbl_contents
+ &(vtt_ee52522[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee52522),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52522),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52522),7, //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 ee62522 : dd2522 {
+ int e;
+ virtual void foo(); // _ZN7ee625223fooEv
+ virtual void bar(); // _ZN7ee625223barEv
+ ~ee62522(); // tgen
+ ee62522(); // tgen
+};
+//SIG(1 ee62522) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62522 ::foo(){vfunc_called(this, "_ZN7ee625223fooEv");}
+void ee62522 ::bar(){vfunc_called(this, "_ZN7ee625223barEv");}
+ee62522 ::~ee62522(){ note_dtor("ee62522", this);} // tgen
+ee62522 ::ee62522(){ note_ctor("ee62522", this);} // tgen
+
+static void Test_ee62522()
+{
+ extern Class_Descriptor cd_ee62522;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee62522, buf);
+ ee62522 *dp, &lv = *(dp=new (buf) ee62522());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee62522)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62522)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(24,16), "ee62522");
+ check_base_class_offset(lv, (bb22*)(cc522*)(dd2522*), ABISELECT(24,16), "ee62522");
+ check_base_class_offset(lv, (cc522*)(dd2522*), 0, "ee62522");
+ check_base_class_offset(lv, (dd2522*), 0, "ee62522");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee62522.e");
+ test_class_info(&lv, &cd_ee62522);
+ dp->~ee62522();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62522(Test_ee62522, "ee62522", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee62522C1Ev();
+extern void _ZN7ee62522D1Ev();
+Name_Map name_map_ee62522[] = {
+ NSPAIR(_ZN7ee62522C1Ev),
+ NSPAIR(_ZN7ee62522D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc522;
+extern VTBL_ENTRY _ZTI5cc522[];
+extern VTBL_ENTRY _ZTV5cc522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc522[];
+extern Class_Descriptor cd_dd2522;
+extern VTBL_ENTRY _ZTI6dd2522[];
+extern VTBL_ENTRY _ZTV6dd2522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2522[];
+static Base_Class bases_ee62522[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc522, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2522, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee62522[];
+extern void _ZN7ee625223barEv();
+extern void _ZN7ee625223fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee625223fooEv,_ZTv0_n12_N7ee625223fooEv)();
+extern void ABISELECT(_ZThn24_N7ee625223fooEv,_ZThn16_N7ee625223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee625223barEv,_ZTv0_n16_N7ee625223barEv)();
+extern void ABISELECT(_ZThn24_N7ee625223barEv,_ZThn16_N7ee625223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee62522[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62522[0]),
+ (VTBL_ENTRY)&_ZN7ee625223barEv,
+ (VTBL_ENTRY)&_ZN7ee625223fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee62522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee625223fooEv,_ZTv0_n12_N7ee625223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee625223barEv,_ZTv0_n16_N7ee625223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee62522[];
+extern void _ZN5cc5223barEv();
+extern void _ZN6dd25223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2522__7ee62522[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+ (VTBL_ENTRY)&_ZN6dd25223fooEv,
+};
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc5226dd2522__7ee62522[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn24_N5cc5223barEv,_ZThn16_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc5226dd2522__7ee62522[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd25223fooEv,_ZTv0_n12_N6dd25223fooEv)();
+extern void ABISELECT(_ZThn24_N6dd25223fooEv,_ZThn16_N6dd25223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn24_N5cc5223barEv,_ZThn16_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd2522__7ee62522[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25223fooEv,_ZTv0_n12_N6dd25223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+static VTT_ENTRY vtt_ee62522[] = {
+ {&(_ZTV7ee62522[3]), 3,11},
+ {&(_tg__ZTV6dd2522__7ee62522[3]), 3,5},
+ {&(_tg__ZTV5cc5226dd2522__7ee62522[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc5226dd2522__7ee62522[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd2522__7ee62522[4]), 4,6},
+ {&(_ZTV7ee62522[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee62522[];
+extern VTBL_ENTRY _ZTV7ee62522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee62522[];
+static VTBL_ENTRY alt_thunk_names1151[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25223fooEv,_ZTv0_n12_N6dd25223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd25223fooEv,_ZThn16_N6dd25223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5223barEv,_ZThn16_N5cc5223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5223barEv,_ZThn16_N5cc5223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee625223barEv,_ZTv0_n16_N7ee625223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee625223barEv,_ZThn16_N7ee625223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee625223fooEv,_ZTv0_n12_N7ee625223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee625223fooEv,_ZThn16_N7ee625223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee62522 = { "ee62522", // class name
+ bases_ee62522, 4,
+ &(vtc_ee62522[0]), // expected_vtbl_contents
+ &(vtt_ee62522[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee62522),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62522),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee62522),6, //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 ee72522 : virtual dd2522 {
+ int e;
+ virtual void foo(); // _ZN7ee725223fooEv
+ virtual void bar(); // _ZN7ee725223barEv
+ ~ee72522(); // tgen
+ ee72522(); // tgen
+};
+//SIG(1 ee72522) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72522 ::foo(){vfunc_called(this, "_ZN7ee725223fooEv");}
+void ee72522 ::bar(){vfunc_called(this, "_ZN7ee725223barEv");}
+ee72522 ::~ee72522(){ note_dtor("ee72522", this);} // tgen
+ee72522 ::ee72522(){ note_ctor("ee72522", this);} // tgen
+
+static void Test_ee72522()
+{
+ extern Class_Descriptor cd_ee72522;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee72522, buf);
+ ee72522 *dp, &lv = *(dp=new (buf) ee72522());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee72522)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72522)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee72522");
+ check_base_class_offset(lv, (bb22*)(cc522*)(dd2522*), ABISELECT(32,20), "ee72522");
+ check_base_class_offset(lv, (cc522*)(dd2522*), ABISELECT(16,8), "ee72522");
+ check_base_class_offset(lv, (dd2522*), ABISELECT(16,8), "ee72522");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72522.e");
+ test_class_info(&lv, &cd_ee72522);
+ dp->~ee72522();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72522(Test_ee72522, "ee72522", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee72522C1Ev();
+extern void _ZN7ee72522D1Ev();
+Name_Map name_map_ee72522[] = {
+ NSPAIR(_ZN7ee72522C1Ev),
+ NSPAIR(_ZN7ee72522D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc522;
+extern VTBL_ENTRY _ZTI5cc522[];
+extern VTBL_ENTRY _ZTV5cc522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc522[];
+extern Class_Descriptor cd_dd2522;
+extern VTBL_ENTRY _ZTI6dd2522[];
+extern VTBL_ENTRY _ZTV6dd2522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2522[];
+static Base_Class bases_ee72522[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc522, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2522, ABISELECT(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 _ZTI7ee72522[];
+extern void _ZN7ee725223fooEv();
+extern void _ZN7ee725223barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee725223barEv,_ZTv0_n16_N7ee725223barEv)();
+extern void ABISELECT(_ZThn16_N7ee725223barEv,_ZThn8_N7ee725223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee725223fooEv,_ZTv0_n20_N7ee725223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee725223fooEv,_ZThn8_N7ee725223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee725223fooEv,_ZTv0_n12_N7ee725223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee725223fooEv,_ZThn20_N7ee725223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee725223barEv,_ZTv0_n16_N7ee725223barEv)();
+extern void ABISELECT(_ZThn32_N7ee725223barEv,_ZThn20_N7ee725223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72522[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72522[0]),
+ (VTBL_ENTRY)&_ZN7ee725223fooEv,
+ (VTBL_ENTRY)&_ZN7ee725223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee725223barEv,_ZTv0_n16_N7ee725223barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee725223fooEv,_ZTv0_n20_N7ee725223fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee72522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee725223fooEv,_ZTv0_n12_N7ee725223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee725223barEv,_ZTv0_n16_N7ee725223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee72522[];
+extern void _ZN5cc5223barEv();
+extern void _ZN6dd25223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2522__7ee72522[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+ (VTBL_ENTRY)&_ZN6dd25223fooEv,
+};
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc5226dd2522__7ee72522[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn12_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc5226dd2522__7ee72522[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd25223fooEv,_ZTv0_n12_N6dd25223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd25223fooEv,_ZThn12_N6dd25223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn12_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd2522__7ee72522[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25223fooEv,_ZTv0_n12_N6dd25223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+static VTT_ENTRY vtt_ee72522[] = {
+ {&(_ZTV7ee72522[4]), 4,19},
+ {&(_ZTV7ee72522[11]), 11,19},
+ {&(_ZTV7ee72522[17]), 17,19},
+ {&(_tg__ZTV6dd2522__7ee72522[3]), 3,5},
+ {&(_tg__ZTV5cc5226dd2522__7ee72522[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc5226dd2522__7ee72522[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd2522__7ee72522[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee72522[];
+extern VTBL_ENTRY _ZTV7ee72522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72522[];
+static VTBL_ENTRY alt_thunk_names1152[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25223fooEv,_ZTv0_n12_N6dd25223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd25223fooEv,_ZThn12_N6dd25223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn12_N5cc5223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn12_N5cc5223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee725223fooEv,_ZTv0_n12_N7ee725223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee725223fooEv,_ZThn20_N7ee725223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee725223fooEv,_ZTv0_n20_N7ee725223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee725223fooEv,_ZThn8_N7ee725223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee725223barEv,_ZTv0_n16_N7ee725223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee725223barEv,_ZThn20_N7ee725223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee725223barEv,_ZThn8_N7ee725223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72522 = { "ee72522", // class name
+ bases_ee72522, 4,
+ &(vtc_ee72522[0]), // expected_vtbl_contents
+ &(vtt_ee72522[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee72522),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72522),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72522),7, //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 dd3522 : virtual cc522 {
+ int d;
+ virtual void foo(); // _ZN6dd35223fooEv
+ ~dd3522(); // tgen
+ dd3522(); // tgen
+};
+//SIG(-1 dd3522) C1{ VBC2{ VBC3{ BC4{ v1 v2 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void dd3522 ::foo(){vfunc_called(this, "_ZN6dd35223fooEv");}
+dd3522 ::~dd3522(){ note_dtor("dd3522", this);} // tgen
+dd3522 ::dd3522(){ note_ctor("dd3522", this);} // tgen
+
+static void Test_dd3522()
+{
+ extern Class_Descriptor cd_dd3522;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd3522, buf);
+ dd3522 *dp, &lv = *(dp=new (buf) dd3522());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd3522)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3522)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,16), "dd3522");
+ check_base_class_offset(lv, (bb22*)(cc522*), ABISELECT(32,16), "dd3522");
+ check_base_class_offset(lv, (cc522*), ABISELECT(16,8), "dd3522");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3522.d");
+ test_class_info(&lv, &cd_dd3522);
+ dp->~dd3522();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3522(Test_dd3522, "dd3522", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd3522C1Ev();
+extern void _ZN6dd3522D1Ev();
+Name_Map name_map_dd3522[] = {
+ NSPAIR(_ZN6dd3522C1Ev),
+ NSPAIR(_ZN6dd3522D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc522;
+extern VTBL_ENTRY _ZTI5cc522[];
+extern VTBL_ENTRY _ZTV5cc522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc522[];
+static Base_Class bases_dd3522[] = {
+ // 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_bb22, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc522, 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 _ZTI6dd3522[];
+extern void _ZN6dd35223fooEv();
+extern void _ZN5cc5223barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd35223fooEv,_ZTv0_n12_N6dd35223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35223fooEv,_ZThn16_N6dd35223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd3522[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3522[0]),
+ (VTBL_ENTRY)&_ZN6dd35223fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35223fooEv,_ZTv0_n12_N6dd35223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+extern VTBL_ENTRY _ZTV6dd3522[];
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc522__6dd3522[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc522__6dd3522[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+static VTT_ENTRY vtt_dd3522[] = {
+ {&(_ZTV6dd3522[4]), 4,16},
+ {&(_ZTV6dd3522[9]), 9,16},
+ {&(_ZTV6dd3522[14]), 14,16},
+ {&(_tg__ZTV5cc522__6dd3522[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc522__6dd3522[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd3522[];
+extern VTBL_ENTRY _ZTV6dd3522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3522[];
+static VTBL_ENTRY alt_thunk_names1153[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35223fooEv,_ZTv0_n12_N6dd35223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35223fooEv,_ZThn16_N6dd35223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3522 = { "dd3522", // class name
+ bases_dd3522, 3,
+ &(vtc_dd3522[0]), // expected_vtbl_contents
+ &(vtt_dd3522[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd3522),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3522),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3522),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1153,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03522 : dd3522 {
+ int e;
+ ~ee03522(); // tgen
+ ee03522(); // tgen
+};
+//SIG(1 ee03522) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee03522 ::~ee03522(){ note_dtor("ee03522", this);} // tgen
+ee03522 ::ee03522(){ note_ctor("ee03522", this);} // tgen
+
+static void Test_ee03522()
+{
+ extern Class_Descriptor cd_ee03522;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee03522, buf);
+ ee03522 *dp, &lv = *(dp=new (buf) ee03522());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee03522)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03522)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee03522");
+ check_base_class_offset(lv, (bb22*)(cc522*), ABISELECT(32,20), "ee03522");
+ check_base_class_offset(lv, (cc522*)(dd3522*), ABISELECT(16,12), "ee03522");
+ check_base_class_offset(lv, (dd3522*), 0, "ee03522");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03522.e");
+ test_class_info(&lv, &cd_ee03522);
+ dp->~ee03522();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03522(Test_ee03522, "ee03522", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee03522C1Ev();
+extern void _ZN7ee03522D1Ev();
+Name_Map name_map_ee03522[] = {
+ NSPAIR(_ZN7ee03522C1Ev),
+ NSPAIR(_ZN7ee03522D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc522;
+extern VTBL_ENTRY _ZTI5cc522[];
+extern VTBL_ENTRY _ZTV5cc522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc522[];
+extern Class_Descriptor cd_dd3522;
+extern VTBL_ENTRY _ZTI6dd3522[];
+extern VTBL_ENTRY _ZTV6dd3522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3522[];
+static Base_Class bases_ee03522[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc522, 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_dd3522, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03522[];
+extern void _ZN6dd35223fooEv();
+extern void _ZN5cc5223barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd35223fooEv,_ZTv0_n12_N6dd35223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35223fooEv,_ZThn20_N6dd35223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee03522[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03522[0]),
+ (VTBL_ENTRY)&_ZN6dd35223fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee03522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35223fooEv,_ZTv0_n12_N6dd35223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee03522[];
+extern void _ZN6dd35223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3522__7ee03522[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3522[0]),
+ (VTBL_ENTRY)&_ZN6dd35223fooEv,
+};
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc522__6dd3522__7ee03522[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd35223fooEv,_ZTv0_n12_N6dd35223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35223fooEv,_ZThn20_N6dd35223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd3522__7ee03522[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35223fooEv,_ZTv0_n12_N6dd35223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc522__7ee03522[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc522__7ee03522[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+static VTT_ENTRY vtt_ee03522[] = {
+ {&(_ZTV7ee03522[4]), 4,16},
+ {&(_tg__ZTV6dd3522__7ee03522[4]), 4,5},
+ {&(_tg__ZTV5cc522__6dd3522__7ee03522[4]), 4,5},
+ {&(_tg__ZTV4bb22__6dd3522__7ee03522[4]), 4,6},
+ {&(_ZTV7ee03522[9]), 9,16},
+ {&(_ZTV7ee03522[14]), 14,16},
+ {&(_tg__ZTV5cc522__7ee03522[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc522__7ee03522[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee03522[];
+extern VTBL_ENTRY _ZTV7ee03522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03522[];
+static VTBL_ENTRY alt_thunk_names1154[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35223fooEv,_ZTv0_n12_N6dd35223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35223fooEv,_ZThn20_N6dd35223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35223fooEv,_ZThn20_N6dd35223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03522 = { "ee03522", // class name
+ bases_ee03522, 4,
+ &(vtc_ee03522[0]), // expected_vtbl_contents
+ &(vtt_ee03522[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee03522),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03522),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03522),8, //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 ee13522 : virtual dd3522 {
+ int e;
+ ~ee13522(); // tgen
+ ee13522(); // tgen
+};
+//SIG(1 ee13522) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee13522 ::~ee13522(){ note_dtor("ee13522", this);} // tgen
+ee13522 ::ee13522(){ note_ctor("ee13522", this);} // tgen
+
+static void Test_ee13522()
+{
+ extern Class_Descriptor cd_ee13522;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee13522, buf);
+ ee13522 *dp, &lv = *(dp=new (buf) ee13522());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee13522)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13522)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(48,24), "ee13522");
+ check_base_class_offset(lv, (bb22*)(cc522*), ABISELECT(48,24), "ee13522");
+ check_base_class_offset(lv, (cc522*)(dd3522*), ABISELECT(32,16), "ee13522");
+ check_base_class_offset(lv, (dd3522*), ABISELECT(16,8), "ee13522");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13522.e");
+ test_class_info(&lv, &cd_ee13522);
+ dp->~ee13522();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13522(Test_ee13522, "ee13522", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee13522C1Ev();
+extern void _ZN7ee13522D1Ev();
+Name_Map name_map_ee13522[] = {
+ NSPAIR(_ZN7ee13522C1Ev),
+ NSPAIR(_ZN7ee13522D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc522;
+extern VTBL_ENTRY _ZTI5cc522[];
+extern VTBL_ENTRY _ZTV5cc522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc522[];
+extern Class_Descriptor cd_dd3522;
+extern VTBL_ENTRY _ZTI6dd3522[];
+extern VTBL_ENTRY _ZTV6dd3522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3522[];
+static Base_Class bases_ee13522[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb22, ABISELECT(48,24), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc522, 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_dd3522, 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 _ZTI7ee13522[];
+extern void _ZN6dd35223fooEv();
+extern void _ZN5cc5223barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd35223fooEv,_ZTv0_n12_N6dd35223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35223fooEv,_ZThn16_N6dd35223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee13522[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13522[0]),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13522[0]),
+ (VTBL_ENTRY)&_ZN6dd35223fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee13522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35223fooEv,_ZTv0_n12_N6dd35223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee13522[];
+extern void _ZN6dd35223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3522__7ee13522[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3522[0]),
+ (VTBL_ENTRY)&_ZN6dd35223fooEv,
+};
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc522__6dd3522__7ee13522[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd35223fooEv,_ZTv0_n12_N6dd35223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35223fooEv,_ZThn16_N6dd35223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd3522__7ee13522[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35223fooEv,_ZTv0_n12_N6dd35223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc522__7ee13522[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc522__7ee13522[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+static VTT_ENTRY vtt_ee13522[] = {
+ {&(_ZTV7ee13522[5]), 5,22},
+ {&(_ZTV7ee13522[10]), 10,22},
+ {&(_ZTV7ee13522[15]), 15,22},
+ {&(_ZTV7ee13522[20]), 20,22},
+ {&(_tg__ZTV6dd3522__7ee13522[4]), 4,5},
+ {&(_tg__ZTV5cc522__6dd3522__7ee13522[4]), 4,5},
+ {&(_tg__ZTV4bb22__6dd3522__7ee13522[4]), 4,6},
+ {&(_tg__ZTV5cc522__7ee13522[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc522__7ee13522[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee13522[];
+extern VTBL_ENTRY _ZTV7ee13522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13522[];
+static VTBL_ENTRY alt_thunk_names1155[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35223fooEv,_ZTv0_n12_N6dd35223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35223fooEv,_ZThn16_N6dd35223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35223fooEv,_ZThn16_N6dd35223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13522 = { "ee13522", // class name
+ bases_ee13522, 4,
+ &(vtc_ee13522[0]), // expected_vtbl_contents
+ &(vtt_ee13522[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee13522),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13522),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13522),9, //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 ee23522 : dd3522 {
+ int e;
+ virtual void foo(); // _ZN7ee235223fooEv
+ ~ee23522(); // tgen
+ ee23522(); // tgen
+};
+//SIG(1 ee23522) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee23522 ::foo(){vfunc_called(this, "_ZN7ee235223fooEv");}
+ee23522 ::~ee23522(){ note_dtor("ee23522", this);} // tgen
+ee23522 ::ee23522(){ note_ctor("ee23522", this);} // tgen
+
+static void Test_ee23522()
+{
+ extern Class_Descriptor cd_ee23522;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee23522, buf);
+ ee23522 *dp, &lv = *(dp=new (buf) ee23522());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee23522)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23522)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee23522");
+ check_base_class_offset(lv, (bb22*)(cc522*), ABISELECT(32,20), "ee23522");
+ check_base_class_offset(lv, (cc522*)(dd3522*), ABISELECT(16,12), "ee23522");
+ check_base_class_offset(lv, (dd3522*), 0, "ee23522");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23522.e");
+ test_class_info(&lv, &cd_ee23522);
+ dp->~ee23522();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23522(Test_ee23522, "ee23522", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee23522C1Ev();
+extern void _ZN7ee23522D1Ev();
+Name_Map name_map_ee23522[] = {
+ NSPAIR(_ZN7ee23522C1Ev),
+ NSPAIR(_ZN7ee23522D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc522;
+extern VTBL_ENTRY _ZTI5cc522[];
+extern VTBL_ENTRY _ZTV5cc522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc522[];
+extern Class_Descriptor cd_dd3522;
+extern VTBL_ENTRY _ZTI6dd3522[];
+extern VTBL_ENTRY _ZTV6dd3522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3522[];
+static Base_Class bases_ee23522[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc522, 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_dd3522, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23522[];
+extern void _ZN7ee235223fooEv();
+extern void _ZN5cc5223barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee235223fooEv,_ZTv0_n12_N7ee235223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee235223fooEv,_ZThn20_N7ee235223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee23522[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23522[0]),
+ (VTBL_ENTRY)&_ZN7ee235223fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee23522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee235223fooEv,_ZTv0_n12_N7ee235223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee23522[];
+extern void _ZN6dd35223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3522__7ee23522[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3522[0]),
+ (VTBL_ENTRY)&_ZN6dd35223fooEv,
+};
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc522__6dd3522__7ee23522[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd35223fooEv,_ZTv0_n12_N6dd35223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35223fooEv,_ZThn20_N6dd35223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd3522__7ee23522[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35223fooEv,_ZTv0_n12_N6dd35223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc522__7ee23522[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc522__7ee23522[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+static VTT_ENTRY vtt_ee23522[] = {
+ {&(_ZTV7ee23522[4]), 4,16},
+ {&(_tg__ZTV6dd3522__7ee23522[4]), 4,5},
+ {&(_tg__ZTV5cc522__6dd3522__7ee23522[4]), 4,5},
+ {&(_tg__ZTV4bb22__6dd3522__7ee23522[4]), 4,6},
+ {&(_ZTV7ee23522[9]), 9,16},
+ {&(_ZTV7ee23522[14]), 14,16},
+ {&(_tg__ZTV5cc522__7ee23522[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc522__7ee23522[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee23522[];
+extern VTBL_ENTRY _ZTV7ee23522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23522[];
+static VTBL_ENTRY alt_thunk_names1156[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35223fooEv,_ZTv0_n12_N6dd35223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35223fooEv,_ZThn20_N6dd35223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee235223fooEv,_ZTv0_n12_N7ee235223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee235223fooEv,_ZThn20_N7ee235223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23522 = { "ee23522", // class name
+ bases_ee23522, 4,
+ &(vtc_ee23522[0]), // expected_vtbl_contents
+ &(vtt_ee23522[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee23522),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23522),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23522),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1156,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee33522 : virtual dd3522 {
+ int e;
+ virtual void foo(); // _ZN7ee335223fooEv
+ ~ee33522(); // tgen
+ ee33522(); // tgen
+};
+//SIG(1 ee33522) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee33522 ::foo(){vfunc_called(this, "_ZN7ee335223fooEv");}
+ee33522 ::~ee33522(){ note_dtor("ee33522", this);} // tgen
+ee33522 ::ee33522(){ note_ctor("ee33522", this);} // tgen
+
+static void Test_ee33522()
+{
+ extern Class_Descriptor cd_ee33522;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee33522, buf);
+ ee33522 *dp, &lv = *(dp=new (buf) ee33522());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee33522)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33522)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(48,24), "ee33522");
+ check_base_class_offset(lv, (bb22*)(cc522*), ABISELECT(48,24), "ee33522");
+ check_base_class_offset(lv, (cc522*)(dd3522*), ABISELECT(32,16), "ee33522");
+ check_base_class_offset(lv, (dd3522*), ABISELECT(16,8), "ee33522");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33522.e");
+ test_class_info(&lv, &cd_ee33522);
+ dp->~ee33522();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33522(Test_ee33522, "ee33522", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee33522C1Ev();
+extern void _ZN7ee33522D1Ev();
+Name_Map name_map_ee33522[] = {
+ NSPAIR(_ZN7ee33522C1Ev),
+ NSPAIR(_ZN7ee33522D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc522;
+extern VTBL_ENTRY _ZTI5cc522[];
+extern VTBL_ENTRY _ZTV5cc522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc522[];
+extern Class_Descriptor cd_dd3522;
+extern VTBL_ENTRY _ZTI6dd3522[];
+extern VTBL_ENTRY _ZTV6dd3522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3522[];
+static Base_Class bases_ee33522[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb22, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc522, 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_dd3522, ABISELECT(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 _ZTI7ee33522[];
+extern void _ZN7ee335223fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee335223fooEv,_ZTv0_n20_N7ee335223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee335223fooEv,_ZThn8_N7ee335223fooEv)() __attribute__((weak));
+extern void _ZN5cc5223barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee335223fooEv,_ZTv0_n12_N7ee335223fooEv)();
+extern void ABISELECT(_ZThn48_N7ee335223fooEv,_ZThn24_N7ee335223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee33522[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33522[0]),
+ (VTBL_ENTRY)&_ZN7ee335223fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee335223fooEv,_ZTv0_n20_N7ee335223fooEv),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee33522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee335223fooEv,_ZTv0_n12_N7ee335223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee33522[];
+extern void _ZN6dd35223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3522__7ee33522[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3522[0]),
+ (VTBL_ENTRY)&_ZN6dd35223fooEv,
+};
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc522__6dd3522__7ee33522[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd35223fooEv,_ZTv0_n12_N6dd35223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35223fooEv,_ZThn16_N6dd35223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd3522__7ee33522[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35223fooEv,_ZTv0_n12_N6dd35223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc522__7ee33522[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc522__7ee33522[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+static VTT_ENTRY vtt_ee33522[] = {
+ {&(_ZTV7ee33522[5]), 5,23},
+ {&(_ZTV7ee33522[11]), 11,23},
+ {&(_ZTV7ee33522[16]), 16,23},
+ {&(_ZTV7ee33522[21]), 21,23},
+ {&(_tg__ZTV6dd3522__7ee33522[4]), 4,5},
+ {&(_tg__ZTV5cc522__6dd3522__7ee33522[4]), 4,5},
+ {&(_tg__ZTV4bb22__6dd3522__7ee33522[4]), 4,6},
+ {&(_tg__ZTV5cc522__7ee33522[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc522__7ee33522[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee33522[];
+extern VTBL_ENTRY _ZTV7ee33522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33522[];
+static VTBL_ENTRY alt_thunk_names1157[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35223fooEv,_ZTv0_n12_N6dd35223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35223fooEv,_ZThn16_N6dd35223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee335223fooEv,_ZTv0_n12_N7ee335223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee335223fooEv,_ZThn24_N7ee335223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee335223fooEv,_ZTv0_n20_N7ee335223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee335223fooEv,_ZThn8_N7ee335223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33522 = { "ee33522", // class name
+ bases_ee33522, 4,
+ &(vtc_ee33522[0]), // expected_vtbl_contents
+ &(vtt_ee33522[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee33522),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33522),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33522),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1157,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee43522 : dd3522 {
+ int e;
+ virtual void bar(); // _ZN7ee435223barEv
+ ~ee43522(); // tgen
+ ee43522(); // tgen
+};
+//SIG(1 ee43522) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee43522 ::bar(){vfunc_called(this, "_ZN7ee435223barEv");}
+ee43522 ::~ee43522(){ note_dtor("ee43522", this);} // tgen
+ee43522 ::ee43522(){ note_ctor("ee43522", this);} // tgen
+
+static void Test_ee43522()
+{
+ extern Class_Descriptor cd_ee43522;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee43522, buf);
+ ee43522 *dp, &lv = *(dp=new (buf) ee43522());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee43522)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43522)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee43522");
+ check_base_class_offset(lv, (bb22*)(cc522*), ABISELECT(32,20), "ee43522");
+ check_base_class_offset(lv, (cc522*)(dd3522*), ABISELECT(16,12), "ee43522");
+ check_base_class_offset(lv, (dd3522*), 0, "ee43522");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43522.e");
+ test_class_info(&lv, &cd_ee43522);
+ dp->~ee43522();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43522(Test_ee43522, "ee43522", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee43522C1Ev();
+extern void _ZN7ee43522D1Ev();
+Name_Map name_map_ee43522[] = {
+ NSPAIR(_ZN7ee43522C1Ev),
+ NSPAIR(_ZN7ee43522D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc522;
+extern VTBL_ENTRY _ZTI5cc522[];
+extern VTBL_ENTRY _ZTV5cc522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc522[];
+extern Class_Descriptor cd_dd3522;
+extern VTBL_ENTRY _ZTI6dd3522[];
+extern VTBL_ENTRY _ZTV6dd3522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3522[];
+static Base_Class bases_ee43522[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc522, 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_dd3522, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43522[];
+extern void _ZN6dd35223fooEv();
+extern void _ZN7ee435223barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee435223barEv,_ZTv0_n16_N7ee435223barEv)();
+extern void ABISELECT(_ZThn16_N7ee435223barEv,_ZThn12_N7ee435223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd35223fooEv,_ZTv0_n12_N6dd35223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35223fooEv,_ZThn20_N6dd35223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee435223barEv,_ZTv0_n16_N7ee435223barEv)();
+extern void ABISELECT(_ZThn32_N7ee435223barEv,_ZThn20_N7ee435223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43522[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43522[0]),
+ (VTBL_ENTRY)&_ZN6dd35223fooEv,
+ (VTBL_ENTRY)&_ZN7ee435223barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee435223barEv,_ZTv0_n16_N7ee435223barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee43522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35223fooEv,_ZTv0_n12_N6dd35223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee435223barEv,_ZTv0_n16_N7ee435223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee43522[];
+extern void _ZN6dd35223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3522__7ee43522[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3522[0]),
+ (VTBL_ENTRY)&_ZN6dd35223fooEv,
+};
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc522__6dd3522__7ee43522[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd35223fooEv,_ZTv0_n12_N6dd35223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35223fooEv,_ZThn20_N6dd35223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd3522__7ee43522[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35223fooEv,_ZTv0_n12_N6dd35223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc522__7ee43522[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc522__7ee43522[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+static VTT_ENTRY vtt_ee43522[] = {
+ {&(_ZTV7ee43522[4]), 4,17},
+ {&(_tg__ZTV6dd3522__7ee43522[4]), 4,5},
+ {&(_tg__ZTV5cc522__6dd3522__7ee43522[4]), 4,5},
+ {&(_tg__ZTV4bb22__6dd3522__7ee43522[4]), 4,6},
+ {&(_ZTV7ee43522[10]), 10,17},
+ {&(_ZTV7ee43522[15]), 15,17},
+ {&(_tg__ZTV5cc522__7ee43522[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc522__7ee43522[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee43522[];
+extern VTBL_ENTRY _ZTV7ee43522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43522[];
+static VTBL_ENTRY alt_thunk_names1158[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35223fooEv,_ZTv0_n12_N6dd35223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35223fooEv,_ZThn20_N6dd35223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35223fooEv,_ZThn20_N6dd35223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee435223barEv,_ZTv0_n16_N7ee435223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee435223barEv,_ZThn20_N7ee435223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee435223barEv,_ZThn12_N7ee435223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43522 = { "ee43522", // class name
+ bases_ee43522, 4,
+ &(vtc_ee43522[0]), // expected_vtbl_contents
+ &(vtt_ee43522[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee43522),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43522),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43522),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1158,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee53522 : virtual dd3522 {
+ int e;
+ virtual void bar(); // _ZN7ee535223barEv
+ ~ee53522(); // tgen
+ ee53522(); // tgen
+};
+//SIG(1 ee53522) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee53522 ::bar(){vfunc_called(this, "_ZN7ee535223barEv");}
+ee53522 ::~ee53522(){ note_dtor("ee53522", this);} // tgen
+ee53522 ::ee53522(){ note_ctor("ee53522", this);} // tgen
+
+static void Test_ee53522()
+{
+ extern Class_Descriptor cd_ee53522;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee53522, buf);
+ ee53522 *dp, &lv = *(dp=new (buf) ee53522());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee53522)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53522)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(48,24), "ee53522");
+ check_base_class_offset(lv, (bb22*)(cc522*), ABISELECT(48,24), "ee53522");
+ check_base_class_offset(lv, (cc522*)(dd3522*), ABISELECT(32,16), "ee53522");
+ check_base_class_offset(lv, (dd3522*), ABISELECT(16,8), "ee53522");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53522.e");
+ test_class_info(&lv, &cd_ee53522);
+ dp->~ee53522();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53522(Test_ee53522, "ee53522", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee53522C1Ev();
+extern void _ZN7ee53522D1Ev();
+Name_Map name_map_ee53522[] = {
+ NSPAIR(_ZN7ee53522C1Ev),
+ NSPAIR(_ZN7ee53522D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc522;
+extern VTBL_ENTRY _ZTI5cc522[];
+extern VTBL_ENTRY _ZTV5cc522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc522[];
+extern Class_Descriptor cd_dd3522;
+extern VTBL_ENTRY _ZTI6dd3522[];
+extern VTBL_ENTRY _ZTV6dd3522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3522[];
+static Base_Class bases_ee53522[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb22, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc522, 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_dd3522, ABISELECT(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 _ZTI7ee53522[];
+extern void _ZN7ee535223barEv();
+extern void _ZN6dd35223fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee535223barEv,_ZTv0_n16_N7ee535223barEv)();
+extern void ABISELECT(_ZThn32_N7ee535223barEv,_ZThn16_N7ee535223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd35223fooEv,_ZTv0_n12_N6dd35223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35223fooEv,_ZThn16_N6dd35223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee535223barEv,_ZTv0_n16_N7ee535223barEv)();
+extern void ABISELECT(_ZThn48_N7ee535223barEv,_ZThn24_N7ee535223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53522[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53522[0]),
+ (VTBL_ENTRY)&_ZN7ee535223barEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53522[0]),
+ (VTBL_ENTRY)&_ZN6dd35223fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee535223barEv,_ZTv0_n16_N7ee535223barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee53522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35223fooEv,_ZTv0_n12_N6dd35223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee535223barEv,_ZTv0_n16_N7ee535223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee53522[];
+extern void _ZN6dd35223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3522__7ee53522[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3522[0]),
+ (VTBL_ENTRY)&_ZN6dd35223fooEv,
+};
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc522__6dd3522__7ee53522[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd35223fooEv,_ZTv0_n12_N6dd35223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35223fooEv,_ZThn16_N6dd35223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd3522__7ee53522[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35223fooEv,_ZTv0_n12_N6dd35223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc522__7ee53522[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc522__7ee53522[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+static VTT_ENTRY vtt_ee53522[] = {
+ {&(_ZTV7ee53522[5]), 5,23},
+ {&(_ZTV7ee53522[11]), 11,23},
+ {&(_ZTV7ee53522[16]), 16,23},
+ {&(_ZTV7ee53522[21]), 21,23},
+ {&(_tg__ZTV6dd3522__7ee53522[4]), 4,5},
+ {&(_tg__ZTV5cc522__6dd3522__7ee53522[4]), 4,5},
+ {&(_tg__ZTV4bb22__6dd3522__7ee53522[4]), 4,6},
+ {&(_tg__ZTV5cc522__7ee53522[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc522__7ee53522[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee53522[];
+extern VTBL_ENTRY _ZTV7ee53522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53522[];
+static VTBL_ENTRY alt_thunk_names1159[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35223fooEv,_ZTv0_n12_N6dd35223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35223fooEv,_ZThn16_N6dd35223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35223fooEv,_ZThn16_N6dd35223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee535223barEv,_ZTv0_n16_N7ee535223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee535223barEv,_ZThn24_N7ee535223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee535223barEv,_ZThn16_N7ee535223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53522 = { "ee53522", // class name
+ bases_ee53522, 4,
+ &(vtc_ee53522[0]), // expected_vtbl_contents
+ &(vtt_ee53522[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee53522),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53522),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53522),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1159,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee63522 : dd3522 {
+ int e;
+ virtual void foo(); // _ZN7ee635223fooEv
+ virtual void bar(); // _ZN7ee635223barEv
+ ~ee63522(); // tgen
+ ee63522(); // tgen
+};
+//SIG(1 ee63522) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63522 ::foo(){vfunc_called(this, "_ZN7ee635223fooEv");}
+void ee63522 ::bar(){vfunc_called(this, "_ZN7ee635223barEv");}
+ee63522 ::~ee63522(){ note_dtor("ee63522", this);} // tgen
+ee63522 ::ee63522(){ note_ctor("ee63522", this);} // tgen
+
+static void Test_ee63522()
+{
+ extern Class_Descriptor cd_ee63522;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee63522, buf);
+ ee63522 *dp, &lv = *(dp=new (buf) ee63522());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee63522)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63522)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee63522");
+ check_base_class_offset(lv, (bb22*)(cc522*), ABISELECT(32,20), "ee63522");
+ check_base_class_offset(lv, (cc522*)(dd3522*), ABISELECT(16,12), "ee63522");
+ check_base_class_offset(lv, (dd3522*), 0, "ee63522");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63522.e");
+ test_class_info(&lv, &cd_ee63522);
+ dp->~ee63522();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63522(Test_ee63522, "ee63522", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee63522C1Ev();
+extern void _ZN7ee63522D1Ev();
+Name_Map name_map_ee63522[] = {
+ NSPAIR(_ZN7ee63522C1Ev),
+ NSPAIR(_ZN7ee63522D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc522;
+extern VTBL_ENTRY _ZTI5cc522[];
+extern VTBL_ENTRY _ZTV5cc522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc522[];
+extern Class_Descriptor cd_dd3522;
+extern VTBL_ENTRY _ZTI6dd3522[];
+extern VTBL_ENTRY _ZTV6dd3522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3522[];
+static Base_Class bases_ee63522[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc522, 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_dd3522, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63522[];
+extern void _ZN7ee635223fooEv();
+extern void _ZN7ee635223barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee635223barEv,_ZTv0_n16_N7ee635223barEv)();
+extern void ABISELECT(_ZThn16_N7ee635223barEv,_ZThn12_N7ee635223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee635223fooEv,_ZTv0_n12_N7ee635223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee635223fooEv,_ZThn20_N7ee635223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee635223barEv,_ZTv0_n16_N7ee635223barEv)();
+extern void ABISELECT(_ZThn32_N7ee635223barEv,_ZThn20_N7ee635223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63522[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63522[0]),
+ (VTBL_ENTRY)&_ZN7ee635223fooEv,
+ (VTBL_ENTRY)&_ZN7ee635223barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee635223barEv,_ZTv0_n16_N7ee635223barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee63522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee635223fooEv,_ZTv0_n12_N7ee635223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee635223barEv,_ZTv0_n16_N7ee635223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee63522[];
+extern void _ZN6dd35223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3522__7ee63522[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3522[0]),
+ (VTBL_ENTRY)&_ZN6dd35223fooEv,
+};
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc522__6dd3522__7ee63522[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd35223fooEv,_ZTv0_n12_N6dd35223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35223fooEv,_ZThn20_N6dd35223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd3522__7ee63522[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35223fooEv,_ZTv0_n12_N6dd35223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc522__7ee63522[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc522__7ee63522[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+static VTT_ENTRY vtt_ee63522[] = {
+ {&(_ZTV7ee63522[4]), 4,17},
+ {&(_tg__ZTV6dd3522__7ee63522[4]), 4,5},
+ {&(_tg__ZTV5cc522__6dd3522__7ee63522[4]), 4,5},
+ {&(_tg__ZTV4bb22__6dd3522__7ee63522[4]), 4,6},
+ {&(_ZTV7ee63522[10]), 10,17},
+ {&(_ZTV7ee63522[15]), 15,17},
+ {&(_tg__ZTV5cc522__7ee63522[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc522__7ee63522[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee63522[];
+extern VTBL_ENTRY _ZTV7ee63522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63522[];
+static VTBL_ENTRY alt_thunk_names1160[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35223fooEv,_ZTv0_n12_N6dd35223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35223fooEv,_ZThn20_N6dd35223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee635223fooEv,_ZTv0_n12_N7ee635223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee635223fooEv,_ZThn20_N7ee635223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee635223barEv,_ZTv0_n16_N7ee635223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee635223barEv,_ZThn20_N7ee635223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee635223barEv,_ZThn12_N7ee635223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63522 = { "ee63522", // class name
+ bases_ee63522, 4,
+ &(vtc_ee63522[0]), // expected_vtbl_contents
+ &(vtt_ee63522[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee63522),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63522),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63522),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1160,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee73522 : virtual dd3522 {
+ int e;
+ virtual void foo(); // _ZN7ee735223fooEv
+ virtual void bar(); // _ZN7ee735223barEv
+ ~ee73522(); // tgen
+ ee73522(); // tgen
+};
+//SIG(1 ee73522) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73522 ::foo(){vfunc_called(this, "_ZN7ee735223fooEv");}
+void ee73522 ::bar(){vfunc_called(this, "_ZN7ee735223barEv");}
+ee73522 ::~ee73522(){ note_dtor("ee73522", this);} // tgen
+ee73522 ::ee73522(){ note_ctor("ee73522", this);} // tgen
+
+static void Test_ee73522()
+{
+ extern Class_Descriptor cd_ee73522;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee73522, buf);
+ ee73522 *dp, &lv = *(dp=new (buf) ee73522());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee73522)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73522)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(48,24), "ee73522");
+ check_base_class_offset(lv, (bb22*)(cc522*), ABISELECT(48,24), "ee73522");
+ check_base_class_offset(lv, (cc522*)(dd3522*), ABISELECT(32,16), "ee73522");
+ check_base_class_offset(lv, (dd3522*), ABISELECT(16,8), "ee73522");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73522.e");
+ test_class_info(&lv, &cd_ee73522);
+ dp->~ee73522();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73522(Test_ee73522, "ee73522", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee73522C1Ev();
+extern void _ZN7ee73522D1Ev();
+Name_Map name_map_ee73522[] = {
+ NSPAIR(_ZN7ee73522C1Ev),
+ NSPAIR(_ZN7ee73522D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc522;
+extern VTBL_ENTRY _ZTI5cc522[];
+extern VTBL_ENTRY _ZTV5cc522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc522[];
+extern Class_Descriptor cd_dd3522;
+extern VTBL_ENTRY _ZTI6dd3522[];
+extern VTBL_ENTRY _ZTV6dd3522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3522[];
+static Base_Class bases_ee73522[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb22, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc522, 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_dd3522, 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 _ZTI7ee73522[];
+extern void _ZN7ee735223fooEv();
+extern void _ZN7ee735223barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee735223fooEv,_ZTv0_n20_N7ee735223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee735223fooEv,_ZThn8_N7ee735223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee735223barEv,_ZTv0_n16_N7ee735223barEv)();
+extern void ABISELECT(_ZThn32_N7ee735223barEv,_ZThn16_N7ee735223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee735223fooEv,_ZTv0_n12_N7ee735223fooEv)();
+extern void ABISELECT(_ZThn48_N7ee735223fooEv,_ZThn24_N7ee735223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee735223barEv,_ZTv0_n16_N7ee735223barEv)();
+extern void ABISELECT(_ZThn48_N7ee735223barEv,_ZThn24_N7ee735223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73522[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73522[0]),
+ (VTBL_ENTRY)&_ZN7ee735223fooEv,
+ (VTBL_ENTRY)&_ZN7ee735223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee735223fooEv,_ZTv0_n20_N7ee735223fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee735223barEv,_ZTv0_n16_N7ee735223barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee73522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee735223fooEv,_ZTv0_n12_N7ee735223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee735223barEv,_ZTv0_n16_N7ee735223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee73522[];
+extern void _ZN6dd35223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3522__7ee73522[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3522[0]),
+ (VTBL_ENTRY)&_ZN6dd35223fooEv,
+};
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc522__6dd3522__7ee73522[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd35223fooEv,_ZTv0_n12_N6dd35223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35223fooEv,_ZThn16_N6dd35223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd3522__7ee73522[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35223fooEv,_ZTv0_n12_N6dd35223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc522__7ee73522[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc522__7ee73522[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+static VTT_ENTRY vtt_ee73522[] = {
+ {&(_ZTV7ee73522[5]), 5,24},
+ {&(_ZTV7ee73522[12]), 12,24},
+ {&(_ZTV7ee73522[17]), 17,24},
+ {&(_ZTV7ee73522[22]), 22,24},
+ {&(_tg__ZTV6dd3522__7ee73522[4]), 4,5},
+ {&(_tg__ZTV5cc522__6dd3522__7ee73522[4]), 4,5},
+ {&(_tg__ZTV4bb22__6dd3522__7ee73522[4]), 4,6},
+ {&(_tg__ZTV5cc522__7ee73522[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc522__7ee73522[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee73522[];
+extern VTBL_ENTRY _ZTV7ee73522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73522[];
+static VTBL_ENTRY alt_thunk_names1161[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35223fooEv,_ZTv0_n12_N6dd35223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35223fooEv,_ZThn16_N6dd35223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee735223fooEv,_ZTv0_n12_N7ee735223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee735223fooEv,_ZThn24_N7ee735223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee735223barEv,_ZTv0_n16_N7ee735223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee735223barEv,_ZThn24_N7ee735223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee735223barEv,_ZThn16_N7ee735223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee735223fooEv,_ZTv0_n20_N7ee735223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee735223fooEv,_ZThn8_N7ee735223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73522 = { "ee73522", // class name
+ bases_ee73522, 4,
+ &(vtc_ee73522[0]), // expected_vtbl_contents
+ &(vtt_ee73522[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee73522),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73522),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73522),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1161,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd4522 : cc522 {
+ int d;
+ virtual void bar(); // _ZN6dd45223barEv
+ ~dd4522(); // tgen
+ dd4522(); // tgen
+};
+//SIG(-1 dd4522) C1{ BC2{ VBC3{ BC4{ v2 v1 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void dd4522 ::bar(){vfunc_called(this, "_ZN6dd45223barEv");}
+dd4522 ::~dd4522(){ note_dtor("dd4522", this);} // tgen
+dd4522 ::dd4522(){ note_ctor("dd4522", this);} // tgen
+
+static void Test_dd4522()
+{
+ extern Class_Descriptor cd_dd4522;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd4522, buf);
+ dd4522 *dp, &lv = *(dp=new (buf) dd4522());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd4522)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4522)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(16,12), "dd4522");
+ check_base_class_offset(lv, (bb22*)(cc522*), ABISELECT(16,12), "dd4522");
+ check_base_class_offset(lv, (cc522*), 0, "dd4522");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd4522.d");
+ test_class_info(&lv, &cd_dd4522);
+ dp->~dd4522();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4522(Test_dd4522, "dd4522", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd4522C1Ev();
+extern void _ZN6dd4522D1Ev();
+Name_Map name_map_dd4522[] = {
+ NSPAIR(_ZN6dd4522C1Ev),
+ NSPAIR(_ZN6dd4522D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc522;
+extern VTBL_ENTRY _ZTI5cc522[];
+extern VTBL_ENTRY _ZTV5cc522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc522[];
+static Base_Class bases_dd4522[] = {
+ // 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_bb22, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc522, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd4522[];
+extern void _ZN6dd45223barEv();
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd45223barEv,_ZTv0_n16_N6dd45223barEv)();
+extern void ABISELECT(_ZThn16_N6dd45223barEv,_ZThn12_N6dd45223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd4522[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4522[0]),
+ (VTBL_ENTRY)&_ZN6dd45223barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45223barEv,_ZTv0_n16_N6dd45223barEv),
+};
+extern VTBL_ENTRY _ZTV6dd4522[];
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc522__6dd4522[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn12_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc522__6dd4522[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+static VTT_ENTRY vtt_dd4522[] = {
+ {&(_ZTV6dd4522[3]), 3,10},
+ {&(_tg__ZTV5cc522__6dd4522[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc522__6dd4522[4]), 4,6},
+ {&(_ZTV6dd4522[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd4522[];
+extern VTBL_ENTRY _ZTV6dd4522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4522[];
+static VTBL_ENTRY alt_thunk_names1162[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn12_N5cc5223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd45223barEv,_ZTv0_n16_N6dd45223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd45223barEv,_ZThn12_N6dd45223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd4522 = { "dd4522", // class name
+ bases_dd4522, 3,
+ &(vtc_dd4522[0]), // expected_vtbl_contents
+ &(vtt_dd4522[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd4522),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4522),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd4522),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1162,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee04522 : dd4522 {
+ int e;
+ ~ee04522(); // tgen
+ ee04522(); // tgen
+};
+//SIG(1 ee04522) C1{ BC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee04522 ::~ee04522(){ note_dtor("ee04522", this);} // tgen
+ee04522 ::ee04522(){ note_ctor("ee04522", this);} // tgen
+
+static void Test_ee04522()
+{
+ extern Class_Descriptor cd_ee04522;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee04522, buf);
+ ee04522 *dp, &lv = *(dp=new (buf) ee04522());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee04522)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04522)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(24,16), "ee04522");
+ check_base_class_offset(lv, (bb22*)(cc522*)(dd4522*), ABISELECT(24,16), "ee04522");
+ check_base_class_offset(lv, (cc522*)(dd4522*), 0, "ee04522");
+ check_base_class_offset(lv, (dd4522*), 0, "ee04522");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee04522.e");
+ test_class_info(&lv, &cd_ee04522);
+ dp->~ee04522();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04522(Test_ee04522, "ee04522", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee04522C1Ev();
+extern void _ZN7ee04522D1Ev();
+Name_Map name_map_ee04522[] = {
+ NSPAIR(_ZN7ee04522C1Ev),
+ NSPAIR(_ZN7ee04522D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc522;
+extern VTBL_ENTRY _ZTI5cc522[];
+extern VTBL_ENTRY _ZTV5cc522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc522[];
+extern Class_Descriptor cd_dd4522;
+extern VTBL_ENTRY _ZTI6dd4522[];
+extern VTBL_ENTRY _ZTV6dd4522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4522[];
+static Base_Class bases_ee04522[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc522, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4522, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee04522[];
+extern void _ZN6dd45223barEv();
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd45223barEv,_ZTv0_n16_N6dd45223barEv)();
+extern void ABISELECT(_ZThn24_N6dd45223barEv,_ZThn16_N6dd45223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee04522[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04522[0]),
+ (VTBL_ENTRY)&_ZN6dd45223barEv,
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee04522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45223barEv,_ZTv0_n16_N6dd45223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee04522[];
+extern void _ZN6dd45223barEv();
+static VTBL_ENTRY _tg__ZTV6dd4522__7ee04522[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4522[0]),
+ (VTBL_ENTRY)&_ZN6dd45223barEv,
+};
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc5226dd4522__7ee04522[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn24_N5cc5223barEv,_ZThn16_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc5226dd4522__7ee04522[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd45223barEv,_ZTv0_n16_N6dd45223barEv)();
+extern void ABISELECT(_ZThn24_N6dd45223barEv,_ZThn16_N6dd45223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd4522__7ee04522[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45223barEv,_ZTv0_n16_N6dd45223barEv),
+};
+static VTT_ENTRY vtt_ee04522[] = {
+ {&(_ZTV7ee04522[3]), 3,10},
+ {&(_tg__ZTV6dd4522__7ee04522[3]), 3,4},
+ {&(_tg__ZTV5cc5226dd4522__7ee04522[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc5226dd4522__7ee04522[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd4522__7ee04522[4]), 4,6},
+ {&(_ZTV7ee04522[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee04522[];
+extern VTBL_ENTRY _ZTV7ee04522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee04522[];
+static VTBL_ENTRY alt_thunk_names1163[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5223barEv,_ZThn16_N5cc5223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd45223barEv,_ZTv0_n16_N6dd45223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd45223barEv,_ZThn16_N6dd45223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd45223barEv,_ZThn16_N6dd45223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee04522 = { "ee04522", // class name
+ bases_ee04522, 4,
+ &(vtc_ee04522[0]), // expected_vtbl_contents
+ &(vtt_ee04522[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee04522),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04522),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee04522),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1163,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee14522 : virtual dd4522 {
+ int e;
+ ~ee14522(); // tgen
+ ee14522(); // tgen
+};
+//SIG(1 ee14522) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee14522 ::~ee14522(){ note_dtor("ee14522", this);} // tgen
+ee14522 ::ee14522(){ note_ctor("ee14522", this);} // tgen
+
+static void Test_ee14522()
+{
+ extern Class_Descriptor cd_ee14522;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee14522, buf);
+ ee14522 *dp, &lv = *(dp=new (buf) ee14522());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee14522)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14522)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee14522");
+ check_base_class_offset(lv, (bb22*)(cc522*)(dd4522*), ABISELECT(32,20), "ee14522");
+ check_base_class_offset(lv, (cc522*)(dd4522*), ABISELECT(16,8), "ee14522");
+ check_base_class_offset(lv, (dd4522*), ABISELECT(16,8), "ee14522");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14522.e");
+ test_class_info(&lv, &cd_ee14522);
+ dp->~ee14522();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14522(Test_ee14522, "ee14522", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee14522C1Ev();
+extern void _ZN7ee14522D1Ev();
+Name_Map name_map_ee14522[] = {
+ NSPAIR(_ZN7ee14522C1Ev),
+ NSPAIR(_ZN7ee14522D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc522;
+extern VTBL_ENTRY _ZTI5cc522[];
+extern VTBL_ENTRY _ZTV5cc522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc522[];
+extern Class_Descriptor cd_dd4522;
+extern VTBL_ENTRY _ZTI6dd4522[];
+extern VTBL_ENTRY _ZTV6dd4522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4522[];
+static Base_Class bases_ee14522[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc522, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4522, 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 _ZTI7ee14522[];
+extern void _ZN6dd45223barEv();
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd45223barEv,_ZTv0_n16_N6dd45223barEv)();
+extern void ABISELECT(_ZThn16_N6dd45223barEv,_ZThn12_N6dd45223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee14522[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14522[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14522[0]),
+ (VTBL_ENTRY)&_ZN6dd45223barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee14522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45223barEv,_ZTv0_n16_N6dd45223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee14522[];
+extern void _ZN6dd45223barEv();
+static VTBL_ENTRY _tg__ZTV6dd4522__7ee14522[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4522[0]),
+ (VTBL_ENTRY)&_ZN6dd45223barEv,
+};
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc5226dd4522__7ee14522[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn12_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc5226dd4522__7ee14522[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd45223barEv,_ZTv0_n16_N6dd45223barEv)();
+extern void ABISELECT(_ZThn16_N6dd45223barEv,_ZThn12_N6dd45223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd4522__7ee14522[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45223barEv,_ZTv0_n16_N6dd45223barEv),
+};
+static VTT_ENTRY vtt_ee14522[] = {
+ {&(_ZTV7ee14522[4]), 4,15},
+ {&(_ZTV7ee14522[8]), 8,15},
+ {&(_ZTV7ee14522[13]), 13,15},
+ {&(_tg__ZTV6dd4522__7ee14522[3]), 3,4},
+ {&(_tg__ZTV5cc5226dd4522__7ee14522[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc5226dd4522__7ee14522[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd4522__7ee14522[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee14522[];
+extern VTBL_ENTRY _ZTV7ee14522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14522[];
+static VTBL_ENTRY alt_thunk_names1164[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn12_N5cc5223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd45223barEv,_ZTv0_n16_N6dd45223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd45223barEv,_ZThn12_N6dd45223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd45223barEv,_ZThn12_N6dd45223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee14522 = { "ee14522", // class name
+ bases_ee14522, 4,
+ &(vtc_ee14522[0]), // expected_vtbl_contents
+ &(vtt_ee14522[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee14522),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14522),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14522),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1164,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee24522 : dd4522 {
+ int e;
+ virtual void foo(); // _ZN7ee245223fooEv
+ ~ee24522(); // tgen
+ ee24522(); // tgen
+};
+//SIG(1 ee24522) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee24522 ::foo(){vfunc_called(this, "_ZN7ee245223fooEv");}
+ee24522 ::~ee24522(){ note_dtor("ee24522", this);} // tgen
+ee24522 ::ee24522(){ note_ctor("ee24522", this);} // tgen
+
+static void Test_ee24522()
+{
+ extern Class_Descriptor cd_ee24522;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee24522, buf);
+ ee24522 *dp, &lv = *(dp=new (buf) ee24522());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee24522)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24522)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(24,16), "ee24522");
+ check_base_class_offset(lv, (bb22*)(cc522*)(dd4522*), ABISELECT(24,16), "ee24522");
+ check_base_class_offset(lv, (cc522*)(dd4522*), 0, "ee24522");
+ check_base_class_offset(lv, (dd4522*), 0, "ee24522");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee24522.e");
+ test_class_info(&lv, &cd_ee24522);
+ dp->~ee24522();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24522(Test_ee24522, "ee24522", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee24522C1Ev();
+extern void _ZN7ee24522D1Ev();
+Name_Map name_map_ee24522[] = {
+ NSPAIR(_ZN7ee24522C1Ev),
+ NSPAIR(_ZN7ee24522D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc522;
+extern VTBL_ENTRY _ZTI5cc522[];
+extern VTBL_ENTRY _ZTV5cc522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc522[];
+extern Class_Descriptor cd_dd4522;
+extern VTBL_ENTRY _ZTI6dd4522[];
+extern VTBL_ENTRY _ZTV6dd4522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4522[];
+static Base_Class bases_ee24522[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc522, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4522, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee24522[];
+extern void _ZN6dd45223barEv();
+extern void _ZN7ee245223fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee245223fooEv,_ZTv0_n12_N7ee245223fooEv)();
+extern void ABISELECT(_ZThn24_N7ee245223fooEv,_ZThn16_N7ee245223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd45223barEv,_ZTv0_n16_N6dd45223barEv)();
+extern void ABISELECT(_ZThn24_N6dd45223barEv,_ZThn16_N6dd45223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee24522[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24522[0]),
+ (VTBL_ENTRY)&_ZN6dd45223barEv,
+ (VTBL_ENTRY)&_ZN7ee245223fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee24522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee245223fooEv,_ZTv0_n12_N7ee245223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45223barEv,_ZTv0_n16_N6dd45223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee24522[];
+extern void _ZN6dd45223barEv();
+static VTBL_ENTRY _tg__ZTV6dd4522__7ee24522[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4522[0]),
+ (VTBL_ENTRY)&_ZN6dd45223barEv,
+};
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc5226dd4522__7ee24522[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn24_N5cc5223barEv,_ZThn16_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc5226dd4522__7ee24522[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd45223barEv,_ZTv0_n16_N6dd45223barEv)();
+extern void ABISELECT(_ZThn24_N6dd45223barEv,_ZThn16_N6dd45223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd4522__7ee24522[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45223barEv,_ZTv0_n16_N6dd45223barEv),
+};
+static VTT_ENTRY vtt_ee24522[] = {
+ {&(_ZTV7ee24522[3]), 3,11},
+ {&(_tg__ZTV6dd4522__7ee24522[3]), 3,4},
+ {&(_tg__ZTV5cc5226dd4522__7ee24522[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc5226dd4522__7ee24522[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd4522__7ee24522[4]), 4,6},
+ {&(_ZTV7ee24522[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee24522[];
+extern VTBL_ENTRY _ZTV7ee24522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee24522[];
+static VTBL_ENTRY alt_thunk_names1165[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5223barEv,_ZThn16_N5cc5223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd45223barEv,_ZTv0_n16_N6dd45223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd45223barEv,_ZThn16_N6dd45223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd45223barEv,_ZThn16_N6dd45223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee245223fooEv,_ZTv0_n12_N7ee245223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee245223fooEv,_ZThn16_N7ee245223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee24522 = { "ee24522", // class name
+ bases_ee24522, 4,
+ &(vtc_ee24522[0]), // expected_vtbl_contents
+ &(vtt_ee24522[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee24522),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24522),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee24522),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1165,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee34522 : virtual dd4522 {
+ int e;
+ virtual void foo(); // _ZN7ee345223fooEv
+ ~ee34522(); // tgen
+ ee34522(); // tgen
+};
+//SIG(1 ee34522) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee34522 ::foo(){vfunc_called(this, "_ZN7ee345223fooEv");}
+ee34522 ::~ee34522(){ note_dtor("ee34522", this);} // tgen
+ee34522 ::ee34522(){ note_ctor("ee34522", this);} // tgen
+
+static void Test_ee34522()
+{
+ extern Class_Descriptor cd_ee34522;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee34522, buf);
+ ee34522 *dp, &lv = *(dp=new (buf) ee34522());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee34522)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34522)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee34522");
+ check_base_class_offset(lv, (bb22*)(cc522*)(dd4522*), ABISELECT(32,20), "ee34522");
+ check_base_class_offset(lv, (cc522*)(dd4522*), ABISELECT(16,8), "ee34522");
+ check_base_class_offset(lv, (dd4522*), ABISELECT(16,8), "ee34522");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34522.e");
+ test_class_info(&lv, &cd_ee34522);
+ dp->~ee34522();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34522(Test_ee34522, "ee34522", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee34522C1Ev();
+extern void _ZN7ee34522D1Ev();
+Name_Map name_map_ee34522[] = {
+ NSPAIR(_ZN7ee34522C1Ev),
+ NSPAIR(_ZN7ee34522D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc522;
+extern VTBL_ENTRY _ZTI5cc522[];
+extern VTBL_ENTRY _ZTV5cc522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc522[];
+extern Class_Descriptor cd_dd4522;
+extern VTBL_ENTRY _ZTI6dd4522[];
+extern VTBL_ENTRY _ZTV6dd4522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4522[];
+static Base_Class bases_ee34522[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc522, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4522, 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 _ZTI7ee34522[];
+extern void _ZN7ee345223fooEv();
+extern void _ZN6dd45223barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee345223fooEv,_ZTv0_n12_N7ee345223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee345223fooEv,_ZThn20_N7ee345223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd45223barEv,_ZTv0_n16_N6dd45223barEv)();
+extern void ABISELECT(_ZThn16_N6dd45223barEv,_ZThn12_N6dd45223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee34522[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34522[0]),
+ (VTBL_ENTRY)&_ZN7ee345223fooEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34522[0]),
+ (VTBL_ENTRY)&_ZN6dd45223barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee34522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee345223fooEv,_ZTv0_n12_N7ee345223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45223barEv,_ZTv0_n16_N6dd45223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee34522[];
+extern void _ZN6dd45223barEv();
+static VTBL_ENTRY _tg__ZTV6dd4522__7ee34522[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4522[0]),
+ (VTBL_ENTRY)&_ZN6dd45223barEv,
+};
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc5226dd4522__7ee34522[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn12_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc5226dd4522__7ee34522[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd45223barEv,_ZTv0_n16_N6dd45223barEv)();
+extern void ABISELECT(_ZThn16_N6dd45223barEv,_ZThn12_N6dd45223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd4522__7ee34522[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45223barEv,_ZTv0_n16_N6dd45223barEv),
+};
+static VTT_ENTRY vtt_ee34522[] = {
+ {&(_ZTV7ee34522[4]), 4,16},
+ {&(_ZTV7ee34522[9]), 9,16},
+ {&(_ZTV7ee34522[14]), 14,16},
+ {&(_tg__ZTV6dd4522__7ee34522[3]), 3,4},
+ {&(_tg__ZTV5cc5226dd4522__7ee34522[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc5226dd4522__7ee34522[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd4522__7ee34522[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee34522[];
+extern VTBL_ENTRY _ZTV7ee34522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34522[];
+static VTBL_ENTRY alt_thunk_names1166[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn12_N5cc5223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd45223barEv,_ZTv0_n16_N6dd45223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd45223barEv,_ZThn12_N6dd45223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd45223barEv,_ZThn12_N6dd45223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee345223fooEv,_ZTv0_n12_N7ee345223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee345223fooEv,_ZThn20_N7ee345223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34522 = { "ee34522", // class name
+ bases_ee34522, 4,
+ &(vtc_ee34522[0]), // expected_vtbl_contents
+ &(vtt_ee34522[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee34522),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34522),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34522),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1166,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee44522 : dd4522 {
+ int e;
+ virtual void bar(); // _ZN7ee445223barEv
+ ~ee44522(); // tgen
+ ee44522(); // tgen
+};
+//SIG(1 ee44522) C1{ BC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee44522 ::bar(){vfunc_called(this, "_ZN7ee445223barEv");}
+ee44522 ::~ee44522(){ note_dtor("ee44522", this);} // tgen
+ee44522 ::ee44522(){ note_ctor("ee44522", this);} // tgen
+
+static void Test_ee44522()
+{
+ extern Class_Descriptor cd_ee44522;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee44522, buf);
+ ee44522 *dp, &lv = *(dp=new (buf) ee44522());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee44522)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44522)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(24,16), "ee44522");
+ check_base_class_offset(lv, (bb22*)(cc522*)(dd4522*), ABISELECT(24,16), "ee44522");
+ check_base_class_offset(lv, (cc522*)(dd4522*), 0, "ee44522");
+ check_base_class_offset(lv, (dd4522*), 0, "ee44522");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee44522.e");
+ test_class_info(&lv, &cd_ee44522);
+ dp->~ee44522();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44522(Test_ee44522, "ee44522", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee44522C1Ev();
+extern void _ZN7ee44522D1Ev();
+Name_Map name_map_ee44522[] = {
+ NSPAIR(_ZN7ee44522C1Ev),
+ NSPAIR(_ZN7ee44522D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc522;
+extern VTBL_ENTRY _ZTI5cc522[];
+extern VTBL_ENTRY _ZTV5cc522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc522[];
+extern Class_Descriptor cd_dd4522;
+extern VTBL_ENTRY _ZTI6dd4522[];
+extern VTBL_ENTRY _ZTV6dd4522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4522[];
+static Base_Class bases_ee44522[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc522, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4522, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee44522[];
+extern void _ZN7ee445223barEv();
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee445223barEv,_ZTv0_n16_N7ee445223barEv)();
+extern void ABISELECT(_ZThn24_N7ee445223barEv,_ZThn16_N7ee445223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee44522[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44522[0]),
+ (VTBL_ENTRY)&_ZN7ee445223barEv,
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee44522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee445223barEv,_ZTv0_n16_N7ee445223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee44522[];
+extern void _ZN6dd45223barEv();
+static VTBL_ENTRY _tg__ZTV6dd4522__7ee44522[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4522[0]),
+ (VTBL_ENTRY)&_ZN6dd45223barEv,
+};
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc5226dd4522__7ee44522[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn24_N5cc5223barEv,_ZThn16_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc5226dd4522__7ee44522[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd45223barEv,_ZTv0_n16_N6dd45223barEv)();
+extern void ABISELECT(_ZThn24_N6dd45223barEv,_ZThn16_N6dd45223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd4522__7ee44522[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45223barEv,_ZTv0_n16_N6dd45223barEv),
+};
+static VTT_ENTRY vtt_ee44522[] = {
+ {&(_ZTV7ee44522[3]), 3,10},
+ {&(_tg__ZTV6dd4522__7ee44522[3]), 3,4},
+ {&(_tg__ZTV5cc5226dd4522__7ee44522[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc5226dd4522__7ee44522[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd4522__7ee44522[4]), 4,6},
+ {&(_ZTV7ee44522[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee44522[];
+extern VTBL_ENTRY _ZTV7ee44522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee44522[];
+static VTBL_ENTRY alt_thunk_names1167[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd45223barEv,_ZTv0_n16_N6dd45223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd45223barEv,_ZThn16_N6dd45223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5223barEv,_ZThn16_N5cc5223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee445223barEv,_ZTv0_n16_N7ee445223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee445223barEv,_ZThn16_N7ee445223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee44522 = { "ee44522", // class name
+ bases_ee44522, 4,
+ &(vtc_ee44522[0]), // expected_vtbl_contents
+ &(vtt_ee44522[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee44522),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44522),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee44522),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1167,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee54522 : virtual dd4522 {
+ int e;
+ virtual void bar(); // _ZN7ee545223barEv
+ ~ee54522(); // tgen
+ ee54522(); // tgen
+};
+//SIG(1 ee54522) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee54522 ::bar(){vfunc_called(this, "_ZN7ee545223barEv");}
+ee54522 ::~ee54522(){ note_dtor("ee54522", this);} // tgen
+ee54522 ::ee54522(){ note_ctor("ee54522", this);} // tgen
+
+static void Test_ee54522()
+{
+ extern Class_Descriptor cd_ee54522;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee54522, buf);
+ ee54522 *dp, &lv = *(dp=new (buf) ee54522());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee54522)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54522)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee54522");
+ check_base_class_offset(lv, (bb22*)(cc522*)(dd4522*), ABISELECT(32,20), "ee54522");
+ check_base_class_offset(lv, (cc522*)(dd4522*), ABISELECT(16,8), "ee54522");
+ check_base_class_offset(lv, (dd4522*), ABISELECT(16,8), "ee54522");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54522.e");
+ test_class_info(&lv, &cd_ee54522);
+ dp->~ee54522();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54522(Test_ee54522, "ee54522", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee54522C1Ev();
+extern void _ZN7ee54522D1Ev();
+Name_Map name_map_ee54522[] = {
+ NSPAIR(_ZN7ee54522C1Ev),
+ NSPAIR(_ZN7ee54522D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc522;
+extern VTBL_ENTRY _ZTI5cc522[];
+extern VTBL_ENTRY _ZTV5cc522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc522[];
+extern Class_Descriptor cd_dd4522;
+extern VTBL_ENTRY _ZTI6dd4522[];
+extern VTBL_ENTRY _ZTV6dd4522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4522[];
+static Base_Class bases_ee54522[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc522, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4522, 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 _ZTI7ee54522[];
+extern void _ZN7ee545223barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee545223barEv,_ZTv0_n16_N7ee545223barEv)();
+extern void ABISELECT(_ZThn16_N7ee545223barEv,_ZThn8_N7ee545223barEv)() __attribute__((weak));
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee545223barEv,_ZTv0_n16_N7ee545223barEv)();
+extern void ABISELECT(_ZThn32_N7ee545223barEv,_ZThn20_N7ee545223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54522[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54522[0]),
+ (VTBL_ENTRY)&_ZN7ee545223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee545223barEv,_ZTv0_n16_N7ee545223barEv),
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee54522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee545223barEv,_ZTv0_n16_N7ee545223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee54522[];
+extern void _ZN6dd45223barEv();
+static VTBL_ENTRY _tg__ZTV6dd4522__7ee54522[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4522[0]),
+ (VTBL_ENTRY)&_ZN6dd45223barEv,
+};
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc5226dd4522__7ee54522[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn12_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc5226dd4522__7ee54522[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd45223barEv,_ZTv0_n16_N6dd45223barEv)();
+extern void ABISELECT(_ZThn16_N6dd45223barEv,_ZThn12_N6dd45223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd4522__7ee54522[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45223barEv,_ZTv0_n16_N6dd45223barEv),
+};
+static VTT_ENTRY vtt_ee54522[] = {
+ {&(_ZTV7ee54522[4]), 4,16},
+ {&(_ZTV7ee54522[9]), 9,16},
+ {&(_ZTV7ee54522[14]), 14,16},
+ {&(_tg__ZTV6dd4522__7ee54522[3]), 3,4},
+ {&(_tg__ZTV5cc5226dd4522__7ee54522[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc5226dd4522__7ee54522[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd4522__7ee54522[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee54522[];
+extern VTBL_ENTRY _ZTV7ee54522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54522[];
+static VTBL_ENTRY alt_thunk_names1168[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd45223barEv,_ZTv0_n16_N6dd45223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd45223barEv,_ZThn12_N6dd45223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn12_N5cc5223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee545223barEv,_ZTv0_n16_N7ee545223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee545223barEv,_ZThn20_N7ee545223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee545223barEv,_ZThn8_N7ee545223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54522 = { "ee54522", // class name
+ bases_ee54522, 4,
+ &(vtc_ee54522[0]), // expected_vtbl_contents
+ &(vtt_ee54522[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee54522),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54522),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54522),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1168,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee64522 : dd4522 {
+ int e;
+ virtual void foo(); // _ZN7ee645223fooEv
+ virtual void bar(); // _ZN7ee645223barEv
+ ~ee64522(); // tgen
+ ee64522(); // tgen
+};
+//SIG(1 ee64522) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64522 ::foo(){vfunc_called(this, "_ZN7ee645223fooEv");}
+void ee64522 ::bar(){vfunc_called(this, "_ZN7ee645223barEv");}
+ee64522 ::~ee64522(){ note_dtor("ee64522", this);} // tgen
+ee64522 ::ee64522(){ note_ctor("ee64522", this);} // tgen
+
+static void Test_ee64522()
+{
+ extern Class_Descriptor cd_ee64522;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee64522, buf);
+ ee64522 *dp, &lv = *(dp=new (buf) ee64522());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee64522)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64522)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(24,16), "ee64522");
+ check_base_class_offset(lv, (bb22*)(cc522*)(dd4522*), ABISELECT(24,16), "ee64522");
+ check_base_class_offset(lv, (cc522*)(dd4522*), 0, "ee64522");
+ check_base_class_offset(lv, (dd4522*), 0, "ee64522");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee64522.e");
+ test_class_info(&lv, &cd_ee64522);
+ dp->~ee64522();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64522(Test_ee64522, "ee64522", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee64522C1Ev();
+extern void _ZN7ee64522D1Ev();
+Name_Map name_map_ee64522[] = {
+ NSPAIR(_ZN7ee64522C1Ev),
+ NSPAIR(_ZN7ee64522D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc522;
+extern VTBL_ENTRY _ZTI5cc522[];
+extern VTBL_ENTRY _ZTV5cc522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc522[];
+extern Class_Descriptor cd_dd4522;
+extern VTBL_ENTRY _ZTI6dd4522[];
+extern VTBL_ENTRY _ZTV6dd4522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4522[];
+static Base_Class bases_ee64522[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc522, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4522, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee64522[];
+extern void _ZN7ee645223barEv();
+extern void _ZN7ee645223fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee645223fooEv,_ZTv0_n12_N7ee645223fooEv)();
+extern void ABISELECT(_ZThn24_N7ee645223fooEv,_ZThn16_N7ee645223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee645223barEv,_ZTv0_n16_N7ee645223barEv)();
+extern void ABISELECT(_ZThn24_N7ee645223barEv,_ZThn16_N7ee645223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee64522[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64522[0]),
+ (VTBL_ENTRY)&_ZN7ee645223barEv,
+ (VTBL_ENTRY)&_ZN7ee645223fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee64522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee645223fooEv,_ZTv0_n12_N7ee645223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee645223barEv,_ZTv0_n16_N7ee645223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee64522[];
+extern void _ZN6dd45223barEv();
+static VTBL_ENTRY _tg__ZTV6dd4522__7ee64522[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4522[0]),
+ (VTBL_ENTRY)&_ZN6dd45223barEv,
+};
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc5226dd4522__7ee64522[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn24_N5cc5223barEv,_ZThn16_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc5226dd4522__7ee64522[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd45223barEv,_ZTv0_n16_N6dd45223barEv)();
+extern void ABISELECT(_ZThn24_N6dd45223barEv,_ZThn16_N6dd45223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd4522__7ee64522[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45223barEv,_ZTv0_n16_N6dd45223barEv),
+};
+static VTT_ENTRY vtt_ee64522[] = {
+ {&(_ZTV7ee64522[3]), 3,11},
+ {&(_tg__ZTV6dd4522__7ee64522[3]), 3,4},
+ {&(_tg__ZTV5cc5226dd4522__7ee64522[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc5226dd4522__7ee64522[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd4522__7ee64522[4]), 4,6},
+ {&(_ZTV7ee64522[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee64522[];
+extern VTBL_ENTRY _ZTV7ee64522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee64522[];
+static VTBL_ENTRY alt_thunk_names1169[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd45223barEv,_ZTv0_n16_N6dd45223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd45223barEv,_ZThn16_N6dd45223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5223barEv,_ZThn16_N5cc5223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee645223barEv,_ZTv0_n16_N7ee645223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee645223barEv,_ZThn16_N7ee645223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee645223fooEv,_ZTv0_n12_N7ee645223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee645223fooEv,_ZThn16_N7ee645223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee64522 = { "ee64522", // class name
+ bases_ee64522, 4,
+ &(vtc_ee64522[0]), // expected_vtbl_contents
+ &(vtt_ee64522[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee64522),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64522),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee64522),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1169,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee74522 : virtual dd4522 {
+ int e;
+ virtual void foo(); // _ZN7ee745223fooEv
+ virtual void bar(); // _ZN7ee745223barEv
+ ~ee74522(); // tgen
+ ee74522(); // tgen
+};
+//SIG(1 ee74522) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74522 ::foo(){vfunc_called(this, "_ZN7ee745223fooEv");}
+void ee74522 ::bar(){vfunc_called(this, "_ZN7ee745223barEv");}
+ee74522 ::~ee74522(){ note_dtor("ee74522", this);} // tgen
+ee74522 ::ee74522(){ note_ctor("ee74522", this);} // tgen
+
+static void Test_ee74522()
+{
+ extern Class_Descriptor cd_ee74522;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee74522, buf);
+ ee74522 *dp, &lv = *(dp=new (buf) ee74522());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee74522)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74522)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee74522");
+ check_base_class_offset(lv, (bb22*)(cc522*)(dd4522*), ABISELECT(32,20), "ee74522");
+ check_base_class_offset(lv, (cc522*)(dd4522*), ABISELECT(16,8), "ee74522");
+ check_base_class_offset(lv, (dd4522*), ABISELECT(16,8), "ee74522");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74522.e");
+ test_class_info(&lv, &cd_ee74522);
+ dp->~ee74522();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74522(Test_ee74522, "ee74522", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee74522C1Ev();
+extern void _ZN7ee74522D1Ev();
+Name_Map name_map_ee74522[] = {
+ NSPAIR(_ZN7ee74522C1Ev),
+ NSPAIR(_ZN7ee74522D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc522;
+extern VTBL_ENTRY _ZTI5cc522[];
+extern VTBL_ENTRY _ZTV5cc522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc522[];
+extern Class_Descriptor cd_dd4522;
+extern VTBL_ENTRY _ZTI6dd4522[];
+extern VTBL_ENTRY _ZTV6dd4522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4522[];
+static Base_Class bases_ee74522[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc522, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4522, 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 _ZTI7ee74522[];
+extern void _ZN7ee745223fooEv();
+extern void _ZN7ee745223barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee745223barEv,_ZTv0_n16_N7ee745223barEv)();
+extern void ABISELECT(_ZThn16_N7ee745223barEv,_ZThn8_N7ee745223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee745223fooEv,_ZTv0_n12_N7ee745223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee745223fooEv,_ZThn20_N7ee745223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee745223barEv,_ZTv0_n16_N7ee745223barEv)();
+extern void ABISELECT(_ZThn32_N7ee745223barEv,_ZThn20_N7ee745223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74522[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74522[0]),
+ (VTBL_ENTRY)&_ZN7ee745223fooEv,
+ (VTBL_ENTRY)&_ZN7ee745223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee745223barEv,_ZTv0_n16_N7ee745223barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee74522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee745223fooEv,_ZTv0_n12_N7ee745223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee745223barEv,_ZTv0_n16_N7ee745223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee74522[];
+extern void _ZN6dd45223barEv();
+static VTBL_ENTRY _tg__ZTV6dd4522__7ee74522[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4522[0]),
+ (VTBL_ENTRY)&_ZN6dd45223barEv,
+};
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc5226dd4522__7ee74522[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn12_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc5226dd4522__7ee74522[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd45223barEv,_ZTv0_n16_N6dd45223barEv)();
+extern void ABISELECT(_ZThn16_N6dd45223barEv,_ZThn12_N6dd45223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd4522__7ee74522[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45223barEv,_ZTv0_n16_N6dd45223barEv),
+};
+static VTT_ENTRY vtt_ee74522[] = {
+ {&(_ZTV7ee74522[4]), 4,17},
+ {&(_ZTV7ee74522[10]), 10,17},
+ {&(_ZTV7ee74522[15]), 15,17},
+ {&(_tg__ZTV6dd4522__7ee74522[3]), 3,4},
+ {&(_tg__ZTV5cc5226dd4522__7ee74522[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc5226dd4522__7ee74522[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd4522__7ee74522[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee74522[];
+extern VTBL_ENTRY _ZTV7ee74522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74522[];
+static VTBL_ENTRY alt_thunk_names1170[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd45223barEv,_ZTv0_n16_N6dd45223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd45223barEv,_ZThn12_N6dd45223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn12_N5cc5223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee745223fooEv,_ZTv0_n12_N7ee745223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee745223fooEv,_ZThn20_N7ee745223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee745223barEv,_ZTv0_n16_N7ee745223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee745223barEv,_ZThn20_N7ee745223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee745223barEv,_ZThn8_N7ee745223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74522 = { "ee74522", // class name
+ bases_ee74522, 4,
+ &(vtc_ee74522[0]), // expected_vtbl_contents
+ &(vtt_ee74522[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee74522),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74522),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74522),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1170,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd5522 : virtual cc522 {
+ int d;
+ virtual void bar(); // _ZN6dd55223barEv
+ ~dd5522(); // tgen
+ dd5522(); // tgen
+};
+//SIG(-1 dd5522) C1{ VBC2{ VBC3{ BC4{ v2 v1 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void dd5522 ::bar(){vfunc_called(this, "_ZN6dd55223barEv");}
+dd5522 ::~dd5522(){ note_dtor("dd5522", this);} // tgen
+dd5522 ::dd5522(){ note_ctor("dd5522", this);} // tgen
+
+static void Test_dd5522()
+{
+ extern Class_Descriptor cd_dd5522;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd5522, buf);
+ dd5522 *dp, &lv = *(dp=new (buf) dd5522());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd5522)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5522)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,16), "dd5522");
+ check_base_class_offset(lv, (bb22*)(cc522*), ABISELECT(32,16), "dd5522");
+ check_base_class_offset(lv, (cc522*), ABISELECT(16,8), "dd5522");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5522.d");
+ test_class_info(&lv, &cd_dd5522);
+ dp->~dd5522();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5522(Test_dd5522, "dd5522", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd5522C1Ev();
+extern void _ZN6dd5522D1Ev();
+Name_Map name_map_dd5522[] = {
+ NSPAIR(_ZN6dd5522C1Ev),
+ NSPAIR(_ZN6dd5522D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc522;
+extern VTBL_ENTRY _ZTI5cc522[];
+extern VTBL_ENTRY _ZTV5cc522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc522[];
+static Base_Class bases_dd5522[] = {
+ // 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_bb22, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc522, 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 _ZTI6dd5522[];
+extern void _ZN6dd55223barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55223barEv,_ZTv0_n16_N6dd55223barEv)();
+extern void ABISELECT(_ZThn16_N6dd55223barEv,_ZThn8_N6dd55223barEv)() __attribute__((weak));
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55223barEv,_ZTv0_n16_N6dd55223barEv)();
+extern void ABISELECT(_ZThn32_N6dd55223barEv,_ZThn16_N6dd55223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd5522[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5522[0]),
+ (VTBL_ENTRY)&_ZN6dd55223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55223barEv,_ZTv0_n16_N6dd55223barEv),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55223barEv,_ZTv0_n16_N6dd55223barEv),
+};
+extern VTBL_ENTRY _ZTV6dd5522[];
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc522__6dd5522[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc522__6dd5522[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+static VTT_ENTRY vtt_dd5522[] = {
+ {&(_ZTV6dd5522[4]), 4,16},
+ {&(_ZTV6dd5522[9]), 9,16},
+ {&(_ZTV6dd5522[14]), 14,16},
+ {&(_tg__ZTV5cc522__6dd5522[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc522__6dd5522[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd5522[];
+extern VTBL_ENTRY _ZTV6dd5522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5522[];
+static VTBL_ENTRY alt_thunk_names1171[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55223barEv,_ZTv0_n16_N6dd55223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55223barEv,_ZThn16_N6dd55223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55223barEv,_ZThn8_N6dd55223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5522 = { "dd5522", // class name
+ bases_dd5522, 3,
+ &(vtc_dd5522[0]), // expected_vtbl_contents
+ &(vtt_dd5522[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd5522),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5522),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5522),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1171,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05522 : dd5522 {
+ int e;
+ ~ee05522(); // tgen
+ ee05522(); // tgen
+};
+//SIG(1 ee05522) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee05522 ::~ee05522(){ note_dtor("ee05522", this);} // tgen
+ee05522 ::ee05522(){ note_ctor("ee05522", this);} // tgen
+
+static void Test_ee05522()
+{
+ extern Class_Descriptor cd_ee05522;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee05522, buf);
+ ee05522 *dp, &lv = *(dp=new (buf) ee05522());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee05522)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05522)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee05522");
+ check_base_class_offset(lv, (bb22*)(cc522*), ABISELECT(32,20), "ee05522");
+ check_base_class_offset(lv, (cc522*)(dd5522*), ABISELECT(16,12), "ee05522");
+ check_base_class_offset(lv, (dd5522*), 0, "ee05522");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05522.e");
+ test_class_info(&lv, &cd_ee05522);
+ dp->~ee05522();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05522(Test_ee05522, "ee05522", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee05522C1Ev();
+extern void _ZN7ee05522D1Ev();
+Name_Map name_map_ee05522[] = {
+ NSPAIR(_ZN7ee05522C1Ev),
+ NSPAIR(_ZN7ee05522D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc522;
+extern VTBL_ENTRY _ZTI5cc522[];
+extern VTBL_ENTRY _ZTV5cc522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc522[];
+extern Class_Descriptor cd_dd5522;
+extern VTBL_ENTRY _ZTI6dd5522[];
+extern VTBL_ENTRY _ZTV6dd5522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5522[];
+static Base_Class bases_ee05522[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc522, 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_dd5522, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05522[];
+extern void _ZN6dd55223barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55223barEv,_ZTv0_n16_N6dd55223barEv)();
+extern void ABISELECT(_ZThn16_N6dd55223barEv,_ZThn12_N6dd55223barEv)() __attribute__((weak));
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55223barEv,_ZTv0_n16_N6dd55223barEv)();
+extern void ABISELECT(_ZThn32_N6dd55223barEv,_ZThn20_N6dd55223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee05522[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05522[0]),
+ (VTBL_ENTRY)&_ZN6dd55223barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55223barEv,_ZTv0_n16_N6dd55223barEv),
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee05522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55223barEv,_ZTv0_n16_N6dd55223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee05522[];
+extern void _ZN6dd55223barEv();
+static VTBL_ENTRY _tg__ZTV6dd5522__7ee05522[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5522[0]),
+ (VTBL_ENTRY)&_ZN6dd55223barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55223barEv,_ZTv0_n16_N6dd55223barEv)();
+extern void ABISELECT(_ZThn16_N6dd55223barEv,_ZThn12_N6dd55223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc522__6dd5522__7ee05522[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55223barEv,_ZTv0_n16_N6dd55223barEv),
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55223barEv,_ZTv0_n16_N6dd55223barEv)();
+extern void ABISELECT(_ZThn32_N6dd55223barEv,_ZThn20_N6dd55223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd5522__7ee05522[] = {
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55223barEv,_ZTv0_n16_N6dd55223barEv),
+};
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc522__7ee05522[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc522__7ee05522[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+static VTT_ENTRY vtt_ee05522[] = {
+ {&(_ZTV7ee05522[4]), 4,16},
+ {&(_tg__ZTV6dd5522__7ee05522[4]), 4,5},
+ {&(_tg__ZTV5cc522__6dd5522__7ee05522[4]), 4,5},
+ {&(_tg__ZTV4bb22__6dd5522__7ee05522[4]), 4,6},
+ {&(_ZTV7ee05522[9]), 9,16},
+ {&(_ZTV7ee05522[14]), 14,16},
+ {&(_tg__ZTV5cc522__7ee05522[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc522__7ee05522[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee05522[];
+extern VTBL_ENTRY _ZTV7ee05522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05522[];
+static VTBL_ENTRY alt_thunk_names1172[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55223barEv,_ZTv0_n16_N6dd55223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55223barEv,_ZThn20_N6dd55223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55223barEv,_ZThn12_N6dd55223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55223barEv,_ZThn20_N6dd55223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55223barEv,_ZThn12_N6dd55223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05522 = { "ee05522", // class name
+ bases_ee05522, 4,
+ &(vtc_ee05522[0]), // expected_vtbl_contents
+ &(vtt_ee05522[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee05522),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05522),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05522),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1172,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee15522 : virtual dd5522 {
+ int e;
+ ~ee15522(); // tgen
+ ee15522(); // tgen
+};
+//SIG(1 ee15522) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee15522 ::~ee15522(){ note_dtor("ee15522", this);} // tgen
+ee15522 ::ee15522(){ note_ctor("ee15522", this);} // tgen
+
+static void Test_ee15522()
+{
+ extern Class_Descriptor cd_ee15522;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee15522, buf);
+ ee15522 *dp, &lv = *(dp=new (buf) ee15522());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee15522)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15522)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(48,24), "ee15522");
+ check_base_class_offset(lv, (bb22*)(cc522*), ABISELECT(48,24), "ee15522");
+ check_base_class_offset(lv, (cc522*)(dd5522*), ABISELECT(32,16), "ee15522");
+ check_base_class_offset(lv, (dd5522*), ABISELECT(16,8), "ee15522");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15522.e");
+ test_class_info(&lv, &cd_ee15522);
+ dp->~ee15522();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15522(Test_ee15522, "ee15522", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee15522C1Ev();
+extern void _ZN7ee15522D1Ev();
+Name_Map name_map_ee15522[] = {
+ NSPAIR(_ZN7ee15522C1Ev),
+ NSPAIR(_ZN7ee15522D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc522;
+extern VTBL_ENTRY _ZTI5cc522[];
+extern VTBL_ENTRY _ZTV5cc522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc522[];
+extern Class_Descriptor cd_dd5522;
+extern VTBL_ENTRY _ZTI6dd5522[];
+extern VTBL_ENTRY _ZTV6dd5522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5522[];
+static Base_Class bases_ee15522[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb22, ABISELECT(48,24), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc522, 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_dd5522, 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 _ZTI7ee15522[];
+extern void _ZN6dd55223barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55223barEv,_ZTv0_n16_N6dd55223barEv)();
+extern void ABISELECT(_ZThn16_N6dd55223barEv,_ZThn8_N6dd55223barEv)() __attribute__((weak));
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55223barEv,_ZTv0_n16_N6dd55223barEv)();
+extern void ABISELECT(_ZThn32_N6dd55223barEv,_ZThn16_N6dd55223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee15522[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15522[0]),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15522[0]),
+ (VTBL_ENTRY)&_ZN6dd55223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55223barEv,_ZTv0_n16_N6dd55223barEv),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee15522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55223barEv,_ZTv0_n16_N6dd55223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee15522[];
+extern void _ZN6dd55223barEv();
+static VTBL_ENTRY _tg__ZTV6dd5522__7ee15522[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5522[0]),
+ (VTBL_ENTRY)&_ZN6dd55223barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55223barEv,_ZTv0_n16_N6dd55223barEv)();
+extern void ABISELECT(_ZThn16_N6dd55223barEv,_ZThn8_N6dd55223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc522__6dd5522__7ee15522[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55223barEv,_ZTv0_n16_N6dd55223barEv),
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55223barEv,_ZTv0_n16_N6dd55223barEv)();
+extern void ABISELECT(_ZThn32_N6dd55223barEv,_ZThn16_N6dd55223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd5522__7ee15522[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55223barEv,_ZTv0_n16_N6dd55223barEv),
+};
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc522__7ee15522[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc522__7ee15522[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+static VTT_ENTRY vtt_ee15522[] = {
+ {&(_ZTV7ee15522[5]), 5,22},
+ {&(_ZTV7ee15522[10]), 10,22},
+ {&(_ZTV7ee15522[15]), 15,22},
+ {&(_ZTV7ee15522[20]), 20,22},
+ {&(_tg__ZTV6dd5522__7ee15522[4]), 4,5},
+ {&(_tg__ZTV5cc522__6dd5522__7ee15522[4]), 4,5},
+ {&(_tg__ZTV4bb22__6dd5522__7ee15522[4]), 4,6},
+ {&(_tg__ZTV5cc522__7ee15522[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc522__7ee15522[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee15522[];
+extern VTBL_ENTRY _ZTV7ee15522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15522[];
+static VTBL_ENTRY alt_thunk_names1173[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55223barEv,_ZTv0_n16_N6dd55223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55223barEv,_ZThn16_N6dd55223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55223barEv,_ZThn8_N6dd55223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55223barEv,_ZThn16_N6dd55223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55223barEv,_ZThn8_N6dd55223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15522 = { "ee15522", // class name
+ bases_ee15522, 4,
+ &(vtc_ee15522[0]), // expected_vtbl_contents
+ &(vtt_ee15522[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee15522),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15522),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15522),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1173,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee25522 : dd5522 {
+ int e;
+ virtual void foo(); // _ZN7ee255223fooEv
+ ~ee25522(); // tgen
+ ee25522(); // tgen
+};
+//SIG(1 ee25522) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee25522 ::foo(){vfunc_called(this, "_ZN7ee255223fooEv");}
+ee25522 ::~ee25522(){ note_dtor("ee25522", this);} // tgen
+ee25522 ::ee25522(){ note_ctor("ee25522", this);} // tgen
+
+static void Test_ee25522()
+{
+ extern Class_Descriptor cd_ee25522;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee25522, buf);
+ ee25522 *dp, &lv = *(dp=new (buf) ee25522());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee25522)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25522)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee25522");
+ check_base_class_offset(lv, (bb22*)(cc522*), ABISELECT(32,20), "ee25522");
+ check_base_class_offset(lv, (cc522*)(dd5522*), ABISELECT(16,12), "ee25522");
+ check_base_class_offset(lv, (dd5522*), 0, "ee25522");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25522.e");
+ test_class_info(&lv, &cd_ee25522);
+ dp->~ee25522();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25522(Test_ee25522, "ee25522", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee25522C1Ev();
+extern void _ZN7ee25522D1Ev();
+Name_Map name_map_ee25522[] = {
+ NSPAIR(_ZN7ee25522C1Ev),
+ NSPAIR(_ZN7ee25522D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc522;
+extern VTBL_ENTRY _ZTI5cc522[];
+extern VTBL_ENTRY _ZTV5cc522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc522[];
+extern Class_Descriptor cd_dd5522;
+extern VTBL_ENTRY _ZTI6dd5522[];
+extern VTBL_ENTRY _ZTV6dd5522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5522[];
+static Base_Class bases_ee25522[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc522, 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_dd5522, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25522[];
+extern void _ZN6dd55223barEv();
+extern void _ZN7ee255223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55223barEv,_ZTv0_n16_N6dd55223barEv)();
+extern void ABISELECT(_ZThn16_N6dd55223barEv,_ZThn12_N6dd55223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee255223fooEv,_ZTv0_n12_N7ee255223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee255223fooEv,_ZThn20_N7ee255223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd55223barEv,_ZTv0_n16_N6dd55223barEv)();
+extern void ABISELECT(_ZThn32_N6dd55223barEv,_ZThn20_N6dd55223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25522[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25522[0]),
+ (VTBL_ENTRY)&_ZN6dd55223barEv,
+ (VTBL_ENTRY)&_ZN7ee255223fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55223barEv,_ZTv0_n16_N6dd55223barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee25522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee255223fooEv,_ZTv0_n12_N7ee255223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55223barEv,_ZTv0_n16_N6dd55223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee25522[];
+extern void _ZN6dd55223barEv();
+static VTBL_ENTRY _tg__ZTV6dd5522__7ee25522[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5522[0]),
+ (VTBL_ENTRY)&_ZN6dd55223barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55223barEv,_ZTv0_n16_N6dd55223barEv)();
+extern void ABISELECT(_ZThn16_N6dd55223barEv,_ZThn12_N6dd55223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc522__6dd5522__7ee25522[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55223barEv,_ZTv0_n16_N6dd55223barEv),
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55223barEv,_ZTv0_n16_N6dd55223barEv)();
+extern void ABISELECT(_ZThn32_N6dd55223barEv,_ZThn20_N6dd55223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd5522__7ee25522[] = {
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55223barEv,_ZTv0_n16_N6dd55223barEv),
+};
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc522__7ee25522[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc522__7ee25522[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+static VTT_ENTRY vtt_ee25522[] = {
+ {&(_ZTV7ee25522[4]), 4,17},
+ {&(_tg__ZTV6dd5522__7ee25522[4]), 4,5},
+ {&(_tg__ZTV5cc522__6dd5522__7ee25522[4]), 4,5},
+ {&(_tg__ZTV4bb22__6dd5522__7ee25522[4]), 4,6},
+ {&(_ZTV7ee25522[10]), 10,17},
+ {&(_ZTV7ee25522[15]), 15,17},
+ {&(_tg__ZTV5cc522__7ee25522[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc522__7ee25522[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee25522[];
+extern VTBL_ENTRY _ZTV7ee25522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25522[];
+static VTBL_ENTRY alt_thunk_names1174[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee255223fooEv,_ZTv0_n12_N7ee255223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee255223fooEv,_ZThn20_N7ee255223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55223barEv,_ZTv0_n16_N6dd55223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55223barEv,_ZThn20_N6dd55223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55223barEv,_ZThn12_N6dd55223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55223barEv,_ZThn20_N6dd55223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55223barEv,_ZThn12_N6dd55223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25522 = { "ee25522", // class name
+ bases_ee25522, 4,
+ &(vtc_ee25522[0]), // expected_vtbl_contents
+ &(vtt_ee25522[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee25522),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25522),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25522),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1174,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee35522 : virtual dd5522 {
+ int e;
+ virtual void foo(); // _ZN7ee355223fooEv
+ ~ee35522(); // tgen
+ ee35522(); // tgen
+};
+//SIG(1 ee35522) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee35522 ::foo(){vfunc_called(this, "_ZN7ee355223fooEv");}
+ee35522 ::~ee35522(){ note_dtor("ee35522", this);} // tgen
+ee35522 ::ee35522(){ note_ctor("ee35522", this);} // tgen
+
+static void Test_ee35522()
+{
+ extern Class_Descriptor cd_ee35522;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee35522, buf);
+ ee35522 *dp, &lv = *(dp=new (buf) ee35522());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee35522)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35522)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(48,24), "ee35522");
+ check_base_class_offset(lv, (bb22*)(cc522*), ABISELECT(48,24), "ee35522");
+ check_base_class_offset(lv, (cc522*)(dd5522*), ABISELECT(32,16), "ee35522");
+ check_base_class_offset(lv, (dd5522*), ABISELECT(16,8), "ee35522");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35522.e");
+ test_class_info(&lv, &cd_ee35522);
+ dp->~ee35522();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35522(Test_ee35522, "ee35522", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee35522C1Ev();
+extern void _ZN7ee35522D1Ev();
+Name_Map name_map_ee35522[] = {
+ NSPAIR(_ZN7ee35522C1Ev),
+ NSPAIR(_ZN7ee35522D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc522;
+extern VTBL_ENTRY _ZTI5cc522[];
+extern VTBL_ENTRY _ZTV5cc522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc522[];
+extern Class_Descriptor cd_dd5522;
+extern VTBL_ENTRY _ZTI6dd5522[];
+extern VTBL_ENTRY _ZTV6dd5522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5522[];
+static Base_Class bases_ee35522[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb22, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc522, 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_dd5522, ABISELECT(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 _ZTI7ee35522[];
+extern void _ZN7ee355223fooEv();
+extern void _ZN6dd55223barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55223barEv,_ZTv0_n16_N6dd55223barEv)();
+extern void ABISELECT(_ZThn16_N6dd55223barEv,_ZThn8_N6dd55223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee355223fooEv,_ZTv0_n12_N7ee355223fooEv)();
+extern void ABISELECT(_ZThn48_N7ee355223fooEv,_ZThn24_N7ee355223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd55223barEv,_ZTv0_n16_N6dd55223barEv)();
+extern void ABISELECT(_ZThn32_N6dd55223barEv,_ZThn16_N6dd55223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35522[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35522[0]),
+ (VTBL_ENTRY)&_ZN7ee355223fooEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35522[0]),
+ (VTBL_ENTRY)&_ZN6dd55223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55223barEv,_ZTv0_n16_N6dd55223barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee35522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee355223fooEv,_ZTv0_n12_N7ee355223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55223barEv,_ZTv0_n16_N6dd55223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee35522[];
+extern void _ZN6dd55223barEv();
+static VTBL_ENTRY _tg__ZTV6dd5522__7ee35522[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5522[0]),
+ (VTBL_ENTRY)&_ZN6dd55223barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55223barEv,_ZTv0_n16_N6dd55223barEv)();
+extern void ABISELECT(_ZThn16_N6dd55223barEv,_ZThn8_N6dd55223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc522__6dd5522__7ee35522[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55223barEv,_ZTv0_n16_N6dd55223barEv),
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55223barEv,_ZTv0_n16_N6dd55223barEv)();
+extern void ABISELECT(_ZThn32_N6dd55223barEv,_ZThn16_N6dd55223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd5522__7ee35522[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55223barEv,_ZTv0_n16_N6dd55223barEv),
+};
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc522__7ee35522[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc522__7ee35522[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+static VTT_ENTRY vtt_ee35522[] = {
+ {&(_ZTV7ee35522[5]), 5,23},
+ {&(_ZTV7ee35522[11]), 11,23},
+ {&(_ZTV7ee35522[16]), 16,23},
+ {&(_ZTV7ee35522[21]), 21,23},
+ {&(_tg__ZTV6dd5522__7ee35522[4]), 4,5},
+ {&(_tg__ZTV5cc522__6dd5522__7ee35522[4]), 4,5},
+ {&(_tg__ZTV4bb22__6dd5522__7ee35522[4]), 4,6},
+ {&(_tg__ZTV5cc522__7ee35522[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc522__7ee35522[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee35522[];
+extern VTBL_ENTRY _ZTV7ee35522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35522[];
+static VTBL_ENTRY alt_thunk_names1175[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee355223fooEv,_ZTv0_n12_N7ee355223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee355223fooEv,_ZThn24_N7ee355223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55223barEv,_ZTv0_n16_N6dd55223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55223barEv,_ZThn16_N6dd55223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55223barEv,_ZThn8_N6dd55223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55223barEv,_ZThn16_N6dd55223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55223barEv,_ZThn8_N6dd55223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35522 = { "ee35522", // class name
+ bases_ee35522, 4,
+ &(vtc_ee35522[0]), // expected_vtbl_contents
+ &(vtt_ee35522[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee35522),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35522),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35522),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1175,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee45522 : dd5522 {
+ int e;
+ virtual void bar(); // _ZN7ee455223barEv
+ ~ee45522(); // tgen
+ ee45522(); // tgen
+};
+//SIG(1 ee45522) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee45522 ::bar(){vfunc_called(this, "_ZN7ee455223barEv");}
+ee45522 ::~ee45522(){ note_dtor("ee45522", this);} // tgen
+ee45522 ::ee45522(){ note_ctor("ee45522", this);} // tgen
+
+static void Test_ee45522()
+{
+ extern Class_Descriptor cd_ee45522;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee45522, buf);
+ ee45522 *dp, &lv = *(dp=new (buf) ee45522());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee45522)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45522)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee45522");
+ check_base_class_offset(lv, (bb22*)(cc522*), ABISELECT(32,20), "ee45522");
+ check_base_class_offset(lv, (cc522*)(dd5522*), ABISELECT(16,12), "ee45522");
+ check_base_class_offset(lv, (dd5522*), 0, "ee45522");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45522.e");
+ test_class_info(&lv, &cd_ee45522);
+ dp->~ee45522();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45522(Test_ee45522, "ee45522", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee45522C1Ev();
+extern void _ZN7ee45522D1Ev();
+Name_Map name_map_ee45522[] = {
+ NSPAIR(_ZN7ee45522C1Ev),
+ NSPAIR(_ZN7ee45522D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc522;
+extern VTBL_ENTRY _ZTI5cc522[];
+extern VTBL_ENTRY _ZTV5cc522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc522[];
+extern Class_Descriptor cd_dd5522;
+extern VTBL_ENTRY _ZTI6dd5522[];
+extern VTBL_ENTRY _ZTV6dd5522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5522[];
+static Base_Class bases_ee45522[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc522, 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_dd5522, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45522[];
+extern void _ZN7ee455223barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee455223barEv,_ZTv0_n16_N7ee455223barEv)();
+extern void ABISELECT(_ZThn16_N7ee455223barEv,_ZThn12_N7ee455223barEv)() __attribute__((weak));
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee455223barEv,_ZTv0_n16_N7ee455223barEv)();
+extern void ABISELECT(_ZThn32_N7ee455223barEv,_ZThn20_N7ee455223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee45522[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45522[0]),
+ (VTBL_ENTRY)&_ZN7ee455223barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee455223barEv,_ZTv0_n16_N7ee455223barEv),
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee45522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee455223barEv,_ZTv0_n16_N7ee455223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee45522[];
+extern void _ZN6dd55223barEv();
+static VTBL_ENTRY _tg__ZTV6dd5522__7ee45522[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5522[0]),
+ (VTBL_ENTRY)&_ZN6dd55223barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55223barEv,_ZTv0_n16_N6dd55223barEv)();
+extern void ABISELECT(_ZThn16_N6dd55223barEv,_ZThn12_N6dd55223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc522__6dd5522__7ee45522[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55223barEv,_ZTv0_n16_N6dd55223barEv),
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55223barEv,_ZTv0_n16_N6dd55223barEv)();
+extern void ABISELECT(_ZThn32_N6dd55223barEv,_ZThn20_N6dd55223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd5522__7ee45522[] = {
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55223barEv,_ZTv0_n16_N6dd55223barEv),
+};
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc522__7ee45522[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc522__7ee45522[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+static VTT_ENTRY vtt_ee45522[] = {
+ {&(_ZTV7ee45522[4]), 4,16},
+ {&(_tg__ZTV6dd5522__7ee45522[4]), 4,5},
+ {&(_tg__ZTV5cc522__6dd5522__7ee45522[4]), 4,5},
+ {&(_tg__ZTV4bb22__6dd5522__7ee45522[4]), 4,6},
+ {&(_ZTV7ee45522[9]), 9,16},
+ {&(_ZTV7ee45522[14]), 14,16},
+ {&(_tg__ZTV5cc522__7ee45522[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc522__7ee45522[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee45522[];
+extern VTBL_ENTRY _ZTV7ee45522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45522[];
+static VTBL_ENTRY alt_thunk_names1176[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55223barEv,_ZTv0_n16_N6dd55223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55223barEv,_ZThn20_N6dd55223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55223barEv,_ZThn12_N6dd55223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee455223barEv,_ZTv0_n16_N7ee455223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee455223barEv,_ZThn20_N7ee455223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee455223barEv,_ZThn12_N7ee455223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45522 = { "ee45522", // class name
+ bases_ee45522, 4,
+ &(vtc_ee45522[0]), // expected_vtbl_contents
+ &(vtt_ee45522[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee45522),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45522),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45522),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1176,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee55522 : virtual dd5522 {
+ int e;
+ virtual void bar(); // _ZN7ee555223barEv
+ ~ee55522(); // tgen
+ ee55522(); // tgen
+};
+//SIG(1 ee55522) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee55522 ::bar(){vfunc_called(this, "_ZN7ee555223barEv");}
+ee55522 ::~ee55522(){ note_dtor("ee55522", this);} // tgen
+ee55522 ::ee55522(){ note_ctor("ee55522", this);} // tgen
+
+static void Test_ee55522()
+{
+ extern Class_Descriptor cd_ee55522;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee55522, buf);
+ ee55522 *dp, &lv = *(dp=new (buf) ee55522());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee55522)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55522)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(48,24), "ee55522");
+ check_base_class_offset(lv, (bb22*)(cc522*), ABISELECT(48,24), "ee55522");
+ check_base_class_offset(lv, (cc522*)(dd5522*), ABISELECT(32,16), "ee55522");
+ check_base_class_offset(lv, (dd5522*), ABISELECT(16,8), "ee55522");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55522.e");
+ test_class_info(&lv, &cd_ee55522);
+ dp->~ee55522();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55522(Test_ee55522, "ee55522", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee55522C1Ev();
+extern void _ZN7ee55522D1Ev();
+Name_Map name_map_ee55522[] = {
+ NSPAIR(_ZN7ee55522C1Ev),
+ NSPAIR(_ZN7ee55522D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc522;
+extern VTBL_ENTRY _ZTI5cc522[];
+extern VTBL_ENTRY _ZTV5cc522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc522[];
+extern Class_Descriptor cd_dd5522;
+extern VTBL_ENTRY _ZTI6dd5522[];
+extern VTBL_ENTRY _ZTV6dd5522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5522[];
+static Base_Class bases_ee55522[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb22, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc522, 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_dd5522, ABISELECT(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 _ZTI7ee55522[];
+extern void _ZN7ee555223barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee555223barEv,_ZTv0_n20_N7ee555223barEv)();
+extern void ABISELECT(_ZThn16_N7ee555223barEv,_ZThn8_N7ee555223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee555223barEv,_ZTv0_n16_N7ee555223barEv)();
+extern void ABISELECT(_ZThn32_N7ee555223barEv,_ZThn16_N7ee555223barEv)() __attribute__((weak));
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee555223barEv,_ZTv0_n16_N7ee555223barEv)();
+extern void ABISELECT(_ZThn48_N7ee555223barEv,_ZThn24_N7ee555223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee55522[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55522[0]),
+ (VTBL_ENTRY)&_ZN7ee555223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee555223barEv,_ZTv0_n20_N7ee555223barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee555223barEv,_ZTv0_n16_N7ee555223barEv),
+ ABISELECT(-48,-24),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee55522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee555223barEv,_ZTv0_n16_N7ee555223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee55522[];
+extern void _ZN6dd55223barEv();
+static VTBL_ENTRY _tg__ZTV6dd5522__7ee55522[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5522[0]),
+ (VTBL_ENTRY)&_ZN6dd55223barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55223barEv,_ZTv0_n16_N6dd55223barEv)();
+extern void ABISELECT(_ZThn16_N6dd55223barEv,_ZThn8_N6dd55223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc522__6dd5522__7ee55522[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55223barEv,_ZTv0_n16_N6dd55223barEv),
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55223barEv,_ZTv0_n16_N6dd55223barEv)();
+extern void ABISELECT(_ZThn32_N6dd55223barEv,_ZThn16_N6dd55223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd5522__7ee55522[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55223barEv,_ZTv0_n16_N6dd55223barEv),
+};
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc522__7ee55522[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc522__7ee55522[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+static VTT_ENTRY vtt_ee55522[] = {
+ {&(_ZTV7ee55522[5]), 5,23},
+ {&(_ZTV7ee55522[11]), 11,23},
+ {&(_ZTV7ee55522[16]), 16,23},
+ {&(_ZTV7ee55522[21]), 21,23},
+ {&(_tg__ZTV6dd5522__7ee55522[4]), 4,5},
+ {&(_tg__ZTV5cc522__6dd5522__7ee55522[4]), 4,5},
+ {&(_tg__ZTV4bb22__6dd5522__7ee55522[4]), 4,6},
+ {&(_tg__ZTV5cc522__7ee55522[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc522__7ee55522[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee55522[];
+extern VTBL_ENTRY _ZTV7ee55522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55522[];
+static VTBL_ENTRY alt_thunk_names1177[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55223barEv,_ZTv0_n16_N6dd55223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55223barEv,_ZThn16_N6dd55223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55223barEv,_ZThn8_N6dd55223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee555223barEv,_ZTv0_n16_N7ee555223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee555223barEv,_ZThn24_N7ee555223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee555223barEv,_ZThn16_N7ee555223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee555223barEv,_ZTv0_n20_N7ee555223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee555223barEv,_ZThn8_N7ee555223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55522 = { "ee55522", // class name
+ bases_ee55522, 4,
+ &(vtc_ee55522[0]), // expected_vtbl_contents
+ &(vtt_ee55522[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee55522),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55522),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55522),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1177,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee65522 : dd5522 {
+ int e;
+ virtual void foo(); // _ZN7ee655223fooEv
+ virtual void bar(); // _ZN7ee655223barEv
+ ~ee65522(); // tgen
+ ee65522(); // tgen
+};
+//SIG(1 ee65522) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65522 ::foo(){vfunc_called(this, "_ZN7ee655223fooEv");}
+void ee65522 ::bar(){vfunc_called(this, "_ZN7ee655223barEv");}
+ee65522 ::~ee65522(){ note_dtor("ee65522", this);} // tgen
+ee65522 ::ee65522(){ note_ctor("ee65522", this);} // tgen
+
+static void Test_ee65522()
+{
+ extern Class_Descriptor cd_ee65522;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee65522, buf);
+ ee65522 *dp, &lv = *(dp=new (buf) ee65522());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee65522)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65522)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee65522");
+ check_base_class_offset(lv, (bb22*)(cc522*), ABISELECT(32,20), "ee65522");
+ check_base_class_offset(lv, (cc522*)(dd5522*), ABISELECT(16,12), "ee65522");
+ check_base_class_offset(lv, (dd5522*), 0, "ee65522");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65522.e");
+ test_class_info(&lv, &cd_ee65522);
+ dp->~ee65522();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65522(Test_ee65522, "ee65522", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee65522C1Ev();
+extern void _ZN7ee65522D1Ev();
+Name_Map name_map_ee65522[] = {
+ NSPAIR(_ZN7ee65522C1Ev),
+ NSPAIR(_ZN7ee65522D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc522;
+extern VTBL_ENTRY _ZTI5cc522[];
+extern VTBL_ENTRY _ZTV5cc522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc522[];
+extern Class_Descriptor cd_dd5522;
+extern VTBL_ENTRY _ZTI6dd5522[];
+extern VTBL_ENTRY _ZTV6dd5522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5522[];
+static Base_Class bases_ee65522[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc522, 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_dd5522, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65522[];
+extern void _ZN7ee655223barEv();
+extern void _ZN7ee655223fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee655223barEv,_ZTv0_n16_N7ee655223barEv)();
+extern void ABISELECT(_ZThn16_N7ee655223barEv,_ZThn12_N7ee655223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee655223fooEv,_ZTv0_n12_N7ee655223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee655223fooEv,_ZThn20_N7ee655223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee655223barEv,_ZTv0_n16_N7ee655223barEv)();
+extern void ABISELECT(_ZThn32_N7ee655223barEv,_ZThn20_N7ee655223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65522[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65522[0]),
+ (VTBL_ENTRY)&_ZN7ee655223barEv,
+ (VTBL_ENTRY)&_ZN7ee655223fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee655223barEv,_ZTv0_n16_N7ee655223barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee65522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee655223fooEv,_ZTv0_n12_N7ee655223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee655223barEv,_ZTv0_n16_N7ee655223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee65522[];
+extern void _ZN6dd55223barEv();
+static VTBL_ENTRY _tg__ZTV6dd5522__7ee65522[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5522[0]),
+ (VTBL_ENTRY)&_ZN6dd55223barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55223barEv,_ZTv0_n16_N6dd55223barEv)();
+extern void ABISELECT(_ZThn16_N6dd55223barEv,_ZThn12_N6dd55223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc522__6dd5522__7ee65522[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55223barEv,_ZTv0_n16_N6dd55223barEv),
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55223barEv,_ZTv0_n16_N6dd55223barEv)();
+extern void ABISELECT(_ZThn32_N6dd55223barEv,_ZThn20_N6dd55223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd5522__7ee65522[] = {
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55223barEv,_ZTv0_n16_N6dd55223barEv),
+};
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc522__7ee65522[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc522__7ee65522[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+static VTT_ENTRY vtt_ee65522[] = {
+ {&(_ZTV7ee65522[4]), 4,17},
+ {&(_tg__ZTV6dd5522__7ee65522[4]), 4,5},
+ {&(_tg__ZTV5cc522__6dd5522__7ee65522[4]), 4,5},
+ {&(_tg__ZTV4bb22__6dd5522__7ee65522[4]), 4,6},
+ {&(_ZTV7ee65522[10]), 10,17},
+ {&(_ZTV7ee65522[15]), 15,17},
+ {&(_tg__ZTV5cc522__7ee65522[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc522__7ee65522[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee65522[];
+extern VTBL_ENTRY _ZTV7ee65522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65522[];
+static VTBL_ENTRY alt_thunk_names1178[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55223barEv,_ZTv0_n16_N6dd55223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55223barEv,_ZThn20_N6dd55223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55223barEv,_ZThn12_N6dd55223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee655223fooEv,_ZTv0_n12_N7ee655223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee655223fooEv,_ZThn20_N7ee655223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee655223barEv,_ZTv0_n16_N7ee655223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee655223barEv,_ZThn20_N7ee655223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee655223barEv,_ZThn12_N7ee655223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65522 = { "ee65522", // class name
+ bases_ee65522, 4,
+ &(vtc_ee65522[0]), // expected_vtbl_contents
+ &(vtt_ee65522[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee65522),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65522),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65522),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1178,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee75522 : virtual dd5522 {
+ int e;
+ virtual void foo(); // _ZN7ee755223fooEv
+ virtual void bar(); // _ZN7ee755223barEv
+ ~ee75522(); // tgen
+ ee75522(); // tgen
+};
+//SIG(1 ee75522) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75522 ::foo(){vfunc_called(this, "_ZN7ee755223fooEv");}
+void ee75522 ::bar(){vfunc_called(this, "_ZN7ee755223barEv");}
+ee75522 ::~ee75522(){ note_dtor("ee75522", this);} // tgen
+ee75522 ::ee75522(){ note_ctor("ee75522", this);} // tgen
+
+static void Test_ee75522()
+{
+ extern Class_Descriptor cd_ee75522;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee75522, buf);
+ ee75522 *dp, &lv = *(dp=new (buf) ee75522());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee75522)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75522)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(48,24), "ee75522");
+ check_base_class_offset(lv, (bb22*)(cc522*), ABISELECT(48,24), "ee75522");
+ check_base_class_offset(lv, (cc522*)(dd5522*), ABISELECT(32,16), "ee75522");
+ check_base_class_offset(lv, (dd5522*), ABISELECT(16,8), "ee75522");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75522.e");
+ test_class_info(&lv, &cd_ee75522);
+ dp->~ee75522();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75522(Test_ee75522, "ee75522", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee75522C1Ev();
+extern void _ZN7ee75522D1Ev();
+Name_Map name_map_ee75522[] = {
+ NSPAIR(_ZN7ee75522C1Ev),
+ NSPAIR(_ZN7ee75522D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc522;
+extern VTBL_ENTRY _ZTI5cc522[];
+extern VTBL_ENTRY _ZTV5cc522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc522[];
+extern Class_Descriptor cd_dd5522;
+extern VTBL_ENTRY _ZTI6dd5522[];
+extern VTBL_ENTRY _ZTV6dd5522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5522[];
+static Base_Class bases_ee75522[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb22, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc522, 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_dd5522, 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 _ZTI7ee75522[];
+extern void _ZN7ee755223fooEv();
+extern void _ZN7ee755223barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee755223barEv,_ZTv0_n20_N7ee755223barEv)();
+extern void ABISELECT(_ZThn16_N7ee755223barEv,_ZThn8_N7ee755223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee755223barEv,_ZTv0_n16_N7ee755223barEv)();
+extern void ABISELECT(_ZThn32_N7ee755223barEv,_ZThn16_N7ee755223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee755223fooEv,_ZTv0_n12_N7ee755223fooEv)();
+extern void ABISELECT(_ZThn48_N7ee755223fooEv,_ZThn24_N7ee755223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee755223barEv,_ZTv0_n16_N7ee755223barEv)();
+extern void ABISELECT(_ZThn48_N7ee755223barEv,_ZThn24_N7ee755223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75522[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75522[0]),
+ (VTBL_ENTRY)&_ZN7ee755223fooEv,
+ (VTBL_ENTRY)&_ZN7ee755223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee755223barEv,_ZTv0_n20_N7ee755223barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee755223barEv,_ZTv0_n16_N7ee755223barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee75522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee755223fooEv,_ZTv0_n12_N7ee755223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee755223barEv,_ZTv0_n16_N7ee755223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee75522[];
+extern void _ZN6dd55223barEv();
+static VTBL_ENTRY _tg__ZTV6dd5522__7ee75522[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5522[0]),
+ (VTBL_ENTRY)&_ZN6dd55223barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55223barEv,_ZTv0_n16_N6dd55223barEv)();
+extern void ABISELECT(_ZThn16_N6dd55223barEv,_ZThn8_N6dd55223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc522__6dd5522__7ee75522[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55223barEv,_ZTv0_n16_N6dd55223barEv),
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55223barEv,_ZTv0_n16_N6dd55223barEv)();
+extern void ABISELECT(_ZThn32_N6dd55223barEv,_ZThn16_N6dd55223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd5522__7ee75522[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55223barEv,_ZTv0_n16_N6dd55223barEv),
+};
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc522__7ee75522[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc522__7ee75522[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+static VTT_ENTRY vtt_ee75522[] = {
+ {&(_ZTV7ee75522[5]), 5,24},
+ {&(_ZTV7ee75522[12]), 12,24},
+ {&(_ZTV7ee75522[17]), 17,24},
+ {&(_ZTV7ee75522[22]), 22,24},
+ {&(_tg__ZTV6dd5522__7ee75522[4]), 4,5},
+ {&(_tg__ZTV5cc522__6dd5522__7ee75522[4]), 4,5},
+ {&(_tg__ZTV4bb22__6dd5522__7ee75522[4]), 4,6},
+ {&(_tg__ZTV5cc522__7ee75522[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc522__7ee75522[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee75522[];
+extern VTBL_ENTRY _ZTV7ee75522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75522[];
+static VTBL_ENTRY alt_thunk_names1179[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55223barEv,_ZTv0_n16_N6dd55223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55223barEv,_ZThn16_N6dd55223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55223barEv,_ZThn8_N6dd55223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee755223fooEv,_ZTv0_n12_N7ee755223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee755223fooEv,_ZThn24_N7ee755223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee755223barEv,_ZTv0_n16_N7ee755223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee755223barEv,_ZThn24_N7ee755223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee755223barEv,_ZThn16_N7ee755223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee755223barEv,_ZTv0_n20_N7ee755223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee755223barEv,_ZThn8_N7ee755223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75522 = { "ee75522", // class name
+ bases_ee75522, 4,
+ &(vtc_ee75522[0]), // expected_vtbl_contents
+ &(vtt_ee75522[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee75522),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75522),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75522),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1179,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd6522 : cc522 {
+ int d;
+ virtual void bar(); // _ZN6dd65223barEv
+ virtual void foo(); // _ZN6dd65223fooEv
+ ~dd6522(); // tgen
+ dd6522(); // tgen
+};
+//SIG(-1 dd6522) C1{ BC2{ VBC3{ BC4{ v2 v1 Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void dd6522 ::bar(){vfunc_called(this, "_ZN6dd65223barEv");}
+void dd6522 ::foo(){vfunc_called(this, "_ZN6dd65223fooEv");}
+dd6522 ::~dd6522(){ note_dtor("dd6522", this);} // tgen
+dd6522 ::dd6522(){ note_ctor("dd6522", this);} // tgen
+
+static void Test_dd6522()
+{
+ extern Class_Descriptor cd_dd6522;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd6522, buf);
+ dd6522 *dp, &lv = *(dp=new (buf) dd6522());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd6522)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6522)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(16,12), "dd6522");
+ check_base_class_offset(lv, (bb22*)(cc522*), ABISELECT(16,12), "dd6522");
+ check_base_class_offset(lv, (cc522*), 0, "dd6522");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd6522.d");
+ test_class_info(&lv, &cd_dd6522);
+ dp->~dd6522();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6522(Test_dd6522, "dd6522", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd6522C1Ev();
+extern void _ZN6dd6522D1Ev();
+Name_Map name_map_dd6522[] = {
+ NSPAIR(_ZN6dd6522C1Ev),
+ NSPAIR(_ZN6dd6522D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc522;
+extern VTBL_ENTRY _ZTI5cc522[];
+extern VTBL_ENTRY _ZTV5cc522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc522[];
+static Base_Class bases_dd6522[] = {
+ // 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_bb22, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc522, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd6522[];
+extern void _ZN6dd65223barEv();
+extern void _ZN6dd65223fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd65223fooEv,_ZTv0_n12_N6dd65223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd65223fooEv,_ZThn12_N6dd65223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65223barEv,_ZTv0_n16_N6dd65223barEv)();
+extern void ABISELECT(_ZThn16_N6dd65223barEv,_ZThn12_N6dd65223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd6522[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6522[0]),
+ (VTBL_ENTRY)&_ZN6dd65223barEv,
+ (VTBL_ENTRY)&_ZN6dd65223fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65223fooEv,_ZTv0_n12_N6dd65223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65223barEv,_ZTv0_n16_N6dd65223barEv),
+};
+extern VTBL_ENTRY _ZTV6dd6522[];
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc522__6dd6522[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn12_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc522__6dd6522[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+static VTT_ENTRY vtt_dd6522[] = {
+ {&(_ZTV6dd6522[3]), 3,11},
+ {&(_tg__ZTV5cc522__6dd6522[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc522__6dd6522[4]), 4,6},
+ {&(_ZTV6dd6522[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd6522[];
+extern VTBL_ENTRY _ZTV6dd6522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6522[];
+static VTBL_ENTRY alt_thunk_names1180[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn12_N5cc5223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd65223barEv,_ZTv0_n16_N6dd65223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65223barEv,_ZThn12_N6dd65223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65223fooEv,_ZTv0_n12_N6dd65223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65223fooEv,_ZThn12_N6dd65223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd6522 = { "dd6522", // class name
+ bases_dd6522, 3,
+ &(vtc_dd6522[0]), // expected_vtbl_contents
+ &(vtt_dd6522[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd6522),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6522),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd6522),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1180,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee06522 : dd6522 {
+ int e;
+ ~ee06522(); // tgen
+ ee06522(); // tgen
+};
+//SIG(1 ee06522) C1{ BC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee06522 ::~ee06522(){ note_dtor("ee06522", this);} // tgen
+ee06522 ::ee06522(){ note_ctor("ee06522", this);} // tgen
+
+static void Test_ee06522()
+{
+ extern Class_Descriptor cd_ee06522;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee06522, buf);
+ ee06522 *dp, &lv = *(dp=new (buf) ee06522());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee06522)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06522)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(24,16), "ee06522");
+ check_base_class_offset(lv, (bb22*)(cc522*)(dd6522*), ABISELECT(24,16), "ee06522");
+ check_base_class_offset(lv, (cc522*)(dd6522*), 0, "ee06522");
+ check_base_class_offset(lv, (dd6522*), 0, "ee06522");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee06522.e");
+ test_class_info(&lv, &cd_ee06522);
+ dp->~ee06522();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06522(Test_ee06522, "ee06522", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee06522C1Ev();
+extern void _ZN7ee06522D1Ev();
+Name_Map name_map_ee06522[] = {
+ NSPAIR(_ZN7ee06522C1Ev),
+ NSPAIR(_ZN7ee06522D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc522;
+extern VTBL_ENTRY _ZTI5cc522[];
+extern VTBL_ENTRY _ZTV5cc522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc522[];
+extern Class_Descriptor cd_dd6522;
+extern VTBL_ENTRY _ZTI6dd6522[];
+extern VTBL_ENTRY _ZTV6dd6522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6522[];
+static Base_Class bases_ee06522[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc522, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6522, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee06522[];
+extern void _ZN6dd65223barEv();
+extern void _ZN6dd65223fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd65223fooEv,_ZTv0_n12_N6dd65223fooEv)();
+extern void ABISELECT(_ZThn24_N6dd65223fooEv,_ZThn16_N6dd65223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65223barEv,_ZTv0_n16_N6dd65223barEv)();
+extern void ABISELECT(_ZThn24_N6dd65223barEv,_ZThn16_N6dd65223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee06522[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06522[0]),
+ (VTBL_ENTRY)&_ZN6dd65223barEv,
+ (VTBL_ENTRY)&_ZN6dd65223fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee06522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65223fooEv,_ZTv0_n12_N6dd65223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65223barEv,_ZTv0_n16_N6dd65223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee06522[];
+extern void _ZN6dd65223barEv();
+extern void _ZN6dd65223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6522__7ee06522[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6522[0]),
+ (VTBL_ENTRY)&_ZN6dd65223barEv,
+ (VTBL_ENTRY)&_ZN6dd65223fooEv,
+};
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc5226dd6522__7ee06522[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn24_N5cc5223barEv,_ZThn16_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc5226dd6522__7ee06522[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd65223fooEv,_ZTv0_n12_N6dd65223fooEv)();
+extern void ABISELECT(_ZThn24_N6dd65223fooEv,_ZThn16_N6dd65223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65223barEv,_ZTv0_n16_N6dd65223barEv)();
+extern void ABISELECT(_ZThn24_N6dd65223barEv,_ZThn16_N6dd65223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd6522__7ee06522[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65223fooEv,_ZTv0_n12_N6dd65223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65223barEv,_ZTv0_n16_N6dd65223barEv),
+};
+static VTT_ENTRY vtt_ee06522[] = {
+ {&(_ZTV7ee06522[3]), 3,11},
+ {&(_tg__ZTV6dd6522__7ee06522[3]), 3,5},
+ {&(_tg__ZTV5cc5226dd6522__7ee06522[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc5226dd6522__7ee06522[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd6522__7ee06522[4]), 4,6},
+ {&(_ZTV7ee06522[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee06522[];
+extern VTBL_ENTRY _ZTV7ee06522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee06522[];
+static VTBL_ENTRY alt_thunk_names1181[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5223barEv,_ZThn16_N5cc5223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd65223barEv,_ZTv0_n16_N6dd65223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65223barEv,_ZThn16_N6dd65223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65223barEv,_ZThn16_N6dd65223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65223fooEv,_ZTv0_n12_N6dd65223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65223fooEv,_ZThn16_N6dd65223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65223fooEv,_ZThn16_N6dd65223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee06522 = { "ee06522", // class name
+ bases_ee06522, 4,
+ &(vtc_ee06522[0]), // expected_vtbl_contents
+ &(vtt_ee06522[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee06522),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06522),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee06522),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1181,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee16522 : virtual dd6522 {
+ int e;
+ ~ee16522(); // tgen
+ ee16522(); // tgen
+};
+//SIG(1 ee16522) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee16522 ::~ee16522(){ note_dtor("ee16522", this);} // tgen
+ee16522 ::ee16522(){ note_ctor("ee16522", this);} // tgen
+
+static void Test_ee16522()
+{
+ extern Class_Descriptor cd_ee16522;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee16522, buf);
+ ee16522 *dp, &lv = *(dp=new (buf) ee16522());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee16522)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16522)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee16522");
+ check_base_class_offset(lv, (bb22*)(cc522*)(dd6522*), ABISELECT(32,20), "ee16522");
+ check_base_class_offset(lv, (cc522*)(dd6522*), ABISELECT(16,8), "ee16522");
+ check_base_class_offset(lv, (dd6522*), ABISELECT(16,8), "ee16522");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16522.e");
+ test_class_info(&lv, &cd_ee16522);
+ dp->~ee16522();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16522(Test_ee16522, "ee16522", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee16522C1Ev();
+extern void _ZN7ee16522D1Ev();
+Name_Map name_map_ee16522[] = {
+ NSPAIR(_ZN7ee16522C1Ev),
+ NSPAIR(_ZN7ee16522D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc522;
+extern VTBL_ENTRY _ZTI5cc522[];
+extern VTBL_ENTRY _ZTV5cc522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc522[];
+extern Class_Descriptor cd_dd6522;
+extern VTBL_ENTRY _ZTI6dd6522[];
+extern VTBL_ENTRY _ZTV6dd6522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6522[];
+static Base_Class bases_ee16522[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc522, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6522, 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 _ZTI7ee16522[];
+extern void _ZN6dd65223barEv();
+extern void _ZN6dd65223fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd65223fooEv,_ZTv0_n12_N6dd65223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd65223fooEv,_ZThn12_N6dd65223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65223barEv,_ZTv0_n16_N6dd65223barEv)();
+extern void ABISELECT(_ZThn16_N6dd65223barEv,_ZThn12_N6dd65223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee16522[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16522[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16522[0]),
+ (VTBL_ENTRY)&_ZN6dd65223barEv,
+ (VTBL_ENTRY)&_ZN6dd65223fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee16522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65223fooEv,_ZTv0_n12_N6dd65223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65223barEv,_ZTv0_n16_N6dd65223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee16522[];
+extern void _ZN6dd65223barEv();
+extern void _ZN6dd65223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6522__7ee16522[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6522[0]),
+ (VTBL_ENTRY)&_ZN6dd65223barEv,
+ (VTBL_ENTRY)&_ZN6dd65223fooEv,
+};
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc5226dd6522__7ee16522[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn12_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc5226dd6522__7ee16522[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd65223fooEv,_ZTv0_n12_N6dd65223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd65223fooEv,_ZThn12_N6dd65223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65223barEv,_ZTv0_n16_N6dd65223barEv)();
+extern void ABISELECT(_ZThn16_N6dd65223barEv,_ZThn12_N6dd65223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd6522__7ee16522[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65223fooEv,_ZTv0_n12_N6dd65223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65223barEv,_ZTv0_n16_N6dd65223barEv),
+};
+static VTT_ENTRY vtt_ee16522[] = {
+ {&(_ZTV7ee16522[4]), 4,17},
+ {&(_ZTV7ee16522[9]), 9,17},
+ {&(_ZTV7ee16522[15]), 15,17},
+ {&(_tg__ZTV6dd6522__7ee16522[3]), 3,5},
+ {&(_tg__ZTV5cc5226dd6522__7ee16522[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc5226dd6522__7ee16522[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd6522__7ee16522[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee16522[];
+extern VTBL_ENTRY _ZTV7ee16522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16522[];
+static VTBL_ENTRY alt_thunk_names1182[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn12_N5cc5223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd65223barEv,_ZTv0_n16_N6dd65223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65223barEv,_ZThn12_N6dd65223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65223barEv,_ZThn12_N6dd65223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65223fooEv,_ZTv0_n12_N6dd65223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65223fooEv,_ZThn12_N6dd65223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65223fooEv,_ZThn12_N6dd65223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee16522 = { "ee16522", // class name
+ bases_ee16522, 4,
+ &(vtc_ee16522[0]), // expected_vtbl_contents
+ &(vtt_ee16522[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee16522),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16522),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16522),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1182,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee26522 : dd6522 {
+ int e;
+ virtual void foo(); // _ZN7ee265223fooEv
+ ~ee26522(); // tgen
+ ee26522(); // tgen
+};
+//SIG(1 ee26522) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26522 ::foo(){vfunc_called(this, "_ZN7ee265223fooEv");}
+ee26522 ::~ee26522(){ note_dtor("ee26522", this);} // tgen
+ee26522 ::ee26522(){ note_ctor("ee26522", this);} // tgen
+
+static void Test_ee26522()
+{
+ extern Class_Descriptor cd_ee26522;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee26522, buf);
+ ee26522 *dp, &lv = *(dp=new (buf) ee26522());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee26522)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26522)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(24,16), "ee26522");
+ check_base_class_offset(lv, (bb22*)(cc522*)(dd6522*), ABISELECT(24,16), "ee26522");
+ check_base_class_offset(lv, (cc522*)(dd6522*), 0, "ee26522");
+ check_base_class_offset(lv, (dd6522*), 0, "ee26522");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee26522.e");
+ test_class_info(&lv, &cd_ee26522);
+ dp->~ee26522();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26522(Test_ee26522, "ee26522", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee26522C1Ev();
+extern void _ZN7ee26522D1Ev();
+Name_Map name_map_ee26522[] = {
+ NSPAIR(_ZN7ee26522C1Ev),
+ NSPAIR(_ZN7ee26522D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc522;
+extern VTBL_ENTRY _ZTI5cc522[];
+extern VTBL_ENTRY _ZTV5cc522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc522[];
+extern Class_Descriptor cd_dd6522;
+extern VTBL_ENTRY _ZTI6dd6522[];
+extern VTBL_ENTRY _ZTV6dd6522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6522[];
+static Base_Class bases_ee26522[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc522, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6522, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee26522[];
+extern void _ZN6dd65223barEv();
+extern void _ZN7ee265223fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee265223fooEv,_ZTv0_n12_N7ee265223fooEv)();
+extern void ABISELECT(_ZThn24_N7ee265223fooEv,_ZThn16_N7ee265223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65223barEv,_ZTv0_n16_N6dd65223barEv)();
+extern void ABISELECT(_ZThn24_N6dd65223barEv,_ZThn16_N6dd65223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee26522[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26522[0]),
+ (VTBL_ENTRY)&_ZN6dd65223barEv,
+ (VTBL_ENTRY)&_ZN7ee265223fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee26522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee265223fooEv,_ZTv0_n12_N7ee265223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65223barEv,_ZTv0_n16_N6dd65223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee26522[];
+extern void _ZN6dd65223barEv();
+extern void _ZN6dd65223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6522__7ee26522[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6522[0]),
+ (VTBL_ENTRY)&_ZN6dd65223barEv,
+ (VTBL_ENTRY)&_ZN6dd65223fooEv,
+};
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc5226dd6522__7ee26522[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn24_N5cc5223barEv,_ZThn16_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc5226dd6522__7ee26522[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd65223fooEv,_ZTv0_n12_N6dd65223fooEv)();
+extern void ABISELECT(_ZThn24_N6dd65223fooEv,_ZThn16_N6dd65223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65223barEv,_ZTv0_n16_N6dd65223barEv)();
+extern void ABISELECT(_ZThn24_N6dd65223barEv,_ZThn16_N6dd65223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd6522__7ee26522[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65223fooEv,_ZTv0_n12_N6dd65223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65223barEv,_ZTv0_n16_N6dd65223barEv),
+};
+static VTT_ENTRY vtt_ee26522[] = {
+ {&(_ZTV7ee26522[3]), 3,11},
+ {&(_tg__ZTV6dd6522__7ee26522[3]), 3,5},
+ {&(_tg__ZTV5cc5226dd6522__7ee26522[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc5226dd6522__7ee26522[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd6522__7ee26522[4]), 4,6},
+ {&(_ZTV7ee26522[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee26522[];
+extern VTBL_ENTRY _ZTV7ee26522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee26522[];
+static VTBL_ENTRY alt_thunk_names1183[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65223fooEv,_ZTv0_n12_N6dd65223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65223fooEv,_ZThn16_N6dd65223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5223barEv,_ZThn16_N5cc5223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd65223barEv,_ZTv0_n16_N6dd65223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65223barEv,_ZThn16_N6dd65223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65223barEv,_ZThn16_N6dd65223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee265223fooEv,_ZTv0_n12_N7ee265223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee265223fooEv,_ZThn16_N7ee265223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee26522 = { "ee26522", // class name
+ bases_ee26522, 4,
+ &(vtc_ee26522[0]), // expected_vtbl_contents
+ &(vtt_ee26522[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee26522),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26522),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee26522),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1183,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee36522 : virtual dd6522 {
+ int e;
+ virtual void foo(); // _ZN7ee365223fooEv
+ ~ee36522(); // tgen
+ ee36522(); // tgen
+};
+//SIG(1 ee36522) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36522 ::foo(){vfunc_called(this, "_ZN7ee365223fooEv");}
+ee36522 ::~ee36522(){ note_dtor("ee36522", this);} // tgen
+ee36522 ::ee36522(){ note_ctor("ee36522", this);} // tgen
+
+static void Test_ee36522()
+{
+ extern Class_Descriptor cd_ee36522;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee36522, buf);
+ ee36522 *dp, &lv = *(dp=new (buf) ee36522());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee36522)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36522)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee36522");
+ check_base_class_offset(lv, (bb22*)(cc522*)(dd6522*), ABISELECT(32,20), "ee36522");
+ check_base_class_offset(lv, (cc522*)(dd6522*), ABISELECT(16,8), "ee36522");
+ check_base_class_offset(lv, (dd6522*), ABISELECT(16,8), "ee36522");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36522.e");
+ test_class_info(&lv, &cd_ee36522);
+ dp->~ee36522();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36522(Test_ee36522, "ee36522", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee36522C1Ev();
+extern void _ZN7ee36522D1Ev();
+Name_Map name_map_ee36522[] = {
+ NSPAIR(_ZN7ee36522C1Ev),
+ NSPAIR(_ZN7ee36522D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc522;
+extern VTBL_ENTRY _ZTI5cc522[];
+extern VTBL_ENTRY _ZTV5cc522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc522[];
+extern Class_Descriptor cd_dd6522;
+extern VTBL_ENTRY _ZTI6dd6522[];
+extern VTBL_ENTRY _ZTV6dd6522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6522[];
+static Base_Class bases_ee36522[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc522, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6522, 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 _ZTI7ee36522[];
+extern void _ZN7ee365223fooEv();
+extern void _ZN6dd65223barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee365223fooEv,_ZTv0_n20_N7ee365223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee365223fooEv,_ZThn8_N7ee365223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee365223fooEv,_ZTv0_n12_N7ee365223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee365223fooEv,_ZThn20_N7ee365223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65223barEv,_ZTv0_n16_N6dd65223barEv)();
+extern void ABISELECT(_ZThn16_N6dd65223barEv,_ZThn12_N6dd65223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee36522[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36522[0]),
+ (VTBL_ENTRY)&_ZN7ee365223fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36522[0]),
+ (VTBL_ENTRY)&_ZN6dd65223barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee365223fooEv,_ZTv0_n20_N7ee365223fooEv),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee36522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee365223fooEv,_ZTv0_n12_N7ee365223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65223barEv,_ZTv0_n16_N6dd65223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee36522[];
+extern void _ZN6dd65223barEv();
+extern void _ZN6dd65223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6522__7ee36522[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6522[0]),
+ (VTBL_ENTRY)&_ZN6dd65223barEv,
+ (VTBL_ENTRY)&_ZN6dd65223fooEv,
+};
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc5226dd6522__7ee36522[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn12_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc5226dd6522__7ee36522[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd65223fooEv,_ZTv0_n12_N6dd65223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd65223fooEv,_ZThn12_N6dd65223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65223barEv,_ZTv0_n16_N6dd65223barEv)();
+extern void ABISELECT(_ZThn16_N6dd65223barEv,_ZThn12_N6dd65223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd6522__7ee36522[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65223fooEv,_ZTv0_n12_N6dd65223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65223barEv,_ZTv0_n16_N6dd65223barEv),
+};
+static VTT_ENTRY vtt_ee36522[] = {
+ {&(_ZTV7ee36522[4]), 4,18},
+ {&(_ZTV7ee36522[10]), 10,18},
+ {&(_ZTV7ee36522[16]), 16,18},
+ {&(_tg__ZTV6dd6522__7ee36522[3]), 3,5},
+ {&(_tg__ZTV5cc5226dd6522__7ee36522[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc5226dd6522__7ee36522[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd6522__7ee36522[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee36522[];
+extern VTBL_ENTRY _ZTV7ee36522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36522[];
+static VTBL_ENTRY alt_thunk_names1184[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65223fooEv,_ZTv0_n12_N6dd65223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65223fooEv,_ZThn12_N6dd65223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn12_N5cc5223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd65223barEv,_ZTv0_n16_N6dd65223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65223barEv,_ZThn12_N6dd65223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65223barEv,_ZThn12_N6dd65223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee365223fooEv,_ZTv0_n12_N7ee365223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee365223fooEv,_ZThn20_N7ee365223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee365223fooEv,_ZTv0_n20_N7ee365223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee365223fooEv,_ZThn8_N7ee365223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36522 = { "ee36522", // class name
+ bases_ee36522, 4,
+ &(vtc_ee36522[0]), // expected_vtbl_contents
+ &(vtt_ee36522[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee36522),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36522),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36522),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1184,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee46522 : dd6522 {
+ int e;
+ virtual void bar(); // _ZN7ee465223barEv
+ ~ee46522(); // tgen
+ ee46522(); // tgen
+};
+//SIG(1 ee46522) C1{ BC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46522 ::bar(){vfunc_called(this, "_ZN7ee465223barEv");}
+ee46522 ::~ee46522(){ note_dtor("ee46522", this);} // tgen
+ee46522 ::ee46522(){ note_ctor("ee46522", this);} // tgen
+
+static void Test_ee46522()
+{
+ extern Class_Descriptor cd_ee46522;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee46522, buf);
+ ee46522 *dp, &lv = *(dp=new (buf) ee46522());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee46522)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46522)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(24,16), "ee46522");
+ check_base_class_offset(lv, (bb22*)(cc522*)(dd6522*), ABISELECT(24,16), "ee46522");
+ check_base_class_offset(lv, (cc522*)(dd6522*), 0, "ee46522");
+ check_base_class_offset(lv, (dd6522*), 0, "ee46522");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee46522.e");
+ test_class_info(&lv, &cd_ee46522);
+ dp->~ee46522();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46522(Test_ee46522, "ee46522", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee46522C1Ev();
+extern void _ZN7ee46522D1Ev();
+Name_Map name_map_ee46522[] = {
+ NSPAIR(_ZN7ee46522C1Ev),
+ NSPAIR(_ZN7ee46522D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc522;
+extern VTBL_ENTRY _ZTI5cc522[];
+extern VTBL_ENTRY _ZTV5cc522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc522[];
+extern Class_Descriptor cd_dd6522;
+extern VTBL_ENTRY _ZTI6dd6522[];
+extern VTBL_ENTRY _ZTV6dd6522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6522[];
+static Base_Class bases_ee46522[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc522, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6522, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee46522[];
+extern void _ZN7ee465223barEv();
+extern void _ZN6dd65223fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd65223fooEv,_ZTv0_n12_N6dd65223fooEv)();
+extern void ABISELECT(_ZThn24_N6dd65223fooEv,_ZThn16_N6dd65223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee465223barEv,_ZTv0_n16_N7ee465223barEv)();
+extern void ABISELECT(_ZThn24_N7ee465223barEv,_ZThn16_N7ee465223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee46522[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46522[0]),
+ (VTBL_ENTRY)&_ZN7ee465223barEv,
+ (VTBL_ENTRY)&_ZN6dd65223fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee46522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65223fooEv,_ZTv0_n12_N6dd65223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee465223barEv,_ZTv0_n16_N7ee465223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee46522[];
+extern void _ZN6dd65223barEv();
+extern void _ZN6dd65223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6522__7ee46522[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6522[0]),
+ (VTBL_ENTRY)&_ZN6dd65223barEv,
+ (VTBL_ENTRY)&_ZN6dd65223fooEv,
+};
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc5226dd6522__7ee46522[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn24_N5cc5223barEv,_ZThn16_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc5226dd6522__7ee46522[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd65223fooEv,_ZTv0_n12_N6dd65223fooEv)();
+extern void ABISELECT(_ZThn24_N6dd65223fooEv,_ZThn16_N6dd65223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65223barEv,_ZTv0_n16_N6dd65223barEv)();
+extern void ABISELECT(_ZThn24_N6dd65223barEv,_ZThn16_N6dd65223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd6522__7ee46522[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65223fooEv,_ZTv0_n12_N6dd65223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65223barEv,_ZTv0_n16_N6dd65223barEv),
+};
+static VTT_ENTRY vtt_ee46522[] = {
+ {&(_ZTV7ee46522[3]), 3,11},
+ {&(_tg__ZTV6dd6522__7ee46522[3]), 3,5},
+ {&(_tg__ZTV5cc5226dd6522__7ee46522[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc5226dd6522__7ee46522[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd6522__7ee46522[4]), 4,6},
+ {&(_ZTV7ee46522[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee46522[];
+extern VTBL_ENTRY _ZTV7ee46522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee46522[];
+static VTBL_ENTRY alt_thunk_names1185[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd65223barEv,_ZTv0_n16_N6dd65223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65223barEv,_ZThn16_N6dd65223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5223barEv,_ZThn16_N5cc5223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee465223barEv,_ZTv0_n16_N7ee465223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee465223barEv,_ZThn16_N7ee465223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65223fooEv,_ZTv0_n12_N6dd65223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65223fooEv,_ZThn16_N6dd65223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65223fooEv,_ZThn16_N6dd65223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee46522 = { "ee46522", // class name
+ bases_ee46522, 4,
+ &(vtc_ee46522[0]), // expected_vtbl_contents
+ &(vtt_ee46522[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee46522),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46522),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee46522),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1185,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee56522 : virtual dd6522 {
+ int e;
+ virtual void bar(); // _ZN7ee565223barEv
+ ~ee56522(); // tgen
+ ee56522(); // tgen
+};
+//SIG(1 ee56522) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56522 ::bar(){vfunc_called(this, "_ZN7ee565223barEv");}
+ee56522 ::~ee56522(){ note_dtor("ee56522", this);} // tgen
+ee56522 ::ee56522(){ note_ctor("ee56522", this);} // tgen
+
+static void Test_ee56522()
+{
+ extern Class_Descriptor cd_ee56522;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee56522, buf);
+ ee56522 *dp, &lv = *(dp=new (buf) ee56522());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee56522)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56522)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee56522");
+ check_base_class_offset(lv, (bb22*)(cc522*)(dd6522*), ABISELECT(32,20), "ee56522");
+ check_base_class_offset(lv, (cc522*)(dd6522*), ABISELECT(16,8), "ee56522");
+ check_base_class_offset(lv, (dd6522*), ABISELECT(16,8), "ee56522");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56522.e");
+ test_class_info(&lv, &cd_ee56522);
+ dp->~ee56522();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56522(Test_ee56522, "ee56522", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee56522C1Ev();
+extern void _ZN7ee56522D1Ev();
+Name_Map name_map_ee56522[] = {
+ NSPAIR(_ZN7ee56522C1Ev),
+ NSPAIR(_ZN7ee56522D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc522;
+extern VTBL_ENTRY _ZTI5cc522[];
+extern VTBL_ENTRY _ZTV5cc522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc522[];
+extern Class_Descriptor cd_dd6522;
+extern VTBL_ENTRY _ZTI6dd6522[];
+extern VTBL_ENTRY _ZTV6dd6522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6522[];
+static Base_Class bases_ee56522[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc522, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6522, 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 _ZTI7ee56522[];
+extern void _ZN7ee565223barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee565223barEv,_ZTv0_n16_N7ee565223barEv)();
+extern void ABISELECT(_ZThn16_N7ee565223barEv,_ZThn8_N7ee565223barEv)() __attribute__((weak));
+extern void _ZN6dd65223fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd65223fooEv,_ZTv0_n12_N6dd65223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd65223fooEv,_ZThn12_N6dd65223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee565223barEv,_ZTv0_n16_N7ee565223barEv)();
+extern void ABISELECT(_ZThn32_N7ee565223barEv,_ZThn20_N7ee565223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56522[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56522[0]),
+ (VTBL_ENTRY)&_ZN7ee565223barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee565223barEv,_ZTv0_n16_N7ee565223barEv),
+ (VTBL_ENTRY)&_ZN6dd65223fooEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee56522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65223fooEv,_ZTv0_n12_N6dd65223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee565223barEv,_ZTv0_n16_N7ee565223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee56522[];
+extern void _ZN6dd65223barEv();
+extern void _ZN6dd65223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6522__7ee56522[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6522[0]),
+ (VTBL_ENTRY)&_ZN6dd65223barEv,
+ (VTBL_ENTRY)&_ZN6dd65223fooEv,
+};
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc5226dd6522__7ee56522[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn12_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc5226dd6522__7ee56522[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd65223fooEv,_ZTv0_n12_N6dd65223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd65223fooEv,_ZThn12_N6dd65223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65223barEv,_ZTv0_n16_N6dd65223barEv)();
+extern void ABISELECT(_ZThn16_N6dd65223barEv,_ZThn12_N6dd65223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd6522__7ee56522[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65223fooEv,_ZTv0_n12_N6dd65223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65223barEv,_ZTv0_n16_N6dd65223barEv),
+};
+static VTT_ENTRY vtt_ee56522[] = {
+ {&(_ZTV7ee56522[4]), 4,18},
+ {&(_ZTV7ee56522[10]), 10,18},
+ {&(_ZTV7ee56522[16]), 16,18},
+ {&(_tg__ZTV6dd6522__7ee56522[3]), 3,5},
+ {&(_tg__ZTV5cc5226dd6522__7ee56522[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc5226dd6522__7ee56522[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd6522__7ee56522[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee56522[];
+extern VTBL_ENTRY _ZTV7ee56522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56522[];
+static VTBL_ENTRY alt_thunk_names1186[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd65223barEv,_ZTv0_n16_N6dd65223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65223barEv,_ZThn12_N6dd65223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn12_N5cc5223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65223fooEv,_ZTv0_n12_N6dd65223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65223fooEv,_ZThn12_N6dd65223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65223fooEv,_ZThn12_N6dd65223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee565223barEv,_ZTv0_n16_N7ee565223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee565223barEv,_ZThn20_N7ee565223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee565223barEv,_ZThn8_N7ee565223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56522 = { "ee56522", // class name
+ bases_ee56522, 4,
+ &(vtc_ee56522[0]), // expected_vtbl_contents
+ &(vtt_ee56522[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee56522),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56522),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56522),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1186,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee66522 : dd6522 {
+ int e;
+ virtual void foo(); // _ZN7ee665223fooEv
+ virtual void bar(); // _ZN7ee665223barEv
+ ~ee66522(); // tgen
+ ee66522(); // tgen
+};
+//SIG(1 ee66522) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66522 ::foo(){vfunc_called(this, "_ZN7ee665223fooEv");}
+void ee66522 ::bar(){vfunc_called(this, "_ZN7ee665223barEv");}
+ee66522 ::~ee66522(){ note_dtor("ee66522", this);} // tgen
+ee66522 ::ee66522(){ note_ctor("ee66522", this);} // tgen
+
+static void Test_ee66522()
+{
+ extern Class_Descriptor cd_ee66522;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee66522, buf);
+ ee66522 *dp, &lv = *(dp=new (buf) ee66522());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee66522)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66522)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(24,16), "ee66522");
+ check_base_class_offset(lv, (bb22*)(cc522*)(dd6522*), ABISELECT(24,16), "ee66522");
+ check_base_class_offset(lv, (cc522*)(dd6522*), 0, "ee66522");
+ check_base_class_offset(lv, (dd6522*), 0, "ee66522");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee66522.e");
+ test_class_info(&lv, &cd_ee66522);
+ dp->~ee66522();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66522(Test_ee66522, "ee66522", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee66522C1Ev();
+extern void _ZN7ee66522D1Ev();
+Name_Map name_map_ee66522[] = {
+ NSPAIR(_ZN7ee66522C1Ev),
+ NSPAIR(_ZN7ee66522D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc522;
+extern VTBL_ENTRY _ZTI5cc522[];
+extern VTBL_ENTRY _ZTV5cc522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc522[];
+extern Class_Descriptor cd_dd6522;
+extern VTBL_ENTRY _ZTI6dd6522[];
+extern VTBL_ENTRY _ZTV6dd6522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6522[];
+static Base_Class bases_ee66522[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc522, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6522, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee66522[];
+extern void _ZN7ee665223barEv();
+extern void _ZN7ee665223fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee665223fooEv,_ZTv0_n12_N7ee665223fooEv)();
+extern void ABISELECT(_ZThn24_N7ee665223fooEv,_ZThn16_N7ee665223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee665223barEv,_ZTv0_n16_N7ee665223barEv)();
+extern void ABISELECT(_ZThn24_N7ee665223barEv,_ZThn16_N7ee665223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee66522[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66522[0]),
+ (VTBL_ENTRY)&_ZN7ee665223barEv,
+ (VTBL_ENTRY)&_ZN7ee665223fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee66522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee665223fooEv,_ZTv0_n12_N7ee665223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee665223barEv,_ZTv0_n16_N7ee665223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee66522[];
+extern void _ZN6dd65223barEv();
+extern void _ZN6dd65223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6522__7ee66522[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6522[0]),
+ (VTBL_ENTRY)&_ZN6dd65223barEv,
+ (VTBL_ENTRY)&_ZN6dd65223fooEv,
+};
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc5226dd6522__7ee66522[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn24_N5cc5223barEv,_ZThn16_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc5226dd6522__7ee66522[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd65223fooEv,_ZTv0_n12_N6dd65223fooEv)();
+extern void ABISELECT(_ZThn24_N6dd65223fooEv,_ZThn16_N6dd65223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65223barEv,_ZTv0_n16_N6dd65223barEv)();
+extern void ABISELECT(_ZThn24_N6dd65223barEv,_ZThn16_N6dd65223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd6522__7ee66522[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65223fooEv,_ZTv0_n12_N6dd65223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65223barEv,_ZTv0_n16_N6dd65223barEv),
+};
+static VTT_ENTRY vtt_ee66522[] = {
+ {&(_ZTV7ee66522[3]), 3,11},
+ {&(_tg__ZTV6dd6522__7ee66522[3]), 3,5},
+ {&(_tg__ZTV5cc5226dd6522__7ee66522[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc5226dd6522__7ee66522[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd6522__7ee66522[4]), 4,6},
+ {&(_ZTV7ee66522[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee66522[];
+extern VTBL_ENTRY _ZTV7ee66522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee66522[];
+static VTBL_ENTRY alt_thunk_names1187[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd65223barEv,_ZTv0_n16_N6dd65223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65223barEv,_ZThn16_N6dd65223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65223fooEv,_ZTv0_n12_N6dd65223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65223fooEv,_ZThn16_N6dd65223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5223barEv,_ZThn16_N5cc5223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee665223barEv,_ZTv0_n16_N7ee665223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee665223barEv,_ZThn16_N7ee665223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee665223fooEv,_ZTv0_n12_N7ee665223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee665223fooEv,_ZThn16_N7ee665223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee66522 = { "ee66522", // class name
+ bases_ee66522, 4,
+ &(vtc_ee66522[0]), // expected_vtbl_contents
+ &(vtt_ee66522[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee66522),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66522),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee66522),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1187,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee76522 : virtual dd6522 {
+ int e;
+ virtual void foo(); // _ZN7ee765223fooEv
+ virtual void bar(); // _ZN7ee765223barEv
+ ~ee76522(); // tgen
+ ee76522(); // tgen
+};
+//SIG(1 ee76522) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76522 ::foo(){vfunc_called(this, "_ZN7ee765223fooEv");}
+void ee76522 ::bar(){vfunc_called(this, "_ZN7ee765223barEv");}
+ee76522 ::~ee76522(){ note_dtor("ee76522", this);} // tgen
+ee76522 ::ee76522(){ note_ctor("ee76522", this);} // tgen
+
+static void Test_ee76522()
+{
+ extern Class_Descriptor cd_ee76522;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee76522, buf);
+ ee76522 *dp, &lv = *(dp=new (buf) ee76522());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee76522)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76522)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee76522");
+ check_base_class_offset(lv, (bb22*)(cc522*)(dd6522*), ABISELECT(32,20), "ee76522");
+ check_base_class_offset(lv, (cc522*)(dd6522*), ABISELECT(16,8), "ee76522");
+ check_base_class_offset(lv, (dd6522*), ABISELECT(16,8), "ee76522");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76522.e");
+ test_class_info(&lv, &cd_ee76522);
+ dp->~ee76522();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76522(Test_ee76522, "ee76522", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee76522C1Ev();
+extern void _ZN7ee76522D1Ev();
+Name_Map name_map_ee76522[] = {
+ NSPAIR(_ZN7ee76522C1Ev),
+ NSPAIR(_ZN7ee76522D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc522;
+extern VTBL_ENTRY _ZTI5cc522[];
+extern VTBL_ENTRY _ZTV5cc522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc522[];
+extern Class_Descriptor cd_dd6522;
+extern VTBL_ENTRY _ZTI6dd6522[];
+extern VTBL_ENTRY _ZTV6dd6522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6522[];
+static Base_Class bases_ee76522[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc522, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6522, ABISELECT(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 _ZTI7ee76522[];
+extern void _ZN7ee765223fooEv();
+extern void _ZN7ee765223barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee765223barEv,_ZTv0_n16_N7ee765223barEv)();
+extern void ABISELECT(_ZThn16_N7ee765223barEv,_ZThn8_N7ee765223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee765223fooEv,_ZTv0_n20_N7ee765223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee765223fooEv,_ZThn8_N7ee765223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee765223fooEv,_ZTv0_n12_N7ee765223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee765223fooEv,_ZThn20_N7ee765223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee765223barEv,_ZTv0_n16_N7ee765223barEv)();
+extern void ABISELECT(_ZThn32_N7ee765223barEv,_ZThn20_N7ee765223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76522[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76522[0]),
+ (VTBL_ENTRY)&_ZN7ee765223fooEv,
+ (VTBL_ENTRY)&_ZN7ee765223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee765223barEv,_ZTv0_n16_N7ee765223barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee765223fooEv,_ZTv0_n20_N7ee765223fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee76522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee765223fooEv,_ZTv0_n12_N7ee765223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee765223barEv,_ZTv0_n16_N7ee765223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee76522[];
+extern void _ZN6dd65223barEv();
+extern void _ZN6dd65223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6522__7ee76522[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6522[0]),
+ (VTBL_ENTRY)&_ZN6dd65223barEv,
+ (VTBL_ENTRY)&_ZN6dd65223fooEv,
+};
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc5226dd6522__7ee76522[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn12_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc5226dd6522__7ee76522[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd65223fooEv,_ZTv0_n12_N6dd65223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd65223fooEv,_ZThn12_N6dd65223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65223barEv,_ZTv0_n16_N6dd65223barEv)();
+extern void ABISELECT(_ZThn16_N6dd65223barEv,_ZThn12_N6dd65223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd6522__7ee76522[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65223fooEv,_ZTv0_n12_N6dd65223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65223barEv,_ZTv0_n16_N6dd65223barEv),
+};
+static VTT_ENTRY vtt_ee76522[] = {
+ {&(_ZTV7ee76522[4]), 4,19},
+ {&(_ZTV7ee76522[11]), 11,19},
+ {&(_ZTV7ee76522[17]), 17,19},
+ {&(_tg__ZTV6dd6522__7ee76522[3]), 3,5},
+ {&(_tg__ZTV5cc5226dd6522__7ee76522[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc5226dd6522__7ee76522[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd6522__7ee76522[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee76522[];
+extern VTBL_ENTRY _ZTV7ee76522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76522[];
+static VTBL_ENTRY alt_thunk_names1188[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd65223barEv,_ZTv0_n16_N6dd65223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65223barEv,_ZThn12_N6dd65223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65223fooEv,_ZTv0_n12_N6dd65223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65223fooEv,_ZThn12_N6dd65223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn12_N5cc5223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee765223fooEv,_ZTv0_n12_N7ee765223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee765223fooEv,_ZThn20_N7ee765223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee765223fooEv,_ZTv0_n20_N7ee765223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee765223fooEv,_ZThn8_N7ee765223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee765223barEv,_ZTv0_n16_N7ee765223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee765223barEv,_ZThn20_N7ee765223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee765223barEv,_ZThn8_N7ee765223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76522 = { "ee76522", // class name
+ bases_ee76522, 4,
+ &(vtc_ee76522[0]), // expected_vtbl_contents
+ &(vtt_ee76522[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee76522),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76522),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76522),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1188,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd7522 : virtual cc522 {
+ int d;
+ virtual void bar(); // _ZN6dd75223barEv
+ virtual void foo(); // _ZN6dd75223fooEv
+ ~dd7522(); // tgen
+ dd7522(); // tgen
+};
+//SIG(-1 dd7522) C1{ VBC2{ VBC3{ BC4{ v2 v1 Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void dd7522 ::bar(){vfunc_called(this, "_ZN6dd75223barEv");}
+void dd7522 ::foo(){vfunc_called(this, "_ZN6dd75223fooEv");}
+dd7522 ::~dd7522(){ note_dtor("dd7522", this);} // tgen
+dd7522 ::dd7522(){ note_ctor("dd7522", this);} // tgen
+
+static void Test_dd7522()
+{
+ extern Class_Descriptor cd_dd7522;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd7522, buf);
+ dd7522 *dp, &lv = *(dp=new (buf) dd7522());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd7522)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7522)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,16), "dd7522");
+ check_base_class_offset(lv, (bb22*)(cc522*), ABISELECT(32,16), "dd7522");
+ check_base_class_offset(lv, (cc522*), ABISELECT(16,8), "dd7522");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7522.d");
+ test_class_info(&lv, &cd_dd7522);
+ dp->~dd7522();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7522(Test_dd7522, "dd7522", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd7522C1Ev();
+extern void _ZN6dd7522D1Ev();
+Name_Map name_map_dd7522[] = {
+ NSPAIR(_ZN6dd7522C1Ev),
+ NSPAIR(_ZN6dd7522D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc522;
+extern VTBL_ENTRY _ZTI5cc522[];
+extern VTBL_ENTRY _ZTV5cc522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc522[];
+static Base_Class bases_dd7522[] = {
+ // 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_bb22, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc522, 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 _ZTI6dd7522[];
+extern void _ZN6dd75223barEv();
+extern void _ZN6dd75223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd75223barEv,_ZTv0_n16_N6dd75223barEv)();
+extern void ABISELECT(_ZThn16_N6dd75223barEv,_ZThn8_N6dd75223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd75223fooEv,_ZTv0_n12_N6dd75223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75223fooEv,_ZThn16_N6dd75223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75223barEv,_ZTv0_n16_N6dd75223barEv)();
+extern void ABISELECT(_ZThn32_N6dd75223barEv,_ZThn16_N6dd75223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7522[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7522[0]),
+ (VTBL_ENTRY)&_ZN6dd75223barEv,
+ (VTBL_ENTRY)&_ZN6dd75223fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75223barEv,_ZTv0_n16_N6dd75223barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75223fooEv,_ZTv0_n12_N6dd75223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75223barEv,_ZTv0_n16_N6dd75223barEv),
+};
+extern VTBL_ENTRY _ZTV6dd7522[];
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc522__6dd7522[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc522__6dd7522[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+static VTT_ENTRY vtt_dd7522[] = {
+ {&(_ZTV6dd7522[4]), 4,17},
+ {&(_ZTV6dd7522[10]), 10,17},
+ {&(_ZTV6dd7522[15]), 15,17},
+ {&(_tg__ZTV5cc522__6dd7522[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc522__6dd7522[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd7522[];
+extern VTBL_ENTRY _ZTV6dd7522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7522[];
+static VTBL_ENTRY alt_thunk_names1189[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75223fooEv,_ZTv0_n12_N6dd75223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75223fooEv,_ZThn16_N6dd75223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75223barEv,_ZTv0_n16_N6dd75223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75223barEv,_ZThn16_N6dd75223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75223barEv,_ZThn8_N6dd75223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7522 = { "dd7522", // class name
+ bases_dd7522, 3,
+ &(vtc_dd7522[0]), // expected_vtbl_contents
+ &(vtt_dd7522[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd7522),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7522),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7522),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1189,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07522 : dd7522 {
+ int e;
+ ~ee07522(); // tgen
+ ee07522(); // tgen
+};
+//SIG(1 ee07522) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee07522 ::~ee07522(){ note_dtor("ee07522", this);} // tgen
+ee07522 ::ee07522(){ note_ctor("ee07522", this);} // tgen
+
+static void Test_ee07522()
+{
+ extern Class_Descriptor cd_ee07522;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee07522, buf);
+ ee07522 *dp, &lv = *(dp=new (buf) ee07522());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee07522)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07522)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee07522");
+ check_base_class_offset(lv, (bb22*)(cc522*), ABISELECT(32,20), "ee07522");
+ check_base_class_offset(lv, (cc522*)(dd7522*), ABISELECT(16,12), "ee07522");
+ check_base_class_offset(lv, (dd7522*), 0, "ee07522");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07522.e");
+ test_class_info(&lv, &cd_ee07522);
+ dp->~ee07522();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07522(Test_ee07522, "ee07522", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee07522C1Ev();
+extern void _ZN7ee07522D1Ev();
+Name_Map name_map_ee07522[] = {
+ NSPAIR(_ZN7ee07522C1Ev),
+ NSPAIR(_ZN7ee07522D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc522;
+extern VTBL_ENTRY _ZTI5cc522[];
+extern VTBL_ENTRY _ZTV5cc522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc522[];
+extern Class_Descriptor cd_dd7522;
+extern VTBL_ENTRY _ZTI6dd7522[];
+extern VTBL_ENTRY _ZTV6dd7522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7522[];
+static Base_Class bases_ee07522[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc522, 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_dd7522, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07522[];
+extern void _ZN6dd75223barEv();
+extern void _ZN6dd75223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd75223barEv,_ZTv0_n16_N6dd75223barEv)();
+extern void ABISELECT(_ZThn16_N6dd75223barEv,_ZThn12_N6dd75223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd75223fooEv,_ZTv0_n12_N6dd75223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75223fooEv,_ZThn20_N6dd75223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75223barEv,_ZTv0_n16_N6dd75223barEv)();
+extern void ABISELECT(_ZThn32_N6dd75223barEv,_ZThn20_N6dd75223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07522[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07522[0]),
+ (VTBL_ENTRY)&_ZN6dd75223barEv,
+ (VTBL_ENTRY)&_ZN6dd75223fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75223barEv,_ZTv0_n16_N6dd75223barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee07522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75223fooEv,_ZTv0_n12_N6dd75223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75223barEv,_ZTv0_n16_N6dd75223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee07522[];
+extern void _ZN6dd75223barEv();
+extern void _ZN6dd75223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7522__7ee07522[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7522[0]),
+ (VTBL_ENTRY)&_ZN6dd75223barEv,
+ (VTBL_ENTRY)&_ZN6dd75223fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75223barEv,_ZTv0_n16_N6dd75223barEv)();
+extern void ABISELECT(_ZThn16_N6dd75223barEv,_ZThn12_N6dd75223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc522__6dd7522__7ee07522[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75223barEv,_ZTv0_n16_N6dd75223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd75223fooEv,_ZTv0_n12_N6dd75223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75223fooEv,_ZThn20_N6dd75223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75223barEv,_ZTv0_n16_N6dd75223barEv)();
+extern void ABISELECT(_ZThn32_N6dd75223barEv,_ZThn20_N6dd75223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd7522__7ee07522[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75223fooEv,_ZTv0_n12_N6dd75223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75223barEv,_ZTv0_n16_N6dd75223barEv),
+};
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc522__7ee07522[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc522__7ee07522[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+static VTT_ENTRY vtt_ee07522[] = {
+ {&(_ZTV7ee07522[4]), 4,17},
+ {&(_tg__ZTV6dd7522__7ee07522[4]), 4,6},
+ {&(_tg__ZTV5cc522__6dd7522__7ee07522[4]), 4,5},
+ {&(_tg__ZTV4bb22__6dd7522__7ee07522[4]), 4,6},
+ {&(_ZTV7ee07522[10]), 10,17},
+ {&(_ZTV7ee07522[15]), 15,17},
+ {&(_tg__ZTV5cc522__7ee07522[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc522__7ee07522[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee07522[];
+extern VTBL_ENTRY _ZTV7ee07522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07522[];
+static VTBL_ENTRY alt_thunk_names1190[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75223fooEv,_ZTv0_n12_N6dd75223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75223fooEv,_ZThn20_N6dd75223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75223fooEv,_ZThn20_N6dd75223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75223barEv,_ZTv0_n16_N6dd75223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75223barEv,_ZThn20_N6dd75223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75223barEv,_ZThn12_N6dd75223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75223barEv,_ZThn20_N6dd75223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75223barEv,_ZThn12_N6dd75223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07522 = { "ee07522", // class name
+ bases_ee07522, 4,
+ &(vtc_ee07522[0]), // expected_vtbl_contents
+ &(vtt_ee07522[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee07522),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07522),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07522),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1190,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee17522 : virtual dd7522 {
+ int e;
+ ~ee17522(); // tgen
+ ee17522(); // tgen
+};
+//SIG(1 ee17522) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee17522 ::~ee17522(){ note_dtor("ee17522", this);} // tgen
+ee17522 ::ee17522(){ note_ctor("ee17522", this);} // tgen
+
+static void Test_ee17522()
+{
+ extern Class_Descriptor cd_ee17522;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee17522, buf);
+ ee17522 *dp, &lv = *(dp=new (buf) ee17522());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee17522)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17522)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(48,24), "ee17522");
+ check_base_class_offset(lv, (bb22*)(cc522*), ABISELECT(48,24), "ee17522");
+ check_base_class_offset(lv, (cc522*)(dd7522*), ABISELECT(32,16), "ee17522");
+ check_base_class_offset(lv, (dd7522*), ABISELECT(16,8), "ee17522");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17522.e");
+ test_class_info(&lv, &cd_ee17522);
+ dp->~ee17522();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17522(Test_ee17522, "ee17522", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee17522C1Ev();
+extern void _ZN7ee17522D1Ev();
+Name_Map name_map_ee17522[] = {
+ NSPAIR(_ZN7ee17522C1Ev),
+ NSPAIR(_ZN7ee17522D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc522;
+extern VTBL_ENTRY _ZTI5cc522[];
+extern VTBL_ENTRY _ZTV5cc522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc522[];
+extern Class_Descriptor cd_dd7522;
+extern VTBL_ENTRY _ZTI6dd7522[];
+extern VTBL_ENTRY _ZTV6dd7522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7522[];
+static Base_Class bases_ee17522[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb22, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc522, 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_dd7522, 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 _ZTI7ee17522[];
+extern void _ZN6dd75223barEv();
+extern void _ZN6dd75223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd75223barEv,_ZTv0_n16_N6dd75223barEv)();
+extern void ABISELECT(_ZThn16_N6dd75223barEv,_ZThn8_N6dd75223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd75223fooEv,_ZTv0_n12_N6dd75223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75223fooEv,_ZThn16_N6dd75223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75223barEv,_ZTv0_n16_N6dd75223barEv)();
+extern void ABISELECT(_ZThn32_N6dd75223barEv,_ZThn16_N6dd75223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17522[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17522[0]),
+ 0,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17522[0]),
+ (VTBL_ENTRY)&_ZN6dd75223barEv,
+ (VTBL_ENTRY)&_ZN6dd75223fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75223barEv,_ZTv0_n16_N6dd75223barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee17522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75223fooEv,_ZTv0_n12_N6dd75223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75223barEv,_ZTv0_n16_N6dd75223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee17522[];
+extern void _ZN6dd75223barEv();
+extern void _ZN6dd75223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7522__7ee17522[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7522[0]),
+ (VTBL_ENTRY)&_ZN6dd75223barEv,
+ (VTBL_ENTRY)&_ZN6dd75223fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75223barEv,_ZTv0_n16_N6dd75223barEv)();
+extern void ABISELECT(_ZThn16_N6dd75223barEv,_ZThn8_N6dd75223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc522__6dd7522__7ee17522[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75223barEv,_ZTv0_n16_N6dd75223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd75223fooEv,_ZTv0_n12_N6dd75223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75223fooEv,_ZThn16_N6dd75223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75223barEv,_ZTv0_n16_N6dd75223barEv)();
+extern void ABISELECT(_ZThn32_N6dd75223barEv,_ZThn16_N6dd75223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd7522__7ee17522[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75223fooEv,_ZTv0_n12_N6dd75223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75223barEv,_ZTv0_n16_N6dd75223barEv),
+};
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc522__7ee17522[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc522__7ee17522[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+static VTT_ENTRY vtt_ee17522[] = {
+ {&(_ZTV7ee17522[5]), 5,24},
+ {&(_ZTV7ee17522[11]), 11,24},
+ {&(_ZTV7ee17522[17]), 17,24},
+ {&(_ZTV7ee17522[22]), 22,24},
+ {&(_tg__ZTV6dd7522__7ee17522[4]), 4,6},
+ {&(_tg__ZTV5cc522__6dd7522__7ee17522[4]), 4,5},
+ {&(_tg__ZTV4bb22__6dd7522__7ee17522[4]), 4,6},
+ {&(_tg__ZTV5cc522__7ee17522[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc522__7ee17522[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee17522[];
+extern VTBL_ENTRY _ZTV7ee17522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17522[];
+static VTBL_ENTRY alt_thunk_names1191[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75223fooEv,_ZTv0_n12_N6dd75223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75223fooEv,_ZThn16_N6dd75223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75223fooEv,_ZThn16_N6dd75223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75223barEv,_ZTv0_n16_N6dd75223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75223barEv,_ZThn16_N6dd75223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75223barEv,_ZThn8_N6dd75223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75223barEv,_ZThn16_N6dd75223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75223barEv,_ZThn8_N6dd75223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17522 = { "ee17522", // class name
+ bases_ee17522, 4,
+ &(vtc_ee17522[0]), // expected_vtbl_contents
+ &(vtt_ee17522[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee17522),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17522),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17522),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1191,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee27522 : dd7522 {
+ int e;
+ virtual void foo(); // _ZN7ee275223fooEv
+ ~ee27522(); // tgen
+ ee27522(); // tgen
+};
+//SIG(1 ee27522) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27522 ::foo(){vfunc_called(this, "_ZN7ee275223fooEv");}
+ee27522 ::~ee27522(){ note_dtor("ee27522", this);} // tgen
+ee27522 ::ee27522(){ note_ctor("ee27522", this);} // tgen
+
+static void Test_ee27522()
+{
+ extern Class_Descriptor cd_ee27522;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee27522, buf);
+ ee27522 *dp, &lv = *(dp=new (buf) ee27522());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee27522)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27522)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee27522");
+ check_base_class_offset(lv, (bb22*)(cc522*), ABISELECT(32,20), "ee27522");
+ check_base_class_offset(lv, (cc522*)(dd7522*), ABISELECT(16,12), "ee27522");
+ check_base_class_offset(lv, (dd7522*), 0, "ee27522");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27522.e");
+ test_class_info(&lv, &cd_ee27522);
+ dp->~ee27522();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27522(Test_ee27522, "ee27522", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee27522C1Ev();
+extern void _ZN7ee27522D1Ev();
+Name_Map name_map_ee27522[] = {
+ NSPAIR(_ZN7ee27522C1Ev),
+ NSPAIR(_ZN7ee27522D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc522;
+extern VTBL_ENTRY _ZTI5cc522[];
+extern VTBL_ENTRY _ZTV5cc522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc522[];
+extern Class_Descriptor cd_dd7522;
+extern VTBL_ENTRY _ZTI6dd7522[];
+extern VTBL_ENTRY _ZTV6dd7522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7522[];
+static Base_Class bases_ee27522[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc522, 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_dd7522, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27522[];
+extern void _ZN6dd75223barEv();
+extern void _ZN7ee275223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd75223barEv,_ZTv0_n16_N6dd75223barEv)();
+extern void ABISELECT(_ZThn16_N6dd75223barEv,_ZThn12_N6dd75223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee275223fooEv,_ZTv0_n12_N7ee275223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee275223fooEv,_ZThn20_N7ee275223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75223barEv,_ZTv0_n16_N6dd75223barEv)();
+extern void ABISELECT(_ZThn32_N6dd75223barEv,_ZThn20_N6dd75223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27522[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27522[0]),
+ (VTBL_ENTRY)&_ZN6dd75223barEv,
+ (VTBL_ENTRY)&_ZN7ee275223fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75223barEv,_ZTv0_n16_N6dd75223barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee27522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee275223fooEv,_ZTv0_n12_N7ee275223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75223barEv,_ZTv0_n16_N6dd75223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee27522[];
+extern void _ZN6dd75223barEv();
+extern void _ZN6dd75223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7522__7ee27522[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7522[0]),
+ (VTBL_ENTRY)&_ZN6dd75223barEv,
+ (VTBL_ENTRY)&_ZN6dd75223fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75223barEv,_ZTv0_n16_N6dd75223barEv)();
+extern void ABISELECT(_ZThn16_N6dd75223barEv,_ZThn12_N6dd75223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc522__6dd7522__7ee27522[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75223barEv,_ZTv0_n16_N6dd75223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd75223fooEv,_ZTv0_n12_N6dd75223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75223fooEv,_ZThn20_N6dd75223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75223barEv,_ZTv0_n16_N6dd75223barEv)();
+extern void ABISELECT(_ZThn32_N6dd75223barEv,_ZThn20_N6dd75223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd7522__7ee27522[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75223fooEv,_ZTv0_n12_N6dd75223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75223barEv,_ZTv0_n16_N6dd75223barEv),
+};
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc522__7ee27522[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc522__7ee27522[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+static VTT_ENTRY vtt_ee27522[] = {
+ {&(_ZTV7ee27522[4]), 4,17},
+ {&(_tg__ZTV6dd7522__7ee27522[4]), 4,6},
+ {&(_tg__ZTV5cc522__6dd7522__7ee27522[4]), 4,5},
+ {&(_tg__ZTV4bb22__6dd7522__7ee27522[4]), 4,6},
+ {&(_ZTV7ee27522[10]), 10,17},
+ {&(_ZTV7ee27522[15]), 15,17},
+ {&(_tg__ZTV5cc522__7ee27522[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc522__7ee27522[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee27522[];
+extern VTBL_ENTRY _ZTV7ee27522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27522[];
+static VTBL_ENTRY alt_thunk_names1192[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75223fooEv,_ZTv0_n12_N6dd75223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75223fooEv,_ZThn20_N6dd75223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee275223fooEv,_ZTv0_n12_N7ee275223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee275223fooEv,_ZThn20_N7ee275223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75223barEv,_ZTv0_n16_N6dd75223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75223barEv,_ZThn20_N6dd75223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75223barEv,_ZThn12_N6dd75223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75223barEv,_ZThn20_N6dd75223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75223barEv,_ZThn12_N6dd75223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27522 = { "ee27522", // class name
+ bases_ee27522, 4,
+ &(vtc_ee27522[0]), // expected_vtbl_contents
+ &(vtt_ee27522[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee27522),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27522),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27522),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1192,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee37522 : virtual dd7522 {
+ int e;
+ virtual void foo(); // _ZN7ee375223fooEv
+ ~ee37522(); // tgen
+ ee37522(); // tgen
+};
+//SIG(1 ee37522) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37522 ::foo(){vfunc_called(this, "_ZN7ee375223fooEv");}
+ee37522 ::~ee37522(){ note_dtor("ee37522", this);} // tgen
+ee37522 ::ee37522(){ note_ctor("ee37522", this);} // tgen
+
+static void Test_ee37522()
+{
+ extern Class_Descriptor cd_ee37522;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee37522, buf);
+ ee37522 *dp, &lv = *(dp=new (buf) ee37522());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee37522)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37522)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(48,24), "ee37522");
+ check_base_class_offset(lv, (bb22*)(cc522*), ABISELECT(48,24), "ee37522");
+ check_base_class_offset(lv, (cc522*)(dd7522*), ABISELECT(32,16), "ee37522");
+ check_base_class_offset(lv, (dd7522*), ABISELECT(16,8), "ee37522");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37522.e");
+ test_class_info(&lv, &cd_ee37522);
+ dp->~ee37522();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37522(Test_ee37522, "ee37522", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee37522C1Ev();
+extern void _ZN7ee37522D1Ev();
+Name_Map name_map_ee37522[] = {
+ NSPAIR(_ZN7ee37522C1Ev),
+ NSPAIR(_ZN7ee37522D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc522;
+extern VTBL_ENTRY _ZTI5cc522[];
+extern VTBL_ENTRY _ZTV5cc522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc522[];
+extern Class_Descriptor cd_dd7522;
+extern VTBL_ENTRY _ZTI6dd7522[];
+extern VTBL_ENTRY _ZTV6dd7522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7522[];
+static Base_Class bases_ee37522[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb22, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc522, 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_dd7522, 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 _ZTI7ee37522[];
+extern void _ZN7ee375223fooEv();
+extern void _ZN6dd75223barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee375223fooEv,_ZTv0_n24_N7ee375223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee375223fooEv,_ZThn8_N7ee375223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75223barEv,_ZTv0_n16_N6dd75223barEv)();
+extern void ABISELECT(_ZThn16_N6dd75223barEv,_ZThn8_N6dd75223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee375223fooEv,_ZTv0_n12_N7ee375223fooEv)();
+extern void ABISELECT(_ZThn48_N7ee375223fooEv,_ZThn24_N7ee375223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75223barEv,_ZTv0_n16_N6dd75223barEv)();
+extern void ABISELECT(_ZThn32_N6dd75223barEv,_ZThn16_N6dd75223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37522[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37522[0]),
+ (VTBL_ENTRY)&_ZN7ee375223fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37522[0]),
+ (VTBL_ENTRY)&_ZN6dd75223barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee375223fooEv,_ZTv0_n24_N7ee375223fooEv),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75223barEv,_ZTv0_n16_N6dd75223barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee37522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee375223fooEv,_ZTv0_n12_N7ee375223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75223barEv,_ZTv0_n16_N6dd75223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee37522[];
+extern void _ZN6dd75223barEv();
+extern void _ZN6dd75223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7522__7ee37522[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7522[0]),
+ (VTBL_ENTRY)&_ZN6dd75223barEv,
+ (VTBL_ENTRY)&_ZN6dd75223fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75223barEv,_ZTv0_n16_N6dd75223barEv)();
+extern void ABISELECT(_ZThn16_N6dd75223barEv,_ZThn8_N6dd75223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc522__6dd7522__7ee37522[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75223barEv,_ZTv0_n16_N6dd75223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd75223fooEv,_ZTv0_n12_N6dd75223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75223fooEv,_ZThn16_N6dd75223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75223barEv,_ZTv0_n16_N6dd75223barEv)();
+extern void ABISELECT(_ZThn32_N6dd75223barEv,_ZThn16_N6dd75223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd7522__7ee37522[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75223fooEv,_ZTv0_n12_N6dd75223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75223barEv,_ZTv0_n16_N6dd75223barEv),
+};
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc522__7ee37522[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc522__7ee37522[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+static VTT_ENTRY vtt_ee37522[] = {
+ {&(_ZTV7ee37522[5]), 5,25},
+ {&(_ZTV7ee37522[12]), 12,25},
+ {&(_ZTV7ee37522[18]), 18,25},
+ {&(_ZTV7ee37522[23]), 23,25},
+ {&(_tg__ZTV6dd7522__7ee37522[4]), 4,6},
+ {&(_tg__ZTV5cc522__6dd7522__7ee37522[4]), 4,5},
+ {&(_tg__ZTV4bb22__6dd7522__7ee37522[4]), 4,6},
+ {&(_tg__ZTV5cc522__7ee37522[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc522__7ee37522[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee37522[];
+extern VTBL_ENTRY _ZTV7ee37522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37522[];
+static VTBL_ENTRY alt_thunk_names1193[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75223fooEv,_ZTv0_n12_N6dd75223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75223fooEv,_ZThn16_N6dd75223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee375223fooEv,_ZTv0_n12_N7ee375223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee375223fooEv,_ZThn24_N7ee375223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75223barEv,_ZTv0_n16_N6dd75223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75223barEv,_ZThn16_N6dd75223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75223barEv,_ZThn8_N6dd75223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75223barEv,_ZThn16_N6dd75223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75223barEv,_ZThn8_N6dd75223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee375223fooEv,_ZTv0_n24_N7ee375223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee375223fooEv,_ZThn8_N7ee375223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37522 = { "ee37522", // class name
+ bases_ee37522, 4,
+ &(vtc_ee37522[0]), // expected_vtbl_contents
+ &(vtt_ee37522[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee37522),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37522),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37522),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1193,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee47522 : dd7522 {
+ int e;
+ virtual void bar(); // _ZN7ee475223barEv
+ ~ee47522(); // tgen
+ ee47522(); // tgen
+};
+//SIG(1 ee47522) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47522 ::bar(){vfunc_called(this, "_ZN7ee475223barEv");}
+ee47522 ::~ee47522(){ note_dtor("ee47522", this);} // tgen
+ee47522 ::ee47522(){ note_ctor("ee47522", this);} // tgen
+
+static void Test_ee47522()
+{
+ extern Class_Descriptor cd_ee47522;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee47522, buf);
+ ee47522 *dp, &lv = *(dp=new (buf) ee47522());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee47522)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47522)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee47522");
+ check_base_class_offset(lv, (bb22*)(cc522*), ABISELECT(32,20), "ee47522");
+ check_base_class_offset(lv, (cc522*)(dd7522*), ABISELECT(16,12), "ee47522");
+ check_base_class_offset(lv, (dd7522*), 0, "ee47522");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47522.e");
+ test_class_info(&lv, &cd_ee47522);
+ dp->~ee47522();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47522(Test_ee47522, "ee47522", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee47522C1Ev();
+extern void _ZN7ee47522D1Ev();
+Name_Map name_map_ee47522[] = {
+ NSPAIR(_ZN7ee47522C1Ev),
+ NSPAIR(_ZN7ee47522D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc522;
+extern VTBL_ENTRY _ZTI5cc522[];
+extern VTBL_ENTRY _ZTV5cc522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc522[];
+extern Class_Descriptor cd_dd7522;
+extern VTBL_ENTRY _ZTI6dd7522[];
+extern VTBL_ENTRY _ZTV6dd7522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7522[];
+static Base_Class bases_ee47522[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc522, 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_dd7522, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47522[];
+extern void _ZN7ee475223barEv();
+extern void _ZN6dd75223fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee475223barEv,_ZTv0_n16_N7ee475223barEv)();
+extern void ABISELECT(_ZThn16_N7ee475223barEv,_ZThn12_N7ee475223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd75223fooEv,_ZTv0_n12_N6dd75223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75223fooEv,_ZThn20_N6dd75223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee475223barEv,_ZTv0_n16_N7ee475223barEv)();
+extern void ABISELECT(_ZThn32_N7ee475223barEv,_ZThn20_N7ee475223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47522[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47522[0]),
+ (VTBL_ENTRY)&_ZN7ee475223barEv,
+ (VTBL_ENTRY)&_ZN6dd75223fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee475223barEv,_ZTv0_n16_N7ee475223barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee47522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75223fooEv,_ZTv0_n12_N6dd75223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee475223barEv,_ZTv0_n16_N7ee475223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee47522[];
+extern void _ZN6dd75223barEv();
+extern void _ZN6dd75223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7522__7ee47522[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7522[0]),
+ (VTBL_ENTRY)&_ZN6dd75223barEv,
+ (VTBL_ENTRY)&_ZN6dd75223fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75223barEv,_ZTv0_n16_N6dd75223barEv)();
+extern void ABISELECT(_ZThn16_N6dd75223barEv,_ZThn12_N6dd75223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc522__6dd7522__7ee47522[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75223barEv,_ZTv0_n16_N6dd75223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd75223fooEv,_ZTv0_n12_N6dd75223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75223fooEv,_ZThn20_N6dd75223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75223barEv,_ZTv0_n16_N6dd75223barEv)();
+extern void ABISELECT(_ZThn32_N6dd75223barEv,_ZThn20_N6dd75223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd7522__7ee47522[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75223fooEv,_ZTv0_n12_N6dd75223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75223barEv,_ZTv0_n16_N6dd75223barEv),
+};
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc522__7ee47522[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc522__7ee47522[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+static VTT_ENTRY vtt_ee47522[] = {
+ {&(_ZTV7ee47522[4]), 4,17},
+ {&(_tg__ZTV6dd7522__7ee47522[4]), 4,6},
+ {&(_tg__ZTV5cc522__6dd7522__7ee47522[4]), 4,5},
+ {&(_tg__ZTV4bb22__6dd7522__7ee47522[4]), 4,6},
+ {&(_ZTV7ee47522[10]), 10,17},
+ {&(_ZTV7ee47522[15]), 15,17},
+ {&(_tg__ZTV5cc522__7ee47522[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc522__7ee47522[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee47522[];
+extern VTBL_ENTRY _ZTV7ee47522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47522[];
+static VTBL_ENTRY alt_thunk_names1194[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75223barEv,_ZTv0_n16_N6dd75223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75223barEv,_ZThn20_N6dd75223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75223barEv,_ZThn12_N6dd75223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75223fooEv,_ZTv0_n12_N6dd75223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75223fooEv,_ZThn20_N6dd75223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75223fooEv,_ZThn20_N6dd75223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee475223barEv,_ZTv0_n16_N7ee475223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee475223barEv,_ZThn20_N7ee475223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee475223barEv,_ZThn12_N7ee475223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47522 = { "ee47522", // class name
+ bases_ee47522, 4,
+ &(vtc_ee47522[0]), // expected_vtbl_contents
+ &(vtt_ee47522[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee47522),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47522),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47522),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1194,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee57522 : virtual dd7522 {
+ int e;
+ virtual void bar(); // _ZN7ee575223barEv
+ ~ee57522(); // tgen
+ ee57522(); // tgen
+};
+//SIG(1 ee57522) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57522 ::bar(){vfunc_called(this, "_ZN7ee575223barEv");}
+ee57522 ::~ee57522(){ note_dtor("ee57522", this);} // tgen
+ee57522 ::ee57522(){ note_ctor("ee57522", this);} // tgen
+
+static void Test_ee57522()
+{
+ extern Class_Descriptor cd_ee57522;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee57522, buf);
+ ee57522 *dp, &lv = *(dp=new (buf) ee57522());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee57522)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57522)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(48,24), "ee57522");
+ check_base_class_offset(lv, (bb22*)(cc522*), ABISELECT(48,24), "ee57522");
+ check_base_class_offset(lv, (cc522*)(dd7522*), ABISELECT(32,16), "ee57522");
+ check_base_class_offset(lv, (dd7522*), ABISELECT(16,8), "ee57522");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57522.e");
+ test_class_info(&lv, &cd_ee57522);
+ dp->~ee57522();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57522(Test_ee57522, "ee57522", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee57522C1Ev();
+extern void _ZN7ee57522D1Ev();
+Name_Map name_map_ee57522[] = {
+ NSPAIR(_ZN7ee57522C1Ev),
+ NSPAIR(_ZN7ee57522D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc522;
+extern VTBL_ENTRY _ZTI5cc522[];
+extern VTBL_ENTRY _ZTV5cc522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc522[];
+extern Class_Descriptor cd_dd7522;
+extern VTBL_ENTRY _ZTI6dd7522[];
+extern VTBL_ENTRY _ZTV6dd7522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7522[];
+static Base_Class bases_ee57522[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb22, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc522, 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_dd7522, 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 _ZTI7ee57522[];
+extern void _ZN7ee575223barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee575223barEv,_ZTv0_n20_N7ee575223barEv)();
+extern void ABISELECT(_ZThn16_N7ee575223barEv,_ZThn8_N7ee575223barEv)() __attribute__((weak));
+extern void _ZN6dd75223fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee575223barEv,_ZTv0_n16_N7ee575223barEv)();
+extern void ABISELECT(_ZThn32_N7ee575223barEv,_ZThn16_N7ee575223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd75223fooEv,_ZTv0_n12_N6dd75223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75223fooEv,_ZThn16_N6dd75223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee575223barEv,_ZTv0_n16_N7ee575223barEv)();
+extern void ABISELECT(_ZThn48_N7ee575223barEv,_ZThn24_N7ee575223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57522[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57522[0]),
+ (VTBL_ENTRY)&_ZN7ee575223barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee575223barEv,_ZTv0_n20_N7ee575223barEv),
+ (VTBL_ENTRY)&_ZN6dd75223fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee575223barEv,_ZTv0_n16_N7ee575223barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee57522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75223fooEv,_ZTv0_n12_N6dd75223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee575223barEv,_ZTv0_n16_N7ee575223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee57522[];
+extern void _ZN6dd75223barEv();
+extern void _ZN6dd75223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7522__7ee57522[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7522[0]),
+ (VTBL_ENTRY)&_ZN6dd75223barEv,
+ (VTBL_ENTRY)&_ZN6dd75223fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75223barEv,_ZTv0_n16_N6dd75223barEv)();
+extern void ABISELECT(_ZThn16_N6dd75223barEv,_ZThn8_N6dd75223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc522__6dd7522__7ee57522[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75223barEv,_ZTv0_n16_N6dd75223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd75223fooEv,_ZTv0_n12_N6dd75223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75223fooEv,_ZThn16_N6dd75223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75223barEv,_ZTv0_n16_N6dd75223barEv)();
+extern void ABISELECT(_ZThn32_N6dd75223barEv,_ZThn16_N6dd75223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd7522__7ee57522[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75223fooEv,_ZTv0_n12_N6dd75223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75223barEv,_ZTv0_n16_N6dd75223barEv),
+};
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc522__7ee57522[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc522__7ee57522[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+static VTT_ENTRY vtt_ee57522[] = {
+ {&(_ZTV7ee57522[5]), 5,25},
+ {&(_ZTV7ee57522[12]), 12,25},
+ {&(_ZTV7ee57522[18]), 18,25},
+ {&(_ZTV7ee57522[23]), 23,25},
+ {&(_tg__ZTV6dd7522__7ee57522[4]), 4,6},
+ {&(_tg__ZTV5cc522__6dd7522__7ee57522[4]), 4,5},
+ {&(_tg__ZTV4bb22__6dd7522__7ee57522[4]), 4,6},
+ {&(_tg__ZTV5cc522__7ee57522[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc522__7ee57522[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee57522[];
+extern VTBL_ENTRY _ZTV7ee57522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57522[];
+static VTBL_ENTRY alt_thunk_names1195[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75223barEv,_ZTv0_n16_N6dd75223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75223barEv,_ZThn16_N6dd75223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75223barEv,_ZThn8_N6dd75223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75223fooEv,_ZTv0_n12_N6dd75223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75223fooEv,_ZThn16_N6dd75223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75223fooEv,_ZThn16_N6dd75223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee575223barEv,_ZTv0_n16_N7ee575223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee575223barEv,_ZThn24_N7ee575223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee575223barEv,_ZThn16_N7ee575223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee575223barEv,_ZTv0_n20_N7ee575223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee575223barEv,_ZThn8_N7ee575223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57522 = { "ee57522", // class name
+ bases_ee57522, 4,
+ &(vtc_ee57522[0]), // expected_vtbl_contents
+ &(vtt_ee57522[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee57522),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57522),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57522),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1195,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee67522 : dd7522 {
+ int e;
+ virtual void foo(); // _ZN7ee675223fooEv
+ virtual void bar(); // _ZN7ee675223barEv
+ ~ee67522(); // tgen
+ ee67522(); // tgen
+};
+//SIG(1 ee67522) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67522 ::foo(){vfunc_called(this, "_ZN7ee675223fooEv");}
+void ee67522 ::bar(){vfunc_called(this, "_ZN7ee675223barEv");}
+ee67522 ::~ee67522(){ note_dtor("ee67522", this);} // tgen
+ee67522 ::ee67522(){ note_ctor("ee67522", this);} // tgen
+
+static void Test_ee67522()
+{
+ extern Class_Descriptor cd_ee67522;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee67522, buf);
+ ee67522 *dp, &lv = *(dp=new (buf) ee67522());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee67522)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67522)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee67522");
+ check_base_class_offset(lv, (bb22*)(cc522*), ABISELECT(32,20), "ee67522");
+ check_base_class_offset(lv, (cc522*)(dd7522*), ABISELECT(16,12), "ee67522");
+ check_base_class_offset(lv, (dd7522*), 0, "ee67522");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67522.e");
+ test_class_info(&lv, &cd_ee67522);
+ dp->~ee67522();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67522(Test_ee67522, "ee67522", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee67522C1Ev();
+extern void _ZN7ee67522D1Ev();
+Name_Map name_map_ee67522[] = {
+ NSPAIR(_ZN7ee67522C1Ev),
+ NSPAIR(_ZN7ee67522D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc522;
+extern VTBL_ENTRY _ZTI5cc522[];
+extern VTBL_ENTRY _ZTV5cc522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc522[];
+extern Class_Descriptor cd_dd7522;
+extern VTBL_ENTRY _ZTI6dd7522[];
+extern VTBL_ENTRY _ZTV6dd7522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7522[];
+static Base_Class bases_ee67522[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc522, 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_dd7522, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67522[];
+extern void _ZN7ee675223barEv();
+extern void _ZN7ee675223fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee675223barEv,_ZTv0_n16_N7ee675223barEv)();
+extern void ABISELECT(_ZThn16_N7ee675223barEv,_ZThn12_N7ee675223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee675223fooEv,_ZTv0_n12_N7ee675223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee675223fooEv,_ZThn20_N7ee675223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee675223barEv,_ZTv0_n16_N7ee675223barEv)();
+extern void ABISELECT(_ZThn32_N7ee675223barEv,_ZThn20_N7ee675223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67522[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67522[0]),
+ (VTBL_ENTRY)&_ZN7ee675223barEv,
+ (VTBL_ENTRY)&_ZN7ee675223fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee675223barEv,_ZTv0_n16_N7ee675223barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee67522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee675223fooEv,_ZTv0_n12_N7ee675223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee675223barEv,_ZTv0_n16_N7ee675223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee67522[];
+extern void _ZN6dd75223barEv();
+extern void _ZN6dd75223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7522__7ee67522[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7522[0]),
+ (VTBL_ENTRY)&_ZN6dd75223barEv,
+ (VTBL_ENTRY)&_ZN6dd75223fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75223barEv,_ZTv0_n16_N6dd75223barEv)();
+extern void ABISELECT(_ZThn16_N6dd75223barEv,_ZThn12_N6dd75223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc522__6dd7522__7ee67522[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75223barEv,_ZTv0_n16_N6dd75223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd75223fooEv,_ZTv0_n12_N6dd75223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75223fooEv,_ZThn20_N6dd75223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75223barEv,_ZTv0_n16_N6dd75223barEv)();
+extern void ABISELECT(_ZThn32_N6dd75223barEv,_ZThn20_N6dd75223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd7522__7ee67522[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75223fooEv,_ZTv0_n12_N6dd75223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75223barEv,_ZTv0_n16_N6dd75223barEv),
+};
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc522__7ee67522[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc522__7ee67522[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+static VTT_ENTRY vtt_ee67522[] = {
+ {&(_ZTV7ee67522[4]), 4,17},
+ {&(_tg__ZTV6dd7522__7ee67522[4]), 4,6},
+ {&(_tg__ZTV5cc522__6dd7522__7ee67522[4]), 4,5},
+ {&(_tg__ZTV4bb22__6dd7522__7ee67522[4]), 4,6},
+ {&(_ZTV7ee67522[10]), 10,17},
+ {&(_ZTV7ee67522[15]), 15,17},
+ {&(_tg__ZTV5cc522__7ee67522[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc522__7ee67522[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee67522[];
+extern VTBL_ENTRY _ZTV7ee67522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67522[];
+static VTBL_ENTRY alt_thunk_names1196[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75223fooEv,_ZTv0_n12_N6dd75223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75223fooEv,_ZThn20_N6dd75223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75223barEv,_ZTv0_n16_N6dd75223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75223barEv,_ZThn20_N6dd75223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75223barEv,_ZThn12_N6dd75223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee675223fooEv,_ZTv0_n12_N7ee675223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee675223fooEv,_ZThn20_N7ee675223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee675223barEv,_ZTv0_n16_N7ee675223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee675223barEv,_ZThn20_N7ee675223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee675223barEv,_ZThn12_N7ee675223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67522 = { "ee67522", // class name
+ bases_ee67522, 4,
+ &(vtc_ee67522[0]), // expected_vtbl_contents
+ &(vtt_ee67522[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee67522),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67522),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67522),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1196,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee77522 : virtual dd7522 {
+ int e;
+ virtual void foo(); // _ZN7ee775223fooEv
+ virtual void bar(); // _ZN7ee775223barEv
+ ~ee77522(); // tgen
+ ee77522(); // tgen
+};
+//SIG(1 ee77522) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77522 ::foo(){vfunc_called(this, "_ZN7ee775223fooEv");}
+void ee77522 ::bar(){vfunc_called(this, "_ZN7ee775223barEv");}
+ee77522 ::~ee77522(){ note_dtor("ee77522", this);} // tgen
+ee77522 ::ee77522(){ note_ctor("ee77522", this);} // tgen
+
+static void Test_ee77522()
+{
+ extern Class_Descriptor cd_ee77522;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee77522, buf);
+ ee77522 *dp, &lv = *(dp=new (buf) ee77522());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee77522)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77522)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(48,24), "ee77522");
+ check_base_class_offset(lv, (bb22*)(cc522*), ABISELECT(48,24), "ee77522");
+ check_base_class_offset(lv, (cc522*)(dd7522*), ABISELECT(32,16), "ee77522");
+ check_base_class_offset(lv, (dd7522*), ABISELECT(16,8), "ee77522");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77522.e");
+ test_class_info(&lv, &cd_ee77522);
+ dp->~ee77522();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77522(Test_ee77522, "ee77522", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee77522C1Ev();
+extern void _ZN7ee77522D1Ev();
+Name_Map name_map_ee77522[] = {
+ NSPAIR(_ZN7ee77522C1Ev),
+ NSPAIR(_ZN7ee77522D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc522;
+extern VTBL_ENTRY _ZTI5cc522[];
+extern VTBL_ENTRY _ZTV5cc522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc522[];
+extern Class_Descriptor cd_dd7522;
+extern VTBL_ENTRY _ZTI6dd7522[];
+extern VTBL_ENTRY _ZTV6dd7522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7522[];
+static Base_Class bases_ee77522[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb22, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc522, 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_dd7522, 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 _ZTI7ee77522[];
+extern void _ZN7ee775223fooEv();
+extern void _ZN7ee775223barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee775223barEv,_ZTv0_n20_N7ee775223barEv)();
+extern void ABISELECT(_ZThn16_N7ee775223barEv,_ZThn8_N7ee775223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee775223fooEv,_ZTv0_n24_N7ee775223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee775223fooEv,_ZThn8_N7ee775223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee775223barEv,_ZTv0_n16_N7ee775223barEv)();
+extern void ABISELECT(_ZThn32_N7ee775223barEv,_ZThn16_N7ee775223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee775223fooEv,_ZTv0_n12_N7ee775223fooEv)();
+extern void ABISELECT(_ZThn48_N7ee775223fooEv,_ZThn24_N7ee775223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee775223barEv,_ZTv0_n16_N7ee775223barEv)();
+extern void ABISELECT(_ZThn48_N7ee775223barEv,_ZThn24_N7ee775223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77522[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77522[0]),
+ (VTBL_ENTRY)&_ZN7ee775223fooEv,
+ (VTBL_ENTRY)&_ZN7ee775223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee775223barEv,_ZTv0_n20_N7ee775223barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee775223fooEv,_ZTv0_n24_N7ee775223fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee775223barEv,_ZTv0_n16_N7ee775223barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee77522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee775223fooEv,_ZTv0_n12_N7ee775223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee775223barEv,_ZTv0_n16_N7ee775223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee77522[];
+extern void _ZN6dd75223barEv();
+extern void _ZN6dd75223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7522__7ee77522[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7522[0]),
+ (VTBL_ENTRY)&_ZN6dd75223barEv,
+ (VTBL_ENTRY)&_ZN6dd75223fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75223barEv,_ZTv0_n16_N6dd75223barEv)();
+extern void ABISELECT(_ZThn16_N6dd75223barEv,_ZThn8_N6dd75223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc522__6dd7522__7ee77522[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75223barEv,_ZTv0_n16_N6dd75223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd75223fooEv,_ZTv0_n12_N6dd75223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75223fooEv,_ZThn16_N6dd75223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75223barEv,_ZTv0_n16_N6dd75223barEv)();
+extern void ABISELECT(_ZThn32_N6dd75223barEv,_ZThn16_N6dd75223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd7522__7ee77522[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7522[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75223fooEv,_ZTv0_n12_N6dd75223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75223barEv,_ZTv0_n16_N6dd75223barEv),
+};
+extern void _ZN5cc5223barEv();
+static VTBL_ENTRY _tg__ZTV5cc522__7ee77522[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN5cc5223barEv,
+};
+extern void _ZN4bb223fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv)();
+extern void ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc522__7ee77522[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc522[0]),
+ (VTBL_ENTRY)&_ZN4bb223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv),
+};
+static VTT_ENTRY vtt_ee77522[] = {
+ {&(_ZTV7ee77522[5]), 5,26},
+ {&(_ZTV7ee77522[13]), 13,26},
+ {&(_ZTV7ee77522[19]), 19,26},
+ {&(_ZTV7ee77522[24]), 24,26},
+ {&(_tg__ZTV6dd7522__7ee77522[4]), 4,6},
+ {&(_tg__ZTV5cc522__6dd7522__7ee77522[4]), 4,5},
+ {&(_tg__ZTV4bb22__6dd7522__7ee77522[4]), 4,6},
+ {&(_tg__ZTV5cc522__7ee77522[3]), 3,4},
+ {&(_tg__ZTV4bb22__5cc522__7ee77522[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee77522[];
+extern VTBL_ENTRY _ZTV7ee77522[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77522[];
+static VTBL_ENTRY alt_thunk_names1197[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5223barEv,_ZTv0_n16_N5cc5223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5223barEv,_ZThn8_N5cc5223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75223fooEv,_ZTv0_n12_N6dd75223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75223fooEv,_ZThn16_N6dd75223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75223barEv,_ZTv0_n16_N6dd75223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75223barEv,_ZThn16_N6dd75223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75223barEv,_ZThn8_N6dd75223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee775223fooEv,_ZTv0_n12_N7ee775223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee775223fooEv,_ZThn24_N7ee775223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee775223barEv,_ZTv0_n16_N7ee775223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee775223barEv,_ZThn24_N7ee775223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee775223barEv,_ZThn16_N7ee775223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee775223fooEv,_ZTv0_n24_N7ee775223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee775223fooEv,_ZThn8_N7ee775223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee775223barEv,_ZTv0_n20_N7ee775223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee775223barEv,_ZThn8_N7ee775223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77522 = { "ee77522", // class name
+ bases_ee77522, 4,
+ &(vtc_ee77522[0]), // expected_vtbl_contents
+ &(vtt_ee77522[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee77522),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77522),26, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77522),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1197,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc622 : bb22 {
+ int c;
+ virtual void foo(); // _ZN5cc6223fooEv
+ virtual void bar(); // _ZN5cc6223barEv
+ ~cc622(); // tgen
+ cc622(); // tgen
+};
+//SIG(-1 cc622) C1{ BC2{ BC3{ v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void cc622 ::foo(){vfunc_called(this, "_ZN5cc6223fooEv");}
+void cc622 ::bar(){vfunc_called(this, "_ZN5cc6223barEv");}
+cc622 ::~cc622(){ note_dtor("cc622", this);} // tgen
+cc622 ::cc622(){ note_ctor("cc622", this);} // tgen
+
+static void Test_cc622()
+{
+ extern Class_Descriptor cd_cc622;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,5)];
+ init_test(&cd_cc622, buf);
+ cc622 *dp, &lv = *(dp=new (buf) cc622());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,16), "sizeof(cc622)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc622)");
+ check_base_class_offset(lv, (aa2*)(bb22*), 0, "cc622");
+ check_base_class_offset(lv, (bb22*), 0, "cc622");
+ check_field_offset(lv, c, ABISELECT(16,12), "cc622.c");
+ test_class_info(&lv, &cd_cc622);
+ dp->~cc622();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc622(Test_cc622, "cc622", ABISELECT(24,16));
+
+#else // __cplusplus
+
+extern void _ZN5cc622C1Ev();
+extern void _ZN5cc622D1Ev();
+Name_Map name_map_cc622[] = {
+ NSPAIR(_ZN5cc622C1Ev),
+ NSPAIR(_ZN5cc622D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+static Base_Class bases_cc622[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI5cc622[];
+extern void _ZN5cc6223fooEv();
+extern void _ZN5cc6223barEv();
+static VTBL_ENTRY vtc_cc622[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc622[0]),
+ (VTBL_ENTRY)&_ZN5cc6223fooEv,
+ (VTBL_ENTRY)&_ZN5cc6223barEv,
+};
+extern VTBL_ENTRY _ZTI5cc622[];
+extern VTBL_ENTRY _ZTV5cc622[];
+Class_Descriptor cd_cc622 = { "cc622", // class name
+ bases_cc622, 2,
+ &(vtc_cc622[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,16), // object size
+ NSPAIRA(_ZTI5cc622),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV5cc622),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 dd0622 : cc622 {
+ int d;
+ ~dd0622(); // tgen
+ dd0622(); // tgen
+};
+//SIG(-1 dd0622) C1{ BC2{ BC3{ BC4{ v1 v2 Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+dd0622 ::~dd0622(){ note_dtor("dd0622", this);} // tgen
+dd0622 ::dd0622(){ note_ctor("dd0622", this);} // tgen
+
+static void Test_dd0622()
+{
+ extern Class_Descriptor cd_dd0622;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd0622, buf);
+ dd0622 *dp, &lv = *(dp=new (buf) dd0622());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd0622)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0622)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc622*), 0, "dd0622");
+ check_base_class_offset(lv, (bb22*)(cc622*), 0, "dd0622");
+ check_base_class_offset(lv, (cc622*), 0, "dd0622");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd0622.d");
+ test_class_info(&lv, &cd_dd0622);
+ dp->~dd0622();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0622(Test_dd0622, "dd0622", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd0622C1Ev();
+extern void _ZN6dd0622D1Ev();
+Name_Map name_map_dd0622[] = {
+ NSPAIR(_ZN6dd0622C1Ev),
+ NSPAIR(_ZN6dd0622D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc622;
+extern VTBL_ENTRY _ZTI5cc622[];
+extern VTBL_ENTRY _ZTV5cc622[];
+static Base_Class bases_dd0622[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc622, 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 _ZTI6dd0622[];
+extern void _ZN5cc6223fooEv();
+extern void _ZN5cc6223barEv();
+static VTBL_ENTRY vtc_dd0622[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0622[0]),
+ (VTBL_ENTRY)&_ZN5cc6223fooEv,
+ (VTBL_ENTRY)&_ZN5cc6223barEv,
+};
+extern VTBL_ENTRY _ZTI6dd0622[];
+extern VTBL_ENTRY _ZTV6dd0622[];
+Class_Descriptor cd_dd0622 = { "dd0622", // class name
+ bases_dd0622, 3,
+ &(vtc_dd0622[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd0622),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0622),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 ee00622 : dd0622 {
+ int e;
+ ~ee00622(); // tgen
+ ee00622(); // tgen
+};
+//SIG(1 ee00622) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee00622 ::~ee00622(){ note_dtor("ee00622", this);} // tgen
+ee00622 ::ee00622(){ note_ctor("ee00622", this);} // tgen
+
+static void Test_ee00622()
+{
+ extern Class_Descriptor cd_ee00622;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee00622, buf);
+ ee00622 *dp, &lv = *(dp=new (buf) ee00622());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee00622)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00622)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc622*)(dd0622*), 0, "ee00622");
+ check_base_class_offset(lv, (bb22*)(cc622*)(dd0622*), 0, "ee00622");
+ check_base_class_offset(lv, (cc622*)(dd0622*), 0, "ee00622");
+ check_base_class_offset(lv, (dd0622*), 0, "ee00622");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee00622.e");
+ test_class_info(&lv, &cd_ee00622);
+ dp->~ee00622();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00622(Test_ee00622, "ee00622", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee00622C1Ev();
+extern void _ZN7ee00622D1Ev();
+Name_Map name_map_ee00622[] = {
+ NSPAIR(_ZN7ee00622C1Ev),
+ NSPAIR(_ZN7ee00622D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc622;
+extern VTBL_ENTRY _ZTI5cc622[];
+extern VTBL_ENTRY _ZTV5cc622[];
+extern Class_Descriptor cd_dd0622;
+extern VTBL_ENTRY _ZTI6dd0622[];
+extern VTBL_ENTRY _ZTV6dd0622[];
+static Base_Class bases_ee00622[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc622, 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_dd0622, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee00622[];
+extern void _ZN5cc6223fooEv();
+extern void _ZN5cc6223barEv();
+static VTBL_ENTRY vtc_ee00622[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00622[0]),
+ (VTBL_ENTRY)&_ZN5cc6223fooEv,
+ (VTBL_ENTRY)&_ZN5cc6223barEv,
+};
+extern VTBL_ENTRY _ZTI7ee00622[];
+extern VTBL_ENTRY _ZTV7ee00622[];
+Class_Descriptor cd_ee00622 = { "ee00622", // class name
+ bases_ee00622, 4,
+ &(vtc_ee00622[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee00622),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00622),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 ee10622 : virtual dd0622 {
+ int e;
+ ~ee10622(); // tgen
+ ee10622(); // tgen
+};
+//SIG(1 ee10622) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee10622 ::~ee10622(){ note_dtor("ee10622", this);} // tgen
+ee10622 ::ee10622(){ note_ctor("ee10622", this);} // tgen
+
+static void Test_ee10622()
+{
+ extern Class_Descriptor cd_ee10622;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee10622, buf);
+ ee10622 *dp, &lv = *(dp=new (buf) ee10622());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee10622)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10622)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc622*)(dd0622*), ABISELECT(16,8), "ee10622");
+ check_base_class_offset(lv, (bb22*)(cc622*)(dd0622*), ABISELECT(16,8), "ee10622");
+ check_base_class_offset(lv, (cc622*)(dd0622*), ABISELECT(16,8), "ee10622");
+ check_base_class_offset(lv, (dd0622*), ABISELECT(16,8), "ee10622");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10622.e");
+ test_class_info(&lv, &cd_ee10622);
+ dp->~ee10622();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10622(Test_ee10622, "ee10622", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee10622C1Ev();
+extern void _ZN7ee10622D1Ev();
+Name_Map name_map_ee10622[] = {
+ NSPAIR(_ZN7ee10622C1Ev),
+ NSPAIR(_ZN7ee10622D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc622;
+extern VTBL_ENTRY _ZTI5cc622[];
+extern VTBL_ENTRY _ZTV5cc622[];
+extern Class_Descriptor cd_dd0622;
+extern VTBL_ENTRY _ZTI6dd0622[];
+extern VTBL_ENTRY _ZTV6dd0622[];
+static Base_Class bases_ee10622[] = {
+ // 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_bb22, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc622, 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_dd0622, 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 _ZTI7ee10622[];
+extern void _ZN5cc6223fooEv();
+extern void _ZN5cc6223barEv();
+static VTBL_ENTRY vtc_ee10622[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10622[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10622[0]),
+ (VTBL_ENTRY)&_ZN5cc6223fooEv,
+ (VTBL_ENTRY)&_ZN5cc6223barEv,
+};
+extern VTBL_ENTRY _ZTV7ee10622[];
+static VTT_ENTRY vtt_ee10622[] = {
+ {&(_ZTV7ee10622[3]), 3,9},
+ {&(_ZTV7ee10622[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee10622[];
+extern VTBL_ENTRY _ZTV7ee10622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10622[];
+Class_Descriptor cd_ee10622 = { "ee10622", // class name
+ bases_ee10622, 4,
+ &(vtc_ee10622[0]), // expected_vtbl_contents
+ &(vtt_ee10622[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee10622),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10622),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10622),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 ee20622 : dd0622 {
+ int e;
+ virtual void foo(); // _ZN7ee206223fooEv
+ ~ee20622(); // tgen
+ ee20622(); // tgen
+};
+//SIG(1 ee20622) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee20622 ::foo(){vfunc_called(this, "_ZN7ee206223fooEv");}
+ee20622 ::~ee20622(){ note_dtor("ee20622", this);} // tgen
+ee20622 ::ee20622(){ note_ctor("ee20622", this);} // tgen
+
+static void Test_ee20622()
+{
+ extern Class_Descriptor cd_ee20622;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee20622, buf);
+ ee20622 *dp, &lv = *(dp=new (buf) ee20622());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee20622)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20622)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc622*)(dd0622*), 0, "ee20622");
+ check_base_class_offset(lv, (bb22*)(cc622*)(dd0622*), 0, "ee20622");
+ check_base_class_offset(lv, (cc622*)(dd0622*), 0, "ee20622");
+ check_base_class_offset(lv, (dd0622*), 0, "ee20622");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee20622.e");
+ test_class_info(&lv, &cd_ee20622);
+ dp->~ee20622();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20622(Test_ee20622, "ee20622", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee20622C1Ev();
+extern void _ZN7ee20622D1Ev();
+Name_Map name_map_ee20622[] = {
+ NSPAIR(_ZN7ee20622C1Ev),
+ NSPAIR(_ZN7ee20622D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc622;
+extern VTBL_ENTRY _ZTI5cc622[];
+extern VTBL_ENTRY _ZTV5cc622[];
+extern Class_Descriptor cd_dd0622;
+extern VTBL_ENTRY _ZTI6dd0622[];
+extern VTBL_ENTRY _ZTV6dd0622[];
+static Base_Class bases_ee20622[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc622, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd0622, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee20622[];
+extern void _ZN7ee206223fooEv();
+extern void _ZN5cc6223barEv();
+static VTBL_ENTRY vtc_ee20622[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20622[0]),
+ (VTBL_ENTRY)&_ZN7ee206223fooEv,
+ (VTBL_ENTRY)&_ZN5cc6223barEv,
+};
+extern VTBL_ENTRY _ZTI7ee20622[];
+extern VTBL_ENTRY _ZTV7ee20622[];
+Class_Descriptor cd_ee20622 = { "ee20622", // class name
+ bases_ee20622, 4,
+ &(vtc_ee20622[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee20622),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20622),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 ee30622 : virtual dd0622 {
+ int e;
+ virtual void foo(); // _ZN7ee306223fooEv
+ ~ee30622(); // tgen
+ ee30622(); // tgen
+};
+//SIG(1 ee30622) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee30622 ::foo(){vfunc_called(this, "_ZN7ee306223fooEv");}
+ee30622 ::~ee30622(){ note_dtor("ee30622", this);} // tgen
+ee30622 ::ee30622(){ note_ctor("ee30622", this);} // tgen
+
+static void Test_ee30622()
+{
+ extern Class_Descriptor cd_ee30622;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee30622, buf);
+ ee30622 *dp, &lv = *(dp=new (buf) ee30622());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee30622)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30622)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc622*)(dd0622*), ABISELECT(16,8), "ee30622");
+ check_base_class_offset(lv, (bb22*)(cc622*)(dd0622*), ABISELECT(16,8), "ee30622");
+ check_base_class_offset(lv, (cc622*)(dd0622*), ABISELECT(16,8), "ee30622");
+ check_base_class_offset(lv, (dd0622*), ABISELECT(16,8), "ee30622");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30622.e");
+ test_class_info(&lv, &cd_ee30622);
+ dp->~ee30622();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30622(Test_ee30622, "ee30622", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee30622C1Ev();
+extern void _ZN7ee30622D1Ev();
+Name_Map name_map_ee30622[] = {
+ NSPAIR(_ZN7ee30622C1Ev),
+ NSPAIR(_ZN7ee30622D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc622;
+extern VTBL_ENTRY _ZTI5cc622[];
+extern VTBL_ENTRY _ZTV5cc622[];
+extern Class_Descriptor cd_dd0622;
+extern VTBL_ENTRY _ZTI6dd0622[];
+extern VTBL_ENTRY _ZTV6dd0622[];
+static Base_Class bases_ee30622[] = {
+ // 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_bb22, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc622, 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_dd0622, 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 _ZTI7ee30622[];
+extern void _ZN7ee306223fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee306223fooEv,_ZTv0_n12_N7ee306223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee306223fooEv,_ZThn8_N7ee306223fooEv)() __attribute__((weak));
+extern void _ZN5cc6223barEv();
+static VTBL_ENTRY vtc_ee30622[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30622[0]),
+ (VTBL_ENTRY)&_ZN7ee306223fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30622[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee306223fooEv,_ZTv0_n12_N7ee306223fooEv),
+ (VTBL_ENTRY)&_ZN5cc6223barEv,
+};
+extern VTBL_ENTRY _ZTV7ee30622[];
+static VTT_ENTRY vtt_ee30622[] = {
+ {&(_ZTV7ee30622[3]), 3,10},
+ {&(_ZTV7ee30622[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee30622[];
+extern VTBL_ENTRY _ZTV7ee30622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30622[];
+static VTBL_ENTRY alt_thunk_names1198[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee306223fooEv,_ZTv0_n12_N7ee306223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee306223fooEv,_ZThn8_N7ee306223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30622 = { "ee30622", // class name
+ bases_ee30622, 4,
+ &(vtc_ee30622[0]), // expected_vtbl_contents
+ &(vtt_ee30622[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee30622),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30622),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30622),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1198,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee40622 : dd0622 {
+ int e;
+ virtual void bar(); // _ZN7ee406223barEv
+ ~ee40622(); // tgen
+ ee40622(); // tgen
+};
+//SIG(1 ee40622) C1{ BC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee40622 ::bar(){vfunc_called(this, "_ZN7ee406223barEv");}
+ee40622 ::~ee40622(){ note_dtor("ee40622", this);} // tgen
+ee40622 ::ee40622(){ note_ctor("ee40622", this);} // tgen
+
+static void Test_ee40622()
+{
+ extern Class_Descriptor cd_ee40622;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee40622, buf);
+ ee40622 *dp, &lv = *(dp=new (buf) ee40622());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee40622)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40622)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc622*)(dd0622*), 0, "ee40622");
+ check_base_class_offset(lv, (bb22*)(cc622*)(dd0622*), 0, "ee40622");
+ check_base_class_offset(lv, (cc622*)(dd0622*), 0, "ee40622");
+ check_base_class_offset(lv, (dd0622*), 0, "ee40622");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee40622.e");
+ test_class_info(&lv, &cd_ee40622);
+ dp->~ee40622();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40622(Test_ee40622, "ee40622", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee40622C1Ev();
+extern void _ZN7ee40622D1Ev();
+Name_Map name_map_ee40622[] = {
+ NSPAIR(_ZN7ee40622C1Ev),
+ NSPAIR(_ZN7ee40622D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc622;
+extern VTBL_ENTRY _ZTI5cc622[];
+extern VTBL_ENTRY _ZTV5cc622[];
+extern Class_Descriptor cd_dd0622;
+extern VTBL_ENTRY _ZTI6dd0622[];
+extern VTBL_ENTRY _ZTV6dd0622[];
+static Base_Class bases_ee40622[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc622, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd0622, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee40622[];
+extern void _ZN5cc6223fooEv();
+extern void _ZN7ee406223barEv();
+static VTBL_ENTRY vtc_ee40622[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40622[0]),
+ (VTBL_ENTRY)&_ZN5cc6223fooEv,
+ (VTBL_ENTRY)&_ZN7ee406223barEv,
+};
+extern VTBL_ENTRY _ZTI7ee40622[];
+extern VTBL_ENTRY _ZTV7ee40622[];
+Class_Descriptor cd_ee40622 = { "ee40622", // class name
+ bases_ee40622, 4,
+ &(vtc_ee40622[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee40622),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40622),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 ee50622 : virtual dd0622 {
+ int e;
+ virtual void bar(); // _ZN7ee506223barEv
+ ~ee50622(); // tgen
+ ee50622(); // tgen
+};
+//SIG(1 ee50622) C1{ VBC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee50622 ::bar(){vfunc_called(this, "_ZN7ee506223barEv");}
+ee50622 ::~ee50622(){ note_dtor("ee50622", this);} // tgen
+ee50622 ::ee50622(){ note_ctor("ee50622", this);} // tgen
+
+static void Test_ee50622()
+{
+ extern Class_Descriptor cd_ee50622;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee50622, buf);
+ ee50622 *dp, &lv = *(dp=new (buf) ee50622());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee50622)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50622)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc622*)(dd0622*), ABISELECT(16,8), "ee50622");
+ check_base_class_offset(lv, (bb22*)(cc622*)(dd0622*), ABISELECT(16,8), "ee50622");
+ check_base_class_offset(lv, (cc622*)(dd0622*), ABISELECT(16,8), "ee50622");
+ check_base_class_offset(lv, (dd0622*), ABISELECT(16,8), "ee50622");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50622.e");
+ test_class_info(&lv, &cd_ee50622);
+ dp->~ee50622();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50622(Test_ee50622, "ee50622", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee50622C1Ev();
+extern void _ZN7ee50622D1Ev();
+Name_Map name_map_ee50622[] = {
+ NSPAIR(_ZN7ee50622C1Ev),
+ NSPAIR(_ZN7ee50622D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc622;
+extern VTBL_ENTRY _ZTI5cc622[];
+extern VTBL_ENTRY _ZTV5cc622[];
+extern Class_Descriptor cd_dd0622;
+extern VTBL_ENTRY _ZTI6dd0622[];
+extern VTBL_ENTRY _ZTV6dd0622[];
+static Base_Class bases_ee50622[] = {
+ // 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_bb22, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc622, 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_dd0622, 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 _ZTI7ee50622[];
+extern void _ZN7ee506223barEv();
+extern void _ZN5cc6223fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee506223barEv,_ZTv0_n16_N7ee506223barEv)();
+extern void ABISELECT(_ZThn16_N7ee506223barEv,_ZThn8_N7ee506223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee50622[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50622[0]),
+ (VTBL_ENTRY)&_ZN7ee506223barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50622[0]),
+ (VTBL_ENTRY)&_ZN5cc6223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee506223barEv,_ZTv0_n16_N7ee506223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee50622[];
+static VTT_ENTRY vtt_ee50622[] = {
+ {&(_ZTV7ee50622[3]), 3,10},
+ {&(_ZTV7ee50622[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee50622[];
+extern VTBL_ENTRY _ZTV7ee50622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50622[];
+static VTBL_ENTRY alt_thunk_names1199[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee506223barEv,_ZTv0_n16_N7ee506223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee506223barEv,_ZThn8_N7ee506223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50622 = { "ee50622", // class name
+ bases_ee50622, 4,
+ &(vtc_ee50622[0]), // expected_vtbl_contents
+ &(vtt_ee50622[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee50622),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50622),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50622),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1199,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee60622 : dd0622 {
+ int e;
+ virtual void foo(); // _ZN7ee606223fooEv
+ virtual void bar(); // _ZN7ee606223barEv
+ ~ee60622(); // tgen
+ ee60622(); // tgen
+};
+//SIG(1 ee60622) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee60622 ::foo(){vfunc_called(this, "_ZN7ee606223fooEv");}
+void ee60622 ::bar(){vfunc_called(this, "_ZN7ee606223barEv");}
+ee60622 ::~ee60622(){ note_dtor("ee60622", this);} // tgen
+ee60622 ::ee60622(){ note_ctor("ee60622", this);} // tgen
+
+static void Test_ee60622()
+{
+ extern Class_Descriptor cd_ee60622;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee60622, buf);
+ ee60622 *dp, &lv = *(dp=new (buf) ee60622());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee60622)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60622)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc622*)(dd0622*), 0, "ee60622");
+ check_base_class_offset(lv, (bb22*)(cc622*)(dd0622*), 0, "ee60622");
+ check_base_class_offset(lv, (cc622*)(dd0622*), 0, "ee60622");
+ check_base_class_offset(lv, (dd0622*), 0, "ee60622");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee60622.e");
+ test_class_info(&lv, &cd_ee60622);
+ dp->~ee60622();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60622(Test_ee60622, "ee60622", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee60622C1Ev();
+extern void _ZN7ee60622D1Ev();
+Name_Map name_map_ee60622[] = {
+ NSPAIR(_ZN7ee60622C1Ev),
+ NSPAIR(_ZN7ee60622D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc622;
+extern VTBL_ENTRY _ZTI5cc622[];
+extern VTBL_ENTRY _ZTV5cc622[];
+extern Class_Descriptor cd_dd0622;
+extern VTBL_ENTRY _ZTI6dd0622[];
+extern VTBL_ENTRY _ZTV6dd0622[];
+static Base_Class bases_ee60622[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc622, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd0622, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee60622[];
+extern void _ZN7ee606223fooEv();
+extern void _ZN7ee606223barEv();
+static VTBL_ENTRY vtc_ee60622[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60622[0]),
+ (VTBL_ENTRY)&_ZN7ee606223fooEv,
+ (VTBL_ENTRY)&_ZN7ee606223barEv,
+};
+extern VTBL_ENTRY _ZTI7ee60622[];
+extern VTBL_ENTRY _ZTV7ee60622[];
+Class_Descriptor cd_ee60622 = { "ee60622", // class name
+ bases_ee60622, 4,
+ &(vtc_ee60622[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee60622),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60622),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 ee70622 : virtual dd0622 {
+ int e;
+ virtual void foo(); // _ZN7ee706223fooEv
+ virtual void bar(); // _ZN7ee706223barEv
+ ~ee70622(); // tgen
+ ee70622(); // tgen
+};
+//SIG(1 ee70622) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee70622 ::foo(){vfunc_called(this, "_ZN7ee706223fooEv");}
+void ee70622 ::bar(){vfunc_called(this, "_ZN7ee706223barEv");}
+ee70622 ::~ee70622(){ note_dtor("ee70622", this);} // tgen
+ee70622 ::ee70622(){ note_ctor("ee70622", this);} // tgen
+
+static void Test_ee70622()
+{
+ extern Class_Descriptor cd_ee70622;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee70622, buf);
+ ee70622 *dp, &lv = *(dp=new (buf) ee70622());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee70622)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70622)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc622*)(dd0622*), ABISELECT(16,8), "ee70622");
+ check_base_class_offset(lv, (bb22*)(cc622*)(dd0622*), ABISELECT(16,8), "ee70622");
+ check_base_class_offset(lv, (cc622*)(dd0622*), ABISELECT(16,8), "ee70622");
+ check_base_class_offset(lv, (dd0622*), ABISELECT(16,8), "ee70622");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70622.e");
+ test_class_info(&lv, &cd_ee70622);
+ dp->~ee70622();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70622(Test_ee70622, "ee70622", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee70622C1Ev();
+extern void _ZN7ee70622D1Ev();
+Name_Map name_map_ee70622[] = {
+ NSPAIR(_ZN7ee70622C1Ev),
+ NSPAIR(_ZN7ee70622D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc622;
+extern VTBL_ENTRY _ZTI5cc622[];
+extern VTBL_ENTRY _ZTV5cc622[];
+extern Class_Descriptor cd_dd0622;
+extern VTBL_ENTRY _ZTI6dd0622[];
+extern VTBL_ENTRY _ZTV6dd0622[];
+static Base_Class bases_ee70622[] = {
+ // 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_bb22, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc622, 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_dd0622, 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 _ZTI7ee70622[];
+extern void _ZN7ee706223fooEv();
+extern void _ZN7ee706223barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee706223fooEv,_ZTv0_n12_N7ee706223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee706223fooEv,_ZThn8_N7ee706223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee706223barEv,_ZTv0_n16_N7ee706223barEv)();
+extern void ABISELECT(_ZThn16_N7ee706223barEv,_ZThn8_N7ee706223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70622[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70622[0]),
+ (VTBL_ENTRY)&_ZN7ee706223fooEv,
+ (VTBL_ENTRY)&_ZN7ee706223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70622[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee706223fooEv,_ZTv0_n12_N7ee706223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee706223barEv,_ZTv0_n16_N7ee706223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee70622[];
+static VTT_ENTRY vtt_ee70622[] = {
+ {&(_ZTV7ee70622[3]), 3,11},
+ {&(_ZTV7ee70622[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee70622[];
+extern VTBL_ENTRY _ZTV7ee70622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70622[];
+static VTBL_ENTRY alt_thunk_names1200[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee706223barEv,_ZTv0_n16_N7ee706223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee706223barEv,_ZThn8_N7ee706223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee706223fooEv,_ZTv0_n12_N7ee706223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee706223fooEv,_ZThn8_N7ee706223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70622 = { "ee70622", // class name
+ bases_ee70622, 4,
+ &(vtc_ee70622[0]), // expected_vtbl_contents
+ &(vtt_ee70622[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee70622),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70622),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70622),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1200,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd1622 : virtual cc622 {
+ int d;
+ ~dd1622(); // tgen
+ dd1622(); // tgen
+};
+//SIG(-1 dd1622) C1{ VBC2{ BC3{ BC4{ v1 v2 Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+dd1622 ::~dd1622(){ note_dtor("dd1622", this);} // tgen
+dd1622 ::dd1622(){ note_ctor("dd1622", this);} // tgen
+
+static void Test_dd1622()
+{
+ extern Class_Descriptor cd_dd1622;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd1622, buf);
+ dd1622 *dp, &lv = *(dp=new (buf) dd1622());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd1622)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1622)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc622*), ABISELECT(16,8), "dd1622");
+ check_base_class_offset(lv, (bb22*)(cc622*), ABISELECT(16,8), "dd1622");
+ check_base_class_offset(lv, (cc622*), ABISELECT(16,8), "dd1622");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1622.d");
+ test_class_info(&lv, &cd_dd1622);
+ dp->~dd1622();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1622(Test_dd1622, "dd1622", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd1622C1Ev();
+extern void _ZN6dd1622D1Ev();
+Name_Map name_map_dd1622[] = {
+ NSPAIR(_ZN6dd1622C1Ev),
+ NSPAIR(_ZN6dd1622D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc622;
+extern VTBL_ENTRY _ZTI5cc622[];
+extern VTBL_ENTRY _ZTV5cc622[];
+static Base_Class bases_dd1622[] = {
+ // 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_bb22, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc622, 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 _ZTI6dd1622[];
+extern void _ZN5cc6223fooEv();
+extern void _ZN5cc6223barEv();
+static VTBL_ENTRY vtc_dd1622[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1622[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1622[0]),
+ (VTBL_ENTRY)&_ZN5cc6223fooEv,
+ (VTBL_ENTRY)&_ZN5cc6223barEv,
+};
+extern VTBL_ENTRY _ZTV6dd1622[];
+static VTT_ENTRY vtt_dd1622[] = {
+ {&(_ZTV6dd1622[3]), 3,9},
+ {&(_ZTV6dd1622[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI6dd1622[];
+extern VTBL_ENTRY _ZTV6dd1622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1622[];
+Class_Descriptor cd_dd1622 = { "dd1622", // class name
+ bases_dd1622, 3,
+ &(vtc_dd1622[0]), // expected_vtbl_contents
+ &(vtt_dd1622[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd1622),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1622),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1622),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 ee01622 : dd1622 {
+ int e;
+ ~ee01622(); // tgen
+ ee01622(); // tgen
+};
+//SIG(1 ee01622) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee01622 ::~ee01622(){ note_dtor("ee01622", this);} // tgen
+ee01622 ::ee01622(){ note_ctor("ee01622", this);} // tgen
+
+static void Test_ee01622()
+{
+ extern Class_Descriptor cd_ee01622;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee01622, buf);
+ ee01622 *dp, &lv = *(dp=new (buf) ee01622());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee01622)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01622)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc622*), ABISELECT(16,12), "ee01622");
+ check_base_class_offset(lv, (bb22*)(cc622*), ABISELECT(16,12), "ee01622");
+ check_base_class_offset(lv, (cc622*)(dd1622*), ABISELECT(16,12), "ee01622");
+ check_base_class_offset(lv, (dd1622*), 0, "ee01622");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01622.e");
+ test_class_info(&lv, &cd_ee01622);
+ dp->~ee01622();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01622(Test_ee01622, "ee01622", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee01622C1Ev();
+extern void _ZN7ee01622D1Ev();
+Name_Map name_map_ee01622[] = {
+ NSPAIR(_ZN7ee01622C1Ev),
+ NSPAIR(_ZN7ee01622D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc622;
+extern VTBL_ENTRY _ZTI5cc622[];
+extern VTBL_ENTRY _ZTV5cc622[];
+extern Class_Descriptor cd_dd1622;
+extern VTBL_ENTRY _ZTI6dd1622[];
+extern VTBL_ENTRY _ZTV6dd1622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1622[];
+static Base_Class bases_ee01622[] = {
+ // 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_bb22, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc622, 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_dd1622, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01622[];
+extern void _ZN5cc6223fooEv();
+extern void _ZN5cc6223barEv();
+static VTBL_ENTRY vtc_ee01622[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01622[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01622[0]),
+ (VTBL_ENTRY)&_ZN5cc6223fooEv,
+ (VTBL_ENTRY)&_ZN5cc6223barEv,
+};
+extern VTBL_ENTRY _ZTV7ee01622[];
+static VTBL_ENTRY _tg__ZTV6dd1622__7ee01622[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1622[0]),
+};
+extern void _ZN5cc6223fooEv();
+extern void _ZN5cc6223barEv();
+static VTBL_ENTRY _tg__ZTV5cc622__6dd1622__7ee01622[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1622[0]),
+ (VTBL_ENTRY)&_ZN5cc6223fooEv,
+ (VTBL_ENTRY)&_ZN5cc6223barEv,
+};
+static VTT_ENTRY vtt_ee01622[] = {
+ {&(_ZTV7ee01622[3]), 3,9},
+ {&(_tg__ZTV6dd1622__7ee01622[3]), 3,3},
+ {&(_tg__ZTV5cc622__6dd1622__7ee01622[4]), 4,6},
+ {&(_ZTV7ee01622[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee01622[];
+extern VTBL_ENTRY _ZTV7ee01622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01622[];
+Class_Descriptor cd_ee01622 = { "ee01622", // class name
+ bases_ee01622, 4,
+ &(vtc_ee01622[0]), // expected_vtbl_contents
+ &(vtt_ee01622[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee01622),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01622),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01622),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 ee11622 : virtual dd1622 {
+ int e;
+ ~ee11622(); // tgen
+ ee11622(); // tgen
+};
+//SIG(1 ee11622) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee11622 ::~ee11622(){ note_dtor("ee11622", this);} // tgen
+ee11622 ::ee11622(){ note_ctor("ee11622", this);} // tgen
+
+static void Test_ee11622()
+{
+ extern Class_Descriptor cd_ee11622;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee11622, buf);
+ ee11622 *dp, &lv = *(dp=new (buf) ee11622());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee11622)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11622)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc622*), ABISELECT(32,16), "ee11622");
+ check_base_class_offset(lv, (bb22*)(cc622*), ABISELECT(32,16), "ee11622");
+ check_base_class_offset(lv, (cc622*)(dd1622*), ABISELECT(32,16), "ee11622");
+ check_base_class_offset(lv, (dd1622*), ABISELECT(16,8), "ee11622");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11622.e");
+ test_class_info(&lv, &cd_ee11622);
+ dp->~ee11622();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11622(Test_ee11622, "ee11622", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee11622C1Ev();
+extern void _ZN7ee11622D1Ev();
+Name_Map name_map_ee11622[] = {
+ NSPAIR(_ZN7ee11622C1Ev),
+ NSPAIR(_ZN7ee11622D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc622;
+extern VTBL_ENTRY _ZTI5cc622[];
+extern VTBL_ENTRY _ZTV5cc622[];
+extern Class_Descriptor cd_dd1622;
+extern VTBL_ENTRY _ZTI6dd1622[];
+extern VTBL_ENTRY _ZTV6dd1622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1622[];
+static Base_Class bases_ee11622[] = {
+ // 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_bb22, 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_cc622, 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_dd1622, 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 _ZTI7ee11622[];
+extern void _ZN5cc6223fooEv();
+extern void _ZN5cc6223barEv();
+static VTBL_ENTRY vtc_ee11622[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11622[0]),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11622[0]),
+ 0,
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11622[0]),
+ (VTBL_ENTRY)&_ZN5cc6223fooEv,
+ (VTBL_ENTRY)&_ZN5cc6223barEv,
+};
+extern VTBL_ENTRY _ZTV7ee11622[];
+static VTBL_ENTRY _tg__ZTV6dd1622__7ee11622[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1622[0]),
+};
+extern void _ZN5cc6223fooEv();
+extern void _ZN5cc6223barEv();
+static VTBL_ENTRY _tg__ZTV5cc622__6dd1622__7ee11622[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1622[0]),
+ (VTBL_ENTRY)&_ZN5cc6223fooEv,
+ (VTBL_ENTRY)&_ZN5cc6223barEv,
+};
+static VTT_ENTRY vtt_ee11622[] = {
+ {&(_ZTV7ee11622[4]), 4,13},
+ {&(_ZTV7ee11622[7]), 7,13},
+ {&(_ZTV7ee11622[11]), 11,13},
+ {&(_tg__ZTV6dd1622__7ee11622[3]), 3,3},
+ {&(_tg__ZTV5cc622__6dd1622__7ee11622[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee11622[];
+extern VTBL_ENTRY _ZTV7ee11622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11622[];
+Class_Descriptor cd_ee11622 = { "ee11622", // class name
+ bases_ee11622, 4,
+ &(vtc_ee11622[0]), // expected_vtbl_contents
+ &(vtt_ee11622[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee11622),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11622),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11622),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 ee21622 : dd1622 {
+ int e;
+ virtual void foo(); // _ZN7ee216223fooEv
+ ~ee21622(); // tgen
+ ee21622(); // tgen
+};
+//SIG(1 ee21622) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee21622 ::foo(){vfunc_called(this, "_ZN7ee216223fooEv");}
+ee21622 ::~ee21622(){ note_dtor("ee21622", this);} // tgen
+ee21622 ::ee21622(){ note_ctor("ee21622", this);} // tgen
+
+static void Test_ee21622()
+{
+ extern Class_Descriptor cd_ee21622;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee21622, buf);
+ ee21622 *dp, &lv = *(dp=new (buf) ee21622());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee21622)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21622)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc622*), ABISELECT(16,12), "ee21622");
+ check_base_class_offset(lv, (bb22*)(cc622*), ABISELECT(16,12), "ee21622");
+ check_base_class_offset(lv, (cc622*)(dd1622*), ABISELECT(16,12), "ee21622");
+ check_base_class_offset(lv, (dd1622*), 0, "ee21622");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21622.e");
+ test_class_info(&lv, &cd_ee21622);
+ dp->~ee21622();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21622(Test_ee21622, "ee21622", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee21622C1Ev();
+extern void _ZN7ee21622D1Ev();
+Name_Map name_map_ee21622[] = {
+ NSPAIR(_ZN7ee21622C1Ev),
+ NSPAIR(_ZN7ee21622D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc622;
+extern VTBL_ENTRY _ZTI5cc622[];
+extern VTBL_ENTRY _ZTV5cc622[];
+extern Class_Descriptor cd_dd1622;
+extern VTBL_ENTRY _ZTI6dd1622[];
+extern VTBL_ENTRY _ZTV6dd1622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1622[];
+static Base_Class bases_ee21622[] = {
+ // 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_bb22, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc622, 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_dd1622, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21622[];
+extern void _ZN7ee216223fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee216223fooEv,_ZTv0_n12_N7ee216223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee216223fooEv,_ZThn12_N7ee216223fooEv)() __attribute__((weak));
+extern void _ZN5cc6223barEv();
+static VTBL_ENTRY vtc_ee21622[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21622[0]),
+ (VTBL_ENTRY)&_ZN7ee216223fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21622[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee216223fooEv,_ZTv0_n12_N7ee216223fooEv),
+ (VTBL_ENTRY)&_ZN5cc6223barEv,
+};
+extern VTBL_ENTRY _ZTV7ee21622[];
+static VTBL_ENTRY _tg__ZTV6dd1622__7ee21622[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1622[0]),
+};
+extern void _ZN5cc6223fooEv();
+extern void _ZN5cc6223barEv();
+static VTBL_ENTRY _tg__ZTV5cc622__6dd1622__7ee21622[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1622[0]),
+ (VTBL_ENTRY)&_ZN5cc6223fooEv,
+ (VTBL_ENTRY)&_ZN5cc6223barEv,
+};
+static VTT_ENTRY vtt_ee21622[] = {
+ {&(_ZTV7ee21622[3]), 3,10},
+ {&(_tg__ZTV6dd1622__7ee21622[3]), 3,3},
+ {&(_tg__ZTV5cc622__6dd1622__7ee21622[4]), 4,6},
+ {&(_ZTV7ee21622[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee21622[];
+extern VTBL_ENTRY _ZTV7ee21622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21622[];
+static VTBL_ENTRY alt_thunk_names1201[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee216223fooEv,_ZTv0_n12_N7ee216223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee216223fooEv,_ZThn12_N7ee216223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21622 = { "ee21622", // class name
+ bases_ee21622, 4,
+ &(vtc_ee21622[0]), // expected_vtbl_contents
+ &(vtt_ee21622[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee21622),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21622),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21622),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1201,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee31622 : virtual dd1622 {
+ int e;
+ virtual void foo(); // _ZN7ee316223fooEv
+ ~ee31622(); // tgen
+ ee31622(); // tgen
+};
+//SIG(1 ee31622) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee31622 ::foo(){vfunc_called(this, "_ZN7ee316223fooEv");}
+ee31622 ::~ee31622(){ note_dtor("ee31622", this);} // tgen
+ee31622 ::ee31622(){ note_ctor("ee31622", this);} // tgen
+
+static void Test_ee31622()
+{
+ extern Class_Descriptor cd_ee31622;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee31622, buf);
+ ee31622 *dp, &lv = *(dp=new (buf) ee31622());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee31622)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31622)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc622*), ABISELECT(32,16), "ee31622");
+ check_base_class_offset(lv, (bb22*)(cc622*), ABISELECT(32,16), "ee31622");
+ check_base_class_offset(lv, (cc622*)(dd1622*), ABISELECT(32,16), "ee31622");
+ check_base_class_offset(lv, (dd1622*), ABISELECT(16,8), "ee31622");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31622.e");
+ test_class_info(&lv, &cd_ee31622);
+ dp->~ee31622();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31622(Test_ee31622, "ee31622", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee31622C1Ev();
+extern void _ZN7ee31622D1Ev();
+Name_Map name_map_ee31622[] = {
+ NSPAIR(_ZN7ee31622C1Ev),
+ NSPAIR(_ZN7ee31622D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc622;
+extern VTBL_ENTRY _ZTI5cc622[];
+extern VTBL_ENTRY _ZTV5cc622[];
+extern Class_Descriptor cd_dd1622;
+extern VTBL_ENTRY _ZTI6dd1622[];
+extern VTBL_ENTRY _ZTV6dd1622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1622[];
+static Base_Class bases_ee31622[] = {
+ // 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_bb22, 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_cc622, 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_dd1622, 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 _ZTI7ee31622[];
+extern void _ZN7ee316223fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee316223fooEv,_ZTv0_n12_N7ee316223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee316223fooEv,_ZThn16_N7ee316223fooEv)() __attribute__((weak));
+extern void _ZN5cc6223barEv();
+static VTBL_ENTRY vtc_ee31622[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31622[0]),
+ (VTBL_ENTRY)&_ZN7ee316223fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31622[0]),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31622[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee316223fooEv,_ZTv0_n12_N7ee316223fooEv),
+ (VTBL_ENTRY)&_ZN5cc6223barEv,
+};
+extern VTBL_ENTRY _ZTV7ee31622[];
+static VTBL_ENTRY _tg__ZTV6dd1622__7ee31622[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1622[0]),
+};
+extern void _ZN5cc6223fooEv();
+extern void _ZN5cc6223barEv();
+static VTBL_ENTRY _tg__ZTV5cc622__6dd1622__7ee31622[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1622[0]),
+ (VTBL_ENTRY)&_ZN5cc6223fooEv,
+ (VTBL_ENTRY)&_ZN5cc6223barEv,
+};
+static VTT_ENTRY vtt_ee31622[] = {
+ {&(_ZTV7ee31622[4]), 4,14},
+ {&(_ZTV7ee31622[8]), 8,14},
+ {&(_ZTV7ee31622[12]), 12,14},
+ {&(_tg__ZTV6dd1622__7ee31622[3]), 3,3},
+ {&(_tg__ZTV5cc622__6dd1622__7ee31622[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee31622[];
+extern VTBL_ENTRY _ZTV7ee31622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31622[];
+static VTBL_ENTRY alt_thunk_names1202[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee316223fooEv,_ZTv0_n12_N7ee316223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee316223fooEv,_ZThn16_N7ee316223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31622 = { "ee31622", // class name
+ bases_ee31622, 4,
+ &(vtc_ee31622[0]), // expected_vtbl_contents
+ &(vtt_ee31622[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee31622),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31622),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31622),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1202,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee41622 : dd1622 {
+ int e;
+ virtual void bar(); // _ZN7ee416223barEv
+ ~ee41622(); // tgen
+ ee41622(); // tgen
+};
+//SIG(1 ee41622) C1{ BC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee41622 ::bar(){vfunc_called(this, "_ZN7ee416223barEv");}
+ee41622 ::~ee41622(){ note_dtor("ee41622", this);} // tgen
+ee41622 ::ee41622(){ note_ctor("ee41622", this);} // tgen
+
+static void Test_ee41622()
+{
+ extern Class_Descriptor cd_ee41622;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee41622, buf);
+ ee41622 *dp, &lv = *(dp=new (buf) ee41622());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee41622)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41622)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc622*), ABISELECT(16,12), "ee41622");
+ check_base_class_offset(lv, (bb22*)(cc622*), ABISELECT(16,12), "ee41622");
+ check_base_class_offset(lv, (cc622*)(dd1622*), ABISELECT(16,12), "ee41622");
+ check_base_class_offset(lv, (dd1622*), 0, "ee41622");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41622.e");
+ test_class_info(&lv, &cd_ee41622);
+ dp->~ee41622();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41622(Test_ee41622, "ee41622", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee41622C1Ev();
+extern void _ZN7ee41622D1Ev();
+Name_Map name_map_ee41622[] = {
+ NSPAIR(_ZN7ee41622C1Ev),
+ NSPAIR(_ZN7ee41622D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc622;
+extern VTBL_ENTRY _ZTI5cc622[];
+extern VTBL_ENTRY _ZTV5cc622[];
+extern Class_Descriptor cd_dd1622;
+extern VTBL_ENTRY _ZTI6dd1622[];
+extern VTBL_ENTRY _ZTV6dd1622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1622[];
+static Base_Class bases_ee41622[] = {
+ // 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_bb22, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc622, 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_dd1622, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41622[];
+extern void _ZN7ee416223barEv();
+extern void _ZN5cc6223fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee416223barEv,_ZTv0_n16_N7ee416223barEv)();
+extern void ABISELECT(_ZThn16_N7ee416223barEv,_ZThn12_N7ee416223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee41622[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41622[0]),
+ (VTBL_ENTRY)&_ZN7ee416223barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41622[0]),
+ (VTBL_ENTRY)&_ZN5cc6223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee416223barEv,_ZTv0_n16_N7ee416223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee41622[];
+static VTBL_ENTRY _tg__ZTV6dd1622__7ee41622[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1622[0]),
+};
+extern void _ZN5cc6223fooEv();
+extern void _ZN5cc6223barEv();
+static VTBL_ENTRY _tg__ZTV5cc622__6dd1622__7ee41622[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1622[0]),
+ (VTBL_ENTRY)&_ZN5cc6223fooEv,
+ (VTBL_ENTRY)&_ZN5cc6223barEv,
+};
+static VTT_ENTRY vtt_ee41622[] = {
+ {&(_ZTV7ee41622[3]), 3,10},
+ {&(_tg__ZTV6dd1622__7ee41622[3]), 3,3},
+ {&(_tg__ZTV5cc622__6dd1622__7ee41622[4]), 4,6},
+ {&(_ZTV7ee41622[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee41622[];
+extern VTBL_ENTRY _ZTV7ee41622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41622[];
+static VTBL_ENTRY alt_thunk_names1203[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee416223barEv,_ZTv0_n16_N7ee416223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee416223barEv,_ZThn12_N7ee416223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41622 = { "ee41622", // class name
+ bases_ee41622, 4,
+ &(vtc_ee41622[0]), // expected_vtbl_contents
+ &(vtt_ee41622[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee41622),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41622),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41622),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1203,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee51622 : virtual dd1622 {
+ int e;
+ virtual void bar(); // _ZN7ee516223barEv
+ ~ee51622(); // tgen
+ ee51622(); // tgen
+};
+//SIG(1 ee51622) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee51622 ::bar(){vfunc_called(this, "_ZN7ee516223barEv");}
+ee51622 ::~ee51622(){ note_dtor("ee51622", this);} // tgen
+ee51622 ::ee51622(){ note_ctor("ee51622", this);} // tgen
+
+static void Test_ee51622()
+{
+ extern Class_Descriptor cd_ee51622;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee51622, buf);
+ ee51622 *dp, &lv = *(dp=new (buf) ee51622());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee51622)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51622)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc622*), ABISELECT(32,16), "ee51622");
+ check_base_class_offset(lv, (bb22*)(cc622*), ABISELECT(32,16), "ee51622");
+ check_base_class_offset(lv, (cc622*)(dd1622*), ABISELECT(32,16), "ee51622");
+ check_base_class_offset(lv, (dd1622*), ABISELECT(16,8), "ee51622");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51622.e");
+ test_class_info(&lv, &cd_ee51622);
+ dp->~ee51622();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51622(Test_ee51622, "ee51622", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee51622C1Ev();
+extern void _ZN7ee51622D1Ev();
+Name_Map name_map_ee51622[] = {
+ NSPAIR(_ZN7ee51622C1Ev),
+ NSPAIR(_ZN7ee51622D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc622;
+extern VTBL_ENTRY _ZTI5cc622[];
+extern VTBL_ENTRY _ZTV5cc622[];
+extern Class_Descriptor cd_dd1622;
+extern VTBL_ENTRY _ZTI6dd1622[];
+extern VTBL_ENTRY _ZTV6dd1622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1622[];
+static Base_Class bases_ee51622[] = {
+ // 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_bb22, 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_cc622, 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_dd1622, 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 _ZTI7ee51622[];
+extern void _ZN7ee516223barEv();
+extern void _ZN5cc6223fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee516223barEv,_ZTv0_n16_N7ee516223barEv)();
+extern void ABISELECT(_ZThn32_N7ee516223barEv,_ZThn16_N7ee516223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee51622[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51622[0]),
+ (VTBL_ENTRY)&_ZN7ee516223barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51622[0]),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51622[0]),
+ (VTBL_ENTRY)&_ZN5cc6223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee516223barEv,_ZTv0_n16_N7ee516223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee51622[];
+static VTBL_ENTRY _tg__ZTV6dd1622__7ee51622[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1622[0]),
+};
+extern void _ZN5cc6223fooEv();
+extern void _ZN5cc6223barEv();
+static VTBL_ENTRY _tg__ZTV5cc622__6dd1622__7ee51622[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1622[0]),
+ (VTBL_ENTRY)&_ZN5cc6223fooEv,
+ (VTBL_ENTRY)&_ZN5cc6223barEv,
+};
+static VTT_ENTRY vtt_ee51622[] = {
+ {&(_ZTV7ee51622[4]), 4,14},
+ {&(_ZTV7ee51622[8]), 8,14},
+ {&(_ZTV7ee51622[12]), 12,14},
+ {&(_tg__ZTV6dd1622__7ee51622[3]), 3,3},
+ {&(_tg__ZTV5cc622__6dd1622__7ee51622[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee51622[];
+extern VTBL_ENTRY _ZTV7ee51622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51622[];
+static VTBL_ENTRY alt_thunk_names1204[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee516223barEv,_ZTv0_n16_N7ee516223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee516223barEv,_ZThn16_N7ee516223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51622 = { "ee51622", // class name
+ bases_ee51622, 4,
+ &(vtc_ee51622[0]), // expected_vtbl_contents
+ &(vtt_ee51622[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee51622),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51622),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51622),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1204,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee61622 : dd1622 {
+ int e;
+ virtual void foo(); // _ZN7ee616223fooEv
+ virtual void bar(); // _ZN7ee616223barEv
+ ~ee61622(); // tgen
+ ee61622(); // tgen
+};
+//SIG(1 ee61622) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee61622 ::foo(){vfunc_called(this, "_ZN7ee616223fooEv");}
+void ee61622 ::bar(){vfunc_called(this, "_ZN7ee616223barEv");}
+ee61622 ::~ee61622(){ note_dtor("ee61622", this);} // tgen
+ee61622 ::ee61622(){ note_ctor("ee61622", this);} // tgen
+
+static void Test_ee61622()
+{
+ extern Class_Descriptor cd_ee61622;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee61622, buf);
+ ee61622 *dp, &lv = *(dp=new (buf) ee61622());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee61622)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61622)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc622*), ABISELECT(16,12), "ee61622");
+ check_base_class_offset(lv, (bb22*)(cc622*), ABISELECT(16,12), "ee61622");
+ check_base_class_offset(lv, (cc622*)(dd1622*), ABISELECT(16,12), "ee61622");
+ check_base_class_offset(lv, (dd1622*), 0, "ee61622");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61622.e");
+ test_class_info(&lv, &cd_ee61622);
+ dp->~ee61622();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61622(Test_ee61622, "ee61622", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee61622C1Ev();
+extern void _ZN7ee61622D1Ev();
+Name_Map name_map_ee61622[] = {
+ NSPAIR(_ZN7ee61622C1Ev),
+ NSPAIR(_ZN7ee61622D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc622;
+extern VTBL_ENTRY _ZTI5cc622[];
+extern VTBL_ENTRY _ZTV5cc622[];
+extern Class_Descriptor cd_dd1622;
+extern VTBL_ENTRY _ZTI6dd1622[];
+extern VTBL_ENTRY _ZTV6dd1622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1622[];
+static Base_Class bases_ee61622[] = {
+ // 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_bb22, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc622, 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_dd1622, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61622[];
+extern void _ZN7ee616223fooEv();
+extern void _ZN7ee616223barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee616223fooEv,_ZTv0_n12_N7ee616223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee616223fooEv,_ZThn12_N7ee616223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee616223barEv,_ZTv0_n16_N7ee616223barEv)();
+extern void ABISELECT(_ZThn16_N7ee616223barEv,_ZThn12_N7ee616223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61622[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61622[0]),
+ (VTBL_ENTRY)&_ZN7ee616223fooEv,
+ (VTBL_ENTRY)&_ZN7ee616223barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61622[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee616223fooEv,_ZTv0_n12_N7ee616223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee616223barEv,_ZTv0_n16_N7ee616223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee61622[];
+static VTBL_ENTRY _tg__ZTV6dd1622__7ee61622[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1622[0]),
+};
+extern void _ZN5cc6223fooEv();
+extern void _ZN5cc6223barEv();
+static VTBL_ENTRY _tg__ZTV5cc622__6dd1622__7ee61622[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1622[0]),
+ (VTBL_ENTRY)&_ZN5cc6223fooEv,
+ (VTBL_ENTRY)&_ZN5cc6223barEv,
+};
+static VTT_ENTRY vtt_ee61622[] = {
+ {&(_ZTV7ee61622[3]), 3,11},
+ {&(_tg__ZTV6dd1622__7ee61622[3]), 3,3},
+ {&(_tg__ZTV5cc622__6dd1622__7ee61622[4]), 4,6},
+ {&(_ZTV7ee61622[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee61622[];
+extern VTBL_ENTRY _ZTV7ee61622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61622[];
+static VTBL_ENTRY alt_thunk_names1205[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee616223barEv,_ZTv0_n16_N7ee616223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee616223barEv,_ZThn12_N7ee616223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee616223fooEv,_ZTv0_n12_N7ee616223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee616223fooEv,_ZThn12_N7ee616223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61622 = { "ee61622", // class name
+ bases_ee61622, 4,
+ &(vtc_ee61622[0]), // expected_vtbl_contents
+ &(vtt_ee61622[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee61622),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61622),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61622),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1205,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee71622 : virtual dd1622 {
+ int e;
+ virtual void foo(); // _ZN7ee716223fooEv
+ virtual void bar(); // _ZN7ee716223barEv
+ ~ee71622(); // tgen
+ ee71622(); // tgen
+};
+//SIG(1 ee71622) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee71622 ::foo(){vfunc_called(this, "_ZN7ee716223fooEv");}
+void ee71622 ::bar(){vfunc_called(this, "_ZN7ee716223barEv");}
+ee71622 ::~ee71622(){ note_dtor("ee71622", this);} // tgen
+ee71622 ::ee71622(){ note_ctor("ee71622", this);} // tgen
+
+static void Test_ee71622()
+{
+ extern Class_Descriptor cd_ee71622;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee71622, buf);
+ ee71622 *dp, &lv = *(dp=new (buf) ee71622());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee71622)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71622)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc622*), ABISELECT(32,16), "ee71622");
+ check_base_class_offset(lv, (bb22*)(cc622*), ABISELECT(32,16), "ee71622");
+ check_base_class_offset(lv, (cc622*)(dd1622*), ABISELECT(32,16), "ee71622");
+ check_base_class_offset(lv, (dd1622*), ABISELECT(16,8), "ee71622");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71622.e");
+ test_class_info(&lv, &cd_ee71622);
+ dp->~ee71622();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71622(Test_ee71622, "ee71622", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee71622C1Ev();
+extern void _ZN7ee71622D1Ev();
+Name_Map name_map_ee71622[] = {
+ NSPAIR(_ZN7ee71622C1Ev),
+ NSPAIR(_ZN7ee71622D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc622;
+extern VTBL_ENTRY _ZTI5cc622[];
+extern VTBL_ENTRY _ZTV5cc622[];
+extern Class_Descriptor cd_dd1622;
+extern VTBL_ENTRY _ZTI6dd1622[];
+extern VTBL_ENTRY _ZTV6dd1622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1622[];
+static Base_Class bases_ee71622[] = {
+ // 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_bb22, 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_cc622, 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_dd1622, 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 _ZTI7ee71622[];
+extern void _ZN7ee716223fooEv();
+extern void _ZN7ee716223barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee716223fooEv,_ZTv0_n12_N7ee716223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee716223fooEv,_ZThn16_N7ee716223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee716223barEv,_ZTv0_n16_N7ee716223barEv)();
+extern void ABISELECT(_ZThn32_N7ee716223barEv,_ZThn16_N7ee716223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71622[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71622[0]),
+ (VTBL_ENTRY)&_ZN7ee716223fooEv,
+ (VTBL_ENTRY)&_ZN7ee716223barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71622[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71622[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee716223fooEv,_ZTv0_n12_N7ee716223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee716223barEv,_ZTv0_n16_N7ee716223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee71622[];
+static VTBL_ENTRY _tg__ZTV6dd1622__7ee71622[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1622[0]),
+};
+extern void _ZN5cc6223fooEv();
+extern void _ZN5cc6223barEv();
+static VTBL_ENTRY _tg__ZTV5cc622__6dd1622__7ee71622[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1622[0]),
+ (VTBL_ENTRY)&_ZN5cc6223fooEv,
+ (VTBL_ENTRY)&_ZN5cc6223barEv,
+};
+static VTT_ENTRY vtt_ee71622[] = {
+ {&(_ZTV7ee71622[4]), 4,15},
+ {&(_ZTV7ee71622[9]), 9,15},
+ {&(_ZTV7ee71622[13]), 13,15},
+ {&(_tg__ZTV6dd1622__7ee71622[3]), 3,3},
+ {&(_tg__ZTV5cc622__6dd1622__7ee71622[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee71622[];
+extern VTBL_ENTRY _ZTV7ee71622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71622[];
+static VTBL_ENTRY alt_thunk_names1206[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee716223barEv,_ZTv0_n16_N7ee716223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee716223barEv,_ZThn16_N7ee716223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee716223fooEv,_ZTv0_n12_N7ee716223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee716223fooEv,_ZThn16_N7ee716223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71622 = { "ee71622", // class name
+ bases_ee71622, 4,
+ &(vtc_ee71622[0]), // expected_vtbl_contents
+ &(vtt_ee71622[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee71622),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71622),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71622),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1206,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd2622 : cc622 {
+ int d;
+ virtual void foo(); // _ZN6dd26223fooEv
+ ~dd2622(); // tgen
+ dd2622(); // tgen
+};
+//SIG(-1 dd2622) C1{ BC2{ BC3{ BC4{ v1 v2 Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void dd2622 ::foo(){vfunc_called(this, "_ZN6dd26223fooEv");}
+dd2622 ::~dd2622(){ note_dtor("dd2622", this);} // tgen
+dd2622 ::dd2622(){ note_ctor("dd2622", this);} // tgen
+
+static void Test_dd2622()
+{
+ extern Class_Descriptor cd_dd2622;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd2622, buf);
+ dd2622 *dp, &lv = *(dp=new (buf) dd2622());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd2622)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2622)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc622*), 0, "dd2622");
+ check_base_class_offset(lv, (bb22*)(cc622*), 0, "dd2622");
+ check_base_class_offset(lv, (cc622*), 0, "dd2622");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd2622.d");
+ test_class_info(&lv, &cd_dd2622);
+ dp->~dd2622();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2622(Test_dd2622, "dd2622", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd2622C1Ev();
+extern void _ZN6dd2622D1Ev();
+Name_Map name_map_dd2622[] = {
+ NSPAIR(_ZN6dd2622C1Ev),
+ NSPAIR(_ZN6dd2622D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc622;
+extern VTBL_ENTRY _ZTI5cc622[];
+extern VTBL_ENTRY _ZTV5cc622[];
+static Base_Class bases_dd2622[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc622, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI6dd2622[];
+extern void _ZN6dd26223fooEv();
+extern void _ZN5cc6223barEv();
+static VTBL_ENTRY vtc_dd2622[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2622[0]),
+ (VTBL_ENTRY)&_ZN6dd26223fooEv,
+ (VTBL_ENTRY)&_ZN5cc6223barEv,
+};
+extern VTBL_ENTRY _ZTI6dd2622[];
+extern VTBL_ENTRY _ZTV6dd2622[];
+Class_Descriptor cd_dd2622 = { "dd2622", // class name
+ bases_dd2622, 3,
+ &(vtc_dd2622[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd2622),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2622),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 ee02622 : dd2622 {
+ int e;
+ ~ee02622(); // tgen
+ ee02622(); // tgen
+};
+//SIG(1 ee02622) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee02622 ::~ee02622(){ note_dtor("ee02622", this);} // tgen
+ee02622 ::ee02622(){ note_ctor("ee02622", this);} // tgen
+
+static void Test_ee02622()
+{
+ extern Class_Descriptor cd_ee02622;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee02622, buf);
+ ee02622 *dp, &lv = *(dp=new (buf) ee02622());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee02622)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02622)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc622*)(dd2622*), 0, "ee02622");
+ check_base_class_offset(lv, (bb22*)(cc622*)(dd2622*), 0, "ee02622");
+ check_base_class_offset(lv, (cc622*)(dd2622*), 0, "ee02622");
+ check_base_class_offset(lv, (dd2622*), 0, "ee02622");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee02622.e");
+ test_class_info(&lv, &cd_ee02622);
+ dp->~ee02622();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02622(Test_ee02622, "ee02622", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee02622C1Ev();
+extern void _ZN7ee02622D1Ev();
+Name_Map name_map_ee02622[] = {
+ NSPAIR(_ZN7ee02622C1Ev),
+ NSPAIR(_ZN7ee02622D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc622;
+extern VTBL_ENTRY _ZTI5cc622[];
+extern VTBL_ENTRY _ZTV5cc622[];
+extern Class_Descriptor cd_dd2622;
+extern VTBL_ENTRY _ZTI6dd2622[];
+extern VTBL_ENTRY _ZTV6dd2622[];
+static Base_Class bases_ee02622[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc622, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2622, 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 _ZTI7ee02622[];
+extern void _ZN6dd26223fooEv();
+extern void _ZN5cc6223barEv();
+static VTBL_ENTRY vtc_ee02622[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02622[0]),
+ (VTBL_ENTRY)&_ZN6dd26223fooEv,
+ (VTBL_ENTRY)&_ZN5cc6223barEv,
+};
+extern VTBL_ENTRY _ZTI7ee02622[];
+extern VTBL_ENTRY _ZTV7ee02622[];
+Class_Descriptor cd_ee02622 = { "ee02622", // class name
+ bases_ee02622, 4,
+ &(vtc_ee02622[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee02622),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02622),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 ee12622 : virtual dd2622 {
+ int e;
+ ~ee12622(); // tgen
+ ee12622(); // tgen
+};
+//SIG(1 ee12622) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee12622 ::~ee12622(){ note_dtor("ee12622", this);} // tgen
+ee12622 ::ee12622(){ note_ctor("ee12622", this);} // tgen
+
+static void Test_ee12622()
+{
+ extern Class_Descriptor cd_ee12622;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee12622, buf);
+ ee12622 *dp, &lv = *(dp=new (buf) ee12622());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee12622)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12622)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc622*)(dd2622*), ABISELECT(16,8), "ee12622");
+ check_base_class_offset(lv, (bb22*)(cc622*)(dd2622*), ABISELECT(16,8), "ee12622");
+ check_base_class_offset(lv, (cc622*)(dd2622*), ABISELECT(16,8), "ee12622");
+ check_base_class_offset(lv, (dd2622*), ABISELECT(16,8), "ee12622");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12622.e");
+ test_class_info(&lv, &cd_ee12622);
+ dp->~ee12622();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12622(Test_ee12622, "ee12622", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee12622C1Ev();
+extern void _ZN7ee12622D1Ev();
+Name_Map name_map_ee12622[] = {
+ NSPAIR(_ZN7ee12622C1Ev),
+ NSPAIR(_ZN7ee12622D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc622;
+extern VTBL_ENTRY _ZTI5cc622[];
+extern VTBL_ENTRY _ZTV5cc622[];
+extern Class_Descriptor cd_dd2622;
+extern VTBL_ENTRY _ZTI6dd2622[];
+extern VTBL_ENTRY _ZTV6dd2622[];
+static Base_Class bases_ee12622[] = {
+ // 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_bb22, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc622, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2622, 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 _ZTI7ee12622[];
+extern void _ZN6dd26223fooEv();
+extern void _ZN5cc6223barEv();
+static VTBL_ENTRY vtc_ee12622[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12622[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12622[0]),
+ (VTBL_ENTRY)&_ZN6dd26223fooEv,
+ (VTBL_ENTRY)&_ZN5cc6223barEv,
+};
+extern VTBL_ENTRY _ZTV7ee12622[];
+static VTT_ENTRY vtt_ee12622[] = {
+ {&(_ZTV7ee12622[3]), 3,9},
+ {&(_ZTV7ee12622[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee12622[];
+extern VTBL_ENTRY _ZTV7ee12622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12622[];
+Class_Descriptor cd_ee12622 = { "ee12622", // class name
+ bases_ee12622, 4,
+ &(vtc_ee12622[0]), // expected_vtbl_contents
+ &(vtt_ee12622[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee12622),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12622),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12622),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 ee22622 : dd2622 {
+ int e;
+ virtual void foo(); // _ZN7ee226223fooEv
+ ~ee22622(); // tgen
+ ee22622(); // tgen
+};
+//SIG(1 ee22622) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee22622 ::foo(){vfunc_called(this, "_ZN7ee226223fooEv");}
+ee22622 ::~ee22622(){ note_dtor("ee22622", this);} // tgen
+ee22622 ::ee22622(){ note_ctor("ee22622", this);} // tgen
+
+static void Test_ee22622()
+{
+ extern Class_Descriptor cd_ee22622;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee22622, buf);
+ ee22622 *dp, &lv = *(dp=new (buf) ee22622());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee22622)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22622)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc622*)(dd2622*), 0, "ee22622");
+ check_base_class_offset(lv, (bb22*)(cc622*)(dd2622*), 0, "ee22622");
+ check_base_class_offset(lv, (cc622*)(dd2622*), 0, "ee22622");
+ check_base_class_offset(lv, (dd2622*), 0, "ee22622");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee22622.e");
+ test_class_info(&lv, &cd_ee22622);
+ dp->~ee22622();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22622(Test_ee22622, "ee22622", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee22622C1Ev();
+extern void _ZN7ee22622D1Ev();
+Name_Map name_map_ee22622[] = {
+ NSPAIR(_ZN7ee22622C1Ev),
+ NSPAIR(_ZN7ee22622D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc622;
+extern VTBL_ENTRY _ZTI5cc622[];
+extern VTBL_ENTRY _ZTV5cc622[];
+extern Class_Descriptor cd_dd2622;
+extern VTBL_ENTRY _ZTI6dd2622[];
+extern VTBL_ENTRY _ZTV6dd2622[];
+static Base_Class bases_ee22622[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc622, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2622, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee22622[];
+extern void _ZN7ee226223fooEv();
+extern void _ZN5cc6223barEv();
+static VTBL_ENTRY vtc_ee22622[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22622[0]),
+ (VTBL_ENTRY)&_ZN7ee226223fooEv,
+ (VTBL_ENTRY)&_ZN5cc6223barEv,
+};
+extern VTBL_ENTRY _ZTI7ee22622[];
+extern VTBL_ENTRY _ZTV7ee22622[];
+Class_Descriptor cd_ee22622 = { "ee22622", // class name
+ bases_ee22622, 4,
+ &(vtc_ee22622[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee22622),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22622),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 ee32622 : virtual dd2622 {
+ int e;
+ virtual void foo(); // _ZN7ee326223fooEv
+ ~ee32622(); // tgen
+ ee32622(); // tgen
+};
+//SIG(1 ee32622) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee32622 ::foo(){vfunc_called(this, "_ZN7ee326223fooEv");}
+ee32622 ::~ee32622(){ note_dtor("ee32622", this);} // tgen
+ee32622 ::ee32622(){ note_ctor("ee32622", this);} // tgen
+
+static void Test_ee32622()
+{
+ extern Class_Descriptor cd_ee32622;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee32622, buf);
+ ee32622 *dp, &lv = *(dp=new (buf) ee32622());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee32622)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32622)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc622*)(dd2622*), ABISELECT(16,8), "ee32622");
+ check_base_class_offset(lv, (bb22*)(cc622*)(dd2622*), ABISELECT(16,8), "ee32622");
+ check_base_class_offset(lv, (cc622*)(dd2622*), ABISELECT(16,8), "ee32622");
+ check_base_class_offset(lv, (dd2622*), ABISELECT(16,8), "ee32622");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32622.e");
+ test_class_info(&lv, &cd_ee32622);
+ dp->~ee32622();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32622(Test_ee32622, "ee32622", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee32622C1Ev();
+extern void _ZN7ee32622D1Ev();
+Name_Map name_map_ee32622[] = {
+ NSPAIR(_ZN7ee32622C1Ev),
+ NSPAIR(_ZN7ee32622D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc622;
+extern VTBL_ENTRY _ZTI5cc622[];
+extern VTBL_ENTRY _ZTV5cc622[];
+extern Class_Descriptor cd_dd2622;
+extern VTBL_ENTRY _ZTI6dd2622[];
+extern VTBL_ENTRY _ZTV6dd2622[];
+static Base_Class bases_ee32622[] = {
+ // 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_bb22, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc622, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2622, 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 _ZTI7ee32622[];
+extern void _ZN7ee326223fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee326223fooEv,_ZTv0_n12_N7ee326223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee326223fooEv,_ZThn8_N7ee326223fooEv)() __attribute__((weak));
+extern void _ZN5cc6223barEv();
+static VTBL_ENTRY vtc_ee32622[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32622[0]),
+ (VTBL_ENTRY)&_ZN7ee326223fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32622[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee326223fooEv,_ZTv0_n12_N7ee326223fooEv),
+ (VTBL_ENTRY)&_ZN5cc6223barEv,
+};
+extern VTBL_ENTRY _ZTV7ee32622[];
+static VTT_ENTRY vtt_ee32622[] = {
+ {&(_ZTV7ee32622[3]), 3,10},
+ {&(_ZTV7ee32622[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee32622[];
+extern VTBL_ENTRY _ZTV7ee32622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32622[];
+static VTBL_ENTRY alt_thunk_names1207[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee326223fooEv,_ZTv0_n12_N7ee326223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee326223fooEv,_ZThn8_N7ee326223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32622 = { "ee32622", // class name
+ bases_ee32622, 4,
+ &(vtc_ee32622[0]), // expected_vtbl_contents
+ &(vtt_ee32622[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee32622),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32622),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32622),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1207,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee42622 : dd2622 {
+ int e;
+ virtual void bar(); // _ZN7ee426223barEv
+ ~ee42622(); // tgen
+ ee42622(); // tgen
+};
+//SIG(1 ee42622) C1{ BC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee42622 ::bar(){vfunc_called(this, "_ZN7ee426223barEv");}
+ee42622 ::~ee42622(){ note_dtor("ee42622", this);} // tgen
+ee42622 ::ee42622(){ note_ctor("ee42622", this);} // tgen
+
+static void Test_ee42622()
+{
+ extern Class_Descriptor cd_ee42622;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee42622, buf);
+ ee42622 *dp, &lv = *(dp=new (buf) ee42622());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee42622)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42622)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc622*)(dd2622*), 0, "ee42622");
+ check_base_class_offset(lv, (bb22*)(cc622*)(dd2622*), 0, "ee42622");
+ check_base_class_offset(lv, (cc622*)(dd2622*), 0, "ee42622");
+ check_base_class_offset(lv, (dd2622*), 0, "ee42622");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee42622.e");
+ test_class_info(&lv, &cd_ee42622);
+ dp->~ee42622();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42622(Test_ee42622, "ee42622", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee42622C1Ev();
+extern void _ZN7ee42622D1Ev();
+Name_Map name_map_ee42622[] = {
+ NSPAIR(_ZN7ee42622C1Ev),
+ NSPAIR(_ZN7ee42622D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc622;
+extern VTBL_ENTRY _ZTI5cc622[];
+extern VTBL_ENTRY _ZTV5cc622[];
+extern Class_Descriptor cd_dd2622;
+extern VTBL_ENTRY _ZTI6dd2622[];
+extern VTBL_ENTRY _ZTV6dd2622[];
+static Base_Class bases_ee42622[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc622, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2622, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee42622[];
+extern void _ZN6dd26223fooEv();
+extern void _ZN7ee426223barEv();
+static VTBL_ENTRY vtc_ee42622[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42622[0]),
+ (VTBL_ENTRY)&_ZN6dd26223fooEv,
+ (VTBL_ENTRY)&_ZN7ee426223barEv,
+};
+extern VTBL_ENTRY _ZTI7ee42622[];
+extern VTBL_ENTRY _ZTV7ee42622[];
+Class_Descriptor cd_ee42622 = { "ee42622", // class name
+ bases_ee42622, 4,
+ &(vtc_ee42622[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee42622),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42622),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 ee52622 : virtual dd2622 {
+ int e;
+ virtual void bar(); // _ZN7ee526223barEv
+ ~ee52622(); // tgen
+ ee52622(); // tgen
+};
+//SIG(1 ee52622) C1{ VBC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee52622 ::bar(){vfunc_called(this, "_ZN7ee526223barEv");}
+ee52622 ::~ee52622(){ note_dtor("ee52622", this);} // tgen
+ee52622 ::ee52622(){ note_ctor("ee52622", this);} // tgen
+
+static void Test_ee52622()
+{
+ extern Class_Descriptor cd_ee52622;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee52622, buf);
+ ee52622 *dp, &lv = *(dp=new (buf) ee52622());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee52622)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52622)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc622*)(dd2622*), ABISELECT(16,8), "ee52622");
+ check_base_class_offset(lv, (bb22*)(cc622*)(dd2622*), ABISELECT(16,8), "ee52622");
+ check_base_class_offset(lv, (cc622*)(dd2622*), ABISELECT(16,8), "ee52622");
+ check_base_class_offset(lv, (dd2622*), ABISELECT(16,8), "ee52622");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52622.e");
+ test_class_info(&lv, &cd_ee52622);
+ dp->~ee52622();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52622(Test_ee52622, "ee52622", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee52622C1Ev();
+extern void _ZN7ee52622D1Ev();
+Name_Map name_map_ee52622[] = {
+ NSPAIR(_ZN7ee52622C1Ev),
+ NSPAIR(_ZN7ee52622D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc622;
+extern VTBL_ENTRY _ZTI5cc622[];
+extern VTBL_ENTRY _ZTV5cc622[];
+extern Class_Descriptor cd_dd2622;
+extern VTBL_ENTRY _ZTI6dd2622[];
+extern VTBL_ENTRY _ZTV6dd2622[];
+static Base_Class bases_ee52622[] = {
+ // 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_bb22, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc622, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2622, 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 _ZTI7ee52622[];
+extern void _ZN7ee526223barEv();
+extern void _ZN6dd26223fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee526223barEv,_ZTv0_n16_N7ee526223barEv)();
+extern void ABISELECT(_ZThn16_N7ee526223barEv,_ZThn8_N7ee526223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee52622[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52622[0]),
+ (VTBL_ENTRY)&_ZN7ee526223barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52622[0]),
+ (VTBL_ENTRY)&_ZN6dd26223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee526223barEv,_ZTv0_n16_N7ee526223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee52622[];
+static VTT_ENTRY vtt_ee52622[] = {
+ {&(_ZTV7ee52622[3]), 3,10},
+ {&(_ZTV7ee52622[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee52622[];
+extern VTBL_ENTRY _ZTV7ee52622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52622[];
+static VTBL_ENTRY alt_thunk_names1208[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee526223barEv,_ZTv0_n16_N7ee526223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee526223barEv,_ZThn8_N7ee526223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52622 = { "ee52622", // class name
+ bases_ee52622, 4,
+ &(vtc_ee52622[0]), // expected_vtbl_contents
+ &(vtt_ee52622[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee52622),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52622),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52622),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1208,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee62622 : dd2622 {
+ int e;
+ virtual void foo(); // _ZN7ee626223fooEv
+ virtual void bar(); // _ZN7ee626223barEv
+ ~ee62622(); // tgen
+ ee62622(); // tgen
+};
+//SIG(1 ee62622) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62622 ::foo(){vfunc_called(this, "_ZN7ee626223fooEv");}
+void ee62622 ::bar(){vfunc_called(this, "_ZN7ee626223barEv");}
+ee62622 ::~ee62622(){ note_dtor("ee62622", this);} // tgen
+ee62622 ::ee62622(){ note_ctor("ee62622", this);} // tgen
+
+static void Test_ee62622()
+{
+ extern Class_Descriptor cd_ee62622;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee62622, buf);
+ ee62622 *dp, &lv = *(dp=new (buf) ee62622());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee62622)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62622)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc622*)(dd2622*), 0, "ee62622");
+ check_base_class_offset(lv, (bb22*)(cc622*)(dd2622*), 0, "ee62622");
+ check_base_class_offset(lv, (cc622*)(dd2622*), 0, "ee62622");
+ check_base_class_offset(lv, (dd2622*), 0, "ee62622");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee62622.e");
+ test_class_info(&lv, &cd_ee62622);
+ dp->~ee62622();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62622(Test_ee62622, "ee62622", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee62622C1Ev();
+extern void _ZN7ee62622D1Ev();
+Name_Map name_map_ee62622[] = {
+ NSPAIR(_ZN7ee62622C1Ev),
+ NSPAIR(_ZN7ee62622D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc622;
+extern VTBL_ENTRY _ZTI5cc622[];
+extern VTBL_ENTRY _ZTV5cc622[];
+extern Class_Descriptor cd_dd2622;
+extern VTBL_ENTRY _ZTI6dd2622[];
+extern VTBL_ENTRY _ZTV6dd2622[];
+static Base_Class bases_ee62622[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc622, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2622, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee62622[];
+extern void _ZN7ee626223fooEv();
+extern void _ZN7ee626223barEv();
+static VTBL_ENTRY vtc_ee62622[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62622[0]),
+ (VTBL_ENTRY)&_ZN7ee626223fooEv,
+ (VTBL_ENTRY)&_ZN7ee626223barEv,
+};
+extern VTBL_ENTRY _ZTI7ee62622[];
+extern VTBL_ENTRY _ZTV7ee62622[];
+Class_Descriptor cd_ee62622 = { "ee62622", // class name
+ bases_ee62622, 4,
+ &(vtc_ee62622[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee62622),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62622),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 ee72622 : virtual dd2622 {
+ int e;
+ virtual void foo(); // _ZN7ee726223fooEv
+ virtual void bar(); // _ZN7ee726223barEv
+ ~ee72622(); // tgen
+ ee72622(); // tgen
+};
+//SIG(1 ee72622) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72622 ::foo(){vfunc_called(this, "_ZN7ee726223fooEv");}
+void ee72622 ::bar(){vfunc_called(this, "_ZN7ee726223barEv");}
+ee72622 ::~ee72622(){ note_dtor("ee72622", this);} // tgen
+ee72622 ::ee72622(){ note_ctor("ee72622", this);} // tgen
+
+static void Test_ee72622()
+{
+ extern Class_Descriptor cd_ee72622;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee72622, buf);
+ ee72622 *dp, &lv = *(dp=new (buf) ee72622());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee72622)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72622)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc622*)(dd2622*), ABISELECT(16,8), "ee72622");
+ check_base_class_offset(lv, (bb22*)(cc622*)(dd2622*), ABISELECT(16,8), "ee72622");
+ check_base_class_offset(lv, (cc622*)(dd2622*), ABISELECT(16,8), "ee72622");
+ check_base_class_offset(lv, (dd2622*), ABISELECT(16,8), "ee72622");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72622.e");
+ test_class_info(&lv, &cd_ee72622);
+ dp->~ee72622();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72622(Test_ee72622, "ee72622", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee72622C1Ev();
+extern void _ZN7ee72622D1Ev();
+Name_Map name_map_ee72622[] = {
+ NSPAIR(_ZN7ee72622C1Ev),
+ NSPAIR(_ZN7ee72622D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc622;
+extern VTBL_ENTRY _ZTI5cc622[];
+extern VTBL_ENTRY _ZTV5cc622[];
+extern Class_Descriptor cd_dd2622;
+extern VTBL_ENTRY _ZTI6dd2622[];
+extern VTBL_ENTRY _ZTV6dd2622[];
+static Base_Class bases_ee72622[] = {
+ // 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_bb22, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc622, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd2622, 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 _ZTI7ee72622[];
+extern void _ZN7ee726223fooEv();
+extern void _ZN7ee726223barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee726223fooEv,_ZTv0_n12_N7ee726223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee726223fooEv,_ZThn8_N7ee726223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee726223barEv,_ZTv0_n16_N7ee726223barEv)();
+extern void ABISELECT(_ZThn16_N7ee726223barEv,_ZThn8_N7ee726223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72622[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72622[0]),
+ (VTBL_ENTRY)&_ZN7ee726223fooEv,
+ (VTBL_ENTRY)&_ZN7ee726223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72622[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee726223fooEv,_ZTv0_n12_N7ee726223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee726223barEv,_ZTv0_n16_N7ee726223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee72622[];
+static VTT_ENTRY vtt_ee72622[] = {
+ {&(_ZTV7ee72622[3]), 3,11},
+ {&(_ZTV7ee72622[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee72622[];
+extern VTBL_ENTRY _ZTV7ee72622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72622[];
+static VTBL_ENTRY alt_thunk_names1209[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee726223barEv,_ZTv0_n16_N7ee726223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee726223barEv,_ZThn8_N7ee726223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee726223fooEv,_ZTv0_n12_N7ee726223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee726223fooEv,_ZThn8_N7ee726223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72622 = { "ee72622", // class name
+ bases_ee72622, 4,
+ &(vtc_ee72622[0]), // expected_vtbl_contents
+ &(vtt_ee72622[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee72622),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72622),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72622),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1209,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd3622 : virtual cc622 {
+ int d;
+ virtual void foo(); // _ZN6dd36223fooEv
+ ~dd3622(); // tgen
+ dd3622(); // tgen
+};
+//SIG(-1 dd3622) C1{ VBC2{ BC3{ BC4{ v1 v2 Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void dd3622 ::foo(){vfunc_called(this, "_ZN6dd36223fooEv");}
+dd3622 ::~dd3622(){ note_dtor("dd3622", this);} // tgen
+dd3622 ::dd3622(){ note_ctor("dd3622", this);} // tgen
+
+static void Test_dd3622()
+{
+ extern Class_Descriptor cd_dd3622;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd3622, buf);
+ dd3622 *dp, &lv = *(dp=new (buf) dd3622());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd3622)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3622)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc622*), ABISELECT(16,8), "dd3622");
+ check_base_class_offset(lv, (bb22*)(cc622*), ABISELECT(16,8), "dd3622");
+ check_base_class_offset(lv, (cc622*), ABISELECT(16,8), "dd3622");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3622.d");
+ test_class_info(&lv, &cd_dd3622);
+ dp->~dd3622();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3622(Test_dd3622, "dd3622", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd3622C1Ev();
+extern void _ZN6dd3622D1Ev();
+Name_Map name_map_dd3622[] = {
+ NSPAIR(_ZN6dd3622C1Ev),
+ NSPAIR(_ZN6dd3622D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc622;
+extern VTBL_ENTRY _ZTI5cc622[];
+extern VTBL_ENTRY _ZTV5cc622[];
+static Base_Class bases_dd3622[] = {
+ // 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_bb22, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc622, 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 _ZTI6dd3622[];
+extern void _ZN6dd36223fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd36223fooEv,_ZTv0_n12_N6dd36223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36223fooEv,_ZThn8_N6dd36223fooEv)() __attribute__((weak));
+extern void _ZN5cc6223barEv();
+static VTBL_ENTRY vtc_dd3622[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3622[0]),
+ (VTBL_ENTRY)&_ZN6dd36223fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3622[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36223fooEv,_ZTv0_n12_N6dd36223fooEv),
+ (VTBL_ENTRY)&_ZN5cc6223barEv,
+};
+extern VTBL_ENTRY _ZTV6dd3622[];
+static VTT_ENTRY vtt_dd3622[] = {
+ {&(_ZTV6dd3622[3]), 3,10},
+ {&(_ZTV6dd3622[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd3622[];
+extern VTBL_ENTRY _ZTV6dd3622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3622[];
+static VTBL_ENTRY alt_thunk_names1210[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36223fooEv,_ZTv0_n12_N6dd36223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36223fooEv,_ZThn8_N6dd36223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3622 = { "dd3622", // class name
+ bases_dd3622, 3,
+ &(vtc_dd3622[0]), // expected_vtbl_contents
+ &(vtt_dd3622[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd3622),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3622),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3622),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1210,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03622 : dd3622 {
+ int e;
+ ~ee03622(); // tgen
+ ee03622(); // tgen
+};
+//SIG(1 ee03622) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee03622 ::~ee03622(){ note_dtor("ee03622", this);} // tgen
+ee03622 ::ee03622(){ note_ctor("ee03622", this);} // tgen
+
+static void Test_ee03622()
+{
+ extern Class_Descriptor cd_ee03622;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee03622, buf);
+ ee03622 *dp, &lv = *(dp=new (buf) ee03622());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee03622)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03622)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc622*), ABISELECT(16,12), "ee03622");
+ check_base_class_offset(lv, (bb22*)(cc622*), ABISELECT(16,12), "ee03622");
+ check_base_class_offset(lv, (cc622*)(dd3622*), ABISELECT(16,12), "ee03622");
+ check_base_class_offset(lv, (dd3622*), 0, "ee03622");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03622.e");
+ test_class_info(&lv, &cd_ee03622);
+ dp->~ee03622();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03622(Test_ee03622, "ee03622", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee03622C1Ev();
+extern void _ZN7ee03622D1Ev();
+Name_Map name_map_ee03622[] = {
+ NSPAIR(_ZN7ee03622C1Ev),
+ NSPAIR(_ZN7ee03622D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc622;
+extern VTBL_ENTRY _ZTI5cc622[];
+extern VTBL_ENTRY _ZTV5cc622[];
+extern Class_Descriptor cd_dd3622;
+extern VTBL_ENTRY _ZTI6dd3622[];
+extern VTBL_ENTRY _ZTV6dd3622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3622[];
+static Base_Class bases_ee03622[] = {
+ // 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_bb22, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc622, 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_dd3622, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03622[];
+extern void _ZN6dd36223fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd36223fooEv,_ZTv0_n12_N6dd36223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36223fooEv,_ZThn12_N6dd36223fooEv)() __attribute__((weak));
+extern void _ZN5cc6223barEv();
+static VTBL_ENTRY vtc_ee03622[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03622[0]),
+ (VTBL_ENTRY)&_ZN6dd36223fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03622[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36223fooEv,_ZTv0_n12_N6dd36223fooEv),
+ (VTBL_ENTRY)&_ZN5cc6223barEv,
+};
+extern VTBL_ENTRY _ZTV7ee03622[];
+extern void _ZN6dd36223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3622__7ee03622[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3622[0]),
+ (VTBL_ENTRY)&_ZN6dd36223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd36223fooEv,_ZTv0_n12_N6dd36223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36223fooEv,_ZThn12_N6dd36223fooEv)() __attribute__((weak));
+extern void _ZN5cc6223barEv();
+static VTBL_ENTRY _tg__ZTV5cc622__6dd3622__7ee03622[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3622[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36223fooEv,_ZTv0_n12_N6dd36223fooEv),
+ (VTBL_ENTRY)&_ZN5cc6223barEv,
+};
+static VTT_ENTRY vtt_ee03622[] = {
+ {&(_ZTV7ee03622[3]), 3,10},
+ {&(_tg__ZTV6dd3622__7ee03622[3]), 3,4},
+ {&(_tg__ZTV5cc622__6dd3622__7ee03622[4]), 4,6},
+ {&(_ZTV7ee03622[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee03622[];
+extern VTBL_ENTRY _ZTV7ee03622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03622[];
+static VTBL_ENTRY alt_thunk_names1211[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36223fooEv,_ZTv0_n12_N6dd36223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36223fooEv,_ZThn12_N6dd36223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36223fooEv,_ZThn12_N6dd36223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03622 = { "ee03622", // class name
+ bases_ee03622, 4,
+ &(vtc_ee03622[0]), // expected_vtbl_contents
+ &(vtt_ee03622[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee03622),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03622),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03622),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1211,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee13622 : virtual dd3622 {
+ int e;
+ ~ee13622(); // tgen
+ ee13622(); // tgen
+};
+//SIG(1 ee13622) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee13622 ::~ee13622(){ note_dtor("ee13622", this);} // tgen
+ee13622 ::ee13622(){ note_ctor("ee13622", this);} // tgen
+
+static void Test_ee13622()
+{
+ extern Class_Descriptor cd_ee13622;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee13622, buf);
+ ee13622 *dp, &lv = *(dp=new (buf) ee13622());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee13622)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13622)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc622*), ABISELECT(32,16), "ee13622");
+ check_base_class_offset(lv, (bb22*)(cc622*), ABISELECT(32,16), "ee13622");
+ check_base_class_offset(lv, (cc622*)(dd3622*), ABISELECT(32,16), "ee13622");
+ check_base_class_offset(lv, (dd3622*), ABISELECT(16,8), "ee13622");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13622.e");
+ test_class_info(&lv, &cd_ee13622);
+ dp->~ee13622();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13622(Test_ee13622, "ee13622", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee13622C1Ev();
+extern void _ZN7ee13622D1Ev();
+Name_Map name_map_ee13622[] = {
+ NSPAIR(_ZN7ee13622C1Ev),
+ NSPAIR(_ZN7ee13622D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc622;
+extern VTBL_ENTRY _ZTI5cc622[];
+extern VTBL_ENTRY _ZTV5cc622[];
+extern Class_Descriptor cd_dd3622;
+extern VTBL_ENTRY _ZTI6dd3622[];
+extern VTBL_ENTRY _ZTV6dd3622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3622[];
+static Base_Class bases_ee13622[] = {
+ // 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_bb22, 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_cc622, 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_dd3622, 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 _ZTI7ee13622[];
+extern void _ZN6dd36223fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd36223fooEv,_ZTv0_n12_N6dd36223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36223fooEv,_ZThn8_N6dd36223fooEv)() __attribute__((weak));
+extern void _ZN5cc6223barEv();
+static VTBL_ENTRY vtc_ee13622[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13622[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13622[0]),
+ (VTBL_ENTRY)&_ZN6dd36223fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13622[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36223fooEv,_ZTv0_n12_N6dd36223fooEv),
+ (VTBL_ENTRY)&_ZN5cc6223barEv,
+};
+extern VTBL_ENTRY _ZTV7ee13622[];
+extern void _ZN6dd36223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3622__7ee13622[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3622[0]),
+ (VTBL_ENTRY)&_ZN6dd36223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd36223fooEv,_ZTv0_n12_N6dd36223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36223fooEv,_ZThn8_N6dd36223fooEv)() __attribute__((weak));
+extern void _ZN5cc6223barEv();
+static VTBL_ENTRY _tg__ZTV5cc622__6dd3622__7ee13622[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3622[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36223fooEv,_ZTv0_n12_N6dd36223fooEv),
+ (VTBL_ENTRY)&_ZN5cc6223barEv,
+};
+static VTT_ENTRY vtt_ee13622[] = {
+ {&(_ZTV7ee13622[4]), 4,15},
+ {&(_ZTV7ee13622[8]), 8,15},
+ {&(_ZTV7ee13622[13]), 13,15},
+ {&(_tg__ZTV6dd3622__7ee13622[3]), 3,4},
+ {&(_tg__ZTV5cc622__6dd3622__7ee13622[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee13622[];
+extern VTBL_ENTRY _ZTV7ee13622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13622[];
+static VTBL_ENTRY alt_thunk_names1212[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36223fooEv,_ZTv0_n12_N6dd36223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36223fooEv,_ZThn8_N6dd36223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36223fooEv,_ZThn8_N6dd36223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13622 = { "ee13622", // class name
+ bases_ee13622, 4,
+ &(vtc_ee13622[0]), // expected_vtbl_contents
+ &(vtt_ee13622[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee13622),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13622),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13622),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1212,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee23622 : dd3622 {
+ int e;
+ virtual void foo(); // _ZN7ee236223fooEv
+ ~ee23622(); // tgen
+ ee23622(); // tgen
+};
+//SIG(1 ee23622) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee23622 ::foo(){vfunc_called(this, "_ZN7ee236223fooEv");}
+ee23622 ::~ee23622(){ note_dtor("ee23622", this);} // tgen
+ee23622 ::ee23622(){ note_ctor("ee23622", this);} // tgen
+
+static void Test_ee23622()
+{
+ extern Class_Descriptor cd_ee23622;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee23622, buf);
+ ee23622 *dp, &lv = *(dp=new (buf) ee23622());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee23622)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23622)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc622*), ABISELECT(16,12), "ee23622");
+ check_base_class_offset(lv, (bb22*)(cc622*), ABISELECT(16,12), "ee23622");
+ check_base_class_offset(lv, (cc622*)(dd3622*), ABISELECT(16,12), "ee23622");
+ check_base_class_offset(lv, (dd3622*), 0, "ee23622");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23622.e");
+ test_class_info(&lv, &cd_ee23622);
+ dp->~ee23622();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23622(Test_ee23622, "ee23622", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee23622C1Ev();
+extern void _ZN7ee23622D1Ev();
+Name_Map name_map_ee23622[] = {
+ NSPAIR(_ZN7ee23622C1Ev),
+ NSPAIR(_ZN7ee23622D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc622;
+extern VTBL_ENTRY _ZTI5cc622[];
+extern VTBL_ENTRY _ZTV5cc622[];
+extern Class_Descriptor cd_dd3622;
+extern VTBL_ENTRY _ZTI6dd3622[];
+extern VTBL_ENTRY _ZTV6dd3622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3622[];
+static Base_Class bases_ee23622[] = {
+ // 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_bb22, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc622, 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_dd3622, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23622[];
+extern void _ZN7ee236223fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee236223fooEv,_ZTv0_n12_N7ee236223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee236223fooEv,_ZThn12_N7ee236223fooEv)() __attribute__((weak));
+extern void _ZN5cc6223barEv();
+static VTBL_ENTRY vtc_ee23622[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23622[0]),
+ (VTBL_ENTRY)&_ZN7ee236223fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23622[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee236223fooEv,_ZTv0_n12_N7ee236223fooEv),
+ (VTBL_ENTRY)&_ZN5cc6223barEv,
+};
+extern VTBL_ENTRY _ZTV7ee23622[];
+extern void _ZN6dd36223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3622__7ee23622[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3622[0]),
+ (VTBL_ENTRY)&_ZN6dd36223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd36223fooEv,_ZTv0_n12_N6dd36223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36223fooEv,_ZThn12_N6dd36223fooEv)() __attribute__((weak));
+extern void _ZN5cc6223barEv();
+static VTBL_ENTRY _tg__ZTV5cc622__6dd3622__7ee23622[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3622[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36223fooEv,_ZTv0_n12_N6dd36223fooEv),
+ (VTBL_ENTRY)&_ZN5cc6223barEv,
+};
+static VTT_ENTRY vtt_ee23622[] = {
+ {&(_ZTV7ee23622[3]), 3,10},
+ {&(_tg__ZTV6dd3622__7ee23622[3]), 3,4},
+ {&(_tg__ZTV5cc622__6dd3622__7ee23622[4]), 4,6},
+ {&(_ZTV7ee23622[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee23622[];
+extern VTBL_ENTRY _ZTV7ee23622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23622[];
+static VTBL_ENTRY alt_thunk_names1213[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36223fooEv,_ZTv0_n12_N6dd36223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36223fooEv,_ZThn12_N6dd36223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee236223fooEv,_ZTv0_n12_N7ee236223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee236223fooEv,_ZThn12_N7ee236223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23622 = { "ee23622", // class name
+ bases_ee23622, 4,
+ &(vtc_ee23622[0]), // expected_vtbl_contents
+ &(vtt_ee23622[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee23622),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23622),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23622),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1213,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee33622 : virtual dd3622 {
+ int e;
+ virtual void foo(); // _ZN7ee336223fooEv
+ ~ee33622(); // tgen
+ ee33622(); // tgen
+};
+//SIG(1 ee33622) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee33622 ::foo(){vfunc_called(this, "_ZN7ee336223fooEv");}
+ee33622 ::~ee33622(){ note_dtor("ee33622", this);} // tgen
+ee33622 ::ee33622(){ note_ctor("ee33622", this);} // tgen
+
+static void Test_ee33622()
+{
+ extern Class_Descriptor cd_ee33622;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee33622, buf);
+ ee33622 *dp, &lv = *(dp=new (buf) ee33622());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee33622)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33622)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc622*), ABISELECT(32,16), "ee33622");
+ check_base_class_offset(lv, (bb22*)(cc622*), ABISELECT(32,16), "ee33622");
+ check_base_class_offset(lv, (cc622*)(dd3622*), ABISELECT(32,16), "ee33622");
+ check_base_class_offset(lv, (dd3622*), ABISELECT(16,8), "ee33622");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33622.e");
+ test_class_info(&lv, &cd_ee33622);
+ dp->~ee33622();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33622(Test_ee33622, "ee33622", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee33622C1Ev();
+extern void _ZN7ee33622D1Ev();
+Name_Map name_map_ee33622[] = {
+ NSPAIR(_ZN7ee33622C1Ev),
+ NSPAIR(_ZN7ee33622D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc622;
+extern VTBL_ENTRY _ZTI5cc622[];
+extern VTBL_ENTRY _ZTV5cc622[];
+extern Class_Descriptor cd_dd3622;
+extern VTBL_ENTRY _ZTI6dd3622[];
+extern VTBL_ENTRY _ZTV6dd3622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3622[];
+static Base_Class bases_ee33622[] = {
+ // 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_bb22, 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_cc622, 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_dd3622, 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 _ZTI7ee33622[];
+extern void _ZN7ee336223fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee336223fooEv,_ZTv0_n16_N7ee336223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee336223fooEv,_ZThn8_N7ee336223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee336223fooEv,_ZTv0_n12_N7ee336223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee336223fooEv,_ZThn16_N7ee336223fooEv)() __attribute__((weak));
+extern void _ZN5cc6223barEv();
+static VTBL_ENTRY vtc_ee33622[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33622[0]),
+ (VTBL_ENTRY)&_ZN7ee336223fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33622[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee336223fooEv,_ZTv0_n16_N7ee336223fooEv),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33622[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee336223fooEv,_ZTv0_n12_N7ee336223fooEv),
+ (VTBL_ENTRY)&_ZN5cc6223barEv,
+};
+extern VTBL_ENTRY _ZTV7ee33622[];
+extern void _ZN6dd36223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3622__7ee33622[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3622[0]),
+ (VTBL_ENTRY)&_ZN6dd36223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd36223fooEv,_ZTv0_n12_N6dd36223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36223fooEv,_ZThn8_N6dd36223fooEv)() __attribute__((weak));
+extern void _ZN5cc6223barEv();
+static VTBL_ENTRY _tg__ZTV5cc622__6dd3622__7ee33622[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3622[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36223fooEv,_ZTv0_n12_N6dd36223fooEv),
+ (VTBL_ENTRY)&_ZN5cc6223barEv,
+};
+static VTT_ENTRY vtt_ee33622[] = {
+ {&(_ZTV7ee33622[4]), 4,16},
+ {&(_ZTV7ee33622[9]), 9,16},
+ {&(_ZTV7ee33622[14]), 14,16},
+ {&(_tg__ZTV6dd3622__7ee33622[3]), 3,4},
+ {&(_tg__ZTV5cc622__6dd3622__7ee33622[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee33622[];
+extern VTBL_ENTRY _ZTV7ee33622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33622[];
+static VTBL_ENTRY alt_thunk_names1214[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36223fooEv,_ZTv0_n12_N6dd36223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36223fooEv,_ZThn8_N6dd36223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee336223fooEv,_ZTv0_n12_N7ee336223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee336223fooEv,_ZThn16_N7ee336223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee336223fooEv,_ZTv0_n16_N7ee336223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee336223fooEv,_ZThn8_N7ee336223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33622 = { "ee33622", // class name
+ bases_ee33622, 4,
+ &(vtc_ee33622[0]), // expected_vtbl_contents
+ &(vtt_ee33622[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee33622),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33622),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33622),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1214,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee43622 : dd3622 {
+ int e;
+ virtual void bar(); // _ZN7ee436223barEv
+ ~ee43622(); // tgen
+ ee43622(); // tgen
+};
+//SIG(1 ee43622) C1{ BC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee43622 ::bar(){vfunc_called(this, "_ZN7ee436223barEv");}
+ee43622 ::~ee43622(){ note_dtor("ee43622", this);} // tgen
+ee43622 ::ee43622(){ note_ctor("ee43622", this);} // tgen
+
+static void Test_ee43622()
+{
+ extern Class_Descriptor cd_ee43622;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee43622, buf);
+ ee43622 *dp, &lv = *(dp=new (buf) ee43622());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee43622)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43622)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc622*), ABISELECT(16,12), "ee43622");
+ check_base_class_offset(lv, (bb22*)(cc622*), ABISELECT(16,12), "ee43622");
+ check_base_class_offset(lv, (cc622*)(dd3622*), ABISELECT(16,12), "ee43622");
+ check_base_class_offset(lv, (dd3622*), 0, "ee43622");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43622.e");
+ test_class_info(&lv, &cd_ee43622);
+ dp->~ee43622();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43622(Test_ee43622, "ee43622", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee43622C1Ev();
+extern void _ZN7ee43622D1Ev();
+Name_Map name_map_ee43622[] = {
+ NSPAIR(_ZN7ee43622C1Ev),
+ NSPAIR(_ZN7ee43622D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc622;
+extern VTBL_ENTRY _ZTI5cc622[];
+extern VTBL_ENTRY _ZTV5cc622[];
+extern Class_Descriptor cd_dd3622;
+extern VTBL_ENTRY _ZTI6dd3622[];
+extern VTBL_ENTRY _ZTV6dd3622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3622[];
+static Base_Class bases_ee43622[] = {
+ // 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_bb22, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc622, 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_dd3622, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43622[];
+extern void _ZN6dd36223fooEv();
+extern void _ZN7ee436223barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd36223fooEv,_ZTv0_n12_N6dd36223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36223fooEv,_ZThn12_N6dd36223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee436223barEv,_ZTv0_n16_N7ee436223barEv)();
+extern void ABISELECT(_ZThn16_N7ee436223barEv,_ZThn12_N7ee436223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43622[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43622[0]),
+ (VTBL_ENTRY)&_ZN6dd36223fooEv,
+ (VTBL_ENTRY)&_ZN7ee436223barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43622[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36223fooEv,_ZTv0_n12_N6dd36223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee436223barEv,_ZTv0_n16_N7ee436223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee43622[];
+extern void _ZN6dd36223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3622__7ee43622[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3622[0]),
+ (VTBL_ENTRY)&_ZN6dd36223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd36223fooEv,_ZTv0_n12_N6dd36223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36223fooEv,_ZThn12_N6dd36223fooEv)() __attribute__((weak));
+extern void _ZN5cc6223barEv();
+static VTBL_ENTRY _tg__ZTV5cc622__6dd3622__7ee43622[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3622[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36223fooEv,_ZTv0_n12_N6dd36223fooEv),
+ (VTBL_ENTRY)&_ZN5cc6223barEv,
+};
+static VTT_ENTRY vtt_ee43622[] = {
+ {&(_ZTV7ee43622[3]), 3,11},
+ {&(_tg__ZTV6dd3622__7ee43622[3]), 3,4},
+ {&(_tg__ZTV5cc622__6dd3622__7ee43622[4]), 4,6},
+ {&(_ZTV7ee43622[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee43622[];
+extern VTBL_ENTRY _ZTV7ee43622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43622[];
+static VTBL_ENTRY alt_thunk_names1215[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee436223barEv,_ZTv0_n16_N7ee436223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee436223barEv,_ZThn12_N7ee436223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36223fooEv,_ZTv0_n12_N6dd36223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36223fooEv,_ZThn12_N6dd36223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36223fooEv,_ZThn12_N6dd36223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43622 = { "ee43622", // class name
+ bases_ee43622, 4,
+ &(vtc_ee43622[0]), // expected_vtbl_contents
+ &(vtt_ee43622[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee43622),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43622),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43622),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1215,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee53622 : virtual dd3622 {
+ int e;
+ virtual void bar(); // _ZN7ee536223barEv
+ ~ee53622(); // tgen
+ ee53622(); // tgen
+};
+//SIG(1 ee53622) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee53622 ::bar(){vfunc_called(this, "_ZN7ee536223barEv");}
+ee53622 ::~ee53622(){ note_dtor("ee53622", this);} // tgen
+ee53622 ::ee53622(){ note_ctor("ee53622", this);} // tgen
+
+static void Test_ee53622()
+{
+ extern Class_Descriptor cd_ee53622;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee53622, buf);
+ ee53622 *dp, &lv = *(dp=new (buf) ee53622());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee53622)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53622)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc622*), ABISELECT(32,16), "ee53622");
+ check_base_class_offset(lv, (bb22*)(cc622*), ABISELECT(32,16), "ee53622");
+ check_base_class_offset(lv, (cc622*)(dd3622*), ABISELECT(32,16), "ee53622");
+ check_base_class_offset(lv, (dd3622*), ABISELECT(16,8), "ee53622");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53622.e");
+ test_class_info(&lv, &cd_ee53622);
+ dp->~ee53622();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53622(Test_ee53622, "ee53622", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee53622C1Ev();
+extern void _ZN7ee53622D1Ev();
+Name_Map name_map_ee53622[] = {
+ NSPAIR(_ZN7ee53622C1Ev),
+ NSPAIR(_ZN7ee53622D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc622;
+extern VTBL_ENTRY _ZTI5cc622[];
+extern VTBL_ENTRY _ZTV5cc622[];
+extern Class_Descriptor cd_dd3622;
+extern VTBL_ENTRY _ZTI6dd3622[];
+extern VTBL_ENTRY _ZTV6dd3622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3622[];
+static Base_Class bases_ee53622[] = {
+ // 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_bb22, 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_cc622, 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_dd3622, 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 _ZTI7ee53622[];
+extern void _ZN7ee536223barEv();
+extern void _ZN6dd36223fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd36223fooEv,_ZTv0_n12_N6dd36223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36223fooEv,_ZThn8_N6dd36223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee536223barEv,_ZTv0_n16_N7ee536223barEv)();
+extern void ABISELECT(_ZThn32_N7ee536223barEv,_ZThn16_N7ee536223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53622[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53622[0]),
+ (VTBL_ENTRY)&_ZN7ee536223barEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53622[0]),
+ (VTBL_ENTRY)&_ZN6dd36223fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53622[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36223fooEv,_ZTv0_n12_N6dd36223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee536223barEv,_ZTv0_n16_N7ee536223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee53622[];
+extern void _ZN6dd36223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3622__7ee53622[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3622[0]),
+ (VTBL_ENTRY)&_ZN6dd36223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd36223fooEv,_ZTv0_n12_N6dd36223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36223fooEv,_ZThn8_N6dd36223fooEv)() __attribute__((weak));
+extern void _ZN5cc6223barEv();
+static VTBL_ENTRY _tg__ZTV5cc622__6dd3622__7ee53622[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3622[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36223fooEv,_ZTv0_n12_N6dd36223fooEv),
+ (VTBL_ENTRY)&_ZN5cc6223barEv,
+};
+static VTT_ENTRY vtt_ee53622[] = {
+ {&(_ZTV7ee53622[4]), 4,16},
+ {&(_ZTV7ee53622[9]), 9,16},
+ {&(_ZTV7ee53622[14]), 14,16},
+ {&(_tg__ZTV6dd3622__7ee53622[3]), 3,4},
+ {&(_tg__ZTV5cc622__6dd3622__7ee53622[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee53622[];
+extern VTBL_ENTRY _ZTV7ee53622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53622[];
+static VTBL_ENTRY alt_thunk_names1216[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee536223barEv,_ZTv0_n16_N7ee536223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee536223barEv,_ZThn16_N7ee536223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36223fooEv,_ZTv0_n12_N6dd36223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36223fooEv,_ZThn8_N6dd36223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36223fooEv,_ZThn8_N6dd36223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53622 = { "ee53622", // class name
+ bases_ee53622, 4,
+ &(vtc_ee53622[0]), // expected_vtbl_contents
+ &(vtt_ee53622[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee53622),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53622),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53622),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1216,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee63622 : dd3622 {
+ int e;
+ virtual void foo(); // _ZN7ee636223fooEv
+ virtual void bar(); // _ZN7ee636223barEv
+ ~ee63622(); // tgen
+ ee63622(); // tgen
+};
+//SIG(1 ee63622) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63622 ::foo(){vfunc_called(this, "_ZN7ee636223fooEv");}
+void ee63622 ::bar(){vfunc_called(this, "_ZN7ee636223barEv");}
+ee63622 ::~ee63622(){ note_dtor("ee63622", this);} // tgen
+ee63622 ::ee63622(){ note_ctor("ee63622", this);} // tgen
+
+static void Test_ee63622()
+{
+ extern Class_Descriptor cd_ee63622;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee63622, buf);
+ ee63622 *dp, &lv = *(dp=new (buf) ee63622());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee63622)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63622)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc622*), ABISELECT(16,12), "ee63622");
+ check_base_class_offset(lv, (bb22*)(cc622*), ABISELECT(16,12), "ee63622");
+ check_base_class_offset(lv, (cc622*)(dd3622*), ABISELECT(16,12), "ee63622");
+ check_base_class_offset(lv, (dd3622*), 0, "ee63622");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63622.e");
+ test_class_info(&lv, &cd_ee63622);
+ dp->~ee63622();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63622(Test_ee63622, "ee63622", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee63622C1Ev();
+extern void _ZN7ee63622D1Ev();
+Name_Map name_map_ee63622[] = {
+ NSPAIR(_ZN7ee63622C1Ev),
+ NSPAIR(_ZN7ee63622D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc622;
+extern VTBL_ENTRY _ZTI5cc622[];
+extern VTBL_ENTRY _ZTV5cc622[];
+extern Class_Descriptor cd_dd3622;
+extern VTBL_ENTRY _ZTI6dd3622[];
+extern VTBL_ENTRY _ZTV6dd3622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3622[];
+static Base_Class bases_ee63622[] = {
+ // 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_bb22, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc622, 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_dd3622, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63622[];
+extern void _ZN7ee636223fooEv();
+extern void _ZN7ee636223barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee636223fooEv,_ZTv0_n12_N7ee636223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee636223fooEv,_ZThn12_N7ee636223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee636223barEv,_ZTv0_n16_N7ee636223barEv)();
+extern void ABISELECT(_ZThn16_N7ee636223barEv,_ZThn12_N7ee636223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63622[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63622[0]),
+ (VTBL_ENTRY)&_ZN7ee636223fooEv,
+ (VTBL_ENTRY)&_ZN7ee636223barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63622[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee636223fooEv,_ZTv0_n12_N7ee636223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee636223barEv,_ZTv0_n16_N7ee636223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee63622[];
+extern void _ZN6dd36223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3622__7ee63622[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3622[0]),
+ (VTBL_ENTRY)&_ZN6dd36223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd36223fooEv,_ZTv0_n12_N6dd36223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36223fooEv,_ZThn12_N6dd36223fooEv)() __attribute__((weak));
+extern void _ZN5cc6223barEv();
+static VTBL_ENTRY _tg__ZTV5cc622__6dd3622__7ee63622[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3622[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36223fooEv,_ZTv0_n12_N6dd36223fooEv),
+ (VTBL_ENTRY)&_ZN5cc6223barEv,
+};
+static VTT_ENTRY vtt_ee63622[] = {
+ {&(_ZTV7ee63622[3]), 3,11},
+ {&(_tg__ZTV6dd3622__7ee63622[3]), 3,4},
+ {&(_tg__ZTV5cc622__6dd3622__7ee63622[4]), 4,6},
+ {&(_ZTV7ee63622[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee63622[];
+extern VTBL_ENTRY _ZTV7ee63622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63622[];
+static VTBL_ENTRY alt_thunk_names1217[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36223fooEv,_ZTv0_n12_N6dd36223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36223fooEv,_ZThn12_N6dd36223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee636223barEv,_ZTv0_n16_N7ee636223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee636223barEv,_ZThn12_N7ee636223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee636223fooEv,_ZTv0_n12_N7ee636223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee636223fooEv,_ZThn12_N7ee636223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63622 = { "ee63622", // class name
+ bases_ee63622, 4,
+ &(vtc_ee63622[0]), // expected_vtbl_contents
+ &(vtt_ee63622[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee63622),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63622),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63622),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1217,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee73622 : virtual dd3622 {
+ int e;
+ virtual void foo(); // _ZN7ee736223fooEv
+ virtual void bar(); // _ZN7ee736223barEv
+ ~ee73622(); // tgen
+ ee73622(); // tgen
+};
+//SIG(1 ee73622) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73622 ::foo(){vfunc_called(this, "_ZN7ee736223fooEv");}
+void ee73622 ::bar(){vfunc_called(this, "_ZN7ee736223barEv");}
+ee73622 ::~ee73622(){ note_dtor("ee73622", this);} // tgen
+ee73622 ::ee73622(){ note_ctor("ee73622", this);} // tgen
+
+static void Test_ee73622()
+{
+ extern Class_Descriptor cd_ee73622;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee73622, buf);
+ ee73622 *dp, &lv = *(dp=new (buf) ee73622());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee73622)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73622)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc622*), ABISELECT(32,16), "ee73622");
+ check_base_class_offset(lv, (bb22*)(cc622*), ABISELECT(32,16), "ee73622");
+ check_base_class_offset(lv, (cc622*)(dd3622*), ABISELECT(32,16), "ee73622");
+ check_base_class_offset(lv, (dd3622*), ABISELECT(16,8), "ee73622");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73622.e");
+ test_class_info(&lv, &cd_ee73622);
+ dp->~ee73622();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73622(Test_ee73622, "ee73622", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee73622C1Ev();
+extern void _ZN7ee73622D1Ev();
+Name_Map name_map_ee73622[] = {
+ NSPAIR(_ZN7ee73622C1Ev),
+ NSPAIR(_ZN7ee73622D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc622;
+extern VTBL_ENTRY _ZTI5cc622[];
+extern VTBL_ENTRY _ZTV5cc622[];
+extern Class_Descriptor cd_dd3622;
+extern VTBL_ENTRY _ZTI6dd3622[];
+extern VTBL_ENTRY _ZTV6dd3622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3622[];
+static Base_Class bases_ee73622[] = {
+ // 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_bb22, 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_cc622, 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_dd3622, 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 _ZTI7ee73622[];
+extern void _ZN7ee736223fooEv();
+extern void _ZN7ee736223barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee736223fooEv,_ZTv0_n16_N7ee736223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee736223fooEv,_ZThn8_N7ee736223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee736223fooEv,_ZTv0_n12_N7ee736223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee736223fooEv,_ZThn16_N7ee736223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee736223barEv,_ZTv0_n16_N7ee736223barEv)();
+extern void ABISELECT(_ZThn32_N7ee736223barEv,_ZThn16_N7ee736223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73622[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73622[0]),
+ (VTBL_ENTRY)&_ZN7ee736223fooEv,
+ (VTBL_ENTRY)&_ZN7ee736223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73622[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee736223fooEv,_ZTv0_n16_N7ee736223fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73622[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee736223fooEv,_ZTv0_n12_N7ee736223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee736223barEv,_ZTv0_n16_N7ee736223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee73622[];
+extern void _ZN6dd36223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3622__7ee73622[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3622[0]),
+ (VTBL_ENTRY)&_ZN6dd36223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd36223fooEv,_ZTv0_n12_N6dd36223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36223fooEv,_ZThn8_N6dd36223fooEv)() __attribute__((weak));
+extern void _ZN5cc6223barEv();
+static VTBL_ENTRY _tg__ZTV5cc622__6dd3622__7ee73622[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3622[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36223fooEv,_ZTv0_n12_N6dd36223fooEv),
+ (VTBL_ENTRY)&_ZN5cc6223barEv,
+};
+static VTT_ENTRY vtt_ee73622[] = {
+ {&(_ZTV7ee73622[4]), 4,17},
+ {&(_ZTV7ee73622[10]), 10,17},
+ {&(_ZTV7ee73622[15]), 15,17},
+ {&(_tg__ZTV6dd3622__7ee73622[3]), 3,4},
+ {&(_tg__ZTV5cc622__6dd3622__7ee73622[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee73622[];
+extern VTBL_ENTRY _ZTV7ee73622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73622[];
+static VTBL_ENTRY alt_thunk_names1218[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36223fooEv,_ZTv0_n12_N6dd36223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36223fooEv,_ZThn8_N6dd36223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee736223barEv,_ZTv0_n16_N7ee736223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee736223barEv,_ZThn16_N7ee736223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee736223fooEv,_ZTv0_n12_N7ee736223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee736223fooEv,_ZThn16_N7ee736223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee736223fooEv,_ZTv0_n16_N7ee736223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee736223fooEv,_ZThn8_N7ee736223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73622 = { "ee73622", // class name
+ bases_ee73622, 4,
+ &(vtc_ee73622[0]), // expected_vtbl_contents
+ &(vtt_ee73622[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee73622),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73622),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73622),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1218,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd4622 : cc622 {
+ int d;
+ virtual void bar(); // _ZN6dd46223barEv
+ ~dd4622(); // tgen
+ dd4622(); // tgen
+};
+//SIG(-1 dd4622) C1{ BC2{ BC3{ BC4{ v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void dd4622 ::bar(){vfunc_called(this, "_ZN6dd46223barEv");}
+dd4622 ::~dd4622(){ note_dtor("dd4622", this);} // tgen
+dd4622 ::dd4622(){ note_ctor("dd4622", this);} // tgen
+
+static void Test_dd4622()
+{
+ extern Class_Descriptor cd_dd4622;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd4622, buf);
+ dd4622 *dp, &lv = *(dp=new (buf) dd4622());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd4622)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4622)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc622*), 0, "dd4622");
+ check_base_class_offset(lv, (bb22*)(cc622*), 0, "dd4622");
+ check_base_class_offset(lv, (cc622*), 0, "dd4622");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd4622.d");
+ test_class_info(&lv, &cd_dd4622);
+ dp->~dd4622();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4622(Test_dd4622, "dd4622", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd4622C1Ev();
+extern void _ZN6dd4622D1Ev();
+Name_Map name_map_dd4622[] = {
+ NSPAIR(_ZN6dd4622C1Ev),
+ NSPAIR(_ZN6dd4622D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc622;
+extern VTBL_ENTRY _ZTI5cc622[];
+extern VTBL_ENTRY _ZTV5cc622[];
+static Base_Class bases_dd4622[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc622, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI6dd4622[];
+extern void _ZN5cc6223fooEv();
+extern void _ZN6dd46223barEv();
+static VTBL_ENTRY vtc_dd4622[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4622[0]),
+ (VTBL_ENTRY)&_ZN5cc6223fooEv,
+ (VTBL_ENTRY)&_ZN6dd46223barEv,
+};
+extern VTBL_ENTRY _ZTI6dd4622[];
+extern VTBL_ENTRY _ZTV6dd4622[];
+Class_Descriptor cd_dd4622 = { "dd4622", // class name
+ bases_dd4622, 3,
+ &(vtc_dd4622[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd4622),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4622),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 ee04622 : dd4622 {
+ int e;
+ ~ee04622(); // tgen
+ ee04622(); // tgen
+};
+//SIG(1 ee04622) C1{ BC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee04622 ::~ee04622(){ note_dtor("ee04622", this);} // tgen
+ee04622 ::ee04622(){ note_ctor("ee04622", this);} // tgen
+
+static void Test_ee04622()
+{
+ extern Class_Descriptor cd_ee04622;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee04622, buf);
+ ee04622 *dp, &lv = *(dp=new (buf) ee04622());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee04622)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04622)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc622*)(dd4622*), 0, "ee04622");
+ check_base_class_offset(lv, (bb22*)(cc622*)(dd4622*), 0, "ee04622");
+ check_base_class_offset(lv, (cc622*)(dd4622*), 0, "ee04622");
+ check_base_class_offset(lv, (dd4622*), 0, "ee04622");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee04622.e");
+ test_class_info(&lv, &cd_ee04622);
+ dp->~ee04622();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04622(Test_ee04622, "ee04622", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee04622C1Ev();
+extern void _ZN7ee04622D1Ev();
+Name_Map name_map_ee04622[] = {
+ NSPAIR(_ZN7ee04622C1Ev),
+ NSPAIR(_ZN7ee04622D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc622;
+extern VTBL_ENTRY _ZTI5cc622[];
+extern VTBL_ENTRY _ZTV5cc622[];
+extern Class_Descriptor cd_dd4622;
+extern VTBL_ENTRY _ZTI6dd4622[];
+extern VTBL_ENTRY _ZTV6dd4622[];
+static Base_Class bases_ee04622[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc622, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4622, 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 _ZTI7ee04622[];
+extern void _ZN5cc6223fooEv();
+extern void _ZN6dd46223barEv();
+static VTBL_ENTRY vtc_ee04622[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04622[0]),
+ (VTBL_ENTRY)&_ZN5cc6223fooEv,
+ (VTBL_ENTRY)&_ZN6dd46223barEv,
+};
+extern VTBL_ENTRY _ZTI7ee04622[];
+extern VTBL_ENTRY _ZTV7ee04622[];
+Class_Descriptor cd_ee04622 = { "ee04622", // class name
+ bases_ee04622, 4,
+ &(vtc_ee04622[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee04622),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04622),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 ee14622 : virtual dd4622 {
+ int e;
+ ~ee14622(); // tgen
+ ee14622(); // tgen
+};
+//SIG(1 ee14622) C1{ VBC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee14622 ::~ee14622(){ note_dtor("ee14622", this);} // tgen
+ee14622 ::ee14622(){ note_ctor("ee14622", this);} // tgen
+
+static void Test_ee14622()
+{
+ extern Class_Descriptor cd_ee14622;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee14622, buf);
+ ee14622 *dp, &lv = *(dp=new (buf) ee14622());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee14622)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14622)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc622*)(dd4622*), ABISELECT(16,8), "ee14622");
+ check_base_class_offset(lv, (bb22*)(cc622*)(dd4622*), ABISELECT(16,8), "ee14622");
+ check_base_class_offset(lv, (cc622*)(dd4622*), ABISELECT(16,8), "ee14622");
+ check_base_class_offset(lv, (dd4622*), ABISELECT(16,8), "ee14622");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14622.e");
+ test_class_info(&lv, &cd_ee14622);
+ dp->~ee14622();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14622(Test_ee14622, "ee14622", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee14622C1Ev();
+extern void _ZN7ee14622D1Ev();
+Name_Map name_map_ee14622[] = {
+ NSPAIR(_ZN7ee14622C1Ev),
+ NSPAIR(_ZN7ee14622D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc622;
+extern VTBL_ENTRY _ZTI5cc622[];
+extern VTBL_ENTRY _ZTV5cc622[];
+extern Class_Descriptor cd_dd4622;
+extern VTBL_ENTRY _ZTI6dd4622[];
+extern VTBL_ENTRY _ZTV6dd4622[];
+static Base_Class bases_ee14622[] = {
+ // 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_bb22, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc622, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4622, 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 _ZTI7ee14622[];
+extern void _ZN5cc6223fooEv();
+extern void _ZN6dd46223barEv();
+static VTBL_ENTRY vtc_ee14622[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14622[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14622[0]),
+ (VTBL_ENTRY)&_ZN5cc6223fooEv,
+ (VTBL_ENTRY)&_ZN6dd46223barEv,
+};
+extern VTBL_ENTRY _ZTV7ee14622[];
+static VTT_ENTRY vtt_ee14622[] = {
+ {&(_ZTV7ee14622[3]), 3,9},
+ {&(_ZTV7ee14622[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee14622[];
+extern VTBL_ENTRY _ZTV7ee14622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14622[];
+Class_Descriptor cd_ee14622 = { "ee14622", // class name
+ bases_ee14622, 4,
+ &(vtc_ee14622[0]), // expected_vtbl_contents
+ &(vtt_ee14622[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee14622),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14622),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14622),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 ee24622 : dd4622 {
+ int e;
+ virtual void foo(); // _ZN7ee246223fooEv
+ ~ee24622(); // tgen
+ ee24622(); // tgen
+};
+//SIG(1 ee24622) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee24622 ::foo(){vfunc_called(this, "_ZN7ee246223fooEv");}
+ee24622 ::~ee24622(){ note_dtor("ee24622", this);} // tgen
+ee24622 ::ee24622(){ note_ctor("ee24622", this);} // tgen
+
+static void Test_ee24622()
+{
+ extern Class_Descriptor cd_ee24622;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee24622, buf);
+ ee24622 *dp, &lv = *(dp=new (buf) ee24622());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee24622)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24622)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc622*)(dd4622*), 0, "ee24622");
+ check_base_class_offset(lv, (bb22*)(cc622*)(dd4622*), 0, "ee24622");
+ check_base_class_offset(lv, (cc622*)(dd4622*), 0, "ee24622");
+ check_base_class_offset(lv, (dd4622*), 0, "ee24622");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee24622.e");
+ test_class_info(&lv, &cd_ee24622);
+ dp->~ee24622();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24622(Test_ee24622, "ee24622", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee24622C1Ev();
+extern void _ZN7ee24622D1Ev();
+Name_Map name_map_ee24622[] = {
+ NSPAIR(_ZN7ee24622C1Ev),
+ NSPAIR(_ZN7ee24622D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc622;
+extern VTBL_ENTRY _ZTI5cc622[];
+extern VTBL_ENTRY _ZTV5cc622[];
+extern Class_Descriptor cd_dd4622;
+extern VTBL_ENTRY _ZTI6dd4622[];
+extern VTBL_ENTRY _ZTV6dd4622[];
+static Base_Class bases_ee24622[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc622, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4622, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee24622[];
+extern void _ZN7ee246223fooEv();
+extern void _ZN6dd46223barEv();
+static VTBL_ENTRY vtc_ee24622[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24622[0]),
+ (VTBL_ENTRY)&_ZN7ee246223fooEv,
+ (VTBL_ENTRY)&_ZN6dd46223barEv,
+};
+extern VTBL_ENTRY _ZTI7ee24622[];
+extern VTBL_ENTRY _ZTV7ee24622[];
+Class_Descriptor cd_ee24622 = { "ee24622", // class name
+ bases_ee24622, 4,
+ &(vtc_ee24622[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee24622),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24622),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 ee34622 : virtual dd4622 {
+ int e;
+ virtual void foo(); // _ZN7ee346223fooEv
+ ~ee34622(); // tgen
+ ee34622(); // tgen
+};
+//SIG(1 ee34622) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee34622 ::foo(){vfunc_called(this, "_ZN7ee346223fooEv");}
+ee34622 ::~ee34622(){ note_dtor("ee34622", this);} // tgen
+ee34622 ::ee34622(){ note_ctor("ee34622", this);} // tgen
+
+static void Test_ee34622()
+{
+ extern Class_Descriptor cd_ee34622;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee34622, buf);
+ ee34622 *dp, &lv = *(dp=new (buf) ee34622());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee34622)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34622)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc622*)(dd4622*), ABISELECT(16,8), "ee34622");
+ check_base_class_offset(lv, (bb22*)(cc622*)(dd4622*), ABISELECT(16,8), "ee34622");
+ check_base_class_offset(lv, (cc622*)(dd4622*), ABISELECT(16,8), "ee34622");
+ check_base_class_offset(lv, (dd4622*), ABISELECT(16,8), "ee34622");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34622.e");
+ test_class_info(&lv, &cd_ee34622);
+ dp->~ee34622();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34622(Test_ee34622, "ee34622", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee34622C1Ev();
+extern void _ZN7ee34622D1Ev();
+Name_Map name_map_ee34622[] = {
+ NSPAIR(_ZN7ee34622C1Ev),
+ NSPAIR(_ZN7ee34622D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc622;
+extern VTBL_ENTRY _ZTI5cc622[];
+extern VTBL_ENTRY _ZTV5cc622[];
+extern Class_Descriptor cd_dd4622;
+extern VTBL_ENTRY _ZTI6dd4622[];
+extern VTBL_ENTRY _ZTV6dd4622[];
+static Base_Class bases_ee34622[] = {
+ // 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_bb22, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc622, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4622, 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 _ZTI7ee34622[];
+extern void _ZN7ee346223fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee346223fooEv,_ZTv0_n12_N7ee346223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee346223fooEv,_ZThn8_N7ee346223fooEv)() __attribute__((weak));
+extern void _ZN6dd46223barEv();
+static VTBL_ENTRY vtc_ee34622[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34622[0]),
+ (VTBL_ENTRY)&_ZN7ee346223fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34622[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee346223fooEv,_ZTv0_n12_N7ee346223fooEv),
+ (VTBL_ENTRY)&_ZN6dd46223barEv,
+};
+extern VTBL_ENTRY _ZTV7ee34622[];
+static VTT_ENTRY vtt_ee34622[] = {
+ {&(_ZTV7ee34622[3]), 3,10},
+ {&(_ZTV7ee34622[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee34622[];
+extern VTBL_ENTRY _ZTV7ee34622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34622[];
+static VTBL_ENTRY alt_thunk_names1219[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee346223fooEv,_ZTv0_n12_N7ee346223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee346223fooEv,_ZThn8_N7ee346223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34622 = { "ee34622", // class name
+ bases_ee34622, 4,
+ &(vtc_ee34622[0]), // expected_vtbl_contents
+ &(vtt_ee34622[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee34622),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34622),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34622),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1219,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee44622 : dd4622 {
+ int e;
+ virtual void bar(); // _ZN7ee446223barEv
+ ~ee44622(); // tgen
+ ee44622(); // tgen
+};
+//SIG(1 ee44622) C1{ BC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee44622 ::bar(){vfunc_called(this, "_ZN7ee446223barEv");}
+ee44622 ::~ee44622(){ note_dtor("ee44622", this);} // tgen
+ee44622 ::ee44622(){ note_ctor("ee44622", this);} // tgen
+
+static void Test_ee44622()
+{
+ extern Class_Descriptor cd_ee44622;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee44622, buf);
+ ee44622 *dp, &lv = *(dp=new (buf) ee44622());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee44622)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44622)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc622*)(dd4622*), 0, "ee44622");
+ check_base_class_offset(lv, (bb22*)(cc622*)(dd4622*), 0, "ee44622");
+ check_base_class_offset(lv, (cc622*)(dd4622*), 0, "ee44622");
+ check_base_class_offset(lv, (dd4622*), 0, "ee44622");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee44622.e");
+ test_class_info(&lv, &cd_ee44622);
+ dp->~ee44622();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44622(Test_ee44622, "ee44622", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee44622C1Ev();
+extern void _ZN7ee44622D1Ev();
+Name_Map name_map_ee44622[] = {
+ NSPAIR(_ZN7ee44622C1Ev),
+ NSPAIR(_ZN7ee44622D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc622;
+extern VTBL_ENTRY _ZTI5cc622[];
+extern VTBL_ENTRY _ZTV5cc622[];
+extern Class_Descriptor cd_dd4622;
+extern VTBL_ENTRY _ZTI6dd4622[];
+extern VTBL_ENTRY _ZTV6dd4622[];
+static Base_Class bases_ee44622[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc622, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4622, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee44622[];
+extern void _ZN5cc6223fooEv();
+extern void _ZN7ee446223barEv();
+static VTBL_ENTRY vtc_ee44622[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44622[0]),
+ (VTBL_ENTRY)&_ZN5cc6223fooEv,
+ (VTBL_ENTRY)&_ZN7ee446223barEv,
+};
+extern VTBL_ENTRY _ZTI7ee44622[];
+extern VTBL_ENTRY _ZTV7ee44622[];
+Class_Descriptor cd_ee44622 = { "ee44622", // class name
+ bases_ee44622, 4,
+ &(vtc_ee44622[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee44622),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44622),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 ee54622 : virtual dd4622 {
+ int e;
+ virtual void bar(); // _ZN7ee546223barEv
+ ~ee54622(); // tgen
+ ee54622(); // tgen
+};
+//SIG(1 ee54622) C1{ VBC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee54622 ::bar(){vfunc_called(this, "_ZN7ee546223barEv");}
+ee54622 ::~ee54622(){ note_dtor("ee54622", this);} // tgen
+ee54622 ::ee54622(){ note_ctor("ee54622", this);} // tgen
+
+static void Test_ee54622()
+{
+ extern Class_Descriptor cd_ee54622;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee54622, buf);
+ ee54622 *dp, &lv = *(dp=new (buf) ee54622());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee54622)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54622)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc622*)(dd4622*), ABISELECT(16,8), "ee54622");
+ check_base_class_offset(lv, (bb22*)(cc622*)(dd4622*), ABISELECT(16,8), "ee54622");
+ check_base_class_offset(lv, (cc622*)(dd4622*), ABISELECT(16,8), "ee54622");
+ check_base_class_offset(lv, (dd4622*), ABISELECT(16,8), "ee54622");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54622.e");
+ test_class_info(&lv, &cd_ee54622);
+ dp->~ee54622();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54622(Test_ee54622, "ee54622", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee54622C1Ev();
+extern void _ZN7ee54622D1Ev();
+Name_Map name_map_ee54622[] = {
+ NSPAIR(_ZN7ee54622C1Ev),
+ NSPAIR(_ZN7ee54622D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc622;
+extern VTBL_ENTRY _ZTI5cc622[];
+extern VTBL_ENTRY _ZTV5cc622[];
+extern Class_Descriptor cd_dd4622;
+extern VTBL_ENTRY _ZTI6dd4622[];
+extern VTBL_ENTRY _ZTV6dd4622[];
+static Base_Class bases_ee54622[] = {
+ // 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_bb22, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc622, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4622, 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 _ZTI7ee54622[];
+extern void _ZN7ee546223barEv();
+extern void _ZN5cc6223fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee546223barEv,_ZTv0_n16_N7ee546223barEv)();
+extern void ABISELECT(_ZThn16_N7ee546223barEv,_ZThn8_N7ee546223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54622[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54622[0]),
+ (VTBL_ENTRY)&_ZN7ee546223barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54622[0]),
+ (VTBL_ENTRY)&_ZN5cc6223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee546223barEv,_ZTv0_n16_N7ee546223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee54622[];
+static VTT_ENTRY vtt_ee54622[] = {
+ {&(_ZTV7ee54622[3]), 3,10},
+ {&(_ZTV7ee54622[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee54622[];
+extern VTBL_ENTRY _ZTV7ee54622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54622[];
+static VTBL_ENTRY alt_thunk_names1220[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee546223barEv,_ZTv0_n16_N7ee546223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee546223barEv,_ZThn8_N7ee546223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54622 = { "ee54622", // class name
+ bases_ee54622, 4,
+ &(vtc_ee54622[0]), // expected_vtbl_contents
+ &(vtt_ee54622[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee54622),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54622),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54622),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1220,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee64622 : dd4622 {
+ int e;
+ virtual void foo(); // _ZN7ee646223fooEv
+ virtual void bar(); // _ZN7ee646223barEv
+ ~ee64622(); // tgen
+ ee64622(); // tgen
+};
+//SIG(1 ee64622) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64622 ::foo(){vfunc_called(this, "_ZN7ee646223fooEv");}
+void ee64622 ::bar(){vfunc_called(this, "_ZN7ee646223barEv");}
+ee64622 ::~ee64622(){ note_dtor("ee64622", this);} // tgen
+ee64622 ::ee64622(){ note_ctor("ee64622", this);} // tgen
+
+static void Test_ee64622()
+{
+ extern Class_Descriptor cd_ee64622;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee64622, buf);
+ ee64622 *dp, &lv = *(dp=new (buf) ee64622());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee64622)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64622)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc622*)(dd4622*), 0, "ee64622");
+ check_base_class_offset(lv, (bb22*)(cc622*)(dd4622*), 0, "ee64622");
+ check_base_class_offset(lv, (cc622*)(dd4622*), 0, "ee64622");
+ check_base_class_offset(lv, (dd4622*), 0, "ee64622");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee64622.e");
+ test_class_info(&lv, &cd_ee64622);
+ dp->~ee64622();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64622(Test_ee64622, "ee64622", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee64622C1Ev();
+extern void _ZN7ee64622D1Ev();
+Name_Map name_map_ee64622[] = {
+ NSPAIR(_ZN7ee64622C1Ev),
+ NSPAIR(_ZN7ee64622D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc622;
+extern VTBL_ENTRY _ZTI5cc622[];
+extern VTBL_ENTRY _ZTV5cc622[];
+extern Class_Descriptor cd_dd4622;
+extern VTBL_ENTRY _ZTI6dd4622[];
+extern VTBL_ENTRY _ZTV6dd4622[];
+static Base_Class bases_ee64622[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc622, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4622, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee64622[];
+extern void _ZN7ee646223fooEv();
+extern void _ZN7ee646223barEv();
+static VTBL_ENTRY vtc_ee64622[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64622[0]),
+ (VTBL_ENTRY)&_ZN7ee646223fooEv,
+ (VTBL_ENTRY)&_ZN7ee646223barEv,
+};
+extern VTBL_ENTRY _ZTI7ee64622[];
+extern VTBL_ENTRY _ZTV7ee64622[];
+Class_Descriptor cd_ee64622 = { "ee64622", // class name
+ bases_ee64622, 4,
+ &(vtc_ee64622[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee64622),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64622),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 ee74622 : virtual dd4622 {
+ int e;
+ virtual void foo(); // _ZN7ee746223fooEv
+ virtual void bar(); // _ZN7ee746223barEv
+ ~ee74622(); // tgen
+ ee74622(); // tgen
+};
+//SIG(1 ee74622) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74622 ::foo(){vfunc_called(this, "_ZN7ee746223fooEv");}
+void ee74622 ::bar(){vfunc_called(this, "_ZN7ee746223barEv");}
+ee74622 ::~ee74622(){ note_dtor("ee74622", this);} // tgen
+ee74622 ::ee74622(){ note_ctor("ee74622", this);} // tgen
+
+static void Test_ee74622()
+{
+ extern Class_Descriptor cd_ee74622;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee74622, buf);
+ ee74622 *dp, &lv = *(dp=new (buf) ee74622());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee74622)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74622)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc622*)(dd4622*), ABISELECT(16,8), "ee74622");
+ check_base_class_offset(lv, (bb22*)(cc622*)(dd4622*), ABISELECT(16,8), "ee74622");
+ check_base_class_offset(lv, (cc622*)(dd4622*), ABISELECT(16,8), "ee74622");
+ check_base_class_offset(lv, (dd4622*), ABISELECT(16,8), "ee74622");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74622.e");
+ test_class_info(&lv, &cd_ee74622);
+ dp->~ee74622();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74622(Test_ee74622, "ee74622", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee74622C1Ev();
+extern void _ZN7ee74622D1Ev();
+Name_Map name_map_ee74622[] = {
+ NSPAIR(_ZN7ee74622C1Ev),
+ NSPAIR(_ZN7ee74622D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc622;
+extern VTBL_ENTRY _ZTI5cc622[];
+extern VTBL_ENTRY _ZTV5cc622[];
+extern Class_Descriptor cd_dd4622;
+extern VTBL_ENTRY _ZTI6dd4622[];
+extern VTBL_ENTRY _ZTV6dd4622[];
+static Base_Class bases_ee74622[] = {
+ // 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_bb22, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc622, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd4622, 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 _ZTI7ee74622[];
+extern void _ZN7ee746223fooEv();
+extern void _ZN7ee746223barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee746223fooEv,_ZTv0_n12_N7ee746223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee746223fooEv,_ZThn8_N7ee746223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee746223barEv,_ZTv0_n16_N7ee746223barEv)();
+extern void ABISELECT(_ZThn16_N7ee746223barEv,_ZThn8_N7ee746223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74622[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74622[0]),
+ (VTBL_ENTRY)&_ZN7ee746223fooEv,
+ (VTBL_ENTRY)&_ZN7ee746223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74622[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee746223fooEv,_ZTv0_n12_N7ee746223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee746223barEv,_ZTv0_n16_N7ee746223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee74622[];
+static VTT_ENTRY vtt_ee74622[] = {
+ {&(_ZTV7ee74622[3]), 3,11},
+ {&(_ZTV7ee74622[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee74622[];
+extern VTBL_ENTRY _ZTV7ee74622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74622[];
+static VTBL_ENTRY alt_thunk_names1221[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee746223barEv,_ZTv0_n16_N7ee746223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee746223barEv,_ZThn8_N7ee746223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee746223fooEv,_ZTv0_n12_N7ee746223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee746223fooEv,_ZThn8_N7ee746223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74622 = { "ee74622", // class name
+ bases_ee74622, 4,
+ &(vtc_ee74622[0]), // expected_vtbl_contents
+ &(vtt_ee74622[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee74622),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74622),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74622),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1221,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd5622 : virtual cc622 {
+ int d;
+ virtual void bar(); // _ZN6dd56223barEv
+ ~dd5622(); // tgen
+ dd5622(); // tgen
+};
+//SIG(-1 dd5622) C1{ VBC2{ BC3{ BC4{ v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void dd5622 ::bar(){vfunc_called(this, "_ZN6dd56223barEv");}
+dd5622 ::~dd5622(){ note_dtor("dd5622", this);} // tgen
+dd5622 ::dd5622(){ note_ctor("dd5622", this);} // tgen
+
+static void Test_dd5622()
+{
+ extern Class_Descriptor cd_dd5622;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd5622, buf);
+ dd5622 *dp, &lv = *(dp=new (buf) dd5622());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd5622)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5622)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc622*), ABISELECT(16,8), "dd5622");
+ check_base_class_offset(lv, (bb22*)(cc622*), ABISELECT(16,8), "dd5622");
+ check_base_class_offset(lv, (cc622*), ABISELECT(16,8), "dd5622");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5622.d");
+ test_class_info(&lv, &cd_dd5622);
+ dp->~dd5622();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5622(Test_dd5622, "dd5622", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd5622C1Ev();
+extern void _ZN6dd5622D1Ev();
+Name_Map name_map_dd5622[] = {
+ NSPAIR(_ZN6dd5622C1Ev),
+ NSPAIR(_ZN6dd5622D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc622;
+extern VTBL_ENTRY _ZTI5cc622[];
+extern VTBL_ENTRY _ZTV5cc622[];
+static Base_Class bases_dd5622[] = {
+ // 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_bb22, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc622, 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 _ZTI6dd5622[];
+extern void _ZN6dd56223barEv();
+extern void _ZN5cc6223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56223barEv,_ZTv0_n16_N6dd56223barEv)();
+extern void ABISELECT(_ZThn16_N6dd56223barEv,_ZThn8_N6dd56223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd5622[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5622[0]),
+ (VTBL_ENTRY)&_ZN6dd56223barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5622[0]),
+ (VTBL_ENTRY)&_ZN5cc6223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56223barEv,_ZTv0_n16_N6dd56223barEv),
+};
+extern VTBL_ENTRY _ZTV6dd5622[];
+static VTT_ENTRY vtt_dd5622[] = {
+ {&(_ZTV6dd5622[3]), 3,10},
+ {&(_ZTV6dd5622[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd5622[];
+extern VTBL_ENTRY _ZTV6dd5622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5622[];
+static VTBL_ENTRY alt_thunk_names1222[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56223barEv,_ZTv0_n16_N6dd56223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56223barEv,_ZThn8_N6dd56223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5622 = { "dd5622", // class name
+ bases_dd5622, 3,
+ &(vtc_dd5622[0]), // expected_vtbl_contents
+ &(vtt_dd5622[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd5622),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5622),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5622),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1222,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05622 : dd5622 {
+ int e;
+ ~ee05622(); // tgen
+ ee05622(); // tgen
+};
+//SIG(1 ee05622) C1{ BC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee05622 ::~ee05622(){ note_dtor("ee05622", this);} // tgen
+ee05622 ::ee05622(){ note_ctor("ee05622", this);} // tgen
+
+static void Test_ee05622()
+{
+ extern Class_Descriptor cd_ee05622;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee05622, buf);
+ ee05622 *dp, &lv = *(dp=new (buf) ee05622());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee05622)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05622)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc622*), ABISELECT(16,12), "ee05622");
+ check_base_class_offset(lv, (bb22*)(cc622*), ABISELECT(16,12), "ee05622");
+ check_base_class_offset(lv, (cc622*)(dd5622*), ABISELECT(16,12), "ee05622");
+ check_base_class_offset(lv, (dd5622*), 0, "ee05622");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05622.e");
+ test_class_info(&lv, &cd_ee05622);
+ dp->~ee05622();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05622(Test_ee05622, "ee05622", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee05622C1Ev();
+extern void _ZN7ee05622D1Ev();
+Name_Map name_map_ee05622[] = {
+ NSPAIR(_ZN7ee05622C1Ev),
+ NSPAIR(_ZN7ee05622D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc622;
+extern VTBL_ENTRY _ZTI5cc622[];
+extern VTBL_ENTRY _ZTV5cc622[];
+extern Class_Descriptor cd_dd5622;
+extern VTBL_ENTRY _ZTI6dd5622[];
+extern VTBL_ENTRY _ZTV6dd5622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5622[];
+static Base_Class bases_ee05622[] = {
+ // 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_bb22, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc622, 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_dd5622, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05622[];
+extern void _ZN6dd56223barEv();
+extern void _ZN5cc6223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56223barEv,_ZTv0_n16_N6dd56223barEv)();
+extern void ABISELECT(_ZThn16_N6dd56223barEv,_ZThn12_N6dd56223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee05622[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05622[0]),
+ (VTBL_ENTRY)&_ZN6dd56223barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05622[0]),
+ (VTBL_ENTRY)&_ZN5cc6223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56223barEv,_ZTv0_n16_N6dd56223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee05622[];
+extern void _ZN6dd56223barEv();
+static VTBL_ENTRY _tg__ZTV6dd5622__7ee05622[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5622[0]),
+ (VTBL_ENTRY)&_ZN6dd56223barEv,
+};
+extern void _ZN5cc6223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56223barEv,_ZTv0_n16_N6dd56223barEv)();
+extern void ABISELECT(_ZThn16_N6dd56223barEv,_ZThn12_N6dd56223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc622__6dd5622__7ee05622[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5622[0]),
+ (VTBL_ENTRY)&_ZN5cc6223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56223barEv,_ZTv0_n16_N6dd56223barEv),
+};
+static VTT_ENTRY vtt_ee05622[] = {
+ {&(_ZTV7ee05622[3]), 3,10},
+ {&(_tg__ZTV6dd5622__7ee05622[3]), 3,4},
+ {&(_tg__ZTV5cc622__6dd5622__7ee05622[4]), 4,6},
+ {&(_ZTV7ee05622[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee05622[];
+extern VTBL_ENTRY _ZTV7ee05622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05622[];
+static VTBL_ENTRY alt_thunk_names1223[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56223barEv,_ZTv0_n16_N6dd56223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56223barEv,_ZThn12_N6dd56223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56223barEv,_ZThn12_N6dd56223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05622 = { "ee05622", // class name
+ bases_ee05622, 4,
+ &(vtc_ee05622[0]), // expected_vtbl_contents
+ &(vtt_ee05622[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee05622),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05622),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05622),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1223,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee15622 : virtual dd5622 {
+ int e;
+ ~ee15622(); // tgen
+ ee15622(); // tgen
+};
+//SIG(1 ee15622) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee15622 ::~ee15622(){ note_dtor("ee15622", this);} // tgen
+ee15622 ::ee15622(){ note_ctor("ee15622", this);} // tgen
+
+static void Test_ee15622()
+{
+ extern Class_Descriptor cd_ee15622;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee15622, buf);
+ ee15622 *dp, &lv = *(dp=new (buf) ee15622());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee15622)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15622)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc622*), ABISELECT(32,16), "ee15622");
+ check_base_class_offset(lv, (bb22*)(cc622*), ABISELECT(32,16), "ee15622");
+ check_base_class_offset(lv, (cc622*)(dd5622*), ABISELECT(32,16), "ee15622");
+ check_base_class_offset(lv, (dd5622*), ABISELECT(16,8), "ee15622");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15622.e");
+ test_class_info(&lv, &cd_ee15622);
+ dp->~ee15622();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15622(Test_ee15622, "ee15622", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee15622C1Ev();
+extern void _ZN7ee15622D1Ev();
+Name_Map name_map_ee15622[] = {
+ NSPAIR(_ZN7ee15622C1Ev),
+ NSPAIR(_ZN7ee15622D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc622;
+extern VTBL_ENTRY _ZTI5cc622[];
+extern VTBL_ENTRY _ZTV5cc622[];
+extern Class_Descriptor cd_dd5622;
+extern VTBL_ENTRY _ZTI6dd5622[];
+extern VTBL_ENTRY _ZTV6dd5622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5622[];
+static Base_Class bases_ee15622[] = {
+ // 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_bb22, 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_cc622, 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_dd5622, 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 _ZTI7ee15622[];
+extern void _ZN6dd56223barEv();
+extern void _ZN5cc6223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56223barEv,_ZTv0_n16_N6dd56223barEv)();
+extern void ABISELECT(_ZThn16_N6dd56223barEv,_ZThn8_N6dd56223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee15622[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15622[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15622[0]),
+ (VTBL_ENTRY)&_ZN6dd56223barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15622[0]),
+ (VTBL_ENTRY)&_ZN5cc6223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56223barEv,_ZTv0_n16_N6dd56223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee15622[];
+extern void _ZN6dd56223barEv();
+static VTBL_ENTRY _tg__ZTV6dd5622__7ee15622[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5622[0]),
+ (VTBL_ENTRY)&_ZN6dd56223barEv,
+};
+extern void _ZN5cc6223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56223barEv,_ZTv0_n16_N6dd56223barEv)();
+extern void ABISELECT(_ZThn16_N6dd56223barEv,_ZThn8_N6dd56223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc622__6dd5622__7ee15622[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5622[0]),
+ (VTBL_ENTRY)&_ZN5cc6223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56223barEv,_ZTv0_n16_N6dd56223barEv),
+};
+static VTT_ENTRY vtt_ee15622[] = {
+ {&(_ZTV7ee15622[4]), 4,15},
+ {&(_ZTV7ee15622[8]), 8,15},
+ {&(_ZTV7ee15622[13]), 13,15},
+ {&(_tg__ZTV6dd5622__7ee15622[3]), 3,4},
+ {&(_tg__ZTV5cc622__6dd5622__7ee15622[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee15622[];
+extern VTBL_ENTRY _ZTV7ee15622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15622[];
+static VTBL_ENTRY alt_thunk_names1224[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56223barEv,_ZTv0_n16_N6dd56223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56223barEv,_ZThn8_N6dd56223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56223barEv,_ZThn8_N6dd56223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15622 = { "ee15622", // class name
+ bases_ee15622, 4,
+ &(vtc_ee15622[0]), // expected_vtbl_contents
+ &(vtt_ee15622[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee15622),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15622),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15622),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1224,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee25622 : dd5622 {
+ int e;
+ virtual void foo(); // _ZN7ee256223fooEv
+ ~ee25622(); // tgen
+ ee25622(); // tgen
+};
+//SIG(1 ee25622) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee25622 ::foo(){vfunc_called(this, "_ZN7ee256223fooEv");}
+ee25622 ::~ee25622(){ note_dtor("ee25622", this);} // tgen
+ee25622 ::ee25622(){ note_ctor("ee25622", this);} // tgen
+
+static void Test_ee25622()
+{
+ extern Class_Descriptor cd_ee25622;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee25622, buf);
+ ee25622 *dp, &lv = *(dp=new (buf) ee25622());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee25622)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25622)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc622*), ABISELECT(16,12), "ee25622");
+ check_base_class_offset(lv, (bb22*)(cc622*), ABISELECT(16,12), "ee25622");
+ check_base_class_offset(lv, (cc622*)(dd5622*), ABISELECT(16,12), "ee25622");
+ check_base_class_offset(lv, (dd5622*), 0, "ee25622");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25622.e");
+ test_class_info(&lv, &cd_ee25622);
+ dp->~ee25622();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25622(Test_ee25622, "ee25622", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee25622C1Ev();
+extern void _ZN7ee25622D1Ev();
+Name_Map name_map_ee25622[] = {
+ NSPAIR(_ZN7ee25622C1Ev),
+ NSPAIR(_ZN7ee25622D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc622;
+extern VTBL_ENTRY _ZTI5cc622[];
+extern VTBL_ENTRY _ZTV5cc622[];
+extern Class_Descriptor cd_dd5622;
+extern VTBL_ENTRY _ZTI6dd5622[];
+extern VTBL_ENTRY _ZTV6dd5622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5622[];
+static Base_Class bases_ee25622[] = {
+ // 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_bb22, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc622, 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_dd5622, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25622[];
+extern void _ZN6dd56223barEv();
+extern void _ZN7ee256223fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee256223fooEv,_ZTv0_n12_N7ee256223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee256223fooEv,_ZThn12_N7ee256223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd56223barEv,_ZTv0_n16_N6dd56223barEv)();
+extern void ABISELECT(_ZThn16_N6dd56223barEv,_ZThn12_N6dd56223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25622[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25622[0]),
+ (VTBL_ENTRY)&_ZN6dd56223barEv,
+ (VTBL_ENTRY)&_ZN7ee256223fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25622[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee256223fooEv,_ZTv0_n12_N7ee256223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56223barEv,_ZTv0_n16_N6dd56223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee25622[];
+extern void _ZN6dd56223barEv();
+static VTBL_ENTRY _tg__ZTV6dd5622__7ee25622[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5622[0]),
+ (VTBL_ENTRY)&_ZN6dd56223barEv,
+};
+extern void _ZN5cc6223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56223barEv,_ZTv0_n16_N6dd56223barEv)();
+extern void ABISELECT(_ZThn16_N6dd56223barEv,_ZThn12_N6dd56223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc622__6dd5622__7ee25622[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5622[0]),
+ (VTBL_ENTRY)&_ZN5cc6223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56223barEv,_ZTv0_n16_N6dd56223barEv),
+};
+static VTT_ENTRY vtt_ee25622[] = {
+ {&(_ZTV7ee25622[3]), 3,11},
+ {&(_tg__ZTV6dd5622__7ee25622[3]), 3,4},
+ {&(_tg__ZTV5cc622__6dd5622__7ee25622[4]), 4,6},
+ {&(_ZTV7ee25622[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee25622[];
+extern VTBL_ENTRY _ZTV7ee25622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25622[];
+static VTBL_ENTRY alt_thunk_names1225[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56223barEv,_ZTv0_n16_N6dd56223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56223barEv,_ZThn12_N6dd56223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56223barEv,_ZThn12_N6dd56223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee256223fooEv,_ZTv0_n12_N7ee256223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee256223fooEv,_ZThn12_N7ee256223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25622 = { "ee25622", // class name
+ bases_ee25622, 4,
+ &(vtc_ee25622[0]), // expected_vtbl_contents
+ &(vtt_ee25622[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee25622),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25622),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25622),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1225,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee35622 : virtual dd5622 {
+ int e;
+ virtual void foo(); // _ZN7ee356223fooEv
+ ~ee35622(); // tgen
+ ee35622(); // tgen
+};
+//SIG(1 ee35622) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee35622 ::foo(){vfunc_called(this, "_ZN7ee356223fooEv");}
+ee35622 ::~ee35622(){ note_dtor("ee35622", this);} // tgen
+ee35622 ::ee35622(){ note_ctor("ee35622", this);} // tgen
+
+static void Test_ee35622()
+{
+ extern Class_Descriptor cd_ee35622;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee35622, buf);
+ ee35622 *dp, &lv = *(dp=new (buf) ee35622());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee35622)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35622)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc622*), ABISELECT(32,16), "ee35622");
+ check_base_class_offset(lv, (bb22*)(cc622*), ABISELECT(32,16), "ee35622");
+ check_base_class_offset(lv, (cc622*)(dd5622*), ABISELECT(32,16), "ee35622");
+ check_base_class_offset(lv, (dd5622*), ABISELECT(16,8), "ee35622");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35622.e");
+ test_class_info(&lv, &cd_ee35622);
+ dp->~ee35622();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35622(Test_ee35622, "ee35622", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee35622C1Ev();
+extern void _ZN7ee35622D1Ev();
+Name_Map name_map_ee35622[] = {
+ NSPAIR(_ZN7ee35622C1Ev),
+ NSPAIR(_ZN7ee35622D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc622;
+extern VTBL_ENTRY _ZTI5cc622[];
+extern VTBL_ENTRY _ZTV5cc622[];
+extern Class_Descriptor cd_dd5622;
+extern VTBL_ENTRY _ZTI6dd5622[];
+extern VTBL_ENTRY _ZTV6dd5622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5622[];
+static Base_Class bases_ee35622[] = {
+ // 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_bb22, 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_cc622, 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_dd5622, 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 _ZTI7ee35622[];
+extern void _ZN7ee356223fooEv();
+extern void _ZN6dd56223barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee356223fooEv,_ZTv0_n12_N7ee356223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee356223fooEv,_ZThn16_N7ee356223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd56223barEv,_ZTv0_n16_N6dd56223barEv)();
+extern void ABISELECT(_ZThn16_N6dd56223barEv,_ZThn8_N6dd56223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35622[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35622[0]),
+ (VTBL_ENTRY)&_ZN7ee356223fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35622[0]),
+ (VTBL_ENTRY)&_ZN6dd56223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35622[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee356223fooEv,_ZTv0_n12_N7ee356223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56223barEv,_ZTv0_n16_N6dd56223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee35622[];
+extern void _ZN6dd56223barEv();
+static VTBL_ENTRY _tg__ZTV6dd5622__7ee35622[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5622[0]),
+ (VTBL_ENTRY)&_ZN6dd56223barEv,
+};
+extern void _ZN5cc6223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56223barEv,_ZTv0_n16_N6dd56223barEv)();
+extern void ABISELECT(_ZThn16_N6dd56223barEv,_ZThn8_N6dd56223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc622__6dd5622__7ee35622[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5622[0]),
+ (VTBL_ENTRY)&_ZN5cc6223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56223barEv,_ZTv0_n16_N6dd56223barEv),
+};
+static VTT_ENTRY vtt_ee35622[] = {
+ {&(_ZTV7ee35622[4]), 4,16},
+ {&(_ZTV7ee35622[9]), 9,16},
+ {&(_ZTV7ee35622[14]), 14,16},
+ {&(_tg__ZTV6dd5622__7ee35622[3]), 3,4},
+ {&(_tg__ZTV5cc622__6dd5622__7ee35622[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee35622[];
+extern VTBL_ENTRY _ZTV7ee35622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35622[];
+static VTBL_ENTRY alt_thunk_names1226[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56223barEv,_ZTv0_n16_N6dd56223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56223barEv,_ZThn8_N6dd56223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56223barEv,_ZThn8_N6dd56223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee356223fooEv,_ZTv0_n12_N7ee356223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee356223fooEv,_ZThn16_N7ee356223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35622 = { "ee35622", // class name
+ bases_ee35622, 4,
+ &(vtc_ee35622[0]), // expected_vtbl_contents
+ &(vtt_ee35622[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee35622),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35622),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35622),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1226,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee45622 : dd5622 {
+ int e;
+ virtual void bar(); // _ZN7ee456223barEv
+ ~ee45622(); // tgen
+ ee45622(); // tgen
+};
+//SIG(1 ee45622) C1{ BC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee45622 ::bar(){vfunc_called(this, "_ZN7ee456223barEv");}
+ee45622 ::~ee45622(){ note_dtor("ee45622", this);} // tgen
+ee45622 ::ee45622(){ note_ctor("ee45622", this);} // tgen
+
+static void Test_ee45622()
+{
+ extern Class_Descriptor cd_ee45622;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee45622, buf);
+ ee45622 *dp, &lv = *(dp=new (buf) ee45622());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee45622)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45622)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc622*), ABISELECT(16,12), "ee45622");
+ check_base_class_offset(lv, (bb22*)(cc622*), ABISELECT(16,12), "ee45622");
+ check_base_class_offset(lv, (cc622*)(dd5622*), ABISELECT(16,12), "ee45622");
+ check_base_class_offset(lv, (dd5622*), 0, "ee45622");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45622.e");
+ test_class_info(&lv, &cd_ee45622);
+ dp->~ee45622();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45622(Test_ee45622, "ee45622", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee45622C1Ev();
+extern void _ZN7ee45622D1Ev();
+Name_Map name_map_ee45622[] = {
+ NSPAIR(_ZN7ee45622C1Ev),
+ NSPAIR(_ZN7ee45622D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc622;
+extern VTBL_ENTRY _ZTI5cc622[];
+extern VTBL_ENTRY _ZTV5cc622[];
+extern Class_Descriptor cd_dd5622;
+extern VTBL_ENTRY _ZTI6dd5622[];
+extern VTBL_ENTRY _ZTV6dd5622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5622[];
+static Base_Class bases_ee45622[] = {
+ // 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_bb22, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc622, 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_dd5622, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45622[];
+extern void _ZN7ee456223barEv();
+extern void _ZN5cc6223fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee456223barEv,_ZTv0_n16_N7ee456223barEv)();
+extern void ABISELECT(_ZThn16_N7ee456223barEv,_ZThn12_N7ee456223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee45622[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45622[0]),
+ (VTBL_ENTRY)&_ZN7ee456223barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45622[0]),
+ (VTBL_ENTRY)&_ZN5cc6223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee456223barEv,_ZTv0_n16_N7ee456223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee45622[];
+extern void _ZN6dd56223barEv();
+static VTBL_ENTRY _tg__ZTV6dd5622__7ee45622[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5622[0]),
+ (VTBL_ENTRY)&_ZN6dd56223barEv,
+};
+extern void _ZN5cc6223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56223barEv,_ZTv0_n16_N6dd56223barEv)();
+extern void ABISELECT(_ZThn16_N6dd56223barEv,_ZThn12_N6dd56223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc622__6dd5622__7ee45622[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5622[0]),
+ (VTBL_ENTRY)&_ZN5cc6223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56223barEv,_ZTv0_n16_N6dd56223barEv),
+};
+static VTT_ENTRY vtt_ee45622[] = {
+ {&(_ZTV7ee45622[3]), 3,10},
+ {&(_tg__ZTV6dd5622__7ee45622[3]), 3,4},
+ {&(_tg__ZTV5cc622__6dd5622__7ee45622[4]), 4,6},
+ {&(_ZTV7ee45622[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee45622[];
+extern VTBL_ENTRY _ZTV7ee45622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45622[];
+static VTBL_ENTRY alt_thunk_names1227[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56223barEv,_ZTv0_n16_N6dd56223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56223barEv,_ZThn12_N6dd56223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee456223barEv,_ZTv0_n16_N7ee456223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee456223barEv,_ZThn12_N7ee456223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45622 = { "ee45622", // class name
+ bases_ee45622, 4,
+ &(vtc_ee45622[0]), // expected_vtbl_contents
+ &(vtt_ee45622[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee45622),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45622),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45622),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1227,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee55622 : virtual dd5622 {
+ int e;
+ virtual void bar(); // _ZN7ee556223barEv
+ ~ee55622(); // tgen
+ ee55622(); // tgen
+};
+//SIG(1 ee55622) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee55622 ::bar(){vfunc_called(this, "_ZN7ee556223barEv");}
+ee55622 ::~ee55622(){ note_dtor("ee55622", this);} // tgen
+ee55622 ::ee55622(){ note_ctor("ee55622", this);} // tgen
+
+static void Test_ee55622()
+{
+ extern Class_Descriptor cd_ee55622;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee55622, buf);
+ ee55622 *dp, &lv = *(dp=new (buf) ee55622());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee55622)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55622)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc622*), ABISELECT(32,16), "ee55622");
+ check_base_class_offset(lv, (bb22*)(cc622*), ABISELECT(32,16), "ee55622");
+ check_base_class_offset(lv, (cc622*)(dd5622*), ABISELECT(32,16), "ee55622");
+ check_base_class_offset(lv, (dd5622*), ABISELECT(16,8), "ee55622");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55622.e");
+ test_class_info(&lv, &cd_ee55622);
+ dp->~ee55622();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55622(Test_ee55622, "ee55622", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee55622C1Ev();
+extern void _ZN7ee55622D1Ev();
+Name_Map name_map_ee55622[] = {
+ NSPAIR(_ZN7ee55622C1Ev),
+ NSPAIR(_ZN7ee55622D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc622;
+extern VTBL_ENTRY _ZTI5cc622[];
+extern VTBL_ENTRY _ZTV5cc622[];
+extern Class_Descriptor cd_dd5622;
+extern VTBL_ENTRY _ZTI6dd5622[];
+extern VTBL_ENTRY _ZTV6dd5622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5622[];
+static Base_Class bases_ee55622[] = {
+ // 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_bb22, 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_cc622, 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_dd5622, 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 _ZTI7ee55622[];
+extern void _ZN7ee556223barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee556223barEv,_ZTv0_n16_N7ee556223barEv)();
+extern void ABISELECT(_ZThn16_N7ee556223barEv,_ZThn8_N7ee556223barEv)() __attribute__((weak));
+extern void _ZN5cc6223fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee556223barEv,_ZTv0_n16_N7ee556223barEv)();
+extern void ABISELECT(_ZThn32_N7ee556223barEv,_ZThn16_N7ee556223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee55622[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55622[0]),
+ (VTBL_ENTRY)&_ZN7ee556223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55622[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee556223barEv,_ZTv0_n16_N7ee556223barEv),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55622[0]),
+ (VTBL_ENTRY)&_ZN5cc6223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee556223barEv,_ZTv0_n16_N7ee556223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee55622[];
+extern void _ZN6dd56223barEv();
+static VTBL_ENTRY _tg__ZTV6dd5622__7ee55622[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5622[0]),
+ (VTBL_ENTRY)&_ZN6dd56223barEv,
+};
+extern void _ZN5cc6223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56223barEv,_ZTv0_n16_N6dd56223barEv)();
+extern void ABISELECT(_ZThn16_N6dd56223barEv,_ZThn8_N6dd56223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc622__6dd5622__7ee55622[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5622[0]),
+ (VTBL_ENTRY)&_ZN5cc6223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56223barEv,_ZTv0_n16_N6dd56223barEv),
+};
+static VTT_ENTRY vtt_ee55622[] = {
+ {&(_ZTV7ee55622[4]), 4,16},
+ {&(_ZTV7ee55622[9]), 9,16},
+ {&(_ZTV7ee55622[14]), 14,16},
+ {&(_tg__ZTV6dd5622__7ee55622[3]), 3,4},
+ {&(_tg__ZTV5cc622__6dd5622__7ee55622[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee55622[];
+extern VTBL_ENTRY _ZTV7ee55622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55622[];
+static VTBL_ENTRY alt_thunk_names1228[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56223barEv,_ZTv0_n16_N6dd56223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56223barEv,_ZThn8_N6dd56223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee556223barEv,_ZTv0_n16_N7ee556223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee556223barEv,_ZThn16_N7ee556223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee556223barEv,_ZThn8_N7ee556223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55622 = { "ee55622", // class name
+ bases_ee55622, 4,
+ &(vtc_ee55622[0]), // expected_vtbl_contents
+ &(vtt_ee55622[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee55622),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55622),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55622),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1228,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee65622 : dd5622 {
+ int e;
+ virtual void foo(); // _ZN7ee656223fooEv
+ virtual void bar(); // _ZN7ee656223barEv
+ ~ee65622(); // tgen
+ ee65622(); // tgen
+};
+//SIG(1 ee65622) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65622 ::foo(){vfunc_called(this, "_ZN7ee656223fooEv");}
+void ee65622 ::bar(){vfunc_called(this, "_ZN7ee656223barEv");}
+ee65622 ::~ee65622(){ note_dtor("ee65622", this);} // tgen
+ee65622 ::ee65622(){ note_ctor("ee65622", this);} // tgen
+
+static void Test_ee65622()
+{
+ extern Class_Descriptor cd_ee65622;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee65622, buf);
+ ee65622 *dp, &lv = *(dp=new (buf) ee65622());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee65622)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65622)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc622*), ABISELECT(16,12), "ee65622");
+ check_base_class_offset(lv, (bb22*)(cc622*), ABISELECT(16,12), "ee65622");
+ check_base_class_offset(lv, (cc622*)(dd5622*), ABISELECT(16,12), "ee65622");
+ check_base_class_offset(lv, (dd5622*), 0, "ee65622");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65622.e");
+ test_class_info(&lv, &cd_ee65622);
+ dp->~ee65622();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65622(Test_ee65622, "ee65622", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee65622C1Ev();
+extern void _ZN7ee65622D1Ev();
+Name_Map name_map_ee65622[] = {
+ NSPAIR(_ZN7ee65622C1Ev),
+ NSPAIR(_ZN7ee65622D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc622;
+extern VTBL_ENTRY _ZTI5cc622[];
+extern VTBL_ENTRY _ZTV5cc622[];
+extern Class_Descriptor cd_dd5622;
+extern VTBL_ENTRY _ZTI6dd5622[];
+extern VTBL_ENTRY _ZTV6dd5622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5622[];
+static Base_Class bases_ee65622[] = {
+ // 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_bb22, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc622, 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_dd5622, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65622[];
+extern void _ZN7ee656223barEv();
+extern void _ZN7ee656223fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee656223fooEv,_ZTv0_n12_N7ee656223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee656223fooEv,_ZThn12_N7ee656223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee656223barEv,_ZTv0_n16_N7ee656223barEv)();
+extern void ABISELECT(_ZThn16_N7ee656223barEv,_ZThn12_N7ee656223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65622[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65622[0]),
+ (VTBL_ENTRY)&_ZN7ee656223barEv,
+ (VTBL_ENTRY)&_ZN7ee656223fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65622[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee656223fooEv,_ZTv0_n12_N7ee656223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee656223barEv,_ZTv0_n16_N7ee656223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee65622[];
+extern void _ZN6dd56223barEv();
+static VTBL_ENTRY _tg__ZTV6dd5622__7ee65622[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5622[0]),
+ (VTBL_ENTRY)&_ZN6dd56223barEv,
+};
+extern void _ZN5cc6223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56223barEv,_ZTv0_n16_N6dd56223barEv)();
+extern void ABISELECT(_ZThn16_N6dd56223barEv,_ZThn12_N6dd56223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc622__6dd5622__7ee65622[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5622[0]),
+ (VTBL_ENTRY)&_ZN5cc6223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56223barEv,_ZTv0_n16_N6dd56223barEv),
+};
+static VTT_ENTRY vtt_ee65622[] = {
+ {&(_ZTV7ee65622[3]), 3,11},
+ {&(_tg__ZTV6dd5622__7ee65622[3]), 3,4},
+ {&(_tg__ZTV5cc622__6dd5622__7ee65622[4]), 4,6},
+ {&(_ZTV7ee65622[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee65622[];
+extern VTBL_ENTRY _ZTV7ee65622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65622[];
+static VTBL_ENTRY alt_thunk_names1229[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56223barEv,_ZTv0_n16_N6dd56223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56223barEv,_ZThn12_N6dd56223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee656223barEv,_ZTv0_n16_N7ee656223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee656223barEv,_ZThn12_N7ee656223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee656223fooEv,_ZTv0_n12_N7ee656223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee656223fooEv,_ZThn12_N7ee656223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65622 = { "ee65622", // class name
+ bases_ee65622, 4,
+ &(vtc_ee65622[0]), // expected_vtbl_contents
+ &(vtt_ee65622[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee65622),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65622),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65622),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1229,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee75622 : virtual dd5622 {
+ int e;
+ virtual void foo(); // _ZN7ee756223fooEv
+ virtual void bar(); // _ZN7ee756223barEv
+ ~ee75622(); // tgen
+ ee75622(); // tgen
+};
+//SIG(1 ee75622) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75622 ::foo(){vfunc_called(this, "_ZN7ee756223fooEv");}
+void ee75622 ::bar(){vfunc_called(this, "_ZN7ee756223barEv");}
+ee75622 ::~ee75622(){ note_dtor("ee75622", this);} // tgen
+ee75622 ::ee75622(){ note_ctor("ee75622", this);} // tgen
+
+static void Test_ee75622()
+{
+ extern Class_Descriptor cd_ee75622;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee75622, buf);
+ ee75622 *dp, &lv = *(dp=new (buf) ee75622());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee75622)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75622)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc622*), ABISELECT(32,16), "ee75622");
+ check_base_class_offset(lv, (bb22*)(cc622*), ABISELECT(32,16), "ee75622");
+ check_base_class_offset(lv, (cc622*)(dd5622*), ABISELECT(32,16), "ee75622");
+ check_base_class_offset(lv, (dd5622*), ABISELECT(16,8), "ee75622");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75622.e");
+ test_class_info(&lv, &cd_ee75622);
+ dp->~ee75622();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75622(Test_ee75622, "ee75622", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee75622C1Ev();
+extern void _ZN7ee75622D1Ev();
+Name_Map name_map_ee75622[] = {
+ NSPAIR(_ZN7ee75622C1Ev),
+ NSPAIR(_ZN7ee75622D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc622;
+extern VTBL_ENTRY _ZTI5cc622[];
+extern VTBL_ENTRY _ZTV5cc622[];
+extern Class_Descriptor cd_dd5622;
+extern VTBL_ENTRY _ZTI6dd5622[];
+extern VTBL_ENTRY _ZTV6dd5622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5622[];
+static Base_Class bases_ee75622[] = {
+ // 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_bb22, 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_cc622, 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_dd5622, 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 _ZTI7ee75622[];
+extern void _ZN7ee756223fooEv();
+extern void _ZN7ee756223barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee756223barEv,_ZTv0_n16_N7ee756223barEv)();
+extern void ABISELECT(_ZThn16_N7ee756223barEv,_ZThn8_N7ee756223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee756223fooEv,_ZTv0_n12_N7ee756223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee756223fooEv,_ZThn16_N7ee756223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee756223barEv,_ZTv0_n16_N7ee756223barEv)();
+extern void ABISELECT(_ZThn32_N7ee756223barEv,_ZThn16_N7ee756223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75622[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75622[0]),
+ (VTBL_ENTRY)&_ZN7ee756223fooEv,
+ (VTBL_ENTRY)&_ZN7ee756223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75622[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee756223barEv,_ZTv0_n16_N7ee756223barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75622[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee756223fooEv,_ZTv0_n12_N7ee756223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee756223barEv,_ZTv0_n16_N7ee756223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee75622[];
+extern void _ZN6dd56223barEv();
+static VTBL_ENTRY _tg__ZTV6dd5622__7ee75622[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5622[0]),
+ (VTBL_ENTRY)&_ZN6dd56223barEv,
+};
+extern void _ZN5cc6223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56223barEv,_ZTv0_n16_N6dd56223barEv)();
+extern void ABISELECT(_ZThn16_N6dd56223barEv,_ZThn8_N6dd56223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc622__6dd5622__7ee75622[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5622[0]),
+ (VTBL_ENTRY)&_ZN5cc6223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56223barEv,_ZTv0_n16_N6dd56223barEv),
+};
+static VTT_ENTRY vtt_ee75622[] = {
+ {&(_ZTV7ee75622[4]), 4,17},
+ {&(_ZTV7ee75622[10]), 10,17},
+ {&(_ZTV7ee75622[15]), 15,17},
+ {&(_tg__ZTV6dd5622__7ee75622[3]), 3,4},
+ {&(_tg__ZTV5cc622__6dd5622__7ee75622[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee75622[];
+extern VTBL_ENTRY _ZTV7ee75622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75622[];
+static VTBL_ENTRY alt_thunk_names1230[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56223barEv,_ZTv0_n16_N6dd56223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56223barEv,_ZThn8_N6dd56223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee756223fooEv,_ZTv0_n12_N7ee756223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee756223fooEv,_ZThn16_N7ee756223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee756223barEv,_ZTv0_n16_N7ee756223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee756223barEv,_ZThn16_N7ee756223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee756223barEv,_ZThn8_N7ee756223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75622 = { "ee75622", // class name
+ bases_ee75622, 4,
+ &(vtc_ee75622[0]), // expected_vtbl_contents
+ &(vtt_ee75622[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee75622),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75622),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75622),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1230,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd6622 : cc622 {
+ int d;
+ virtual void bar(); // _ZN6dd66223barEv
+ virtual void foo(); // _ZN6dd66223fooEv
+ ~dd6622(); // tgen
+ dd6622(); // tgen
+};
+//SIG(-1 dd6622) C1{ BC2{ BC3{ BC4{ v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void dd6622 ::bar(){vfunc_called(this, "_ZN6dd66223barEv");}
+void dd6622 ::foo(){vfunc_called(this, "_ZN6dd66223fooEv");}
+dd6622 ::~dd6622(){ note_dtor("dd6622", this);} // tgen
+dd6622 ::dd6622(){ note_ctor("dd6622", this);} // tgen
+
+static void Test_dd6622()
+{
+ extern Class_Descriptor cd_dd6622;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd6622, buf);
+ dd6622 *dp, &lv = *(dp=new (buf) dd6622());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd6622)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6622)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc622*), 0, "dd6622");
+ check_base_class_offset(lv, (bb22*)(cc622*), 0, "dd6622");
+ check_base_class_offset(lv, (cc622*), 0, "dd6622");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd6622.d");
+ test_class_info(&lv, &cd_dd6622);
+ dp->~dd6622();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6622(Test_dd6622, "dd6622", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd6622C1Ev();
+extern void _ZN6dd6622D1Ev();
+Name_Map name_map_dd6622[] = {
+ NSPAIR(_ZN6dd6622C1Ev),
+ NSPAIR(_ZN6dd6622D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc622;
+extern VTBL_ENTRY _ZTI5cc622[];
+extern VTBL_ENTRY _ZTV5cc622[];
+static Base_Class bases_dd6622[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc622, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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 _ZTI6dd6622[];
+extern void _ZN6dd66223fooEv();
+extern void _ZN6dd66223barEv();
+static VTBL_ENTRY vtc_dd6622[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6622[0]),
+ (VTBL_ENTRY)&_ZN6dd66223fooEv,
+ (VTBL_ENTRY)&_ZN6dd66223barEv,
+};
+extern VTBL_ENTRY _ZTI6dd6622[];
+extern VTBL_ENTRY _ZTV6dd6622[];
+Class_Descriptor cd_dd6622 = { "dd6622", // class name
+ bases_dd6622, 3,
+ &(vtc_dd6622[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd6622),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6622),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 ee06622 : dd6622 {
+ int e;
+ ~ee06622(); // tgen
+ ee06622(); // tgen
+};
+//SIG(1 ee06622) C1{ BC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee06622 ::~ee06622(){ note_dtor("ee06622", this);} // tgen
+ee06622 ::ee06622(){ note_ctor("ee06622", this);} // tgen
+
+static void Test_ee06622()
+{
+ extern Class_Descriptor cd_ee06622;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee06622, buf);
+ ee06622 *dp, &lv = *(dp=new (buf) ee06622());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee06622)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06622)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc622*)(dd6622*), 0, "ee06622");
+ check_base_class_offset(lv, (bb22*)(cc622*)(dd6622*), 0, "ee06622");
+ check_base_class_offset(lv, (cc622*)(dd6622*), 0, "ee06622");
+ check_base_class_offset(lv, (dd6622*), 0, "ee06622");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee06622.e");
+ test_class_info(&lv, &cd_ee06622);
+ dp->~ee06622();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06622(Test_ee06622, "ee06622", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee06622C1Ev();
+extern void _ZN7ee06622D1Ev();
+Name_Map name_map_ee06622[] = {
+ NSPAIR(_ZN7ee06622C1Ev),
+ NSPAIR(_ZN7ee06622D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc622;
+extern VTBL_ENTRY _ZTI5cc622[];
+extern VTBL_ENTRY _ZTV5cc622[];
+extern Class_Descriptor cd_dd6622;
+extern VTBL_ENTRY _ZTI6dd6622[];
+extern VTBL_ENTRY _ZTV6dd6622[];
+static Base_Class bases_ee06622[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc622, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6622, 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 _ZTI7ee06622[];
+extern void _ZN6dd66223fooEv();
+extern void _ZN6dd66223barEv();
+static VTBL_ENTRY vtc_ee06622[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06622[0]),
+ (VTBL_ENTRY)&_ZN6dd66223fooEv,
+ (VTBL_ENTRY)&_ZN6dd66223barEv,
+};
+extern VTBL_ENTRY _ZTI7ee06622[];
+extern VTBL_ENTRY _ZTV7ee06622[];
+Class_Descriptor cd_ee06622 = { "ee06622", // class name
+ bases_ee06622, 4,
+ &(vtc_ee06622[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee06622),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06622),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 ee16622 : virtual dd6622 {
+ int e;
+ ~ee16622(); // tgen
+ ee16622(); // tgen
+};
+//SIG(1 ee16622) C1{ VBC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee16622 ::~ee16622(){ note_dtor("ee16622", this);} // tgen
+ee16622 ::ee16622(){ note_ctor("ee16622", this);} // tgen
+
+static void Test_ee16622()
+{
+ extern Class_Descriptor cd_ee16622;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee16622, buf);
+ ee16622 *dp, &lv = *(dp=new (buf) ee16622());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee16622)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16622)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc622*)(dd6622*), ABISELECT(16,8), "ee16622");
+ check_base_class_offset(lv, (bb22*)(cc622*)(dd6622*), ABISELECT(16,8), "ee16622");
+ check_base_class_offset(lv, (cc622*)(dd6622*), ABISELECT(16,8), "ee16622");
+ check_base_class_offset(lv, (dd6622*), ABISELECT(16,8), "ee16622");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16622.e");
+ test_class_info(&lv, &cd_ee16622);
+ dp->~ee16622();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16622(Test_ee16622, "ee16622", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee16622C1Ev();
+extern void _ZN7ee16622D1Ev();
+Name_Map name_map_ee16622[] = {
+ NSPAIR(_ZN7ee16622C1Ev),
+ NSPAIR(_ZN7ee16622D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc622;
+extern VTBL_ENTRY _ZTI5cc622[];
+extern VTBL_ENTRY _ZTV5cc622[];
+extern Class_Descriptor cd_dd6622;
+extern VTBL_ENTRY _ZTI6dd6622[];
+extern VTBL_ENTRY _ZTV6dd6622[];
+static Base_Class bases_ee16622[] = {
+ // 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_bb22, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc622, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6622, 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 _ZTI7ee16622[];
+extern void _ZN6dd66223fooEv();
+extern void _ZN6dd66223barEv();
+static VTBL_ENTRY vtc_ee16622[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16622[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16622[0]),
+ (VTBL_ENTRY)&_ZN6dd66223fooEv,
+ (VTBL_ENTRY)&_ZN6dd66223barEv,
+};
+extern VTBL_ENTRY _ZTV7ee16622[];
+static VTT_ENTRY vtt_ee16622[] = {
+ {&(_ZTV7ee16622[3]), 3,9},
+ {&(_ZTV7ee16622[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee16622[];
+extern VTBL_ENTRY _ZTV7ee16622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16622[];
+Class_Descriptor cd_ee16622 = { "ee16622", // class name
+ bases_ee16622, 4,
+ &(vtc_ee16622[0]), // expected_vtbl_contents
+ &(vtt_ee16622[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee16622),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16622),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16622),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 ee26622 : dd6622 {
+ int e;
+ virtual void foo(); // _ZN7ee266223fooEv
+ ~ee26622(); // tgen
+ ee26622(); // tgen
+};
+//SIG(1 ee26622) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26622 ::foo(){vfunc_called(this, "_ZN7ee266223fooEv");}
+ee26622 ::~ee26622(){ note_dtor("ee26622", this);} // tgen
+ee26622 ::ee26622(){ note_ctor("ee26622", this);} // tgen
+
+static void Test_ee26622()
+{
+ extern Class_Descriptor cd_ee26622;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee26622, buf);
+ ee26622 *dp, &lv = *(dp=new (buf) ee26622());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee26622)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26622)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc622*)(dd6622*), 0, "ee26622");
+ check_base_class_offset(lv, (bb22*)(cc622*)(dd6622*), 0, "ee26622");
+ check_base_class_offset(lv, (cc622*)(dd6622*), 0, "ee26622");
+ check_base_class_offset(lv, (dd6622*), 0, "ee26622");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee26622.e");
+ test_class_info(&lv, &cd_ee26622);
+ dp->~ee26622();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26622(Test_ee26622, "ee26622", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee26622C1Ev();
+extern void _ZN7ee26622D1Ev();
+Name_Map name_map_ee26622[] = {
+ NSPAIR(_ZN7ee26622C1Ev),
+ NSPAIR(_ZN7ee26622D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc622;
+extern VTBL_ENTRY _ZTI5cc622[];
+extern VTBL_ENTRY _ZTV5cc622[];
+extern Class_Descriptor cd_dd6622;
+extern VTBL_ENTRY _ZTI6dd6622[];
+extern VTBL_ENTRY _ZTV6dd6622[];
+static Base_Class bases_ee26622[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc622, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6622, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee26622[];
+extern void _ZN7ee266223fooEv();
+extern void _ZN6dd66223barEv();
+static VTBL_ENTRY vtc_ee26622[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26622[0]),
+ (VTBL_ENTRY)&_ZN7ee266223fooEv,
+ (VTBL_ENTRY)&_ZN6dd66223barEv,
+};
+extern VTBL_ENTRY _ZTI7ee26622[];
+extern VTBL_ENTRY _ZTV7ee26622[];
+Class_Descriptor cd_ee26622 = { "ee26622", // class name
+ bases_ee26622, 4,
+ &(vtc_ee26622[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee26622),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26622),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 ee36622 : virtual dd6622 {
+ int e;
+ virtual void foo(); // _ZN7ee366223fooEv
+ ~ee36622(); // tgen
+ ee36622(); // tgen
+};
+//SIG(1 ee36622) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36622 ::foo(){vfunc_called(this, "_ZN7ee366223fooEv");}
+ee36622 ::~ee36622(){ note_dtor("ee36622", this);} // tgen
+ee36622 ::ee36622(){ note_ctor("ee36622", this);} // tgen
+
+static void Test_ee36622()
+{
+ extern Class_Descriptor cd_ee36622;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee36622, buf);
+ ee36622 *dp, &lv = *(dp=new (buf) ee36622());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee36622)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36622)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc622*)(dd6622*), ABISELECT(16,8), "ee36622");
+ check_base_class_offset(lv, (bb22*)(cc622*)(dd6622*), ABISELECT(16,8), "ee36622");
+ check_base_class_offset(lv, (cc622*)(dd6622*), ABISELECT(16,8), "ee36622");
+ check_base_class_offset(lv, (dd6622*), ABISELECT(16,8), "ee36622");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36622.e");
+ test_class_info(&lv, &cd_ee36622);
+ dp->~ee36622();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36622(Test_ee36622, "ee36622", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee36622C1Ev();
+extern void _ZN7ee36622D1Ev();
+Name_Map name_map_ee36622[] = {
+ NSPAIR(_ZN7ee36622C1Ev),
+ NSPAIR(_ZN7ee36622D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc622;
+extern VTBL_ENTRY _ZTI5cc622[];
+extern VTBL_ENTRY _ZTV5cc622[];
+extern Class_Descriptor cd_dd6622;
+extern VTBL_ENTRY _ZTI6dd6622[];
+extern VTBL_ENTRY _ZTV6dd6622[];
+static Base_Class bases_ee36622[] = {
+ // 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_bb22, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc622, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6622, 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 _ZTI7ee36622[];
+extern void _ZN7ee366223fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee366223fooEv,_ZTv0_n12_N7ee366223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee366223fooEv,_ZThn8_N7ee366223fooEv)() __attribute__((weak));
+extern void _ZN6dd66223barEv();
+static VTBL_ENTRY vtc_ee36622[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36622[0]),
+ (VTBL_ENTRY)&_ZN7ee366223fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36622[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee366223fooEv,_ZTv0_n12_N7ee366223fooEv),
+ (VTBL_ENTRY)&_ZN6dd66223barEv,
+};
+extern VTBL_ENTRY _ZTV7ee36622[];
+static VTT_ENTRY vtt_ee36622[] = {
+ {&(_ZTV7ee36622[3]), 3,10},
+ {&(_ZTV7ee36622[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee36622[];
+extern VTBL_ENTRY _ZTV7ee36622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36622[];
+static VTBL_ENTRY alt_thunk_names1231[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee366223fooEv,_ZTv0_n12_N7ee366223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee366223fooEv,_ZThn8_N7ee366223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36622 = { "ee36622", // class name
+ bases_ee36622, 4,
+ &(vtc_ee36622[0]), // expected_vtbl_contents
+ &(vtt_ee36622[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee36622),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36622),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36622),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1231,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee46622 : dd6622 {
+ int e;
+ virtual void bar(); // _ZN7ee466223barEv
+ ~ee46622(); // tgen
+ ee46622(); // tgen
+};
+//SIG(1 ee46622) C1{ BC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46622 ::bar(){vfunc_called(this, "_ZN7ee466223barEv");}
+ee46622 ::~ee46622(){ note_dtor("ee46622", this);} // tgen
+ee46622 ::ee46622(){ note_ctor("ee46622", this);} // tgen
+
+static void Test_ee46622()
+{
+ extern Class_Descriptor cd_ee46622;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee46622, buf);
+ ee46622 *dp, &lv = *(dp=new (buf) ee46622());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee46622)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46622)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc622*)(dd6622*), 0, "ee46622");
+ check_base_class_offset(lv, (bb22*)(cc622*)(dd6622*), 0, "ee46622");
+ check_base_class_offset(lv, (cc622*)(dd6622*), 0, "ee46622");
+ check_base_class_offset(lv, (dd6622*), 0, "ee46622");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee46622.e");
+ test_class_info(&lv, &cd_ee46622);
+ dp->~ee46622();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46622(Test_ee46622, "ee46622", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee46622C1Ev();
+extern void _ZN7ee46622D1Ev();
+Name_Map name_map_ee46622[] = {
+ NSPAIR(_ZN7ee46622C1Ev),
+ NSPAIR(_ZN7ee46622D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc622;
+extern VTBL_ENTRY _ZTI5cc622[];
+extern VTBL_ENTRY _ZTV5cc622[];
+extern Class_Descriptor cd_dd6622;
+extern VTBL_ENTRY _ZTI6dd6622[];
+extern VTBL_ENTRY _ZTV6dd6622[];
+static Base_Class bases_ee46622[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc622, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6622, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee46622[];
+extern void _ZN6dd66223fooEv();
+extern void _ZN7ee466223barEv();
+static VTBL_ENTRY vtc_ee46622[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46622[0]),
+ (VTBL_ENTRY)&_ZN6dd66223fooEv,
+ (VTBL_ENTRY)&_ZN7ee466223barEv,
+};
+extern VTBL_ENTRY _ZTI7ee46622[];
+extern VTBL_ENTRY _ZTV7ee46622[];
+Class_Descriptor cd_ee46622 = { "ee46622", // class name
+ bases_ee46622, 4,
+ &(vtc_ee46622[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee46622),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46622),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 ee56622 : virtual dd6622 {
+ int e;
+ virtual void bar(); // _ZN7ee566223barEv
+ ~ee56622(); // tgen
+ ee56622(); // tgen
+};
+//SIG(1 ee56622) C1{ VBC2{ BC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56622 ::bar(){vfunc_called(this, "_ZN7ee566223barEv");}
+ee56622 ::~ee56622(){ note_dtor("ee56622", this);} // tgen
+ee56622 ::ee56622(){ note_ctor("ee56622", this);} // tgen
+
+static void Test_ee56622()
+{
+ extern Class_Descriptor cd_ee56622;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee56622, buf);
+ ee56622 *dp, &lv = *(dp=new (buf) ee56622());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee56622)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56622)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc622*)(dd6622*), ABISELECT(16,8), "ee56622");
+ check_base_class_offset(lv, (bb22*)(cc622*)(dd6622*), ABISELECT(16,8), "ee56622");
+ check_base_class_offset(lv, (cc622*)(dd6622*), ABISELECT(16,8), "ee56622");
+ check_base_class_offset(lv, (dd6622*), ABISELECT(16,8), "ee56622");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56622.e");
+ test_class_info(&lv, &cd_ee56622);
+ dp->~ee56622();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56622(Test_ee56622, "ee56622", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee56622C1Ev();
+extern void _ZN7ee56622D1Ev();
+Name_Map name_map_ee56622[] = {
+ NSPAIR(_ZN7ee56622C1Ev),
+ NSPAIR(_ZN7ee56622D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc622;
+extern VTBL_ENTRY _ZTI5cc622[];
+extern VTBL_ENTRY _ZTV5cc622[];
+extern Class_Descriptor cd_dd6622;
+extern VTBL_ENTRY _ZTI6dd6622[];
+extern VTBL_ENTRY _ZTV6dd6622[];
+static Base_Class bases_ee56622[] = {
+ // 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_bb22, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc622, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6622, 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 _ZTI7ee56622[];
+extern void _ZN7ee566223barEv();
+extern void _ZN6dd66223fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee566223barEv,_ZTv0_n16_N7ee566223barEv)();
+extern void ABISELECT(_ZThn16_N7ee566223barEv,_ZThn8_N7ee566223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56622[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56622[0]),
+ (VTBL_ENTRY)&_ZN7ee566223barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56622[0]),
+ (VTBL_ENTRY)&_ZN6dd66223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee566223barEv,_ZTv0_n16_N7ee566223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee56622[];
+static VTT_ENTRY vtt_ee56622[] = {
+ {&(_ZTV7ee56622[3]), 3,10},
+ {&(_ZTV7ee56622[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee56622[];
+extern VTBL_ENTRY _ZTV7ee56622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56622[];
+static VTBL_ENTRY alt_thunk_names1232[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee566223barEv,_ZTv0_n16_N7ee566223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee566223barEv,_ZThn8_N7ee566223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56622 = { "ee56622", // class name
+ bases_ee56622, 4,
+ &(vtc_ee56622[0]), // expected_vtbl_contents
+ &(vtt_ee56622[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee56622),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56622),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56622),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1232,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee66622 : dd6622 {
+ int e;
+ virtual void foo(); // _ZN7ee666223fooEv
+ virtual void bar(); // _ZN7ee666223barEv
+ ~ee66622(); // tgen
+ ee66622(); // tgen
+};
+//SIG(1 ee66622) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66622 ::foo(){vfunc_called(this, "_ZN7ee666223fooEv");}
+void ee66622 ::bar(){vfunc_called(this, "_ZN7ee666223barEv");}
+ee66622 ::~ee66622(){ note_dtor("ee66622", this);} // tgen
+ee66622 ::ee66622(){ note_ctor("ee66622", this);} // tgen
+
+static void Test_ee66622()
+{
+ extern Class_Descriptor cd_ee66622;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee66622, buf);
+ ee66622 *dp, &lv = *(dp=new (buf) ee66622());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee66622)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66622)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc622*)(dd6622*), 0, "ee66622");
+ check_base_class_offset(lv, (bb22*)(cc622*)(dd6622*), 0, "ee66622");
+ check_base_class_offset(lv, (cc622*)(dd6622*), 0, "ee66622");
+ check_base_class_offset(lv, (dd6622*), 0, "ee66622");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee66622.e");
+ test_class_info(&lv, &cd_ee66622);
+ dp->~ee66622();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66622(Test_ee66622, "ee66622", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee66622C1Ev();
+extern void _ZN7ee66622D1Ev();
+Name_Map name_map_ee66622[] = {
+ NSPAIR(_ZN7ee66622C1Ev),
+ NSPAIR(_ZN7ee66622D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc622;
+extern VTBL_ENTRY _ZTI5cc622[];
+extern VTBL_ENTRY _ZTV5cc622[];
+extern Class_Descriptor cd_dd6622;
+extern VTBL_ENTRY _ZTI6dd6622[];
+extern VTBL_ENTRY _ZTV6dd6622[];
+static Base_Class bases_ee66622[] = {
+ // 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_bb22, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc622, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6622, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee66622[];
+extern void _ZN7ee666223fooEv();
+extern void _ZN7ee666223barEv();
+static VTBL_ENTRY vtc_ee66622[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66622[0]),
+ (VTBL_ENTRY)&_ZN7ee666223fooEv,
+ (VTBL_ENTRY)&_ZN7ee666223barEv,
+};
+extern VTBL_ENTRY _ZTI7ee66622[];
+extern VTBL_ENTRY _ZTV7ee66622[];
+Class_Descriptor cd_ee66622 = { "ee66622", // class name
+ bases_ee66622, 4,
+ &(vtc_ee66622[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee66622),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66622),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 ee76622 : virtual dd6622 {
+ int e;
+ virtual void foo(); // _ZN7ee766223fooEv
+ virtual void bar(); // _ZN7ee766223barEv
+ ~ee76622(); // tgen
+ ee76622(); // tgen
+};
+//SIG(1 ee76622) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76622 ::foo(){vfunc_called(this, "_ZN7ee766223fooEv");}
+void ee76622 ::bar(){vfunc_called(this, "_ZN7ee766223barEv");}
+ee76622 ::~ee76622(){ note_dtor("ee76622", this);} // tgen
+ee76622 ::ee76622(){ note_ctor("ee76622", this);} // tgen
+
+static void Test_ee76622()
+{
+ extern Class_Descriptor cd_ee76622;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee76622, buf);
+ ee76622 *dp, &lv = *(dp=new (buf) ee76622());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee76622)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76622)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc622*)(dd6622*), ABISELECT(16,8), "ee76622");
+ check_base_class_offset(lv, (bb22*)(cc622*)(dd6622*), ABISELECT(16,8), "ee76622");
+ check_base_class_offset(lv, (cc622*)(dd6622*), ABISELECT(16,8), "ee76622");
+ check_base_class_offset(lv, (dd6622*), ABISELECT(16,8), "ee76622");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76622.e");
+ test_class_info(&lv, &cd_ee76622);
+ dp->~ee76622();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76622(Test_ee76622, "ee76622", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee76622C1Ev();
+extern void _ZN7ee76622D1Ev();
+Name_Map name_map_ee76622[] = {
+ NSPAIR(_ZN7ee76622C1Ev),
+ NSPAIR(_ZN7ee76622D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc622;
+extern VTBL_ENTRY _ZTI5cc622[];
+extern VTBL_ENTRY _ZTV5cc622[];
+extern Class_Descriptor cd_dd6622;
+extern VTBL_ENTRY _ZTI6dd6622[];
+extern VTBL_ENTRY _ZTV6dd6622[];
+static Base_Class bases_ee76622[] = {
+ // 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_bb22, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc622, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_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_dd6622, 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 _ZTI7ee76622[];
+extern void _ZN7ee766223fooEv();
+extern void _ZN7ee766223barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee766223fooEv,_ZTv0_n12_N7ee766223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee766223fooEv,_ZThn8_N7ee766223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee766223barEv,_ZTv0_n16_N7ee766223barEv)();
+extern void ABISELECT(_ZThn16_N7ee766223barEv,_ZThn8_N7ee766223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76622[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76622[0]),
+ (VTBL_ENTRY)&_ZN7ee766223fooEv,
+ (VTBL_ENTRY)&_ZN7ee766223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76622[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee766223fooEv,_ZTv0_n12_N7ee766223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee766223barEv,_ZTv0_n16_N7ee766223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee76622[];
+static VTT_ENTRY vtt_ee76622[] = {
+ {&(_ZTV7ee76622[3]), 3,11},
+ {&(_ZTV7ee76622[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee76622[];
+extern VTBL_ENTRY _ZTV7ee76622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76622[];
+static VTBL_ENTRY alt_thunk_names1233[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee766223barEv,_ZTv0_n16_N7ee766223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee766223barEv,_ZThn8_N7ee766223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee766223fooEv,_ZTv0_n12_N7ee766223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee766223fooEv,_ZThn8_N7ee766223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76622 = { "ee76622", // class name
+ bases_ee76622, 4,
+ &(vtc_ee76622[0]), // expected_vtbl_contents
+ &(vtt_ee76622[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee76622),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76622),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76622),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1233,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd7622 : virtual cc622 {
+ int d;
+ virtual void bar(); // _ZN6dd76223barEv
+ virtual void foo(); // _ZN6dd76223fooEv
+ ~dd7622(); // tgen
+ dd7622(); // tgen
+};
+//SIG(-1 dd7622) C1{ VBC2{ BC3{ BC4{ v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void dd7622 ::bar(){vfunc_called(this, "_ZN6dd76223barEv");}
+void dd7622 ::foo(){vfunc_called(this, "_ZN6dd76223fooEv");}
+dd7622 ::~dd7622(){ note_dtor("dd7622", this);} // tgen
+dd7622 ::dd7622(){ note_ctor("dd7622", this);} // tgen
+
+static void Test_dd7622()
+{
+ extern Class_Descriptor cd_dd7622;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd7622, buf);
+ dd7622 *dp, &lv = *(dp=new (buf) dd7622());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd7622)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7622)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc622*), ABISELECT(16,8), "dd7622");
+ check_base_class_offset(lv, (bb22*)(cc622*), ABISELECT(16,8), "dd7622");
+ check_base_class_offset(lv, (cc622*), ABISELECT(16,8), "dd7622");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7622.d");
+ test_class_info(&lv, &cd_dd7622);
+ dp->~dd7622();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7622(Test_dd7622, "dd7622", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd7622C1Ev();
+extern void _ZN6dd7622D1Ev();
+Name_Map name_map_dd7622[] = {
+ NSPAIR(_ZN6dd7622C1Ev),
+ NSPAIR(_ZN6dd7622D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc622;
+extern VTBL_ENTRY _ZTI5cc622[];
+extern VTBL_ENTRY _ZTV5cc622[];
+static Base_Class bases_dd7622[] = {
+ // 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_bb22, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc622, 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 _ZTI6dd7622[];
+extern void _ZN6dd76223barEv();
+extern void _ZN6dd76223fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd76223fooEv,_ZTv0_n12_N6dd76223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76223fooEv,_ZThn8_N6dd76223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76223barEv,_ZTv0_n16_N6dd76223barEv)();
+extern void ABISELECT(_ZThn16_N6dd76223barEv,_ZThn8_N6dd76223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7622[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7622[0]),
+ (VTBL_ENTRY)&_ZN6dd76223barEv,
+ (VTBL_ENTRY)&_ZN6dd76223fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7622[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76223fooEv,_ZTv0_n12_N6dd76223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76223barEv,_ZTv0_n16_N6dd76223barEv),
+};
+extern VTBL_ENTRY _ZTV6dd7622[];
+static VTT_ENTRY vtt_dd7622[] = {
+ {&(_ZTV6dd7622[3]), 3,11},
+ {&(_ZTV6dd7622[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd7622[];
+extern VTBL_ENTRY _ZTV6dd7622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7622[];
+static VTBL_ENTRY alt_thunk_names1234[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76223barEv,_ZTv0_n16_N6dd76223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76223barEv,_ZThn8_N6dd76223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76223fooEv,_ZTv0_n12_N6dd76223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76223fooEv,_ZThn8_N6dd76223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7622 = { "dd7622", // class name
+ bases_dd7622, 3,
+ &(vtc_dd7622[0]), // expected_vtbl_contents
+ &(vtt_dd7622[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd7622),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7622),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7622),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1234,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07622 : dd7622 {
+ int e;
+ ~ee07622(); // tgen
+ ee07622(); // tgen
+};
+//SIG(1 ee07622) C1{ BC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee07622 ::~ee07622(){ note_dtor("ee07622", this);} // tgen
+ee07622 ::ee07622(){ note_ctor("ee07622", this);} // tgen
+
+static void Test_ee07622()
+{
+ extern Class_Descriptor cd_ee07622;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee07622, buf);
+ ee07622 *dp, &lv = *(dp=new (buf) ee07622());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee07622)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07622)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc622*), ABISELECT(16,12), "ee07622");
+ check_base_class_offset(lv, (bb22*)(cc622*), ABISELECT(16,12), "ee07622");
+ check_base_class_offset(lv, (cc622*)(dd7622*), ABISELECT(16,12), "ee07622");
+ check_base_class_offset(lv, (dd7622*), 0, "ee07622");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07622.e");
+ test_class_info(&lv, &cd_ee07622);
+ dp->~ee07622();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07622(Test_ee07622, "ee07622", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee07622C1Ev();
+extern void _ZN7ee07622D1Ev();
+Name_Map name_map_ee07622[] = {
+ NSPAIR(_ZN7ee07622C1Ev),
+ NSPAIR(_ZN7ee07622D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc622;
+extern VTBL_ENTRY _ZTI5cc622[];
+extern VTBL_ENTRY _ZTV5cc622[];
+extern Class_Descriptor cd_dd7622;
+extern VTBL_ENTRY _ZTI6dd7622[];
+extern VTBL_ENTRY _ZTV6dd7622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7622[];
+static Base_Class bases_ee07622[] = {
+ // 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_bb22, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc622, 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_dd7622, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07622[];
+extern void _ZN6dd76223barEv();
+extern void _ZN6dd76223fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd76223fooEv,_ZTv0_n12_N6dd76223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76223fooEv,_ZThn12_N6dd76223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76223barEv,_ZTv0_n16_N6dd76223barEv)();
+extern void ABISELECT(_ZThn16_N6dd76223barEv,_ZThn12_N6dd76223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07622[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07622[0]),
+ (VTBL_ENTRY)&_ZN6dd76223barEv,
+ (VTBL_ENTRY)&_ZN6dd76223fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07622[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76223fooEv,_ZTv0_n12_N6dd76223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76223barEv,_ZTv0_n16_N6dd76223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee07622[];
+extern void _ZN6dd76223barEv();
+extern void _ZN6dd76223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7622__7ee07622[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7622[0]),
+ (VTBL_ENTRY)&_ZN6dd76223barEv,
+ (VTBL_ENTRY)&_ZN6dd76223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76223fooEv,_ZTv0_n12_N6dd76223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76223fooEv,_ZThn12_N6dd76223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76223barEv,_ZTv0_n16_N6dd76223barEv)();
+extern void ABISELECT(_ZThn16_N6dd76223barEv,_ZThn12_N6dd76223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc622__6dd7622__7ee07622[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7622[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76223fooEv,_ZTv0_n12_N6dd76223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76223barEv,_ZTv0_n16_N6dd76223barEv),
+};
+static VTT_ENTRY vtt_ee07622[] = {
+ {&(_ZTV7ee07622[3]), 3,11},
+ {&(_tg__ZTV6dd7622__7ee07622[3]), 3,5},
+ {&(_tg__ZTV5cc622__6dd7622__7ee07622[4]), 4,6},
+ {&(_ZTV7ee07622[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee07622[];
+extern VTBL_ENTRY _ZTV7ee07622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07622[];
+static VTBL_ENTRY alt_thunk_names1235[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76223barEv,_ZTv0_n16_N6dd76223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76223barEv,_ZThn12_N6dd76223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76223barEv,_ZThn12_N6dd76223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76223fooEv,_ZTv0_n12_N6dd76223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76223fooEv,_ZThn12_N6dd76223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76223fooEv,_ZThn12_N6dd76223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07622 = { "ee07622", // class name
+ bases_ee07622, 4,
+ &(vtc_ee07622[0]), // expected_vtbl_contents
+ &(vtt_ee07622[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee07622),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07622),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07622),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1235,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee17622 : virtual dd7622 {
+ int e;
+ ~ee17622(); // tgen
+ ee17622(); // tgen
+};
+//SIG(1 ee17622) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee17622 ::~ee17622(){ note_dtor("ee17622", this);} // tgen
+ee17622 ::ee17622(){ note_ctor("ee17622", this);} // tgen
+
+static void Test_ee17622()
+{
+ extern Class_Descriptor cd_ee17622;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee17622, buf);
+ ee17622 *dp, &lv = *(dp=new (buf) ee17622());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee17622)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17622)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc622*), ABISELECT(32,16), "ee17622");
+ check_base_class_offset(lv, (bb22*)(cc622*), ABISELECT(32,16), "ee17622");
+ check_base_class_offset(lv, (cc622*)(dd7622*), ABISELECT(32,16), "ee17622");
+ check_base_class_offset(lv, (dd7622*), ABISELECT(16,8), "ee17622");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17622.e");
+ test_class_info(&lv, &cd_ee17622);
+ dp->~ee17622();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17622(Test_ee17622, "ee17622", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee17622C1Ev();
+extern void _ZN7ee17622D1Ev();
+Name_Map name_map_ee17622[] = {
+ NSPAIR(_ZN7ee17622C1Ev),
+ NSPAIR(_ZN7ee17622D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc622;
+extern VTBL_ENTRY _ZTI5cc622[];
+extern VTBL_ENTRY _ZTV5cc622[];
+extern Class_Descriptor cd_dd7622;
+extern VTBL_ENTRY _ZTI6dd7622[];
+extern VTBL_ENTRY _ZTV6dd7622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7622[];
+static Base_Class bases_ee17622[] = {
+ // 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_bb22, 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_cc622, 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_dd7622, 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 _ZTI7ee17622[];
+extern void _ZN6dd76223barEv();
+extern void _ZN6dd76223fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd76223fooEv,_ZTv0_n12_N6dd76223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76223fooEv,_ZThn8_N6dd76223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76223barEv,_ZTv0_n16_N6dd76223barEv)();
+extern void ABISELECT(_ZThn16_N6dd76223barEv,_ZThn8_N6dd76223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17622[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17622[0]),
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17622[0]),
+ (VTBL_ENTRY)&_ZN6dd76223barEv,
+ (VTBL_ENTRY)&_ZN6dd76223fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17622[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76223fooEv,_ZTv0_n12_N6dd76223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76223barEv,_ZTv0_n16_N6dd76223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee17622[];
+extern void _ZN6dd76223barEv();
+extern void _ZN6dd76223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7622__7ee17622[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7622[0]),
+ (VTBL_ENTRY)&_ZN6dd76223barEv,
+ (VTBL_ENTRY)&_ZN6dd76223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76223fooEv,_ZTv0_n12_N6dd76223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76223fooEv,_ZThn8_N6dd76223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76223barEv,_ZTv0_n16_N6dd76223barEv)();
+extern void ABISELECT(_ZThn16_N6dd76223barEv,_ZThn8_N6dd76223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc622__6dd7622__7ee17622[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7622[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76223fooEv,_ZTv0_n12_N6dd76223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76223barEv,_ZTv0_n16_N6dd76223barEv),
+};
+static VTT_ENTRY vtt_ee17622[] = {
+ {&(_ZTV7ee17622[4]), 4,17},
+ {&(_ZTV7ee17622[9]), 9,17},
+ {&(_ZTV7ee17622[15]), 15,17},
+ {&(_tg__ZTV6dd7622__7ee17622[3]), 3,5},
+ {&(_tg__ZTV5cc622__6dd7622__7ee17622[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee17622[];
+extern VTBL_ENTRY _ZTV7ee17622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17622[];
+static VTBL_ENTRY alt_thunk_names1236[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76223barEv,_ZTv0_n16_N6dd76223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76223barEv,_ZThn8_N6dd76223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76223barEv,_ZThn8_N6dd76223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76223fooEv,_ZTv0_n12_N6dd76223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76223fooEv,_ZThn8_N6dd76223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76223fooEv,_ZThn8_N6dd76223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17622 = { "ee17622", // class name
+ bases_ee17622, 4,
+ &(vtc_ee17622[0]), // expected_vtbl_contents
+ &(vtt_ee17622[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee17622),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17622),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17622),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1236,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee27622 : dd7622 {
+ int e;
+ virtual void foo(); // _ZN7ee276223fooEv
+ ~ee27622(); // tgen
+ ee27622(); // tgen
+};
+//SIG(1 ee27622) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27622 ::foo(){vfunc_called(this, "_ZN7ee276223fooEv");}
+ee27622 ::~ee27622(){ note_dtor("ee27622", this);} // tgen
+ee27622 ::ee27622(){ note_ctor("ee27622", this);} // tgen
+
+static void Test_ee27622()
+{
+ extern Class_Descriptor cd_ee27622;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee27622, buf);
+ ee27622 *dp, &lv = *(dp=new (buf) ee27622());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee27622)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27622)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc622*), ABISELECT(16,12), "ee27622");
+ check_base_class_offset(lv, (bb22*)(cc622*), ABISELECT(16,12), "ee27622");
+ check_base_class_offset(lv, (cc622*)(dd7622*), ABISELECT(16,12), "ee27622");
+ check_base_class_offset(lv, (dd7622*), 0, "ee27622");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27622.e");
+ test_class_info(&lv, &cd_ee27622);
+ dp->~ee27622();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27622(Test_ee27622, "ee27622", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee27622C1Ev();
+extern void _ZN7ee27622D1Ev();
+Name_Map name_map_ee27622[] = {
+ NSPAIR(_ZN7ee27622C1Ev),
+ NSPAIR(_ZN7ee27622D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc622;
+extern VTBL_ENTRY _ZTI5cc622[];
+extern VTBL_ENTRY _ZTV5cc622[];
+extern Class_Descriptor cd_dd7622;
+extern VTBL_ENTRY _ZTI6dd7622[];
+extern VTBL_ENTRY _ZTV6dd7622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7622[];
+static Base_Class bases_ee27622[] = {
+ // 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_bb22, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc622, 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_dd7622, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27622[];
+extern void _ZN6dd76223barEv();
+extern void _ZN7ee276223fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee276223fooEv,_ZTv0_n12_N7ee276223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee276223fooEv,_ZThn12_N7ee276223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76223barEv,_ZTv0_n16_N6dd76223barEv)();
+extern void ABISELECT(_ZThn16_N6dd76223barEv,_ZThn12_N6dd76223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27622[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27622[0]),
+ (VTBL_ENTRY)&_ZN6dd76223barEv,
+ (VTBL_ENTRY)&_ZN7ee276223fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27622[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee276223fooEv,_ZTv0_n12_N7ee276223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76223barEv,_ZTv0_n16_N6dd76223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee27622[];
+extern void _ZN6dd76223barEv();
+extern void _ZN6dd76223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7622__7ee27622[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7622[0]),
+ (VTBL_ENTRY)&_ZN6dd76223barEv,
+ (VTBL_ENTRY)&_ZN6dd76223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76223fooEv,_ZTv0_n12_N6dd76223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76223fooEv,_ZThn12_N6dd76223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76223barEv,_ZTv0_n16_N6dd76223barEv)();
+extern void ABISELECT(_ZThn16_N6dd76223barEv,_ZThn12_N6dd76223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc622__6dd7622__7ee27622[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7622[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76223fooEv,_ZTv0_n12_N6dd76223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76223barEv,_ZTv0_n16_N6dd76223barEv),
+};
+static VTT_ENTRY vtt_ee27622[] = {
+ {&(_ZTV7ee27622[3]), 3,11},
+ {&(_tg__ZTV6dd7622__7ee27622[3]), 3,5},
+ {&(_tg__ZTV5cc622__6dd7622__7ee27622[4]), 4,6},
+ {&(_ZTV7ee27622[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee27622[];
+extern VTBL_ENTRY _ZTV7ee27622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27622[];
+static VTBL_ENTRY alt_thunk_names1237[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76223fooEv,_ZTv0_n12_N6dd76223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76223fooEv,_ZThn12_N6dd76223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76223barEv,_ZTv0_n16_N6dd76223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76223barEv,_ZThn12_N6dd76223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76223barEv,_ZThn12_N6dd76223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee276223fooEv,_ZTv0_n12_N7ee276223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee276223fooEv,_ZThn12_N7ee276223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27622 = { "ee27622", // class name
+ bases_ee27622, 4,
+ &(vtc_ee27622[0]), // expected_vtbl_contents
+ &(vtt_ee27622[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee27622),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27622),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27622),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1237,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee37622 : virtual dd7622 {
+ int e;
+ virtual void foo(); // _ZN7ee376223fooEv
+ ~ee37622(); // tgen
+ ee37622(); // tgen
+};
+//SIG(1 ee37622) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37622 ::foo(){vfunc_called(this, "_ZN7ee376223fooEv");}
+ee37622 ::~ee37622(){ note_dtor("ee37622", this);} // tgen
+ee37622 ::ee37622(){ note_ctor("ee37622", this);} // tgen
+
+static void Test_ee37622()
+{
+ extern Class_Descriptor cd_ee37622;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee37622, buf);
+ ee37622 *dp, &lv = *(dp=new (buf) ee37622());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee37622)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37622)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc622*), ABISELECT(32,16), "ee37622");
+ check_base_class_offset(lv, (bb22*)(cc622*), ABISELECT(32,16), "ee37622");
+ check_base_class_offset(lv, (cc622*)(dd7622*), ABISELECT(32,16), "ee37622");
+ check_base_class_offset(lv, (dd7622*), ABISELECT(16,8), "ee37622");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37622.e");
+ test_class_info(&lv, &cd_ee37622);
+ dp->~ee37622();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37622(Test_ee37622, "ee37622", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee37622C1Ev();
+extern void _ZN7ee37622D1Ev();
+Name_Map name_map_ee37622[] = {
+ NSPAIR(_ZN7ee37622C1Ev),
+ NSPAIR(_ZN7ee37622D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc622;
+extern VTBL_ENTRY _ZTI5cc622[];
+extern VTBL_ENTRY _ZTV5cc622[];
+extern Class_Descriptor cd_dd7622;
+extern VTBL_ENTRY _ZTI6dd7622[];
+extern VTBL_ENTRY _ZTV6dd7622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7622[];
+static Base_Class bases_ee37622[] = {
+ // 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_bb22, 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_cc622, 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_dd7622, 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 _ZTI7ee37622[];
+extern void _ZN7ee376223fooEv();
+extern void _ZN6dd76223barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee376223fooEv,_ZTv0_n20_N7ee376223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee376223fooEv,_ZThn8_N7ee376223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee376223fooEv,_ZTv0_n12_N7ee376223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee376223fooEv,_ZThn16_N7ee376223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76223barEv,_ZTv0_n16_N6dd76223barEv)();
+extern void ABISELECT(_ZThn16_N6dd76223barEv,_ZThn8_N6dd76223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37622[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37622[0]),
+ (VTBL_ENTRY)&_ZN7ee376223fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37622[0]),
+ (VTBL_ENTRY)&_ZN6dd76223barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee376223fooEv,_ZTv0_n20_N7ee376223fooEv),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37622[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee376223fooEv,_ZTv0_n12_N7ee376223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76223barEv,_ZTv0_n16_N6dd76223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee37622[];
+extern void _ZN6dd76223barEv();
+extern void _ZN6dd76223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7622__7ee37622[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7622[0]),
+ (VTBL_ENTRY)&_ZN6dd76223barEv,
+ (VTBL_ENTRY)&_ZN6dd76223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76223fooEv,_ZTv0_n12_N6dd76223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76223fooEv,_ZThn8_N6dd76223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76223barEv,_ZTv0_n16_N6dd76223barEv)();
+extern void ABISELECT(_ZThn16_N6dd76223barEv,_ZThn8_N6dd76223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc622__6dd7622__7ee37622[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7622[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76223fooEv,_ZTv0_n12_N6dd76223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76223barEv,_ZTv0_n16_N6dd76223barEv),
+};
+static VTT_ENTRY vtt_ee37622[] = {
+ {&(_ZTV7ee37622[4]), 4,18},
+ {&(_ZTV7ee37622[10]), 10,18},
+ {&(_ZTV7ee37622[16]), 16,18},
+ {&(_tg__ZTV6dd7622__7ee37622[3]), 3,5},
+ {&(_tg__ZTV5cc622__6dd7622__7ee37622[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee37622[];
+extern VTBL_ENTRY _ZTV7ee37622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37622[];
+static VTBL_ENTRY alt_thunk_names1238[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76223fooEv,_ZTv0_n12_N6dd76223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76223fooEv,_ZThn8_N6dd76223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76223barEv,_ZTv0_n16_N6dd76223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76223barEv,_ZThn8_N6dd76223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76223barEv,_ZThn8_N6dd76223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee376223fooEv,_ZTv0_n12_N7ee376223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee376223fooEv,_ZThn16_N7ee376223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee376223fooEv,_ZTv0_n20_N7ee376223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee376223fooEv,_ZThn8_N7ee376223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37622 = { "ee37622", // class name
+ bases_ee37622, 4,
+ &(vtc_ee37622[0]), // expected_vtbl_contents
+ &(vtt_ee37622[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee37622),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37622),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37622),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1238,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee47622 : dd7622 {
+ int e;
+ virtual void bar(); // _ZN7ee476223barEv
+ ~ee47622(); // tgen
+ ee47622(); // tgen
+};
+//SIG(1 ee47622) C1{ BC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47622 ::bar(){vfunc_called(this, "_ZN7ee476223barEv");}
+ee47622 ::~ee47622(){ note_dtor("ee47622", this);} // tgen
+ee47622 ::ee47622(){ note_ctor("ee47622", this);} // tgen
+
+static void Test_ee47622()
+{
+ extern Class_Descriptor cd_ee47622;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee47622, buf);
+ ee47622 *dp, &lv = *(dp=new (buf) ee47622());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee47622)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47622)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc622*), ABISELECT(16,12), "ee47622");
+ check_base_class_offset(lv, (bb22*)(cc622*), ABISELECT(16,12), "ee47622");
+ check_base_class_offset(lv, (cc622*)(dd7622*), ABISELECT(16,12), "ee47622");
+ check_base_class_offset(lv, (dd7622*), 0, "ee47622");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47622.e");
+ test_class_info(&lv, &cd_ee47622);
+ dp->~ee47622();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47622(Test_ee47622, "ee47622", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee47622C1Ev();
+extern void _ZN7ee47622D1Ev();
+Name_Map name_map_ee47622[] = {
+ NSPAIR(_ZN7ee47622C1Ev),
+ NSPAIR(_ZN7ee47622D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc622;
+extern VTBL_ENTRY _ZTI5cc622[];
+extern VTBL_ENTRY _ZTV5cc622[];
+extern Class_Descriptor cd_dd7622;
+extern VTBL_ENTRY _ZTI6dd7622[];
+extern VTBL_ENTRY _ZTV6dd7622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7622[];
+static Base_Class bases_ee47622[] = {
+ // 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_bb22, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc622, 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_dd7622, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47622[];
+extern void _ZN7ee476223barEv();
+extern void _ZN6dd76223fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd76223fooEv,_ZTv0_n12_N6dd76223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76223fooEv,_ZThn12_N6dd76223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee476223barEv,_ZTv0_n16_N7ee476223barEv)();
+extern void ABISELECT(_ZThn16_N7ee476223barEv,_ZThn12_N7ee476223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47622[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47622[0]),
+ (VTBL_ENTRY)&_ZN7ee476223barEv,
+ (VTBL_ENTRY)&_ZN6dd76223fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47622[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76223fooEv,_ZTv0_n12_N6dd76223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee476223barEv,_ZTv0_n16_N7ee476223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee47622[];
+extern void _ZN6dd76223barEv();
+extern void _ZN6dd76223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7622__7ee47622[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7622[0]),
+ (VTBL_ENTRY)&_ZN6dd76223barEv,
+ (VTBL_ENTRY)&_ZN6dd76223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76223fooEv,_ZTv0_n12_N6dd76223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76223fooEv,_ZThn12_N6dd76223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76223barEv,_ZTv0_n16_N6dd76223barEv)();
+extern void ABISELECT(_ZThn16_N6dd76223barEv,_ZThn12_N6dd76223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc622__6dd7622__7ee47622[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7622[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76223fooEv,_ZTv0_n12_N6dd76223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76223barEv,_ZTv0_n16_N6dd76223barEv),
+};
+static VTT_ENTRY vtt_ee47622[] = {
+ {&(_ZTV7ee47622[3]), 3,11},
+ {&(_tg__ZTV6dd7622__7ee47622[3]), 3,5},
+ {&(_tg__ZTV5cc622__6dd7622__7ee47622[4]), 4,6},
+ {&(_ZTV7ee47622[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee47622[];
+extern VTBL_ENTRY _ZTV7ee47622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47622[];
+static VTBL_ENTRY alt_thunk_names1239[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76223barEv,_ZTv0_n16_N6dd76223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76223barEv,_ZThn12_N6dd76223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee476223barEv,_ZTv0_n16_N7ee476223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee476223barEv,_ZThn12_N7ee476223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76223fooEv,_ZTv0_n12_N6dd76223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76223fooEv,_ZThn12_N6dd76223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76223fooEv,_ZThn12_N6dd76223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47622 = { "ee47622", // class name
+ bases_ee47622, 4,
+ &(vtc_ee47622[0]), // expected_vtbl_contents
+ &(vtt_ee47622[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee47622),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47622),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47622),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1239,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee57622 : virtual dd7622 {
+ int e;
+ virtual void bar(); // _ZN7ee576223barEv
+ ~ee57622(); // tgen
+ ee57622(); // tgen
+};
+//SIG(1 ee57622) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57622 ::bar(){vfunc_called(this, "_ZN7ee576223barEv");}
+ee57622 ::~ee57622(){ note_dtor("ee57622", this);} // tgen
+ee57622 ::ee57622(){ note_ctor("ee57622", this);} // tgen
+
+static void Test_ee57622()
+{
+ extern Class_Descriptor cd_ee57622;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee57622, buf);
+ ee57622 *dp, &lv = *(dp=new (buf) ee57622());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee57622)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57622)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc622*), ABISELECT(32,16), "ee57622");
+ check_base_class_offset(lv, (bb22*)(cc622*), ABISELECT(32,16), "ee57622");
+ check_base_class_offset(lv, (cc622*)(dd7622*), ABISELECT(32,16), "ee57622");
+ check_base_class_offset(lv, (dd7622*), ABISELECT(16,8), "ee57622");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57622.e");
+ test_class_info(&lv, &cd_ee57622);
+ dp->~ee57622();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57622(Test_ee57622, "ee57622", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee57622C1Ev();
+extern void _ZN7ee57622D1Ev();
+Name_Map name_map_ee57622[] = {
+ NSPAIR(_ZN7ee57622C1Ev),
+ NSPAIR(_ZN7ee57622D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc622;
+extern VTBL_ENTRY _ZTI5cc622[];
+extern VTBL_ENTRY _ZTV5cc622[];
+extern Class_Descriptor cd_dd7622;
+extern VTBL_ENTRY _ZTI6dd7622[];
+extern VTBL_ENTRY _ZTV6dd7622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7622[];
+static Base_Class bases_ee57622[] = {
+ // 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_bb22, 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_cc622, 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_dd7622, 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 _ZTI7ee57622[];
+extern void _ZN7ee576223barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee576223barEv,_ZTv0_n16_N7ee576223barEv)();
+extern void ABISELECT(_ZThn16_N7ee576223barEv,_ZThn8_N7ee576223barEv)() __attribute__((weak));
+extern void _ZN6dd76223fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd76223fooEv,_ZTv0_n12_N6dd76223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76223fooEv,_ZThn8_N6dd76223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee576223barEv,_ZTv0_n16_N7ee576223barEv)();
+extern void ABISELECT(_ZThn32_N7ee576223barEv,_ZThn16_N7ee576223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57622[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57622[0]),
+ (VTBL_ENTRY)&_ZN7ee576223barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57622[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee576223barEv,_ZTv0_n16_N7ee576223barEv),
+ (VTBL_ENTRY)&_ZN6dd76223fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57622[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76223fooEv,_ZTv0_n12_N6dd76223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee576223barEv,_ZTv0_n16_N7ee576223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee57622[];
+extern void _ZN6dd76223barEv();
+extern void _ZN6dd76223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7622__7ee57622[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7622[0]),
+ (VTBL_ENTRY)&_ZN6dd76223barEv,
+ (VTBL_ENTRY)&_ZN6dd76223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76223fooEv,_ZTv0_n12_N6dd76223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76223fooEv,_ZThn8_N6dd76223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76223barEv,_ZTv0_n16_N6dd76223barEv)();
+extern void ABISELECT(_ZThn16_N6dd76223barEv,_ZThn8_N6dd76223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc622__6dd7622__7ee57622[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7622[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76223fooEv,_ZTv0_n12_N6dd76223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76223barEv,_ZTv0_n16_N6dd76223barEv),
+};
+static VTT_ENTRY vtt_ee57622[] = {
+ {&(_ZTV7ee57622[4]), 4,18},
+ {&(_ZTV7ee57622[10]), 10,18},
+ {&(_ZTV7ee57622[16]), 16,18},
+ {&(_tg__ZTV6dd7622__7ee57622[3]), 3,5},
+ {&(_tg__ZTV5cc622__6dd7622__7ee57622[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee57622[];
+extern VTBL_ENTRY _ZTV7ee57622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57622[];
+static VTBL_ENTRY alt_thunk_names1240[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76223barEv,_ZTv0_n16_N6dd76223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76223barEv,_ZThn8_N6dd76223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76223fooEv,_ZTv0_n12_N6dd76223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76223fooEv,_ZThn8_N6dd76223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76223fooEv,_ZThn8_N6dd76223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee576223barEv,_ZTv0_n16_N7ee576223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee576223barEv,_ZThn16_N7ee576223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee576223barEv,_ZThn8_N7ee576223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57622 = { "ee57622", // class name
+ bases_ee57622, 4,
+ &(vtc_ee57622[0]), // expected_vtbl_contents
+ &(vtt_ee57622[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee57622),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57622),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57622),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1240,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee67622 : dd7622 {
+ int e;
+ virtual void foo(); // _ZN7ee676223fooEv
+ virtual void bar(); // _ZN7ee676223barEv
+ ~ee67622(); // tgen
+ ee67622(); // tgen
+};
+//SIG(1 ee67622) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67622 ::foo(){vfunc_called(this, "_ZN7ee676223fooEv");}
+void ee67622 ::bar(){vfunc_called(this, "_ZN7ee676223barEv");}
+ee67622 ::~ee67622(){ note_dtor("ee67622", this);} // tgen
+ee67622 ::ee67622(){ note_ctor("ee67622", this);} // tgen
+
+static void Test_ee67622()
+{
+ extern Class_Descriptor cd_ee67622;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee67622, buf);
+ ee67622 *dp, &lv = *(dp=new (buf) ee67622());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee67622)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67622)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc622*), ABISELECT(16,12), "ee67622");
+ check_base_class_offset(lv, (bb22*)(cc622*), ABISELECT(16,12), "ee67622");
+ check_base_class_offset(lv, (cc622*)(dd7622*), ABISELECT(16,12), "ee67622");
+ check_base_class_offset(lv, (dd7622*), 0, "ee67622");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67622.e");
+ test_class_info(&lv, &cd_ee67622);
+ dp->~ee67622();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67622(Test_ee67622, "ee67622", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee67622C1Ev();
+extern void _ZN7ee67622D1Ev();
+Name_Map name_map_ee67622[] = {
+ NSPAIR(_ZN7ee67622C1Ev),
+ NSPAIR(_ZN7ee67622D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc622;
+extern VTBL_ENTRY _ZTI5cc622[];
+extern VTBL_ENTRY _ZTV5cc622[];
+extern Class_Descriptor cd_dd7622;
+extern VTBL_ENTRY _ZTI6dd7622[];
+extern VTBL_ENTRY _ZTV6dd7622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7622[];
+static Base_Class bases_ee67622[] = {
+ // 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_bb22, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc622, 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_dd7622, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67622[];
+extern void _ZN7ee676223barEv();
+extern void _ZN7ee676223fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee676223fooEv,_ZTv0_n12_N7ee676223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee676223fooEv,_ZThn12_N7ee676223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee676223barEv,_ZTv0_n16_N7ee676223barEv)();
+extern void ABISELECT(_ZThn16_N7ee676223barEv,_ZThn12_N7ee676223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67622[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67622[0]),
+ (VTBL_ENTRY)&_ZN7ee676223barEv,
+ (VTBL_ENTRY)&_ZN7ee676223fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67622[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee676223fooEv,_ZTv0_n12_N7ee676223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee676223barEv,_ZTv0_n16_N7ee676223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee67622[];
+extern void _ZN6dd76223barEv();
+extern void _ZN6dd76223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7622__7ee67622[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7622[0]),
+ (VTBL_ENTRY)&_ZN6dd76223barEv,
+ (VTBL_ENTRY)&_ZN6dd76223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76223fooEv,_ZTv0_n12_N6dd76223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76223fooEv,_ZThn12_N6dd76223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76223barEv,_ZTv0_n16_N6dd76223barEv)();
+extern void ABISELECT(_ZThn16_N6dd76223barEv,_ZThn12_N6dd76223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc622__6dd7622__7ee67622[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7622[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76223fooEv,_ZTv0_n12_N6dd76223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76223barEv,_ZTv0_n16_N6dd76223barEv),
+};
+static VTT_ENTRY vtt_ee67622[] = {
+ {&(_ZTV7ee67622[3]), 3,11},
+ {&(_tg__ZTV6dd7622__7ee67622[3]), 3,5},
+ {&(_tg__ZTV5cc622__6dd7622__7ee67622[4]), 4,6},
+ {&(_ZTV7ee67622[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee67622[];
+extern VTBL_ENTRY _ZTV7ee67622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67622[];
+static VTBL_ENTRY alt_thunk_names1241[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76223barEv,_ZTv0_n16_N6dd76223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76223barEv,_ZThn12_N6dd76223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76223fooEv,_ZTv0_n12_N6dd76223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76223fooEv,_ZThn12_N6dd76223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee676223barEv,_ZTv0_n16_N7ee676223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee676223barEv,_ZThn12_N7ee676223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee676223fooEv,_ZTv0_n12_N7ee676223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee676223fooEv,_ZThn12_N7ee676223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67622 = { "ee67622", // class name
+ bases_ee67622, 4,
+ &(vtc_ee67622[0]), // expected_vtbl_contents
+ &(vtt_ee67622[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee67622),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67622),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67622),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1241,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee77622 : virtual dd7622 {
+ int e;
+ virtual void foo(); // _ZN7ee776223fooEv
+ virtual void bar(); // _ZN7ee776223barEv
+ ~ee77622(); // tgen
+ ee77622(); // tgen
+};
+//SIG(1 ee77622) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77622 ::foo(){vfunc_called(this, "_ZN7ee776223fooEv");}
+void ee77622 ::bar(){vfunc_called(this, "_ZN7ee776223barEv");}
+ee77622 ::~ee77622(){ note_dtor("ee77622", this);} // tgen
+ee77622 ::ee77622(){ note_ctor("ee77622", this);} // tgen
+
+static void Test_ee77622()
+{
+ extern Class_Descriptor cd_ee77622;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee77622, buf);
+ ee77622 *dp, &lv = *(dp=new (buf) ee77622());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee77622)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77622)");
+ check_base_class_offset(lv, (aa2*)(bb22*)(cc622*), ABISELECT(32,16), "ee77622");
+ check_base_class_offset(lv, (bb22*)(cc622*), ABISELECT(32,16), "ee77622");
+ check_base_class_offset(lv, (cc622*)(dd7622*), ABISELECT(32,16), "ee77622");
+ check_base_class_offset(lv, (dd7622*), ABISELECT(16,8), "ee77622");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77622.e");
+ test_class_info(&lv, &cd_ee77622);
+ dp->~ee77622();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77622(Test_ee77622, "ee77622", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee77622C1Ev();
+extern void _ZN7ee77622D1Ev();
+Name_Map name_map_ee77622[] = {
+ NSPAIR(_ZN7ee77622C1Ev),
+ NSPAIR(_ZN7ee77622D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc622;
+extern VTBL_ENTRY _ZTI5cc622[];
+extern VTBL_ENTRY _ZTV5cc622[];
+extern Class_Descriptor cd_dd7622;
+extern VTBL_ENTRY _ZTI6dd7622[];
+extern VTBL_ENTRY _ZTV6dd7622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7622[];
+static Base_Class bases_ee77622[] = {
+ // 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_bb22, 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_cc622, 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_dd7622, ABISELECT(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 _ZTI7ee77622[];
+extern void _ZN7ee776223fooEv();
+extern void _ZN7ee776223barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee776223barEv,_ZTv0_n16_N7ee776223barEv)();
+extern void ABISELECT(_ZThn16_N7ee776223barEv,_ZThn8_N7ee776223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee776223fooEv,_ZTv0_n20_N7ee776223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee776223fooEv,_ZThn8_N7ee776223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee776223fooEv,_ZTv0_n12_N7ee776223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee776223fooEv,_ZThn16_N7ee776223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee776223barEv,_ZTv0_n16_N7ee776223barEv)();
+extern void ABISELECT(_ZThn32_N7ee776223barEv,_ZThn16_N7ee776223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77622[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77622[0]),
+ (VTBL_ENTRY)&_ZN7ee776223fooEv,
+ (VTBL_ENTRY)&_ZN7ee776223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77622[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee776223barEv,_ZTv0_n16_N7ee776223barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee776223fooEv,_ZTv0_n20_N7ee776223fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77622[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee776223fooEv,_ZTv0_n12_N7ee776223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee776223barEv,_ZTv0_n16_N7ee776223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee77622[];
+extern void _ZN6dd76223barEv();
+extern void _ZN6dd76223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7622__7ee77622[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7622[0]),
+ (VTBL_ENTRY)&_ZN6dd76223barEv,
+ (VTBL_ENTRY)&_ZN6dd76223fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76223fooEv,_ZTv0_n12_N6dd76223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76223fooEv,_ZThn8_N6dd76223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76223barEv,_ZTv0_n16_N6dd76223barEv)();
+extern void ABISELECT(_ZThn16_N6dd76223barEv,_ZThn8_N6dd76223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc622__6dd7622__7ee77622[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7622[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76223fooEv,_ZTv0_n12_N6dd76223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76223barEv,_ZTv0_n16_N6dd76223barEv),
+};
+static VTT_ENTRY vtt_ee77622[] = {
+ {&(_ZTV7ee77622[4]), 4,19},
+ {&(_ZTV7ee77622[11]), 11,19},
+ {&(_ZTV7ee77622[17]), 17,19},
+ {&(_tg__ZTV6dd7622__7ee77622[3]), 3,5},
+ {&(_tg__ZTV5cc622__6dd7622__7ee77622[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee77622[];
+extern VTBL_ENTRY _ZTV7ee77622[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77622[];
+static VTBL_ENTRY alt_thunk_names1242[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76223barEv,_ZTv0_n16_N6dd76223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76223barEv,_ZThn8_N6dd76223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76223fooEv,_ZTv0_n12_N6dd76223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76223fooEv,_ZThn8_N6dd76223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee776223fooEv,_ZTv0_n12_N7ee776223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee776223fooEv,_ZThn16_N7ee776223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee776223fooEv,_ZTv0_n20_N7ee776223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee776223fooEv,_ZThn8_N7ee776223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee776223barEv,_ZTv0_n16_N7ee776223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee776223barEv,_ZThn16_N7ee776223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee776223barEv,_ZThn8_N7ee776223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77622 = { "ee77622", // class name
+ bases_ee77622, 4,
+ &(vtc_ee77622[0]), // expected_vtbl_contents
+ &(vtt_ee77622[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee77622),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77622),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77622),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1242,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc722 : virtual bb22 {
+ int c;
+ virtual void foo(); // _ZN5cc7223fooEv
+ virtual void bar(); // _ZN5cc7223barEv
+ ~cc722(); // tgen
+ cc722(); // tgen
+};
+//SIG(-1 cc722) C1{ VBC2{ BC3{ v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void cc722 ::foo(){vfunc_called(this, "_ZN5cc7223fooEv");}
+void cc722 ::bar(){vfunc_called(this, "_ZN5cc7223barEv");}
+cc722 ::~cc722(){ note_dtor("cc722", this);} // tgen
+cc722 ::cc722(){ note_ctor("cc722", this);} // tgen
+
+static void Test_cc722()
+{
+ extern Class_Descriptor cd_cc722;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_cc722, buf);
+ cc722 *dp, &lv = *(dp=new (buf) cc722());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(cc722)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc722)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(16,8), "cc722");
+ check_base_class_offset(lv, (bb22*), ABISELECT(16,8), "cc722");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc722.c");
+ test_class_info(&lv, &cd_cc722);
+ dp->~cc722();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc722(Test_cc722, "cc722", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN5cc722C1Ev();
+extern void _ZN5cc722D1Ev();
+Name_Map name_map_cc722[] = {
+ NSPAIR(_ZN5cc722C1Ev),
+ NSPAIR(_ZN5cc722D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+static Base_Class bases_cc722[] = {
+ // 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_bb22, 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 _ZTI5cc722[];
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_cc722[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+extern VTBL_ENTRY _ZTV5cc722[];
+static VTT_ENTRY vtt_cc722[] = {
+ {&(_ZTV5cc722[3]), 3,11},
+ {&(_ZTV5cc722[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI5cc722[];
+extern VTBL_ENTRY _ZTV5cc722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc722[];
+static VTBL_ENTRY alt_thunk_names1243[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_cc722 = { "cc722", // class name
+ bases_cc722, 2,
+ &(vtc_cc722[0]), // expected_vtbl_contents
+ &(vtt_cc722[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI5cc722),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV5cc722),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5cc722),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1243,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd0722 : cc722 {
+ int d;
+ ~dd0722(); // tgen
+ dd0722(); // tgen
+};
+//SIG(-1 dd0722) C1{ BC2{ VBC3{ BC4{ v1 v2 Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+dd0722 ::~dd0722(){ note_dtor("dd0722", this);} // tgen
+dd0722 ::dd0722(){ note_ctor("dd0722", this);} // tgen
+
+static void Test_dd0722()
+{
+ extern Class_Descriptor cd_dd0722;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd0722, buf);
+ dd0722 *dp, &lv = *(dp=new (buf) dd0722());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd0722)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0722)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(16,12), "dd0722");
+ check_base_class_offset(lv, (bb22*)(cc722*), ABISELECT(16,12), "dd0722");
+ check_base_class_offset(lv, (cc722*), 0, "dd0722");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd0722.d");
+ test_class_info(&lv, &cd_dd0722);
+ dp->~dd0722();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0722(Test_dd0722, "dd0722", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd0722C1Ev();
+extern void _ZN6dd0722D1Ev();
+Name_Map name_map_dd0722[] = {
+ NSPAIR(_ZN6dd0722C1Ev),
+ NSPAIR(_ZN6dd0722D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc722;
+extern VTBL_ENTRY _ZTI5cc722[];
+extern VTBL_ENTRY _ZTV5cc722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc722[];
+static Base_Class bases_dd0722[] = {
+ // 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_bb22, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc722, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd0722[];
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn12_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn12_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd0722[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+extern VTBL_ENTRY _ZTV6dd0722[];
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc722__6dd0722[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn12_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn12_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc722__6dd0722[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+static VTT_ENTRY vtt_dd0722[] = {
+ {&(_ZTV6dd0722[3]), 3,11},
+ {&(_tg__ZTV5cc722__6dd0722[3]), 3,5},
+ {&(_tg__ZTV4bb22__5cc722__6dd0722[4]), 4,6},
+ {&(_ZTV6dd0722[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd0722[];
+extern VTBL_ENTRY _ZTV6dd0722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0722[];
+static VTBL_ENTRY alt_thunk_names1244[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn12_N5cc7223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn12_N5cc7223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn12_N5cc7223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn12_N5cc7223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd0722 = { "dd0722", // class name
+ bases_dd0722, 3,
+ &(vtc_dd0722[0]), // expected_vtbl_contents
+ &(vtt_dd0722[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd0722),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0722),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd0722),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1244,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee00722 : dd0722 {
+ int e;
+ ~ee00722(); // tgen
+ ee00722(); // tgen
+};
+//SIG(1 ee00722) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee00722 ::~ee00722(){ note_dtor("ee00722", this);} // tgen
+ee00722 ::ee00722(){ note_ctor("ee00722", this);} // tgen
+
+static void Test_ee00722()
+{
+ extern Class_Descriptor cd_ee00722;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee00722, buf);
+ ee00722 *dp, &lv = *(dp=new (buf) ee00722());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee00722)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00722)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(24,16), "ee00722");
+ check_base_class_offset(lv, (bb22*)(cc722*)(dd0722*), ABISELECT(24,16), "ee00722");
+ check_base_class_offset(lv, (cc722*)(dd0722*), 0, "ee00722");
+ check_base_class_offset(lv, (dd0722*), 0, "ee00722");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee00722.e");
+ test_class_info(&lv, &cd_ee00722);
+ dp->~ee00722();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00722(Test_ee00722, "ee00722", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee00722C1Ev();
+extern void _ZN7ee00722D1Ev();
+Name_Map name_map_ee00722[] = {
+ NSPAIR(_ZN7ee00722C1Ev),
+ NSPAIR(_ZN7ee00722D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc722;
+extern VTBL_ENTRY _ZTI5cc722[];
+extern VTBL_ENTRY _ZTV5cc722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc722[];
+extern Class_Descriptor cd_dd0722;
+extern VTBL_ENTRY _ZTI6dd0722[];
+extern VTBL_ENTRY _ZTV6dd0722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0722[];
+static Base_Class bases_ee00722[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc722, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0722, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee00722[];
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7223fooEv,_ZThn16_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn24_N5cc7223barEv,_ZThn16_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee00722[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee00722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee00722[];
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV6dd0722__7ee00722[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc7226dd0722__7ee00722[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7223fooEv,_ZThn16_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn24_N5cc7223barEv,_ZThn16_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc7226dd0722__7ee00722[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7223fooEv,_ZThn16_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn24_N5cc7223barEv,_ZThn16_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd0722__7ee00722[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+static VTT_ENTRY vtt_ee00722[] = {
+ {&(_ZTV7ee00722[3]), 3,11},
+ {&(_tg__ZTV6dd0722__7ee00722[3]), 3,5},
+ {&(_tg__ZTV5cc7226dd0722__7ee00722[3]), 3,5},
+ {&(_tg__ZTV4bb22__5cc7226dd0722__7ee00722[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd0722__7ee00722[4]), 4,6},
+ {&(_ZTV7ee00722[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee00722[];
+extern VTBL_ENTRY _ZTV7ee00722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee00722[];
+static VTBL_ENTRY alt_thunk_names1245[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7223barEv,_ZThn16_N5cc7223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7223barEv,_ZThn16_N5cc7223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7223barEv,_ZThn16_N5cc7223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7223fooEv,_ZThn16_N5cc7223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7223fooEv,_ZThn16_N5cc7223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7223fooEv,_ZThn16_N5cc7223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee00722 = { "ee00722", // class name
+ bases_ee00722, 4,
+ &(vtc_ee00722[0]), // expected_vtbl_contents
+ &(vtt_ee00722[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee00722),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00722),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee00722),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1245,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee10722 : virtual dd0722 {
+ int e;
+ ~ee10722(); // tgen
+ ee10722(); // tgen
+};
+//SIG(1 ee10722) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee10722 ::~ee10722(){ note_dtor("ee10722", this);} // tgen
+ee10722 ::ee10722(){ note_ctor("ee10722", this);} // tgen
+
+static void Test_ee10722()
+{
+ extern Class_Descriptor cd_ee10722;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee10722, buf);
+ ee10722 *dp, &lv = *(dp=new (buf) ee10722());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee10722)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10722)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee10722");
+ check_base_class_offset(lv, (bb22*)(cc722*)(dd0722*), ABISELECT(32,20), "ee10722");
+ check_base_class_offset(lv, (cc722*)(dd0722*), ABISELECT(16,8), "ee10722");
+ check_base_class_offset(lv, (dd0722*), ABISELECT(16,8), "ee10722");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10722.e");
+ test_class_info(&lv, &cd_ee10722);
+ dp->~ee10722();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10722(Test_ee10722, "ee10722", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee10722C1Ev();
+extern void _ZN7ee10722D1Ev();
+Name_Map name_map_ee10722[] = {
+ NSPAIR(_ZN7ee10722C1Ev),
+ NSPAIR(_ZN7ee10722D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc722;
+extern VTBL_ENTRY _ZTI5cc722[];
+extern VTBL_ENTRY _ZTV5cc722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc722[];
+extern Class_Descriptor cd_dd0722;
+extern VTBL_ENTRY _ZTI6dd0722[];
+extern VTBL_ENTRY _ZTV6dd0722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0722[];
+static Base_Class bases_ee10722[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc722, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0722, 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 _ZTI7ee10722[];
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn12_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn12_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee10722[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10722[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee10722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee10722[];
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV6dd0722__7ee10722[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc7226dd0722__7ee10722[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn12_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn12_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc7226dd0722__7ee10722[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn12_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn12_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd0722__7ee10722[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+static VTT_ENTRY vtt_ee10722[] = {
+ {&(_ZTV7ee10722[4]), 4,17},
+ {&(_ZTV7ee10722[9]), 9,17},
+ {&(_ZTV7ee10722[15]), 15,17},
+ {&(_tg__ZTV6dd0722__7ee10722[3]), 3,5},
+ {&(_tg__ZTV5cc7226dd0722__7ee10722[3]), 3,5},
+ {&(_tg__ZTV4bb22__5cc7226dd0722__7ee10722[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd0722__7ee10722[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee10722[];
+extern VTBL_ENTRY _ZTV7ee10722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10722[];
+static VTBL_ENTRY alt_thunk_names1246[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn12_N5cc7223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn12_N5cc7223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn12_N5cc7223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn12_N5cc7223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn12_N5cc7223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn12_N5cc7223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee10722 = { "ee10722", // class name
+ bases_ee10722, 4,
+ &(vtc_ee10722[0]), // expected_vtbl_contents
+ &(vtt_ee10722[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee10722),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10722),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10722),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1246,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee20722 : dd0722 {
+ int e;
+ virtual void foo(); // _ZN7ee207223fooEv
+ ~ee20722(); // tgen
+ ee20722(); // tgen
+};
+//SIG(1 ee20722) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee20722 ::foo(){vfunc_called(this, "_ZN7ee207223fooEv");}
+ee20722 ::~ee20722(){ note_dtor("ee20722", this);} // tgen
+ee20722 ::ee20722(){ note_ctor("ee20722", this);} // tgen
+
+static void Test_ee20722()
+{
+ extern Class_Descriptor cd_ee20722;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee20722, buf);
+ ee20722 *dp, &lv = *(dp=new (buf) ee20722());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee20722)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20722)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(24,16), "ee20722");
+ check_base_class_offset(lv, (bb22*)(cc722*)(dd0722*), ABISELECT(24,16), "ee20722");
+ check_base_class_offset(lv, (cc722*)(dd0722*), 0, "ee20722");
+ check_base_class_offset(lv, (dd0722*), 0, "ee20722");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee20722.e");
+ test_class_info(&lv, &cd_ee20722);
+ dp->~ee20722();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20722(Test_ee20722, "ee20722", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee20722C1Ev();
+extern void _ZN7ee20722D1Ev();
+Name_Map name_map_ee20722[] = {
+ NSPAIR(_ZN7ee20722C1Ev),
+ NSPAIR(_ZN7ee20722D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc722;
+extern VTBL_ENTRY _ZTI5cc722[];
+extern VTBL_ENTRY _ZTV5cc722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc722[];
+extern Class_Descriptor cd_dd0722;
+extern VTBL_ENTRY _ZTI6dd0722[];
+extern VTBL_ENTRY _ZTV6dd0722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0722[];
+static Base_Class bases_ee20722[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc722, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0722, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee20722[];
+extern void _ZN7ee207223fooEv();
+extern void _ZN5cc7223barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee207223fooEv,_ZTv0_n12_N7ee207223fooEv)();
+extern void ABISELECT(_ZThn24_N7ee207223fooEv,_ZThn16_N7ee207223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn24_N5cc7223barEv,_ZThn16_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee20722[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20722[0]),
+ (VTBL_ENTRY)&_ZN7ee207223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee20722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee207223fooEv,_ZTv0_n12_N7ee207223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee20722[];
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV6dd0722__7ee20722[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc7226dd0722__7ee20722[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7223fooEv,_ZThn16_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn24_N5cc7223barEv,_ZThn16_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc7226dd0722__7ee20722[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7223fooEv,_ZThn16_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn24_N5cc7223barEv,_ZThn16_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd0722__7ee20722[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+static VTT_ENTRY vtt_ee20722[] = {
+ {&(_ZTV7ee20722[3]), 3,11},
+ {&(_tg__ZTV6dd0722__7ee20722[3]), 3,5},
+ {&(_tg__ZTV5cc7226dd0722__7ee20722[3]), 3,5},
+ {&(_tg__ZTV4bb22__5cc7226dd0722__7ee20722[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd0722__7ee20722[4]), 4,6},
+ {&(_ZTV7ee20722[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee20722[];
+extern VTBL_ENTRY _ZTV7ee20722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee20722[];
+static VTBL_ENTRY alt_thunk_names1247[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7223fooEv,_ZThn16_N5cc7223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7223fooEv,_ZThn16_N5cc7223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7223barEv,_ZThn16_N5cc7223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7223barEv,_ZThn16_N5cc7223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7223barEv,_ZThn16_N5cc7223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee207223fooEv,_ZTv0_n12_N7ee207223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee207223fooEv,_ZThn16_N7ee207223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee20722 = { "ee20722", // class name
+ bases_ee20722, 4,
+ &(vtc_ee20722[0]), // expected_vtbl_contents
+ &(vtt_ee20722[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee20722),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20722),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee20722),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1247,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee30722 : virtual dd0722 {
+ int e;
+ virtual void foo(); // _ZN7ee307223fooEv
+ ~ee30722(); // tgen
+ ee30722(); // tgen
+};
+//SIG(1 ee30722) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee30722 ::foo(){vfunc_called(this, "_ZN7ee307223fooEv");}
+ee30722 ::~ee30722(){ note_dtor("ee30722", this);} // tgen
+ee30722 ::ee30722(){ note_ctor("ee30722", this);} // tgen
+
+static void Test_ee30722()
+{
+ extern Class_Descriptor cd_ee30722;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee30722, buf);
+ ee30722 *dp, &lv = *(dp=new (buf) ee30722());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee30722)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30722)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee30722");
+ check_base_class_offset(lv, (bb22*)(cc722*)(dd0722*), ABISELECT(32,20), "ee30722");
+ check_base_class_offset(lv, (cc722*)(dd0722*), ABISELECT(16,8), "ee30722");
+ check_base_class_offset(lv, (dd0722*), ABISELECT(16,8), "ee30722");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30722.e");
+ test_class_info(&lv, &cd_ee30722);
+ dp->~ee30722();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30722(Test_ee30722, "ee30722", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee30722C1Ev();
+extern void _ZN7ee30722D1Ev();
+Name_Map name_map_ee30722[] = {
+ NSPAIR(_ZN7ee30722C1Ev),
+ NSPAIR(_ZN7ee30722D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc722;
+extern VTBL_ENTRY _ZTI5cc722[];
+extern VTBL_ENTRY _ZTV5cc722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc722[];
+extern Class_Descriptor cd_dd0722;
+extern VTBL_ENTRY _ZTI6dd0722[];
+extern VTBL_ENTRY _ZTV6dd0722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0722[];
+static Base_Class bases_ee30722[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc722, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0722, 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 _ZTI7ee30722[];
+extern void _ZN7ee307223fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee307223fooEv,_ZTv0_n16_N7ee307223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee307223fooEv,_ZThn8_N7ee307223fooEv)() __attribute__((weak));
+extern void _ZN5cc7223barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee307223fooEv,_ZTv0_n12_N7ee307223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee307223fooEv,_ZThn20_N7ee307223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn12_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee30722[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30722[0]),
+ (VTBL_ENTRY)&_ZN7ee307223fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee307223fooEv,_ZTv0_n16_N7ee307223fooEv),
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee30722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee307223fooEv,_ZTv0_n12_N7ee307223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee30722[];
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV6dd0722__7ee30722[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc7226dd0722__7ee30722[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn12_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn12_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc7226dd0722__7ee30722[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn12_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn12_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd0722__7ee30722[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+static VTT_ENTRY vtt_ee30722[] = {
+ {&(_ZTV7ee30722[4]), 4,18},
+ {&(_ZTV7ee30722[10]), 10,18},
+ {&(_ZTV7ee30722[16]), 16,18},
+ {&(_tg__ZTV6dd0722__7ee30722[3]), 3,5},
+ {&(_tg__ZTV5cc7226dd0722__7ee30722[3]), 3,5},
+ {&(_tg__ZTV4bb22__5cc7226dd0722__7ee30722[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd0722__7ee30722[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee30722[];
+extern VTBL_ENTRY _ZTV7ee30722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30722[];
+static VTBL_ENTRY alt_thunk_names1248[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn12_N5cc7223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn12_N5cc7223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn12_N5cc7223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn12_N5cc7223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn12_N5cc7223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee307223fooEv,_ZTv0_n12_N7ee307223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee307223fooEv,_ZThn20_N7ee307223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee307223fooEv,_ZTv0_n16_N7ee307223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee307223fooEv,_ZThn8_N7ee307223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30722 = { "ee30722", // class name
+ bases_ee30722, 4,
+ &(vtc_ee30722[0]), // expected_vtbl_contents
+ &(vtt_ee30722[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee30722),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30722),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30722),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1248,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee40722 : dd0722 {
+ int e;
+ virtual void bar(); // _ZN7ee407223barEv
+ ~ee40722(); // tgen
+ ee40722(); // tgen
+};
+//SIG(1 ee40722) C1{ BC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee40722 ::bar(){vfunc_called(this, "_ZN7ee407223barEv");}
+ee40722 ::~ee40722(){ note_dtor("ee40722", this);} // tgen
+ee40722 ::ee40722(){ note_ctor("ee40722", this);} // tgen
+
+static void Test_ee40722()
+{
+ extern Class_Descriptor cd_ee40722;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee40722, buf);
+ ee40722 *dp, &lv = *(dp=new (buf) ee40722());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee40722)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40722)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(24,16), "ee40722");
+ check_base_class_offset(lv, (bb22*)(cc722*)(dd0722*), ABISELECT(24,16), "ee40722");
+ check_base_class_offset(lv, (cc722*)(dd0722*), 0, "ee40722");
+ check_base_class_offset(lv, (dd0722*), 0, "ee40722");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee40722.e");
+ test_class_info(&lv, &cd_ee40722);
+ dp->~ee40722();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40722(Test_ee40722, "ee40722", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee40722C1Ev();
+extern void _ZN7ee40722D1Ev();
+Name_Map name_map_ee40722[] = {
+ NSPAIR(_ZN7ee40722C1Ev),
+ NSPAIR(_ZN7ee40722D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc722;
+extern VTBL_ENTRY _ZTI5cc722[];
+extern VTBL_ENTRY _ZTV5cc722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc722[];
+extern Class_Descriptor cd_dd0722;
+extern VTBL_ENTRY _ZTI6dd0722[];
+extern VTBL_ENTRY _ZTV6dd0722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0722[];
+static Base_Class bases_ee40722[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc722, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0722, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee40722[];
+extern void _ZN5cc7223fooEv();
+extern void _ZN7ee407223barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7223fooEv,_ZThn16_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee407223barEv,_ZTv0_n16_N7ee407223barEv)();
+extern void ABISELECT(_ZThn24_N7ee407223barEv,_ZThn16_N7ee407223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee40722[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN7ee407223barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee40722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee407223barEv,_ZTv0_n16_N7ee407223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee40722[];
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV6dd0722__7ee40722[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc7226dd0722__7ee40722[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7223fooEv,_ZThn16_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn24_N5cc7223barEv,_ZThn16_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc7226dd0722__7ee40722[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7223fooEv,_ZThn16_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn24_N5cc7223barEv,_ZThn16_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd0722__7ee40722[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+static VTT_ENTRY vtt_ee40722[] = {
+ {&(_ZTV7ee40722[3]), 3,11},
+ {&(_tg__ZTV6dd0722__7ee40722[3]), 3,5},
+ {&(_tg__ZTV5cc7226dd0722__7ee40722[3]), 3,5},
+ {&(_tg__ZTV4bb22__5cc7226dd0722__7ee40722[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd0722__7ee40722[4]), 4,6},
+ {&(_ZTV7ee40722[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee40722[];
+extern VTBL_ENTRY _ZTV7ee40722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee40722[];
+static VTBL_ENTRY alt_thunk_names1249[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7223barEv,_ZThn16_N5cc7223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7223barEv,_ZThn16_N5cc7223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee407223barEv,_ZTv0_n16_N7ee407223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee407223barEv,_ZThn16_N7ee407223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7223fooEv,_ZThn16_N5cc7223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7223fooEv,_ZThn16_N5cc7223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7223fooEv,_ZThn16_N5cc7223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee40722 = { "ee40722", // class name
+ bases_ee40722, 4,
+ &(vtc_ee40722[0]), // expected_vtbl_contents
+ &(vtt_ee40722[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee40722),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40722),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee40722),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1249,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee50722 : virtual dd0722 {
+ int e;
+ virtual void bar(); // _ZN7ee507223barEv
+ ~ee50722(); // tgen
+ ee50722(); // tgen
+};
+//SIG(1 ee50722) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee50722 ::bar(){vfunc_called(this, "_ZN7ee507223barEv");}
+ee50722 ::~ee50722(){ note_dtor("ee50722", this);} // tgen
+ee50722 ::ee50722(){ note_ctor("ee50722", this);} // tgen
+
+static void Test_ee50722()
+{
+ extern Class_Descriptor cd_ee50722;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee50722, buf);
+ ee50722 *dp, &lv = *(dp=new (buf) ee50722());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee50722)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50722)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee50722");
+ check_base_class_offset(lv, (bb22*)(cc722*)(dd0722*), ABISELECT(32,20), "ee50722");
+ check_base_class_offset(lv, (cc722*)(dd0722*), ABISELECT(16,8), "ee50722");
+ check_base_class_offset(lv, (dd0722*), ABISELECT(16,8), "ee50722");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50722.e");
+ test_class_info(&lv, &cd_ee50722);
+ dp->~ee50722();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50722(Test_ee50722, "ee50722", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee50722C1Ev();
+extern void _ZN7ee50722D1Ev();
+Name_Map name_map_ee50722[] = {
+ NSPAIR(_ZN7ee50722C1Ev),
+ NSPAIR(_ZN7ee50722D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc722;
+extern VTBL_ENTRY _ZTI5cc722[];
+extern VTBL_ENTRY _ZTV5cc722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc722[];
+extern Class_Descriptor cd_dd0722;
+extern VTBL_ENTRY _ZTI6dd0722[];
+extern VTBL_ENTRY _ZTV6dd0722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0722[];
+static Base_Class bases_ee50722[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc722, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0722, 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 _ZTI7ee50722[];
+extern void _ZN7ee507223barEv();
+extern void _ZN5cc7223fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee507223barEv,_ZTv0_n20_N7ee507223barEv)();
+extern void ABISELECT(_ZThn16_N7ee507223barEv,_ZThn8_N7ee507223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn12_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee507223barEv,_ZTv0_n16_N7ee507223barEv)();
+extern void ABISELECT(_ZThn32_N7ee507223barEv,_ZThn20_N7ee507223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee50722[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50722[0]),
+ (VTBL_ENTRY)&_ZN7ee507223barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee507223barEv,_ZTv0_n20_N7ee507223barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee50722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee507223barEv,_ZTv0_n16_N7ee507223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee50722[];
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV6dd0722__7ee50722[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc7226dd0722__7ee50722[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn12_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn12_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc7226dd0722__7ee50722[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn12_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn12_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd0722__7ee50722[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+static VTT_ENTRY vtt_ee50722[] = {
+ {&(_ZTV7ee50722[4]), 4,18},
+ {&(_ZTV7ee50722[10]), 10,18},
+ {&(_ZTV7ee50722[16]), 16,18},
+ {&(_tg__ZTV6dd0722__7ee50722[3]), 3,5},
+ {&(_tg__ZTV5cc7226dd0722__7ee50722[3]), 3,5},
+ {&(_tg__ZTV4bb22__5cc7226dd0722__7ee50722[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd0722__7ee50722[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee50722[];
+extern VTBL_ENTRY _ZTV7ee50722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50722[];
+static VTBL_ENTRY alt_thunk_names1250[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn12_N5cc7223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn12_N5cc7223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee507223barEv,_ZTv0_n16_N7ee507223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee507223barEv,_ZThn20_N7ee507223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn12_N5cc7223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn12_N5cc7223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn12_N5cc7223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee507223barEv,_ZTv0_n20_N7ee507223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee507223barEv,_ZThn8_N7ee507223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50722 = { "ee50722", // class name
+ bases_ee50722, 4,
+ &(vtc_ee50722[0]), // expected_vtbl_contents
+ &(vtt_ee50722[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee50722),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50722),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50722),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1250,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee60722 : dd0722 {
+ int e;
+ virtual void foo(); // _ZN7ee607223fooEv
+ virtual void bar(); // _ZN7ee607223barEv
+ ~ee60722(); // tgen
+ ee60722(); // tgen
+};
+//SIG(1 ee60722) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee60722 ::foo(){vfunc_called(this, "_ZN7ee607223fooEv");}
+void ee60722 ::bar(){vfunc_called(this, "_ZN7ee607223barEv");}
+ee60722 ::~ee60722(){ note_dtor("ee60722", this);} // tgen
+ee60722 ::ee60722(){ note_ctor("ee60722", this);} // tgen
+
+static void Test_ee60722()
+{
+ extern Class_Descriptor cd_ee60722;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee60722, buf);
+ ee60722 *dp, &lv = *(dp=new (buf) ee60722());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee60722)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60722)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(24,16), "ee60722");
+ check_base_class_offset(lv, (bb22*)(cc722*)(dd0722*), ABISELECT(24,16), "ee60722");
+ check_base_class_offset(lv, (cc722*)(dd0722*), 0, "ee60722");
+ check_base_class_offset(lv, (dd0722*), 0, "ee60722");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee60722.e");
+ test_class_info(&lv, &cd_ee60722);
+ dp->~ee60722();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60722(Test_ee60722, "ee60722", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee60722C1Ev();
+extern void _ZN7ee60722D1Ev();
+Name_Map name_map_ee60722[] = {
+ NSPAIR(_ZN7ee60722C1Ev),
+ NSPAIR(_ZN7ee60722D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc722;
+extern VTBL_ENTRY _ZTI5cc722[];
+extern VTBL_ENTRY _ZTV5cc722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc722[];
+extern Class_Descriptor cd_dd0722;
+extern VTBL_ENTRY _ZTI6dd0722[];
+extern VTBL_ENTRY _ZTV6dd0722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0722[];
+static Base_Class bases_ee60722[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc722, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0722, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee60722[];
+extern void _ZN7ee607223fooEv();
+extern void _ZN7ee607223barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee607223fooEv,_ZTv0_n12_N7ee607223fooEv)();
+extern void ABISELECT(_ZThn24_N7ee607223fooEv,_ZThn16_N7ee607223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee607223barEv,_ZTv0_n16_N7ee607223barEv)();
+extern void ABISELECT(_ZThn24_N7ee607223barEv,_ZThn16_N7ee607223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee60722[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60722[0]),
+ (VTBL_ENTRY)&_ZN7ee607223fooEv,
+ (VTBL_ENTRY)&_ZN7ee607223barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee60722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee607223fooEv,_ZTv0_n12_N7ee607223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee607223barEv,_ZTv0_n16_N7ee607223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee60722[];
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV6dd0722__7ee60722[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc7226dd0722__7ee60722[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7223fooEv,_ZThn16_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn24_N5cc7223barEv,_ZThn16_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc7226dd0722__7ee60722[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7223fooEv,_ZThn16_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn24_N5cc7223barEv,_ZThn16_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd0722__7ee60722[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+static VTT_ENTRY vtt_ee60722[] = {
+ {&(_ZTV7ee60722[3]), 3,11},
+ {&(_tg__ZTV6dd0722__7ee60722[3]), 3,5},
+ {&(_tg__ZTV5cc7226dd0722__7ee60722[3]), 3,5},
+ {&(_tg__ZTV4bb22__5cc7226dd0722__7ee60722[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd0722__7ee60722[4]), 4,6},
+ {&(_ZTV7ee60722[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee60722[];
+extern VTBL_ENTRY _ZTV7ee60722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee60722[];
+static VTBL_ENTRY alt_thunk_names1251[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7223barEv,_ZThn16_N5cc7223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7223barEv,_ZThn16_N5cc7223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7223fooEv,_ZThn16_N5cc7223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7223fooEv,_ZThn16_N5cc7223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee607223barEv,_ZTv0_n16_N7ee607223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee607223barEv,_ZThn16_N7ee607223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee607223fooEv,_ZTv0_n12_N7ee607223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee607223fooEv,_ZThn16_N7ee607223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee60722 = { "ee60722", // class name
+ bases_ee60722, 4,
+ &(vtc_ee60722[0]), // expected_vtbl_contents
+ &(vtt_ee60722[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee60722),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60722),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee60722),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1251,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee70722 : virtual dd0722 {
+ int e;
+ virtual void foo(); // _ZN7ee707223fooEv
+ virtual void bar(); // _ZN7ee707223barEv
+ ~ee70722(); // tgen
+ ee70722(); // tgen
+};
+//SIG(1 ee70722) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee70722 ::foo(){vfunc_called(this, "_ZN7ee707223fooEv");}
+void ee70722 ::bar(){vfunc_called(this, "_ZN7ee707223barEv");}
+ee70722 ::~ee70722(){ note_dtor("ee70722", this);} // tgen
+ee70722 ::ee70722(){ note_ctor("ee70722", this);} // tgen
+
+static void Test_ee70722()
+{
+ extern Class_Descriptor cd_ee70722;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee70722, buf);
+ ee70722 *dp, &lv = *(dp=new (buf) ee70722());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee70722)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70722)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee70722");
+ check_base_class_offset(lv, (bb22*)(cc722*)(dd0722*), ABISELECT(32,20), "ee70722");
+ check_base_class_offset(lv, (cc722*)(dd0722*), ABISELECT(16,8), "ee70722");
+ check_base_class_offset(lv, (dd0722*), ABISELECT(16,8), "ee70722");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70722.e");
+ test_class_info(&lv, &cd_ee70722);
+ dp->~ee70722();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70722(Test_ee70722, "ee70722", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee70722C1Ev();
+extern void _ZN7ee70722D1Ev();
+Name_Map name_map_ee70722[] = {
+ NSPAIR(_ZN7ee70722C1Ev),
+ NSPAIR(_ZN7ee70722D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc722;
+extern VTBL_ENTRY _ZTI5cc722[];
+extern VTBL_ENTRY _ZTV5cc722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc722[];
+extern Class_Descriptor cd_dd0722;
+extern VTBL_ENTRY _ZTI6dd0722[];
+extern VTBL_ENTRY _ZTV6dd0722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0722[];
+static Base_Class bases_ee70722[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc722, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd0722, ABISELECT(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 _ZTI7ee70722[];
+extern void _ZN7ee707223fooEv();
+extern void _ZN7ee707223barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee707223fooEv,_ZTv0_n16_N7ee707223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee707223fooEv,_ZThn8_N7ee707223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee707223barEv,_ZTv0_n20_N7ee707223barEv)();
+extern void ABISELECT(_ZThn16_N7ee707223barEv,_ZThn8_N7ee707223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee707223fooEv,_ZTv0_n12_N7ee707223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee707223fooEv,_ZThn20_N7ee707223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee707223barEv,_ZTv0_n16_N7ee707223barEv)();
+extern void ABISELECT(_ZThn32_N7ee707223barEv,_ZThn20_N7ee707223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70722[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70722[0]),
+ (VTBL_ENTRY)&_ZN7ee707223fooEv,
+ (VTBL_ENTRY)&_ZN7ee707223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee707223fooEv,_ZTv0_n16_N7ee707223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee707223barEv,_ZTv0_n20_N7ee707223barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee70722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee707223fooEv,_ZTv0_n12_N7ee707223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee707223barEv,_ZTv0_n16_N7ee707223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee70722[];
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV6dd0722__7ee70722[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc7226dd0722__7ee70722[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn12_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn12_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc7226dd0722__7ee70722[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn12_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn12_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd0722__7ee70722[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+static VTT_ENTRY vtt_ee70722[] = {
+ {&(_ZTV7ee70722[4]), 4,19},
+ {&(_ZTV7ee70722[11]), 11,19},
+ {&(_ZTV7ee70722[17]), 17,19},
+ {&(_tg__ZTV6dd0722__7ee70722[3]), 3,5},
+ {&(_tg__ZTV5cc7226dd0722__7ee70722[3]), 3,5},
+ {&(_tg__ZTV4bb22__5cc7226dd0722__7ee70722[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd0722__7ee70722[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee70722[];
+extern VTBL_ENTRY _ZTV7ee70722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70722[];
+static VTBL_ENTRY alt_thunk_names1252[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn12_N5cc7223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn12_N5cc7223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn12_N5cc7223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn12_N5cc7223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee707223barEv,_ZTv0_n16_N7ee707223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee707223barEv,_ZThn20_N7ee707223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee707223fooEv,_ZTv0_n12_N7ee707223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee707223fooEv,_ZThn20_N7ee707223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee707223barEv,_ZTv0_n20_N7ee707223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee707223barEv,_ZThn8_N7ee707223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee707223fooEv,_ZTv0_n16_N7ee707223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee707223fooEv,_ZThn8_N7ee707223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70722 = { "ee70722", // class name
+ bases_ee70722, 4,
+ &(vtc_ee70722[0]), // expected_vtbl_contents
+ &(vtt_ee70722[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee70722),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70722),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70722),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1252,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd1722 : virtual cc722 {
+ int d;
+ ~dd1722(); // tgen
+ dd1722(); // tgen
+};
+//SIG(-1 dd1722) C1{ VBC2{ VBC3{ BC4{ v1 v2 Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+dd1722 ::~dd1722(){ note_dtor("dd1722", this);} // tgen
+dd1722 ::dd1722(){ note_ctor("dd1722", this);} // tgen
+
+static void Test_dd1722()
+{
+ extern Class_Descriptor cd_dd1722;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd1722, buf);
+ dd1722 *dp, &lv = *(dp=new (buf) dd1722());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd1722)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1722)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,16), "dd1722");
+ check_base_class_offset(lv, (bb22*)(cc722*), ABISELECT(32,16), "dd1722");
+ check_base_class_offset(lv, (cc722*), ABISELECT(16,8), "dd1722");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1722.d");
+ test_class_info(&lv, &cd_dd1722);
+ dp->~dd1722();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1722(Test_dd1722, "dd1722", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd1722C1Ev();
+extern void _ZN6dd1722D1Ev();
+Name_Map name_map_dd1722[] = {
+ NSPAIR(_ZN6dd1722C1Ev),
+ NSPAIR(_ZN6dd1722D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc722;
+extern VTBL_ENTRY _ZTI5cc722[];
+extern VTBL_ENTRY _ZTV5cc722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc722[];
+static Base_Class bases_dd1722[] = {
+ // 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_bb22, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc722, 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 _ZTI6dd1722[];
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd1722[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1722[0]),
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+extern VTBL_ENTRY _ZTV6dd1722[];
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc722__6dd1722[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc722__6dd1722[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+static VTT_ENTRY vtt_dd1722[] = {
+ {&(_ZTV6dd1722[4]), 4,17},
+ {&(_ZTV6dd1722[9]), 9,17},
+ {&(_ZTV6dd1722[15]), 15,17},
+ {&(_tg__ZTV5cc722__6dd1722[3]), 3,5},
+ {&(_tg__ZTV4bb22__5cc722__6dd1722[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd1722[];
+extern VTBL_ENTRY _ZTV6dd1722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1722[];
+static VTBL_ENTRY alt_thunk_names1253[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd1722 = { "dd1722", // class name
+ bases_dd1722, 3,
+ &(vtc_dd1722[0]), // expected_vtbl_contents
+ &(vtt_dd1722[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd1722),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1722),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1722),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1253,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee01722 : dd1722 {
+ int e;
+ ~ee01722(); // tgen
+ ee01722(); // tgen
+};
+//SIG(1 ee01722) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee01722 ::~ee01722(){ note_dtor("ee01722", this);} // tgen
+ee01722 ::ee01722(){ note_ctor("ee01722", this);} // tgen
+
+static void Test_ee01722()
+{
+ extern Class_Descriptor cd_ee01722;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee01722, buf);
+ ee01722 *dp, &lv = *(dp=new (buf) ee01722());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee01722)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01722)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee01722");
+ check_base_class_offset(lv, (bb22*)(cc722*), ABISELECT(32,20), "ee01722");
+ check_base_class_offset(lv, (cc722*)(dd1722*), ABISELECT(16,12), "ee01722");
+ check_base_class_offset(lv, (dd1722*), 0, "ee01722");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01722.e");
+ test_class_info(&lv, &cd_ee01722);
+ dp->~ee01722();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01722(Test_ee01722, "ee01722", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee01722C1Ev();
+extern void _ZN7ee01722D1Ev();
+Name_Map name_map_ee01722[] = {
+ NSPAIR(_ZN7ee01722C1Ev),
+ NSPAIR(_ZN7ee01722D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc722;
+extern VTBL_ENTRY _ZTI5cc722[];
+extern VTBL_ENTRY _ZTV5cc722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc722[];
+extern Class_Descriptor cd_dd1722;
+extern VTBL_ENTRY _ZTI6dd1722[];
+extern VTBL_ENTRY _ZTV6dd1722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1722[];
+static Base_Class bases_ee01722[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc722, 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_dd1722, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01722[];
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee01722[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01722[0]),
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee01722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee01722[];
+static VTBL_ENTRY _tg__ZTV6dd1722__7ee01722[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1722[0]),
+};
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc722__6dd1722__7ee01722[] = {
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd1722__7ee01722[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc722__7ee01722[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc722__7ee01722[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+static VTT_ENTRY vtt_ee01722[] = {
+ {&(_ZTV7ee01722[4]), 4,17},
+ {&(_tg__ZTV6dd1722__7ee01722[4]), 4,4},
+ {&(_tg__ZTV5cc722__6dd1722__7ee01722[5]), 5,7},
+ {&(_tg__ZTV4bb22__6dd1722__7ee01722[4]), 4,6},
+ {&(_ZTV7ee01722[9]), 9,17},
+ {&(_ZTV7ee01722[15]), 15,17},
+ {&(_tg__ZTV5cc722__7ee01722[3]), 3,5},
+ {&(_tg__ZTV4bb22__5cc722__7ee01722[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee01722[];
+extern VTBL_ENTRY _ZTV7ee01722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01722[];
+static VTBL_ENTRY alt_thunk_names1254[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee01722 = { "ee01722", // class name
+ bases_ee01722, 4,
+ &(vtc_ee01722[0]), // expected_vtbl_contents
+ &(vtt_ee01722[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee01722),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01722),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01722),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1254,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee11722 : virtual dd1722 {
+ int e;
+ ~ee11722(); // tgen
+ ee11722(); // tgen
+};
+//SIG(1 ee11722) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee11722 ::~ee11722(){ note_dtor("ee11722", this);} // tgen
+ee11722 ::ee11722(){ note_ctor("ee11722", this);} // tgen
+
+static void Test_ee11722()
+{
+ extern Class_Descriptor cd_ee11722;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee11722, buf);
+ ee11722 *dp, &lv = *(dp=new (buf) ee11722());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee11722)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11722)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(48,24), "ee11722");
+ check_base_class_offset(lv, (bb22*)(cc722*), ABISELECT(48,24), "ee11722");
+ check_base_class_offset(lv, (cc722*)(dd1722*), ABISELECT(32,16), "ee11722");
+ check_base_class_offset(lv, (dd1722*), ABISELECT(16,8), "ee11722");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11722.e");
+ test_class_info(&lv, &cd_ee11722);
+ dp->~ee11722();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11722(Test_ee11722, "ee11722", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee11722C1Ev();
+extern void _ZN7ee11722D1Ev();
+Name_Map name_map_ee11722[] = {
+ NSPAIR(_ZN7ee11722C1Ev),
+ NSPAIR(_ZN7ee11722D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc722;
+extern VTBL_ENTRY _ZTI5cc722[];
+extern VTBL_ENTRY _ZTV5cc722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc722[];
+extern Class_Descriptor cd_dd1722;
+extern VTBL_ENTRY _ZTI6dd1722[];
+extern VTBL_ENTRY _ZTV6dd1722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1722[];
+static Base_Class bases_ee11722[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb22, ABISELECT(48,24), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc722, 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_dd1722, 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 _ZTI7ee11722[];
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee11722[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11722[0]),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11722[0]),
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee11722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee11722[];
+static VTBL_ENTRY _tg__ZTV6dd1722__7ee11722[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1722[0]),
+};
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc722__6dd1722__7ee11722[] = {
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd1722__7ee11722[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc722__7ee11722[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc722__7ee11722[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+static VTT_ENTRY vtt_ee11722[] = {
+ {&(_ZTV7ee11722[5]), 5,22},
+ {&(_ZTV7ee11722[9]), 9,22},
+ {&(_ZTV7ee11722[14]), 14,22},
+ {&(_ZTV7ee11722[20]), 20,22},
+ {&(_tg__ZTV6dd1722__7ee11722[4]), 4,4},
+ {&(_tg__ZTV5cc722__6dd1722__7ee11722[5]), 5,7},
+ {&(_tg__ZTV4bb22__6dd1722__7ee11722[4]), 4,6},
+ {&(_tg__ZTV5cc722__7ee11722[3]), 3,5},
+ {&(_tg__ZTV4bb22__5cc722__7ee11722[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee11722[];
+extern VTBL_ENTRY _ZTV7ee11722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11722[];
+static VTBL_ENTRY alt_thunk_names1255[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee11722 = { "ee11722", // class name
+ bases_ee11722, 4,
+ &(vtc_ee11722[0]), // expected_vtbl_contents
+ &(vtt_ee11722[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee11722),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11722),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11722),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1255,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee21722 : dd1722 {
+ int e;
+ virtual void foo(); // _ZN7ee217223fooEv
+ ~ee21722(); // tgen
+ ee21722(); // tgen
+};
+//SIG(1 ee21722) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee21722 ::foo(){vfunc_called(this, "_ZN7ee217223fooEv");}
+ee21722 ::~ee21722(){ note_dtor("ee21722", this);} // tgen
+ee21722 ::ee21722(){ note_ctor("ee21722", this);} // tgen
+
+static void Test_ee21722()
+{
+ extern Class_Descriptor cd_ee21722;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee21722, buf);
+ ee21722 *dp, &lv = *(dp=new (buf) ee21722());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee21722)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21722)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee21722");
+ check_base_class_offset(lv, (bb22*)(cc722*), ABISELECT(32,20), "ee21722");
+ check_base_class_offset(lv, (cc722*)(dd1722*), ABISELECT(16,12), "ee21722");
+ check_base_class_offset(lv, (dd1722*), 0, "ee21722");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21722.e");
+ test_class_info(&lv, &cd_ee21722);
+ dp->~ee21722();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21722(Test_ee21722, "ee21722", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee21722C1Ev();
+extern void _ZN7ee21722D1Ev();
+Name_Map name_map_ee21722[] = {
+ NSPAIR(_ZN7ee21722C1Ev),
+ NSPAIR(_ZN7ee21722D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc722;
+extern VTBL_ENTRY _ZTI5cc722[];
+extern VTBL_ENTRY _ZTV5cc722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc722[];
+extern Class_Descriptor cd_dd1722;
+extern VTBL_ENTRY _ZTI6dd1722[];
+extern VTBL_ENTRY _ZTV6dd1722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1722[];
+static Base_Class bases_ee21722[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc722, 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_dd1722, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21722[];
+extern void _ZN7ee217223fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee217223fooEv,_ZTv0_n16_N7ee217223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee217223fooEv,_ZThn12_N7ee217223fooEv)() __attribute__((weak));
+extern void _ZN5cc7223barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee217223fooEv,_ZTv0_n12_N7ee217223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee217223fooEv,_ZThn20_N7ee217223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee21722[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21722[0]),
+ (VTBL_ENTRY)&_ZN7ee217223fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee217223fooEv,_ZTv0_n16_N7ee217223fooEv),
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee21722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee217223fooEv,_ZTv0_n12_N7ee217223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee21722[];
+static VTBL_ENTRY _tg__ZTV6dd1722__7ee21722[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1722[0]),
+};
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc722__6dd1722__7ee21722[] = {
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd1722__7ee21722[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc722__7ee21722[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc722__7ee21722[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+static VTT_ENTRY vtt_ee21722[] = {
+ {&(_ZTV7ee21722[4]), 4,18},
+ {&(_tg__ZTV6dd1722__7ee21722[4]), 4,4},
+ {&(_tg__ZTV5cc722__6dd1722__7ee21722[5]), 5,7},
+ {&(_tg__ZTV4bb22__6dd1722__7ee21722[4]), 4,6},
+ {&(_ZTV7ee21722[10]), 10,18},
+ {&(_ZTV7ee21722[16]), 16,18},
+ {&(_tg__ZTV5cc722__7ee21722[3]), 3,5},
+ {&(_tg__ZTV4bb22__5cc722__7ee21722[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee21722[];
+extern VTBL_ENTRY _ZTV7ee21722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21722[];
+static VTBL_ENTRY alt_thunk_names1256[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee217223fooEv,_ZTv0_n12_N7ee217223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee217223fooEv,_ZThn20_N7ee217223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee217223fooEv,_ZTv0_n16_N7ee217223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee217223fooEv,_ZThn12_N7ee217223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21722 = { "ee21722", // class name
+ bases_ee21722, 4,
+ &(vtc_ee21722[0]), // expected_vtbl_contents
+ &(vtt_ee21722[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee21722),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21722),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21722),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1256,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee31722 : virtual dd1722 {
+ int e;
+ virtual void foo(); // _ZN7ee317223fooEv
+ ~ee31722(); // tgen
+ ee31722(); // tgen
+};
+//SIG(1 ee31722) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee31722 ::foo(){vfunc_called(this, "_ZN7ee317223fooEv");}
+ee31722 ::~ee31722(){ note_dtor("ee31722", this);} // tgen
+ee31722 ::ee31722(){ note_ctor("ee31722", this);} // tgen
+
+static void Test_ee31722()
+{
+ extern Class_Descriptor cd_ee31722;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee31722, buf);
+ ee31722 *dp, &lv = *(dp=new (buf) ee31722());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee31722)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31722)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(48,24), "ee31722");
+ check_base_class_offset(lv, (bb22*)(cc722*), ABISELECT(48,24), "ee31722");
+ check_base_class_offset(lv, (cc722*)(dd1722*), ABISELECT(32,16), "ee31722");
+ check_base_class_offset(lv, (dd1722*), ABISELECT(16,8), "ee31722");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31722.e");
+ test_class_info(&lv, &cd_ee31722);
+ dp->~ee31722();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31722(Test_ee31722, "ee31722", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee31722C1Ev();
+extern void _ZN7ee31722D1Ev();
+Name_Map name_map_ee31722[] = {
+ NSPAIR(_ZN7ee31722C1Ev),
+ NSPAIR(_ZN7ee31722D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc722;
+extern VTBL_ENTRY _ZTI5cc722[];
+extern VTBL_ENTRY _ZTV5cc722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc722[];
+extern Class_Descriptor cd_dd1722;
+extern VTBL_ENTRY _ZTI6dd1722[];
+extern VTBL_ENTRY _ZTV6dd1722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1722[];
+static Base_Class bases_ee31722[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb22, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc722, 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_dd1722, 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 _ZTI7ee31722[];
+extern void _ZN7ee317223fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee317223fooEv,_ZTv0_n16_N7ee317223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee317223fooEv,_ZThn16_N7ee317223fooEv)() __attribute__((weak));
+extern void _ZN5cc7223barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee317223fooEv,_ZTv0_n12_N7ee317223fooEv)();
+extern void ABISELECT(_ZThn48_N7ee317223fooEv,_ZThn24_N7ee317223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee31722[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31722[0]),
+ (VTBL_ENTRY)&_ZN7ee317223fooEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31722[0]),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee317223fooEv,_ZTv0_n16_N7ee317223fooEv),
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee31722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee317223fooEv,_ZTv0_n12_N7ee317223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee31722[];
+static VTBL_ENTRY _tg__ZTV6dd1722__7ee31722[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1722[0]),
+};
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc722__6dd1722__7ee31722[] = {
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd1722__7ee31722[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc722__7ee31722[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc722__7ee31722[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+static VTT_ENTRY vtt_ee31722[] = {
+ {&(_ZTV7ee31722[5]), 5,23},
+ {&(_ZTV7ee31722[10]), 10,23},
+ {&(_ZTV7ee31722[15]), 15,23},
+ {&(_ZTV7ee31722[21]), 21,23},
+ {&(_tg__ZTV6dd1722__7ee31722[4]), 4,4},
+ {&(_tg__ZTV5cc722__6dd1722__7ee31722[5]), 5,7},
+ {&(_tg__ZTV4bb22__6dd1722__7ee31722[4]), 4,6},
+ {&(_tg__ZTV5cc722__7ee31722[3]), 3,5},
+ {&(_tg__ZTV4bb22__5cc722__7ee31722[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee31722[];
+extern VTBL_ENTRY _ZTV7ee31722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31722[];
+static VTBL_ENTRY alt_thunk_names1257[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee317223fooEv,_ZTv0_n12_N7ee317223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee317223fooEv,_ZThn24_N7ee317223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee317223fooEv,_ZTv0_n16_N7ee317223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee317223fooEv,_ZThn16_N7ee317223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31722 = { "ee31722", // class name
+ bases_ee31722, 4,
+ &(vtc_ee31722[0]), // expected_vtbl_contents
+ &(vtt_ee31722[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee31722),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31722),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31722),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1257,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee41722 : dd1722 {
+ int e;
+ virtual void bar(); // _ZN7ee417223barEv
+ ~ee41722(); // tgen
+ ee41722(); // tgen
+};
+//SIG(1 ee41722) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee41722 ::bar(){vfunc_called(this, "_ZN7ee417223barEv");}
+ee41722 ::~ee41722(){ note_dtor("ee41722", this);} // tgen
+ee41722 ::ee41722(){ note_ctor("ee41722", this);} // tgen
+
+static void Test_ee41722()
+{
+ extern Class_Descriptor cd_ee41722;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee41722, buf);
+ ee41722 *dp, &lv = *(dp=new (buf) ee41722());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee41722)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41722)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee41722");
+ check_base_class_offset(lv, (bb22*)(cc722*), ABISELECT(32,20), "ee41722");
+ check_base_class_offset(lv, (cc722*)(dd1722*), ABISELECT(16,12), "ee41722");
+ check_base_class_offset(lv, (dd1722*), 0, "ee41722");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41722.e");
+ test_class_info(&lv, &cd_ee41722);
+ dp->~ee41722();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41722(Test_ee41722, "ee41722", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee41722C1Ev();
+extern void _ZN7ee41722D1Ev();
+Name_Map name_map_ee41722[] = {
+ NSPAIR(_ZN7ee41722C1Ev),
+ NSPAIR(_ZN7ee41722D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc722;
+extern VTBL_ENTRY _ZTI5cc722[];
+extern VTBL_ENTRY _ZTV5cc722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc722[];
+extern Class_Descriptor cd_dd1722;
+extern VTBL_ENTRY _ZTI6dd1722[];
+extern VTBL_ENTRY _ZTV6dd1722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1722[];
+static Base_Class bases_ee41722[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc722, 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_dd1722, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41722[];
+extern void _ZN7ee417223barEv();
+extern void _ZN5cc7223fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee417223barEv,_ZTv0_n20_N7ee417223barEv)();
+extern void ABISELECT(_ZThn16_N7ee417223barEv,_ZThn12_N7ee417223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee417223barEv,_ZTv0_n16_N7ee417223barEv)();
+extern void ABISELECT(_ZThn32_N7ee417223barEv,_ZThn20_N7ee417223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee41722[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41722[0]),
+ (VTBL_ENTRY)&_ZN7ee417223barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee417223barEv,_ZTv0_n20_N7ee417223barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee41722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee417223barEv,_ZTv0_n16_N7ee417223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee41722[];
+static VTBL_ENTRY _tg__ZTV6dd1722__7ee41722[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1722[0]),
+};
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc722__6dd1722__7ee41722[] = {
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd1722__7ee41722[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc722__7ee41722[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc722__7ee41722[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+static VTT_ENTRY vtt_ee41722[] = {
+ {&(_ZTV7ee41722[4]), 4,18},
+ {&(_tg__ZTV6dd1722__7ee41722[4]), 4,4},
+ {&(_tg__ZTV5cc722__6dd1722__7ee41722[5]), 5,7},
+ {&(_tg__ZTV4bb22__6dd1722__7ee41722[4]), 4,6},
+ {&(_ZTV7ee41722[10]), 10,18},
+ {&(_ZTV7ee41722[16]), 16,18},
+ {&(_tg__ZTV5cc722__7ee41722[3]), 3,5},
+ {&(_tg__ZTV4bb22__5cc722__7ee41722[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee41722[];
+extern VTBL_ENTRY _ZTV7ee41722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41722[];
+static VTBL_ENTRY alt_thunk_names1258[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee417223barEv,_ZTv0_n16_N7ee417223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee417223barEv,_ZThn20_N7ee417223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee417223barEv,_ZTv0_n20_N7ee417223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee417223barEv,_ZThn12_N7ee417223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41722 = { "ee41722", // class name
+ bases_ee41722, 4,
+ &(vtc_ee41722[0]), // expected_vtbl_contents
+ &(vtt_ee41722[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee41722),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41722),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41722),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1258,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee51722 : virtual dd1722 {
+ int e;
+ virtual void bar(); // _ZN7ee517223barEv
+ ~ee51722(); // tgen
+ ee51722(); // tgen
+};
+//SIG(1 ee51722) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee51722 ::bar(){vfunc_called(this, "_ZN7ee517223barEv");}
+ee51722 ::~ee51722(){ note_dtor("ee51722", this);} // tgen
+ee51722 ::ee51722(){ note_ctor("ee51722", this);} // tgen
+
+static void Test_ee51722()
+{
+ extern Class_Descriptor cd_ee51722;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee51722, buf);
+ ee51722 *dp, &lv = *(dp=new (buf) ee51722());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee51722)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51722)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(48,24), "ee51722");
+ check_base_class_offset(lv, (bb22*)(cc722*), ABISELECT(48,24), "ee51722");
+ check_base_class_offset(lv, (cc722*)(dd1722*), ABISELECT(32,16), "ee51722");
+ check_base_class_offset(lv, (dd1722*), ABISELECT(16,8), "ee51722");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51722.e");
+ test_class_info(&lv, &cd_ee51722);
+ dp->~ee51722();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51722(Test_ee51722, "ee51722", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee51722C1Ev();
+extern void _ZN7ee51722D1Ev();
+Name_Map name_map_ee51722[] = {
+ NSPAIR(_ZN7ee51722C1Ev),
+ NSPAIR(_ZN7ee51722D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc722;
+extern VTBL_ENTRY _ZTI5cc722[];
+extern VTBL_ENTRY _ZTV5cc722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc722[];
+extern Class_Descriptor cd_dd1722;
+extern VTBL_ENTRY _ZTI6dd1722[];
+extern VTBL_ENTRY _ZTV6dd1722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1722[];
+static Base_Class bases_ee51722[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb22, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc722, 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_dd1722, 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 _ZTI7ee51722[];
+extern void _ZN7ee517223barEv();
+extern void _ZN5cc7223fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee517223barEv,_ZTv0_n20_N7ee517223barEv)();
+extern void ABISELECT(_ZThn32_N7ee517223barEv,_ZThn16_N7ee517223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee517223barEv,_ZTv0_n16_N7ee517223barEv)();
+extern void ABISELECT(_ZThn48_N7ee517223barEv,_ZThn24_N7ee517223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee51722[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51722[0]),
+ (VTBL_ENTRY)&_ZN7ee517223barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51722[0]),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee517223barEv,_ZTv0_n20_N7ee517223barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee51722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee517223barEv,_ZTv0_n16_N7ee517223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee51722[];
+static VTBL_ENTRY _tg__ZTV6dd1722__7ee51722[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1722[0]),
+};
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc722__6dd1722__7ee51722[] = {
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd1722__7ee51722[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc722__7ee51722[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc722__7ee51722[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+static VTT_ENTRY vtt_ee51722[] = {
+ {&(_ZTV7ee51722[5]), 5,23},
+ {&(_ZTV7ee51722[10]), 10,23},
+ {&(_ZTV7ee51722[15]), 15,23},
+ {&(_ZTV7ee51722[21]), 21,23},
+ {&(_tg__ZTV6dd1722__7ee51722[4]), 4,4},
+ {&(_tg__ZTV5cc722__6dd1722__7ee51722[5]), 5,7},
+ {&(_tg__ZTV4bb22__6dd1722__7ee51722[4]), 4,6},
+ {&(_tg__ZTV5cc722__7ee51722[3]), 3,5},
+ {&(_tg__ZTV4bb22__5cc722__7ee51722[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee51722[];
+extern VTBL_ENTRY _ZTV7ee51722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51722[];
+static VTBL_ENTRY alt_thunk_names1259[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee517223barEv,_ZTv0_n16_N7ee517223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee517223barEv,_ZThn24_N7ee517223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee517223barEv,_ZTv0_n20_N7ee517223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee517223barEv,_ZThn16_N7ee517223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51722 = { "ee51722", // class name
+ bases_ee51722, 4,
+ &(vtc_ee51722[0]), // expected_vtbl_contents
+ &(vtt_ee51722[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee51722),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51722),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51722),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1259,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee61722 : dd1722 {
+ int e;
+ virtual void foo(); // _ZN7ee617223fooEv
+ virtual void bar(); // _ZN7ee617223barEv
+ ~ee61722(); // tgen
+ ee61722(); // tgen
+};
+//SIG(1 ee61722) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee61722 ::foo(){vfunc_called(this, "_ZN7ee617223fooEv");}
+void ee61722 ::bar(){vfunc_called(this, "_ZN7ee617223barEv");}
+ee61722 ::~ee61722(){ note_dtor("ee61722", this);} // tgen
+ee61722 ::ee61722(){ note_ctor("ee61722", this);} // tgen
+
+static void Test_ee61722()
+{
+ extern Class_Descriptor cd_ee61722;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee61722, buf);
+ ee61722 *dp, &lv = *(dp=new (buf) ee61722());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee61722)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61722)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee61722");
+ check_base_class_offset(lv, (bb22*)(cc722*), ABISELECT(32,20), "ee61722");
+ check_base_class_offset(lv, (cc722*)(dd1722*), ABISELECT(16,12), "ee61722");
+ check_base_class_offset(lv, (dd1722*), 0, "ee61722");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61722.e");
+ test_class_info(&lv, &cd_ee61722);
+ dp->~ee61722();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61722(Test_ee61722, "ee61722", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee61722C1Ev();
+extern void _ZN7ee61722D1Ev();
+Name_Map name_map_ee61722[] = {
+ NSPAIR(_ZN7ee61722C1Ev),
+ NSPAIR(_ZN7ee61722D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc722;
+extern VTBL_ENTRY _ZTI5cc722[];
+extern VTBL_ENTRY _ZTV5cc722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc722[];
+extern Class_Descriptor cd_dd1722;
+extern VTBL_ENTRY _ZTI6dd1722[];
+extern VTBL_ENTRY _ZTV6dd1722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1722[];
+static Base_Class bases_ee61722[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc722, 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_dd1722, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61722[];
+extern void _ZN7ee617223fooEv();
+extern void _ZN7ee617223barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee617223fooEv,_ZTv0_n16_N7ee617223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee617223fooEv,_ZThn12_N7ee617223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee617223barEv,_ZTv0_n20_N7ee617223barEv)();
+extern void ABISELECT(_ZThn16_N7ee617223barEv,_ZThn12_N7ee617223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee617223fooEv,_ZTv0_n12_N7ee617223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee617223fooEv,_ZThn20_N7ee617223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee617223barEv,_ZTv0_n16_N7ee617223barEv)();
+extern void ABISELECT(_ZThn32_N7ee617223barEv,_ZThn20_N7ee617223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61722[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61722[0]),
+ (VTBL_ENTRY)&_ZN7ee617223fooEv,
+ (VTBL_ENTRY)&_ZN7ee617223barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee617223fooEv,_ZTv0_n16_N7ee617223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee617223barEv,_ZTv0_n20_N7ee617223barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee61722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee617223fooEv,_ZTv0_n12_N7ee617223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee617223barEv,_ZTv0_n16_N7ee617223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee61722[];
+static VTBL_ENTRY _tg__ZTV6dd1722__7ee61722[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1722[0]),
+};
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc722__6dd1722__7ee61722[] = {
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd1722__7ee61722[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc722__7ee61722[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc722__7ee61722[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+static VTT_ENTRY vtt_ee61722[] = {
+ {&(_ZTV7ee61722[4]), 4,19},
+ {&(_tg__ZTV6dd1722__7ee61722[4]), 4,4},
+ {&(_tg__ZTV5cc722__6dd1722__7ee61722[5]), 5,7},
+ {&(_tg__ZTV4bb22__6dd1722__7ee61722[4]), 4,6},
+ {&(_ZTV7ee61722[11]), 11,19},
+ {&(_ZTV7ee61722[17]), 17,19},
+ {&(_tg__ZTV5cc722__7ee61722[3]), 3,5},
+ {&(_tg__ZTV4bb22__5cc722__7ee61722[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee61722[];
+extern VTBL_ENTRY _ZTV7ee61722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61722[];
+static VTBL_ENTRY alt_thunk_names1260[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee617223barEv,_ZTv0_n16_N7ee617223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee617223barEv,_ZThn20_N7ee617223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee617223fooEv,_ZTv0_n12_N7ee617223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee617223fooEv,_ZThn20_N7ee617223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee617223barEv,_ZTv0_n20_N7ee617223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee617223barEv,_ZThn12_N7ee617223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee617223fooEv,_ZTv0_n16_N7ee617223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee617223fooEv,_ZThn12_N7ee617223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61722 = { "ee61722", // class name
+ bases_ee61722, 4,
+ &(vtc_ee61722[0]), // expected_vtbl_contents
+ &(vtt_ee61722[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee61722),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61722),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61722),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1260,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee71722 : virtual dd1722 {
+ int e;
+ virtual void foo(); // _ZN7ee717223fooEv
+ virtual void bar(); // _ZN7ee717223barEv
+ ~ee71722(); // tgen
+ ee71722(); // tgen
+};
+//SIG(1 ee71722) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee71722 ::foo(){vfunc_called(this, "_ZN7ee717223fooEv");}
+void ee71722 ::bar(){vfunc_called(this, "_ZN7ee717223barEv");}
+ee71722 ::~ee71722(){ note_dtor("ee71722", this);} // tgen
+ee71722 ::ee71722(){ note_ctor("ee71722", this);} // tgen
+
+static void Test_ee71722()
+{
+ extern Class_Descriptor cd_ee71722;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee71722, buf);
+ ee71722 *dp, &lv = *(dp=new (buf) ee71722());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee71722)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71722)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(48,24), "ee71722");
+ check_base_class_offset(lv, (bb22*)(cc722*), ABISELECT(48,24), "ee71722");
+ check_base_class_offset(lv, (cc722*)(dd1722*), ABISELECT(32,16), "ee71722");
+ check_base_class_offset(lv, (dd1722*), ABISELECT(16,8), "ee71722");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71722.e");
+ test_class_info(&lv, &cd_ee71722);
+ dp->~ee71722();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71722(Test_ee71722, "ee71722", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee71722C1Ev();
+extern void _ZN7ee71722D1Ev();
+Name_Map name_map_ee71722[] = {
+ NSPAIR(_ZN7ee71722C1Ev),
+ NSPAIR(_ZN7ee71722D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc722;
+extern VTBL_ENTRY _ZTI5cc722[];
+extern VTBL_ENTRY _ZTV5cc722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc722[];
+extern Class_Descriptor cd_dd1722;
+extern VTBL_ENTRY _ZTI6dd1722[];
+extern VTBL_ENTRY _ZTV6dd1722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1722[];
+static Base_Class bases_ee71722[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb22, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc722, 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_dd1722, 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 _ZTI7ee71722[];
+extern void _ZN7ee717223fooEv();
+extern void _ZN7ee717223barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee717223fooEv,_ZTv0_n16_N7ee717223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee717223fooEv,_ZThn16_N7ee717223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee717223barEv,_ZTv0_n20_N7ee717223barEv)();
+extern void ABISELECT(_ZThn32_N7ee717223barEv,_ZThn16_N7ee717223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee717223fooEv,_ZTv0_n12_N7ee717223fooEv)();
+extern void ABISELECT(_ZThn48_N7ee717223fooEv,_ZThn24_N7ee717223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee717223barEv,_ZTv0_n16_N7ee717223barEv)();
+extern void ABISELECT(_ZThn48_N7ee717223barEv,_ZThn24_N7ee717223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71722[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71722[0]),
+ (VTBL_ENTRY)&_ZN7ee717223fooEv,
+ (VTBL_ENTRY)&_ZN7ee717223barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71722[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee717223fooEv,_ZTv0_n16_N7ee717223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee717223barEv,_ZTv0_n20_N7ee717223barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee71722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee717223fooEv,_ZTv0_n12_N7ee717223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee717223barEv,_ZTv0_n16_N7ee717223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee71722[];
+static VTBL_ENTRY _tg__ZTV6dd1722__7ee71722[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1722[0]),
+};
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc722__6dd1722__7ee71722[] = {
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd1722__7ee71722[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc722__7ee71722[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc722__7ee71722[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+static VTT_ENTRY vtt_ee71722[] = {
+ {&(_ZTV7ee71722[5]), 5,24},
+ {&(_ZTV7ee71722[11]), 11,24},
+ {&(_ZTV7ee71722[16]), 16,24},
+ {&(_ZTV7ee71722[22]), 22,24},
+ {&(_tg__ZTV6dd1722__7ee71722[4]), 4,4},
+ {&(_tg__ZTV5cc722__6dd1722__7ee71722[5]), 5,7},
+ {&(_tg__ZTV4bb22__6dd1722__7ee71722[4]), 4,6},
+ {&(_tg__ZTV5cc722__7ee71722[3]), 3,5},
+ {&(_tg__ZTV4bb22__5cc722__7ee71722[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee71722[];
+extern VTBL_ENTRY _ZTV7ee71722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71722[];
+static VTBL_ENTRY alt_thunk_names1261[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee717223barEv,_ZTv0_n16_N7ee717223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee717223barEv,_ZThn24_N7ee717223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee717223fooEv,_ZTv0_n12_N7ee717223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee717223fooEv,_ZThn24_N7ee717223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee717223barEv,_ZTv0_n20_N7ee717223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee717223barEv,_ZThn16_N7ee717223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee717223fooEv,_ZTv0_n16_N7ee717223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee717223fooEv,_ZThn16_N7ee717223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71722 = { "ee71722", // class name
+ bases_ee71722, 4,
+ &(vtc_ee71722[0]), // expected_vtbl_contents
+ &(vtt_ee71722[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee71722),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71722),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71722),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1261,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd2722 : cc722 {
+ int d;
+ virtual void foo(); // _ZN6dd27223fooEv
+ ~dd2722(); // tgen
+ dd2722(); // tgen
+};
+//SIG(-1 dd2722) C1{ BC2{ VBC3{ BC4{ v1 v2 Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void dd2722 ::foo(){vfunc_called(this, "_ZN6dd27223fooEv");}
+dd2722 ::~dd2722(){ note_dtor("dd2722", this);} // tgen
+dd2722 ::dd2722(){ note_ctor("dd2722", this);} // tgen
+
+static void Test_dd2722()
+{
+ extern Class_Descriptor cd_dd2722;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd2722, buf);
+ dd2722 *dp, &lv = *(dp=new (buf) dd2722());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd2722)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2722)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(16,12), "dd2722");
+ check_base_class_offset(lv, (bb22*)(cc722*), ABISELECT(16,12), "dd2722");
+ check_base_class_offset(lv, (cc722*), 0, "dd2722");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd2722.d");
+ test_class_info(&lv, &cd_dd2722);
+ dp->~dd2722();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2722(Test_dd2722, "dd2722", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd2722C1Ev();
+extern void _ZN6dd2722D1Ev();
+Name_Map name_map_dd2722[] = {
+ NSPAIR(_ZN6dd2722C1Ev),
+ NSPAIR(_ZN6dd2722D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc722;
+extern VTBL_ENTRY _ZTI5cc722[];
+extern VTBL_ENTRY _ZTV5cc722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc722[];
+static Base_Class bases_dd2722[] = {
+ // 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_bb22, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc722, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd2722[];
+extern void _ZN6dd27223fooEv();
+extern void _ZN5cc7223barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd27223fooEv,_ZTv0_n12_N6dd27223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd27223fooEv,_ZThn12_N6dd27223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn12_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd2722[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2722[0]),
+ (VTBL_ENTRY)&_ZN6dd27223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27223fooEv,_ZTv0_n12_N6dd27223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+extern VTBL_ENTRY _ZTV6dd2722[];
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc722__6dd2722[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn12_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn12_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc722__6dd2722[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+static VTT_ENTRY vtt_dd2722[] = {
+ {&(_ZTV6dd2722[3]), 3,11},
+ {&(_tg__ZTV5cc722__6dd2722[3]), 3,5},
+ {&(_tg__ZTV4bb22__5cc722__6dd2722[4]), 4,6},
+ {&(_ZTV6dd2722[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd2722[];
+extern VTBL_ENTRY _ZTV6dd2722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2722[];
+static VTBL_ENTRY alt_thunk_names1262[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn12_N5cc7223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn12_N5cc7223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn12_N5cc7223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27223fooEv,_ZTv0_n12_N6dd27223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd27223fooEv,_ZThn12_N6dd27223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd2722 = { "dd2722", // class name
+ bases_dd2722, 3,
+ &(vtc_dd2722[0]), // expected_vtbl_contents
+ &(vtt_dd2722[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd2722),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2722),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd2722),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1262,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee02722 : dd2722 {
+ int e;
+ ~ee02722(); // tgen
+ ee02722(); // tgen
+};
+//SIG(1 ee02722) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee02722 ::~ee02722(){ note_dtor("ee02722", this);} // tgen
+ee02722 ::ee02722(){ note_ctor("ee02722", this);} // tgen
+
+static void Test_ee02722()
+{
+ extern Class_Descriptor cd_ee02722;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee02722, buf);
+ ee02722 *dp, &lv = *(dp=new (buf) ee02722());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee02722)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02722)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(24,16), "ee02722");
+ check_base_class_offset(lv, (bb22*)(cc722*)(dd2722*), ABISELECT(24,16), "ee02722");
+ check_base_class_offset(lv, (cc722*)(dd2722*), 0, "ee02722");
+ check_base_class_offset(lv, (dd2722*), 0, "ee02722");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee02722.e");
+ test_class_info(&lv, &cd_ee02722);
+ dp->~ee02722();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02722(Test_ee02722, "ee02722", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee02722C1Ev();
+extern void _ZN7ee02722D1Ev();
+Name_Map name_map_ee02722[] = {
+ NSPAIR(_ZN7ee02722C1Ev),
+ NSPAIR(_ZN7ee02722D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc722;
+extern VTBL_ENTRY _ZTI5cc722[];
+extern VTBL_ENTRY _ZTV5cc722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc722[];
+extern Class_Descriptor cd_dd2722;
+extern VTBL_ENTRY _ZTI6dd2722[];
+extern VTBL_ENTRY _ZTV6dd2722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2722[];
+static Base_Class bases_ee02722[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc722, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2722, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee02722[];
+extern void _ZN6dd27223fooEv();
+extern void _ZN5cc7223barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd27223fooEv,_ZTv0_n12_N6dd27223fooEv)();
+extern void ABISELECT(_ZThn24_N6dd27223fooEv,_ZThn16_N6dd27223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn24_N5cc7223barEv,_ZThn16_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee02722[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02722[0]),
+ (VTBL_ENTRY)&_ZN6dd27223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee02722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27223fooEv,_ZTv0_n12_N6dd27223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee02722[];
+extern void _ZN6dd27223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV6dd2722__7ee02722[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2722[0]),
+ (VTBL_ENTRY)&_ZN6dd27223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc7226dd2722__7ee02722[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7223fooEv,_ZThn16_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn24_N5cc7223barEv,_ZThn16_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc7226dd2722__7ee02722[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd27223fooEv,_ZTv0_n12_N6dd27223fooEv)();
+extern void ABISELECT(_ZThn24_N6dd27223fooEv,_ZThn16_N6dd27223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn24_N5cc7223barEv,_ZThn16_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd2722__7ee02722[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27223fooEv,_ZTv0_n12_N6dd27223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+static VTT_ENTRY vtt_ee02722[] = {
+ {&(_ZTV7ee02722[3]), 3,11},
+ {&(_tg__ZTV6dd2722__7ee02722[3]), 3,5},
+ {&(_tg__ZTV5cc7226dd2722__7ee02722[3]), 3,5},
+ {&(_tg__ZTV4bb22__5cc7226dd2722__7ee02722[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd2722__7ee02722[4]), 4,6},
+ {&(_ZTV7ee02722[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee02722[];
+extern VTBL_ENTRY _ZTV7ee02722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee02722[];
+static VTBL_ENTRY alt_thunk_names1263[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7223fooEv,_ZThn16_N5cc7223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7223barEv,_ZThn16_N5cc7223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7223barEv,_ZThn16_N5cc7223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7223barEv,_ZThn16_N5cc7223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27223fooEv,_ZTv0_n12_N6dd27223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd27223fooEv,_ZThn16_N6dd27223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd27223fooEv,_ZThn16_N6dd27223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee02722 = { "ee02722", // class name
+ bases_ee02722, 4,
+ &(vtc_ee02722[0]), // expected_vtbl_contents
+ &(vtt_ee02722[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee02722),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02722),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee02722),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1263,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee12722 : virtual dd2722 {
+ int e;
+ ~ee12722(); // tgen
+ ee12722(); // tgen
+};
+//SIG(1 ee12722) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee12722 ::~ee12722(){ note_dtor("ee12722", this);} // tgen
+ee12722 ::ee12722(){ note_ctor("ee12722", this);} // tgen
+
+static void Test_ee12722()
+{
+ extern Class_Descriptor cd_ee12722;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee12722, buf);
+ ee12722 *dp, &lv = *(dp=new (buf) ee12722());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee12722)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12722)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee12722");
+ check_base_class_offset(lv, (bb22*)(cc722*)(dd2722*), ABISELECT(32,20), "ee12722");
+ check_base_class_offset(lv, (cc722*)(dd2722*), ABISELECT(16,8), "ee12722");
+ check_base_class_offset(lv, (dd2722*), ABISELECT(16,8), "ee12722");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12722.e");
+ test_class_info(&lv, &cd_ee12722);
+ dp->~ee12722();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12722(Test_ee12722, "ee12722", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee12722C1Ev();
+extern void _ZN7ee12722D1Ev();
+Name_Map name_map_ee12722[] = {
+ NSPAIR(_ZN7ee12722C1Ev),
+ NSPAIR(_ZN7ee12722D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc722;
+extern VTBL_ENTRY _ZTI5cc722[];
+extern VTBL_ENTRY _ZTV5cc722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc722[];
+extern Class_Descriptor cd_dd2722;
+extern VTBL_ENTRY _ZTI6dd2722[];
+extern VTBL_ENTRY _ZTV6dd2722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2722[];
+static Base_Class bases_ee12722[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc722, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2722, 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 _ZTI7ee12722[];
+extern void _ZN6dd27223fooEv();
+extern void _ZN5cc7223barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd27223fooEv,_ZTv0_n12_N6dd27223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd27223fooEv,_ZThn12_N6dd27223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn12_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee12722[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12722[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12722[0]),
+ (VTBL_ENTRY)&_ZN6dd27223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee12722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27223fooEv,_ZTv0_n12_N6dd27223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee12722[];
+extern void _ZN6dd27223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV6dd2722__7ee12722[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2722[0]),
+ (VTBL_ENTRY)&_ZN6dd27223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc7226dd2722__7ee12722[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn12_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn12_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc7226dd2722__7ee12722[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd27223fooEv,_ZTv0_n12_N6dd27223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd27223fooEv,_ZThn12_N6dd27223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn12_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd2722__7ee12722[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27223fooEv,_ZTv0_n12_N6dd27223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+static VTT_ENTRY vtt_ee12722[] = {
+ {&(_ZTV7ee12722[4]), 4,17},
+ {&(_ZTV7ee12722[9]), 9,17},
+ {&(_ZTV7ee12722[15]), 15,17},
+ {&(_tg__ZTV6dd2722__7ee12722[3]), 3,5},
+ {&(_tg__ZTV5cc7226dd2722__7ee12722[3]), 3,5},
+ {&(_tg__ZTV4bb22__5cc7226dd2722__7ee12722[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd2722__7ee12722[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee12722[];
+extern VTBL_ENTRY _ZTV7ee12722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12722[];
+static VTBL_ENTRY alt_thunk_names1264[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn12_N5cc7223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn12_N5cc7223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn12_N5cc7223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn12_N5cc7223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27223fooEv,_ZTv0_n12_N6dd27223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd27223fooEv,_ZThn12_N6dd27223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd27223fooEv,_ZThn12_N6dd27223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee12722 = { "ee12722", // class name
+ bases_ee12722, 4,
+ &(vtc_ee12722[0]), // expected_vtbl_contents
+ &(vtt_ee12722[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee12722),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12722),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12722),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1264,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee22722 : dd2722 {
+ int e;
+ virtual void foo(); // _ZN7ee227223fooEv
+ ~ee22722(); // tgen
+ ee22722(); // tgen
+};
+//SIG(1 ee22722) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee22722 ::foo(){vfunc_called(this, "_ZN7ee227223fooEv");}
+ee22722 ::~ee22722(){ note_dtor("ee22722", this);} // tgen
+ee22722 ::ee22722(){ note_ctor("ee22722", this);} // tgen
+
+static void Test_ee22722()
+{
+ extern Class_Descriptor cd_ee22722;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee22722, buf);
+ ee22722 *dp, &lv = *(dp=new (buf) ee22722());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee22722)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22722)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(24,16), "ee22722");
+ check_base_class_offset(lv, (bb22*)(cc722*)(dd2722*), ABISELECT(24,16), "ee22722");
+ check_base_class_offset(lv, (cc722*)(dd2722*), 0, "ee22722");
+ check_base_class_offset(lv, (dd2722*), 0, "ee22722");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee22722.e");
+ test_class_info(&lv, &cd_ee22722);
+ dp->~ee22722();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22722(Test_ee22722, "ee22722", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee22722C1Ev();
+extern void _ZN7ee22722D1Ev();
+Name_Map name_map_ee22722[] = {
+ NSPAIR(_ZN7ee22722C1Ev),
+ NSPAIR(_ZN7ee22722D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc722;
+extern VTBL_ENTRY _ZTI5cc722[];
+extern VTBL_ENTRY _ZTV5cc722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc722[];
+extern Class_Descriptor cd_dd2722;
+extern VTBL_ENTRY _ZTI6dd2722[];
+extern VTBL_ENTRY _ZTV6dd2722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2722[];
+static Base_Class bases_ee22722[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc722, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2722, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee22722[];
+extern void _ZN7ee227223fooEv();
+extern void _ZN5cc7223barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee227223fooEv,_ZTv0_n12_N7ee227223fooEv)();
+extern void ABISELECT(_ZThn24_N7ee227223fooEv,_ZThn16_N7ee227223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn24_N5cc7223barEv,_ZThn16_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee22722[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22722[0]),
+ (VTBL_ENTRY)&_ZN7ee227223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee22722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee227223fooEv,_ZTv0_n12_N7ee227223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee22722[];
+extern void _ZN6dd27223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV6dd2722__7ee22722[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2722[0]),
+ (VTBL_ENTRY)&_ZN6dd27223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc7226dd2722__7ee22722[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7223fooEv,_ZThn16_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn24_N5cc7223barEv,_ZThn16_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc7226dd2722__7ee22722[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd27223fooEv,_ZTv0_n12_N6dd27223fooEv)();
+extern void ABISELECT(_ZThn24_N6dd27223fooEv,_ZThn16_N6dd27223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn24_N5cc7223barEv,_ZThn16_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd2722__7ee22722[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27223fooEv,_ZTv0_n12_N6dd27223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+static VTT_ENTRY vtt_ee22722[] = {
+ {&(_ZTV7ee22722[3]), 3,11},
+ {&(_tg__ZTV6dd2722__7ee22722[3]), 3,5},
+ {&(_tg__ZTV5cc7226dd2722__7ee22722[3]), 3,5},
+ {&(_tg__ZTV4bb22__5cc7226dd2722__7ee22722[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd2722__7ee22722[4]), 4,6},
+ {&(_ZTV7ee22722[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee22722[];
+extern VTBL_ENTRY _ZTV7ee22722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee22722[];
+static VTBL_ENTRY alt_thunk_names1265[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27223fooEv,_ZTv0_n12_N6dd27223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd27223fooEv,_ZThn16_N6dd27223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7223fooEv,_ZThn16_N5cc7223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7223barEv,_ZThn16_N5cc7223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7223barEv,_ZThn16_N5cc7223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7223barEv,_ZThn16_N5cc7223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee227223fooEv,_ZTv0_n12_N7ee227223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee227223fooEv,_ZThn16_N7ee227223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee22722 = { "ee22722", // class name
+ bases_ee22722, 4,
+ &(vtc_ee22722[0]), // expected_vtbl_contents
+ &(vtt_ee22722[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee22722),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22722),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee22722),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1265,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee32722 : virtual dd2722 {
+ int e;
+ virtual void foo(); // _ZN7ee327223fooEv
+ ~ee32722(); // tgen
+ ee32722(); // tgen
+};
+//SIG(1 ee32722) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee32722 ::foo(){vfunc_called(this, "_ZN7ee327223fooEv");}
+ee32722 ::~ee32722(){ note_dtor("ee32722", this);} // tgen
+ee32722 ::ee32722(){ note_ctor("ee32722", this);} // tgen
+
+static void Test_ee32722()
+{
+ extern Class_Descriptor cd_ee32722;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee32722, buf);
+ ee32722 *dp, &lv = *(dp=new (buf) ee32722());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee32722)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32722)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee32722");
+ check_base_class_offset(lv, (bb22*)(cc722*)(dd2722*), ABISELECT(32,20), "ee32722");
+ check_base_class_offset(lv, (cc722*)(dd2722*), ABISELECT(16,8), "ee32722");
+ check_base_class_offset(lv, (dd2722*), ABISELECT(16,8), "ee32722");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32722.e");
+ test_class_info(&lv, &cd_ee32722);
+ dp->~ee32722();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32722(Test_ee32722, "ee32722", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee32722C1Ev();
+extern void _ZN7ee32722D1Ev();
+Name_Map name_map_ee32722[] = {
+ NSPAIR(_ZN7ee32722C1Ev),
+ NSPAIR(_ZN7ee32722D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc722;
+extern VTBL_ENTRY _ZTI5cc722[];
+extern VTBL_ENTRY _ZTV5cc722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc722[];
+extern Class_Descriptor cd_dd2722;
+extern VTBL_ENTRY _ZTI6dd2722[];
+extern VTBL_ENTRY _ZTV6dd2722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2722[];
+static Base_Class bases_ee32722[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc722, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2722, 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 _ZTI7ee32722[];
+extern void _ZN7ee327223fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee327223fooEv,_ZTv0_n16_N7ee327223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee327223fooEv,_ZThn8_N7ee327223fooEv)() __attribute__((weak));
+extern void _ZN5cc7223barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee327223fooEv,_ZTv0_n12_N7ee327223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee327223fooEv,_ZThn20_N7ee327223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn12_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee32722[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32722[0]),
+ (VTBL_ENTRY)&_ZN7ee327223fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee327223fooEv,_ZTv0_n16_N7ee327223fooEv),
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee32722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee327223fooEv,_ZTv0_n12_N7ee327223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee32722[];
+extern void _ZN6dd27223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV6dd2722__7ee32722[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2722[0]),
+ (VTBL_ENTRY)&_ZN6dd27223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc7226dd2722__7ee32722[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn12_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn12_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc7226dd2722__7ee32722[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd27223fooEv,_ZTv0_n12_N6dd27223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd27223fooEv,_ZThn12_N6dd27223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn12_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd2722__7ee32722[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27223fooEv,_ZTv0_n12_N6dd27223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+static VTT_ENTRY vtt_ee32722[] = {
+ {&(_ZTV7ee32722[4]), 4,18},
+ {&(_ZTV7ee32722[10]), 10,18},
+ {&(_ZTV7ee32722[16]), 16,18},
+ {&(_tg__ZTV6dd2722__7ee32722[3]), 3,5},
+ {&(_tg__ZTV5cc7226dd2722__7ee32722[3]), 3,5},
+ {&(_tg__ZTV4bb22__5cc7226dd2722__7ee32722[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd2722__7ee32722[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee32722[];
+extern VTBL_ENTRY _ZTV7ee32722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32722[];
+static VTBL_ENTRY alt_thunk_names1266[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27223fooEv,_ZTv0_n12_N6dd27223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd27223fooEv,_ZThn12_N6dd27223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn12_N5cc7223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn12_N5cc7223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn12_N5cc7223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn12_N5cc7223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee327223fooEv,_ZTv0_n12_N7ee327223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee327223fooEv,_ZThn20_N7ee327223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee327223fooEv,_ZTv0_n16_N7ee327223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee327223fooEv,_ZThn8_N7ee327223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32722 = { "ee32722", // class name
+ bases_ee32722, 4,
+ &(vtc_ee32722[0]), // expected_vtbl_contents
+ &(vtt_ee32722[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee32722),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32722),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32722),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1266,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee42722 : dd2722 {
+ int e;
+ virtual void bar(); // _ZN7ee427223barEv
+ ~ee42722(); // tgen
+ ee42722(); // tgen
+};
+//SIG(1 ee42722) C1{ BC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee42722 ::bar(){vfunc_called(this, "_ZN7ee427223barEv");}
+ee42722 ::~ee42722(){ note_dtor("ee42722", this);} // tgen
+ee42722 ::ee42722(){ note_ctor("ee42722", this);} // tgen
+
+static void Test_ee42722()
+{
+ extern Class_Descriptor cd_ee42722;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee42722, buf);
+ ee42722 *dp, &lv = *(dp=new (buf) ee42722());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee42722)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42722)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(24,16), "ee42722");
+ check_base_class_offset(lv, (bb22*)(cc722*)(dd2722*), ABISELECT(24,16), "ee42722");
+ check_base_class_offset(lv, (cc722*)(dd2722*), 0, "ee42722");
+ check_base_class_offset(lv, (dd2722*), 0, "ee42722");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee42722.e");
+ test_class_info(&lv, &cd_ee42722);
+ dp->~ee42722();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42722(Test_ee42722, "ee42722", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee42722C1Ev();
+extern void _ZN7ee42722D1Ev();
+Name_Map name_map_ee42722[] = {
+ NSPAIR(_ZN7ee42722C1Ev),
+ NSPAIR(_ZN7ee42722D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc722;
+extern VTBL_ENTRY _ZTI5cc722[];
+extern VTBL_ENTRY _ZTV5cc722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc722[];
+extern Class_Descriptor cd_dd2722;
+extern VTBL_ENTRY _ZTI6dd2722[];
+extern VTBL_ENTRY _ZTV6dd2722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2722[];
+static Base_Class bases_ee42722[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc722, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2722, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee42722[];
+extern void _ZN6dd27223fooEv();
+extern void _ZN7ee427223barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd27223fooEv,_ZTv0_n12_N6dd27223fooEv)();
+extern void ABISELECT(_ZThn24_N6dd27223fooEv,_ZThn16_N6dd27223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee427223barEv,_ZTv0_n16_N7ee427223barEv)();
+extern void ABISELECT(_ZThn24_N7ee427223barEv,_ZThn16_N7ee427223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee42722[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42722[0]),
+ (VTBL_ENTRY)&_ZN6dd27223fooEv,
+ (VTBL_ENTRY)&_ZN7ee427223barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee42722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27223fooEv,_ZTv0_n12_N6dd27223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee427223barEv,_ZTv0_n16_N7ee427223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee42722[];
+extern void _ZN6dd27223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV6dd2722__7ee42722[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2722[0]),
+ (VTBL_ENTRY)&_ZN6dd27223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc7226dd2722__7ee42722[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7223fooEv,_ZThn16_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn24_N5cc7223barEv,_ZThn16_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc7226dd2722__7ee42722[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd27223fooEv,_ZTv0_n12_N6dd27223fooEv)();
+extern void ABISELECT(_ZThn24_N6dd27223fooEv,_ZThn16_N6dd27223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn24_N5cc7223barEv,_ZThn16_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd2722__7ee42722[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27223fooEv,_ZTv0_n12_N6dd27223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+static VTT_ENTRY vtt_ee42722[] = {
+ {&(_ZTV7ee42722[3]), 3,11},
+ {&(_tg__ZTV6dd2722__7ee42722[3]), 3,5},
+ {&(_tg__ZTV5cc7226dd2722__7ee42722[3]), 3,5},
+ {&(_tg__ZTV4bb22__5cc7226dd2722__7ee42722[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd2722__7ee42722[4]), 4,6},
+ {&(_ZTV7ee42722[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee42722[];
+extern VTBL_ENTRY _ZTV7ee42722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee42722[];
+static VTBL_ENTRY alt_thunk_names1267[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7223barEv,_ZThn16_N5cc7223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7223barEv,_ZThn16_N5cc7223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7223fooEv,_ZThn16_N5cc7223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee427223barEv,_ZTv0_n16_N7ee427223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee427223barEv,_ZThn16_N7ee427223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27223fooEv,_ZTv0_n12_N6dd27223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd27223fooEv,_ZThn16_N6dd27223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd27223fooEv,_ZThn16_N6dd27223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee42722 = { "ee42722", // class name
+ bases_ee42722, 4,
+ &(vtc_ee42722[0]), // expected_vtbl_contents
+ &(vtt_ee42722[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee42722),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42722),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee42722),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1267,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee52722 : virtual dd2722 {
+ int e;
+ virtual void bar(); // _ZN7ee527223barEv
+ ~ee52722(); // tgen
+ ee52722(); // tgen
+};
+//SIG(1 ee52722) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee52722 ::bar(){vfunc_called(this, "_ZN7ee527223barEv");}
+ee52722 ::~ee52722(){ note_dtor("ee52722", this);} // tgen
+ee52722 ::ee52722(){ note_ctor("ee52722", this);} // tgen
+
+static void Test_ee52722()
+{
+ extern Class_Descriptor cd_ee52722;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee52722, buf);
+ ee52722 *dp, &lv = *(dp=new (buf) ee52722());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee52722)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52722)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee52722");
+ check_base_class_offset(lv, (bb22*)(cc722*)(dd2722*), ABISELECT(32,20), "ee52722");
+ check_base_class_offset(lv, (cc722*)(dd2722*), ABISELECT(16,8), "ee52722");
+ check_base_class_offset(lv, (dd2722*), ABISELECT(16,8), "ee52722");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52722.e");
+ test_class_info(&lv, &cd_ee52722);
+ dp->~ee52722();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52722(Test_ee52722, "ee52722", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee52722C1Ev();
+extern void _ZN7ee52722D1Ev();
+Name_Map name_map_ee52722[] = {
+ NSPAIR(_ZN7ee52722C1Ev),
+ NSPAIR(_ZN7ee52722D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc722;
+extern VTBL_ENTRY _ZTI5cc722[];
+extern VTBL_ENTRY _ZTV5cc722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc722[];
+extern Class_Descriptor cd_dd2722;
+extern VTBL_ENTRY _ZTI6dd2722[];
+extern VTBL_ENTRY _ZTV6dd2722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2722[];
+static Base_Class bases_ee52722[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc722, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2722, 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 _ZTI7ee52722[];
+extern void _ZN7ee527223barEv();
+extern void _ZN6dd27223fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee527223barEv,_ZTv0_n20_N7ee527223barEv)();
+extern void ABISELECT(_ZThn16_N7ee527223barEv,_ZThn8_N7ee527223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd27223fooEv,_ZTv0_n12_N6dd27223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd27223fooEv,_ZThn12_N6dd27223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee527223barEv,_ZTv0_n16_N7ee527223barEv)();
+extern void ABISELECT(_ZThn32_N7ee527223barEv,_ZThn20_N7ee527223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee52722[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52722[0]),
+ (VTBL_ENTRY)&_ZN7ee527223barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52722[0]),
+ (VTBL_ENTRY)&_ZN6dd27223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee527223barEv,_ZTv0_n20_N7ee527223barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee52722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27223fooEv,_ZTv0_n12_N6dd27223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee527223barEv,_ZTv0_n16_N7ee527223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee52722[];
+extern void _ZN6dd27223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV6dd2722__7ee52722[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2722[0]),
+ (VTBL_ENTRY)&_ZN6dd27223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc7226dd2722__7ee52722[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn12_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn12_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc7226dd2722__7ee52722[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd27223fooEv,_ZTv0_n12_N6dd27223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd27223fooEv,_ZThn12_N6dd27223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn12_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd2722__7ee52722[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27223fooEv,_ZTv0_n12_N6dd27223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+static VTT_ENTRY vtt_ee52722[] = {
+ {&(_ZTV7ee52722[4]), 4,18},
+ {&(_ZTV7ee52722[10]), 10,18},
+ {&(_ZTV7ee52722[16]), 16,18},
+ {&(_tg__ZTV6dd2722__7ee52722[3]), 3,5},
+ {&(_tg__ZTV5cc7226dd2722__7ee52722[3]), 3,5},
+ {&(_tg__ZTV4bb22__5cc7226dd2722__7ee52722[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd2722__7ee52722[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee52722[];
+extern VTBL_ENTRY _ZTV7ee52722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52722[];
+static VTBL_ENTRY alt_thunk_names1268[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn12_N5cc7223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn12_N5cc7223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn12_N5cc7223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee527223barEv,_ZTv0_n16_N7ee527223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee527223barEv,_ZThn20_N7ee527223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27223fooEv,_ZTv0_n12_N6dd27223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd27223fooEv,_ZThn12_N6dd27223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd27223fooEv,_ZThn12_N6dd27223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee527223barEv,_ZTv0_n20_N7ee527223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee527223barEv,_ZThn8_N7ee527223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52722 = { "ee52722", // class name
+ bases_ee52722, 4,
+ &(vtc_ee52722[0]), // expected_vtbl_contents
+ &(vtt_ee52722[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee52722),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52722),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52722),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1268,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee62722 : dd2722 {
+ int e;
+ virtual void foo(); // _ZN7ee627223fooEv
+ virtual void bar(); // _ZN7ee627223barEv
+ ~ee62722(); // tgen
+ ee62722(); // tgen
+};
+//SIG(1 ee62722) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62722 ::foo(){vfunc_called(this, "_ZN7ee627223fooEv");}
+void ee62722 ::bar(){vfunc_called(this, "_ZN7ee627223barEv");}
+ee62722 ::~ee62722(){ note_dtor("ee62722", this);} // tgen
+ee62722 ::ee62722(){ note_ctor("ee62722", this);} // tgen
+
+static void Test_ee62722()
+{
+ extern Class_Descriptor cd_ee62722;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee62722, buf);
+ ee62722 *dp, &lv = *(dp=new (buf) ee62722());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee62722)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62722)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(24,16), "ee62722");
+ check_base_class_offset(lv, (bb22*)(cc722*)(dd2722*), ABISELECT(24,16), "ee62722");
+ check_base_class_offset(lv, (cc722*)(dd2722*), 0, "ee62722");
+ check_base_class_offset(lv, (dd2722*), 0, "ee62722");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee62722.e");
+ test_class_info(&lv, &cd_ee62722);
+ dp->~ee62722();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62722(Test_ee62722, "ee62722", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee62722C1Ev();
+extern void _ZN7ee62722D1Ev();
+Name_Map name_map_ee62722[] = {
+ NSPAIR(_ZN7ee62722C1Ev),
+ NSPAIR(_ZN7ee62722D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc722;
+extern VTBL_ENTRY _ZTI5cc722[];
+extern VTBL_ENTRY _ZTV5cc722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc722[];
+extern Class_Descriptor cd_dd2722;
+extern VTBL_ENTRY _ZTI6dd2722[];
+extern VTBL_ENTRY _ZTV6dd2722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2722[];
+static Base_Class bases_ee62722[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc722, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2722, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee62722[];
+extern void _ZN7ee627223fooEv();
+extern void _ZN7ee627223barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee627223fooEv,_ZTv0_n12_N7ee627223fooEv)();
+extern void ABISELECT(_ZThn24_N7ee627223fooEv,_ZThn16_N7ee627223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee627223barEv,_ZTv0_n16_N7ee627223barEv)();
+extern void ABISELECT(_ZThn24_N7ee627223barEv,_ZThn16_N7ee627223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee62722[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62722[0]),
+ (VTBL_ENTRY)&_ZN7ee627223fooEv,
+ (VTBL_ENTRY)&_ZN7ee627223barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee62722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee627223fooEv,_ZTv0_n12_N7ee627223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee627223barEv,_ZTv0_n16_N7ee627223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee62722[];
+extern void _ZN6dd27223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV6dd2722__7ee62722[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2722[0]),
+ (VTBL_ENTRY)&_ZN6dd27223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc7226dd2722__7ee62722[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7223fooEv,_ZThn16_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn24_N5cc7223barEv,_ZThn16_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc7226dd2722__7ee62722[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd27223fooEv,_ZTv0_n12_N6dd27223fooEv)();
+extern void ABISELECT(_ZThn24_N6dd27223fooEv,_ZThn16_N6dd27223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn24_N5cc7223barEv,_ZThn16_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd2722__7ee62722[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27223fooEv,_ZTv0_n12_N6dd27223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+static VTT_ENTRY vtt_ee62722[] = {
+ {&(_ZTV7ee62722[3]), 3,11},
+ {&(_tg__ZTV6dd2722__7ee62722[3]), 3,5},
+ {&(_tg__ZTV5cc7226dd2722__7ee62722[3]), 3,5},
+ {&(_tg__ZTV4bb22__5cc7226dd2722__7ee62722[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd2722__7ee62722[4]), 4,6},
+ {&(_ZTV7ee62722[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee62722[];
+extern VTBL_ENTRY _ZTV7ee62722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee62722[];
+static VTBL_ENTRY alt_thunk_names1269[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27223fooEv,_ZTv0_n12_N6dd27223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd27223fooEv,_ZThn16_N6dd27223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7223barEv,_ZThn16_N5cc7223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7223barEv,_ZThn16_N5cc7223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7223fooEv,_ZThn16_N5cc7223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee627223barEv,_ZTv0_n16_N7ee627223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee627223barEv,_ZThn16_N7ee627223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee627223fooEv,_ZTv0_n12_N7ee627223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee627223fooEv,_ZThn16_N7ee627223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee62722 = { "ee62722", // class name
+ bases_ee62722, 4,
+ &(vtc_ee62722[0]), // expected_vtbl_contents
+ &(vtt_ee62722[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee62722),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62722),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee62722),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1269,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee72722 : virtual dd2722 {
+ int e;
+ virtual void foo(); // _ZN7ee727223fooEv
+ virtual void bar(); // _ZN7ee727223barEv
+ ~ee72722(); // tgen
+ ee72722(); // tgen
+};
+//SIG(1 ee72722) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72722 ::foo(){vfunc_called(this, "_ZN7ee727223fooEv");}
+void ee72722 ::bar(){vfunc_called(this, "_ZN7ee727223barEv");}
+ee72722 ::~ee72722(){ note_dtor("ee72722", this);} // tgen
+ee72722 ::ee72722(){ note_ctor("ee72722", this);} // tgen
+
+static void Test_ee72722()
+{
+ extern Class_Descriptor cd_ee72722;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee72722, buf);
+ ee72722 *dp, &lv = *(dp=new (buf) ee72722());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee72722)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72722)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee72722");
+ check_base_class_offset(lv, (bb22*)(cc722*)(dd2722*), ABISELECT(32,20), "ee72722");
+ check_base_class_offset(lv, (cc722*)(dd2722*), ABISELECT(16,8), "ee72722");
+ check_base_class_offset(lv, (dd2722*), ABISELECT(16,8), "ee72722");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72722.e");
+ test_class_info(&lv, &cd_ee72722);
+ dp->~ee72722();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72722(Test_ee72722, "ee72722", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee72722C1Ev();
+extern void _ZN7ee72722D1Ev();
+Name_Map name_map_ee72722[] = {
+ NSPAIR(_ZN7ee72722C1Ev),
+ NSPAIR(_ZN7ee72722D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc722;
+extern VTBL_ENTRY _ZTI5cc722[];
+extern VTBL_ENTRY _ZTV5cc722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc722[];
+extern Class_Descriptor cd_dd2722;
+extern VTBL_ENTRY _ZTI6dd2722[];
+extern VTBL_ENTRY _ZTV6dd2722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2722[];
+static Base_Class bases_ee72722[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc722, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd2722, ABISELECT(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 _ZTI7ee72722[];
+extern void _ZN7ee727223fooEv();
+extern void _ZN7ee727223barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee727223fooEv,_ZTv0_n16_N7ee727223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee727223fooEv,_ZThn8_N7ee727223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee727223barEv,_ZTv0_n20_N7ee727223barEv)();
+extern void ABISELECT(_ZThn16_N7ee727223barEv,_ZThn8_N7ee727223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee727223fooEv,_ZTv0_n12_N7ee727223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee727223fooEv,_ZThn20_N7ee727223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee727223barEv,_ZTv0_n16_N7ee727223barEv)();
+extern void ABISELECT(_ZThn32_N7ee727223barEv,_ZThn20_N7ee727223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72722[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72722[0]),
+ (VTBL_ENTRY)&_ZN7ee727223fooEv,
+ (VTBL_ENTRY)&_ZN7ee727223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee727223fooEv,_ZTv0_n16_N7ee727223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee727223barEv,_ZTv0_n20_N7ee727223barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee72722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee727223fooEv,_ZTv0_n12_N7ee727223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee727223barEv,_ZTv0_n16_N7ee727223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee72722[];
+extern void _ZN6dd27223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV6dd2722__7ee72722[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2722[0]),
+ (VTBL_ENTRY)&_ZN6dd27223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc7226dd2722__7ee72722[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn12_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn12_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc7226dd2722__7ee72722[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd27223fooEv,_ZTv0_n12_N6dd27223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd27223fooEv,_ZThn12_N6dd27223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn12_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd2722__7ee72722[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27223fooEv,_ZTv0_n12_N6dd27223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+static VTT_ENTRY vtt_ee72722[] = {
+ {&(_ZTV7ee72722[4]), 4,19},
+ {&(_ZTV7ee72722[11]), 11,19},
+ {&(_ZTV7ee72722[17]), 17,19},
+ {&(_tg__ZTV6dd2722__7ee72722[3]), 3,5},
+ {&(_tg__ZTV5cc7226dd2722__7ee72722[3]), 3,5},
+ {&(_tg__ZTV4bb22__5cc7226dd2722__7ee72722[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd2722__7ee72722[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee72722[];
+extern VTBL_ENTRY _ZTV7ee72722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72722[];
+static VTBL_ENTRY alt_thunk_names1270[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27223fooEv,_ZTv0_n12_N6dd27223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd27223fooEv,_ZThn12_N6dd27223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn12_N5cc7223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn12_N5cc7223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn12_N5cc7223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee727223barEv,_ZTv0_n16_N7ee727223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee727223barEv,_ZThn20_N7ee727223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee727223fooEv,_ZTv0_n12_N7ee727223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee727223fooEv,_ZThn20_N7ee727223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee727223barEv,_ZTv0_n20_N7ee727223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee727223barEv,_ZThn8_N7ee727223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee727223fooEv,_ZTv0_n16_N7ee727223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee727223fooEv,_ZThn8_N7ee727223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72722 = { "ee72722", // class name
+ bases_ee72722, 4,
+ &(vtc_ee72722[0]), // expected_vtbl_contents
+ &(vtt_ee72722[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee72722),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72722),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72722),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1270,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd3722 : virtual cc722 {
+ int d;
+ virtual void foo(); // _ZN6dd37223fooEv
+ ~dd3722(); // tgen
+ dd3722(); // tgen
+};
+//SIG(-1 dd3722) C1{ VBC2{ VBC3{ BC4{ v1 v2 Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void dd3722 ::foo(){vfunc_called(this, "_ZN6dd37223fooEv");}
+dd3722 ::~dd3722(){ note_dtor("dd3722", this);} // tgen
+dd3722 ::dd3722(){ note_ctor("dd3722", this);} // tgen
+
+static void Test_dd3722()
+{
+ extern Class_Descriptor cd_dd3722;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd3722, buf);
+ dd3722 *dp, &lv = *(dp=new (buf) dd3722());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd3722)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3722)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,16), "dd3722");
+ check_base_class_offset(lv, (bb22*)(cc722*), ABISELECT(32,16), "dd3722");
+ check_base_class_offset(lv, (cc722*), ABISELECT(16,8), "dd3722");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3722.d");
+ test_class_info(&lv, &cd_dd3722);
+ dp->~dd3722();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3722(Test_dd3722, "dd3722", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd3722C1Ev();
+extern void _ZN6dd3722D1Ev();
+Name_Map name_map_dd3722[] = {
+ NSPAIR(_ZN6dd3722C1Ev),
+ NSPAIR(_ZN6dd3722D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc722;
+extern VTBL_ENTRY _ZTI5cc722[];
+extern VTBL_ENTRY _ZTV5cc722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc722[];
+static Base_Class bases_dd3722[] = {
+ // 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_bb22, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc722, 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 _ZTI6dd3722[];
+extern void _ZN6dd37223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd37223fooEv,_ZTv0_n16_N6dd37223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37223fooEv,_ZThn8_N6dd37223fooEv)() __attribute__((weak));
+extern void _ZN5cc7223barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd37223fooEv,_ZTv0_n12_N6dd37223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37223fooEv,_ZThn16_N6dd37223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd3722[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3722[0]),
+ (VTBL_ENTRY)&_ZN6dd37223fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37223fooEv,_ZTv0_n16_N6dd37223fooEv),
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37223fooEv,_ZTv0_n12_N6dd37223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+extern VTBL_ENTRY _ZTV6dd3722[];
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc722__6dd3722[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc722__6dd3722[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+static VTT_ENTRY vtt_dd3722[] = {
+ {&(_ZTV6dd3722[4]), 4,18},
+ {&(_ZTV6dd3722[10]), 10,18},
+ {&(_ZTV6dd3722[16]), 16,18},
+ {&(_tg__ZTV5cc722__6dd3722[3]), 3,5},
+ {&(_tg__ZTV4bb22__5cc722__6dd3722[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd3722[];
+extern VTBL_ENTRY _ZTV6dd3722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3722[];
+static VTBL_ENTRY alt_thunk_names1271[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37223fooEv,_ZTv0_n12_N6dd37223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37223fooEv,_ZThn16_N6dd37223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37223fooEv,_ZTv0_n16_N6dd37223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37223fooEv,_ZThn8_N6dd37223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3722 = { "dd3722", // class name
+ bases_dd3722, 3,
+ &(vtc_dd3722[0]), // expected_vtbl_contents
+ &(vtt_dd3722[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd3722),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3722),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3722),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1271,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03722 : dd3722 {
+ int e;
+ ~ee03722(); // tgen
+ ee03722(); // tgen
+};
+//SIG(1 ee03722) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee03722 ::~ee03722(){ note_dtor("ee03722", this);} // tgen
+ee03722 ::ee03722(){ note_ctor("ee03722", this);} // tgen
+
+static void Test_ee03722()
+{
+ extern Class_Descriptor cd_ee03722;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee03722, buf);
+ ee03722 *dp, &lv = *(dp=new (buf) ee03722());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee03722)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03722)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee03722");
+ check_base_class_offset(lv, (bb22*)(cc722*), ABISELECT(32,20), "ee03722");
+ check_base_class_offset(lv, (cc722*)(dd3722*), ABISELECT(16,12), "ee03722");
+ check_base_class_offset(lv, (dd3722*), 0, "ee03722");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03722.e");
+ test_class_info(&lv, &cd_ee03722);
+ dp->~ee03722();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03722(Test_ee03722, "ee03722", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee03722C1Ev();
+extern void _ZN7ee03722D1Ev();
+Name_Map name_map_ee03722[] = {
+ NSPAIR(_ZN7ee03722C1Ev),
+ NSPAIR(_ZN7ee03722D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc722;
+extern VTBL_ENTRY _ZTI5cc722[];
+extern VTBL_ENTRY _ZTV5cc722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc722[];
+extern Class_Descriptor cd_dd3722;
+extern VTBL_ENTRY _ZTI6dd3722[];
+extern VTBL_ENTRY _ZTV6dd3722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3722[];
+static Base_Class bases_ee03722[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc722, 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_dd3722, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03722[];
+extern void _ZN6dd37223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd37223fooEv,_ZTv0_n16_N6dd37223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37223fooEv,_ZThn12_N6dd37223fooEv)() __attribute__((weak));
+extern void _ZN5cc7223barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd37223fooEv,_ZTv0_n12_N6dd37223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37223fooEv,_ZThn20_N6dd37223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee03722[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03722[0]),
+ (VTBL_ENTRY)&_ZN6dd37223fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37223fooEv,_ZTv0_n16_N6dd37223fooEv),
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee03722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37223fooEv,_ZTv0_n12_N6dd37223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee03722[];
+extern void _ZN6dd37223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3722__7ee03722[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3722[0]),
+ (VTBL_ENTRY)&_ZN6dd37223fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd37223fooEv,_ZTv0_n16_N6dd37223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37223fooEv,_ZThn12_N6dd37223fooEv)() __attribute__((weak));
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc722__6dd3722__7ee03722[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37223fooEv,_ZTv0_n16_N6dd37223fooEv),
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd37223fooEv,_ZTv0_n12_N6dd37223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37223fooEv,_ZThn20_N6dd37223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd3722__7ee03722[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37223fooEv,_ZTv0_n12_N6dd37223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc722__7ee03722[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc722__7ee03722[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+static VTT_ENTRY vtt_ee03722[] = {
+ {&(_ZTV7ee03722[4]), 4,18},
+ {&(_tg__ZTV6dd3722__7ee03722[4]), 4,5},
+ {&(_tg__ZTV5cc722__6dd3722__7ee03722[5]), 5,7},
+ {&(_tg__ZTV4bb22__6dd3722__7ee03722[4]), 4,6},
+ {&(_ZTV7ee03722[10]), 10,18},
+ {&(_ZTV7ee03722[16]), 16,18},
+ {&(_tg__ZTV5cc722__7ee03722[3]), 3,5},
+ {&(_tg__ZTV4bb22__5cc722__7ee03722[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee03722[];
+extern VTBL_ENTRY _ZTV7ee03722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03722[];
+static VTBL_ENTRY alt_thunk_names1272[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37223fooEv,_ZTv0_n12_N6dd37223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37223fooEv,_ZThn20_N6dd37223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37223fooEv,_ZThn20_N6dd37223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37223fooEv,_ZTv0_n16_N6dd37223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37223fooEv,_ZThn12_N6dd37223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37223fooEv,_ZThn12_N6dd37223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03722 = { "ee03722", // class name
+ bases_ee03722, 4,
+ &(vtc_ee03722[0]), // expected_vtbl_contents
+ &(vtt_ee03722[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee03722),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03722),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03722),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1272,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee13722 : virtual dd3722 {
+ int e;
+ ~ee13722(); // tgen
+ ee13722(); // tgen
+};
+//SIG(1 ee13722) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee13722 ::~ee13722(){ note_dtor("ee13722", this);} // tgen
+ee13722 ::ee13722(){ note_ctor("ee13722", this);} // tgen
+
+static void Test_ee13722()
+{
+ extern Class_Descriptor cd_ee13722;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee13722, buf);
+ ee13722 *dp, &lv = *(dp=new (buf) ee13722());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee13722)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13722)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(48,24), "ee13722");
+ check_base_class_offset(lv, (bb22*)(cc722*), ABISELECT(48,24), "ee13722");
+ check_base_class_offset(lv, (cc722*)(dd3722*), ABISELECT(32,16), "ee13722");
+ check_base_class_offset(lv, (dd3722*), ABISELECT(16,8), "ee13722");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13722.e");
+ test_class_info(&lv, &cd_ee13722);
+ dp->~ee13722();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13722(Test_ee13722, "ee13722", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee13722C1Ev();
+extern void _ZN7ee13722D1Ev();
+Name_Map name_map_ee13722[] = {
+ NSPAIR(_ZN7ee13722C1Ev),
+ NSPAIR(_ZN7ee13722D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc722;
+extern VTBL_ENTRY _ZTI5cc722[];
+extern VTBL_ENTRY _ZTV5cc722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc722[];
+extern Class_Descriptor cd_dd3722;
+extern VTBL_ENTRY _ZTI6dd3722[];
+extern VTBL_ENTRY _ZTV6dd3722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3722[];
+static Base_Class bases_ee13722[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb22, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc722, 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_dd3722, 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 _ZTI7ee13722[];
+extern void _ZN6dd37223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd37223fooEv,_ZTv0_n16_N6dd37223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37223fooEv,_ZThn8_N6dd37223fooEv)() __attribute__((weak));
+extern void _ZN5cc7223barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd37223fooEv,_ZTv0_n12_N6dd37223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37223fooEv,_ZThn16_N6dd37223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee13722[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13722[0]),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13722[0]),
+ (VTBL_ENTRY)&_ZN6dd37223fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37223fooEv,_ZTv0_n16_N6dd37223fooEv),
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee13722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37223fooEv,_ZTv0_n12_N6dd37223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee13722[];
+extern void _ZN6dd37223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3722__7ee13722[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3722[0]),
+ (VTBL_ENTRY)&_ZN6dd37223fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd37223fooEv,_ZTv0_n16_N6dd37223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37223fooEv,_ZThn8_N6dd37223fooEv)() __attribute__((weak));
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc722__6dd3722__7ee13722[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37223fooEv,_ZTv0_n16_N6dd37223fooEv),
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd37223fooEv,_ZTv0_n12_N6dd37223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37223fooEv,_ZThn16_N6dd37223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd3722__7ee13722[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37223fooEv,_ZTv0_n12_N6dd37223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc722__7ee13722[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc722__7ee13722[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+static VTT_ENTRY vtt_ee13722[] = {
+ {&(_ZTV7ee13722[5]), 5,24},
+ {&(_ZTV7ee13722[10]), 10,24},
+ {&(_ZTV7ee13722[16]), 16,24},
+ {&(_ZTV7ee13722[22]), 22,24},
+ {&(_tg__ZTV6dd3722__7ee13722[4]), 4,5},
+ {&(_tg__ZTV5cc722__6dd3722__7ee13722[5]), 5,7},
+ {&(_tg__ZTV4bb22__6dd3722__7ee13722[4]), 4,6},
+ {&(_tg__ZTV5cc722__7ee13722[3]), 3,5},
+ {&(_tg__ZTV4bb22__5cc722__7ee13722[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee13722[];
+extern VTBL_ENTRY _ZTV7ee13722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13722[];
+static VTBL_ENTRY alt_thunk_names1273[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37223fooEv,_ZTv0_n12_N6dd37223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37223fooEv,_ZThn16_N6dd37223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37223fooEv,_ZThn16_N6dd37223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37223fooEv,_ZTv0_n16_N6dd37223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37223fooEv,_ZThn8_N6dd37223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37223fooEv,_ZThn8_N6dd37223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13722 = { "ee13722", // class name
+ bases_ee13722, 4,
+ &(vtc_ee13722[0]), // expected_vtbl_contents
+ &(vtt_ee13722[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee13722),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13722),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13722),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1273,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee23722 : dd3722 {
+ int e;
+ virtual void foo(); // _ZN7ee237223fooEv
+ ~ee23722(); // tgen
+ ee23722(); // tgen
+};
+//SIG(1 ee23722) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee23722 ::foo(){vfunc_called(this, "_ZN7ee237223fooEv");}
+ee23722 ::~ee23722(){ note_dtor("ee23722", this);} // tgen
+ee23722 ::ee23722(){ note_ctor("ee23722", this);} // tgen
+
+static void Test_ee23722()
+{
+ extern Class_Descriptor cd_ee23722;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee23722, buf);
+ ee23722 *dp, &lv = *(dp=new (buf) ee23722());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee23722)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23722)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee23722");
+ check_base_class_offset(lv, (bb22*)(cc722*), ABISELECT(32,20), "ee23722");
+ check_base_class_offset(lv, (cc722*)(dd3722*), ABISELECT(16,12), "ee23722");
+ check_base_class_offset(lv, (dd3722*), 0, "ee23722");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23722.e");
+ test_class_info(&lv, &cd_ee23722);
+ dp->~ee23722();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23722(Test_ee23722, "ee23722", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee23722C1Ev();
+extern void _ZN7ee23722D1Ev();
+Name_Map name_map_ee23722[] = {
+ NSPAIR(_ZN7ee23722C1Ev),
+ NSPAIR(_ZN7ee23722D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc722;
+extern VTBL_ENTRY _ZTI5cc722[];
+extern VTBL_ENTRY _ZTV5cc722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc722[];
+extern Class_Descriptor cd_dd3722;
+extern VTBL_ENTRY _ZTI6dd3722[];
+extern VTBL_ENTRY _ZTV6dd3722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3722[];
+static Base_Class bases_ee23722[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc722, 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_dd3722, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23722[];
+extern void _ZN7ee237223fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee237223fooEv,_ZTv0_n16_N7ee237223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee237223fooEv,_ZThn12_N7ee237223fooEv)() __attribute__((weak));
+extern void _ZN5cc7223barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee237223fooEv,_ZTv0_n12_N7ee237223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee237223fooEv,_ZThn20_N7ee237223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee23722[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23722[0]),
+ (VTBL_ENTRY)&_ZN7ee237223fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee237223fooEv,_ZTv0_n16_N7ee237223fooEv),
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee23722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee237223fooEv,_ZTv0_n12_N7ee237223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee23722[];
+extern void _ZN6dd37223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3722__7ee23722[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3722[0]),
+ (VTBL_ENTRY)&_ZN6dd37223fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd37223fooEv,_ZTv0_n16_N6dd37223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37223fooEv,_ZThn12_N6dd37223fooEv)() __attribute__((weak));
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc722__6dd3722__7ee23722[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37223fooEv,_ZTv0_n16_N6dd37223fooEv),
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd37223fooEv,_ZTv0_n12_N6dd37223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37223fooEv,_ZThn20_N6dd37223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd3722__7ee23722[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37223fooEv,_ZTv0_n12_N6dd37223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc722__7ee23722[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc722__7ee23722[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+static VTT_ENTRY vtt_ee23722[] = {
+ {&(_ZTV7ee23722[4]), 4,18},
+ {&(_tg__ZTV6dd3722__7ee23722[4]), 4,5},
+ {&(_tg__ZTV5cc722__6dd3722__7ee23722[5]), 5,7},
+ {&(_tg__ZTV4bb22__6dd3722__7ee23722[4]), 4,6},
+ {&(_ZTV7ee23722[10]), 10,18},
+ {&(_ZTV7ee23722[16]), 16,18},
+ {&(_tg__ZTV5cc722__7ee23722[3]), 3,5},
+ {&(_tg__ZTV4bb22__5cc722__7ee23722[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee23722[];
+extern VTBL_ENTRY _ZTV7ee23722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23722[];
+static VTBL_ENTRY alt_thunk_names1274[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37223fooEv,_ZTv0_n12_N6dd37223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37223fooEv,_ZThn20_N6dd37223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37223fooEv,_ZTv0_n16_N6dd37223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37223fooEv,_ZThn12_N6dd37223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee237223fooEv,_ZTv0_n12_N7ee237223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee237223fooEv,_ZThn20_N7ee237223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee237223fooEv,_ZTv0_n16_N7ee237223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee237223fooEv,_ZThn12_N7ee237223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23722 = { "ee23722", // class name
+ bases_ee23722, 4,
+ &(vtc_ee23722[0]), // expected_vtbl_contents
+ &(vtt_ee23722[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee23722),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23722),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23722),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1274,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee33722 : virtual dd3722 {
+ int e;
+ virtual void foo(); // _ZN7ee337223fooEv
+ ~ee33722(); // tgen
+ ee33722(); // tgen
+};
+//SIG(1 ee33722) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee33722 ::foo(){vfunc_called(this, "_ZN7ee337223fooEv");}
+ee33722 ::~ee33722(){ note_dtor("ee33722", this);} // tgen
+ee33722 ::ee33722(){ note_ctor("ee33722", this);} // tgen
+
+static void Test_ee33722()
+{
+ extern Class_Descriptor cd_ee33722;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee33722, buf);
+ ee33722 *dp, &lv = *(dp=new (buf) ee33722());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee33722)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33722)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(48,24), "ee33722");
+ check_base_class_offset(lv, (bb22*)(cc722*), ABISELECT(48,24), "ee33722");
+ check_base_class_offset(lv, (cc722*)(dd3722*), ABISELECT(32,16), "ee33722");
+ check_base_class_offset(lv, (dd3722*), ABISELECT(16,8), "ee33722");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33722.e");
+ test_class_info(&lv, &cd_ee33722);
+ dp->~ee33722();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33722(Test_ee33722, "ee33722", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee33722C1Ev();
+extern void _ZN7ee33722D1Ev();
+Name_Map name_map_ee33722[] = {
+ NSPAIR(_ZN7ee33722C1Ev),
+ NSPAIR(_ZN7ee33722D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc722;
+extern VTBL_ENTRY _ZTI5cc722[];
+extern VTBL_ENTRY _ZTV5cc722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc722[];
+extern Class_Descriptor cd_dd3722;
+extern VTBL_ENTRY _ZTI6dd3722[];
+extern VTBL_ENTRY _ZTV6dd3722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3722[];
+static Base_Class bases_ee33722[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb22, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc722, 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_dd3722, ABISELECT(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 _ZTI7ee33722[];
+extern void _ZN7ee337223fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee337223fooEv,_ZTv0_n20_N7ee337223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee337223fooEv,_ZThn8_N7ee337223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee337223fooEv,_ZTv0_n16_N7ee337223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee337223fooEv,_ZThn16_N7ee337223fooEv)() __attribute__((weak));
+extern void _ZN5cc7223barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee337223fooEv,_ZTv0_n12_N7ee337223fooEv)();
+extern void ABISELECT(_ZThn48_N7ee337223fooEv,_ZThn24_N7ee337223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee33722[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33722[0]),
+ (VTBL_ENTRY)&_ZN7ee337223fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee337223fooEv,_ZTv0_n20_N7ee337223fooEv),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee337223fooEv,_ZTv0_n16_N7ee337223fooEv),
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee33722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee337223fooEv,_ZTv0_n12_N7ee337223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee33722[];
+extern void _ZN6dd37223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3722__7ee33722[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3722[0]),
+ (VTBL_ENTRY)&_ZN6dd37223fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd37223fooEv,_ZTv0_n16_N6dd37223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37223fooEv,_ZThn8_N6dd37223fooEv)() __attribute__((weak));
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc722__6dd3722__7ee33722[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37223fooEv,_ZTv0_n16_N6dd37223fooEv),
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd37223fooEv,_ZTv0_n12_N6dd37223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37223fooEv,_ZThn16_N6dd37223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd3722__7ee33722[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37223fooEv,_ZTv0_n12_N6dd37223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc722__7ee33722[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc722__7ee33722[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+static VTT_ENTRY vtt_ee33722[] = {
+ {&(_ZTV7ee33722[5]), 5,25},
+ {&(_ZTV7ee33722[11]), 11,25},
+ {&(_ZTV7ee33722[17]), 17,25},
+ {&(_ZTV7ee33722[23]), 23,25},
+ {&(_tg__ZTV6dd3722__7ee33722[4]), 4,5},
+ {&(_tg__ZTV5cc722__6dd3722__7ee33722[5]), 5,7},
+ {&(_tg__ZTV4bb22__6dd3722__7ee33722[4]), 4,6},
+ {&(_tg__ZTV5cc722__7ee33722[3]), 3,5},
+ {&(_tg__ZTV4bb22__5cc722__7ee33722[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee33722[];
+extern VTBL_ENTRY _ZTV7ee33722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33722[];
+static VTBL_ENTRY alt_thunk_names1275[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37223fooEv,_ZTv0_n12_N6dd37223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37223fooEv,_ZThn16_N6dd37223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37223fooEv,_ZTv0_n16_N6dd37223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37223fooEv,_ZThn8_N6dd37223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee337223fooEv,_ZTv0_n12_N7ee337223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee337223fooEv,_ZThn24_N7ee337223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee337223fooEv,_ZTv0_n16_N7ee337223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee337223fooEv,_ZThn16_N7ee337223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee337223fooEv,_ZTv0_n20_N7ee337223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee337223fooEv,_ZThn8_N7ee337223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33722 = { "ee33722", // class name
+ bases_ee33722, 4,
+ &(vtc_ee33722[0]), // expected_vtbl_contents
+ &(vtt_ee33722[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee33722),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33722),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33722),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1275,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee43722 : dd3722 {
+ int e;
+ virtual void bar(); // _ZN7ee437223barEv
+ ~ee43722(); // tgen
+ ee43722(); // tgen
+};
+//SIG(1 ee43722) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee43722 ::bar(){vfunc_called(this, "_ZN7ee437223barEv");}
+ee43722 ::~ee43722(){ note_dtor("ee43722", this);} // tgen
+ee43722 ::ee43722(){ note_ctor("ee43722", this);} // tgen
+
+static void Test_ee43722()
+{
+ extern Class_Descriptor cd_ee43722;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee43722, buf);
+ ee43722 *dp, &lv = *(dp=new (buf) ee43722());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee43722)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43722)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee43722");
+ check_base_class_offset(lv, (bb22*)(cc722*), ABISELECT(32,20), "ee43722");
+ check_base_class_offset(lv, (cc722*)(dd3722*), ABISELECT(16,12), "ee43722");
+ check_base_class_offset(lv, (dd3722*), 0, "ee43722");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43722.e");
+ test_class_info(&lv, &cd_ee43722);
+ dp->~ee43722();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43722(Test_ee43722, "ee43722", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee43722C1Ev();
+extern void _ZN7ee43722D1Ev();
+Name_Map name_map_ee43722[] = {
+ NSPAIR(_ZN7ee43722C1Ev),
+ NSPAIR(_ZN7ee43722D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc722;
+extern VTBL_ENTRY _ZTI5cc722[];
+extern VTBL_ENTRY _ZTV5cc722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc722[];
+extern Class_Descriptor cd_dd3722;
+extern VTBL_ENTRY _ZTI6dd3722[];
+extern VTBL_ENTRY _ZTV6dd3722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3722[];
+static Base_Class bases_ee43722[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc722, 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_dd3722, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43722[];
+extern void _ZN6dd37223fooEv();
+extern void _ZN7ee437223barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd37223fooEv,_ZTv0_n16_N6dd37223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37223fooEv,_ZThn12_N6dd37223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee437223barEv,_ZTv0_n20_N7ee437223barEv)();
+extern void ABISELECT(_ZThn16_N7ee437223barEv,_ZThn12_N7ee437223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd37223fooEv,_ZTv0_n12_N6dd37223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37223fooEv,_ZThn20_N6dd37223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee437223barEv,_ZTv0_n16_N7ee437223barEv)();
+extern void ABISELECT(_ZThn32_N7ee437223barEv,_ZThn20_N7ee437223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43722[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43722[0]),
+ (VTBL_ENTRY)&_ZN6dd37223fooEv,
+ (VTBL_ENTRY)&_ZN7ee437223barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37223fooEv,_ZTv0_n16_N6dd37223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee437223barEv,_ZTv0_n20_N7ee437223barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee43722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37223fooEv,_ZTv0_n12_N6dd37223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee437223barEv,_ZTv0_n16_N7ee437223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee43722[];
+extern void _ZN6dd37223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3722__7ee43722[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3722[0]),
+ (VTBL_ENTRY)&_ZN6dd37223fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd37223fooEv,_ZTv0_n16_N6dd37223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37223fooEv,_ZThn12_N6dd37223fooEv)() __attribute__((weak));
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc722__6dd3722__7ee43722[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37223fooEv,_ZTv0_n16_N6dd37223fooEv),
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd37223fooEv,_ZTv0_n12_N6dd37223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37223fooEv,_ZThn20_N6dd37223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd3722__7ee43722[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37223fooEv,_ZTv0_n12_N6dd37223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc722__7ee43722[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc722__7ee43722[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+static VTT_ENTRY vtt_ee43722[] = {
+ {&(_ZTV7ee43722[4]), 4,19},
+ {&(_tg__ZTV6dd3722__7ee43722[4]), 4,5},
+ {&(_tg__ZTV5cc722__6dd3722__7ee43722[5]), 5,7},
+ {&(_tg__ZTV4bb22__6dd3722__7ee43722[4]), 4,6},
+ {&(_ZTV7ee43722[11]), 11,19},
+ {&(_ZTV7ee43722[17]), 17,19},
+ {&(_tg__ZTV5cc722__7ee43722[3]), 3,5},
+ {&(_tg__ZTV4bb22__5cc722__7ee43722[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee43722[];
+extern VTBL_ENTRY _ZTV7ee43722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43722[];
+static VTBL_ENTRY alt_thunk_names1276[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee437223barEv,_ZTv0_n16_N7ee437223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee437223barEv,_ZThn20_N7ee437223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37223fooEv,_ZTv0_n12_N6dd37223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37223fooEv,_ZThn20_N6dd37223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37223fooEv,_ZThn20_N6dd37223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee437223barEv,_ZTv0_n20_N7ee437223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee437223barEv,_ZThn12_N7ee437223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37223fooEv,_ZTv0_n16_N6dd37223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37223fooEv,_ZThn12_N6dd37223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37223fooEv,_ZThn12_N6dd37223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43722 = { "ee43722", // class name
+ bases_ee43722, 4,
+ &(vtc_ee43722[0]), // expected_vtbl_contents
+ &(vtt_ee43722[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee43722),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43722),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43722),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1276,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee53722 : virtual dd3722 {
+ int e;
+ virtual void bar(); // _ZN7ee537223barEv
+ ~ee53722(); // tgen
+ ee53722(); // tgen
+};
+//SIG(1 ee53722) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee53722 ::bar(){vfunc_called(this, "_ZN7ee537223barEv");}
+ee53722 ::~ee53722(){ note_dtor("ee53722", this);} // tgen
+ee53722 ::ee53722(){ note_ctor("ee53722", this);} // tgen
+
+static void Test_ee53722()
+{
+ extern Class_Descriptor cd_ee53722;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee53722, buf);
+ ee53722 *dp, &lv = *(dp=new (buf) ee53722());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee53722)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53722)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(48,24), "ee53722");
+ check_base_class_offset(lv, (bb22*)(cc722*), ABISELECT(48,24), "ee53722");
+ check_base_class_offset(lv, (cc722*)(dd3722*), ABISELECT(32,16), "ee53722");
+ check_base_class_offset(lv, (dd3722*), ABISELECT(16,8), "ee53722");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53722.e");
+ test_class_info(&lv, &cd_ee53722);
+ dp->~ee53722();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53722(Test_ee53722, "ee53722", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee53722C1Ev();
+extern void _ZN7ee53722D1Ev();
+Name_Map name_map_ee53722[] = {
+ NSPAIR(_ZN7ee53722C1Ev),
+ NSPAIR(_ZN7ee53722D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc722;
+extern VTBL_ENTRY _ZTI5cc722[];
+extern VTBL_ENTRY _ZTV5cc722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc722[];
+extern Class_Descriptor cd_dd3722;
+extern VTBL_ENTRY _ZTI6dd3722[];
+extern VTBL_ENTRY _ZTV6dd3722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3722[];
+static Base_Class bases_ee53722[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb22, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc722, 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_dd3722, ABISELECT(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 _ZTI7ee53722[];
+extern void _ZN7ee537223barEv();
+extern void _ZN6dd37223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd37223fooEv,_ZTv0_n16_N6dd37223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37223fooEv,_ZThn8_N6dd37223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee537223barEv,_ZTv0_n20_N7ee537223barEv)();
+extern void ABISELECT(_ZThn32_N7ee537223barEv,_ZThn16_N7ee537223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd37223fooEv,_ZTv0_n12_N6dd37223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37223fooEv,_ZThn16_N6dd37223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee537223barEv,_ZTv0_n16_N7ee537223barEv)();
+extern void ABISELECT(_ZThn48_N7ee537223barEv,_ZThn24_N7ee537223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53722[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53722[0]),
+ (VTBL_ENTRY)&_ZN7ee537223barEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53722[0]),
+ (VTBL_ENTRY)&_ZN6dd37223fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37223fooEv,_ZTv0_n16_N6dd37223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee537223barEv,_ZTv0_n20_N7ee537223barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee53722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37223fooEv,_ZTv0_n12_N6dd37223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee537223barEv,_ZTv0_n16_N7ee537223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee53722[];
+extern void _ZN6dd37223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3722__7ee53722[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3722[0]),
+ (VTBL_ENTRY)&_ZN6dd37223fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd37223fooEv,_ZTv0_n16_N6dd37223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37223fooEv,_ZThn8_N6dd37223fooEv)() __attribute__((weak));
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc722__6dd3722__7ee53722[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37223fooEv,_ZTv0_n16_N6dd37223fooEv),
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd37223fooEv,_ZTv0_n12_N6dd37223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37223fooEv,_ZThn16_N6dd37223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd3722__7ee53722[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37223fooEv,_ZTv0_n12_N6dd37223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc722__7ee53722[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc722__7ee53722[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+static VTT_ENTRY vtt_ee53722[] = {
+ {&(_ZTV7ee53722[5]), 5,25},
+ {&(_ZTV7ee53722[11]), 11,25},
+ {&(_ZTV7ee53722[17]), 17,25},
+ {&(_ZTV7ee53722[23]), 23,25},
+ {&(_tg__ZTV6dd3722__7ee53722[4]), 4,5},
+ {&(_tg__ZTV5cc722__6dd3722__7ee53722[5]), 5,7},
+ {&(_tg__ZTV4bb22__6dd3722__7ee53722[4]), 4,6},
+ {&(_tg__ZTV5cc722__7ee53722[3]), 3,5},
+ {&(_tg__ZTV4bb22__5cc722__7ee53722[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee53722[];
+extern VTBL_ENTRY _ZTV7ee53722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53722[];
+static VTBL_ENTRY alt_thunk_names1277[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee537223barEv,_ZTv0_n16_N7ee537223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee537223barEv,_ZThn24_N7ee537223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37223fooEv,_ZTv0_n12_N6dd37223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37223fooEv,_ZThn16_N6dd37223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37223fooEv,_ZThn16_N6dd37223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee537223barEv,_ZTv0_n20_N7ee537223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee537223barEv,_ZThn16_N7ee537223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37223fooEv,_ZTv0_n16_N6dd37223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37223fooEv,_ZThn8_N6dd37223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37223fooEv,_ZThn8_N6dd37223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53722 = { "ee53722", // class name
+ bases_ee53722, 4,
+ &(vtc_ee53722[0]), // expected_vtbl_contents
+ &(vtt_ee53722[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee53722),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53722),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53722),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1277,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee63722 : dd3722 {
+ int e;
+ virtual void foo(); // _ZN7ee637223fooEv
+ virtual void bar(); // _ZN7ee637223barEv
+ ~ee63722(); // tgen
+ ee63722(); // tgen
+};
+//SIG(1 ee63722) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63722 ::foo(){vfunc_called(this, "_ZN7ee637223fooEv");}
+void ee63722 ::bar(){vfunc_called(this, "_ZN7ee637223barEv");}
+ee63722 ::~ee63722(){ note_dtor("ee63722", this);} // tgen
+ee63722 ::ee63722(){ note_ctor("ee63722", this);} // tgen
+
+static void Test_ee63722()
+{
+ extern Class_Descriptor cd_ee63722;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee63722, buf);
+ ee63722 *dp, &lv = *(dp=new (buf) ee63722());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee63722)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63722)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee63722");
+ check_base_class_offset(lv, (bb22*)(cc722*), ABISELECT(32,20), "ee63722");
+ check_base_class_offset(lv, (cc722*)(dd3722*), ABISELECT(16,12), "ee63722");
+ check_base_class_offset(lv, (dd3722*), 0, "ee63722");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63722.e");
+ test_class_info(&lv, &cd_ee63722);
+ dp->~ee63722();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63722(Test_ee63722, "ee63722", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee63722C1Ev();
+extern void _ZN7ee63722D1Ev();
+Name_Map name_map_ee63722[] = {
+ NSPAIR(_ZN7ee63722C1Ev),
+ NSPAIR(_ZN7ee63722D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc722;
+extern VTBL_ENTRY _ZTI5cc722[];
+extern VTBL_ENTRY _ZTV5cc722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc722[];
+extern Class_Descriptor cd_dd3722;
+extern VTBL_ENTRY _ZTI6dd3722[];
+extern VTBL_ENTRY _ZTV6dd3722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3722[];
+static Base_Class bases_ee63722[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc722, 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_dd3722, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63722[];
+extern void _ZN7ee637223fooEv();
+extern void _ZN7ee637223barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee637223fooEv,_ZTv0_n16_N7ee637223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee637223fooEv,_ZThn12_N7ee637223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee637223barEv,_ZTv0_n20_N7ee637223barEv)();
+extern void ABISELECT(_ZThn16_N7ee637223barEv,_ZThn12_N7ee637223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee637223fooEv,_ZTv0_n12_N7ee637223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee637223fooEv,_ZThn20_N7ee637223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee637223barEv,_ZTv0_n16_N7ee637223barEv)();
+extern void ABISELECT(_ZThn32_N7ee637223barEv,_ZThn20_N7ee637223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63722[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63722[0]),
+ (VTBL_ENTRY)&_ZN7ee637223fooEv,
+ (VTBL_ENTRY)&_ZN7ee637223barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee637223fooEv,_ZTv0_n16_N7ee637223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee637223barEv,_ZTv0_n20_N7ee637223barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee63722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee637223fooEv,_ZTv0_n12_N7ee637223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee637223barEv,_ZTv0_n16_N7ee637223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee63722[];
+extern void _ZN6dd37223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3722__7ee63722[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3722[0]),
+ (VTBL_ENTRY)&_ZN6dd37223fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd37223fooEv,_ZTv0_n16_N6dd37223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37223fooEv,_ZThn12_N6dd37223fooEv)() __attribute__((weak));
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc722__6dd3722__7ee63722[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37223fooEv,_ZTv0_n16_N6dd37223fooEv),
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd37223fooEv,_ZTv0_n12_N6dd37223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37223fooEv,_ZThn20_N6dd37223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd3722__7ee63722[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37223fooEv,_ZTv0_n12_N6dd37223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc722__7ee63722[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc722__7ee63722[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+static VTT_ENTRY vtt_ee63722[] = {
+ {&(_ZTV7ee63722[4]), 4,19},
+ {&(_tg__ZTV6dd3722__7ee63722[4]), 4,5},
+ {&(_tg__ZTV5cc722__6dd3722__7ee63722[5]), 5,7},
+ {&(_tg__ZTV4bb22__6dd3722__7ee63722[4]), 4,6},
+ {&(_ZTV7ee63722[11]), 11,19},
+ {&(_ZTV7ee63722[17]), 17,19},
+ {&(_tg__ZTV5cc722__7ee63722[3]), 3,5},
+ {&(_tg__ZTV4bb22__5cc722__7ee63722[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee63722[];
+extern VTBL_ENTRY _ZTV7ee63722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63722[];
+static VTBL_ENTRY alt_thunk_names1278[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37223fooEv,_ZTv0_n12_N6dd37223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37223fooEv,_ZThn20_N6dd37223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37223fooEv,_ZTv0_n16_N6dd37223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37223fooEv,_ZThn12_N6dd37223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee637223barEv,_ZTv0_n16_N7ee637223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee637223barEv,_ZThn20_N7ee637223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee637223fooEv,_ZTv0_n12_N7ee637223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee637223fooEv,_ZThn20_N7ee637223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee637223barEv,_ZTv0_n20_N7ee637223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee637223barEv,_ZThn12_N7ee637223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee637223fooEv,_ZTv0_n16_N7ee637223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee637223fooEv,_ZThn12_N7ee637223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63722 = { "ee63722", // class name
+ bases_ee63722, 4,
+ &(vtc_ee63722[0]), // expected_vtbl_contents
+ &(vtt_ee63722[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee63722),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63722),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63722),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1278,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee73722 : virtual dd3722 {
+ int e;
+ virtual void foo(); // _ZN7ee737223fooEv
+ virtual void bar(); // _ZN7ee737223barEv
+ ~ee73722(); // tgen
+ ee73722(); // tgen
+};
+//SIG(1 ee73722) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73722 ::foo(){vfunc_called(this, "_ZN7ee737223fooEv");}
+void ee73722 ::bar(){vfunc_called(this, "_ZN7ee737223barEv");}
+ee73722 ::~ee73722(){ note_dtor("ee73722", this);} // tgen
+ee73722 ::ee73722(){ note_ctor("ee73722", this);} // tgen
+
+static void Test_ee73722()
+{
+ extern Class_Descriptor cd_ee73722;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee73722, buf);
+ ee73722 *dp, &lv = *(dp=new (buf) ee73722());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee73722)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73722)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(48,24), "ee73722");
+ check_base_class_offset(lv, (bb22*)(cc722*), ABISELECT(48,24), "ee73722");
+ check_base_class_offset(lv, (cc722*)(dd3722*), ABISELECT(32,16), "ee73722");
+ check_base_class_offset(lv, (dd3722*), ABISELECT(16,8), "ee73722");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73722.e");
+ test_class_info(&lv, &cd_ee73722);
+ dp->~ee73722();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73722(Test_ee73722, "ee73722", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee73722C1Ev();
+extern void _ZN7ee73722D1Ev();
+Name_Map name_map_ee73722[] = {
+ NSPAIR(_ZN7ee73722C1Ev),
+ NSPAIR(_ZN7ee73722D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc722;
+extern VTBL_ENTRY _ZTI5cc722[];
+extern VTBL_ENTRY _ZTV5cc722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc722[];
+extern Class_Descriptor cd_dd3722;
+extern VTBL_ENTRY _ZTI6dd3722[];
+extern VTBL_ENTRY _ZTV6dd3722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3722[];
+static Base_Class bases_ee73722[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb22, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc722, 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_dd3722, 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 _ZTI7ee73722[];
+extern void _ZN7ee737223fooEv();
+extern void _ZN7ee737223barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee737223fooEv,_ZTv0_n20_N7ee737223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee737223fooEv,_ZThn8_N7ee737223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee737223fooEv,_ZTv0_n16_N7ee737223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee737223fooEv,_ZThn16_N7ee737223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee737223barEv,_ZTv0_n20_N7ee737223barEv)();
+extern void ABISELECT(_ZThn32_N7ee737223barEv,_ZThn16_N7ee737223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee737223fooEv,_ZTv0_n12_N7ee737223fooEv)();
+extern void ABISELECT(_ZThn48_N7ee737223fooEv,_ZThn24_N7ee737223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee737223barEv,_ZTv0_n16_N7ee737223barEv)();
+extern void ABISELECT(_ZThn48_N7ee737223barEv,_ZThn24_N7ee737223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73722[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73722[0]),
+ (VTBL_ENTRY)&_ZN7ee737223fooEv,
+ (VTBL_ENTRY)&_ZN7ee737223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee737223fooEv,_ZTv0_n20_N7ee737223fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee737223fooEv,_ZTv0_n16_N7ee737223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee737223barEv,_ZTv0_n20_N7ee737223barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee73722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee737223fooEv,_ZTv0_n12_N7ee737223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee737223barEv,_ZTv0_n16_N7ee737223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee73722[];
+extern void _ZN6dd37223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3722__7ee73722[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3722[0]),
+ (VTBL_ENTRY)&_ZN6dd37223fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd37223fooEv,_ZTv0_n16_N6dd37223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37223fooEv,_ZThn8_N6dd37223fooEv)() __attribute__((weak));
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc722__6dd3722__7ee73722[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37223fooEv,_ZTv0_n16_N6dd37223fooEv),
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd37223fooEv,_ZTv0_n12_N6dd37223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37223fooEv,_ZThn16_N6dd37223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd3722__7ee73722[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37223fooEv,_ZTv0_n12_N6dd37223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc722__7ee73722[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc722__7ee73722[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+static VTT_ENTRY vtt_ee73722[] = {
+ {&(_ZTV7ee73722[5]), 5,26},
+ {&(_ZTV7ee73722[12]), 12,26},
+ {&(_ZTV7ee73722[18]), 18,26},
+ {&(_ZTV7ee73722[24]), 24,26},
+ {&(_tg__ZTV6dd3722__7ee73722[4]), 4,5},
+ {&(_tg__ZTV5cc722__6dd3722__7ee73722[5]), 5,7},
+ {&(_tg__ZTV4bb22__6dd3722__7ee73722[4]), 4,6},
+ {&(_tg__ZTV5cc722__7ee73722[3]), 3,5},
+ {&(_tg__ZTV4bb22__5cc722__7ee73722[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee73722[];
+extern VTBL_ENTRY _ZTV7ee73722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73722[];
+static VTBL_ENTRY alt_thunk_names1279[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37223fooEv,_ZTv0_n12_N6dd37223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37223fooEv,_ZThn16_N6dd37223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37223fooEv,_ZTv0_n16_N6dd37223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37223fooEv,_ZThn8_N6dd37223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee737223barEv,_ZTv0_n16_N7ee737223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee737223barEv,_ZThn24_N7ee737223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee737223fooEv,_ZTv0_n12_N7ee737223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee737223fooEv,_ZThn24_N7ee737223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee737223barEv,_ZTv0_n20_N7ee737223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee737223barEv,_ZThn16_N7ee737223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee737223fooEv,_ZTv0_n16_N7ee737223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee737223fooEv,_ZThn16_N7ee737223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee737223fooEv,_ZTv0_n20_N7ee737223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee737223fooEv,_ZThn8_N7ee737223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73722 = { "ee73722", // class name
+ bases_ee73722, 4,
+ &(vtc_ee73722[0]), // expected_vtbl_contents
+ &(vtt_ee73722[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee73722),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73722),26, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73722),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1279,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd4722 : cc722 {
+ int d;
+ virtual void bar(); // _ZN6dd47223barEv
+ ~dd4722(); // tgen
+ dd4722(); // tgen
+};
+//SIG(-1 dd4722) C1{ BC2{ VBC3{ BC4{ v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void dd4722 ::bar(){vfunc_called(this, "_ZN6dd47223barEv");}
+dd4722 ::~dd4722(){ note_dtor("dd4722", this);} // tgen
+dd4722 ::dd4722(){ note_ctor("dd4722", this);} // tgen
+
+static void Test_dd4722()
+{
+ extern Class_Descriptor cd_dd4722;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd4722, buf);
+ dd4722 *dp, &lv = *(dp=new (buf) dd4722());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd4722)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4722)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(16,12), "dd4722");
+ check_base_class_offset(lv, (bb22*)(cc722*), ABISELECT(16,12), "dd4722");
+ check_base_class_offset(lv, (cc722*), 0, "dd4722");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd4722.d");
+ test_class_info(&lv, &cd_dd4722);
+ dp->~dd4722();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4722(Test_dd4722, "dd4722", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd4722C1Ev();
+extern void _ZN6dd4722D1Ev();
+Name_Map name_map_dd4722[] = {
+ NSPAIR(_ZN6dd4722C1Ev),
+ NSPAIR(_ZN6dd4722D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc722;
+extern VTBL_ENTRY _ZTI5cc722[];
+extern VTBL_ENTRY _ZTV5cc722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc722[];
+static Base_Class bases_dd4722[] = {
+ // 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_bb22, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc722, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd4722[];
+extern void _ZN5cc7223fooEv();
+extern void _ZN6dd47223barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn12_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd47223barEv,_ZTv0_n16_N6dd47223barEv)();
+extern void ABISELECT(_ZThn16_N6dd47223barEv,_ZThn12_N6dd47223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd4722[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN6dd47223barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47223barEv,_ZTv0_n16_N6dd47223barEv),
+};
+extern VTBL_ENTRY _ZTV6dd4722[];
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc722__6dd4722[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn12_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn12_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc722__6dd4722[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+static VTT_ENTRY vtt_dd4722[] = {
+ {&(_ZTV6dd4722[3]), 3,11},
+ {&(_tg__ZTV5cc722__6dd4722[3]), 3,5},
+ {&(_tg__ZTV4bb22__5cc722__6dd4722[4]), 4,6},
+ {&(_ZTV6dd4722[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd4722[];
+extern VTBL_ENTRY _ZTV6dd4722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4722[];
+static VTBL_ENTRY alt_thunk_names1280[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn12_N5cc7223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd47223barEv,_ZTv0_n16_N6dd47223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd47223barEv,_ZThn12_N6dd47223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn12_N5cc7223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn12_N5cc7223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd4722 = { "dd4722", // class name
+ bases_dd4722, 3,
+ &(vtc_dd4722[0]), // expected_vtbl_contents
+ &(vtt_dd4722[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd4722),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4722),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd4722),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1280,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee04722 : dd4722 {
+ int e;
+ ~ee04722(); // tgen
+ ee04722(); // tgen
+};
+//SIG(1 ee04722) C1{ BC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee04722 ::~ee04722(){ note_dtor("ee04722", this);} // tgen
+ee04722 ::ee04722(){ note_ctor("ee04722", this);} // tgen
+
+static void Test_ee04722()
+{
+ extern Class_Descriptor cd_ee04722;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee04722, buf);
+ ee04722 *dp, &lv = *(dp=new (buf) ee04722());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee04722)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04722)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(24,16), "ee04722");
+ check_base_class_offset(lv, (bb22*)(cc722*)(dd4722*), ABISELECT(24,16), "ee04722");
+ check_base_class_offset(lv, (cc722*)(dd4722*), 0, "ee04722");
+ check_base_class_offset(lv, (dd4722*), 0, "ee04722");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee04722.e");
+ test_class_info(&lv, &cd_ee04722);
+ dp->~ee04722();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04722(Test_ee04722, "ee04722", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee04722C1Ev();
+extern void _ZN7ee04722D1Ev();
+Name_Map name_map_ee04722[] = {
+ NSPAIR(_ZN7ee04722C1Ev),
+ NSPAIR(_ZN7ee04722D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc722;
+extern VTBL_ENTRY _ZTI5cc722[];
+extern VTBL_ENTRY _ZTV5cc722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc722[];
+extern Class_Descriptor cd_dd4722;
+extern VTBL_ENTRY _ZTI6dd4722[];
+extern VTBL_ENTRY _ZTV6dd4722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4722[];
+static Base_Class bases_ee04722[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc722, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4722, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee04722[];
+extern void _ZN5cc7223fooEv();
+extern void _ZN6dd47223barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7223fooEv,_ZThn16_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd47223barEv,_ZTv0_n16_N6dd47223barEv)();
+extern void ABISELECT(_ZThn24_N6dd47223barEv,_ZThn16_N6dd47223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee04722[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN6dd47223barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee04722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47223barEv,_ZTv0_n16_N6dd47223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee04722[];
+extern void _ZN5cc7223fooEv();
+extern void _ZN6dd47223barEv();
+static VTBL_ENTRY _tg__ZTV6dd4722__7ee04722[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN6dd47223barEv,
+};
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc7226dd4722__7ee04722[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7223fooEv,_ZThn16_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn24_N5cc7223barEv,_ZThn16_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc7226dd4722__7ee04722[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7223fooEv,_ZThn16_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd47223barEv,_ZTv0_n16_N6dd47223barEv)();
+extern void ABISELECT(_ZThn24_N6dd47223barEv,_ZThn16_N6dd47223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd4722__7ee04722[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47223barEv,_ZTv0_n16_N6dd47223barEv),
+};
+static VTT_ENTRY vtt_ee04722[] = {
+ {&(_ZTV7ee04722[3]), 3,11},
+ {&(_tg__ZTV6dd4722__7ee04722[3]), 3,5},
+ {&(_tg__ZTV5cc7226dd4722__7ee04722[3]), 3,5},
+ {&(_tg__ZTV4bb22__5cc7226dd4722__7ee04722[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd4722__7ee04722[4]), 4,6},
+ {&(_ZTV7ee04722[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee04722[];
+extern VTBL_ENTRY _ZTV7ee04722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee04722[];
+static VTBL_ENTRY alt_thunk_names1281[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7223barEv,_ZThn16_N5cc7223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd47223barEv,_ZTv0_n16_N6dd47223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd47223barEv,_ZThn16_N6dd47223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd47223barEv,_ZThn16_N6dd47223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7223fooEv,_ZThn16_N5cc7223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7223fooEv,_ZThn16_N5cc7223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7223fooEv,_ZThn16_N5cc7223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee04722 = { "ee04722", // class name
+ bases_ee04722, 4,
+ &(vtc_ee04722[0]), // expected_vtbl_contents
+ &(vtt_ee04722[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee04722),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04722),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee04722),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1281,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee14722 : virtual dd4722 {
+ int e;
+ ~ee14722(); // tgen
+ ee14722(); // tgen
+};
+//SIG(1 ee14722) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee14722 ::~ee14722(){ note_dtor("ee14722", this);} // tgen
+ee14722 ::ee14722(){ note_ctor("ee14722", this);} // tgen
+
+static void Test_ee14722()
+{
+ extern Class_Descriptor cd_ee14722;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee14722, buf);
+ ee14722 *dp, &lv = *(dp=new (buf) ee14722());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee14722)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14722)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee14722");
+ check_base_class_offset(lv, (bb22*)(cc722*)(dd4722*), ABISELECT(32,20), "ee14722");
+ check_base_class_offset(lv, (cc722*)(dd4722*), ABISELECT(16,8), "ee14722");
+ check_base_class_offset(lv, (dd4722*), ABISELECT(16,8), "ee14722");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14722.e");
+ test_class_info(&lv, &cd_ee14722);
+ dp->~ee14722();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14722(Test_ee14722, "ee14722", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee14722C1Ev();
+extern void _ZN7ee14722D1Ev();
+Name_Map name_map_ee14722[] = {
+ NSPAIR(_ZN7ee14722C1Ev),
+ NSPAIR(_ZN7ee14722D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc722;
+extern VTBL_ENTRY _ZTI5cc722[];
+extern VTBL_ENTRY _ZTV5cc722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc722[];
+extern Class_Descriptor cd_dd4722;
+extern VTBL_ENTRY _ZTI6dd4722[];
+extern VTBL_ENTRY _ZTV6dd4722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4722[];
+static Base_Class bases_ee14722[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc722, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4722, 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 _ZTI7ee14722[];
+extern void _ZN5cc7223fooEv();
+extern void _ZN6dd47223barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn12_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd47223barEv,_ZTv0_n16_N6dd47223barEv)();
+extern void ABISELECT(_ZThn16_N6dd47223barEv,_ZThn12_N6dd47223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee14722[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14722[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN6dd47223barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee14722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47223barEv,_ZTv0_n16_N6dd47223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee14722[];
+extern void _ZN5cc7223fooEv();
+extern void _ZN6dd47223barEv();
+static VTBL_ENTRY _tg__ZTV6dd4722__7ee14722[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN6dd47223barEv,
+};
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc7226dd4722__7ee14722[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn12_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn12_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc7226dd4722__7ee14722[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn12_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd47223barEv,_ZTv0_n16_N6dd47223barEv)();
+extern void ABISELECT(_ZThn16_N6dd47223barEv,_ZThn12_N6dd47223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd4722__7ee14722[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47223barEv,_ZTv0_n16_N6dd47223barEv),
+};
+static VTT_ENTRY vtt_ee14722[] = {
+ {&(_ZTV7ee14722[4]), 4,17},
+ {&(_ZTV7ee14722[9]), 9,17},
+ {&(_ZTV7ee14722[15]), 15,17},
+ {&(_tg__ZTV6dd4722__7ee14722[3]), 3,5},
+ {&(_tg__ZTV5cc7226dd4722__7ee14722[3]), 3,5},
+ {&(_tg__ZTV4bb22__5cc7226dd4722__7ee14722[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd4722__7ee14722[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee14722[];
+extern VTBL_ENTRY _ZTV7ee14722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14722[];
+static VTBL_ENTRY alt_thunk_names1282[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn12_N5cc7223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd47223barEv,_ZTv0_n16_N6dd47223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd47223barEv,_ZThn12_N6dd47223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd47223barEv,_ZThn12_N6dd47223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn12_N5cc7223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn12_N5cc7223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn12_N5cc7223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee14722 = { "ee14722", // class name
+ bases_ee14722, 4,
+ &(vtc_ee14722[0]), // expected_vtbl_contents
+ &(vtt_ee14722[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee14722),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14722),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14722),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1282,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee24722 : dd4722 {
+ int e;
+ virtual void foo(); // _ZN7ee247223fooEv
+ ~ee24722(); // tgen
+ ee24722(); // tgen
+};
+//SIG(1 ee24722) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee24722 ::foo(){vfunc_called(this, "_ZN7ee247223fooEv");}
+ee24722 ::~ee24722(){ note_dtor("ee24722", this);} // tgen
+ee24722 ::ee24722(){ note_ctor("ee24722", this);} // tgen
+
+static void Test_ee24722()
+{
+ extern Class_Descriptor cd_ee24722;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee24722, buf);
+ ee24722 *dp, &lv = *(dp=new (buf) ee24722());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee24722)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24722)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(24,16), "ee24722");
+ check_base_class_offset(lv, (bb22*)(cc722*)(dd4722*), ABISELECT(24,16), "ee24722");
+ check_base_class_offset(lv, (cc722*)(dd4722*), 0, "ee24722");
+ check_base_class_offset(lv, (dd4722*), 0, "ee24722");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee24722.e");
+ test_class_info(&lv, &cd_ee24722);
+ dp->~ee24722();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24722(Test_ee24722, "ee24722", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee24722C1Ev();
+extern void _ZN7ee24722D1Ev();
+Name_Map name_map_ee24722[] = {
+ NSPAIR(_ZN7ee24722C1Ev),
+ NSPAIR(_ZN7ee24722D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc722;
+extern VTBL_ENTRY _ZTI5cc722[];
+extern VTBL_ENTRY _ZTV5cc722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc722[];
+extern Class_Descriptor cd_dd4722;
+extern VTBL_ENTRY _ZTI6dd4722[];
+extern VTBL_ENTRY _ZTV6dd4722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4722[];
+static Base_Class bases_ee24722[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc722, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4722, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee24722[];
+extern void _ZN7ee247223fooEv();
+extern void _ZN6dd47223barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee247223fooEv,_ZTv0_n12_N7ee247223fooEv)();
+extern void ABISELECT(_ZThn24_N7ee247223fooEv,_ZThn16_N7ee247223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd47223barEv,_ZTv0_n16_N6dd47223barEv)();
+extern void ABISELECT(_ZThn24_N6dd47223barEv,_ZThn16_N6dd47223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee24722[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24722[0]),
+ (VTBL_ENTRY)&_ZN7ee247223fooEv,
+ (VTBL_ENTRY)&_ZN6dd47223barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee24722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee247223fooEv,_ZTv0_n12_N7ee247223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47223barEv,_ZTv0_n16_N6dd47223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee24722[];
+extern void _ZN5cc7223fooEv();
+extern void _ZN6dd47223barEv();
+static VTBL_ENTRY _tg__ZTV6dd4722__7ee24722[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN6dd47223barEv,
+};
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc7226dd4722__7ee24722[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7223fooEv,_ZThn16_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn24_N5cc7223barEv,_ZThn16_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc7226dd4722__7ee24722[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7223fooEv,_ZThn16_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd47223barEv,_ZTv0_n16_N6dd47223barEv)();
+extern void ABISELECT(_ZThn24_N6dd47223barEv,_ZThn16_N6dd47223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd4722__7ee24722[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47223barEv,_ZTv0_n16_N6dd47223barEv),
+};
+static VTT_ENTRY vtt_ee24722[] = {
+ {&(_ZTV7ee24722[3]), 3,11},
+ {&(_tg__ZTV6dd4722__7ee24722[3]), 3,5},
+ {&(_tg__ZTV5cc7226dd4722__7ee24722[3]), 3,5},
+ {&(_tg__ZTV4bb22__5cc7226dd4722__7ee24722[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd4722__7ee24722[4]), 4,6},
+ {&(_ZTV7ee24722[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee24722[];
+extern VTBL_ENTRY _ZTV7ee24722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee24722[];
+static VTBL_ENTRY alt_thunk_names1283[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7223barEv,_ZThn16_N5cc7223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7223fooEv,_ZThn16_N5cc7223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7223fooEv,_ZThn16_N5cc7223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd47223barEv,_ZTv0_n16_N6dd47223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd47223barEv,_ZThn16_N6dd47223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd47223barEv,_ZThn16_N6dd47223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee247223fooEv,_ZTv0_n12_N7ee247223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee247223fooEv,_ZThn16_N7ee247223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee24722 = { "ee24722", // class name
+ bases_ee24722, 4,
+ &(vtc_ee24722[0]), // expected_vtbl_contents
+ &(vtt_ee24722[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee24722),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24722),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee24722),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1283,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee34722 : virtual dd4722 {
+ int e;
+ virtual void foo(); // _ZN7ee347223fooEv
+ ~ee34722(); // tgen
+ ee34722(); // tgen
+};
+//SIG(1 ee34722) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee34722 ::foo(){vfunc_called(this, "_ZN7ee347223fooEv");}
+ee34722 ::~ee34722(){ note_dtor("ee34722", this);} // tgen
+ee34722 ::ee34722(){ note_ctor("ee34722", this);} // tgen
+
+static void Test_ee34722()
+{
+ extern Class_Descriptor cd_ee34722;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee34722, buf);
+ ee34722 *dp, &lv = *(dp=new (buf) ee34722());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee34722)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34722)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee34722");
+ check_base_class_offset(lv, (bb22*)(cc722*)(dd4722*), ABISELECT(32,20), "ee34722");
+ check_base_class_offset(lv, (cc722*)(dd4722*), ABISELECT(16,8), "ee34722");
+ check_base_class_offset(lv, (dd4722*), ABISELECT(16,8), "ee34722");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34722.e");
+ test_class_info(&lv, &cd_ee34722);
+ dp->~ee34722();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34722(Test_ee34722, "ee34722", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee34722C1Ev();
+extern void _ZN7ee34722D1Ev();
+Name_Map name_map_ee34722[] = {
+ NSPAIR(_ZN7ee34722C1Ev),
+ NSPAIR(_ZN7ee34722D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc722;
+extern VTBL_ENTRY _ZTI5cc722[];
+extern VTBL_ENTRY _ZTV5cc722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc722[];
+extern Class_Descriptor cd_dd4722;
+extern VTBL_ENTRY _ZTI6dd4722[];
+extern VTBL_ENTRY _ZTV6dd4722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4722[];
+static Base_Class bases_ee34722[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc722, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4722, 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 _ZTI7ee34722[];
+extern void _ZN7ee347223fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee347223fooEv,_ZTv0_n16_N7ee347223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee347223fooEv,_ZThn8_N7ee347223fooEv)() __attribute__((weak));
+extern void _ZN6dd47223barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee347223fooEv,_ZTv0_n12_N7ee347223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee347223fooEv,_ZThn20_N7ee347223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd47223barEv,_ZTv0_n16_N6dd47223barEv)();
+extern void ABISELECT(_ZThn16_N6dd47223barEv,_ZThn12_N6dd47223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee34722[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34722[0]),
+ (VTBL_ENTRY)&_ZN7ee347223fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee347223fooEv,_ZTv0_n16_N7ee347223fooEv),
+ (VTBL_ENTRY)&_ZN6dd47223barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee34722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee347223fooEv,_ZTv0_n12_N7ee347223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47223barEv,_ZTv0_n16_N6dd47223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee34722[];
+extern void _ZN5cc7223fooEv();
+extern void _ZN6dd47223barEv();
+static VTBL_ENTRY _tg__ZTV6dd4722__7ee34722[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN6dd47223barEv,
+};
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc7226dd4722__7ee34722[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn12_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn12_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc7226dd4722__7ee34722[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn12_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd47223barEv,_ZTv0_n16_N6dd47223barEv)();
+extern void ABISELECT(_ZThn16_N6dd47223barEv,_ZThn12_N6dd47223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd4722__7ee34722[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47223barEv,_ZTv0_n16_N6dd47223barEv),
+};
+static VTT_ENTRY vtt_ee34722[] = {
+ {&(_ZTV7ee34722[4]), 4,18},
+ {&(_ZTV7ee34722[10]), 10,18},
+ {&(_ZTV7ee34722[16]), 16,18},
+ {&(_tg__ZTV6dd4722__7ee34722[3]), 3,5},
+ {&(_tg__ZTV5cc7226dd4722__7ee34722[3]), 3,5},
+ {&(_tg__ZTV4bb22__5cc7226dd4722__7ee34722[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd4722__7ee34722[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee34722[];
+extern VTBL_ENTRY _ZTV7ee34722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34722[];
+static VTBL_ENTRY alt_thunk_names1284[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn12_N5cc7223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn12_N5cc7223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn12_N5cc7223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd47223barEv,_ZTv0_n16_N6dd47223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd47223barEv,_ZThn12_N6dd47223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd47223barEv,_ZThn12_N6dd47223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee347223fooEv,_ZTv0_n12_N7ee347223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee347223fooEv,_ZThn20_N7ee347223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee347223fooEv,_ZTv0_n16_N7ee347223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee347223fooEv,_ZThn8_N7ee347223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34722 = { "ee34722", // class name
+ bases_ee34722, 4,
+ &(vtc_ee34722[0]), // expected_vtbl_contents
+ &(vtt_ee34722[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee34722),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34722),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34722),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1284,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee44722 : dd4722 {
+ int e;
+ virtual void bar(); // _ZN7ee447223barEv
+ ~ee44722(); // tgen
+ ee44722(); // tgen
+};
+//SIG(1 ee44722) C1{ BC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee44722 ::bar(){vfunc_called(this, "_ZN7ee447223barEv");}
+ee44722 ::~ee44722(){ note_dtor("ee44722", this);} // tgen
+ee44722 ::ee44722(){ note_ctor("ee44722", this);} // tgen
+
+static void Test_ee44722()
+{
+ extern Class_Descriptor cd_ee44722;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee44722, buf);
+ ee44722 *dp, &lv = *(dp=new (buf) ee44722());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee44722)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44722)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(24,16), "ee44722");
+ check_base_class_offset(lv, (bb22*)(cc722*)(dd4722*), ABISELECT(24,16), "ee44722");
+ check_base_class_offset(lv, (cc722*)(dd4722*), 0, "ee44722");
+ check_base_class_offset(lv, (dd4722*), 0, "ee44722");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee44722.e");
+ test_class_info(&lv, &cd_ee44722);
+ dp->~ee44722();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44722(Test_ee44722, "ee44722", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee44722C1Ev();
+extern void _ZN7ee44722D1Ev();
+Name_Map name_map_ee44722[] = {
+ NSPAIR(_ZN7ee44722C1Ev),
+ NSPAIR(_ZN7ee44722D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc722;
+extern VTBL_ENTRY _ZTI5cc722[];
+extern VTBL_ENTRY _ZTV5cc722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc722[];
+extern Class_Descriptor cd_dd4722;
+extern VTBL_ENTRY _ZTI6dd4722[];
+extern VTBL_ENTRY _ZTV6dd4722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4722[];
+static Base_Class bases_ee44722[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc722, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4722, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee44722[];
+extern void _ZN5cc7223fooEv();
+extern void _ZN7ee447223barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7223fooEv,_ZThn16_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee447223barEv,_ZTv0_n16_N7ee447223barEv)();
+extern void ABISELECT(_ZThn24_N7ee447223barEv,_ZThn16_N7ee447223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee44722[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN7ee447223barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee44722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee447223barEv,_ZTv0_n16_N7ee447223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee44722[];
+extern void _ZN5cc7223fooEv();
+extern void _ZN6dd47223barEv();
+static VTBL_ENTRY _tg__ZTV6dd4722__7ee44722[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN6dd47223barEv,
+};
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc7226dd4722__7ee44722[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7223fooEv,_ZThn16_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn24_N5cc7223barEv,_ZThn16_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc7226dd4722__7ee44722[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7223fooEv,_ZThn16_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd47223barEv,_ZTv0_n16_N6dd47223barEv)();
+extern void ABISELECT(_ZThn24_N6dd47223barEv,_ZThn16_N6dd47223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd4722__7ee44722[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47223barEv,_ZTv0_n16_N6dd47223barEv),
+};
+static VTT_ENTRY vtt_ee44722[] = {
+ {&(_ZTV7ee44722[3]), 3,11},
+ {&(_tg__ZTV6dd4722__7ee44722[3]), 3,5},
+ {&(_tg__ZTV5cc7226dd4722__7ee44722[3]), 3,5},
+ {&(_tg__ZTV4bb22__5cc7226dd4722__7ee44722[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd4722__7ee44722[4]), 4,6},
+ {&(_ZTV7ee44722[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee44722[];
+extern VTBL_ENTRY _ZTV7ee44722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee44722[];
+static VTBL_ENTRY alt_thunk_names1285[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd47223barEv,_ZTv0_n16_N6dd47223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd47223barEv,_ZThn16_N6dd47223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7223barEv,_ZThn16_N5cc7223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee447223barEv,_ZTv0_n16_N7ee447223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee447223barEv,_ZThn16_N7ee447223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7223fooEv,_ZThn16_N5cc7223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7223fooEv,_ZThn16_N5cc7223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7223fooEv,_ZThn16_N5cc7223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee44722 = { "ee44722", // class name
+ bases_ee44722, 4,
+ &(vtc_ee44722[0]), // expected_vtbl_contents
+ &(vtt_ee44722[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee44722),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44722),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee44722),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1285,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee54722 : virtual dd4722 {
+ int e;
+ virtual void bar(); // _ZN7ee547223barEv
+ ~ee54722(); // tgen
+ ee54722(); // tgen
+};
+//SIG(1 ee54722) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee54722 ::bar(){vfunc_called(this, "_ZN7ee547223barEv");}
+ee54722 ::~ee54722(){ note_dtor("ee54722", this);} // tgen
+ee54722 ::ee54722(){ note_ctor("ee54722", this);} // tgen
+
+static void Test_ee54722()
+{
+ extern Class_Descriptor cd_ee54722;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee54722, buf);
+ ee54722 *dp, &lv = *(dp=new (buf) ee54722());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee54722)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54722)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee54722");
+ check_base_class_offset(lv, (bb22*)(cc722*)(dd4722*), ABISELECT(32,20), "ee54722");
+ check_base_class_offset(lv, (cc722*)(dd4722*), ABISELECT(16,8), "ee54722");
+ check_base_class_offset(lv, (dd4722*), ABISELECT(16,8), "ee54722");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54722.e");
+ test_class_info(&lv, &cd_ee54722);
+ dp->~ee54722();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54722(Test_ee54722, "ee54722", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee54722C1Ev();
+extern void _ZN7ee54722D1Ev();
+Name_Map name_map_ee54722[] = {
+ NSPAIR(_ZN7ee54722C1Ev),
+ NSPAIR(_ZN7ee54722D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc722;
+extern VTBL_ENTRY _ZTI5cc722[];
+extern VTBL_ENTRY _ZTV5cc722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc722[];
+extern Class_Descriptor cd_dd4722;
+extern VTBL_ENTRY _ZTI6dd4722[];
+extern VTBL_ENTRY _ZTV6dd4722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4722[];
+static Base_Class bases_ee54722[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc722, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4722, 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 _ZTI7ee54722[];
+extern void _ZN7ee547223barEv();
+extern void _ZN5cc7223fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee547223barEv,_ZTv0_n20_N7ee547223barEv)();
+extern void ABISELECT(_ZThn16_N7ee547223barEv,_ZThn8_N7ee547223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn12_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee547223barEv,_ZTv0_n16_N7ee547223barEv)();
+extern void ABISELECT(_ZThn32_N7ee547223barEv,_ZThn20_N7ee547223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54722[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54722[0]),
+ (VTBL_ENTRY)&_ZN7ee547223barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee547223barEv,_ZTv0_n20_N7ee547223barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee54722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee547223barEv,_ZTv0_n16_N7ee547223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee54722[];
+extern void _ZN5cc7223fooEv();
+extern void _ZN6dd47223barEv();
+static VTBL_ENTRY _tg__ZTV6dd4722__7ee54722[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN6dd47223barEv,
+};
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc7226dd4722__7ee54722[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn12_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn12_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc7226dd4722__7ee54722[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn12_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd47223barEv,_ZTv0_n16_N6dd47223barEv)();
+extern void ABISELECT(_ZThn16_N6dd47223barEv,_ZThn12_N6dd47223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd4722__7ee54722[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47223barEv,_ZTv0_n16_N6dd47223barEv),
+};
+static VTT_ENTRY vtt_ee54722[] = {
+ {&(_ZTV7ee54722[4]), 4,18},
+ {&(_ZTV7ee54722[10]), 10,18},
+ {&(_ZTV7ee54722[16]), 16,18},
+ {&(_tg__ZTV6dd4722__7ee54722[3]), 3,5},
+ {&(_tg__ZTV5cc7226dd4722__7ee54722[3]), 3,5},
+ {&(_tg__ZTV4bb22__5cc7226dd4722__7ee54722[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd4722__7ee54722[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee54722[];
+extern VTBL_ENTRY _ZTV7ee54722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54722[];
+static VTBL_ENTRY alt_thunk_names1286[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd47223barEv,_ZTv0_n16_N6dd47223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd47223barEv,_ZThn12_N6dd47223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn12_N5cc7223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee547223barEv,_ZTv0_n16_N7ee547223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee547223barEv,_ZThn20_N7ee547223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn12_N5cc7223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn12_N5cc7223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn12_N5cc7223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee547223barEv,_ZTv0_n20_N7ee547223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee547223barEv,_ZThn8_N7ee547223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54722 = { "ee54722", // class name
+ bases_ee54722, 4,
+ &(vtc_ee54722[0]), // expected_vtbl_contents
+ &(vtt_ee54722[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee54722),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54722),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54722),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1286,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee64722 : dd4722 {
+ int e;
+ virtual void foo(); // _ZN7ee647223fooEv
+ virtual void bar(); // _ZN7ee647223barEv
+ ~ee64722(); // tgen
+ ee64722(); // tgen
+};
+//SIG(1 ee64722) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64722 ::foo(){vfunc_called(this, "_ZN7ee647223fooEv");}
+void ee64722 ::bar(){vfunc_called(this, "_ZN7ee647223barEv");}
+ee64722 ::~ee64722(){ note_dtor("ee64722", this);} // tgen
+ee64722 ::ee64722(){ note_ctor("ee64722", this);} // tgen
+
+static void Test_ee64722()
+{
+ extern Class_Descriptor cd_ee64722;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee64722, buf);
+ ee64722 *dp, &lv = *(dp=new (buf) ee64722());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee64722)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64722)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(24,16), "ee64722");
+ check_base_class_offset(lv, (bb22*)(cc722*)(dd4722*), ABISELECT(24,16), "ee64722");
+ check_base_class_offset(lv, (cc722*)(dd4722*), 0, "ee64722");
+ check_base_class_offset(lv, (dd4722*), 0, "ee64722");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee64722.e");
+ test_class_info(&lv, &cd_ee64722);
+ dp->~ee64722();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64722(Test_ee64722, "ee64722", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee64722C1Ev();
+extern void _ZN7ee64722D1Ev();
+Name_Map name_map_ee64722[] = {
+ NSPAIR(_ZN7ee64722C1Ev),
+ NSPAIR(_ZN7ee64722D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc722;
+extern VTBL_ENTRY _ZTI5cc722[];
+extern VTBL_ENTRY _ZTV5cc722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc722[];
+extern Class_Descriptor cd_dd4722;
+extern VTBL_ENTRY _ZTI6dd4722[];
+extern VTBL_ENTRY _ZTV6dd4722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4722[];
+static Base_Class bases_ee64722[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc722, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4722, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee64722[];
+extern void _ZN7ee647223fooEv();
+extern void _ZN7ee647223barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee647223fooEv,_ZTv0_n12_N7ee647223fooEv)();
+extern void ABISELECT(_ZThn24_N7ee647223fooEv,_ZThn16_N7ee647223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee647223barEv,_ZTv0_n16_N7ee647223barEv)();
+extern void ABISELECT(_ZThn24_N7ee647223barEv,_ZThn16_N7ee647223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee64722[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64722[0]),
+ (VTBL_ENTRY)&_ZN7ee647223fooEv,
+ (VTBL_ENTRY)&_ZN7ee647223barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee64722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee647223fooEv,_ZTv0_n12_N7ee647223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee647223barEv,_ZTv0_n16_N7ee647223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee64722[];
+extern void _ZN5cc7223fooEv();
+extern void _ZN6dd47223barEv();
+static VTBL_ENTRY _tg__ZTV6dd4722__7ee64722[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN6dd47223barEv,
+};
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc7226dd4722__7ee64722[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7223fooEv,_ZThn16_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn24_N5cc7223barEv,_ZThn16_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc7226dd4722__7ee64722[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7223fooEv,_ZThn16_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd47223barEv,_ZTv0_n16_N6dd47223barEv)();
+extern void ABISELECT(_ZThn24_N6dd47223barEv,_ZThn16_N6dd47223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd4722__7ee64722[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47223barEv,_ZTv0_n16_N6dd47223barEv),
+};
+static VTT_ENTRY vtt_ee64722[] = {
+ {&(_ZTV7ee64722[3]), 3,11},
+ {&(_tg__ZTV6dd4722__7ee64722[3]), 3,5},
+ {&(_tg__ZTV5cc7226dd4722__7ee64722[3]), 3,5},
+ {&(_tg__ZTV4bb22__5cc7226dd4722__7ee64722[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd4722__7ee64722[4]), 4,6},
+ {&(_ZTV7ee64722[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee64722[];
+extern VTBL_ENTRY _ZTV7ee64722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee64722[];
+static VTBL_ENTRY alt_thunk_names1287[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd47223barEv,_ZTv0_n16_N6dd47223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd47223barEv,_ZThn16_N6dd47223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7223barEv,_ZThn16_N5cc7223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7223fooEv,_ZThn16_N5cc7223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7223fooEv,_ZThn16_N5cc7223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee647223barEv,_ZTv0_n16_N7ee647223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee647223barEv,_ZThn16_N7ee647223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee647223fooEv,_ZTv0_n12_N7ee647223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee647223fooEv,_ZThn16_N7ee647223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee64722 = { "ee64722", // class name
+ bases_ee64722, 4,
+ &(vtc_ee64722[0]), // expected_vtbl_contents
+ &(vtt_ee64722[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee64722),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64722),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee64722),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1287,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee74722 : virtual dd4722 {
+ int e;
+ virtual void foo(); // _ZN7ee747223fooEv
+ virtual void bar(); // _ZN7ee747223barEv
+ ~ee74722(); // tgen
+ ee74722(); // tgen
+};
+//SIG(1 ee74722) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74722 ::foo(){vfunc_called(this, "_ZN7ee747223fooEv");}
+void ee74722 ::bar(){vfunc_called(this, "_ZN7ee747223barEv");}
+ee74722 ::~ee74722(){ note_dtor("ee74722", this);} // tgen
+ee74722 ::ee74722(){ note_ctor("ee74722", this);} // tgen
+
+static void Test_ee74722()
+{
+ extern Class_Descriptor cd_ee74722;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee74722, buf);
+ ee74722 *dp, &lv = *(dp=new (buf) ee74722());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee74722)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74722)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee74722");
+ check_base_class_offset(lv, (bb22*)(cc722*)(dd4722*), ABISELECT(32,20), "ee74722");
+ check_base_class_offset(lv, (cc722*)(dd4722*), ABISELECT(16,8), "ee74722");
+ check_base_class_offset(lv, (dd4722*), ABISELECT(16,8), "ee74722");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74722.e");
+ test_class_info(&lv, &cd_ee74722);
+ dp->~ee74722();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74722(Test_ee74722, "ee74722", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee74722C1Ev();
+extern void _ZN7ee74722D1Ev();
+Name_Map name_map_ee74722[] = {
+ NSPAIR(_ZN7ee74722C1Ev),
+ NSPAIR(_ZN7ee74722D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc722;
+extern VTBL_ENTRY _ZTI5cc722[];
+extern VTBL_ENTRY _ZTV5cc722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc722[];
+extern Class_Descriptor cd_dd4722;
+extern VTBL_ENTRY _ZTI6dd4722[];
+extern VTBL_ENTRY _ZTV6dd4722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4722[];
+static Base_Class bases_ee74722[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc722, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd4722, ABISELECT(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 _ZTI7ee74722[];
+extern void _ZN7ee747223fooEv();
+extern void _ZN7ee747223barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee747223fooEv,_ZTv0_n16_N7ee747223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee747223fooEv,_ZThn8_N7ee747223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee747223barEv,_ZTv0_n20_N7ee747223barEv)();
+extern void ABISELECT(_ZThn16_N7ee747223barEv,_ZThn8_N7ee747223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee747223fooEv,_ZTv0_n12_N7ee747223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee747223fooEv,_ZThn20_N7ee747223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee747223barEv,_ZTv0_n16_N7ee747223barEv)();
+extern void ABISELECT(_ZThn32_N7ee747223barEv,_ZThn20_N7ee747223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74722[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74722[0]),
+ (VTBL_ENTRY)&_ZN7ee747223fooEv,
+ (VTBL_ENTRY)&_ZN7ee747223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee747223fooEv,_ZTv0_n16_N7ee747223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee747223barEv,_ZTv0_n20_N7ee747223barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee74722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee747223fooEv,_ZTv0_n12_N7ee747223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee747223barEv,_ZTv0_n16_N7ee747223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee74722[];
+extern void _ZN5cc7223fooEv();
+extern void _ZN6dd47223barEv();
+static VTBL_ENTRY _tg__ZTV6dd4722__7ee74722[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN6dd47223barEv,
+};
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc7226dd4722__7ee74722[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn12_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn12_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc7226dd4722__7ee74722[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn12_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd47223barEv,_ZTv0_n16_N6dd47223barEv)();
+extern void ABISELECT(_ZThn16_N6dd47223barEv,_ZThn12_N6dd47223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd4722__7ee74722[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47223barEv,_ZTv0_n16_N6dd47223barEv),
+};
+static VTT_ENTRY vtt_ee74722[] = {
+ {&(_ZTV7ee74722[4]), 4,19},
+ {&(_ZTV7ee74722[11]), 11,19},
+ {&(_ZTV7ee74722[17]), 17,19},
+ {&(_tg__ZTV6dd4722__7ee74722[3]), 3,5},
+ {&(_tg__ZTV5cc7226dd4722__7ee74722[3]), 3,5},
+ {&(_tg__ZTV4bb22__5cc7226dd4722__7ee74722[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd4722__7ee74722[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee74722[];
+extern VTBL_ENTRY _ZTV7ee74722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74722[];
+static VTBL_ENTRY alt_thunk_names1288[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd47223barEv,_ZTv0_n16_N6dd47223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd47223barEv,_ZThn12_N6dd47223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn12_N5cc7223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn12_N5cc7223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn12_N5cc7223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee747223barEv,_ZTv0_n16_N7ee747223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee747223barEv,_ZThn20_N7ee747223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee747223fooEv,_ZTv0_n12_N7ee747223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee747223fooEv,_ZThn20_N7ee747223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee747223barEv,_ZTv0_n20_N7ee747223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee747223barEv,_ZThn8_N7ee747223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee747223fooEv,_ZTv0_n16_N7ee747223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee747223fooEv,_ZThn8_N7ee747223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74722 = { "ee74722", // class name
+ bases_ee74722, 4,
+ &(vtc_ee74722[0]), // expected_vtbl_contents
+ &(vtt_ee74722[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee74722),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74722),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74722),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1288,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd5722 : virtual cc722 {
+ int d;
+ virtual void bar(); // _ZN6dd57223barEv
+ ~dd5722(); // tgen
+ dd5722(); // tgen
+};
+//SIG(-1 dd5722) C1{ VBC2{ VBC3{ BC4{ v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void dd5722 ::bar(){vfunc_called(this, "_ZN6dd57223barEv");}
+dd5722 ::~dd5722(){ note_dtor("dd5722", this);} // tgen
+dd5722 ::dd5722(){ note_ctor("dd5722", this);} // tgen
+
+static void Test_dd5722()
+{
+ extern Class_Descriptor cd_dd5722;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd5722, buf);
+ dd5722 *dp, &lv = *(dp=new (buf) dd5722());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd5722)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5722)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,16), "dd5722");
+ check_base_class_offset(lv, (bb22*)(cc722*), ABISELECT(32,16), "dd5722");
+ check_base_class_offset(lv, (cc722*), ABISELECT(16,8), "dd5722");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5722.d");
+ test_class_info(&lv, &cd_dd5722);
+ dp->~dd5722();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5722(Test_dd5722, "dd5722", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd5722C1Ev();
+extern void _ZN6dd5722D1Ev();
+Name_Map name_map_dd5722[] = {
+ NSPAIR(_ZN6dd5722C1Ev),
+ NSPAIR(_ZN6dd5722D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc722;
+extern VTBL_ENTRY _ZTI5cc722[];
+extern VTBL_ENTRY _ZTV5cc722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc722[];
+static Base_Class bases_dd5722[] = {
+ // 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_bb22, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc722, 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 _ZTI6dd5722[];
+extern void _ZN6dd57223barEv();
+extern void _ZN5cc7223fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57223barEv,_ZTv0_n20_N6dd57223barEv)();
+extern void ABISELECT(_ZThn16_N6dd57223barEv,_ZThn8_N6dd57223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd57223barEv,_ZTv0_n16_N6dd57223barEv)();
+extern void ABISELECT(_ZThn32_N6dd57223barEv,_ZThn16_N6dd57223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd5722[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5722[0]),
+ (VTBL_ENTRY)&_ZN6dd57223barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57223barEv,_ZTv0_n20_N6dd57223barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57223barEv,_ZTv0_n16_N6dd57223barEv),
+};
+extern VTBL_ENTRY _ZTV6dd5722[];
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc722__6dd5722[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc722__6dd5722[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+static VTT_ENTRY vtt_dd5722[] = {
+ {&(_ZTV6dd5722[4]), 4,18},
+ {&(_ZTV6dd5722[10]), 10,18},
+ {&(_ZTV6dd5722[16]), 16,18},
+ {&(_tg__ZTV5cc722__6dd5722[3]), 3,5},
+ {&(_tg__ZTV4bb22__5cc722__6dd5722[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd5722[];
+extern VTBL_ENTRY _ZTV6dd5722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5722[];
+static VTBL_ENTRY alt_thunk_names1289[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd57223barEv,_ZTv0_n16_N6dd57223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57223barEv,_ZThn16_N6dd57223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57223barEv,_ZTv0_n20_N6dd57223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57223barEv,_ZThn8_N6dd57223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5722 = { "dd5722", // class name
+ bases_dd5722, 3,
+ &(vtc_dd5722[0]), // expected_vtbl_contents
+ &(vtt_dd5722[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd5722),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5722),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5722),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1289,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05722 : dd5722 {
+ int e;
+ ~ee05722(); // tgen
+ ee05722(); // tgen
+};
+//SIG(1 ee05722) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee05722 ::~ee05722(){ note_dtor("ee05722", this);} // tgen
+ee05722 ::ee05722(){ note_ctor("ee05722", this);} // tgen
+
+static void Test_ee05722()
+{
+ extern Class_Descriptor cd_ee05722;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee05722, buf);
+ ee05722 *dp, &lv = *(dp=new (buf) ee05722());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee05722)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05722)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee05722");
+ check_base_class_offset(lv, (bb22*)(cc722*), ABISELECT(32,20), "ee05722");
+ check_base_class_offset(lv, (cc722*)(dd5722*), ABISELECT(16,12), "ee05722");
+ check_base_class_offset(lv, (dd5722*), 0, "ee05722");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05722.e");
+ test_class_info(&lv, &cd_ee05722);
+ dp->~ee05722();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05722(Test_ee05722, "ee05722", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee05722C1Ev();
+extern void _ZN7ee05722D1Ev();
+Name_Map name_map_ee05722[] = {
+ NSPAIR(_ZN7ee05722C1Ev),
+ NSPAIR(_ZN7ee05722D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc722;
+extern VTBL_ENTRY _ZTI5cc722[];
+extern VTBL_ENTRY _ZTV5cc722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc722[];
+extern Class_Descriptor cd_dd5722;
+extern VTBL_ENTRY _ZTI6dd5722[];
+extern VTBL_ENTRY _ZTV6dd5722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5722[];
+static Base_Class bases_ee05722[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc722, 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_dd5722, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05722[];
+extern void _ZN6dd57223barEv();
+extern void _ZN5cc7223fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57223barEv,_ZTv0_n20_N6dd57223barEv)();
+extern void ABISELECT(_ZThn16_N6dd57223barEv,_ZThn12_N6dd57223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd57223barEv,_ZTv0_n16_N6dd57223barEv)();
+extern void ABISELECT(_ZThn32_N6dd57223barEv,_ZThn20_N6dd57223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee05722[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05722[0]),
+ (VTBL_ENTRY)&_ZN6dd57223barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57223barEv,_ZTv0_n20_N6dd57223barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee05722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57223barEv,_ZTv0_n16_N6dd57223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee05722[];
+extern void _ZN6dd57223barEv();
+static VTBL_ENTRY _tg__ZTV6dd5722__7ee05722[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5722[0]),
+ (VTBL_ENTRY)&_ZN6dd57223barEv,
+};
+extern void _ZN5cc7223fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57223barEv,_ZTv0_n20_N6dd57223barEv)();
+extern void ABISELECT(_ZThn16_N6dd57223barEv,_ZThn12_N6dd57223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc722__6dd5722__7ee05722[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57223barEv,_ZTv0_n20_N6dd57223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd57223barEv,_ZTv0_n16_N6dd57223barEv)();
+extern void ABISELECT(_ZThn32_N6dd57223barEv,_ZThn20_N6dd57223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd5722__7ee05722[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57223barEv,_ZTv0_n16_N6dd57223barEv),
+};
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc722__7ee05722[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc722__7ee05722[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+static VTT_ENTRY vtt_ee05722[] = {
+ {&(_ZTV7ee05722[4]), 4,18},
+ {&(_tg__ZTV6dd5722__7ee05722[4]), 4,5},
+ {&(_tg__ZTV5cc722__6dd5722__7ee05722[5]), 5,7},
+ {&(_tg__ZTV4bb22__6dd5722__7ee05722[4]), 4,6},
+ {&(_ZTV7ee05722[10]), 10,18},
+ {&(_ZTV7ee05722[16]), 16,18},
+ {&(_tg__ZTV5cc722__7ee05722[3]), 3,5},
+ {&(_tg__ZTV4bb22__5cc722__7ee05722[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee05722[];
+extern VTBL_ENTRY _ZTV7ee05722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05722[];
+static VTBL_ENTRY alt_thunk_names1290[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd57223barEv,_ZTv0_n16_N6dd57223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57223barEv,_ZThn20_N6dd57223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57223barEv,_ZThn20_N6dd57223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57223barEv,_ZTv0_n20_N6dd57223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57223barEv,_ZThn12_N6dd57223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57223barEv,_ZThn12_N6dd57223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05722 = { "ee05722", // class name
+ bases_ee05722, 4,
+ &(vtc_ee05722[0]), // expected_vtbl_contents
+ &(vtt_ee05722[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee05722),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05722),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05722),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1290,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee15722 : virtual dd5722 {
+ int e;
+ ~ee15722(); // tgen
+ ee15722(); // tgen
+};
+//SIG(1 ee15722) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee15722 ::~ee15722(){ note_dtor("ee15722", this);} // tgen
+ee15722 ::ee15722(){ note_ctor("ee15722", this);} // tgen
+
+static void Test_ee15722()
+{
+ extern Class_Descriptor cd_ee15722;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee15722, buf);
+ ee15722 *dp, &lv = *(dp=new (buf) ee15722());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee15722)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15722)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(48,24), "ee15722");
+ check_base_class_offset(lv, (bb22*)(cc722*), ABISELECT(48,24), "ee15722");
+ check_base_class_offset(lv, (cc722*)(dd5722*), ABISELECT(32,16), "ee15722");
+ check_base_class_offset(lv, (dd5722*), ABISELECT(16,8), "ee15722");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15722.e");
+ test_class_info(&lv, &cd_ee15722);
+ dp->~ee15722();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15722(Test_ee15722, "ee15722", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee15722C1Ev();
+extern void _ZN7ee15722D1Ev();
+Name_Map name_map_ee15722[] = {
+ NSPAIR(_ZN7ee15722C1Ev),
+ NSPAIR(_ZN7ee15722D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc722;
+extern VTBL_ENTRY _ZTI5cc722[];
+extern VTBL_ENTRY _ZTV5cc722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc722[];
+extern Class_Descriptor cd_dd5722;
+extern VTBL_ENTRY _ZTI6dd5722[];
+extern VTBL_ENTRY _ZTV6dd5722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5722[];
+static Base_Class bases_ee15722[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb22, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc722, 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_dd5722, 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 _ZTI7ee15722[];
+extern void _ZN6dd57223barEv();
+extern void _ZN5cc7223fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57223barEv,_ZTv0_n20_N6dd57223barEv)();
+extern void ABISELECT(_ZThn16_N6dd57223barEv,_ZThn8_N6dd57223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd57223barEv,_ZTv0_n16_N6dd57223barEv)();
+extern void ABISELECT(_ZThn32_N6dd57223barEv,_ZThn16_N6dd57223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee15722[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15722[0]),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15722[0]),
+ (VTBL_ENTRY)&_ZN6dd57223barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57223barEv,_ZTv0_n20_N6dd57223barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee15722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57223barEv,_ZTv0_n16_N6dd57223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee15722[];
+extern void _ZN6dd57223barEv();
+static VTBL_ENTRY _tg__ZTV6dd5722__7ee15722[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5722[0]),
+ (VTBL_ENTRY)&_ZN6dd57223barEv,
+};
+extern void _ZN5cc7223fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57223barEv,_ZTv0_n20_N6dd57223barEv)();
+extern void ABISELECT(_ZThn16_N6dd57223barEv,_ZThn8_N6dd57223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc722__6dd5722__7ee15722[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57223barEv,_ZTv0_n20_N6dd57223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd57223barEv,_ZTv0_n16_N6dd57223barEv)();
+extern void ABISELECT(_ZThn32_N6dd57223barEv,_ZThn16_N6dd57223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd5722__7ee15722[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57223barEv,_ZTv0_n16_N6dd57223barEv),
+};
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc722__7ee15722[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc722__7ee15722[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+static VTT_ENTRY vtt_ee15722[] = {
+ {&(_ZTV7ee15722[5]), 5,24},
+ {&(_ZTV7ee15722[10]), 10,24},
+ {&(_ZTV7ee15722[16]), 16,24},
+ {&(_ZTV7ee15722[22]), 22,24},
+ {&(_tg__ZTV6dd5722__7ee15722[4]), 4,5},
+ {&(_tg__ZTV5cc722__6dd5722__7ee15722[5]), 5,7},
+ {&(_tg__ZTV4bb22__6dd5722__7ee15722[4]), 4,6},
+ {&(_tg__ZTV5cc722__7ee15722[3]), 3,5},
+ {&(_tg__ZTV4bb22__5cc722__7ee15722[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee15722[];
+extern VTBL_ENTRY _ZTV7ee15722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15722[];
+static VTBL_ENTRY alt_thunk_names1291[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd57223barEv,_ZTv0_n16_N6dd57223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57223barEv,_ZThn16_N6dd57223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57223barEv,_ZThn16_N6dd57223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57223barEv,_ZTv0_n20_N6dd57223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57223barEv,_ZThn8_N6dd57223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57223barEv,_ZThn8_N6dd57223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15722 = { "ee15722", // class name
+ bases_ee15722, 4,
+ &(vtc_ee15722[0]), // expected_vtbl_contents
+ &(vtt_ee15722[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee15722),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15722),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15722),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1291,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee25722 : dd5722 {
+ int e;
+ virtual void foo(); // _ZN7ee257223fooEv
+ ~ee25722(); // tgen
+ ee25722(); // tgen
+};
+//SIG(1 ee25722) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee25722 ::foo(){vfunc_called(this, "_ZN7ee257223fooEv");}
+ee25722 ::~ee25722(){ note_dtor("ee25722", this);} // tgen
+ee25722 ::ee25722(){ note_ctor("ee25722", this);} // tgen
+
+static void Test_ee25722()
+{
+ extern Class_Descriptor cd_ee25722;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee25722, buf);
+ ee25722 *dp, &lv = *(dp=new (buf) ee25722());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee25722)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25722)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee25722");
+ check_base_class_offset(lv, (bb22*)(cc722*), ABISELECT(32,20), "ee25722");
+ check_base_class_offset(lv, (cc722*)(dd5722*), ABISELECT(16,12), "ee25722");
+ check_base_class_offset(lv, (dd5722*), 0, "ee25722");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25722.e");
+ test_class_info(&lv, &cd_ee25722);
+ dp->~ee25722();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25722(Test_ee25722, "ee25722", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee25722C1Ev();
+extern void _ZN7ee25722D1Ev();
+Name_Map name_map_ee25722[] = {
+ NSPAIR(_ZN7ee25722C1Ev),
+ NSPAIR(_ZN7ee25722D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc722;
+extern VTBL_ENTRY _ZTI5cc722[];
+extern VTBL_ENTRY _ZTV5cc722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc722[];
+extern Class_Descriptor cd_dd5722;
+extern VTBL_ENTRY _ZTI6dd5722[];
+extern VTBL_ENTRY _ZTV6dd5722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5722[];
+static Base_Class bases_ee25722[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc722, 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_dd5722, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25722[];
+extern void _ZN6dd57223barEv();
+extern void _ZN7ee257223fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee257223fooEv,_ZTv0_n16_N7ee257223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee257223fooEv,_ZThn12_N7ee257223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd57223barEv,_ZTv0_n20_N6dd57223barEv)();
+extern void ABISELECT(_ZThn16_N6dd57223barEv,_ZThn12_N6dd57223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee257223fooEv,_ZTv0_n12_N7ee257223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee257223fooEv,_ZThn20_N7ee257223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd57223barEv,_ZTv0_n16_N6dd57223barEv)();
+extern void ABISELECT(_ZThn32_N6dd57223barEv,_ZThn20_N6dd57223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25722[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25722[0]),
+ (VTBL_ENTRY)&_ZN6dd57223barEv,
+ (VTBL_ENTRY)&_ZN7ee257223fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee257223fooEv,_ZTv0_n16_N7ee257223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57223barEv,_ZTv0_n20_N6dd57223barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee25722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee257223fooEv,_ZTv0_n12_N7ee257223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57223barEv,_ZTv0_n16_N6dd57223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee25722[];
+extern void _ZN6dd57223barEv();
+static VTBL_ENTRY _tg__ZTV6dd5722__7ee25722[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5722[0]),
+ (VTBL_ENTRY)&_ZN6dd57223barEv,
+};
+extern void _ZN5cc7223fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57223barEv,_ZTv0_n20_N6dd57223barEv)();
+extern void ABISELECT(_ZThn16_N6dd57223barEv,_ZThn12_N6dd57223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc722__6dd5722__7ee25722[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57223barEv,_ZTv0_n20_N6dd57223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd57223barEv,_ZTv0_n16_N6dd57223barEv)();
+extern void ABISELECT(_ZThn32_N6dd57223barEv,_ZThn20_N6dd57223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd5722__7ee25722[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57223barEv,_ZTv0_n16_N6dd57223barEv),
+};
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc722__7ee25722[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc722__7ee25722[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+static VTT_ENTRY vtt_ee25722[] = {
+ {&(_ZTV7ee25722[4]), 4,19},
+ {&(_tg__ZTV6dd5722__7ee25722[4]), 4,5},
+ {&(_tg__ZTV5cc722__6dd5722__7ee25722[5]), 5,7},
+ {&(_tg__ZTV4bb22__6dd5722__7ee25722[4]), 4,6},
+ {&(_ZTV7ee25722[11]), 11,19},
+ {&(_ZTV7ee25722[17]), 17,19},
+ {&(_tg__ZTV5cc722__7ee25722[3]), 3,5},
+ {&(_tg__ZTV4bb22__5cc722__7ee25722[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee25722[];
+extern VTBL_ENTRY _ZTV7ee25722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25722[];
+static VTBL_ENTRY alt_thunk_names1292[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd57223barEv,_ZTv0_n16_N6dd57223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57223barEv,_ZThn20_N6dd57223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57223barEv,_ZThn20_N6dd57223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee257223fooEv,_ZTv0_n12_N7ee257223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee257223fooEv,_ZThn20_N7ee257223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57223barEv,_ZTv0_n20_N6dd57223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57223barEv,_ZThn12_N6dd57223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57223barEv,_ZThn12_N6dd57223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee257223fooEv,_ZTv0_n16_N7ee257223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee257223fooEv,_ZThn12_N7ee257223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25722 = { "ee25722", // class name
+ bases_ee25722, 4,
+ &(vtc_ee25722[0]), // expected_vtbl_contents
+ &(vtt_ee25722[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee25722),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25722),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25722),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1292,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee35722 : virtual dd5722 {
+ int e;
+ virtual void foo(); // _ZN7ee357223fooEv
+ ~ee35722(); // tgen
+ ee35722(); // tgen
+};
+//SIG(1 ee35722) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee35722 ::foo(){vfunc_called(this, "_ZN7ee357223fooEv");}
+ee35722 ::~ee35722(){ note_dtor("ee35722", this);} // tgen
+ee35722 ::ee35722(){ note_ctor("ee35722", this);} // tgen
+
+static void Test_ee35722()
+{
+ extern Class_Descriptor cd_ee35722;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee35722, buf);
+ ee35722 *dp, &lv = *(dp=new (buf) ee35722());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee35722)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35722)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(48,24), "ee35722");
+ check_base_class_offset(lv, (bb22*)(cc722*), ABISELECT(48,24), "ee35722");
+ check_base_class_offset(lv, (cc722*)(dd5722*), ABISELECT(32,16), "ee35722");
+ check_base_class_offset(lv, (dd5722*), ABISELECT(16,8), "ee35722");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35722.e");
+ test_class_info(&lv, &cd_ee35722);
+ dp->~ee35722();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35722(Test_ee35722, "ee35722", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee35722C1Ev();
+extern void _ZN7ee35722D1Ev();
+Name_Map name_map_ee35722[] = {
+ NSPAIR(_ZN7ee35722C1Ev),
+ NSPAIR(_ZN7ee35722D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc722;
+extern VTBL_ENTRY _ZTI5cc722[];
+extern VTBL_ENTRY _ZTV5cc722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc722[];
+extern Class_Descriptor cd_dd5722;
+extern VTBL_ENTRY _ZTI6dd5722[];
+extern VTBL_ENTRY _ZTV6dd5722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5722[];
+static Base_Class bases_ee35722[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb22, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc722, 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_dd5722, ABISELECT(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 _ZTI7ee35722[];
+extern void _ZN7ee357223fooEv();
+extern void _ZN6dd57223barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee357223fooEv,_ZTv0_n16_N7ee357223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee357223fooEv,_ZThn16_N7ee357223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd57223barEv,_ZTv0_n20_N6dd57223barEv)();
+extern void ABISELECT(_ZThn16_N6dd57223barEv,_ZThn8_N6dd57223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee357223fooEv,_ZTv0_n12_N7ee357223fooEv)();
+extern void ABISELECT(_ZThn48_N7ee357223fooEv,_ZThn24_N7ee357223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd57223barEv,_ZTv0_n16_N6dd57223barEv)();
+extern void ABISELECT(_ZThn32_N6dd57223barEv,_ZThn16_N6dd57223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35722[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35722[0]),
+ (VTBL_ENTRY)&_ZN7ee357223fooEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35722[0]),
+ (VTBL_ENTRY)&_ZN6dd57223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee357223fooEv,_ZTv0_n16_N7ee357223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57223barEv,_ZTv0_n20_N6dd57223barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee35722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee357223fooEv,_ZTv0_n12_N7ee357223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57223barEv,_ZTv0_n16_N6dd57223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee35722[];
+extern void _ZN6dd57223barEv();
+static VTBL_ENTRY _tg__ZTV6dd5722__7ee35722[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5722[0]),
+ (VTBL_ENTRY)&_ZN6dd57223barEv,
+};
+extern void _ZN5cc7223fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57223barEv,_ZTv0_n20_N6dd57223barEv)();
+extern void ABISELECT(_ZThn16_N6dd57223barEv,_ZThn8_N6dd57223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc722__6dd5722__7ee35722[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57223barEv,_ZTv0_n20_N6dd57223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd57223barEv,_ZTv0_n16_N6dd57223barEv)();
+extern void ABISELECT(_ZThn32_N6dd57223barEv,_ZThn16_N6dd57223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd5722__7ee35722[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57223barEv,_ZTv0_n16_N6dd57223barEv),
+};
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc722__7ee35722[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc722__7ee35722[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+static VTT_ENTRY vtt_ee35722[] = {
+ {&(_ZTV7ee35722[5]), 5,25},
+ {&(_ZTV7ee35722[11]), 11,25},
+ {&(_ZTV7ee35722[17]), 17,25},
+ {&(_ZTV7ee35722[23]), 23,25},
+ {&(_tg__ZTV6dd5722__7ee35722[4]), 4,5},
+ {&(_tg__ZTV5cc722__6dd5722__7ee35722[5]), 5,7},
+ {&(_tg__ZTV4bb22__6dd5722__7ee35722[4]), 4,6},
+ {&(_tg__ZTV5cc722__7ee35722[3]), 3,5},
+ {&(_tg__ZTV4bb22__5cc722__7ee35722[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee35722[];
+extern VTBL_ENTRY _ZTV7ee35722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35722[];
+static VTBL_ENTRY alt_thunk_names1293[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd57223barEv,_ZTv0_n16_N6dd57223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57223barEv,_ZThn16_N6dd57223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57223barEv,_ZThn16_N6dd57223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee357223fooEv,_ZTv0_n12_N7ee357223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee357223fooEv,_ZThn24_N7ee357223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57223barEv,_ZTv0_n20_N6dd57223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57223barEv,_ZThn8_N6dd57223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57223barEv,_ZThn8_N6dd57223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee357223fooEv,_ZTv0_n16_N7ee357223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee357223fooEv,_ZThn16_N7ee357223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35722 = { "ee35722", // class name
+ bases_ee35722, 4,
+ &(vtc_ee35722[0]), // expected_vtbl_contents
+ &(vtt_ee35722[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee35722),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35722),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35722),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1293,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee45722 : dd5722 {
+ int e;
+ virtual void bar(); // _ZN7ee457223barEv
+ ~ee45722(); // tgen
+ ee45722(); // tgen
+};
+//SIG(1 ee45722) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee45722 ::bar(){vfunc_called(this, "_ZN7ee457223barEv");}
+ee45722 ::~ee45722(){ note_dtor("ee45722", this);} // tgen
+ee45722 ::ee45722(){ note_ctor("ee45722", this);} // tgen
+
+static void Test_ee45722()
+{
+ extern Class_Descriptor cd_ee45722;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee45722, buf);
+ ee45722 *dp, &lv = *(dp=new (buf) ee45722());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee45722)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45722)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee45722");
+ check_base_class_offset(lv, (bb22*)(cc722*), ABISELECT(32,20), "ee45722");
+ check_base_class_offset(lv, (cc722*)(dd5722*), ABISELECT(16,12), "ee45722");
+ check_base_class_offset(lv, (dd5722*), 0, "ee45722");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45722.e");
+ test_class_info(&lv, &cd_ee45722);
+ dp->~ee45722();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45722(Test_ee45722, "ee45722", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee45722C1Ev();
+extern void _ZN7ee45722D1Ev();
+Name_Map name_map_ee45722[] = {
+ NSPAIR(_ZN7ee45722C1Ev),
+ NSPAIR(_ZN7ee45722D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc722;
+extern VTBL_ENTRY _ZTI5cc722[];
+extern VTBL_ENTRY _ZTV5cc722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc722[];
+extern Class_Descriptor cd_dd5722;
+extern VTBL_ENTRY _ZTI6dd5722[];
+extern VTBL_ENTRY _ZTV6dd5722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5722[];
+static Base_Class bases_ee45722[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc722, 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_dd5722, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45722[];
+extern void _ZN7ee457223barEv();
+extern void _ZN5cc7223fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee457223barEv,_ZTv0_n20_N7ee457223barEv)();
+extern void ABISELECT(_ZThn16_N7ee457223barEv,_ZThn12_N7ee457223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee457223barEv,_ZTv0_n16_N7ee457223barEv)();
+extern void ABISELECT(_ZThn32_N7ee457223barEv,_ZThn20_N7ee457223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee45722[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45722[0]),
+ (VTBL_ENTRY)&_ZN7ee457223barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee457223barEv,_ZTv0_n20_N7ee457223barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee45722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee457223barEv,_ZTv0_n16_N7ee457223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee45722[];
+extern void _ZN6dd57223barEv();
+static VTBL_ENTRY _tg__ZTV6dd5722__7ee45722[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5722[0]),
+ (VTBL_ENTRY)&_ZN6dd57223barEv,
+};
+extern void _ZN5cc7223fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57223barEv,_ZTv0_n20_N6dd57223barEv)();
+extern void ABISELECT(_ZThn16_N6dd57223barEv,_ZThn12_N6dd57223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc722__6dd5722__7ee45722[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57223barEv,_ZTv0_n20_N6dd57223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd57223barEv,_ZTv0_n16_N6dd57223barEv)();
+extern void ABISELECT(_ZThn32_N6dd57223barEv,_ZThn20_N6dd57223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd5722__7ee45722[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57223barEv,_ZTv0_n16_N6dd57223barEv),
+};
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc722__7ee45722[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc722__7ee45722[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+static VTT_ENTRY vtt_ee45722[] = {
+ {&(_ZTV7ee45722[4]), 4,18},
+ {&(_tg__ZTV6dd5722__7ee45722[4]), 4,5},
+ {&(_tg__ZTV5cc722__6dd5722__7ee45722[5]), 5,7},
+ {&(_tg__ZTV4bb22__6dd5722__7ee45722[4]), 4,6},
+ {&(_ZTV7ee45722[10]), 10,18},
+ {&(_ZTV7ee45722[16]), 16,18},
+ {&(_tg__ZTV5cc722__7ee45722[3]), 3,5},
+ {&(_tg__ZTV4bb22__5cc722__7ee45722[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee45722[];
+extern VTBL_ENTRY _ZTV7ee45722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45722[];
+static VTBL_ENTRY alt_thunk_names1294[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd57223barEv,_ZTv0_n16_N6dd57223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57223barEv,_ZThn20_N6dd57223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57223barEv,_ZTv0_n20_N6dd57223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57223barEv,_ZThn12_N6dd57223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee457223barEv,_ZTv0_n16_N7ee457223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee457223barEv,_ZThn20_N7ee457223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee457223barEv,_ZTv0_n20_N7ee457223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee457223barEv,_ZThn12_N7ee457223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45722 = { "ee45722", // class name
+ bases_ee45722, 4,
+ &(vtc_ee45722[0]), // expected_vtbl_contents
+ &(vtt_ee45722[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee45722),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45722),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45722),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1294,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee55722 : virtual dd5722 {
+ int e;
+ virtual void bar(); // _ZN7ee557223barEv
+ ~ee55722(); // tgen
+ ee55722(); // tgen
+};
+//SIG(1 ee55722) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee55722 ::bar(){vfunc_called(this, "_ZN7ee557223barEv");}
+ee55722 ::~ee55722(){ note_dtor("ee55722", this);} // tgen
+ee55722 ::ee55722(){ note_ctor("ee55722", this);} // tgen
+
+static void Test_ee55722()
+{
+ extern Class_Descriptor cd_ee55722;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee55722, buf);
+ ee55722 *dp, &lv = *(dp=new (buf) ee55722());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee55722)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55722)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(48,24), "ee55722");
+ check_base_class_offset(lv, (bb22*)(cc722*), ABISELECT(48,24), "ee55722");
+ check_base_class_offset(lv, (cc722*)(dd5722*), ABISELECT(32,16), "ee55722");
+ check_base_class_offset(lv, (dd5722*), ABISELECT(16,8), "ee55722");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55722.e");
+ test_class_info(&lv, &cd_ee55722);
+ dp->~ee55722();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55722(Test_ee55722, "ee55722", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee55722C1Ev();
+extern void _ZN7ee55722D1Ev();
+Name_Map name_map_ee55722[] = {
+ NSPAIR(_ZN7ee55722C1Ev),
+ NSPAIR(_ZN7ee55722D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc722;
+extern VTBL_ENTRY _ZTI5cc722[];
+extern VTBL_ENTRY _ZTV5cc722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc722[];
+extern Class_Descriptor cd_dd5722;
+extern VTBL_ENTRY _ZTI6dd5722[];
+extern VTBL_ENTRY _ZTV6dd5722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5722[];
+static Base_Class bases_ee55722[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb22, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc722, 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_dd5722, ABISELECT(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 _ZTI7ee55722[];
+extern void _ZN7ee557223barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee557223barEv,_ZTv0_n20_N7ee557223barEv)();
+extern void ABISELECT(_ZThn16_N7ee557223barEv,_ZThn8_N7ee557223barEv)() __attribute__((weak));
+extern void _ZN5cc7223fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee557223barEv,_ZTv0_n20_N7ee557223barEv)();
+extern void ABISELECT(_ZThn32_N7ee557223barEv,_ZThn16_N7ee557223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee557223barEv,_ZTv0_n16_N7ee557223barEv)();
+extern void ABISELECT(_ZThn48_N7ee557223barEv,_ZThn24_N7ee557223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee55722[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55722[0]),
+ (VTBL_ENTRY)&_ZN7ee557223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee557223barEv,_ZTv0_n20_N7ee557223barEv),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee557223barEv,_ZTv0_n20_N7ee557223barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee55722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee557223barEv,_ZTv0_n16_N7ee557223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee55722[];
+extern void _ZN6dd57223barEv();
+static VTBL_ENTRY _tg__ZTV6dd5722__7ee55722[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5722[0]),
+ (VTBL_ENTRY)&_ZN6dd57223barEv,
+};
+extern void _ZN5cc7223fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57223barEv,_ZTv0_n20_N6dd57223barEv)();
+extern void ABISELECT(_ZThn16_N6dd57223barEv,_ZThn8_N6dd57223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc722__6dd5722__7ee55722[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57223barEv,_ZTv0_n20_N6dd57223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd57223barEv,_ZTv0_n16_N6dd57223barEv)();
+extern void ABISELECT(_ZThn32_N6dd57223barEv,_ZThn16_N6dd57223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd5722__7ee55722[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57223barEv,_ZTv0_n16_N6dd57223barEv),
+};
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc722__7ee55722[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc722__7ee55722[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+static VTT_ENTRY vtt_ee55722[] = {
+ {&(_ZTV7ee55722[5]), 5,25},
+ {&(_ZTV7ee55722[11]), 11,25},
+ {&(_ZTV7ee55722[17]), 17,25},
+ {&(_ZTV7ee55722[23]), 23,25},
+ {&(_tg__ZTV6dd5722__7ee55722[4]), 4,5},
+ {&(_tg__ZTV5cc722__6dd5722__7ee55722[5]), 5,7},
+ {&(_tg__ZTV4bb22__6dd5722__7ee55722[4]), 4,6},
+ {&(_tg__ZTV5cc722__7ee55722[3]), 3,5},
+ {&(_tg__ZTV4bb22__5cc722__7ee55722[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee55722[];
+extern VTBL_ENTRY _ZTV7ee55722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55722[];
+static VTBL_ENTRY alt_thunk_names1295[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd57223barEv,_ZTv0_n16_N6dd57223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57223barEv,_ZThn16_N6dd57223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57223barEv,_ZTv0_n20_N6dd57223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57223barEv,_ZThn8_N6dd57223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee557223barEv,_ZTv0_n16_N7ee557223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee557223barEv,_ZThn24_N7ee557223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee557223barEv,_ZTv0_n20_N7ee557223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee557223barEv,_ZThn16_N7ee557223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee557223barEv,_ZThn8_N7ee557223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55722 = { "ee55722", // class name
+ bases_ee55722, 4,
+ &(vtc_ee55722[0]), // expected_vtbl_contents
+ &(vtt_ee55722[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee55722),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55722),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55722),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1295,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee65722 : dd5722 {
+ int e;
+ virtual void foo(); // _ZN7ee657223fooEv
+ virtual void bar(); // _ZN7ee657223barEv
+ ~ee65722(); // tgen
+ ee65722(); // tgen
+};
+//SIG(1 ee65722) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65722 ::foo(){vfunc_called(this, "_ZN7ee657223fooEv");}
+void ee65722 ::bar(){vfunc_called(this, "_ZN7ee657223barEv");}
+ee65722 ::~ee65722(){ note_dtor("ee65722", this);} // tgen
+ee65722 ::ee65722(){ note_ctor("ee65722", this);} // tgen
+
+static void Test_ee65722()
+{
+ extern Class_Descriptor cd_ee65722;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee65722, buf);
+ ee65722 *dp, &lv = *(dp=new (buf) ee65722());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee65722)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65722)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee65722");
+ check_base_class_offset(lv, (bb22*)(cc722*), ABISELECT(32,20), "ee65722");
+ check_base_class_offset(lv, (cc722*)(dd5722*), ABISELECT(16,12), "ee65722");
+ check_base_class_offset(lv, (dd5722*), 0, "ee65722");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65722.e");
+ test_class_info(&lv, &cd_ee65722);
+ dp->~ee65722();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65722(Test_ee65722, "ee65722", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee65722C1Ev();
+extern void _ZN7ee65722D1Ev();
+Name_Map name_map_ee65722[] = {
+ NSPAIR(_ZN7ee65722C1Ev),
+ NSPAIR(_ZN7ee65722D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc722;
+extern VTBL_ENTRY _ZTI5cc722[];
+extern VTBL_ENTRY _ZTV5cc722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc722[];
+extern Class_Descriptor cd_dd5722;
+extern VTBL_ENTRY _ZTI6dd5722[];
+extern VTBL_ENTRY _ZTV6dd5722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5722[];
+static Base_Class bases_ee65722[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc722, 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_dd5722, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65722[];
+extern void _ZN7ee657223barEv();
+extern void _ZN7ee657223fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee657223fooEv,_ZTv0_n16_N7ee657223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee657223fooEv,_ZThn12_N7ee657223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee657223barEv,_ZTv0_n20_N7ee657223barEv)();
+extern void ABISELECT(_ZThn16_N7ee657223barEv,_ZThn12_N7ee657223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee657223fooEv,_ZTv0_n12_N7ee657223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee657223fooEv,_ZThn20_N7ee657223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee657223barEv,_ZTv0_n16_N7ee657223barEv)();
+extern void ABISELECT(_ZThn32_N7ee657223barEv,_ZThn20_N7ee657223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65722[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65722[0]),
+ (VTBL_ENTRY)&_ZN7ee657223barEv,
+ (VTBL_ENTRY)&_ZN7ee657223fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee657223fooEv,_ZTv0_n16_N7ee657223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee657223barEv,_ZTv0_n20_N7ee657223barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee65722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee657223fooEv,_ZTv0_n12_N7ee657223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee657223barEv,_ZTv0_n16_N7ee657223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee65722[];
+extern void _ZN6dd57223barEv();
+static VTBL_ENTRY _tg__ZTV6dd5722__7ee65722[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5722[0]),
+ (VTBL_ENTRY)&_ZN6dd57223barEv,
+};
+extern void _ZN5cc7223fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57223barEv,_ZTv0_n20_N6dd57223barEv)();
+extern void ABISELECT(_ZThn16_N6dd57223barEv,_ZThn12_N6dd57223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc722__6dd5722__7ee65722[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57223barEv,_ZTv0_n20_N6dd57223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd57223barEv,_ZTv0_n16_N6dd57223barEv)();
+extern void ABISELECT(_ZThn32_N6dd57223barEv,_ZThn20_N6dd57223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd5722__7ee65722[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57223barEv,_ZTv0_n16_N6dd57223barEv),
+};
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc722__7ee65722[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc722__7ee65722[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+static VTT_ENTRY vtt_ee65722[] = {
+ {&(_ZTV7ee65722[4]), 4,19},
+ {&(_tg__ZTV6dd5722__7ee65722[4]), 4,5},
+ {&(_tg__ZTV5cc722__6dd5722__7ee65722[5]), 5,7},
+ {&(_tg__ZTV4bb22__6dd5722__7ee65722[4]), 4,6},
+ {&(_ZTV7ee65722[11]), 11,19},
+ {&(_ZTV7ee65722[17]), 17,19},
+ {&(_tg__ZTV5cc722__7ee65722[3]), 3,5},
+ {&(_tg__ZTV4bb22__5cc722__7ee65722[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee65722[];
+extern VTBL_ENTRY _ZTV7ee65722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65722[];
+static VTBL_ENTRY alt_thunk_names1296[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd57223barEv,_ZTv0_n16_N6dd57223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57223barEv,_ZThn20_N6dd57223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57223barEv,_ZTv0_n20_N6dd57223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57223barEv,_ZThn12_N6dd57223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee657223barEv,_ZTv0_n16_N7ee657223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee657223barEv,_ZThn20_N7ee657223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee657223fooEv,_ZTv0_n12_N7ee657223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee657223fooEv,_ZThn20_N7ee657223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee657223barEv,_ZTv0_n20_N7ee657223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee657223barEv,_ZThn12_N7ee657223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee657223fooEv,_ZTv0_n16_N7ee657223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee657223fooEv,_ZThn12_N7ee657223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65722 = { "ee65722", // class name
+ bases_ee65722, 4,
+ &(vtc_ee65722[0]), // expected_vtbl_contents
+ &(vtt_ee65722[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee65722),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65722),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65722),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1296,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee75722 : virtual dd5722 {
+ int e;
+ virtual void foo(); // _ZN7ee757223fooEv
+ virtual void bar(); // _ZN7ee757223barEv
+ ~ee75722(); // tgen
+ ee75722(); // tgen
+};
+//SIG(1 ee75722) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75722 ::foo(){vfunc_called(this, "_ZN7ee757223fooEv");}
+void ee75722 ::bar(){vfunc_called(this, "_ZN7ee757223barEv");}
+ee75722 ::~ee75722(){ note_dtor("ee75722", this);} // tgen
+ee75722 ::ee75722(){ note_ctor("ee75722", this);} // tgen
+
+static void Test_ee75722()
+{
+ extern Class_Descriptor cd_ee75722;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee75722, buf);
+ ee75722 *dp, &lv = *(dp=new (buf) ee75722());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee75722)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75722)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(48,24), "ee75722");
+ check_base_class_offset(lv, (bb22*)(cc722*), ABISELECT(48,24), "ee75722");
+ check_base_class_offset(lv, (cc722*)(dd5722*), ABISELECT(32,16), "ee75722");
+ check_base_class_offset(lv, (dd5722*), ABISELECT(16,8), "ee75722");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75722.e");
+ test_class_info(&lv, &cd_ee75722);
+ dp->~ee75722();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75722(Test_ee75722, "ee75722", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee75722C1Ev();
+extern void _ZN7ee75722D1Ev();
+Name_Map name_map_ee75722[] = {
+ NSPAIR(_ZN7ee75722C1Ev),
+ NSPAIR(_ZN7ee75722D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc722;
+extern VTBL_ENTRY _ZTI5cc722[];
+extern VTBL_ENTRY _ZTV5cc722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc722[];
+extern Class_Descriptor cd_dd5722;
+extern VTBL_ENTRY _ZTI6dd5722[];
+extern VTBL_ENTRY _ZTV6dd5722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5722[];
+static Base_Class bases_ee75722[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb22, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc722, 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_dd5722, 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 _ZTI7ee75722[];
+extern void _ZN7ee757223fooEv();
+extern void _ZN7ee757223barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee757223barEv,_ZTv0_n20_N7ee757223barEv)();
+extern void ABISELECT(_ZThn16_N7ee757223barEv,_ZThn8_N7ee757223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee757223fooEv,_ZTv0_n16_N7ee757223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee757223fooEv,_ZThn16_N7ee757223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee757223barEv,_ZTv0_n20_N7ee757223barEv)();
+extern void ABISELECT(_ZThn32_N7ee757223barEv,_ZThn16_N7ee757223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee757223fooEv,_ZTv0_n12_N7ee757223fooEv)();
+extern void ABISELECT(_ZThn48_N7ee757223fooEv,_ZThn24_N7ee757223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee757223barEv,_ZTv0_n16_N7ee757223barEv)();
+extern void ABISELECT(_ZThn48_N7ee757223barEv,_ZThn24_N7ee757223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75722[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75722[0]),
+ (VTBL_ENTRY)&_ZN7ee757223fooEv,
+ (VTBL_ENTRY)&_ZN7ee757223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee757223barEv,_ZTv0_n20_N7ee757223barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee757223fooEv,_ZTv0_n16_N7ee757223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee757223barEv,_ZTv0_n20_N7ee757223barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee75722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee757223fooEv,_ZTv0_n12_N7ee757223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee757223barEv,_ZTv0_n16_N7ee757223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee75722[];
+extern void _ZN6dd57223barEv();
+static VTBL_ENTRY _tg__ZTV6dd5722__7ee75722[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5722[0]),
+ (VTBL_ENTRY)&_ZN6dd57223barEv,
+};
+extern void _ZN5cc7223fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57223barEv,_ZTv0_n20_N6dd57223barEv)();
+extern void ABISELECT(_ZThn16_N6dd57223barEv,_ZThn8_N6dd57223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc722__6dd5722__7ee75722[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57223barEv,_ZTv0_n20_N6dd57223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd57223barEv,_ZTv0_n16_N6dd57223barEv)();
+extern void ABISELECT(_ZThn32_N6dd57223barEv,_ZThn16_N6dd57223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd5722__7ee75722[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57223barEv,_ZTv0_n16_N6dd57223barEv),
+};
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc722__7ee75722[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc722__7ee75722[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+static VTT_ENTRY vtt_ee75722[] = {
+ {&(_ZTV7ee75722[5]), 5,26},
+ {&(_ZTV7ee75722[12]), 12,26},
+ {&(_ZTV7ee75722[18]), 18,26},
+ {&(_ZTV7ee75722[24]), 24,26},
+ {&(_tg__ZTV6dd5722__7ee75722[4]), 4,5},
+ {&(_tg__ZTV5cc722__6dd5722__7ee75722[5]), 5,7},
+ {&(_tg__ZTV4bb22__6dd5722__7ee75722[4]), 4,6},
+ {&(_tg__ZTV5cc722__7ee75722[3]), 3,5},
+ {&(_tg__ZTV4bb22__5cc722__7ee75722[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee75722[];
+extern VTBL_ENTRY _ZTV7ee75722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75722[];
+static VTBL_ENTRY alt_thunk_names1297[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd57223barEv,_ZTv0_n16_N6dd57223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57223barEv,_ZThn16_N6dd57223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57223barEv,_ZTv0_n20_N6dd57223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57223barEv,_ZThn8_N6dd57223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee757223barEv,_ZTv0_n16_N7ee757223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee757223barEv,_ZThn24_N7ee757223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee757223fooEv,_ZTv0_n12_N7ee757223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee757223fooEv,_ZThn24_N7ee757223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee757223fooEv,_ZTv0_n16_N7ee757223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee757223fooEv,_ZThn16_N7ee757223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee757223barEv,_ZTv0_n20_N7ee757223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee757223barEv,_ZThn16_N7ee757223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee757223barEv,_ZThn8_N7ee757223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75722 = { "ee75722", // class name
+ bases_ee75722, 4,
+ &(vtc_ee75722[0]), // expected_vtbl_contents
+ &(vtt_ee75722[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee75722),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75722),26, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75722),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1297,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd6722 : cc722 {
+ int d;
+ virtual void bar(); // _ZN6dd67223barEv
+ virtual void foo(); // _ZN6dd67223fooEv
+ ~dd6722(); // tgen
+ dd6722(); // tgen
+};
+//SIG(-1 dd6722) C1{ BC2{ VBC3{ BC4{ v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void dd6722 ::bar(){vfunc_called(this, "_ZN6dd67223barEv");}
+void dd6722 ::foo(){vfunc_called(this, "_ZN6dd67223fooEv");}
+dd6722 ::~dd6722(){ note_dtor("dd6722", this);} // tgen
+dd6722 ::dd6722(){ note_ctor("dd6722", this);} // tgen
+
+static void Test_dd6722()
+{
+ extern Class_Descriptor cd_dd6722;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd6722, buf);
+ dd6722 *dp, &lv = *(dp=new (buf) dd6722());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd6722)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6722)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(16,12), "dd6722");
+ check_base_class_offset(lv, (bb22*)(cc722*), ABISELECT(16,12), "dd6722");
+ check_base_class_offset(lv, (cc722*), 0, "dd6722");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd6722.d");
+ test_class_info(&lv, &cd_dd6722);
+ dp->~dd6722();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6722(Test_dd6722, "dd6722", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd6722C1Ev();
+extern void _ZN6dd6722D1Ev();
+Name_Map name_map_dd6722[] = {
+ NSPAIR(_ZN6dd6722C1Ev),
+ NSPAIR(_ZN6dd6722D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc722;
+extern VTBL_ENTRY _ZTI5cc722[];
+extern VTBL_ENTRY _ZTV5cc722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc722[];
+static Base_Class bases_dd6722[] = {
+ // 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_bb22, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc722, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd6722[];
+extern void _ZN6dd67223fooEv();
+extern void _ZN6dd67223barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd67223fooEv,_ZTv0_n12_N6dd67223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd67223fooEv,_ZThn12_N6dd67223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd67223barEv,_ZTv0_n16_N6dd67223barEv)();
+extern void ABISELECT(_ZThn16_N6dd67223barEv,_ZThn12_N6dd67223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd6722[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6722[0]),
+ (VTBL_ENTRY)&_ZN6dd67223fooEv,
+ (VTBL_ENTRY)&_ZN6dd67223barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67223fooEv,_ZTv0_n12_N6dd67223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67223barEv,_ZTv0_n16_N6dd67223barEv),
+};
+extern VTBL_ENTRY _ZTV6dd6722[];
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc722__6dd6722[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn12_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn12_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc722__6dd6722[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+static VTT_ENTRY vtt_dd6722[] = {
+ {&(_ZTV6dd6722[3]), 3,11},
+ {&(_tg__ZTV5cc722__6dd6722[3]), 3,5},
+ {&(_tg__ZTV4bb22__5cc722__6dd6722[4]), 4,6},
+ {&(_ZTV6dd6722[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd6722[];
+extern VTBL_ENTRY _ZTV6dd6722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6722[];
+static VTBL_ENTRY alt_thunk_names1298[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn12_N5cc7223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn12_N5cc7223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd67223barEv,_ZTv0_n16_N6dd67223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67223barEv,_ZThn12_N6dd67223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67223fooEv,_ZTv0_n12_N6dd67223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67223fooEv,_ZThn12_N6dd67223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd6722 = { "dd6722", // class name
+ bases_dd6722, 3,
+ &(vtc_dd6722[0]), // expected_vtbl_contents
+ &(vtt_dd6722[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd6722),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6722),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd6722),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1298,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee06722 : dd6722 {
+ int e;
+ ~ee06722(); // tgen
+ ee06722(); // tgen
+};
+//SIG(1 ee06722) C1{ BC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee06722 ::~ee06722(){ note_dtor("ee06722", this);} // tgen
+ee06722 ::ee06722(){ note_ctor("ee06722", this);} // tgen
+
+static void Test_ee06722()
+{
+ extern Class_Descriptor cd_ee06722;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee06722, buf);
+ ee06722 *dp, &lv = *(dp=new (buf) ee06722());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee06722)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06722)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(24,16), "ee06722");
+ check_base_class_offset(lv, (bb22*)(cc722*)(dd6722*), ABISELECT(24,16), "ee06722");
+ check_base_class_offset(lv, (cc722*)(dd6722*), 0, "ee06722");
+ check_base_class_offset(lv, (dd6722*), 0, "ee06722");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee06722.e");
+ test_class_info(&lv, &cd_ee06722);
+ dp->~ee06722();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06722(Test_ee06722, "ee06722", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee06722C1Ev();
+extern void _ZN7ee06722D1Ev();
+Name_Map name_map_ee06722[] = {
+ NSPAIR(_ZN7ee06722C1Ev),
+ NSPAIR(_ZN7ee06722D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc722;
+extern VTBL_ENTRY _ZTI5cc722[];
+extern VTBL_ENTRY _ZTV5cc722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc722[];
+extern Class_Descriptor cd_dd6722;
+extern VTBL_ENTRY _ZTI6dd6722[];
+extern VTBL_ENTRY _ZTV6dd6722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6722[];
+static Base_Class bases_ee06722[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc722, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6722, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee06722[];
+extern void _ZN6dd67223fooEv();
+extern void _ZN6dd67223barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd67223fooEv,_ZTv0_n12_N6dd67223fooEv)();
+extern void ABISELECT(_ZThn24_N6dd67223fooEv,_ZThn16_N6dd67223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd67223barEv,_ZTv0_n16_N6dd67223barEv)();
+extern void ABISELECT(_ZThn24_N6dd67223barEv,_ZThn16_N6dd67223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee06722[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06722[0]),
+ (VTBL_ENTRY)&_ZN6dd67223fooEv,
+ (VTBL_ENTRY)&_ZN6dd67223barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee06722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67223fooEv,_ZTv0_n12_N6dd67223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67223barEv,_ZTv0_n16_N6dd67223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee06722[];
+extern void _ZN6dd67223fooEv();
+extern void _ZN6dd67223barEv();
+static VTBL_ENTRY _tg__ZTV6dd6722__7ee06722[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6722[0]),
+ (VTBL_ENTRY)&_ZN6dd67223fooEv,
+ (VTBL_ENTRY)&_ZN6dd67223barEv,
+};
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc7226dd6722__7ee06722[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7223fooEv,_ZThn16_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn24_N5cc7223barEv,_ZThn16_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc7226dd6722__7ee06722[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd67223fooEv,_ZTv0_n12_N6dd67223fooEv)();
+extern void ABISELECT(_ZThn24_N6dd67223fooEv,_ZThn16_N6dd67223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd67223barEv,_ZTv0_n16_N6dd67223barEv)();
+extern void ABISELECT(_ZThn24_N6dd67223barEv,_ZThn16_N6dd67223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd6722__7ee06722[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67223fooEv,_ZTv0_n12_N6dd67223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67223barEv,_ZTv0_n16_N6dd67223barEv),
+};
+static VTT_ENTRY vtt_ee06722[] = {
+ {&(_ZTV7ee06722[3]), 3,11},
+ {&(_tg__ZTV6dd6722__7ee06722[3]), 3,5},
+ {&(_tg__ZTV5cc7226dd6722__7ee06722[3]), 3,5},
+ {&(_tg__ZTV4bb22__5cc7226dd6722__7ee06722[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd6722__7ee06722[4]), 4,6},
+ {&(_ZTV7ee06722[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee06722[];
+extern VTBL_ENTRY _ZTV7ee06722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee06722[];
+static VTBL_ENTRY alt_thunk_names1299[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7223barEv,_ZThn16_N5cc7223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7223fooEv,_ZThn16_N5cc7223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd67223barEv,_ZTv0_n16_N6dd67223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67223barEv,_ZThn16_N6dd67223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67223barEv,_ZThn16_N6dd67223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67223fooEv,_ZTv0_n12_N6dd67223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67223fooEv,_ZThn16_N6dd67223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67223fooEv,_ZThn16_N6dd67223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee06722 = { "ee06722", // class name
+ bases_ee06722, 4,
+ &(vtc_ee06722[0]), // expected_vtbl_contents
+ &(vtt_ee06722[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee06722),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06722),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee06722),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1299,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee16722 : virtual dd6722 {
+ int e;
+ ~ee16722(); // tgen
+ ee16722(); // tgen
+};
+//SIG(1 ee16722) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee16722 ::~ee16722(){ note_dtor("ee16722", this);} // tgen
+ee16722 ::ee16722(){ note_ctor("ee16722", this);} // tgen
+
+static void Test_ee16722()
+{
+ extern Class_Descriptor cd_ee16722;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee16722, buf);
+ ee16722 *dp, &lv = *(dp=new (buf) ee16722());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee16722)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16722)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee16722");
+ check_base_class_offset(lv, (bb22*)(cc722*)(dd6722*), ABISELECT(32,20), "ee16722");
+ check_base_class_offset(lv, (cc722*)(dd6722*), ABISELECT(16,8), "ee16722");
+ check_base_class_offset(lv, (dd6722*), ABISELECT(16,8), "ee16722");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16722.e");
+ test_class_info(&lv, &cd_ee16722);
+ dp->~ee16722();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16722(Test_ee16722, "ee16722", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee16722C1Ev();
+extern void _ZN7ee16722D1Ev();
+Name_Map name_map_ee16722[] = {
+ NSPAIR(_ZN7ee16722C1Ev),
+ NSPAIR(_ZN7ee16722D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc722;
+extern VTBL_ENTRY _ZTI5cc722[];
+extern VTBL_ENTRY _ZTV5cc722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc722[];
+extern Class_Descriptor cd_dd6722;
+extern VTBL_ENTRY _ZTI6dd6722[];
+extern VTBL_ENTRY _ZTV6dd6722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6722[];
+static Base_Class bases_ee16722[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc722, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6722, 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 _ZTI7ee16722[];
+extern void _ZN6dd67223fooEv();
+extern void _ZN6dd67223barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd67223fooEv,_ZTv0_n12_N6dd67223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd67223fooEv,_ZThn12_N6dd67223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd67223barEv,_ZTv0_n16_N6dd67223barEv)();
+extern void ABISELECT(_ZThn16_N6dd67223barEv,_ZThn12_N6dd67223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee16722[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16722[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16722[0]),
+ (VTBL_ENTRY)&_ZN6dd67223fooEv,
+ (VTBL_ENTRY)&_ZN6dd67223barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee16722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67223fooEv,_ZTv0_n12_N6dd67223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67223barEv,_ZTv0_n16_N6dd67223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee16722[];
+extern void _ZN6dd67223fooEv();
+extern void _ZN6dd67223barEv();
+static VTBL_ENTRY _tg__ZTV6dd6722__7ee16722[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6722[0]),
+ (VTBL_ENTRY)&_ZN6dd67223fooEv,
+ (VTBL_ENTRY)&_ZN6dd67223barEv,
+};
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc7226dd6722__7ee16722[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn12_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn12_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc7226dd6722__7ee16722[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd67223fooEv,_ZTv0_n12_N6dd67223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd67223fooEv,_ZThn12_N6dd67223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd67223barEv,_ZTv0_n16_N6dd67223barEv)();
+extern void ABISELECT(_ZThn16_N6dd67223barEv,_ZThn12_N6dd67223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd6722__7ee16722[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67223fooEv,_ZTv0_n12_N6dd67223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67223barEv,_ZTv0_n16_N6dd67223barEv),
+};
+static VTT_ENTRY vtt_ee16722[] = {
+ {&(_ZTV7ee16722[4]), 4,17},
+ {&(_ZTV7ee16722[9]), 9,17},
+ {&(_ZTV7ee16722[15]), 15,17},
+ {&(_tg__ZTV6dd6722__7ee16722[3]), 3,5},
+ {&(_tg__ZTV5cc7226dd6722__7ee16722[3]), 3,5},
+ {&(_tg__ZTV4bb22__5cc7226dd6722__7ee16722[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd6722__7ee16722[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee16722[];
+extern VTBL_ENTRY _ZTV7ee16722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16722[];
+static VTBL_ENTRY alt_thunk_names1300[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn12_N5cc7223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn12_N5cc7223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd67223barEv,_ZTv0_n16_N6dd67223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67223barEv,_ZThn12_N6dd67223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67223barEv,_ZThn12_N6dd67223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67223fooEv,_ZTv0_n12_N6dd67223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67223fooEv,_ZThn12_N6dd67223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67223fooEv,_ZThn12_N6dd67223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee16722 = { "ee16722", // class name
+ bases_ee16722, 4,
+ &(vtc_ee16722[0]), // expected_vtbl_contents
+ &(vtt_ee16722[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee16722),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16722),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16722),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1300,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee26722 : dd6722 {
+ int e;
+ virtual void foo(); // _ZN7ee267223fooEv
+ ~ee26722(); // tgen
+ ee26722(); // tgen
+};
+//SIG(1 ee26722) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26722 ::foo(){vfunc_called(this, "_ZN7ee267223fooEv");}
+ee26722 ::~ee26722(){ note_dtor("ee26722", this);} // tgen
+ee26722 ::ee26722(){ note_ctor("ee26722", this);} // tgen
+
+static void Test_ee26722()
+{
+ extern Class_Descriptor cd_ee26722;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee26722, buf);
+ ee26722 *dp, &lv = *(dp=new (buf) ee26722());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee26722)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26722)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(24,16), "ee26722");
+ check_base_class_offset(lv, (bb22*)(cc722*)(dd6722*), ABISELECT(24,16), "ee26722");
+ check_base_class_offset(lv, (cc722*)(dd6722*), 0, "ee26722");
+ check_base_class_offset(lv, (dd6722*), 0, "ee26722");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee26722.e");
+ test_class_info(&lv, &cd_ee26722);
+ dp->~ee26722();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26722(Test_ee26722, "ee26722", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee26722C1Ev();
+extern void _ZN7ee26722D1Ev();
+Name_Map name_map_ee26722[] = {
+ NSPAIR(_ZN7ee26722C1Ev),
+ NSPAIR(_ZN7ee26722D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc722;
+extern VTBL_ENTRY _ZTI5cc722[];
+extern VTBL_ENTRY _ZTV5cc722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc722[];
+extern Class_Descriptor cd_dd6722;
+extern VTBL_ENTRY _ZTI6dd6722[];
+extern VTBL_ENTRY _ZTV6dd6722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6722[];
+static Base_Class bases_ee26722[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc722, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6722, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee26722[];
+extern void _ZN7ee267223fooEv();
+extern void _ZN6dd67223barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee267223fooEv,_ZTv0_n12_N7ee267223fooEv)();
+extern void ABISELECT(_ZThn24_N7ee267223fooEv,_ZThn16_N7ee267223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd67223barEv,_ZTv0_n16_N6dd67223barEv)();
+extern void ABISELECT(_ZThn24_N6dd67223barEv,_ZThn16_N6dd67223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee26722[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26722[0]),
+ (VTBL_ENTRY)&_ZN7ee267223fooEv,
+ (VTBL_ENTRY)&_ZN6dd67223barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee26722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee267223fooEv,_ZTv0_n12_N7ee267223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67223barEv,_ZTv0_n16_N6dd67223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee26722[];
+extern void _ZN6dd67223fooEv();
+extern void _ZN6dd67223barEv();
+static VTBL_ENTRY _tg__ZTV6dd6722__7ee26722[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6722[0]),
+ (VTBL_ENTRY)&_ZN6dd67223fooEv,
+ (VTBL_ENTRY)&_ZN6dd67223barEv,
+};
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc7226dd6722__7ee26722[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7223fooEv,_ZThn16_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn24_N5cc7223barEv,_ZThn16_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc7226dd6722__7ee26722[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd67223fooEv,_ZTv0_n12_N6dd67223fooEv)();
+extern void ABISELECT(_ZThn24_N6dd67223fooEv,_ZThn16_N6dd67223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd67223barEv,_ZTv0_n16_N6dd67223barEv)();
+extern void ABISELECT(_ZThn24_N6dd67223barEv,_ZThn16_N6dd67223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd6722__7ee26722[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67223fooEv,_ZTv0_n12_N6dd67223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67223barEv,_ZTv0_n16_N6dd67223barEv),
+};
+static VTT_ENTRY vtt_ee26722[] = {
+ {&(_ZTV7ee26722[3]), 3,11},
+ {&(_tg__ZTV6dd6722__7ee26722[3]), 3,5},
+ {&(_tg__ZTV5cc7226dd6722__7ee26722[3]), 3,5},
+ {&(_tg__ZTV4bb22__5cc7226dd6722__7ee26722[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd6722__7ee26722[4]), 4,6},
+ {&(_ZTV7ee26722[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee26722[];
+extern VTBL_ENTRY _ZTV7ee26722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee26722[];
+static VTBL_ENTRY alt_thunk_names1301[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67223fooEv,_ZTv0_n12_N6dd67223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67223fooEv,_ZThn16_N6dd67223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7223barEv,_ZThn16_N5cc7223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7223fooEv,_ZThn16_N5cc7223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd67223barEv,_ZTv0_n16_N6dd67223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67223barEv,_ZThn16_N6dd67223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67223barEv,_ZThn16_N6dd67223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee267223fooEv,_ZTv0_n12_N7ee267223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee267223fooEv,_ZThn16_N7ee267223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee26722 = { "ee26722", // class name
+ bases_ee26722, 4,
+ &(vtc_ee26722[0]), // expected_vtbl_contents
+ &(vtt_ee26722[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee26722),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26722),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee26722),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1301,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee36722 : virtual dd6722 {
+ int e;
+ virtual void foo(); // _ZN7ee367223fooEv
+ ~ee36722(); // tgen
+ ee36722(); // tgen
+};
+//SIG(1 ee36722) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36722 ::foo(){vfunc_called(this, "_ZN7ee367223fooEv");}
+ee36722 ::~ee36722(){ note_dtor("ee36722", this);} // tgen
+ee36722 ::ee36722(){ note_ctor("ee36722", this);} // tgen
+
+static void Test_ee36722()
+{
+ extern Class_Descriptor cd_ee36722;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee36722, buf);
+ ee36722 *dp, &lv = *(dp=new (buf) ee36722());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee36722)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36722)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee36722");
+ check_base_class_offset(lv, (bb22*)(cc722*)(dd6722*), ABISELECT(32,20), "ee36722");
+ check_base_class_offset(lv, (cc722*)(dd6722*), ABISELECT(16,8), "ee36722");
+ check_base_class_offset(lv, (dd6722*), ABISELECT(16,8), "ee36722");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36722.e");
+ test_class_info(&lv, &cd_ee36722);
+ dp->~ee36722();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36722(Test_ee36722, "ee36722", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee36722C1Ev();
+extern void _ZN7ee36722D1Ev();
+Name_Map name_map_ee36722[] = {
+ NSPAIR(_ZN7ee36722C1Ev),
+ NSPAIR(_ZN7ee36722D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc722;
+extern VTBL_ENTRY _ZTI5cc722[];
+extern VTBL_ENTRY _ZTV5cc722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc722[];
+extern Class_Descriptor cd_dd6722;
+extern VTBL_ENTRY _ZTI6dd6722[];
+extern VTBL_ENTRY _ZTV6dd6722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6722[];
+static Base_Class bases_ee36722[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc722, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6722, 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 _ZTI7ee36722[];
+extern void _ZN7ee367223fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee367223fooEv,_ZTv0_n16_N7ee367223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee367223fooEv,_ZThn8_N7ee367223fooEv)() __attribute__((weak));
+extern void _ZN6dd67223barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee367223fooEv,_ZTv0_n12_N7ee367223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee367223fooEv,_ZThn20_N7ee367223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd67223barEv,_ZTv0_n16_N6dd67223barEv)();
+extern void ABISELECT(_ZThn16_N6dd67223barEv,_ZThn12_N6dd67223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee36722[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36722[0]),
+ (VTBL_ENTRY)&_ZN7ee367223fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee367223fooEv,_ZTv0_n16_N7ee367223fooEv),
+ (VTBL_ENTRY)&_ZN6dd67223barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee36722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee367223fooEv,_ZTv0_n12_N7ee367223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67223barEv,_ZTv0_n16_N6dd67223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee36722[];
+extern void _ZN6dd67223fooEv();
+extern void _ZN6dd67223barEv();
+static VTBL_ENTRY _tg__ZTV6dd6722__7ee36722[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6722[0]),
+ (VTBL_ENTRY)&_ZN6dd67223fooEv,
+ (VTBL_ENTRY)&_ZN6dd67223barEv,
+};
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc7226dd6722__7ee36722[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn12_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn12_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc7226dd6722__7ee36722[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd67223fooEv,_ZTv0_n12_N6dd67223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd67223fooEv,_ZThn12_N6dd67223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd67223barEv,_ZTv0_n16_N6dd67223barEv)();
+extern void ABISELECT(_ZThn16_N6dd67223barEv,_ZThn12_N6dd67223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd6722__7ee36722[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67223fooEv,_ZTv0_n12_N6dd67223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67223barEv,_ZTv0_n16_N6dd67223barEv),
+};
+static VTT_ENTRY vtt_ee36722[] = {
+ {&(_ZTV7ee36722[4]), 4,18},
+ {&(_ZTV7ee36722[10]), 10,18},
+ {&(_ZTV7ee36722[16]), 16,18},
+ {&(_tg__ZTV6dd6722__7ee36722[3]), 3,5},
+ {&(_tg__ZTV5cc7226dd6722__7ee36722[3]), 3,5},
+ {&(_tg__ZTV4bb22__5cc7226dd6722__7ee36722[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd6722__7ee36722[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee36722[];
+extern VTBL_ENTRY _ZTV7ee36722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36722[];
+static VTBL_ENTRY alt_thunk_names1302[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67223fooEv,_ZTv0_n12_N6dd67223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67223fooEv,_ZThn12_N6dd67223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn12_N5cc7223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn12_N5cc7223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd67223barEv,_ZTv0_n16_N6dd67223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67223barEv,_ZThn12_N6dd67223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67223barEv,_ZThn12_N6dd67223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee367223fooEv,_ZTv0_n12_N7ee367223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee367223fooEv,_ZThn20_N7ee367223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee367223fooEv,_ZTv0_n16_N7ee367223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee367223fooEv,_ZThn8_N7ee367223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36722 = { "ee36722", // class name
+ bases_ee36722, 4,
+ &(vtc_ee36722[0]), // expected_vtbl_contents
+ &(vtt_ee36722[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee36722),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36722),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36722),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1302,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee46722 : dd6722 {
+ int e;
+ virtual void bar(); // _ZN7ee467223barEv
+ ~ee46722(); // tgen
+ ee46722(); // tgen
+};
+//SIG(1 ee46722) C1{ BC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46722 ::bar(){vfunc_called(this, "_ZN7ee467223barEv");}
+ee46722 ::~ee46722(){ note_dtor("ee46722", this);} // tgen
+ee46722 ::ee46722(){ note_ctor("ee46722", this);} // tgen
+
+static void Test_ee46722()
+{
+ extern Class_Descriptor cd_ee46722;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee46722, buf);
+ ee46722 *dp, &lv = *(dp=new (buf) ee46722());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee46722)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46722)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(24,16), "ee46722");
+ check_base_class_offset(lv, (bb22*)(cc722*)(dd6722*), ABISELECT(24,16), "ee46722");
+ check_base_class_offset(lv, (cc722*)(dd6722*), 0, "ee46722");
+ check_base_class_offset(lv, (dd6722*), 0, "ee46722");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee46722.e");
+ test_class_info(&lv, &cd_ee46722);
+ dp->~ee46722();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46722(Test_ee46722, "ee46722", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee46722C1Ev();
+extern void _ZN7ee46722D1Ev();
+Name_Map name_map_ee46722[] = {
+ NSPAIR(_ZN7ee46722C1Ev),
+ NSPAIR(_ZN7ee46722D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc722;
+extern VTBL_ENTRY _ZTI5cc722[];
+extern VTBL_ENTRY _ZTV5cc722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc722[];
+extern Class_Descriptor cd_dd6722;
+extern VTBL_ENTRY _ZTI6dd6722[];
+extern VTBL_ENTRY _ZTV6dd6722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6722[];
+static Base_Class bases_ee46722[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc722, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6722, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee46722[];
+extern void _ZN6dd67223fooEv();
+extern void _ZN7ee467223barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd67223fooEv,_ZTv0_n12_N6dd67223fooEv)();
+extern void ABISELECT(_ZThn24_N6dd67223fooEv,_ZThn16_N6dd67223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee467223barEv,_ZTv0_n16_N7ee467223barEv)();
+extern void ABISELECT(_ZThn24_N7ee467223barEv,_ZThn16_N7ee467223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee46722[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46722[0]),
+ (VTBL_ENTRY)&_ZN6dd67223fooEv,
+ (VTBL_ENTRY)&_ZN7ee467223barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee46722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67223fooEv,_ZTv0_n12_N6dd67223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee467223barEv,_ZTv0_n16_N7ee467223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee46722[];
+extern void _ZN6dd67223fooEv();
+extern void _ZN6dd67223barEv();
+static VTBL_ENTRY _tg__ZTV6dd6722__7ee46722[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6722[0]),
+ (VTBL_ENTRY)&_ZN6dd67223fooEv,
+ (VTBL_ENTRY)&_ZN6dd67223barEv,
+};
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc7226dd6722__7ee46722[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7223fooEv,_ZThn16_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn24_N5cc7223barEv,_ZThn16_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc7226dd6722__7ee46722[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd67223fooEv,_ZTv0_n12_N6dd67223fooEv)();
+extern void ABISELECT(_ZThn24_N6dd67223fooEv,_ZThn16_N6dd67223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd67223barEv,_ZTv0_n16_N6dd67223barEv)();
+extern void ABISELECT(_ZThn24_N6dd67223barEv,_ZThn16_N6dd67223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd6722__7ee46722[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67223fooEv,_ZTv0_n12_N6dd67223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67223barEv,_ZTv0_n16_N6dd67223barEv),
+};
+static VTT_ENTRY vtt_ee46722[] = {
+ {&(_ZTV7ee46722[3]), 3,11},
+ {&(_tg__ZTV6dd6722__7ee46722[3]), 3,5},
+ {&(_tg__ZTV5cc7226dd6722__7ee46722[3]), 3,5},
+ {&(_tg__ZTV4bb22__5cc7226dd6722__7ee46722[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd6722__7ee46722[4]), 4,6},
+ {&(_ZTV7ee46722[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee46722[];
+extern VTBL_ENTRY _ZTV7ee46722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee46722[];
+static VTBL_ENTRY alt_thunk_names1303[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd67223barEv,_ZTv0_n16_N6dd67223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67223barEv,_ZThn16_N6dd67223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7223barEv,_ZThn16_N5cc7223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7223fooEv,_ZThn16_N5cc7223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee467223barEv,_ZTv0_n16_N7ee467223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee467223barEv,_ZThn16_N7ee467223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67223fooEv,_ZTv0_n12_N6dd67223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67223fooEv,_ZThn16_N6dd67223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67223fooEv,_ZThn16_N6dd67223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee46722 = { "ee46722", // class name
+ bases_ee46722, 4,
+ &(vtc_ee46722[0]), // expected_vtbl_contents
+ &(vtt_ee46722[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee46722),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46722),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee46722),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1303,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee56722 : virtual dd6722 {
+ int e;
+ virtual void bar(); // _ZN7ee567223barEv
+ ~ee56722(); // tgen
+ ee56722(); // tgen
+};
+//SIG(1 ee56722) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56722 ::bar(){vfunc_called(this, "_ZN7ee567223barEv");}
+ee56722 ::~ee56722(){ note_dtor("ee56722", this);} // tgen
+ee56722 ::ee56722(){ note_ctor("ee56722", this);} // tgen
+
+static void Test_ee56722()
+{
+ extern Class_Descriptor cd_ee56722;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee56722, buf);
+ ee56722 *dp, &lv = *(dp=new (buf) ee56722());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee56722)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56722)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee56722");
+ check_base_class_offset(lv, (bb22*)(cc722*)(dd6722*), ABISELECT(32,20), "ee56722");
+ check_base_class_offset(lv, (cc722*)(dd6722*), ABISELECT(16,8), "ee56722");
+ check_base_class_offset(lv, (dd6722*), ABISELECT(16,8), "ee56722");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56722.e");
+ test_class_info(&lv, &cd_ee56722);
+ dp->~ee56722();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56722(Test_ee56722, "ee56722", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee56722C1Ev();
+extern void _ZN7ee56722D1Ev();
+Name_Map name_map_ee56722[] = {
+ NSPAIR(_ZN7ee56722C1Ev),
+ NSPAIR(_ZN7ee56722D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc722;
+extern VTBL_ENTRY _ZTI5cc722[];
+extern VTBL_ENTRY _ZTV5cc722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc722[];
+extern Class_Descriptor cd_dd6722;
+extern VTBL_ENTRY _ZTI6dd6722[];
+extern VTBL_ENTRY _ZTV6dd6722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6722[];
+static Base_Class bases_ee56722[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc722, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6722, 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 _ZTI7ee56722[];
+extern void _ZN7ee567223barEv();
+extern void _ZN6dd67223fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee567223barEv,_ZTv0_n20_N7ee567223barEv)();
+extern void ABISELECT(_ZThn16_N7ee567223barEv,_ZThn8_N7ee567223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd67223fooEv,_ZTv0_n12_N6dd67223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd67223fooEv,_ZThn12_N6dd67223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee567223barEv,_ZTv0_n16_N7ee567223barEv)();
+extern void ABISELECT(_ZThn32_N7ee567223barEv,_ZThn20_N7ee567223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56722[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56722[0]),
+ (VTBL_ENTRY)&_ZN7ee567223barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56722[0]),
+ (VTBL_ENTRY)&_ZN6dd67223fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee567223barEv,_ZTv0_n20_N7ee567223barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee56722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67223fooEv,_ZTv0_n12_N6dd67223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee567223barEv,_ZTv0_n16_N7ee567223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee56722[];
+extern void _ZN6dd67223fooEv();
+extern void _ZN6dd67223barEv();
+static VTBL_ENTRY _tg__ZTV6dd6722__7ee56722[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6722[0]),
+ (VTBL_ENTRY)&_ZN6dd67223fooEv,
+ (VTBL_ENTRY)&_ZN6dd67223barEv,
+};
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc7226dd6722__7ee56722[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn12_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn12_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc7226dd6722__7ee56722[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd67223fooEv,_ZTv0_n12_N6dd67223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd67223fooEv,_ZThn12_N6dd67223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd67223barEv,_ZTv0_n16_N6dd67223barEv)();
+extern void ABISELECT(_ZThn16_N6dd67223barEv,_ZThn12_N6dd67223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd6722__7ee56722[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67223fooEv,_ZTv0_n12_N6dd67223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67223barEv,_ZTv0_n16_N6dd67223barEv),
+};
+static VTT_ENTRY vtt_ee56722[] = {
+ {&(_ZTV7ee56722[4]), 4,18},
+ {&(_ZTV7ee56722[10]), 10,18},
+ {&(_ZTV7ee56722[16]), 16,18},
+ {&(_tg__ZTV6dd6722__7ee56722[3]), 3,5},
+ {&(_tg__ZTV5cc7226dd6722__7ee56722[3]), 3,5},
+ {&(_tg__ZTV4bb22__5cc7226dd6722__7ee56722[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd6722__7ee56722[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee56722[];
+extern VTBL_ENTRY _ZTV7ee56722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56722[];
+static VTBL_ENTRY alt_thunk_names1304[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd67223barEv,_ZTv0_n16_N6dd67223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67223barEv,_ZThn12_N6dd67223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn12_N5cc7223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn12_N5cc7223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee567223barEv,_ZTv0_n16_N7ee567223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee567223barEv,_ZThn20_N7ee567223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67223fooEv,_ZTv0_n12_N6dd67223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67223fooEv,_ZThn12_N6dd67223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67223fooEv,_ZThn12_N6dd67223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee567223barEv,_ZTv0_n20_N7ee567223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee567223barEv,_ZThn8_N7ee567223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56722 = { "ee56722", // class name
+ bases_ee56722, 4,
+ &(vtc_ee56722[0]), // expected_vtbl_contents
+ &(vtt_ee56722[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee56722),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56722),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56722),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1304,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee66722 : dd6722 {
+ int e;
+ virtual void foo(); // _ZN7ee667223fooEv
+ virtual void bar(); // _ZN7ee667223barEv
+ ~ee66722(); // tgen
+ ee66722(); // tgen
+};
+//SIG(1 ee66722) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66722 ::foo(){vfunc_called(this, "_ZN7ee667223fooEv");}
+void ee66722 ::bar(){vfunc_called(this, "_ZN7ee667223barEv");}
+ee66722 ::~ee66722(){ note_dtor("ee66722", this);} // tgen
+ee66722 ::ee66722(){ note_ctor("ee66722", this);} // tgen
+
+static void Test_ee66722()
+{
+ extern Class_Descriptor cd_ee66722;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee66722, buf);
+ ee66722 *dp, &lv = *(dp=new (buf) ee66722());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee66722)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66722)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(24,16), "ee66722");
+ check_base_class_offset(lv, (bb22*)(cc722*)(dd6722*), ABISELECT(24,16), "ee66722");
+ check_base_class_offset(lv, (cc722*)(dd6722*), 0, "ee66722");
+ check_base_class_offset(lv, (dd6722*), 0, "ee66722");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee66722.e");
+ test_class_info(&lv, &cd_ee66722);
+ dp->~ee66722();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66722(Test_ee66722, "ee66722", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee66722C1Ev();
+extern void _ZN7ee66722D1Ev();
+Name_Map name_map_ee66722[] = {
+ NSPAIR(_ZN7ee66722C1Ev),
+ NSPAIR(_ZN7ee66722D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc722;
+extern VTBL_ENTRY _ZTI5cc722[];
+extern VTBL_ENTRY _ZTV5cc722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc722[];
+extern Class_Descriptor cd_dd6722;
+extern VTBL_ENTRY _ZTI6dd6722[];
+extern VTBL_ENTRY _ZTV6dd6722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6722[];
+static Base_Class bases_ee66722[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc722, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6722, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee66722[];
+extern void _ZN7ee667223fooEv();
+extern void _ZN7ee667223barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee667223fooEv,_ZTv0_n12_N7ee667223fooEv)();
+extern void ABISELECT(_ZThn24_N7ee667223fooEv,_ZThn16_N7ee667223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee667223barEv,_ZTv0_n16_N7ee667223barEv)();
+extern void ABISELECT(_ZThn24_N7ee667223barEv,_ZThn16_N7ee667223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee66722[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66722[0]),
+ (VTBL_ENTRY)&_ZN7ee667223fooEv,
+ (VTBL_ENTRY)&_ZN7ee667223barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee66722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee667223fooEv,_ZTv0_n12_N7ee667223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee667223barEv,_ZTv0_n16_N7ee667223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee66722[];
+extern void _ZN6dd67223fooEv();
+extern void _ZN6dd67223barEv();
+static VTBL_ENTRY _tg__ZTV6dd6722__7ee66722[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6722[0]),
+ (VTBL_ENTRY)&_ZN6dd67223fooEv,
+ (VTBL_ENTRY)&_ZN6dd67223barEv,
+};
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc7226dd6722__7ee66722[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7223fooEv,_ZThn16_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn24_N5cc7223barEv,_ZThn16_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc7226dd6722__7ee66722[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd67223fooEv,_ZTv0_n12_N6dd67223fooEv)();
+extern void ABISELECT(_ZThn24_N6dd67223fooEv,_ZThn16_N6dd67223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd67223barEv,_ZTv0_n16_N6dd67223barEv)();
+extern void ABISELECT(_ZThn24_N6dd67223barEv,_ZThn16_N6dd67223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd6722__7ee66722[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67223fooEv,_ZTv0_n12_N6dd67223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67223barEv,_ZTv0_n16_N6dd67223barEv),
+};
+static VTT_ENTRY vtt_ee66722[] = {
+ {&(_ZTV7ee66722[3]), 3,11},
+ {&(_tg__ZTV6dd6722__7ee66722[3]), 3,5},
+ {&(_tg__ZTV5cc7226dd6722__7ee66722[3]), 3,5},
+ {&(_tg__ZTV4bb22__5cc7226dd6722__7ee66722[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd6722__7ee66722[4]), 4,6},
+ {&(_ZTV7ee66722[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee66722[];
+extern VTBL_ENTRY _ZTV7ee66722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee66722[];
+static VTBL_ENTRY alt_thunk_names1305[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd67223barEv,_ZTv0_n16_N6dd67223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67223barEv,_ZThn16_N6dd67223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67223fooEv,_ZTv0_n12_N6dd67223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67223fooEv,_ZThn16_N6dd67223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7223barEv,_ZThn16_N5cc7223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7223fooEv,_ZThn16_N5cc7223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee667223barEv,_ZTv0_n16_N7ee667223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee667223barEv,_ZThn16_N7ee667223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee667223fooEv,_ZTv0_n12_N7ee667223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee667223fooEv,_ZThn16_N7ee667223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee66722 = { "ee66722", // class name
+ bases_ee66722, 4,
+ &(vtc_ee66722[0]), // expected_vtbl_contents
+ &(vtt_ee66722[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee66722),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66722),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee66722),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1305,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee76722 : virtual dd6722 {
+ int e;
+ virtual void foo(); // _ZN7ee767223fooEv
+ virtual void bar(); // _ZN7ee767223barEv
+ ~ee76722(); // tgen
+ ee76722(); // tgen
+};
+//SIG(1 ee76722) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76722 ::foo(){vfunc_called(this, "_ZN7ee767223fooEv");}
+void ee76722 ::bar(){vfunc_called(this, "_ZN7ee767223barEv");}
+ee76722 ::~ee76722(){ note_dtor("ee76722", this);} // tgen
+ee76722 ::ee76722(){ note_ctor("ee76722", this);} // tgen
+
+static void Test_ee76722()
+{
+ extern Class_Descriptor cd_ee76722;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee76722, buf);
+ ee76722 *dp, &lv = *(dp=new (buf) ee76722());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee76722)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76722)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee76722");
+ check_base_class_offset(lv, (bb22*)(cc722*)(dd6722*), ABISELECT(32,20), "ee76722");
+ check_base_class_offset(lv, (cc722*)(dd6722*), ABISELECT(16,8), "ee76722");
+ check_base_class_offset(lv, (dd6722*), ABISELECT(16,8), "ee76722");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76722.e");
+ test_class_info(&lv, &cd_ee76722);
+ dp->~ee76722();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76722(Test_ee76722, "ee76722", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee76722C1Ev();
+extern void _ZN7ee76722D1Ev();
+Name_Map name_map_ee76722[] = {
+ NSPAIR(_ZN7ee76722C1Ev),
+ NSPAIR(_ZN7ee76722D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc722;
+extern VTBL_ENTRY _ZTI5cc722[];
+extern VTBL_ENTRY _ZTV5cc722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc722[];
+extern Class_Descriptor cd_dd6722;
+extern VTBL_ENTRY _ZTI6dd6722[];
+extern VTBL_ENTRY _ZTV6dd6722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6722[];
+static Base_Class bases_ee76722[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc722, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_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_dd6722, ABISELECT(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 _ZTI7ee76722[];
+extern void _ZN7ee767223fooEv();
+extern void _ZN7ee767223barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee767223fooEv,_ZTv0_n16_N7ee767223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee767223fooEv,_ZThn8_N7ee767223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee767223barEv,_ZTv0_n20_N7ee767223barEv)();
+extern void ABISELECT(_ZThn16_N7ee767223barEv,_ZThn8_N7ee767223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee767223fooEv,_ZTv0_n12_N7ee767223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee767223fooEv,_ZThn20_N7ee767223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee767223barEv,_ZTv0_n16_N7ee767223barEv)();
+extern void ABISELECT(_ZThn32_N7ee767223barEv,_ZThn20_N7ee767223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76722[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76722[0]),
+ (VTBL_ENTRY)&_ZN7ee767223fooEv,
+ (VTBL_ENTRY)&_ZN7ee767223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee767223fooEv,_ZTv0_n16_N7ee767223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee767223barEv,_ZTv0_n20_N7ee767223barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee76722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee767223fooEv,_ZTv0_n12_N7ee767223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee767223barEv,_ZTv0_n16_N7ee767223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee76722[];
+extern void _ZN6dd67223fooEv();
+extern void _ZN6dd67223barEv();
+static VTBL_ENTRY _tg__ZTV6dd6722__7ee76722[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6722[0]),
+ (VTBL_ENTRY)&_ZN6dd67223fooEv,
+ (VTBL_ENTRY)&_ZN6dd67223barEv,
+};
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc7226dd6722__7ee76722[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn12_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn12_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc7226dd6722__7ee76722[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd67223fooEv,_ZTv0_n12_N6dd67223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd67223fooEv,_ZThn12_N6dd67223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd67223barEv,_ZTv0_n16_N6dd67223barEv)();
+extern void ABISELECT(_ZThn16_N6dd67223barEv,_ZThn12_N6dd67223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd6722__7ee76722[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67223fooEv,_ZTv0_n12_N6dd67223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67223barEv,_ZTv0_n16_N6dd67223barEv),
+};
+static VTT_ENTRY vtt_ee76722[] = {
+ {&(_ZTV7ee76722[4]), 4,19},
+ {&(_ZTV7ee76722[11]), 11,19},
+ {&(_ZTV7ee76722[17]), 17,19},
+ {&(_tg__ZTV6dd6722__7ee76722[3]), 3,5},
+ {&(_tg__ZTV5cc7226dd6722__7ee76722[3]), 3,5},
+ {&(_tg__ZTV4bb22__5cc7226dd6722__7ee76722[4]), 4,6},
+ {&(_tg__ZTV4bb22__6dd6722__7ee76722[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee76722[];
+extern VTBL_ENTRY _ZTV7ee76722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76722[];
+static VTBL_ENTRY alt_thunk_names1306[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd67223barEv,_ZTv0_n16_N6dd67223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67223barEv,_ZThn12_N6dd67223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67223fooEv,_ZTv0_n12_N6dd67223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67223fooEv,_ZThn12_N6dd67223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn12_N5cc7223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn12_N5cc7223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee767223barEv,_ZTv0_n16_N7ee767223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee767223barEv,_ZThn20_N7ee767223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee767223fooEv,_ZTv0_n12_N7ee767223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee767223fooEv,_ZThn20_N7ee767223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee767223barEv,_ZTv0_n20_N7ee767223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee767223barEv,_ZThn8_N7ee767223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee767223fooEv,_ZTv0_n16_N7ee767223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee767223fooEv,_ZThn8_N7ee767223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76722 = { "ee76722", // class name
+ bases_ee76722, 4,
+ &(vtc_ee76722[0]), // expected_vtbl_contents
+ &(vtt_ee76722[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee76722),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76722),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76722),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1306,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd7722 : virtual cc722 {
+ int d;
+ virtual void bar(); // _ZN6dd77223barEv
+ virtual void foo(); // _ZN6dd77223fooEv
+ ~dd7722(); // tgen
+ dd7722(); // tgen
+};
+//SIG(-1 dd7722) C1{ VBC2{ VBC3{ BC4{ v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void dd7722 ::bar(){vfunc_called(this, "_ZN6dd77223barEv");}
+void dd7722 ::foo(){vfunc_called(this, "_ZN6dd77223fooEv");}
+dd7722 ::~dd7722(){ note_dtor("dd7722", this);} // tgen
+dd7722 ::dd7722(){ note_ctor("dd7722", this);} // tgen
+
+static void Test_dd7722()
+{
+ extern Class_Descriptor cd_dd7722;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd7722, buf);
+ dd7722 *dp, &lv = *(dp=new (buf) dd7722());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd7722)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7722)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,16), "dd7722");
+ check_base_class_offset(lv, (bb22*)(cc722*), ABISELECT(32,16), "dd7722");
+ check_base_class_offset(lv, (cc722*), ABISELECT(16,8), "dd7722");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7722.d");
+ test_class_info(&lv, &cd_dd7722);
+ dp->~dd7722();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7722(Test_dd7722, "dd7722", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd7722C1Ev();
+extern void _ZN6dd7722D1Ev();
+Name_Map name_map_dd7722[] = {
+ NSPAIR(_ZN6dd7722C1Ev),
+ NSPAIR(_ZN6dd7722D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc722;
+extern VTBL_ENTRY _ZTI5cc722[];
+extern VTBL_ENTRY _ZTV5cc722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc722[];
+static Base_Class bases_dd7722[] = {
+ // 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_bb22, 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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc722, ABISELECT(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 _ZTI6dd7722[];
+extern void _ZN6dd77223barEv();
+extern void _ZN6dd77223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd77223fooEv,_ZTv0_n16_N6dd77223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77223fooEv,_ZThn8_N6dd77223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77223barEv,_ZTv0_n20_N6dd77223barEv)();
+extern void ABISELECT(_ZThn16_N6dd77223barEv,_ZThn8_N6dd77223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd77223fooEv,_ZTv0_n12_N6dd77223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77223fooEv,_ZThn16_N6dd77223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77223barEv,_ZTv0_n16_N6dd77223barEv)();
+extern void ABISELECT(_ZThn32_N6dd77223barEv,_ZThn16_N6dd77223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7722[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7722[0]),
+ (VTBL_ENTRY)&_ZN6dd77223barEv,
+ (VTBL_ENTRY)&_ZN6dd77223fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77223fooEv,_ZTv0_n16_N6dd77223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77223barEv,_ZTv0_n20_N6dd77223barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77223fooEv,_ZTv0_n12_N6dd77223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77223barEv,_ZTv0_n16_N6dd77223barEv),
+};
+extern VTBL_ENTRY _ZTV6dd7722[];
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc722__6dd7722[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc722__6dd7722[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+static VTT_ENTRY vtt_dd7722[] = {
+ {&(_ZTV6dd7722[4]), 4,19},
+ {&(_ZTV6dd7722[11]), 11,19},
+ {&(_ZTV6dd7722[17]), 17,19},
+ {&(_tg__ZTV5cc722__6dd7722[3]), 3,5},
+ {&(_tg__ZTV4bb22__5cc722__6dd7722[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd7722[];
+extern VTBL_ENTRY _ZTV6dd7722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7722[];
+static VTBL_ENTRY alt_thunk_names1307[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77223barEv,_ZTv0_n16_N6dd77223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77223barEv,_ZThn16_N6dd77223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77223fooEv,_ZTv0_n12_N6dd77223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77223fooEv,_ZThn16_N6dd77223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77223barEv,_ZTv0_n20_N6dd77223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77223barEv,_ZThn8_N6dd77223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77223fooEv,_ZTv0_n16_N6dd77223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77223fooEv,_ZThn8_N6dd77223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7722 = { "dd7722", // class name
+ bases_dd7722, 3,
+ &(vtc_dd7722[0]), // expected_vtbl_contents
+ &(vtt_dd7722[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd7722),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7722),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7722),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1307,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07722 : dd7722 {
+ int e;
+ ~ee07722(); // tgen
+ ee07722(); // tgen
+};
+//SIG(1 ee07722) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee07722 ::~ee07722(){ note_dtor("ee07722", this);} // tgen
+ee07722 ::ee07722(){ note_ctor("ee07722", this);} // tgen
+
+static void Test_ee07722()
+{
+ extern Class_Descriptor cd_ee07722;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee07722, buf);
+ ee07722 *dp, &lv = *(dp=new (buf) ee07722());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee07722)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07722)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee07722");
+ check_base_class_offset(lv, (bb22*)(cc722*), ABISELECT(32,20), "ee07722");
+ check_base_class_offset(lv, (cc722*)(dd7722*), ABISELECT(16,12), "ee07722");
+ check_base_class_offset(lv, (dd7722*), 0, "ee07722");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07722.e");
+ test_class_info(&lv, &cd_ee07722);
+ dp->~ee07722();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07722(Test_ee07722, "ee07722", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee07722C1Ev();
+extern void _ZN7ee07722D1Ev();
+Name_Map name_map_ee07722[] = {
+ NSPAIR(_ZN7ee07722C1Ev),
+ NSPAIR(_ZN7ee07722D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc722;
+extern VTBL_ENTRY _ZTI5cc722[];
+extern VTBL_ENTRY _ZTV5cc722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc722[];
+extern Class_Descriptor cd_dd7722;
+extern VTBL_ENTRY _ZTI6dd7722[];
+extern VTBL_ENTRY _ZTV6dd7722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7722[];
+static Base_Class bases_ee07722[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc722, 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_dd7722, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07722[];
+extern void _ZN6dd77223barEv();
+extern void _ZN6dd77223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd77223fooEv,_ZTv0_n16_N6dd77223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77223fooEv,_ZThn12_N6dd77223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77223barEv,_ZTv0_n20_N6dd77223barEv)();
+extern void ABISELECT(_ZThn16_N6dd77223barEv,_ZThn12_N6dd77223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd77223fooEv,_ZTv0_n12_N6dd77223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77223fooEv,_ZThn20_N6dd77223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77223barEv,_ZTv0_n16_N6dd77223barEv)();
+extern void ABISELECT(_ZThn32_N6dd77223barEv,_ZThn20_N6dd77223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07722[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07722[0]),
+ (VTBL_ENTRY)&_ZN6dd77223barEv,
+ (VTBL_ENTRY)&_ZN6dd77223fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77223fooEv,_ZTv0_n16_N6dd77223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77223barEv,_ZTv0_n20_N6dd77223barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee07722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77223fooEv,_ZTv0_n12_N6dd77223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77223barEv,_ZTv0_n16_N6dd77223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee07722[];
+extern void _ZN6dd77223barEv();
+extern void _ZN6dd77223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7722__7ee07722[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7722[0]),
+ (VTBL_ENTRY)&_ZN6dd77223barEv,
+ (VTBL_ENTRY)&_ZN6dd77223fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77223fooEv,_ZTv0_n16_N6dd77223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77223fooEv,_ZThn12_N6dd77223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77223barEv,_ZTv0_n20_N6dd77223barEv)();
+extern void ABISELECT(_ZThn16_N6dd77223barEv,_ZThn12_N6dd77223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc722__6dd7722__7ee07722[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77223fooEv,_ZTv0_n16_N6dd77223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77223barEv,_ZTv0_n20_N6dd77223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd77223fooEv,_ZTv0_n12_N6dd77223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77223fooEv,_ZThn20_N6dd77223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77223barEv,_ZTv0_n16_N6dd77223barEv)();
+extern void ABISELECT(_ZThn32_N6dd77223barEv,_ZThn20_N6dd77223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd7722__7ee07722[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77223fooEv,_ZTv0_n12_N6dd77223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77223barEv,_ZTv0_n16_N6dd77223barEv),
+};
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc722__7ee07722[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc722__7ee07722[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+static VTT_ENTRY vtt_ee07722[] = {
+ {&(_ZTV7ee07722[4]), 4,19},
+ {&(_tg__ZTV6dd7722__7ee07722[4]), 4,6},
+ {&(_tg__ZTV5cc722__6dd7722__7ee07722[5]), 5,7},
+ {&(_tg__ZTV4bb22__6dd7722__7ee07722[4]), 4,6},
+ {&(_ZTV7ee07722[11]), 11,19},
+ {&(_ZTV7ee07722[17]), 17,19},
+ {&(_tg__ZTV5cc722__7ee07722[3]), 3,5},
+ {&(_tg__ZTV4bb22__5cc722__7ee07722[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee07722[];
+extern VTBL_ENTRY _ZTV7ee07722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07722[];
+static VTBL_ENTRY alt_thunk_names1308[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77223barEv,_ZTv0_n16_N6dd77223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77223barEv,_ZThn20_N6dd77223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77223barEv,_ZThn20_N6dd77223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77223fooEv,_ZTv0_n12_N6dd77223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77223fooEv,_ZThn20_N6dd77223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77223fooEv,_ZThn20_N6dd77223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77223barEv,_ZTv0_n20_N6dd77223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77223barEv,_ZThn12_N6dd77223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77223barEv,_ZThn12_N6dd77223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77223fooEv,_ZTv0_n16_N6dd77223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77223fooEv,_ZThn12_N6dd77223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77223fooEv,_ZThn12_N6dd77223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07722 = { "ee07722", // class name
+ bases_ee07722, 4,
+ &(vtc_ee07722[0]), // expected_vtbl_contents
+ &(vtt_ee07722[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee07722),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07722),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07722),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1308,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee17722 : virtual dd7722 {
+ int e;
+ ~ee17722(); // tgen
+ ee17722(); // tgen
+};
+//SIG(1 ee17722) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee17722 ::~ee17722(){ note_dtor("ee17722", this);} // tgen
+ee17722 ::ee17722(){ note_ctor("ee17722", this);} // tgen
+
+static void Test_ee17722()
+{
+ extern Class_Descriptor cd_ee17722;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee17722, buf);
+ ee17722 *dp, &lv = *(dp=new (buf) ee17722());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee17722)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17722)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(48,24), "ee17722");
+ check_base_class_offset(lv, (bb22*)(cc722*), ABISELECT(48,24), "ee17722");
+ check_base_class_offset(lv, (cc722*)(dd7722*), ABISELECT(32,16), "ee17722");
+ check_base_class_offset(lv, (dd7722*), ABISELECT(16,8), "ee17722");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17722.e");
+ test_class_info(&lv, &cd_ee17722);
+ dp->~ee17722();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17722(Test_ee17722, "ee17722", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee17722C1Ev();
+extern void _ZN7ee17722D1Ev();
+Name_Map name_map_ee17722[] = {
+ NSPAIR(_ZN7ee17722C1Ev),
+ NSPAIR(_ZN7ee17722D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc722;
+extern VTBL_ENTRY _ZTI5cc722[];
+extern VTBL_ENTRY _ZTV5cc722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc722[];
+extern Class_Descriptor cd_dd7722;
+extern VTBL_ENTRY _ZTI6dd7722[];
+extern VTBL_ENTRY _ZTV6dd7722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7722[];
+static Base_Class bases_ee17722[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb22, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc722, 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_dd7722, 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 _ZTI7ee17722[];
+extern void _ZN6dd77223barEv();
+extern void _ZN6dd77223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd77223fooEv,_ZTv0_n16_N6dd77223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77223fooEv,_ZThn8_N6dd77223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77223barEv,_ZTv0_n20_N6dd77223barEv)();
+extern void ABISELECT(_ZThn16_N6dd77223barEv,_ZThn8_N6dd77223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd77223fooEv,_ZTv0_n12_N6dd77223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77223fooEv,_ZThn16_N6dd77223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77223barEv,_ZTv0_n16_N6dd77223barEv)();
+extern void ABISELECT(_ZThn32_N6dd77223barEv,_ZThn16_N6dd77223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17722[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17722[0]),
+ 0,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17722[0]),
+ (VTBL_ENTRY)&_ZN6dd77223barEv,
+ (VTBL_ENTRY)&_ZN6dd77223fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77223fooEv,_ZTv0_n16_N6dd77223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77223barEv,_ZTv0_n20_N6dd77223barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee17722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77223fooEv,_ZTv0_n12_N6dd77223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77223barEv,_ZTv0_n16_N6dd77223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee17722[];
+extern void _ZN6dd77223barEv();
+extern void _ZN6dd77223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7722__7ee17722[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7722[0]),
+ (VTBL_ENTRY)&_ZN6dd77223barEv,
+ (VTBL_ENTRY)&_ZN6dd77223fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77223fooEv,_ZTv0_n16_N6dd77223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77223fooEv,_ZThn8_N6dd77223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77223barEv,_ZTv0_n20_N6dd77223barEv)();
+extern void ABISELECT(_ZThn16_N6dd77223barEv,_ZThn8_N6dd77223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc722__6dd7722__7ee17722[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77223fooEv,_ZTv0_n16_N6dd77223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77223barEv,_ZTv0_n20_N6dd77223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd77223fooEv,_ZTv0_n12_N6dd77223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77223fooEv,_ZThn16_N6dd77223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77223barEv,_ZTv0_n16_N6dd77223barEv)();
+extern void ABISELECT(_ZThn32_N6dd77223barEv,_ZThn16_N6dd77223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd7722__7ee17722[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77223fooEv,_ZTv0_n12_N6dd77223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77223barEv,_ZTv0_n16_N6dd77223barEv),
+};
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc722__7ee17722[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc722__7ee17722[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+static VTT_ENTRY vtt_ee17722[] = {
+ {&(_ZTV7ee17722[5]), 5,26},
+ {&(_ZTV7ee17722[11]), 11,26},
+ {&(_ZTV7ee17722[18]), 18,26},
+ {&(_ZTV7ee17722[24]), 24,26},
+ {&(_tg__ZTV6dd7722__7ee17722[4]), 4,6},
+ {&(_tg__ZTV5cc722__6dd7722__7ee17722[5]), 5,7},
+ {&(_tg__ZTV4bb22__6dd7722__7ee17722[4]), 4,6},
+ {&(_tg__ZTV5cc722__7ee17722[3]), 3,5},
+ {&(_tg__ZTV4bb22__5cc722__7ee17722[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee17722[];
+extern VTBL_ENTRY _ZTV7ee17722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17722[];
+static VTBL_ENTRY alt_thunk_names1309[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77223barEv,_ZTv0_n16_N6dd77223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77223barEv,_ZThn16_N6dd77223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77223barEv,_ZThn16_N6dd77223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77223fooEv,_ZTv0_n12_N6dd77223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77223fooEv,_ZThn16_N6dd77223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77223fooEv,_ZThn16_N6dd77223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77223barEv,_ZTv0_n20_N6dd77223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77223barEv,_ZThn8_N6dd77223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77223barEv,_ZThn8_N6dd77223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77223fooEv,_ZTv0_n16_N6dd77223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77223fooEv,_ZThn8_N6dd77223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77223fooEv,_ZThn8_N6dd77223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17722 = { "ee17722", // class name
+ bases_ee17722, 4,
+ &(vtc_ee17722[0]), // expected_vtbl_contents
+ &(vtt_ee17722[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee17722),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17722),26, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17722),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1309,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee27722 : dd7722 {
+ int e;
+ virtual void foo(); // _ZN7ee277223fooEv
+ ~ee27722(); // tgen
+ ee27722(); // tgen
+};
+//SIG(1 ee27722) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27722 ::foo(){vfunc_called(this, "_ZN7ee277223fooEv");}
+ee27722 ::~ee27722(){ note_dtor("ee27722", this);} // tgen
+ee27722 ::ee27722(){ note_ctor("ee27722", this);} // tgen
+
+static void Test_ee27722()
+{
+ extern Class_Descriptor cd_ee27722;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee27722, buf);
+ ee27722 *dp, &lv = *(dp=new (buf) ee27722());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee27722)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27722)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee27722");
+ check_base_class_offset(lv, (bb22*)(cc722*), ABISELECT(32,20), "ee27722");
+ check_base_class_offset(lv, (cc722*)(dd7722*), ABISELECT(16,12), "ee27722");
+ check_base_class_offset(lv, (dd7722*), 0, "ee27722");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27722.e");
+ test_class_info(&lv, &cd_ee27722);
+ dp->~ee27722();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27722(Test_ee27722, "ee27722", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee27722C1Ev();
+extern void _ZN7ee27722D1Ev();
+Name_Map name_map_ee27722[] = {
+ NSPAIR(_ZN7ee27722C1Ev),
+ NSPAIR(_ZN7ee27722D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc722;
+extern VTBL_ENTRY _ZTI5cc722[];
+extern VTBL_ENTRY _ZTV5cc722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc722[];
+extern Class_Descriptor cd_dd7722;
+extern VTBL_ENTRY _ZTI6dd7722[];
+extern VTBL_ENTRY _ZTV6dd7722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7722[];
+static Base_Class bases_ee27722[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc722, 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_dd7722, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27722[];
+extern void _ZN6dd77223barEv();
+extern void _ZN7ee277223fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee277223fooEv,_ZTv0_n16_N7ee277223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee277223fooEv,_ZThn12_N7ee277223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77223barEv,_ZTv0_n20_N6dd77223barEv)();
+extern void ABISELECT(_ZThn16_N6dd77223barEv,_ZThn12_N6dd77223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee277223fooEv,_ZTv0_n12_N7ee277223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee277223fooEv,_ZThn20_N7ee277223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77223barEv,_ZTv0_n16_N6dd77223barEv)();
+extern void ABISELECT(_ZThn32_N6dd77223barEv,_ZThn20_N6dd77223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27722[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27722[0]),
+ (VTBL_ENTRY)&_ZN6dd77223barEv,
+ (VTBL_ENTRY)&_ZN7ee277223fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee277223fooEv,_ZTv0_n16_N7ee277223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77223barEv,_ZTv0_n20_N6dd77223barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee27722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee277223fooEv,_ZTv0_n12_N7ee277223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77223barEv,_ZTv0_n16_N6dd77223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee27722[];
+extern void _ZN6dd77223barEv();
+extern void _ZN6dd77223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7722__7ee27722[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7722[0]),
+ (VTBL_ENTRY)&_ZN6dd77223barEv,
+ (VTBL_ENTRY)&_ZN6dd77223fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77223fooEv,_ZTv0_n16_N6dd77223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77223fooEv,_ZThn12_N6dd77223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77223barEv,_ZTv0_n20_N6dd77223barEv)();
+extern void ABISELECT(_ZThn16_N6dd77223barEv,_ZThn12_N6dd77223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc722__6dd7722__7ee27722[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77223fooEv,_ZTv0_n16_N6dd77223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77223barEv,_ZTv0_n20_N6dd77223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd77223fooEv,_ZTv0_n12_N6dd77223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77223fooEv,_ZThn20_N6dd77223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77223barEv,_ZTv0_n16_N6dd77223barEv)();
+extern void ABISELECT(_ZThn32_N6dd77223barEv,_ZThn20_N6dd77223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd7722__7ee27722[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77223fooEv,_ZTv0_n12_N6dd77223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77223barEv,_ZTv0_n16_N6dd77223barEv),
+};
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc722__7ee27722[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc722__7ee27722[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+static VTT_ENTRY vtt_ee27722[] = {
+ {&(_ZTV7ee27722[4]), 4,19},
+ {&(_tg__ZTV6dd7722__7ee27722[4]), 4,6},
+ {&(_tg__ZTV5cc722__6dd7722__7ee27722[5]), 5,7},
+ {&(_tg__ZTV4bb22__6dd7722__7ee27722[4]), 4,6},
+ {&(_ZTV7ee27722[11]), 11,19},
+ {&(_ZTV7ee27722[17]), 17,19},
+ {&(_tg__ZTV5cc722__7ee27722[3]), 3,5},
+ {&(_tg__ZTV4bb22__5cc722__7ee27722[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee27722[];
+extern VTBL_ENTRY _ZTV7ee27722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27722[];
+static VTBL_ENTRY alt_thunk_names1310[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77223fooEv,_ZTv0_n12_N6dd77223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77223fooEv,_ZThn20_N6dd77223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77223fooEv,_ZTv0_n16_N6dd77223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77223fooEv,_ZThn12_N6dd77223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77223barEv,_ZTv0_n16_N6dd77223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77223barEv,_ZThn20_N6dd77223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77223barEv,_ZThn20_N6dd77223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee277223fooEv,_ZTv0_n12_N7ee277223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee277223fooEv,_ZThn20_N7ee277223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77223barEv,_ZTv0_n20_N6dd77223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77223barEv,_ZThn12_N6dd77223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77223barEv,_ZThn12_N6dd77223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee277223fooEv,_ZTv0_n16_N7ee277223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee277223fooEv,_ZThn12_N7ee277223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27722 = { "ee27722", // class name
+ bases_ee27722, 4,
+ &(vtc_ee27722[0]), // expected_vtbl_contents
+ &(vtt_ee27722[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee27722),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27722),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27722),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1310,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee37722 : virtual dd7722 {
+ int e;
+ virtual void foo(); // _ZN7ee377223fooEv
+ ~ee37722(); // tgen
+ ee37722(); // tgen
+};
+//SIG(1 ee37722) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37722 ::foo(){vfunc_called(this, "_ZN7ee377223fooEv");}
+ee37722 ::~ee37722(){ note_dtor("ee37722", this);} // tgen
+ee37722 ::ee37722(){ note_ctor("ee37722", this);} // tgen
+
+static void Test_ee37722()
+{
+ extern Class_Descriptor cd_ee37722;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee37722, buf);
+ ee37722 *dp, &lv = *(dp=new (buf) ee37722());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee37722)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37722)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(48,24), "ee37722");
+ check_base_class_offset(lv, (bb22*)(cc722*), ABISELECT(48,24), "ee37722");
+ check_base_class_offset(lv, (cc722*)(dd7722*), ABISELECT(32,16), "ee37722");
+ check_base_class_offset(lv, (dd7722*), ABISELECT(16,8), "ee37722");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37722.e");
+ test_class_info(&lv, &cd_ee37722);
+ dp->~ee37722();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37722(Test_ee37722, "ee37722", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee37722C1Ev();
+extern void _ZN7ee37722D1Ev();
+Name_Map name_map_ee37722[] = {
+ NSPAIR(_ZN7ee37722C1Ev),
+ NSPAIR(_ZN7ee37722D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc722;
+extern VTBL_ENTRY _ZTI5cc722[];
+extern VTBL_ENTRY _ZTV5cc722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc722[];
+extern Class_Descriptor cd_dd7722;
+extern VTBL_ENTRY _ZTI6dd7722[];
+extern VTBL_ENTRY _ZTV6dd7722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7722[];
+static Base_Class bases_ee37722[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb22, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc722, 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_dd7722, 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 _ZTI7ee37722[];
+extern void _ZN7ee377223fooEv();
+extern void _ZN6dd77223barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee377223fooEv,_ZTv0_n24_N7ee377223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee377223fooEv,_ZThn8_N7ee377223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee377223fooEv,_ZTv0_n16_N7ee377223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee377223fooEv,_ZThn16_N7ee377223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77223barEv,_ZTv0_n20_N6dd77223barEv)();
+extern void ABISELECT(_ZThn16_N6dd77223barEv,_ZThn8_N6dd77223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee377223fooEv,_ZTv0_n12_N7ee377223fooEv)();
+extern void ABISELECT(_ZThn48_N7ee377223fooEv,_ZThn24_N7ee377223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77223barEv,_ZTv0_n16_N6dd77223barEv)();
+extern void ABISELECT(_ZThn32_N6dd77223barEv,_ZThn16_N6dd77223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37722[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37722[0]),
+ (VTBL_ENTRY)&_ZN7ee377223fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37722[0]),
+ (VTBL_ENTRY)&_ZN6dd77223barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee377223fooEv,_ZTv0_n24_N7ee377223fooEv),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee377223fooEv,_ZTv0_n16_N7ee377223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77223barEv,_ZTv0_n20_N6dd77223barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee37722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee377223fooEv,_ZTv0_n12_N7ee377223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77223barEv,_ZTv0_n16_N6dd77223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee37722[];
+extern void _ZN6dd77223barEv();
+extern void _ZN6dd77223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7722__7ee37722[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7722[0]),
+ (VTBL_ENTRY)&_ZN6dd77223barEv,
+ (VTBL_ENTRY)&_ZN6dd77223fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77223fooEv,_ZTv0_n16_N6dd77223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77223fooEv,_ZThn8_N6dd77223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77223barEv,_ZTv0_n20_N6dd77223barEv)();
+extern void ABISELECT(_ZThn16_N6dd77223barEv,_ZThn8_N6dd77223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc722__6dd7722__7ee37722[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77223fooEv,_ZTv0_n16_N6dd77223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77223barEv,_ZTv0_n20_N6dd77223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd77223fooEv,_ZTv0_n12_N6dd77223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77223fooEv,_ZThn16_N6dd77223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77223barEv,_ZTv0_n16_N6dd77223barEv)();
+extern void ABISELECT(_ZThn32_N6dd77223barEv,_ZThn16_N6dd77223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd7722__7ee37722[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77223fooEv,_ZTv0_n12_N6dd77223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77223barEv,_ZTv0_n16_N6dd77223barEv),
+};
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc722__7ee37722[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc722__7ee37722[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+static VTT_ENTRY vtt_ee37722[] = {
+ {&(_ZTV7ee37722[5]), 5,27},
+ {&(_ZTV7ee37722[12]), 12,27},
+ {&(_ZTV7ee37722[19]), 19,27},
+ {&(_ZTV7ee37722[25]), 25,27},
+ {&(_tg__ZTV6dd7722__7ee37722[4]), 4,6},
+ {&(_tg__ZTV5cc722__6dd7722__7ee37722[5]), 5,7},
+ {&(_tg__ZTV4bb22__6dd7722__7ee37722[4]), 4,6},
+ {&(_tg__ZTV5cc722__7ee37722[3]), 3,5},
+ {&(_tg__ZTV4bb22__5cc722__7ee37722[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee37722[];
+extern VTBL_ENTRY _ZTV7ee37722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37722[];
+static VTBL_ENTRY alt_thunk_names1311[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77223fooEv,_ZTv0_n12_N6dd77223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77223fooEv,_ZThn16_N6dd77223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77223fooEv,_ZTv0_n16_N6dd77223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77223fooEv,_ZThn8_N6dd77223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77223barEv,_ZTv0_n16_N6dd77223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77223barEv,_ZThn16_N6dd77223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77223barEv,_ZThn16_N6dd77223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee377223fooEv,_ZTv0_n12_N7ee377223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee377223fooEv,_ZThn24_N7ee377223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77223barEv,_ZTv0_n20_N6dd77223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77223barEv,_ZThn8_N6dd77223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77223barEv,_ZThn8_N6dd77223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee377223fooEv,_ZTv0_n16_N7ee377223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee377223fooEv,_ZThn16_N7ee377223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee377223fooEv,_ZTv0_n24_N7ee377223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee377223fooEv,_ZThn8_N7ee377223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37722 = { "ee37722", // class name
+ bases_ee37722, 4,
+ &(vtc_ee37722[0]), // expected_vtbl_contents
+ &(vtt_ee37722[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee37722),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37722),27, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37722),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1311,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee47722 : dd7722 {
+ int e;
+ virtual void bar(); // _ZN7ee477223barEv
+ ~ee47722(); // tgen
+ ee47722(); // tgen
+};
+//SIG(1 ee47722) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47722 ::bar(){vfunc_called(this, "_ZN7ee477223barEv");}
+ee47722 ::~ee47722(){ note_dtor("ee47722", this);} // tgen
+ee47722 ::ee47722(){ note_ctor("ee47722", this);} // tgen
+
+static void Test_ee47722()
+{
+ extern Class_Descriptor cd_ee47722;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee47722, buf);
+ ee47722 *dp, &lv = *(dp=new (buf) ee47722());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee47722)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47722)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee47722");
+ check_base_class_offset(lv, (bb22*)(cc722*), ABISELECT(32,20), "ee47722");
+ check_base_class_offset(lv, (cc722*)(dd7722*), ABISELECT(16,12), "ee47722");
+ check_base_class_offset(lv, (dd7722*), 0, "ee47722");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47722.e");
+ test_class_info(&lv, &cd_ee47722);
+ dp->~ee47722();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47722(Test_ee47722, "ee47722", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee47722C1Ev();
+extern void _ZN7ee47722D1Ev();
+Name_Map name_map_ee47722[] = {
+ NSPAIR(_ZN7ee47722C1Ev),
+ NSPAIR(_ZN7ee47722D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc722;
+extern VTBL_ENTRY _ZTI5cc722[];
+extern VTBL_ENTRY _ZTV5cc722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc722[];
+extern Class_Descriptor cd_dd7722;
+extern VTBL_ENTRY _ZTI6dd7722[];
+extern VTBL_ENTRY _ZTV6dd7722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7722[];
+static Base_Class bases_ee47722[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc722, 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_dd7722, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47722[];
+extern void _ZN7ee477223barEv();
+extern void _ZN6dd77223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd77223fooEv,_ZTv0_n16_N6dd77223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77223fooEv,_ZThn12_N6dd77223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee477223barEv,_ZTv0_n20_N7ee477223barEv)();
+extern void ABISELECT(_ZThn16_N7ee477223barEv,_ZThn12_N7ee477223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd77223fooEv,_ZTv0_n12_N6dd77223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77223fooEv,_ZThn20_N6dd77223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee477223barEv,_ZTv0_n16_N7ee477223barEv)();
+extern void ABISELECT(_ZThn32_N7ee477223barEv,_ZThn20_N7ee477223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47722[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47722[0]),
+ (VTBL_ENTRY)&_ZN7ee477223barEv,
+ (VTBL_ENTRY)&_ZN6dd77223fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77223fooEv,_ZTv0_n16_N6dd77223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee477223barEv,_ZTv0_n20_N7ee477223barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee47722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77223fooEv,_ZTv0_n12_N6dd77223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee477223barEv,_ZTv0_n16_N7ee477223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee47722[];
+extern void _ZN6dd77223barEv();
+extern void _ZN6dd77223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7722__7ee47722[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7722[0]),
+ (VTBL_ENTRY)&_ZN6dd77223barEv,
+ (VTBL_ENTRY)&_ZN6dd77223fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77223fooEv,_ZTv0_n16_N6dd77223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77223fooEv,_ZThn12_N6dd77223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77223barEv,_ZTv0_n20_N6dd77223barEv)();
+extern void ABISELECT(_ZThn16_N6dd77223barEv,_ZThn12_N6dd77223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc722__6dd7722__7ee47722[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77223fooEv,_ZTv0_n16_N6dd77223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77223barEv,_ZTv0_n20_N6dd77223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd77223fooEv,_ZTv0_n12_N6dd77223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77223fooEv,_ZThn20_N6dd77223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77223barEv,_ZTv0_n16_N6dd77223barEv)();
+extern void ABISELECT(_ZThn32_N6dd77223barEv,_ZThn20_N6dd77223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd7722__7ee47722[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77223fooEv,_ZTv0_n12_N6dd77223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77223barEv,_ZTv0_n16_N6dd77223barEv),
+};
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc722__7ee47722[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc722__7ee47722[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+static VTT_ENTRY vtt_ee47722[] = {
+ {&(_ZTV7ee47722[4]), 4,19},
+ {&(_tg__ZTV6dd7722__7ee47722[4]), 4,6},
+ {&(_tg__ZTV5cc722__6dd7722__7ee47722[5]), 5,7},
+ {&(_tg__ZTV4bb22__6dd7722__7ee47722[4]), 4,6},
+ {&(_ZTV7ee47722[11]), 11,19},
+ {&(_ZTV7ee47722[17]), 17,19},
+ {&(_tg__ZTV5cc722__7ee47722[3]), 3,5},
+ {&(_tg__ZTV4bb22__5cc722__7ee47722[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee47722[];
+extern VTBL_ENTRY _ZTV7ee47722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47722[];
+static VTBL_ENTRY alt_thunk_names1312[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77223barEv,_ZTv0_n16_N6dd77223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77223barEv,_ZThn20_N6dd77223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77223barEv,_ZTv0_n20_N6dd77223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77223barEv,_ZThn12_N6dd77223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee477223barEv,_ZTv0_n16_N7ee477223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee477223barEv,_ZThn20_N7ee477223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77223fooEv,_ZTv0_n12_N6dd77223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77223fooEv,_ZThn20_N6dd77223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77223fooEv,_ZThn20_N6dd77223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee477223barEv,_ZTv0_n20_N7ee477223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee477223barEv,_ZThn12_N7ee477223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77223fooEv,_ZTv0_n16_N6dd77223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77223fooEv,_ZThn12_N6dd77223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77223fooEv,_ZThn12_N6dd77223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47722 = { "ee47722", // class name
+ bases_ee47722, 4,
+ &(vtc_ee47722[0]), // expected_vtbl_contents
+ &(vtt_ee47722[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee47722),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47722),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47722),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1312,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee57722 : virtual dd7722 {
+ int e;
+ virtual void bar(); // _ZN7ee577223barEv
+ ~ee57722(); // tgen
+ ee57722(); // tgen
+};
+//SIG(1 ee57722) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57722 ::bar(){vfunc_called(this, "_ZN7ee577223barEv");}
+ee57722 ::~ee57722(){ note_dtor("ee57722", this);} // tgen
+ee57722 ::ee57722(){ note_ctor("ee57722", this);} // tgen
+
+static void Test_ee57722()
+{
+ extern Class_Descriptor cd_ee57722;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee57722, buf);
+ ee57722 *dp, &lv = *(dp=new (buf) ee57722());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee57722)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57722)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(48,24), "ee57722");
+ check_base_class_offset(lv, (bb22*)(cc722*), ABISELECT(48,24), "ee57722");
+ check_base_class_offset(lv, (cc722*)(dd7722*), ABISELECT(32,16), "ee57722");
+ check_base_class_offset(lv, (dd7722*), ABISELECT(16,8), "ee57722");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57722.e");
+ test_class_info(&lv, &cd_ee57722);
+ dp->~ee57722();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57722(Test_ee57722, "ee57722", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee57722C1Ev();
+extern void _ZN7ee57722D1Ev();
+Name_Map name_map_ee57722[] = {
+ NSPAIR(_ZN7ee57722C1Ev),
+ NSPAIR(_ZN7ee57722D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc722;
+extern VTBL_ENTRY _ZTI5cc722[];
+extern VTBL_ENTRY _ZTV5cc722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc722[];
+extern Class_Descriptor cd_dd7722;
+extern VTBL_ENTRY _ZTI6dd7722[];
+extern VTBL_ENTRY _ZTV6dd7722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7722[];
+static Base_Class bases_ee57722[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb22, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc722, 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_dd7722, 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 _ZTI7ee57722[];
+extern void _ZN7ee577223barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee577223barEv,_ZTv0_n20_N7ee577223barEv)();
+extern void ABISELECT(_ZThn16_N7ee577223barEv,_ZThn8_N7ee577223barEv)() __attribute__((weak));
+extern void _ZN6dd77223fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd77223fooEv,_ZTv0_n16_N6dd77223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77223fooEv,_ZThn8_N6dd77223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee577223barEv,_ZTv0_n20_N7ee577223barEv)();
+extern void ABISELECT(_ZThn32_N7ee577223barEv,_ZThn16_N7ee577223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd77223fooEv,_ZTv0_n12_N6dd77223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77223fooEv,_ZThn16_N6dd77223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee577223barEv,_ZTv0_n16_N7ee577223barEv)();
+extern void ABISELECT(_ZThn48_N7ee577223barEv,_ZThn24_N7ee577223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57722[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57722[0]),
+ (VTBL_ENTRY)&_ZN7ee577223barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee577223barEv,_ZTv0_n20_N7ee577223barEv),
+ (VTBL_ENTRY)&_ZN6dd77223fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77223fooEv,_ZTv0_n16_N6dd77223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee577223barEv,_ZTv0_n20_N7ee577223barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee57722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77223fooEv,_ZTv0_n12_N6dd77223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee577223barEv,_ZTv0_n16_N7ee577223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee57722[];
+extern void _ZN6dd77223barEv();
+extern void _ZN6dd77223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7722__7ee57722[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7722[0]),
+ (VTBL_ENTRY)&_ZN6dd77223barEv,
+ (VTBL_ENTRY)&_ZN6dd77223fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77223fooEv,_ZTv0_n16_N6dd77223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77223fooEv,_ZThn8_N6dd77223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77223barEv,_ZTv0_n20_N6dd77223barEv)();
+extern void ABISELECT(_ZThn16_N6dd77223barEv,_ZThn8_N6dd77223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc722__6dd7722__7ee57722[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77223fooEv,_ZTv0_n16_N6dd77223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77223barEv,_ZTv0_n20_N6dd77223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd77223fooEv,_ZTv0_n12_N6dd77223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77223fooEv,_ZThn16_N6dd77223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77223barEv,_ZTv0_n16_N6dd77223barEv)();
+extern void ABISELECT(_ZThn32_N6dd77223barEv,_ZThn16_N6dd77223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd7722__7ee57722[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77223fooEv,_ZTv0_n12_N6dd77223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77223barEv,_ZTv0_n16_N6dd77223barEv),
+};
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc722__7ee57722[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc722__7ee57722[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+static VTT_ENTRY vtt_ee57722[] = {
+ {&(_ZTV7ee57722[5]), 5,27},
+ {&(_ZTV7ee57722[12]), 12,27},
+ {&(_ZTV7ee57722[19]), 19,27},
+ {&(_ZTV7ee57722[25]), 25,27},
+ {&(_tg__ZTV6dd7722__7ee57722[4]), 4,6},
+ {&(_tg__ZTV5cc722__6dd7722__7ee57722[5]), 5,7},
+ {&(_tg__ZTV4bb22__6dd7722__7ee57722[4]), 4,6},
+ {&(_tg__ZTV5cc722__7ee57722[3]), 3,5},
+ {&(_tg__ZTV4bb22__5cc722__7ee57722[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee57722[];
+extern VTBL_ENTRY _ZTV7ee57722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57722[];
+static VTBL_ENTRY alt_thunk_names1313[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77223barEv,_ZTv0_n16_N6dd77223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77223barEv,_ZThn16_N6dd77223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77223barEv,_ZTv0_n20_N6dd77223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77223barEv,_ZThn8_N6dd77223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee577223barEv,_ZTv0_n16_N7ee577223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee577223barEv,_ZThn24_N7ee577223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77223fooEv,_ZTv0_n12_N6dd77223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77223fooEv,_ZThn16_N6dd77223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77223fooEv,_ZThn16_N6dd77223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77223fooEv,_ZTv0_n16_N6dd77223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77223fooEv,_ZThn8_N6dd77223fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77223fooEv,_ZThn8_N6dd77223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee577223barEv,_ZTv0_n20_N7ee577223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee577223barEv,_ZThn16_N7ee577223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee577223barEv,_ZThn8_N7ee577223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57722 = { "ee57722", // class name
+ bases_ee57722, 4,
+ &(vtc_ee57722[0]), // expected_vtbl_contents
+ &(vtt_ee57722[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee57722),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57722),27, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57722),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1313,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee67722 : dd7722 {
+ int e;
+ virtual void foo(); // _ZN7ee677223fooEv
+ virtual void bar(); // _ZN7ee677223barEv
+ ~ee67722(); // tgen
+ ee67722(); // tgen
+};
+//SIG(1 ee67722) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67722 ::foo(){vfunc_called(this, "_ZN7ee677223fooEv");}
+void ee67722 ::bar(){vfunc_called(this, "_ZN7ee677223barEv");}
+ee67722 ::~ee67722(){ note_dtor("ee67722", this);} // tgen
+ee67722 ::ee67722(){ note_ctor("ee67722", this);} // tgen
+
+static void Test_ee67722()
+{
+ extern Class_Descriptor cd_ee67722;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee67722, buf);
+ ee67722 *dp, &lv = *(dp=new (buf) ee67722());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee67722)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67722)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(32,20), "ee67722");
+ check_base_class_offset(lv, (bb22*)(cc722*), ABISELECT(32,20), "ee67722");
+ check_base_class_offset(lv, (cc722*)(dd7722*), ABISELECT(16,12), "ee67722");
+ check_base_class_offset(lv, (dd7722*), 0, "ee67722");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67722.e");
+ test_class_info(&lv, &cd_ee67722);
+ dp->~ee67722();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67722(Test_ee67722, "ee67722", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee67722C1Ev();
+extern void _ZN7ee67722D1Ev();
+Name_Map name_map_ee67722[] = {
+ NSPAIR(_ZN7ee67722C1Ev),
+ NSPAIR(_ZN7ee67722D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc722;
+extern VTBL_ENTRY _ZTI5cc722[];
+extern VTBL_ENTRY _ZTV5cc722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc722[];
+extern Class_Descriptor cd_dd7722;
+extern VTBL_ENTRY _ZTI6dd7722[];
+extern VTBL_ENTRY _ZTV6dd7722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7722[];
+static Base_Class bases_ee67722[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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_bb22, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc722, 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_dd7722, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67722[];
+extern void _ZN7ee677223barEv();
+extern void _ZN7ee677223fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee677223fooEv,_ZTv0_n16_N7ee677223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee677223fooEv,_ZThn12_N7ee677223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee677223barEv,_ZTv0_n20_N7ee677223barEv)();
+extern void ABISELECT(_ZThn16_N7ee677223barEv,_ZThn12_N7ee677223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee677223fooEv,_ZTv0_n12_N7ee677223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee677223fooEv,_ZThn20_N7ee677223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee677223barEv,_ZTv0_n16_N7ee677223barEv)();
+extern void ABISELECT(_ZThn32_N7ee677223barEv,_ZThn20_N7ee677223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67722[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67722[0]),
+ (VTBL_ENTRY)&_ZN7ee677223barEv,
+ (VTBL_ENTRY)&_ZN7ee677223fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee677223fooEv,_ZTv0_n16_N7ee677223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee677223barEv,_ZTv0_n20_N7ee677223barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee67722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee677223fooEv,_ZTv0_n12_N7ee677223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee677223barEv,_ZTv0_n16_N7ee677223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee67722[];
+extern void _ZN6dd77223barEv();
+extern void _ZN6dd77223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7722__7ee67722[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7722[0]),
+ (VTBL_ENTRY)&_ZN6dd77223barEv,
+ (VTBL_ENTRY)&_ZN6dd77223fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77223fooEv,_ZTv0_n16_N6dd77223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77223fooEv,_ZThn12_N6dd77223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77223barEv,_ZTv0_n20_N6dd77223barEv)();
+extern void ABISELECT(_ZThn16_N6dd77223barEv,_ZThn12_N6dd77223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc722__6dd7722__7ee67722[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77223fooEv,_ZTv0_n16_N6dd77223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77223barEv,_ZTv0_n20_N6dd77223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd77223fooEv,_ZTv0_n12_N6dd77223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77223fooEv,_ZThn20_N6dd77223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77223barEv,_ZTv0_n16_N6dd77223barEv)();
+extern void ABISELECT(_ZThn32_N6dd77223barEv,_ZThn20_N6dd77223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd7722__7ee67722[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77223fooEv,_ZTv0_n12_N6dd77223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77223barEv,_ZTv0_n16_N6dd77223barEv),
+};
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc722__7ee67722[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc722__7ee67722[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+static VTT_ENTRY vtt_ee67722[] = {
+ {&(_ZTV7ee67722[4]), 4,19},
+ {&(_tg__ZTV6dd7722__7ee67722[4]), 4,6},
+ {&(_tg__ZTV5cc722__6dd7722__7ee67722[5]), 5,7},
+ {&(_tg__ZTV4bb22__6dd7722__7ee67722[4]), 4,6},
+ {&(_ZTV7ee67722[11]), 11,19},
+ {&(_ZTV7ee67722[17]), 17,19},
+ {&(_tg__ZTV5cc722__7ee67722[3]), 3,5},
+ {&(_tg__ZTV4bb22__5cc722__7ee67722[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee67722[];
+extern VTBL_ENTRY _ZTV7ee67722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67722[];
+static VTBL_ENTRY alt_thunk_names1314[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77223barEv,_ZTv0_n16_N6dd77223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77223barEv,_ZThn20_N6dd77223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77223fooEv,_ZTv0_n12_N6dd77223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77223fooEv,_ZThn20_N6dd77223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77223barEv,_ZTv0_n20_N6dd77223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77223barEv,_ZThn12_N6dd77223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77223fooEv,_ZTv0_n16_N6dd77223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77223fooEv,_ZThn12_N6dd77223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee677223barEv,_ZTv0_n16_N7ee677223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee677223barEv,_ZThn20_N7ee677223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee677223fooEv,_ZTv0_n12_N7ee677223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee677223fooEv,_ZThn20_N7ee677223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee677223barEv,_ZTv0_n20_N7ee677223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee677223barEv,_ZThn12_N7ee677223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee677223fooEv,_ZTv0_n16_N7ee677223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee677223fooEv,_ZThn12_N7ee677223fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67722 = { "ee67722", // class name
+ bases_ee67722, 4,
+ &(vtc_ee67722[0]), // expected_vtbl_contents
+ &(vtt_ee67722[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee67722),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67722),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67722),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1314,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee77722 : virtual dd7722 {
+ int e;
+ virtual void foo(); // _ZN7ee777223fooEv
+ virtual void bar(); // _ZN7ee777223barEv
+ ~ee77722(); // tgen
+ ee77722(); // tgen
+};
+//SIG(1 ee77722) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77722 ::foo(){vfunc_called(this, "_ZN7ee777223fooEv");}
+void ee77722 ::bar(){vfunc_called(this, "_ZN7ee777223barEv");}
+ee77722 ::~ee77722(){ note_dtor("ee77722", this);} // tgen
+ee77722 ::ee77722(){ note_ctor("ee77722", this);} // tgen
+
+static void Test_ee77722()
+{
+ extern Class_Descriptor cd_ee77722;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee77722, buf);
+ ee77722 *dp, &lv = *(dp=new (buf) ee77722());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee77722)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77722)");
+ check_base_class_offset(lv, (aa2*)(bb22*), ABISELECT(48,24), "ee77722");
+ check_base_class_offset(lv, (bb22*)(cc722*), ABISELECT(48,24), "ee77722");
+ check_base_class_offset(lv, (cc722*)(dd7722*), ABISELECT(32,16), "ee77722");
+ check_base_class_offset(lv, (dd7722*), ABISELECT(16,8), "ee77722");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77722.e");
+ test_class_info(&lv, &cd_ee77722);
+ dp->~ee77722();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77722(Test_ee77722, "ee77722", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee77722C1Ev();
+extern void _ZN7ee77722D1Ev();
+Name_Map name_map_ee77722[] = {
+ NSPAIR(_ZN7ee77722C1Ev),
+ NSPAIR(_ZN7ee77722D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb22;
+extern VTBL_ENTRY _ZTI4bb22[];
+extern VTBL_ENTRY _ZTV4bb22[];
+extern Class_Descriptor cd_cc722;
+extern VTBL_ENTRY _ZTI5cc722[];
+extern VTBL_ENTRY _ZTV5cc722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc722[];
+extern Class_Descriptor cd_dd7722;
+extern VTBL_ENTRY _ZTI6dd7722[];
+extern VTBL_ENTRY _ZTV6dd7722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7722[];
+static Base_Class bases_ee77722[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb22, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc722, 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_dd7722, 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 _ZTI7ee77722[];
+extern void _ZN7ee777223fooEv();
+extern void _ZN7ee777223barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee777223barEv,_ZTv0_n20_N7ee777223barEv)();
+extern void ABISELECT(_ZThn16_N7ee777223barEv,_ZThn8_N7ee777223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee777223fooEv,_ZTv0_n24_N7ee777223fooEv)();
+extern void ABISELECT(_ZThn16_N7ee777223fooEv,_ZThn8_N7ee777223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee777223fooEv,_ZTv0_n16_N7ee777223fooEv)();
+extern void ABISELECT(_ZThn32_N7ee777223fooEv,_ZThn16_N7ee777223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee777223barEv,_ZTv0_n20_N7ee777223barEv)();
+extern void ABISELECT(_ZThn32_N7ee777223barEv,_ZThn16_N7ee777223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee777223fooEv,_ZTv0_n12_N7ee777223fooEv)();
+extern void ABISELECT(_ZThn48_N7ee777223fooEv,_ZThn24_N7ee777223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee777223barEv,_ZTv0_n16_N7ee777223barEv)();
+extern void ABISELECT(_ZThn48_N7ee777223barEv,_ZThn24_N7ee777223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77722[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77722[0]),
+ (VTBL_ENTRY)&_ZN7ee777223fooEv,
+ (VTBL_ENTRY)&_ZN7ee777223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee777223barEv,_ZTv0_n20_N7ee777223barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee777223fooEv,_ZTv0_n24_N7ee777223fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee777223fooEv,_ZTv0_n16_N7ee777223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee777223barEv,_ZTv0_n20_N7ee777223barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee77722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee777223fooEv,_ZTv0_n12_N7ee777223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee777223barEv,_ZTv0_n16_N7ee777223barEv),
+};
+extern VTBL_ENTRY _ZTV7ee77722[];
+extern void _ZN6dd77223barEv();
+extern void _ZN6dd77223fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7722__7ee77722[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7722[0]),
+ (VTBL_ENTRY)&_ZN6dd77223barEv,
+ (VTBL_ENTRY)&_ZN6dd77223fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77223fooEv,_ZTv0_n16_N6dd77223fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77223fooEv,_ZThn8_N6dd77223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77223barEv,_ZTv0_n20_N6dd77223barEv)();
+extern void ABISELECT(_ZThn16_N6dd77223barEv,_ZThn8_N6dd77223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc722__6dd7722__7ee77722[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77223fooEv,_ZTv0_n16_N6dd77223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77223barEv,_ZTv0_n20_N6dd77223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd77223fooEv,_ZTv0_n12_N6dd77223fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77223fooEv,_ZThn16_N6dd77223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77223barEv,_ZTv0_n16_N6dd77223barEv)();
+extern void ABISELECT(_ZThn32_N6dd77223barEv,_ZThn16_N6dd77223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__6dd7722__7ee77722[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77223fooEv,_ZTv0_n12_N6dd77223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77223barEv,_ZTv0_n16_N6dd77223barEv),
+};
+extern void _ZN5cc7223fooEv();
+extern void _ZN5cc7223barEv();
+static VTBL_ENTRY _tg__ZTV5cc722__7ee77722[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&_ZN5cc7223fooEv,
+ (VTBL_ENTRY)&_ZN5cc7223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv)();
+extern void ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb22__5cc722__7ee77722[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc722[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv),
+};
+static VTT_ENTRY vtt_ee77722[] = {
+ {&(_ZTV7ee77722[5]), 5,28},
+ {&(_ZTV7ee77722[13]), 13,28},
+ {&(_ZTV7ee77722[20]), 20,28},
+ {&(_ZTV7ee77722[26]), 26,28},
+ {&(_tg__ZTV6dd7722__7ee77722[4]), 4,6},
+ {&(_tg__ZTV5cc722__6dd7722__7ee77722[5]), 5,7},
+ {&(_tg__ZTV4bb22__6dd7722__7ee77722[4]), 4,6},
+ {&(_tg__ZTV5cc722__7ee77722[3]), 3,5},
+ {&(_tg__ZTV4bb22__5cc722__7ee77722[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee77722[];
+extern VTBL_ENTRY _ZTV7ee77722[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77722[];
+static VTBL_ENTRY alt_thunk_names1315[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7223barEv,_ZTv0_n16_N5cc7223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223barEv,_ZThn8_N5cc7223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7223fooEv,_ZTv0_n12_N5cc7223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7223fooEv,_ZThn8_N5cc7223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77223barEv,_ZTv0_n16_N6dd77223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77223barEv,_ZThn16_N6dd77223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77223fooEv,_ZTv0_n12_N6dd77223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77223fooEv,_ZThn16_N6dd77223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77223barEv,_ZTv0_n20_N6dd77223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77223barEv,_ZThn8_N6dd77223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77223fooEv,_ZTv0_n16_N6dd77223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77223fooEv,_ZThn8_N6dd77223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee777223barEv,_ZTv0_n16_N7ee777223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee777223barEv,_ZThn24_N7ee777223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee777223fooEv,_ZTv0_n12_N7ee777223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee777223fooEv,_ZThn24_N7ee777223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee777223fooEv,_ZTv0_n16_N7ee777223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee777223fooEv,_ZThn16_N7ee777223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee777223fooEv,_ZTv0_n24_N7ee777223fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee777223fooEv,_ZThn8_N7ee777223fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee777223barEv,_ZTv0_n20_N7ee777223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee777223barEv,_ZThn16_N7ee777223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee777223barEv,_ZThn8_N7ee777223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77722 = { "ee77722", // class name
+ bases_ee77722, 4,
+ &(vtc_ee77722[0]), // expected_vtbl_contents
+ &(vtt_ee77722[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee77722),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77722),28, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77722),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1315,
+};
+#endif // __cplusplus
+
+//============================================================================
+